西安交通大学现代远程教育课程 软件工程概论 第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、领域分析的价值 领域分析除了为软件复用奠定基础外,还为较低抽 象层次的一般的面向对象分析带来如下好处: • 快速开发。有助于集中精力关注最重要的问题,更 有效地与相关人员进行交流,可以更快的确定需求。 • 优化系统。了解领域的细节有助于保证所采纳的解 决方案更有效地解决用户的问题。会少犯错误,知道应 该遵循那些规程和标准。领域分析给出一个应用领域的 总体视图,会引导出更好的抽象从而改进设计。 • 有了领域知识,就可以洞察新兴趋势及进一步开发 的机会,有助于创建适应性更强的系统。 • 了解通用性和特殊性,有助于创建出具有更好的可 重用性和更宽的销售市场的软件