©2008BUPTTSEG第九章面向对象分析修佳鹏media@bupt.edu.cn软件工程模型与方法Models&MethodsofSoftwareEngineering2©2008BUPTTSEG北京邮电大学通信软件工程中心本章内容9.1面向对象分析综述9.2用例建模9.3创建领域模型9.4绘制系统顺序图9.5创建系统操作契约3©2008BUPTTSEG北京邮电大学通信软件工程中心9.1面向对象分析综述面向对象分析(Object-OrientedAnalysis,简称OOA)就是运用面向对象的方法进行系统分析,强调运用面向对象方法,对问题域和系统职责进行分析和理解,找出描述问题域及系统职责所需的对象,定义对象的属性、服务以及它们之间的关系,目标是建立一个符合问题域、满足用户需求的OOA模型。问题域(problemdomain):被开发系统的应用领域,即在现实世界中由这个系统进行处理的业务范围系统职责(systemresponsibilities),所开发的系统应该具备的职能4©2008BUPTTSEG北京邮电大学通信软件工程中心OOA与OOD的职责划分OOA针对现实世界中的问题域与系统职责,用面向对象的方法建立起针对问题域和系统职责的模型,作为分析的结果。OOA模型不考虑与系统的具体实现相关的因素(譬如,采用什么程序设计语言和数据库),从而使OOA模型独立于具体的实现环境。OOD则是针对系统的具体实现,运用OO方法进行系统设计。其中包括两方面的工作:一是根据实现条件对OOA模型做某些必要的调整和修改,使其成为OOD模型的一部分;二是针对具体实现条件,建立人机界面、数据存储和控制驱动等模型。这些部分与OOA采用相同的概念和表示法。5©2008BUPTTSEG北京邮电大学通信软件工程中心软件分析所面临的问题1.对问题域和系统职责的理解2.交流问题3.需求的不断变化4.软件复用的要求6©2008BUPTTSEG北京邮电大学通信软件工程中心面向对象分析步骤(1)利用用例以及用例图来捕获和描述用户的需求,从而建立系统的功能需求模型。为创建需求模型,首先要从业务需求描述出发,识别参与者和使用场景;对场景进行汇总、分类和抽象,形成用例;确定参与者和用例、用例和用例之间的关系,形成用例模型。(2)从业务需求描述和用例描述中提取“关键概念”,形成领域模型。7©2008BUPTTSEG北京邮电大学通信软件工程中心面向对象分析步骤(3)从用例出发,将系统看作一个黑盒子,识别出参与者和系统交互的系统事件,在系统顺序图中进行描述,并进一步识别出系统操作。(4)从系统顺序图和领域模型出发,建立系统操作契约,...