zoukankan      html  css  js  c++  java
  • 个人作业——软件产品案例分析

    关于 华为软件开发云 —— 案例分析

    标签: 软工实践


    简要目录

    Part 1 : 调研,评测

    Part 2 : 分析

    Part 3 : 建议和规划


    Part 1 : 调研,评测

    评测

    软件的bug,功能评测,黑箱测试

    1.下载并使用,描述最简单直观的个人第一次上手体验

    首先友好的中文界面和精美的UI设计都深得我心。
    功能方面,集成了燃尽图、代码托管、代码检查、构建、测试、部署、发布等等一系列的软件开发流程工具,可以在开发云上进行整个软件开发流程的规划和管理。其中代码检查这个功能感觉非常强大,很大程度上减少了人工审核代码的时间花费。
    高度集成的开发云使整个开发过程专业化提高效率

    2.按照描述的bug定义,找出几个功能性的比较严重的bug

    Web端:

    (1)在Web端页面,部分模块功能无法进行分页内跳转,打开一个新功能往往需要刷新整个页面测试部署模块跳转时部分UI发生了感觉不应该发生的变化。
    如下图:

    构建模块UI
    bug1_1

    测试模块UI
    bug1_2

    对比之后可以发现部分UI确实发生了变化。

    (2)在Chrome浏览器下(其他浏览器貌似没有这个问题),华为云登陆界面,登陆时在用户名输入框内输入一个字符后,光标会直接跳至密码输入框,非常神秘,一个微小的bug。

    Android端:

    (1)只能以用户名登录,不支持手机号或邮箱账号形式的登录,对于初次使用的用户会误以为账号密码发生错误,十分不友好。
    (2)不支持项目删除功能。
    (3)扫描二维码功能无法正常使用,尝试扫描的二维码均为无效二维码。
    (4)新建工作项功能中,上传文件或图片功能无法使用。表现为进入新建工作项页面后,选择上传的文件或图片,会直接返回上个页面,丢失之前填写的信息,也没有成功创建新的工作项。
    (5)全局响应速度缓慢,影响用户使用体验。

    3.你觉得为什么这个产品组的人没有发现这些bug

    Web端:

    (1)前端人员只更新了部分UI,测试的时候忽略了这个问题。
    (2)开发人员在测试时没有注意到这个细节。

    Android端:

    Android端的DevCloud定位只是Web端的附属品,只实现了简单的项目查看和工作项管理功能。开发人员在测试时没有做到面面俱到,遗留下了许多bug后期也没有及时进行修复。甚至可能在测试过程中就发现了bug,但是没有进行修复就发布了软件。

    4.假设你们团队需要开发这套系统,需要注意哪些方面(架构、部署运维、微服务等)

    对架构、部署运维、微服务这些方面不是很了解..
    谈谈自己觉得比较重要的几个方面:

    • 首先是最直观的UI中文界面,对于这一点使用过Github进行代码托管的用户一定深有体会。
    • 完善的新手指引也是重要的一环,让新手迅速上手,不要在学习软件的使用上耗费太多时间。
    • 不同的用户群体对于开发云有着不同的需求,可能有的用户只需要其中的几个功能,最好能让用户在创建项目时对需要的功能做出定制。
    • 优秀的网络环境,在使用Github时有时候,由于不可说的原因,常常会出现网页加载缓慢甚至加载不出的情况,十分恼人。
    • 良好的用户体验,无需多言,需要注意许许多多的细节。

    采访

    1.介绍采访对象的背景和需求(他们有没有用过这个APP或类似的APP,除了现有的功能还有别的需求么)

    背景:计算机专业就读学生,使用过Github进行代码托管,未使用过华为软件开发云。
    需求:代码托管,友好的交互界面

    2.让采访对象使用华为软件开发云(请上传照片证明用户的确正在使用,远程采访的同学请让别人帮忙照相)

    采访

    3.描述用户使用这个产品的过程,用户的问题解决了么?软件在界面/功能/用户需求上各有什么优缺点?用户体验方面有问题么?

    用户的问题在华为云上可以得到基本解决。
    界面: 华为云的界面简洁大方,UI较为精美,相比于Github的英文界面也更加友好。
    功能: 就代码托管这一方面来说,Github更加专业,使用者也更加广泛。而华为云上的其他功能虽然十分强大,但是对用户自身来说,没有一个较为详尽的教程指引,难以上手。
    用户需求: 现有的精简和Scrum两种项目类型并不能满足所有用户群体的不同需求。
    用户体验: 文件上传和网页响应速度较慢,影响使用体验。

    4.用户对产品有什么改进意见?

    • 自行定制需要的功能,方便不同需求的用户进行使用。
    • 添加完善的新手指引,让用户更快上手。
    • 网页跳转和文件上传响应较慢,希望能优化相应速度。

    5.结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价,请选择一个结论:

    推荐,华为云上集成了整个开发流程中需要使用到的大部分工具,使用户不用在不同的软件之间来回切换,降低效率。对于普通学生群体而言,其中的部分功能甚至超出了一般情况下的需求,显得有些冗杂。但是总体还是十分优秀的软件开发云平台,推荐使用。


    Part 2 : 分析

    1.估计这个项目做到这个程度大约需要多少时间(团队人数6人左右,计算机大学毕业生,并有专业UI 支持)

    30周,华为软件开发云上集成的功能可以说是非常之多了,仅仅6个大学毕业生的小型开发团队,个人认为需要花大量的时间才可能将这个项目做到如此完整的程度。

    2.分析这个软件目前的优劣(和类似软件相比),并推理出团队在软件工程方面可以提高的一个重要部分(具体建议)

    Github进行对比。

    优势:

    + 中文界面
    + 集成更多功能
    + 一体化开发流程
    + 价格较低
    + 适合于企业开发

    劣势:

    - 用户群体较小
    - 代码托管不够专业
    - 上手难度高
    - 不太适合个人用户

    建议:

    • 对于不同的用户群体提供集成不同功能的开发云
    • 添加完善的新手指引,让用户更快上手
    • 加大软件宣传力度

    3.根据理解和体验,画出整个软件所有功能逻辑框图,根据重要度标识出各模块的重要度、完成度、出发点及效果

    评分标准:★ = 20 ☆ = 0

    DevCloud总体模块逻辑图

    DevCloud

    看板

    看板

    • 重要度: ★★★★★
    • 完成度: ★★★★☆
    • 出发点: 展示项目迭代周期的进度以及任务的完成率,提供工作进展的燃尽图
    • 效果: 提供了燃尽图、需求、任务、缺陷的报表和图形化统计,使用户对项目的进度一目了然。但美中不足的是在用户拥有多个项目时, 用户的工作项流程会略显混乱

    工作

    工作

    • 重要度: ★★★★★
    • 完成度: ★★★★★
    • 出发点: 对工作流程进行规划分配到个人,文档和词条管理。
    • 效果: 工作项的内容非常详细,完整的历史记录信息,文档支持方便的拖拽上传,词条的管理也十分便捷。

    代码

    代码

    • 重要度: ★★★★★
    • 完成度: ★★★☆☆
    • 出发点: 在线代码托管,实现多人并行开发。
    • 效果: 代码托管仍依赖于Github来实现,需要进行繁琐的配置。但是仓库代码可以与工作项进行关联,提高工作效率。

    检查

    检查

    • 重要度: ★★★★☆
    • 完成度: ★★★★★
    • 出发点: 对仓库中的代码进行按照给定的规则集进行检查,并给出评分修复建议
    • 效果: 对于代码的检查十分有效,可以定位到具体的代码错误并给出修复建议。给出大量规则集的同时也支持自定义规则集,十分便捷。

    构建

    构建

    • 重要度: ★★★★☆
    • 完成度: ★★★★★
    • 出发点: 按照用户需求进行软件构建,生成构建包并进行管理。
    • 效果: 可以进行详细的用户配置,配置完成后自动进行构建任务,相当便捷,对于构建包的管理也十分有效。

    测试

    测试

    • 重要度: ★★★★★
    • 完成度: ★★★★☆
    • 出发点: 对软件进行用例测试移动应用测试,并生成测试报告
    • 效果: 对于测试用例管理非常完善,基本可以满足所有的测试需求,移动应用的测试也非常便捷,可以一次测试多个机型,生成的测试报告内容详细。但是在用户量较多时,进行移动应用测试往往需要排队等待

    部署

    部署

    • 重要度: ★★★★☆
    • 完成度: ★★★★☆
    • 出发点: 实现软件的在线部署。
    • 效果: 主机管理功能齐全且使用便捷,支持样例模板和自定义模板定时部署

    发布

    发布

    • 重要度: ★★★☆☆
    • 完成度: ★★★★☆
    • 出发点: 提供软件发布的云服务。
    • 效果: 提供软件仓库、软件发布、发布包下载、发布包元数据管理等功能,包含Maven仓库,镜像仓库以及编译构建仓库。

    流水线

    流水线

    • 重要度: ★★★☆☆
    • 完成度: ★★★★☆
    • 出发点: 使用流水线对任务进行更加有效的执行管理。
    • 效果: 同个阶段可以执行多个任务,当代码发生变更,可通过流水线一键执行代码检查、编译构建、部署任务,支持定时执行。

    4.针对不同的维度评分,对用户体验方面、UI界面美观度、核心功能,分别打分

    用户体验: ★★★★☆
    UI界面美观度: ★★★★★
    核心功能: ★★★★☆


    Part 3 : 建议和规划

    参考《构建之法》第8章 功能的定位和优先级;第9章 项目经理

    1.如果你是项目经理,如何提高从而在竞争中胜出?

    • 对于不同的用户群体提供集成不同功能的开发云
    • 添加完善的新手指引,让用户更快上手
    • 加大软件宣传力度

    2.目前市场上有什么样的产品了?

    国外:

    • Github
    • Gitlab
    • BitBucket
    • SourceForge
    • ...

    国内:

    • 码云
    • 码市
    • CSDN Code
    • 百度效率云
    • ...

    3.你要设计什么样的功能?

    • 社交功能

    用户之间可以互相关注,查看近期动态代码仓库等,支持用户在线交流,使用户可以分享自己的代码。加强用户间交互,从而扩大用户群体

    4.为何要做这个功能,而不是其他功能?

    华为软件开发云目前集成的软件开发功能模块已经相当完善,无需对开发这一块增加新的功能。
    目前存在的主要问题是用户群体较小,用户之间的互动缺乏,一般只存在于一个项目内的开发人员之间。开发社交功能可以加强用户交互,分享代码,达到扩大用户群体目的。

    5.为什么用户会用你的产品/功能?

    社交功能是从实际需求出发,促进用户之间的交流,增加活跃用户数。
    大多数的开发人员在使用华为软件开发云之前也或多或少使用过Github进行代码托管,对于Github上已有的社交功能并不会排斥。社交功能可以让用户与他人进行交流,学习他人的技能,提高自己,何乐而不为。

    6.你的创新在哪里?可以用 NABCD 分析

    • N(需求): 用户希望在托管代码的同时,与他人进行交流,学习他人或者被他人学习。
    • A(做法): 在原有的基础上增加社交模块,用户之间可以互相关注,查看近期动态和代码仓库等,支持用户在线交流,使用户可以分享自己的代码。
    • B(好处): 加强用户间交互,从而扩大用户群体。
    • C(竞争): 同类型产品中,Github的代码托管功能虽然胜出一筹,但是其他方面的功能华为云已经强出太多。实现了社交功能之后,增强用户粘性,可以在与Github的用户竞争中更进一步。
    • D(推广): 可以与高校IT专业联系(我怀疑...),在学生的软工实践课程中进行开发云的试用,让学生们从还在学校的时候就开始使用开发云,甚至在开始工作之后也离不开开发云的使用,从小开始培养用户(手动滑稽)
      也可以与IT企业合作,以价格优惠作为优势,进一步推广开发云的使用。

    7.如果你来领导这个团队,会有什么不一样?

    • 面向不同的用户群体提供集成不同功能更多版本的开发云
    • 增加更加完善的新手指引
    • 保证软件质量的同时,更加注重与提升用户体验
    • 软件发布之前进行严格、完善的测试

    8.如果你的团队有5个人,4个月的时间,你作为项目经理,应该如何配置角色(开发,测试,美工等等)

    • 1个项目经理(兼文档)
    • 2个开发
    • 1个测试
    • 1个美工

    9.描述你的团队在16周期间每周都要做什么,才能在第16周如期发布软件,大小里程碑绩点设定

    周数 任务
    1 用户调研,需求分析
    2 原型设计,列出要开发的系统的大功能模块
    3 编写功能需求文档,确认用户需求
    4 概要设计,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等
    5~6 在概要设计的基础上,进行软件系统的详细设计,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系
    7~12 软件编码阶段,根据详细设计中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求
    13~14 测试编写好的系统,交给用户使用,用户使用后一个一个的确认每个功能
    15 提交文档,在软件测试证明软件达到要求后,向用户提交开发的目标安装程序、数据字典、《用户安装手册》、《用户使用指南》、需求报告、设计报告、测试报告等
    16 用户验收,交付使用
    17~ 后续维护,根据用户需求的变化或环境的变化,对应用程序进行全部或部分的修改
    • 小里程碑:第3周、第6周、第12周、第14周
    • 大里程碑:第16周

    10.项目发布后,有没有考虑过项目该怎么部署才能满足需求,分析16周后你所完成的项目上线需要哪些配套设备(服务器、带宽、数据库需求数量与配置)

    • 应用服务器配置: 4核8G x 8
    • 后端服务器配置: 8核16G x 12
    • 关系型数据库: SQL Server/Oracle/MySql数量:10(读写分离 x 8、备份 x 2)
    • 缓存数据库: Redis 数量:6(主备)
    • 网站安全性: WAF、DDOS
    • 关注用户高频使用时段对服务器的压力并做出处理
      ps:这部分不是很了解,按个人感觉,对比了下学生教务系统和华为云的用户使用情况,大概猜测的。


  • 相关阅读:
    Uncaught TypeError: Cannot set property 'onclick' of null
    Linuxe lftp命令(七)
    linux yum 命令(六)
    Linux vi/vim(五)
    Linux 文件与目录管理(四)
    Linux 文件基本属性(三)
    Linux 系统目录结构(二)
    Linux 系统启动过程(一)
    Java基础语法知识(笔记)——(三)泛型,String与正则
    Java基础语法知识(笔记)——(二)类与对象,接口,多态,继承,异常
  • 原文地址:https://www.cnblogs.com/zhengshuhao/p/7944811.html
Copyright © 2011-2022 走看看