上节我们介绍了UML技术的一些基础知识,本节向大家介绍一下几种常用的面向对象的软件开发方法,主要从五个方面来介绍,相信通过本节的学习大家对UML技术有深一步的理解,下面让我们一起来学习这几种方法吧。
可视化建模的一个重要问题是用哪种图形标注方法表示系统的各个方面。随着面向对象技术的发展,出现了几十种面向对象的软件开发方法。其中,Booch、OMT、和OOSE以及较早的Coad/Yourdon(OOA/OOD)方法在面向对象软件开发界得到了广泛的认可。前三种方法也是UML技术的直接来源,它们各有特点,适合于不同的领域。尽管UML统一了面向对象方法的图形标注体系,但是这些方法仍然具有重要的指导作用,在实际开发过程中我们可以综合考虑这几种方法来进行建模。下面将分别介绍这几种方法的主要思想:
2.4.1Booch方法
Booch方法是GradyBooch从1983年开始研究,1991年后走向成熟的一种方法。Booch方法区分系统的逻辑和物理结构并描述这两种结构的静态和动态语义。Booch方法被区分为微观和宏观的过程。[3]
微观开发过程代表开发者或开发小组的日常活动,包含以下任务:
在一定抽象层次上表示类和对象,发现问题域中的类和对象,确定对象需要哪些行为来完成某些功能。
标识类与对象的语义,目标是建立前一阶段抽取出来的类的状态和行为。
标识类与对象的联系,确定每一个类对象的边界,区分相互协作的类对象,主要用类图来表达。
实现类与对象,选择算法和数据结构实现对象的语义。
宏观开发过程是微观开发过程的控制框架,这个更广的过程确定一些相应的成果和活动,以帮助开发小组进行有效的风险评价以及早对开发过程进行修改。宏观过程侧重风险和结构方面,对日程、结构和完整性最为重要,它包含以下阶段:
概念化,建立需求。概念化试图建立系统得核心需求,这是一个非常具有创造性的过程,所以没有严格的开发规则可循。原型是这项活动的基本产品。
分析,开发所需要行为的模型:分析的目的是通过区分类和对象为现实世界建模,而这些类和对象来自于问题域的词汇。这个阶段强调系统的行为,通过关注系统的行为,可以区分出系统的功能点,并以此来标识系统外不可见的和可测试的行为。
设计,开发系统的体系结构:将产生一个用于将来实现的体系结构。
演化,精化设计阶段的实现:演化的目的是不断增加和改变实现,直到系统作为一个产品问世。
维护,进行交付使用后的改进:这个过程主要是演化阶段的继续,但现在很多对系统的改变是作为新的需求备加进来以及修正系统中的Bug。
Booch方法是UML技术的主要来源,其面向对象的概念十分丰富。主要概念有:类、对象、继承、元类、消息、域、操作、机制、模块、子系统、进程等;其模型主要包括:逻辑静态视图(类图、对象图),逻辑动态视图(顺序图、状态图),物理静态视图(模块图、进程图)以及物理动态视图。
Booch方法的优点在它在项目的设计和构造阶段的表达能力特别强,其迭代和增量的思想也是大型软件开发中的重要思想。这种方法比较适合系统设计和构造。
2.4.2OMT方法
OMT(ObjectModelingTechnique)方法最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾扩展应用于关系数据库设计。Rumbaugh在1991年正式把OMT应用于面向对象的分析和设计。这个方法是在实体—关系模型上扩展了类、继承和行为而得到的。
OMT方法从三个视角描述系统,相应地提供了三种模型:
对象模型:描述对象的静态结构和它们之间的关系,主要的概念包括:类、属性、操作、继承、关联、聚集;
动态模型:描述系统那些随时间变化的方面,其主要概念有:状态、子状态和超状态、事件、行为、活动;
功能模型:描述系统内部数据值的转换,其主要概念有:加工、数据存储、数据流、控制流、角色。
该方法将开发过程分为四个阶段:分析、系统设计、对象设计、实现。
OMT的来源也决定了它在分析数据密集型信息系统时具有很大优势,是MIS系统建模常用的方法之一。
2.4.3OOSE方法
OOSE(Object-OrientedSoftwareEngineering)是IvarJacobson在1992年提出的一种面向对象开发方法,以其“用例”驱动(UseCaseDriven)的思想而著称。
OOSE方法与上述两种方法有所不同,它涉及到整个软件生命周期,包括需求分析、设计、实现和测试四个阶段。
该方法中的一个关键概念就是“用例”。用例是指行为相关的事物序列,该序列将由用户在与系统对话中执行。因此,每一个用例就是一个外界使用系统的方式,当用户给定一个输入,就执行一个用例的实例并引发执行属于该用例的一个事务。基于这种系统视图,Jacobson将用例模型与其它五种系统模型相关联:需求模型、分析模型、设计模型、实现模型、测试模型。
OOSE对以用例作为一种途径来驱动需求捕获、分析和高层设计提供了极好的支持。使用用例捕获需求是OOSE对传统面向对象建模方法的很好的补充。这种方法比较适合商业工程和需求分析。
2.4.4Coad|Yourdon方法
PeterCoad和EdwardYourdon的方法严格区分了面向对象分析(OOA)和面向对象设计(OOD)。
在分析阶段,该方法用五个层次及相关活动定义并记录系统行为,以及系统的输入和输出。这五个层次及活动如表所示:
表1-1Coad/Yourdon方法中的OOA层次模型
经过五个层次的活动后,分析结果是一个分成五个层次的问题域模型,包括主题、类及对象、结构、属性和服务五个层次,由类及对象图表示。五个层次活动的顺序并不重要。在设计阶段,OOD模型是OOA模型的扩展。OOD模型同样包括OOA模型的五个层次,但同时又引进了四个部分:问题域部分(PDC):面向对象分析的结果直接放入该部分。人机交互部分(HIC):包括对用户分类、描述人机交互的脚本、设计命令层次结构、设计详细的交互、生成用户界面的原型、定义HIC类等。任务管理部分(TMC):识别任务(进程)、任务所提供的服务、任务的优先级、进程的驱动模式,以及任务与其它进程和外界如何通信等。数据管理部分(DMC):确定数据存储模式,如使用文件系统、关系数据库管理系统还是面向对象数据库管理系统等。Coad/Yourdon方法强调技术独立性,从而实现了包括OOA/OOD本身在内的可复用性。例如,当一个给定的应用系统从图形用户界面(GUI)升级到声音响应接口时,只需替换其中的人机交互部分,其他部分均无需改动,因为用户界面技术的改变对系统的其他部分是透明的。
该方法简单、易学,适合于面向对象技术的初学者使用,但由于该方法在处理能力方面的局限,目前已很少使用。
概括起来,首先,面对众多的建模语言,用户由于没有能力区别不同语言之间的差别,因此很难找到一种比较适合其应用特点的语言;其次众多的建模语言实际上各有千秋;第三,虽然不同的建模语言大多数雷同,但仍有细微差别,极大地妨碍了用户之间的交流。因此,统一建模语言势在必行。
统一建模语言UML是由Rational公司的知名专家GradyBooch、JimRumbaugh和IvarJacobson三人联合开发的第三代面向对象的建模语言。UML技术采纳和扩展了Booch标记法、OMT标记法和OOSE标记法,并包容了其他学者和软件厂商的建议,适用于上述三种面向对象方法或其他用法的用户。对象管理组织(OMG)采纳UML作为基于面向对象技术的标准建模语言.
2.4.5UML方法
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。UML包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。以将UML模型转换为多种程序设计语言代码,如:可生成XMLDTD代码,JAVA代码等,或使用反向生成器工具将程序源代码转换为UML。它是为支持大部分现存的面向对象开发过程而设计的。总之,UML是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。
任何建模语言都以静态建模机制为基础,UML也不例外。UML技术采用用例图、类图、包图、对象图、构件图和配置图来建立系统的静态模型,属于静态建模机制;状态图、活动图、顺序图和协作图被用来建立系统的动态模型,属于动态建模机制。在论文中主要采用类图、活动图、顺序图相结合建立对象模型。类图用于表示系统中的类与类之间的联系,活动图描述领域业务流程,顺序图描述对象间交互动作的时序特性。
可视化建模将模型中的信息用标准图形元素直观地表示。可视化建模的一个重要问题是用哪种图形标注方法表示系统的各个方面。最常用的方法有Booch,对象建模技术(OMT)和统一建模语言(UML)。
Booch方法是按其***GradyBooch命名的,他是Rational软件公司的***科学家。他开发了表示模型各个细节的图注方法。
OMT(对象建模技术)图注方法来自JamesRumbaugh博士,OMT使用比Booch更简单的图形表示系统。
UML由面向对象方法领域的三位著名学者JamesRumbaugh、GradyBooch和IvarJacobson提出,总结了以往建模技术的经验并吸收当今优秀成果,并结合其他众多的优秀的软件方法和思想演变而成。UML于1997年被国际对象管理组织(ObjectManagementGroup,OMG)接受,发布了UML的标准版。如今,UML已经成为公认的***的分析和设计面向对象软件的标准建模语言。
几年来,UML技术不断演变,加进了基于Web的系统、数据模型等新思想。
【编辑推荐】