第5章 进化式需求

本文为《UML和模式应用(原书第3版)》读书笔记


需求

  • 需求就是系统必须提供的能力和必须遵从的条件。
  • UP不主张采用瀑布的观点。
  • UP推崇用一种系统的方法来不断寻找、记录、组织和跟踪不断变更的需求,简而言之,就是通过迭代巧妙地进行需求分析
  • 需求分析的最大挑战是寻找、沟通和记录什么是真正需要的,并能够清楚地讲解给客户和开发团队的成员。

进化式需求与瀑布式需求

  • 两者的核心差异在于UP能够包容需求中的变更,并将其作为项目的基本驱动力
  • 瀑布思想的错误根源在于,将软件项目与大规模制造业项目视为等同,但后者是可预测的、低变更率的,前者则是具有高变更率的新产品开发领域,具有大量新奇事物,需要大量的发现和探索。
  • 据统计,软件项目的平均需求变更率为25%。试图使用瀑布式需求分析时,早期定义的特性中,有45%的特性从未使用,有19%的特性罕有使用,几乎65%的瀑布式定义的特性少有或根本没有价值。
  • 结合早期时间定量的迭代开发,进行迭代和进化式需求分析,并且引入频繁的涉众参与、评估和对局部结果的反馈。

寻求需求可以采用的方法

  • 例如与客户一起编写用例或者参加需求讨论会,向客户演示每次迭代的成果以求得反馈。
  • UP欢迎任何能够带来价值并提高用户参与度的需求启发方法。

需求的类型和种类

在统一过程中,需求按照“FURPS+”模型进行分类(FURPS是一种识别软件质量属性的模型)。

  • 功能性(function):特性、功能、安全性。
  • 可用性(usability):人性化因素、帮助、文档。
  • 可靠性(reliability):故障频率、可恢复性、可预测性。
  • 性能(performance):响应时间、吞吐量、准确性、有效性、资源利用率。
  • 可支持性(supportability):适应性、可维护性、国际化、可配置性。

“+”指一些辅助性和次要的因素。

  • 实现(implementation):资源限制、语言和工具、硬件等。
  • 接口(interface):强加于外部接口系统之上的约束。
  • 操作(operation):对其操作设置的系统管理。
  • 包装(packaging):例如物理的包装盒。
  • 授权(legal):许可证或其他方式。

使用FURPS+作为需求范围的检查列表,可以避免遗漏系统某些重要方面。
可用性、可靠性、性能和可支持性的这类需求统称为质量属性、质量需求,这类需求对系统架构具有极大影响。
在一般使用中,需求按照功能性和非功能性来分类。

UP制品如何组织需求

关键的需求制品包括:

  • 用例模型,一组使用系统的典型场景,主要用于功能需求。
  • 补充性规格说明,基本上是用例之外的所有内容,主要用于所有非功能性需求。也用来记录不能表示为用例的功能特性,例如报表生成。
  • 词汇表,定义重要的术语并包含数据字典的概念。(数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目)。
  • 设想,概括了高阶需求,这些需求在用例模型和补充性规格说明中进行细化,是简短的执行概要文档,用以快速了解项目的主要思想。
  • 业务规则,也叫作领域规则,通常描述了凌驾于某一软件项目的需求或政策,这些规则是领域或业务所要求的,例如政府的政策。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值