需求抽取(I 传统的方法 交谈和问卷 情景、目标和用例
需求抽取(I) 传统的方法 交谈和问卷 情景、目标和用例
软件开发的四个世界 关于应用领域的信 问题世界 机器如何表示关于 息如何被系统使用 应用领域的信息 使用世界 用户界面 系统世界 开发目标的证明 开发世界 设计决策
软件开发的四个世界 问题世界 开发世界 使用世界 系统世界 关于应用领域的信 息如何被系统使用 开发目标的证明 机器如何表示关于 应用领域的信息 设计决策 用户界面
需求抽取 开始点 需求工程师必须要做的 n存在一个“问题”需 标识“问题”/“机会” 要解决,例如 那个问题需要解决?(识别问题边界) 对当前的事务处理方 问题在什么地方?(理解上下文/问题领域) 式不满意 ●是谁的问题?(识别投资人) 出现新的业务机会 为什么需要解决它?(识别投资人的目标 ●有可能节省开销、时 软件系统会起到怎样的作用?(采集一些情景) 间、资源的使用、等 它需要什么时候解决?(识别开发约束) 需求工程师是带来变 什么会防碍我们解决它?(识别可行性和风险) 化的代理人 抽取足够的知识 W6H(记者的技巧) 足以分析需求:有效性、一致性、完整性 What、 Where、Who、 变成问题领域的专家 Why、When、How、 Which
需求抽取 开始点 ◼ 存在一个“问题”需 要解决,例如: ⚫ 对当前的事务处理方 式不满意 ⚫ 出现新的业务机会 ⚫ 有可能节省开销、时 间、资源的使用、等 ◼ 需求工程师是带来变 化的代理人 需求工程师必须要做的: ◼ 标识“问题”/“机会” ⚫ 那个问题需要解决?(识别问题边界) ⚫ 问题在什么地方?(理解上下文/问题领域) ⚫ 是谁的问题?(识别投资人) ⚫ 为什么需要解决它?(识别投资人的目标) ⚫ 软件系统会起到怎样的作用?(采集一些情景) ⚫ 它需要什么时候解决?(识别开发约束) ⚫ 什么会防碍我们解决它?(识别可行性和风险) ◼ 抽取足够的知识 ⚫ ……足以分析需求:有效性、一致性、完整性 ⚫ 变成问题领域的专家 W6H(记者的技巧) What、Where、Who、 Why、When、How、 Which
抽取的困难 ◆领域知识非常薄弱 知识可能分布在许多地方,并很少以显式的形式表示出来(写出来) 来自不同地方的知识之间将会有矛盾 不同的人有不同的目标,不同的人对问题的理解不同 ◆经验知识 人很难描述他们日常使用的知识 ●描述会是专家行为的不准确的理性化 有限的观察 问题拥有者可能太忙,没时间用存在的系统去解决它 ■出现一个观察可能会改变这个问题 偏见 人可能不方便告诉你你需要知道什么 人可能不想告诉你你需要知道什么
抽取的困难 领域知识非常薄弱 ◼ 知识可能分布在许多地方,并很少以显式的形式表示出来(写出来) ◼ 来自不同地方的知识之间将会有矛盾 ⚫ 不同的人有不同的目标,不同的人对问题的理解不同 经验知识 ◼ 人很难描述他们日常使用的知识 ⚫ 描述会是专家行为的不准确的理性化 有限的观察 ◼ 问题拥有者可能太忙,没时间用存在的系统去解决它 ◼ 出现一个观察可能会改变这个问题 偏见 ◼ 人可能不方便告诉你你需要知道什么 ◼ 人可能不想告诉你你需要知道什么
与客户沟通的重要性 成功的项目都与客户有更多的联系 70 用的联系与所有可能的联系的百分比 50 40 口更成功的项目 30 ■不够成功的项目 10 软件工具 程序环境 办公软件 主要航线 中型饮料公司
与客户沟通的重要性 0 10 20 30 40 50 60 70 软件工具 程序环境 财务软件 办公软件 主要航线 中型饮料公司 更成功的项目 不够成功的项目 成功的项目都与客户有更多的联系 使 用 的 联 系 与 所 有 可 能 的 联 系 的 百 分 比