什么是软件需求?

软件需求实际就是“业务知识+问题列表+其他元素”。软件需求的三层次:业务需求、用户需求、软件需求。需求也有着三种类型:功能需求、非功能需求、设计约束。

需求工程解析

1 需求工程解析

 1.1 需求工程的范畴

1、需求开发:收集、分析、整理、编写、验证

2、需求管理:对需求的实现、变化进行追踪的全过程,重点在于确保开发的软件满足这些需求

   1.2 需求开发的三次循环

循环

工作任务

对应的RUP阶段

初始循环

明确项目目标与范围,完成子系统划分及相关内容和接口

初始阶段

脉络循环

通过对每个 业务事件进行流程分析、业务实体分析,并表示出所有用例

细化阶段的第一迭代

细节循环

对每个用例的细节进行分析,包括事件流,用户界面原型

细化阶段的第二次迭代构建阶段

 

分析说明:

1需求获取

需求的捕获,它们都是主动词,而现实的需求实践中最大的问题是比较被动的。主要体现在:

1、捕获范围不足(对业务知识的不足)

2、缺乏计划性(预先对问题、时间、采访对象没有计划)

3、缺乏科学性(如宏观与微观问题混在一起)

4、捕获对象不明确(很少主动寻找合适的被访者)

5、捕获手段不足(对场景不同时需求的捕获缺乏)

2需求分析

1需求分析是什么

定义:

1、需求分析是业务分析

2、需求分析是一种分解活动

3、需求分析是一种提炼与整合活动

4、需求分析是一种规格化活动

 

2内容与形式

分析是任务,建模时手段,利用建模可以用图形代替文本,以更加可视化的方法表示信息,产生的结果并不一定非得是规范性很高的模型

建模的主要要点:

1、尽可能进行团队建模

2、大胆使用草图建模

 

3何时开始与结束

迭代式需求分析:

1、分析活动逐渐从本质需求过渡到边缘需求

2、RUP中的细化阶段是需求分析活动最密集的阶段

3、到了RUP中的构建阶段,需求分析活动将逐渐减少

3编写规约

良好的源代码和注释就是最好的文档

软件规格说明书应具有:

1、共享;可获得(软件开发团队可以在开发需要时获得最新版本的规格说明书),可获知(利用开发模板确保软件需求说明书的读者知道自己需要的信息在哪些章节)

2、更新;专人更新(按不同章节指定更新人),写作风格(确保一类信息只在一处描述)

4需求验证

需求验证的关键手段:评审

主要要点:分层次、分内容进行验证

诫语

  1. 在需求捕获活动中,化被动为主动是关键
  2. 需求分析就是向下分解+向上提炼,外加一些规格化
  3. 需求分析是目标,需求建模是手段
  4. 在编写需求规格说明书时,应确保一类信息只在一处描述