西安交通大学现代远程教育课程 软件工程概论 第8章面向对象分析 领域分析 使用实例的需求获取 用类进行建模 对象-行为模型 RUP分析活动 OO分析小结 主讲教师:刘海岩副教授
1 第8章 面向对象分析 • 领域分析 • 使用实例的需求获取 • 用类进行建模 • 对象-行为模型 • RUP分析活动 • OO分析小结
西安交通大学现代远程教育课程 软件工程概论 81领域分析 1、领域分析的概念 面向对象的系统分析可以发生在许多不同的抽象层次 在业务或企业级层次,可定义模拟整个业务的类、对象 关系和行为。在业务域层次,可定义描述某特殊的业务域 的工作的对象模型和行为模型;在应用层次,建模着重于 特定的用户需求。 Firesmith对软件领域分析的定义是:领域分析 ( Domain Analysis指特定应用领域中公共需求的标识、分 析和规约,即发现或创建那些可广泛应用的类,其目的使 它们在应用域中多个项目间能被复用。领域分析的角色是 设计和建造可复用构件(类似于制造环境中工具制造者的 角色),它们被很多相似但不一定是相同的应用开发的人 所使用。 主讲教师:刘海岩副教授
2 8.1 领域分析 1、领域分析的概念 面向对象的系统分析可以发生在许多不同的抽象层次。 在业务或企业级层次,可定义模拟整个业务的类、对象、 关系和行为。在业务域层次,可定义描述某特殊的业务域 的工作的对象模型和行为模型;在应用层次,建模着重于 特定的用户需求。 Firesmith对软件领域分析的定义是:领域分析 (Domain Analysis)指特定应用领域中公共需求的标识、分 析和规约,即发现或创建那些可广泛应用的类,其目的使 它们在应用域中多个项目间能被复用。领域分析的角色是 设计和建造可复用构件(类似于制造环境中工具制造者的 角色),它们被很多相似但不一定是相同的应用开发的人 所使用
西安交通大学现代远程教育课程 软件工程概论 Lethbridge的定义是:领域分析是软件工程师了 解背景信息的过程。为了理解问题并在需求分析和软 件工程过程的其他阶段作出合理的决策,软件工程师 必须了解使用该类软件的一般性商业和技术领域中足 够的信息 2、领域分析过程的活动 (1)定义将被调查的领域 分离感兴趣的业务域、系统类型或产品范畴,抽 取OO和非OO的“项”。OO项包括:现存OO应用的 类的规约、设计和代码,支持类(如GU类或数据库 访问类),和领域相关的构件库以及测试案例。非 OO项包括:政策、规程、计划、标准,非OO应用文 档和构件。 主讲教师:刘海岩副教授
3 Lethbridge的定义是:领域分析是软件工程师了 解背景信息的过程。为了理解问题并在需求分析和软 件工程过程的其他阶段作出合理的决策,软件工程师 必须了解使用该类软件的一般性商业和技术领域中足 够的信息。 2、领域分析过程的活动 (1)定义将被调查的领域 分离感兴趣的业务域、系统类型或产品范畴,抽 取OO和非OO的“项”。OO项包括:现存OO应用的 类的规约、设计和代码,支持类(如GUI类或数据库 访问类),和领域相关的构件库以及测试案例。非 OO项包括:政策、规程、计划、标准,非OO应用文 档和构件
西安交通大学现代远程教育课程 软件工程概论 (2)对从领域中抽取出来的项进行分类并建立分类层次。 (3)收集领域中应用的代表性样本 (4)分析样本中的每个应用 标识候选的每个可复用对象 指明对象被标识为可复用的理由 定义对象的适应性 估算在领域中复用这些对象的应用的百分率 使用配置管理技术控制这些对象 (5)为对象开发分析模型 主讲教师:刘海岩副教授
4 (2)对从领域中抽取出来的项进行分类并建立分类层次。 (3)收集领域中应用的代表性样本。 (4)分析样本中的每个应用 • 标识候选的每个可复用对象。 • 指明对象被标识为可复用的理由。 • 定义对象的适应性。 • 估算在领域中复用这些对象的应用的百分率。 • 使用配置管理技术控制这些对象。 (5)为对象开发分析模型
西安交通大学现代远程教育课程 软件工程概论 3、领域分析的价值 领域分析除了为软件复用奠定基础外,还为较低抽 象层次的一般的面向对象分析带来如下好处 快速开发。有助于集中精力关注最重要的问题,更 有效地与相关人员进行交流,可以更快的确定需求 优化系统。了解领域的细节有助于保证所采纳的解 决方案更有效地解决用户的问题。会少犯错误,知道应 该遵循那些规程和标准。领域分析给出一个应用领域的 总体视图,会引导出更好的抽象从而改进设计 有了领域知识,就可以洞察新兴趋势及进一步开发 的机会,有助于创建适应性更强的系统 ·了解通用性和特殊性,有助于创建出具有更好的可 重用性和更宽的销售市场的软件 主讲教师:刘海岩副教授
5 3、领域分析的价值 领域分析除了为软件复用奠定基础外,还为较低抽 象层次的一般的面向对象分析带来如下好处: • 快速开发。有助于集中精力关注最重要的问题,更 有效地与相关人员进行交流,可以更快的确定需求。 • 优化系统。了解领域的细节有助于保证所采纳的解 决方案更有效地解决用户的问题。会少犯错误,知道应 该遵循那些规程和标准。领域分析给出一个应用领域的 总体视图,会引导出更好的抽象从而改进设计。 • 有了领域知识,就可以洞察新兴趋势及进一步开发 的机会,有助于创建适应性更强的系统。 • 了解通用性和特殊性,有助于创建出具有更好的可 重用性和更宽的销售市场的软件
西安交通大学现代远程教育课程 软件工程概论 专家提出,没有坚实的领域分析,任何重大的软件 项目都不应该进行。对应用领域的深入理解能极大的提 高成功的几率。许多非常成功的软件产品的开发人员以 前都在业务领域工作过一段时间,对实际需要有着深切 的感受 一旦对领域有了真正的理解,就可进行某一个项 目(或产品)的需求分析,包括定义待解决的问题以及 开发什么软件来解决它。然而,领域分析永远也不应该 结束:开发人员有责任在开发过程中不断增进他们的理 解,后续版本的系统扩充通常需要对子领域进行进一步 的领域分析。 主讲教师:刘海岩副教授
6 专家提出,没有坚实的领域分析,任何重大的软件 项目都不应该进行。对应用领域的深入理解能极大的提 高成功的几率。许多非常成功的软件产品的开发人员以 前都在业务领域工作过-段时间,对实际需要有着深切 的感受。 一旦对领域有了真正的理解,就可进行某一个项 目(或产品)的需求分析,包括定义待解决的问题以及 开发什么软件来解决它。然而,领域分析永远也不应该 结束:开发人员有责任在开发过程中不断增进他们的理 解,后续版本的系统扩充通常需要对子领域进行进一步 的领域分析
西安交通大学现代远程教育课程 软件工程概论 82使用实例的需求获取 面向对象的分析过程并不从考虑对象开始,而是从对 系统将被使用的方式的理解开始。如果系统是人机交互的, 则考虑被人使用的方式;如果系统是涉及过程控制的,则 考虑被机器使用的方式;如果系统是协调和控制应用的, 则考虑被其他系统使用的方式。一旦使用的场景( cenarIo) 被定义,软件的建模活动就开始了 1、Use-case(用例或使用实例) 在○OA中,用例是分析模型的第一个元素的基础. 以终端用户的观点对系统建模。 用例在需求获取时创建,应达到下列目标: 通过定义由终端用户和开发人员共同认可的使用场 景,定义系统的功能和运行需求。 场景是用例的一个实例,表达用例的一个特定发生, 在特定的时间,使用特定的数据进行操作 主讲教师:刘海岩副教授
7 8.2 使用实例的需求获取 面向对象的分析过程并不从考虑对象开始,而是从对 系统将被使用的方式的理解开始。如果系统是人机交互的, 则考虑被人使用的方式;如果系统是涉及过程控制的,则 考虑被机器使用的方式;如果系统是协调和控制应用的, 则考虑被其他系统使用的方式。一旦使用的场景(scenario) 被定义,软件的建模活动就开始了。 1、use-case(用例或使用实例) 在OOA中,用例是分析模型的第一个元素的基础, 以终端用户的观点对系统建模。 用例在需求获取时创建,应达到下列目标: • 通过定义由终端用户和开发人员共同认可的使用场 景,定义系统的功能和运行需求。 场景是用例的一个实例,表达用例的一个特定发生, 在特定的时间,使用特定的数据进行操作
西安交通大学现代远程教育课程 软件工程概论 提供清楚的、无二义性的终端用户和系统如何相互交 互的描述 提供确认测试的基础。 用例的描述以及用例图构成了参与者与系统交互的用 例模型 (1)用例的描述 建议:其中只有名称和步骤是必须的 名称(name) 参与者( actor) 日标(goa):参与者要完成的任务。 前置条件( precondition):列出参与者启动用例前 所有必需为真的条件 相关用例( related use cases):列出可能是此用 例的扩展、包含的用例 8 主讲教师:刘海岩副教授
8 • 提供清楚的、无二义性的终端用户和系统如何相互交 互的描述。 • 提供确认测试的基础。 用例的描述以及用例图构成了参与者与系统交互的用 例模型 (1)用例的描述 建议:其中只有名称和步骤是必须的。 • 名称(name) • 参与者(actor) • 目标(goal) : 参与者要完成的任务。 • 前置条件(precondition): 列出参与者启动用例前 所有必需为真的条件。 • 相关用例(related use cases): 列出可能是此用 例的扩展、包含的用例
西安交通大学现代远程教育课程 软件工程概论 步骤(step)}:用两列的格式描述用例的每一步(见例)。 后置条件( postcondition):用例完成后系统所处的状态。 例1:描述应用程序中打开文件的用例 用例:打开文件 步骤: 参与者动作 系统响应 ①选择“打开…”命令②显示“打开文件”对话框 ③指定文件名 ④确认选择 ⑤关闭对话框 9 主讲教师:刘海岩副教授
9 • 步骤(step): 用两列的格式描述用例的每一步(见例)。 • 后置条件(postcondition): 用例完成后系统所处的状态。 例1:描述应用程序中打开文件的用例 用例:打开文件 步骤: 参与者动作 系统响应 ①选择“打开…”命令 ②显示“打开文件”对话框 ③指定文件名 ④确认选择 ⑤关闭对话框
西安交通大学现代远程教育课程 软件工程概论 例2、图书管理系统借书用例 用例:为借阅者借出一本书 参与者:借书员 目标:帮助借阅者借阅书籍并确保输出正确的借出记录 前置条件:借阅者必须有一张有效的借书卡并且没有欠费; 该书藉必须具有有效的条形码并且不是来自于 参考文献区。 步骤: 参与者动作 系统响应 ①扫描书籍和借书卡 ②显示允许借阅的信息 ③在书籍上标记到期日期 ④确认借出开始 ⑤显示借出已被记录的确 认的信息 后置条件:系统有一个该书藉被借出以及到期时间的记录 10 主讲教师:刘海岩副教授
10 例2、图书管理系统借书 用例 用例:为借阅者借出一本书 参与者:借书员 目标:帮助借阅者借阅书籍并确保输出正确的借出记录 前置条件:借阅者必须有一张有效的借书卡并且没有欠费; 该书藉必须具有有效的条形码并且不是来自于 参考文献区。 步骤: 参与者动作 系统响应 ①扫描书籍和借书卡 ②显示允许借阅的信息 ③在书籍上标记到期日期 ④确认借出开始 ⑤显示借出已被记录的确 认的信息 后置条件:系统有一个该书藉被借出以及到期时间的记录