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