需求工程的方法 过程、方法和技术 描述的重要性 建模的作用
需求工程的方法 过程、方法和技术 描述的重要性 建模的作用
需求工程的维度 ◆表示维(代表需求的可维护、可验证的程度) 非形式的:自然语言 ■半形式的:图形语言(如:UML,DFD,等) ■形式的:数学或逻辑语言(如:Z,等) ◆内容维(代表需求工程的进行程度) ■模糊的客观世界现象 明确的需求规格说明 致性维 代表某个投资者的观点 得到全部投资者的认可
需求工程的维度 表示维(代表需求的可维护、可验证的程度) ◼ 非形式的:自然语言 ◼ 半形式的:图形语言(如:UML,DFD,等) ◼ 形式的:数学或逻辑语言(如:Z,等) 内容维(代表需求工程的进行程度) ◼ 模糊的客观世界现象 ◼ 明确的需求规格说明 一致性维 ◼ 代表某个投资者的观点 ◼ 得到全部投资者的认可
需求工程的三维视图 内容维 完全 般 模糊 表示维 非形式非形式 形式 接受度维
需求工程的三维视图 非形式 非形式 形式 规格说明 表示 一致的程度 模糊 一般 完全 个人观点 公共的观点 表示维 内容维 接受度维
再论描述的重要性 ◆软件开发:获取描述+逐步精化 需求:是过程的起点 需求 设计 代码 问题 系统 描述 需求
再论描述的重要性 软件开发:获取描述+逐步精化 需求:是过程的起点 需求 设计 代码 系统 需求 问题 描述
什么、怎样、相互转化 传统地,需求应该说明‘什么’而不 说明‘怎样’ 系统什么 但是这不很容易区分: 需求 辆小汽车做什么? 怎样 ●一个WEB浏览器做什么? 在某个抽象层次上的怎样’形成下子系统<什么 设计 个层次上的“什么 需求 怎样 Jackson&Zave的工作提供了一个区分: 什么’涉及系统的目的 单元 什么分设计 ●对系统来说是外部的 需求 怎样 是应用领域的特性 ■‘怎样’涉及系统的结构和行为 2设计 对系统是内部的 ●是机器领域的特性
什么、怎样、相互转化 传统地,需求应该说明‘什么’而不 说明‘怎样’ ◼ 但是这不很容易区分: ⚫ 一辆小汽车做什么? ⚫ 一个WEB浏览器做什么? ◼ 在某个抽象层次上的‘怎样’形成下 一个层次上的‘什么’ Jackson&Zave的工作提供了一个区分: ◼ ‘什么’涉及系统的目的 ⚫ 对系统来说是外部的 ⚫ 是应用领域的特性 ◼ ‘怎样’涉及系统的结构和行为 ⚫ 对系统是内部的 ⚫ 是机器领域的特性 需求 需求 需求 设计 设计 设计 系统 子系统 单元 什么 什么 什么 怎样 怎样 怎样
关注于问题 问题先于解决方案 ■硬件和软件都能正常运行,但它起的作用却不是所想要的 对提早发现潜在的困难有帮助,困难越后发现越难解决 计算机系统和现实世界的关系 计算机系统 计算机系统 以外的世界 世界和计 解决方 算机之间 问题在此 案在此 的连接
关注于问题 问题先于解决方案 ◼ 硬件和软件都能正常运行,但它起的作用却不是所想要的 ◼ 对提早发现潜在的困难有帮助,困难越后发现越难解决 计算机系统和现实世界的关系 计算机系统 计算机系统 以外的世界 解决方 案在此 问题在此 世界和计 算机之间 的连接
需求处于环境之中 机器 ■我们称要被开发出来的软件系统为机器 ■硬件是为了运行软件而存在的,因此是机器的一部分 应用领域 机器将与它所处的环境发生交互 建立机器为了实现现实世界中的某个目的 定义机器的环境,就是定义应用领域 应用领域常常是人类活动的系统 实现的决策是出于那些在应用领域中没有基础的需求 ■例子:字典要存放在Hash表中;病人记录要存放在一个面向对 象数据库中
需求处于环境之中 机器 ◼ 我们称要被开发出来的软件系统为机器 ◼ 硬件是为了运行软件而存在的,因此是机器的一部分 应用领域 ◼ 机器将与它所处的环境发生交互 ◼ 建立机器为了实现现实世界中的某个目的 ◼ 定义机器的环境,就是定义应用领域 ◼ 应用领域常常是人类活动的系统 实现的决策是出于那些在应用领域中没有基础的需求 ◼ 例子:字典要存放在Hash表中;病人记录要存放在一个面向对 象数据库中
需求的环境 客户 供应商 订购 订购,付 帐单 款 财务报告 零售企 信用状态业系统 发货通知 帐单,查运送报告 银行帐 仓库 户部门
需求的环境 零售企 业系统 客户 银行帐 户部门 仓库 供应商 订购,付 款 帐单 信用状态 帐单,查 询 订购 财务报告 发货通知 运送报告
需求的环境 借书 还书 续借
需求的环境 借书 还书 续借
需求就是描述 ◆指代: ■环境中的实体:为它规定一个名字 观察到的现象:告诉你怎样识别它,并为它规定一个 名字 ■指代通常是非形式的,但它将一个模糊的现象映射到 个形式的(或者说可表达的)语言上 定义 为一个术语给出形式的定义,使这个术语能在其它描 述中使用 定义或多或少是有用的,但它却是没有对错的
需求就是描述 指代: ◼ 环境中的实体:为它规定一个名字 ◼ 观察到的现象:告诉你怎样识别它,并为它规定一个 名字 ◼ 指代通常是非形式的,但它将一个模糊的现象映射到 一个形式的(或者说可表达的)语言上 定义 ◼ 为一个术语给出形式的定义,使这个术语能在其它描 述中使用 ◼ 定义或多或少是有用的,但它却是没有对错的