第6章面向对象的需求分析方法6.1什么是面向对象6.1.1面向对象概念6.1.2对象面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用,涉及从面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)、面向对象测试(ObjectOrientedTesting,OOT)到面向对象软件维护(ObjectOrientedSoftwareMaintenance,OOSM)的全过程。面向对象的分析(OOA)就是运用面向对象的方法进行需求分析,其主要任务是分析和理解问题域,找出描述问题域和系统责任所需的类及对象,分析它们的内部构成和外部关系,建立OOA模型。面向对象的设计(OOD)就是根据已建立的分析模型,运用面向对象技术进行系统软件设计。它将OOA模型直接变成OOD模型,并且补充与一些实现有关的部分,如人机界面、数据存储、任务管理等。面向对象的编程(OOP)就是用一种面向对象的编程语言将OOD模型中的各个成分编写成程序,OOA—OOD—OOP的无缝连接和平滑过渡,提高了开发工作的效率和质量。面向对象的测试(OOT)是指对于运用OO技术开发的软件,在测试过程中继续运用OO技术进行以对象概念为中心的软件测试。它以类作为基本测试单位,集中检查在类定义之内的属性、服务和有限的对外接口,大大减少了错误的影响范围。面向对象方法与传统的软件开发方法相比,具有许多显著的优点,其主要优点如下:(1)按照人类的自然思维方式,面对客观世界建立软件系统模型,有利于对问题域和系统责任的理解,有利于人员交流。(2)在整个开发过程中采用统一的概念和模型表示,填平了语言之间的鸿沟,使得开发活动之间平滑过渡。(3)对象所具有的封装性和信息隐蔽等特性,使其容易实现软件复用。(4)在面向对象的方法中,系统由对象构成,对象是一个包含属性和操作两方面的独立单元,对象之间通过消息联系。这样的系统一旦出错,很容易定位和修改,系统的可维护性好。6.2面向对象需求分析的过程面向对象分析的基本过程如下:1.问题域分析分析应用领域的业务范围、业务规则和业务处理过程,确定系统的责任、范围和边界,确定系统的需求。2.发现和定义对象与类识别对象和类,确定它们的内部特征,即属性和操作。3.识别对象的外部联系在发现和定义对象与类的过程中,需要同时识别对象与类、类与类之间的各种外部联系,即结构性的静态联系和行为性的动态联系,包括一般与特殊、整体与部分、实例连接、消息连接等联系。4.建立系统的静态结构模型分析系统的行为,建立系统的静态结构模型,并将其用图形和文字说明表示出来,如绘制类图、对象图、系统与子系统结构图等,编制相应的说明文档。5.建立系统的动态结构模型分析系统的行为,建立系统的动态行为模型,并将其用图形和文字说明表示出来,如绘制用例图、交互图、活动图、状态图等,编制相应的说明文档。6.3面向对象分析6.3.1OOA基本认识和基本方法面向对象分析(OOA)过程分为论域分析和应用分析。论域分析建立大致的系统实现环境,应用分析则根据特定应用的需求进行论域分析。1.OOA分析的基本原则和任务为建立分析模型,要运用如下5个基本原则:①建立信息域模型;②描述功能;③表达行为;④划分功能、数据、行为模型,揭示更多的细节;⑤用早期的模型描述问题的实质,用后期的模型给出实现的细节。OOA的目的是定义所有与待解决问题相关的类(包括类的操作和属性、类与类之间的关系以及它们表现出的行为)。为此,OOA需完成的任务是:•软件工程师和用户必须充分沟通,以了解基本的用户需求;•必须标志类(即定义其属性和操作);•必须定义类的层次;•应当表达对象与对象之间的关系(即对象的连接);•必须模型化对象的行为;•反复地做上面的5个任务,直到模型建成。2.OOA概述(1)Booch方法(2)Rumbaugh方法(3)Coad和Yourdon方法(4)Jacobson方法(5)Wirfs-Brock方法(6)统一的OOA方法(UML)3.论域分析(DomainAnalysis)论域分析是基于特定应用论域,标志、分析、定义可复用于应用论域内多个项目的公共需求的技术。目标是发现和创建一组应用广泛的类,这组类常常超出特定应用的范围,可以复用于其它系统的开发。4.应用分析应用分析的依据是在论域分析时建立起来的论域分析模型,并把它用于当前正在建立的应用当中。作业:5、基于复用的面向对象的需求分析过程主要分为两个阶段:论域分析和应用分析。试讨论它们各自承担什么任务?如何衔接?6、面向对象的需求分析文档与面向数据流的需求分析文档有何区别?