项目管理理论与实践(2)——软件需求分析

一、需求分析的目的

1. 马斯洛的需求层次理论

具体可以参考:(http://baike.baidu.com/view/295140.htm

2. 需求分析的目的

1)与相关干系人在工作内容方面达成并保持一致

2)使设计、开发、测试人员能够更清楚地了解需求

3)定义系统边界,形成需求基线

4)为估算系统的规模、工作量、成本和进度提供基础

5)为开发计划的形成提供范围(SOW)基础

二、需求工程概述

1. 什么是需求工程?用一张图可以形象的表示

需求也属于一门工程学,需求工程包括需求开发、需求管理两个方面,其中需求开发包括需求开发准备、需求获取、需求分析、需求验证。

2. 需求分析的流程图

三、需求获取

1. 需求获取的基本原则

1)深入浅出

对企业的需求调研的要尽可能的全面、细致调研的需求是个全集,系统真正实现的是个子集。

调研的细致并不等于在分析时都面面俱到地将调研的内容纳入到新系统中, 而有可能实现的很少,但其中在向细处扩充时将会很容易。

2)以流程为主线

应该用流程将所有的内容串起来,如单据、信息、组织结构、处理规则等。

流程的描述既要有宏观,又要有微观。

3)鱼刺图

石川图,鱼骨图, ishikawa图

2. 六边形法则

1)组织结构:企业为进行相应的业务流程所做的人员的组织安排。

2)业务流程:企业开展业务所必须的各个环节及在每个环节中的具体做法。

3)业务数据:企业内部经营信息的存储和流动形式。

4)业务地点分布:反映企业在什么地方开展业务以及业务流程中的各个环节之间的地点关系。

5)业务应用:企业以什么样的应用软件处理业务流程中的各个环节。

6)技术基础设施:企业在信息技术基础设施上的状况。

五、需求分析

1. 绘制关联图

1)用于定义系统与系统外部实体间的界限和接口的简单模型。

2)明确了通过接口的信息流和物流。

2. 创建开发原型

1)使得许多概念和可能发生的事更为直观明了。

2)用户通过评价原型将使项目参与者能更好地相互理解所要解决的问题。

3. 确定需求优先级

1)应用分析方法来确定使用实例、产品特性或单项需求实现的优先级别。

2)以优先级为基础确定产品版本将包括哪些特性或哪类需求。

3)帕雷托图定理(Pareto,2,8定理)

4. 为需求建立模型

1)是软件需求规格说明极好的补充说明。

2)它们能提供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的和冗余的需求。

3)这样的模型包括用例图、流程图、实体关系图、状态图、时序图、类图、对象类及交互调用图。例如:

并且书写用例情况

用例名称:网站新闻发布
用例标识号:102
角色:后台系统管理员
用例说明:后台系统管理员用来填写和修改物流网站首页的新闻,新闻最终显示在物流网站的首页上。
前置条件:后台系统管理员已经登录物流网站后台管理系统
基本事件流:

1. 选择发布新闻

2. 填写新闻标题,内容以及上传图片

3. 修改标题、内容、图片,也可以完全删除,重填新闻信息

4. 编辑完成,选择提交

5. 用例终止


其他事件流:在提交之前,随时可以返回,任何修改内容都不会影响网站首页的新闻

异常事件流:

1. 提示图片大小超过范围错误信息,重新上传,

2. 返回到后台管理系统主页面


后置条件:网站首页的新闻信息被更新


注释:

5. 编写数据字典

1)创建数据字典,数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。

2)在需求阶段,数据字典至少应定义客户数据项以确保客户与开发小组是使用一致的定义和术语。

6. 应用质量功能调配要

1)将产品特性、属性与对客户的重要性联系起来。

2)明确那些是客户最为关注的特性。

3)将需求分为三类:

–期望需求,即客户或许并未提及,但如若缺少会让他们感到不满意

–普通需求

–兴奋需求,即实现了会给客户带去惊喜,但若未实现也不会受到责备

六、编写需求规则说明书

1. 采用软件需求规格说明模版

1)为记录功能需求和各种其它与需求相关的重要信息提供了统一的结构。

2)其目的并非是创建一种全新的模板,而是采用一种已有的且可满足项目需要并适合项目特点的模板。

1. 概述 编写目的 系统目标 术语定义    
2. 功能需求 功能划分 模块名 子模块 功能名称 功能描述
3. 非功能需求 性能指标 可维护性 可扩展性 安全性  
4. 设计约束 语言约束 系统模型约束      
5. 界面要求 页面布局        
6. 验收标准          
7. 附件 数据字典 模型      

2. 指明需求的来源

1)为了让所有项目风险承担者明白需求规格说明书中为何提供这些功能需求,要都能追溯每项需求的来源;

2)可能是一种使用实例或其它客户要求,也可能是某项更高层系统需求、业务规范、政府法规、标准或别的外部来源。

3. 为每项需求注上标号

1)可跟踪性和可修改性的质量标准,必须唯一确定每个软件需求。

2)为每项需求注上标号制定一种惯例来为需求规格说明书中的每项需求提供一个独立的可识别的标号或记号。

3)这种惯例应当很健全,允许增加、删除和修改。

4)作了标号的需求使得需求能被跟踪,记录需求变更并为需求状态和变更活动建立度量。

5)需求标识方法有序列号;层次化编码;使用"待确定"(to be determined, TBD)符号等。

4. 记录业务规范

1)是指关于产品的操作原则,比如谁能在什么情况下采取什么动作。

2)将这些编写成需求规格说明书中的一个独立部分,或一独立的业务规范文档。

七、需求验证

1. 审查需求文档

1)在需求开发期间进行非正式评审。

2)对需求文档进行正式审查是保证软件质量的很有效的方法。

3)组织一个由不同代表(如分析人员,客户,设计人员,测试人员)组成的小组,对需求规格说明书及相关模型进行仔细的检查。

2. 依据需求编写测试用例

1)根据用户需求所要求的产品特性写出黑盒功能测试用例。

2)客户通过使用测试用例以确认是否达到了期望的要求。

3)从测试用例追溯回功能需求以确保没有需求被疏忽,并且确保所有测试结果与测试用例相一致。

4)要使用测试用例来验证需求模型的正确性,如对话框图和原型等。

3. 确定合格的标准

1)确定合格的标准让用户描述什么样的产品才算满足他们的要求和适合他们使用的。

2)将合格的测试建立在使用情景描述或使用实例的基础之上。

4. 需求确认签字

1)在主要的业务清楚以后即可以进行需求确认

2)目的是确定需求基线

3)不要期望所有的需求在签字后不变

八、需求管理

1. 需求基线

1)软件需求规格说明及相关分析模型。经评审批准,这些文档就定义了开发工作的需求基线;

2)建立需求基准版本和需求控制版本文档确定一个需求基准,这是一致性需求在特定时刻的快照;

3)之后的需求变更就遵循变更控制过程;

4)每个版本的需求规格说明都必须是独立说明,以避免将底稿和基准或新旧版本相混淆。

2. 需求变更控制

1)确定需求变更控制过程,确定一个选择、分析和决策需求变更的过程。

2)需求变更控制流程

3. 建立变更控制委员会

1)组织一个由项目风险承担者组成的小组作为变更控制委员会,由他们来确定进行哪些需求变更,此变更是否在项目范围内,估价它们,并对此评估作出决策以确定选择哪些,放弃哪些,并设置实现的优先顺序,制定目标版本;

2)变更控制委员会成员可以是甲方与乙方的人员共同组成;

3)定期进行需求变更评审会议;

4)每次评审要有评审报告。

4. 需求变更影响评估

1)进行需求变更影响分析,应评估每项选择的需求变更,以确定它对项目计划安排和其它需求的影响。

2)明确与变更相关的任务并评估完成这些任务需要的工作量。

5. 需求变更时,修改需求跟踪能力矩阵

1)跟踪所有受需求变更影响的工作产品当进行某项需求变更时,参照需求跟踪能力矩阵找到相关的其它需求、设计模板、源代码和测试用例,这些相关部分可能也需要修改。

6. 维护需求变更的历史记录

1)记录变更需求文档版本的日期以及所做的变更、原因,还包括由谁负责更新和更新的新版本号等。

2)在需求基线的基础上记录变更历史记录;

3)针对每一个需求形成一个单独记录;

通过对于软件需求分析的学习,知道需求分析要承担着很多风险,因此做好计划以及风险控制是非常重要的。

时间: 2024-11-05 04:55:34

项目管理理论与实践(2)——软件需求分析的相关文章

项目管理理论与实践(7)——软件开发报价的计算方法

1.软件开发价格估算方法软件开发价格与工作量.商务成本.国家税收和企业利润等项有关.为了便于计算,给出一个计算公式: 软件开发价格 = 开发工作量 × 开发费用/人·月 1.1开发工作量软件开发工作量与估算工作量经验值.风险系数和复用系数等项有关: 软件开发工作量 = 估算工作量经验值 × 风险系数 × 复用系数 1.1.1估算工作量经验值(以A来表示)软什开发工作量的计算,曾有人提出以源代码行或功能点来计算,这些方法实施起来均有不少难度.目前国际上仍旧按以往经验的方式加以计算,国内各软件企业也

软件项目需求开发过程实践之软件需求说明书

软件需求说明书为谁而编写?把这个问题搞清楚是非常有意义的. 先讲个故事. 在软件项目开始时,需求及架构设计人员把需求和架构方案讲给开发人员听,开发人员还在设计"他那辆车",没有听明白?需求及架构设计人员接着写出一些列文档后,开发人员还在设计稍作调整"他那辆车",沟通出现了问题了吗?项目完成后,最后结果仍是开发人员所设计的,已经变形的"他那辆车". 问题的源头当然在需求,需求人员又如何把需求调研结果无损的分享给"相关人员"呢?其

项目管理理论与实践(1)——企业项目管理介绍

一.企业项目管理的概念 1. 什么是项目管理 这里把"项目管理"关键词拆解为2个词:项目.管理. 项目:为完成某一独特产品或服务所做的一次性努力. 管理:同别人一起,或通过别人使活动完成得更有效的过程. 项目管理:把各种系统.方法.人员结合在一起,在规定的时间.预算和质量目标范围内完成项目的各项工作. 2. 项目管理都管理什么 项目范围管理,项目时间管理,项目成本管理,项目质量管理,其他相关的包括:人力资源管理,沟通管理,风险管理,采购管理,整体管理 3. 项目管理的演变 1)针对单个

项目管理理论与实践(4)——UML应用(上)

本篇文章介绍UML的相关知识.参考<UML从入门到精通> 一.UML综述 1. UML简介 统一建模语言(UML)是一个通用的可视化建模语言,用于对软件进行描述.可视化处理.构造和建立软件系统制品的文档.UML描述了一个系统的静态结构和动态行为. UML将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定功能的模型结构.静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系.动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制.从不同但相互联系的角度对系统建立的

项目管理理论与实践(6)——利用Excel制作项目文档的设计技巧

这篇是使用的Excel 2007 进行文档设计,Excel的设计也是一门学问,这里主要介绍一些Excel的设计技巧,后面也会陆续更新该文章. 1. 固定某行某列 首先设计这样的任务管理文档: 现在我想保持第一行以及前两列是保持固定.那么,我首先需要选定一个单元格,而这个单元格的左上角就是文档行列分割固定点.如图所示: 这里我选定的单元格是C2,然后选择"视图"-> "窗口" –> "冻结窗格" 这里选择"冻结拆分窗格&quo

项目管理理论与实践(5)——UML应用(下)

本篇文章介绍UML的相关知识.参考<UML从入门到精通> 六.状态机视图 1. 概述 状态机视图通过对类对象的生存周期建立模型来描述对象随时间变化的动态行为.状态是给定类的对象的一组属性值 ,这组属性值对所发生的事件具有相同性质的反应.状态机用于描述类的行为,但它们也描述用例.协作和方法的动态行为. 2. 状态机 状态机是展示状态与状态转换的图.通常一个状态机依附于一个类,并且描述一个类的实例对接受到的事件所发生的反应.状态机也可以依附于操作.用例和协作并描述它们的执行过程. 3. 事件 事件

软件需求分析教程阅读笔记一

软件需求分析教程阅读笔记一 许多工程项目不能按时完成或者最后导致失败的一个很大的原因就是弄不清需求是什么,不能准确理解客户的需求意图,所以前期做好需求调研是一件非常重要的工作,是一件与系统代码开发占有同等比重的工作. 读这本书的同时,要注意实践过程,不必非得要从一个新项目开始应用,可以找一个以前的或者是现在正在进行的项目,根据书中所讲,着手开始实践. 软件需求就是需要知道是什么和为什么. 在软件开发当中遇到的许多问题,都是由于收集,编写,协商,修改产品需求过程中的手续和做法失误所带来的.需求分析

软件需求分析复习要点

本文根据华南理工大学软件学院<软件需求分析>课程及相关教材<UML和模式应用>总结,作复习回顾用. Chapter. 1 面向对象分析与设计(OOA/D) UML是标准的图形表示法.它并不是OOA/D,也不是方法.OOD(以及所有软件设计)与作为其先决活动的需求分析(requirement analysis)具有紧密联系,而在需求分析中通常包含用例(use case)的编写. 分析(analysis)强调的是对问题和需求的调查研究,而不是解决方案.“分析”要加以限制,说清楚是“需求

【转】软件需求分析方法

软件需求分析(Software Reguirement Analysis)是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的.可验证的一个基本依据. 软件需求分析是一个项目的开端,也是项目实施最重要的关键点.据有关的机构分析结果表明,我们设计的软件产品存在不完整性.不正确性等问题80%以上是需求分析错误所导致的,而且由于需求分析错误造成根本性的功能问题尤为突出.因此,一个项目的成功软件需求分析是关键的一步. 一. 软件需求分析理论 如果我们用数学方法来