需求工程:
- 关注于软件系统所应该实现的现实目标,软件系统应当实现的功能需求和应当遵守的约束
- 关注于上述因素和准确地软件行为规格说明之间的联系
- 关注于以上因素于随时间和产品演化而变化的因素之间的联系
需求工程的活动划分为以下5个独立的阶段:
- 需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求;
- 需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义;
- 形成需求规格:生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约;
- 需求验证:以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性;
- 需求管理:支持系统的需求演进,如需求变化和可跟踪性问题。
需求分析:
需求的分层(每层对应内容及含义、表达方式等)
1.业务需求:针对整个业务的期望
业务需求是抽象层次最高的需求,是系统建立的战略出发点,表现为高层次的目标
它描述了组织为什么要开发系统 。
2.用户需求:针对具体业务的期望
执行实际工作的用户对系统所能完成的具体任务的期望,
描述了系统能够帮助用户做些什么。
其基本表达方式为“XX用户可以使用系统完成XX任务”
Eg:销售处理
q UR1:收银员可以使用系统逐一记录销售的商品
q UR2:收银员可以使用系统计算商品账单并处理付
3.系统级需求:针对用户与系统一次交互的期望
业务需求描述了系统的目标与效益,适合决策者。用户需求描述了具体任务,适合用户;它们都不适合于软件开发者。适合软件开发者的需求层次是系统级需求,它关注的是软件系统的行为,尤其是系统与外界的交互行为:在接收到一个外界请求时,软件系统应该给外界提供响应。
系统级需求的典型形式是“系统可以XXX”或者“在XX用户提出XX请求时,系统应该XXX”。
需求分类:
- n 功能需求:和系统主要工作相关需求,功能需求主要表现为系统和环境之间的行为交互。
- n 性能需求:系统整体或系统组成部分应该拥有的性能特征,例如CPU使用率。
- n 质量属性:系统需要在一个“好的程度”上实现功能需求,例如可靠性程度。
- n 对外接口:系统和环境中其他系统之间需要建立的接口,包括硬件接口、数据库接口。
- n 约束:进行系统构造时需要遵守的约束,例如编程语言、硬件设施等
优秀需求的特性
- n 可行性 需要进行一定的分析和研究,必要的时候要通过开发原型来加以验证
- n 必要性 满足用户的业务需求所必需的
- n 无歧义 每一项需求都应该有而且只能有一种解释定义一个可以共同理解的词汇表
- n 可验证 通过分析、检查、模拟或者测试等方法能够判断需求是否被满足 让需求具体化
- n 完备性 正确性 可行性 必要性 无歧义 可验证
需求工程过程
需求获取 需求获取是从人、文档或者环境当中获取需求的过程n
q 收集背景资料 定义项目前景和范围 选择信息的来源 选择获取方法,执行获取 记录获取结果
需求分析 建模来整合各种信息,以使得人们更好的理解问题,为问题定义出一个需求集合,这个集合能够为问题界定一个有效的解决方案,检查需求当中存在的错误、遗漏、不一致等各种缺陷,并加以修正
n 需求分析子活动
q 背景分析 问题分析、目标分析、业务分析,确定系统边界 需求建模 需求细化 确定优先级 需求协商
需求规格说明 获取的需求需要被编写成文档,主要目的是为了在
系统涉众之间交流需求信息 业务需求被写入项目前景和范围文档 用户需求被写入用户需求文档(或者用例文档)系统需求被写入需求规格说明
n 需求规格说明子活动
q 定制文档模版 编写文档 需求验证 确保文档的高质量
n 文档内每条需求都正确、准确地反映了用户的意图;
n 文档记录的需求集在整体上具有完整性和一致性;
n 文档的组织方式和需求的书写方式具有可读性和可修改性
需求验证子活动
q 执行验证 问题修正
需求管理 保证需求作用在整个软件的产品生命周期中的持续、稳定和有效发挥
q 需求管理子活动
q 建立和维护需求基线集 建立需求跟踪信息 进行变更控制
上下文图:关注解决方案与环境之间的信息流输入/输出
用例图:关注外部角色在与解决方案的交互中完成的任务与目标
第五章总结:
确定项目的前景和范围是需求工程以及整个项目的重要工作,它决定着整个项目后继工作的方向
n 确定项目的前景和范围
q 简单情况下可以使用问题分析方法
q 复杂情况下需要基于目标模型进行
q 如果涉及复杂工作流程,就需要进行业务过程分析
q 如果涉及复杂非功能需求,可以借助目标模型来进行
n 项目的前景和范围需要以文档的方式明确的固定下来
涉众识别方法
n 简单方法:先膨胀后收缩(Expand à Shrink)
n 经验方法:检查列表(Checklist)
n 经典方法:涉众网络
涉众采样基本原则:
完整采样、态度积极、数量适中、比例恰当
涉众分析过程五点:
涉众识别,涉众描述,涉众评估,涉众代表选择,涉众参与策略制定
涉众网络基本过程:
1. 从一些比较容易发现的涉众出发,通常包括客户、管理者和相关的投资者
2. 由初始涉众集体讨论,列出一个涉众类别列表
3. 对上一步产生的涉众类别列表进行分析 ,缩减为一个关键涉众类别列表
4. 由上一步的各个关键涉众类别选择代表,集中讨论,列出新的涉众类别列表如果涉众类别列表趋于稳定,就结束涉众识别过程 ,否则转向第2步
涉众简单特征描述
个人特征 年龄、性别、学历、职业、对新技术的态度技能,身体能力
工作特征 任务 使用状况(利用程度、使用频率等) 技能和经验(新手――专家)
地理和社会特征 地理:区域、国家文化背景 社会关系
Eg:药剂师
药剂师将使用系统请求来自供应商和仓库的化学制品。药剂师每天多次使用系统,主要用于跟踪进出实验室的化学制品容器。药剂师需要在供应商目录中查找指定化学制品
涉众深度信息描述
n 对项目的关注点和兴趣所在,态度是反对还是赞同;
n 对项目的期望,成为项目赢家的条件;
n 可能受到的项目的影响,影响的具体内容及影响程度;
n 可以对项目施加的影响,力量的施加点及其强度。
涉众 主要目标 态度 主要关注点 约束条件
优先级评估
基于涉众扩展特征进行涉众优先级的评估
需求协商应确保的三点原则
明确冲突的因素,避免情绪上的冲突
明确冲突的解决空间
确定最佳解决方案