psp个人软件过程需求文档
1. 业务需求
1.1 应用背景
开发软件项目进度计划总是那么不准确,延期经常出现,跟可恨的是甚至无法给出一个相对比较明确的延迟时间。很大
因素在于分配给开发人员的完成时间与开发人员的实际完成时间有一定的偏差。
1.2 业务机遇
我们可以开发一款psp软件,即个人软件过程软件。此软件能够对所有的工作过程进行时间的记录,经过一定的时间之后,积累了许多产能数据(经验数据)。根据不同开发人员不同任务下的产能数据,能够较准确的预测开发时间。
1.3 业务目标
帮助软件工程师在个人的基础上运用过程的原则,借助于PSP提供的一些度量和分析工具,了解自己的技能水平,控制和管理自己的工作方式,使自己日常工作的评估、计划和预测更加准确、更加有效,进而改进个人的工作表现,提高个人的工作质量和产量,积极而有效地参与高级管理人员和过程人员推动的组织范围的软件工程过程改进。
1.4 业务风险
在实际中,要执行好时间管理也的确不容易,开发人员有时候会忘记记录自己的开发时间。
2 项目前景
2.1 前景概述
为开发人员提供一个psp工具,记录开发人员完成某项任务的产能数据。开发人员再完成类似任务时,能够准确的估算自己的开发时间,从而降低了软件开发风险。
2.2主要特性
|
编号 |
特性 |
|
|
FEAT01 |
研发经理能够创建项目、指定或修改项目经理、删除尚未分配工作任务的项目 |
|
|
FEAT02 |
项目经理可以对项目设置工作包,工作包允许多级嵌套,它只用来组织工作任务 |
|
|
FEAT03 |
项目经理可以为开发人员指派工作任务,工作任务属于特定的工作包 |
|
|
FEAT04 |
项目经理在分配工作任务时,能够查阅开发人员的日程安排表,可以按开发人员查询, 也可按日程查询 |
|
|
FEAT05 |
开发人员接到任务时,通过系统填写计划时间(计划开始时间和计划结束时间), 项目经理确认后,更新日程安排表 |
|
|
FEAT06 |
开发人员可以查询相近工作任务的历史数据(估算数据、实际数据) |
|
|
FEAT07 |
开发人员任务执行将超计划时,应报告项目经理,项目经理通过系统更新其日程表 |
|
|
FEAT08 |
当任务完成之后,项目经理负责Close任务,并填入实际的完成情况(KLOC、实际结束时间) |
|
|
FEAT09 |
开发人员可以随时记录自己的时间,提供“开始计时”、“暂停计时”、“停止计时”,在停止时, 填入任务编号(在线则选择)、工作关键字(以逗号分隔的多个),自动生成开始时间、 暂停时间、停止时间、总时长、有效时长(总时长-中断时长) |
|
|
FEAT10 |
开发人员可以根据任务编号、关键字、起止时间进行分类组合查询与统计 |
|
|
FEAT11 |
时间记录程序会自动连接服务器,完成时间日志上传的工作,未能连接服务器,则在本机暂存 时间日志 |
|
|
FEAT12 |
项目经理可以按项目、任务、关键字统计实际工作时长、产能 |
|
|
FEAT13 |
研发经理及管理层可以按个人、任务、项目、关键字查看工作时长、统计产能 |
|
|
FEAT14 |
自动检测程序员当天的产能并保存。 |
|
2.3 假设与依赖
开发人员能够按时地、准确地、客观地填写时间日志表。
3. 项目范围
|
编号 |
版本1 |
版本2 |
|
|
FEAT01 |
实现 |
实现 |
|
|
FEAT02 |
实现 |
实现 |
|
|
FEAT03 |
实现 |
实现 |
|
|
FEAT04 |
实现 |
实现 |
|
|
FEAT05 |
实现 |
实现 |
|
|
FEAT06 |
实现 |
实现 |
|
|
FEAT07 |
实现 |
实现 |
|
|
FEAT08 |
实现 |
实现 |
|
|
FEAT09 |
实现 |
实现 |
|
|
FEAT10 |
实现 |
实现 |
|
|
FEAT11 |
实现 |
实现 |
|
|
FEAT12 |
实现 |
实现 |
|
|
FEAT13 |
实现 |
实现 |
|
|
FEAT14 |
不实现 |
实现 |
|
4. 项目环境
4.1 操作环境
参与者一:开发人员
1.登录系统;
2.填写计划时间(1开始时间 2结束时间)--------项目经理确认后系统自动更新日程安排;
3.查询历史任务数据(1估算数据 2实际数据) 查询条件可以:1)任务编号 2)关键字 3)起止时间 以上三个条件可以分类组合进行查询与统计;
4.记录自己的开发时间( 1开始计时 2暂停计时 3停止计时 )----------系统生成记录时间日志
参与者二:项目经理
1.登陆系统
2.设置工作包
3.给开发人员指派任务(属于特定工作包)
4.查询开发人员的日程安排 查询条件可以: 1)开发人员 2)日程
5.更新开发人员的日程表(系统在开发人员执行将超时时报告项目经理)
6.任务完成后,close任务
7.填写实际完成情况(1 kloc 2 实际结束时间)
8.根据项目、任务、关键字统计实际工作时长、产能
参与者三:研发经理
1.登录系统
2.创建项目
3.管理项目经理(指定、修改项目经理)
4.删除尚未分配工作任务的项目
5.根据个人、任务、项目、关键字查看工作时长、统计产能
参与者四:管理层
1.根据个人、任务、项目、关键字查看工作时长、统计产能
4.2 涉众
这个系统中的主要涉众如下表:
|
涉众 |
特点 |
|
开发人员 |
掌握自己的进度,但估算可能出错 |
|
项目经理 |
部署项目结构与任务,掌握整体进度,统筹兼顾 |
4.3 项目属性
具体项目属性如下表:
|
属性 |
驱动因素 |
约束因素 |
可调整因素 |
|
特性 |
各个版本的功能必须完全可操作。 |
在最终版本中进行调整。 |
|
|
质量 |
用户满意度必须达到85%;必须通过全部的安全机制检查,系统能够在win7,winxp等操作系统下稳定工作。 |
在后续版本中完善功能提高用户满意度 |
|
|
成本 |
项目经理 |
必须控制开发费用在额定范围内 |
允许费用超过的最大额度不超过总经费的10% |
|
进度 |
项目经理 |
必须保证开发时间在规定时限范围内 |
开发时间最长不得超过规定时间2天 |
|
人员 |
团队规模包括一个项目经理,两名开发人员,和一名测试人员 |
人员数目按照规定严格控制 |
如果计划不够,可以适当增加人员务必保证在规定时间内完成项目。 |
词汇表:
psp,业务需求,项目前景,项目范围,项目环境。
参考资料:
需求工程—软件建模与分析
需求工程文档规范
psp个人软件过程需求文档的更多相关文章
- 产品需求文档(PRD)的写作方法之笔记一
1.写前准备(思维导图): http://www.woshipm.com/?p=80070 1.在写之前,请先很区分清楚什么是MRD文档(市场需求文档),BRD文档(商业需求文档),什么是PRD文档( ...
- PRD产品需求文档
什么是PRD? PRD是Product Requirement Document的英文缩写,即产品需求文档的意思.PRD昰产品流程中的最后一步工作,是将原型中的功能.界面具象化描述,是提交给设计(UI ...
- 需求文档2_The Battle of Polytopia
需求文档 ------------------------------------- 1. 游戏详细分析 The Battle of Polytopia简要介绍 探索型.策略型的对战塔防游戏,回合制. ...
- [转]产品需求文档(PRD)的写作
产品需求对产品研发而言非常重要,写不好需求,后面的一切工作流程与活动都会受到影响.转载一篇文章,关于产品需求文档写作方面的,如下: 本文摘自(一个挺棒的医学方面专家):http://www.cnblo ...
- PRD产品需求文档概要
PRD概念 PRM就是Product Requirements Document的简称,也就是产品需求模型.一般来说一个产品会伴随有市场需求文档(Market Requirements Documen ...
- Android APP开发需求文档范本
Android APP开发需求文档范本 软件需求文档格式的标准写法 1.引言 1.1 编写目的 • 阐明开发本软件的目的: 1.2 项目背景 • 标识待开发软件产品的名称.代码: • 列出本项目的任 ...
- 撰写POPUSH需求文档
不当家不知柴米贵,撰写了正规的软件需求文档才知道软件工程的复杂性 感谢@洪宇@王需@江林楠下午的加班加点,五个人正闷在406B奋斗中,加油!
- 产品需求文档 PRD
第一轮: 1,文档使用方:UI设计师 2.内容: 根据战略层定义出来产品功能范围, 说明此产品的目的,方便UI设计人员更好的理解产品 产品基本流程 详细 ...
- 优质产品需求文档(PRD)写作三大原则
在上一篇文章中有介绍,产品经理的两项主要职责包括:对产品机会进行评估,以及对开发的产品进行评估.而定义即将开发上线的产品,则需要借助产品需求文档,来进行产品的特征和功能描述.PRD文档的写作会因公司. ...
随机推荐
- 匹配不含有某个信息的sql语句写法
SELECT id,order_id,flight_info FROM order_flights WHERE mark=0 AND flight_info REGEXP '[^() DAY)]' O ...
- 数据库操作封装类 DBHelper.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Co ...
- Html.Action、html.ActionLink与Url.Action的区别
1.html.ActionLink返回的指向指定controller.指定action的超链接标签<a>标签.如果没有指定controller,则默认为本页面对应的Controller. ...
- js中如何把字符串转化为对象
例如 [javascript] var test='{ colkey: "col", colsinfo: "NameList" }' var ...
- IOS创建开源库步骤,提交cocoa pods官网,别人可以使用
1.打开终端进入某个目录执行 pod lib create BMBlinkButton,按命令步骤执行. 2.目录结构 3.修改BMBlinkButton.podspec文件 4.进入Example ...
- 26.单片机中利用定时器中断,在主流程while(1){}中设置每隔精确时间计量
{ CountMilliseconds++;//只负责自加,加到最大又重新从0开始 } u16 setDelay(u16 t) { ); } u8 checkDelay (u16 t)//返回非零表示 ...
- JQUERY1.9学习笔记 之基本过滤器(一) 动态选择器
动态选择器:animated Selector 描述:当选择器运行时,选择动态进程中的所有元素.(对动态进程起作用) jQuery( ":animated" ) 注释::anima ...
- 在PHP中获取日期和时间
PHP提供了多种获取时间和日期的函数,除了通过time()函数获取当前的UNIX时间戳外,调用getdate()函数确定当前时间,通过gettimeofday()函数获取某一天中的具体时间.此外,在P ...
- 【课上OJ】判断密码强度
一个判断密码强度问题: 假设允许采用以下四类字符作为密码: (1)大写英文字母,(2)小写英文字母,(3)数字0-9,(4)特殊符号 @ - _ # ~ 对密码强度做以下规定: Best: 长度> ...
- 文件磁盘读写类CArchive类
CArchive类的成员 数据成员 m_pDocument 指向被串行化的CDocument对象 构造函数 Carchive 创建一个Carhcive对象 Abort在不异常的情况下,关闭归档文件 C ...