软件工程综合实践专题课程团队作业——项目风险分析
一、项目面临风险
1.人员风险
- 作为先决条件的任务不能按时完成;
如开发人员的培训工作没有及时完成,开发人员对自己负责的部分涉及到的技术不够了解,导致运作混乱。
- 开发人员和管理层之间关系不佳, 意见不合,导致决策缓慢,影响全局;
- 缺乏激励措施,士气低下;
如开发人员在持续高强度工作后没有任何奖励或鼓励措施,导致项目进度变缓
- 某些人员需要更多的时间适应还不熟悉环境;
如开发人员不适应新的软件工具和软件环境,如:OpenCV开源库和Android Studio的使用。
- 没有找到项目急需的具有特定技能的人;
如项目缺少熟练掌握人工智能、图片识别技能的开发人员。
- 由于项目组成员之间发生冲突,导致沟通不畅、设计欠佳、接口出现错误和额外的重复工作;
2.流程风险
- 大量的图片识别、对比过程可能会导致软件的运行速度比预期进度慢
- 一些复杂的功能无法用现有开源库实现,导致开发人员需自行开发
- 大量的编程工作和对知识的不熟悉导致进程比预期慢
- 过于强调软件开发的标准,导致耗费很多时间在无用功上
- 代码质量不达标,出错率和随机性过高,需要额外的测试工作
- 软件不符合商业策略,需进行大量修改
项目在进行需求分析时所做的调查问卷数目不够大,虽然各个年龄段的用户都涉及到了但还是主要以年轻人为主,调查结果可能会与实际市场情况有一定的误差。
- 软件各个功能完成进度差距过大,导致无法进行整合,完成测试
3.技术风险
- 图片识别
长得相似的动物以及同一动物的不同角度的图片在提取特征值的过程和进行识别的过程中很容易出现错误
例如以下两张同为英短却不同拍摄角度的图片可能在识别时会产生误差
- 数据库
需要庞大的有关动物的数据库,数据库内容需要对大多数动物有较详细的描述,查询的过程可能会比较长
- GPS
通过调用地图API接口,获得用户当前的位置,为了能够更好的给客户提供所需要的宠物店或宠物医院的位置,但是定位有时会出现不准确的情况
4.环境风险
分为 工作环境、社会环境、开发环境
开发环境:
- 不熟悉测试软件的使用
说明:开发过程中测试软件功能,减小成本损失
- 可能会不熟悉开发环境
说明:开发软件的工具
- 没有可用的软件项目管理工具、软件过程过程管理工具
- 可能没有可用的分析及设计工具或者分析和设计工具不一定适用于软件
工作环境(包括工作环境和人文环境):
- 工作环境可能会影响开发人员的工作效率?
说明:学校是否有足够的资料供学生查阅、是否有老师愿意指导学生开发
社会环境:
- 软件开发完成后,软件的推广、使用可能会受到的社会舆论
二、解决办法
- 增加对开发人员的培训,每周进行一次开会讨论学习中的问题和进度,进而督促开发人员的学习进度
- 共享项目所涉及的学习资料和软件开发工具安装包,使开发人员共同学习、共同进步,避免项目各部分的开发进度不一
- 在项目开始开发前做好分工和开发进度的规划,避免开发过程中会进行重复工作、浪费资源
- 在项目开始开发前做需求分析和市场调查,争取获得更大的用户调查群体,获得更有说服力的调查统计数据,正确分析项目的市场价值和商业价值
- 在遇到不可解决的困难时,及时向老师请教,以免拖慢进度
- 在能够实现项目目标功能的前提下,对查询算法进行优化,避免查询庞大的数据库数据使得软件运行缓慢
- 在数据库中尽量收集大量不同状态、不同环境的同一动物的图片,避免出现识别误差、提高图片识别的正确率
- 可以多调用一些开源库中的代码或函数,以提高开发的速度和代码的正确率