一、愿景与范围
1.业务需求
1.1 背景
很多软件公司无法制定出准确的项目进度计划,延期经常出现,而且延期后无法给出一个相对比较明确的延迟时间,给市场的推广带来很大的影响。研发经理不能准确的按照开发人员的能力布置任务,导致延期。研发经理使用pp,cdcdmd模型,仍然得不出准确的估计。对于软件开发而言,我们可以确定的是没有万能的,准确的估算公式。时间的不准确估计会导致项目的延期,对软件公司也会带来很大的损失,同时让客户丧失对软件的信心,严重会导致软件危机。
1.2 业务机遇
项目估算的基础是经验数据,对于不同的开发人员而言其产能是不一致的,甚至对于相同的开发人员,不同任务所需的时间也是不同的,关键在于积累这些经验数据。Psp可以对所有的工作过程进行时间记录,同时提供数据使用工具,帮助开发人员提高估算能力,准确把握项目进程。
1.3 业务目标(BO)
BO-1:在第一版应用6个月后,开发人员愿意主动记录自己的开发时间情况。
BO-2:在第一版应用6个月后,开发经理掌握一定的经验数据,可以进行大概估算,延期情况不超过3个月。
BO-3:在第一版应用6个月后,软件公司的开发效率提高30%,开发人员提高效率20%。
1.4 客户或市场需求
软件公司需要这样一款软件来记录经验数据以便准确的进行任务安排,提高开发效率,准确把握项目的进度,减少延期情况或确定准确的延期时间。开发人员通过此软件记录工作情况,提高自己的工作效率。
1.5 提供给客户的价值
A、Psp软件可以提高开发效率,减少延期现象。
B、psp软件可以使开发流程流水线化.
C、与其他估算模式相比,估算更加准确,提高了可信度
1.6 业务风险
一是开发人员很难适应,每天都要记录自己的工作时间很繁琐,而且产生数据不易使用。二是时间日志做出来后,管理者会忍不住用来考核开发人员,给他们带来心里压力。三是开发人员做假时间,对估算结果产生错误影响。
2. 项目愿景的解决方案
2.1 项目愿景陈述
Psp主要关注的是开发时间,而对前期的分析和概要设计,以及后续的集成和系统测试等工作忽略。对于那些希望准确估算开发时间的总经理和研发经理,可以帮助他们准确的调用整个公司的资源,全盘掌握每个员工的开发情况,准确分配任务,把握项目进度。
2.2 主要特性
项目及任务安排由研发经理或项目经理创建项目和任务,开发人员在街道任务后进行估算,填写时间计划,研发经理或项目经理对其进行确认。开发人员对自己的开发时间进行记录,与任务关联起来。研发经理及公司领导可以根据任务和相应的时间记录,来统计公司员工的产能数据。产能数据由难度系数和每天的代码行数组成。
2.3 假设和依赖环境
Psp可以准确把握开发进度,防止项目的延期,导致丢失客户,并提高开发人员的开发效率。Psp还有一个离线版本的时间记录,可以使开发人员在现场开发时使用。
鼓励记录时间日志,奖励估算准确的开发人员。宣扬有效工作时间的概念,树立“每天有效工作4小时”的概念。培训开发人员使用psp的意识。
3. 范围和局限性
3.1 首次发行的范围
研发经理能够创建项目、指定或修改项目经理、删除尚未分配工作任务的项目 |
项目经理可以对项目设置工作包,工作包允许多级嵌套,它只用来组织工作任务 |
项目经理可以为开发人员指派工作任务,工作任务属于特定的工作包 |
项目经理在分配工作任务时,能够查阅开发人员的日程安排表,可以按开发人员查询、也可按日程查询 |
开发人员接到任务时,通过系统填写计划时间(计划开始时间和计划结束时间),项目经理确认后,更新日程安排表 |
开发人员可以查询相近工作任务的历史数据(估算数据、实际数据) |
开发人员任务执行将超计划时,应报告项目经理,项目经理通过系统更新其日程表 |
当任务完成之后,项目经理负责Close任务,并填入实际的完成情况(KLOC、实际结束时间) |
开发人员可以随时记录自己的时间,提供“开始计时”、“暂停计时”、“停止计时”,在停止时,填入任务编号(在线则选择)、工作关键字(以逗号分隔的多个),自动生成开始时间、暂停时间、停止时间、总时长、有效时长(总时长-中断时长) |
开发人员可以根据任务编号、关键字、起止时间进行分类组合查询与统计 |
时间记录程序会自动连接服务器,完成时间日志上传的工作,未能连接服务器,则在本机暂存时间日志 |
项目经理可以按项目、任务、关键字统计实际工作时长、产能 |
研发经理及管理层可以按个人、任务、项目、关键字查看工作时长、统计产能 |
3.2 随后发行的范围
随后发行的版本可以有手机版,数据随时可以共享,可以将数据以文档的形式上传到服务器,服务器存储数据时再转换到存储格式。
3.3 局限性和专用性
该软件主要关注的是开发时间,而对于前期的分析和概要设计以及后续的集成和系统测试等工作忽略。
4. 业务环境
4.1 客户概貌
开发人员:填写时间计划,形成经验数据主要人物
项目经理:组织工作任务,选择开发人员,为开发人员指派工作任务。
研发经理:创建项目,选定项目经理。
管理层:统计员工的产能数据,对各个项目整体把握。
5. 产品成功的因素
SC-1:90%开发人员愿意使用该软件记录工作时间
SC-2:项目延期状况减少70%
SC-3:管理层管理更加方便
SC-4:用户对公司的软件满意度增加到90%
SC-5:开发人员提高效率20%。
二、用例
1建立用例模型
1.1识别参与者:
1.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.统计团队产能 |
1.3用例图
1.4简要描述用例
用例编号 |
UC01 |
用例名称 |
填写任务计划 |
用例概述 |
开发人员对项目经理安排给自己的工作任务进行计划,填入计划开始时间和计划完成时间。 |
主参与者 |
开发人员 |
补充说明 |
在填入计划开始时间和计划完成时间时,开发人员可以查询与该任务的关键字相关的历史任务的数据。 |
用例编号 |
UC03 |
|
用例名称 |
记录时间日志 |
|
用例概述 |
开发人员可以随时记录自己的时间,提供“开始计时”、“暂停计时”、“停止计时”等功能,在停止时,填入任务编号(在线则选择)、工作关键字(以逗号分隔的多个),自动生成开始时间、暂停时间、停止时间、总时长、有效时长(总时长-中断时长)。 |
|
主参与者 |
开发人员 |
|
前置条件 |
用户进入“记录时间日志”程序 |
|
后置条件 |
将本次时间日志存入数据库 |
|
基本事件流 |
步骤 |
活动 |
1 |
系统显示“开始”、“暂停”和“停止”按钮,但仅“开始”可用 |
|
2 |
用户点击“开始”,系统记录开始时间,并将“开始”置为不可用,使“暂停”和“停止”按钮可用 |
|
3 |
用户点击“停止”按钮,系统记录停止时间,并统计暂时时间、暂停次数、总时长、有效时长,并要求用户选择任务编号、输入工作关键字和相关信息。填写完成后,点击确定,用例完成。 |
|
扩展事件流 |
3a |
在此期间,若用户点击“暂停”按钮,系统则记录暂停开始时间,并使暂停次数增加1次,并使“暂停”按钮变为“恢复”,使“停用”按钮不可用 |
3a1 |
当用户点击“恢复”按钮,用当前时间减去暂停开始时间得到本次暂停时间,并累加到“暂停时间”时间中,并使“恢复”按钮变为“暂停”,使“停用”按钮恢复可用 |
|
规则与约束 |
时间记录程序应以离线式工作,该程序会自动连接服务器,完成时间日志上传的工作,如果未能连接服务器,则在本机暂存时间日志 |
2.交互状态