一、需求分析
1.业务需求
1.1 应用背景
开发项目进度计划总是那么不明确,延期经常出现,甚至无法给出一个相对比较明确的延迟时间。这样给市场的推广会带来很大的影响,不确定因素使得应对十分困难。
1.2 业务机遇
PSP是个人软件开发过程,通过PSP的贯彻,可以提高软件开发人员的时间安排、时间估算的能力。
1.3 业务目标
业务目标的例子如下:
BO-1:在第一版应用之后1个月之内,个人的开发效率提高。
BO-2:在第一版应用之后3个月之内,整个开发团队的开发效率提高。
成功标准的例子如下所示:
SC-1:在第一版应用之后1个月内,个人的开发效率提高70%。
SC-2:在第一版应用之后3个月内,整个团队的开发效率提高50%。
1.4 业务风险
业务风险的示例如下:
RI-1:使用该软件的人太少,产能数据不够全面。
RI-2:有恶意破坏软件运行的行为,降低了数据的准确性。
2.项目前景
2.1 前景概述
对那些希望提高开发效率的人来说,PSP可以接受一切使用该软件的数据库。与当前的人工计算不同,使用PSP可以节约大量的时间,并能有效地估算出开发人员的工作效率,以便掌握整个项目的进度。
2.2主要特性
FE-1:连接数据库和操作系统。
FE-2:产能效率的计算。
FE-3:软件的界面功能(如:“用户反馈”,“意见箱”)
2.3 假设与依赖
AS-1:开发团队中有指定的控制和管理中心,并有计算机和打印机等相关设备。
AS-2:相关人员负责将数据录入到相关的数据库中。
AS-3:建议系统的维护时间不超过一周,尽量避开使用的高峰期。
DE-1:如果某个开发人员有自己的数据库系统,PSP软件必须能够与之连接。
3.项目范围
3.1 第一版范围
第一个版本主要实现网站界面的创建,各个功能的初步实现。PSP与各个相关数据库的正常连接。设置权限,根据不同的操作员设置不同的权限。
3.2 后续版本范围
特性 |
版本1 |
版本2 |
FE-1 |
完全实现 |
|
FE-2 |
手动更新 |
自动更新 |
FE-3 |
仅实现“意见箱”功能 |
实现“用户反馈” |
4. 项目环境
4.1 操作环境
这个系统主要提供给四类用户使用,分别是高层管理人员,项目经理,技术顾问以及开发人员。
开发人员模式中,开发人员可以根据工作的基本信息,每次数据有变化就要相应得更新数据库。面向开发人员时,系统是普通的存储数据软件。 数据只在工作人员在输入工作的基本信息的时候生成,所以访问数据时候的最大响应时间应该会在0.1s以内;工作人员在这个程序中允许有服务中断的现象;因为这里的信息会牵扯到某些数据库文件的机密信息,所以需要提供访问安全控制和数据保护(随着版本升级功能逐步实现)!
技术顾问,项目经理以及高层管理人员模式中,该软件只提供给这些人员查询访问的功能。
4.2 涉众
这个系统中的主要涉众如下表:
涉众 |
特点 |
软件开发人员 |
希望通过这样一个系统能够提高工作的效率! |
技术顾问 |
查看开发团队中每个人员的产能效率,并给出工作的改进意见 |
项目经理 |
查看开发团队中每个人员的产能效率,对软件项目开发的时间做出调整 |
总经理 |
查看开发团队中每个人员的产能效率 |
4.3 项目属性
具体项目属性如下表:
属性 |
驱动因素 |
约束因素 |
可调整因素 |
特性 |
|
各个版本的功能必须完全可操作。 |
在最终版本中进行调整。 |
质量 |
|
用户满意度必须达到85%;必须通过全部的安全机制检查,系统能够在win7,winxp等操作系统下稳定工作。 |
在后续版本中完善功能提高用户满意度 |
成本 |
项目经理 |
必须控制开发费用在额定范围内 |
允许费用超过的最大额度不超过总经费的10% |
进度 |
项目经理 |
必须保证开发时间在规定时限范围内 |
开发时间最长不得超过规定时间2天 |
人员 |
团队规模包括一个项目经理,两名开发人员,和一名测试人员
|
人员数目按照规定严格控制 |
如果计划不够,可以适当增加人员务必保证在规定时间内完成项目。 |
二.用例分析
参与者 |
特性 |
用例 |
|
开发人员 |
FEAT05.开发人员接到任务时,应通过系统填写计划时间(计划开始时间和计划结束时间),项目经理确认后,更新日程安排表 |
UC01.填写任务计划 |
|
FEAT06.开发人员可以查询相近工作任务的历史数据(估算数据、实际数据) FEAT10.开发人员可以根据任务编号、关键字、起止时间进行分类组合查询与统计 |
UC02.查询历史任务数据(UC01的扩展) |
||
FEAT09.开发人员可以随时记录自己的时间,提供“开始计时”、“暂停计时”、“停止计时”,在停止时,填入任务编号(在线则选择)、工作关键字(以逗号分隔的多个),自动生成开始时间、暂停时间、停止时间、总时长、有效时长(总时长-中断时长) FEAT11.时间记录程序会自动连接服务器,完成时间日志上传的工作,未能连接服务器,则在本机暂存时间日志 |
UC03.记录时间日志 |
||
项目经理 |
FEAT02.项目经理可以对项目设置工作包,工作包允许多级嵌套,它只用来组织工作任务 |
UC04.设置工作包 |
|
FEAT03.项目经理可以为开发人员指派工作任务,工作任务属于特定的工作包 FEAT04.项目经理在分配工作任务时,能够查阅开发人员的日程安排表,可以按开发人员查询、也可按日程查询 |
UC05.分配工作任务 UC5A.查看日程安排(扩展用例) |
||
FEAT07.开发人员任务执行将超计划时,应报告项目经理,项目经理通过系统更新其日程表 |
UC06.更新日程表 |
||
FEAT08.当任务完成之后,项目经理负责Close任务,并填入实际的完成情况(KLOC、实际结束时间) |
UC07.关闭工作任务 |
||
FEAT12.项目经理可以按项目、任务、关键字统计实际工作时长、产能 |
UC08.统计项目产能 |
||
研发经理 |
FEAT01.研发经理能够创建项目、指定或修改项目经理、删除尚未分配工作任务的项目 |
UC09.管理项目信息 |
|
管理层 |
FEAT13.研发经理及管理层可以按个人、任务、项目、关键字查看工作时长、统计产能 |
UC10.统计团队产能 |
|
词汇表:
模型
参考资料:
需求工程—软件建模与分析
需求工程文档规范
项目前景与范围文档模板
UML统一建模语言