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文档的写作会因公司. ...
随机推荐
- 关于飞控下载时候出现avrdude: stk500_getsync(): not in sync: resp=0x00错误的解决方法
avrdude: stk500_getsync(): not in sync: resp=0x00该问题表述为串口通信失败 经过分析,出现这种情况的原因大致有:1.arduino在IDE下载过程中没有 ...
- KVM virt-manager使用.
本来不想写,但是觉得教程就应该详细点..所以又有了这篇文章..主要是对图形化kvm管理的一些说明 接着上一篇... 1.Virtual Machine Manager 摘要: 打开Virtual Ma ...
- ios nslog 打印字典为中文
#import <Foundation/Foundation.h> @implementation NSDictionary (Log) - (NSString *)description ...
- spring事务分类简述
spring事务的传播行为是面试中经常被问到的问题,要将事务的传播行为与隔离级别熟练的掌握,在实际开发过程中,特别是在并发高.更新数据量大.关系表比较多的情况下,经常会遇到关于事务的问题.首先,要了解 ...
- php随机抽奖实例分析
<?php header('Content-type:text/html;charset=utf-8'); /** * 抽奖工具 */ class lottery_tool { protecte ...
- ubuntu下 使用AB做压力测试
1最近刚开始接触apache大数据下数据优化,讲一下apache 下ab压力测试工具. 程序“ab”尚未安装. 您可以使用以下命令安装: apt-get install apache2-utils 以 ...
- C++快速排序实现(quicksort)
quicksort:分治思想. 分解:数组A[p, r)被划分成两个子数组A[pq) 和 A[q+1, r),使得A[pq)中的每个元素小于等于A[q], A[q]也小于A[q+1r)中的每个元素.q ...
- Python学习笔记五--条件和循环
5.1 if语句 没什么好说,if语句语法如下: if expression: expr_true_suit 5.1.1多重条件表达式 单个if语句可以通过布尔操作符and,or,not实现多重条件判 ...
- 如何使用service命令来管理nginx
如何使用service命令来管理nginx??? 如: service nginx start service nginx restart service nginx stop service ngi ...
- iOS 数据库操作(使用FMDB)
iOS 数据库操作(使用FMDB) iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...