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文档的写作会因公司. ...
随机推荐
- Apache和Nginx平滑重启
之前修改了服务器配置都是简单粗暴的用restart重启apache/nginx,据说这样不好.需要平滑重启服务器,避免重启时打断用户行为.然后就根据官方文档了解了一下平滑重启的命令.本文根据Apach ...
- 腾讯云升级到PHP7
1.删除之前安装的PHP yum remove php* php-common 2.安装yum源 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel ...
- CSS3 target 伪类不得不说那些事儿(纯CSS实现tab切换)
是不是觉得target有点眼熟?! 今天要讲的不是HTML的<a>标签里面有个target属性. target伪类是css3的新属性. 说到伪类,对css属性的人肯定都知道:hover.: ...
- XML Schema (1)
XML Schema 是基于 XML 的 DTD 替代者. XML Schema 描述 XML 文档的结构. XML Schema 语言也称作 XML Schema 定义(XML Schema Def ...
- C/C++中的&&和||运算符
代码: #include <iostream> #include <cstdio> using namespace std; int main(){ ,b=,c=-,d=; d ...
- 用Set中元素做条件查询
一个老师教许多学生,一个学生被许多老师教,一个学生有好多书,同一种书被许多同学拥有.查询教拥有书"a"的学生的老师: class teacher{ String id; ...
- C语言+ODBC+SQL 操作(向SQL里面添加数据)
为了节省时间,我就引用上一节的数据库的表和C语言的结构体数组,在结构体数组中添加数据,清空数据库数据. 第一步查询:SQLBindParameter函数的用法. SQLRETURN SQLBindPa ...
- MVC4,4月22日,Ninject的另外注入方式。
学习了Ninject另外两种绑定注入的方式: 1.根据属性绑定 先在特殊的实现借口类中定义属性 使用 2.根据构造函数方式绑定 学习了条件绑定方式(conditional bindi ...
- 一次awk脚本的重构
# 脚本功能说明: # . 检查URL中的域名是否是指定版本的域名 # . 对访问bid,authorid的游客身份排重,并累加其pv # 全局变量说明 # DOMIAN_LIST 是数组,key是要 ...
- 转:MFC创建多线程实例
作者:http://blog.csdn.net/wangningyu/article/details/4404134 平时在MFC里使用多线程时其实是很方面的,因为微软提供了一个API让我们很方面的去 ...