资源预览内容
第1页 / 共34页
第2页 / 共34页
第3页 / 共34页
第4页 / 共34页
第5页 / 共34页
第6页 / 共34页
第7页 / 共34页
第8页 / 共34页
第9页 / 共34页
第10页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二部分第二部分面向对象的软件工程面向对象的软件工程第七章第七章 面向对象方法学引论面向对象方法学引论 第八章第八章 面向对象分析面向对象分析 第九章第九章 面向对象设计面向对象设计第十章第十章 面向对象实现面向对象实现概概 述述面向对象的实现主要包含两项工作:面向对象的实现主要包含两项工作:1、OOP。将面向对象设计结果,翻译成使用将面向对象设计结果,翻译成使用某种语言书写的面向对象程序。某种语言书写的面向对象程序。2、面向对象测试。、面向对象测试。测试和调试编写的程序。测试和调试编写的程序。面向对象程序的质量基本上由面向对象程序的质量基本上由OOD的质量的质量决定,但是所采用的程序设计语言的特点和决定,但是所采用的程序设计语言的特点和程序设计风格也对程序的可靠性、可重用性程序设计风格也对程序的可靠性、可重用性及可维护性有影响。及可维护性有影响。第十章第十章 面向对象实现面向对象实现&101 面向对象语言面向对象语言&102 程序设计风格程序设计风格&103 面向对象测试面向对象测试&104 UML简介简介&105 本章重点本章重点101 面向对象语言面向对象语言虽然面向对象设计的结果,既虽然面向对象设计的结果,既可以用面可以用面向对象语言向对象语言实现,也实现,也可以用非面向对象语言可以用非面向对象语言实现。但是面向对象语言在实现。但是面向对象语言在表示方法的一致表示方法的一致性性、可重用性可重用性及及可维护性可维护性上有着绝对的优势,上有着绝对的优势,能够更完整、更准确的表达问题域的语义。能够更完整、更准确的表达问题域的语义。因此,在选择编程语言时,应该尽量选因此,在选择编程语言时,应该尽量选用面向对象的语言来实现用面向对象的语言来实现OOA、OOD的结果。的结果。 一、主流一、主流OOOO语言语言& &开发工具简介开发工具简介将将OODOOD结果结果 = = 面向对象程序面向对象程序传统传统OOOO语言和工具语言和工具: : Smalltalk Smalltalk C+C+ Object PascalObject Pascal JavaJava高级高级OOOO语言和工具语言和工具: : Visual Basic Visual Basic (OO-4GL)(OO-4GL) Visual C+Visual C+Power Builder Power Builder DelphiDelphiC+ BuilderC+ Builder二、二、OOOO语言特点语言特点在面向对象语言的形成与发展过程中,形在面向对象语言的形成与发展过程中,形成了两大类:成了两大类:1、纯面向对象语言纯面向对象语言。如。如Smalltalk等。主要等。主要支持面向对象方法研究和快速原型的实现。支持面向对象方法研究和快速原型的实现。2、混合型面向对象语言混合型面向对象语言。其是在过程语言。其是在过程语言的基础上增加了面向对象机制,如的基础上增加了面向对象机制,如C+等。主要等。主要目标是提高运行速度和使传统的程序员容易接目标是提高运行速度和使传统的程序员容易接受面向对象思想。受面向对象思想。均均直接支持过程抽象、数据抽象、封装、继承、以及对象与属性、类与成员关系。三、选择面向对象语言三、选择面向对象语言在选择开发工具时,须考虑以下因素:在选择开发工具时,须考虑以下因素:1 1、该工具在将来是否占主导地位该工具在将来是否占主导地位。根据市场。根据市场份额,专业书刊和学术会议上的分析决定。份额,专业书刊和学术会议上的分析决定。2 2、可否重用、可否重用。3 3、类库和开发环境、类库和开发环境。语言、开发环境和类库。语言、开发环境和类库决定了可重用性。决定了可重用性。4 4、其它因素、其它因素。包括。包括OOA/OOD/OOPOOA/OOD/OOP培训服务;培训服务;技术支持;提供的开发工具、开发平台、发技术支持;提供的开发工具、开发平台、发布平台、硬件要求等。布平台、硬件要求等。102 程序设计风格程序设计风格无论是无论是SPSP还是还是OOPOOP,良好的程序设计风良好的程序设计风格对保证程序的质量都具有着重要的作用,格对保证程序的质量都具有着重要的作用, 对软件的可靠性、可读性、可测试性和可维对软件的可靠性、可读性、可测试性和可维护性性产生深远的影响。护性性产生深远的影响。良好的良好的OOPOOP风格,即包括了传统的程序风格,即包括了传统的程序设计风格准则,也包括为适应设计风格准则,也包括为适应OOMOOM所特有概所特有概念而必须遵循的一些新准则:念而必须遵循的一些新准则:提高可重用性;提高可扩充性;提高可重用性;提高可扩充性;提高健壮性提高健壮性 103 面向对象测试面向对象测试传统软件测试经历传统软件测试经历单元测试单元测试、集成集成测试测试、确认测试确认测试和和系统测试系统测试等等4 4个阶段。个阶段。单元测试单元测试主要针对最小的程序单元主要针对最小的程序单元程序模块进行测试。程序模块进行测试。一旦这些程序模块分别测试完成后,一旦这些程序模块分别测试完成后,就将它们就将它们组装组装起来形成程序结构。起来形成程序结构。对整个对整个系统系统进行一系列的测试,查进行一系列的测试,查找和排除在需求方面的问题。找和排除在需求方面的问题。对于面向对象的应用测试,同样可对于面向对象的应用测试,同样可划分为这几个阶段。划分为这几个阶段。一、单元测试(类测试)一、单元测试(类测试)在面向对象环境下,最小的可测试的单元是封在面向对象环境下,最小的可测试的单元是封在面向对象环境下,最小的可测试的单元是封在面向对象环境下,最小的可测试的单元是封装了的类或对象,而不是程序模块。装了的类或对象,而不是程序模块。装了的类或对象,而不是程序模块。装了的类或对象,而不是程序模块。面向对象软件的面向对象软件的面向对象软件的面向对象软件的类测试等价于传统软件开发方类测试等价于传统软件开发方类测试等价于传统软件开发方类测试等价于传统软件开发方法中的单元测试法中的单元测试法中的单元测试法中的单元测试。但它是由类中封装的操作和和类的。但它是由类中封装的操作和和类的。但它是由类中封装的操作和和类的。但它是由类中封装的操作和和类的状态行为驱动的。状态行为驱动的。状态行为驱动的。状态行为驱动的。完全孤立地测试类的各个操作是不行的。完全孤立地测试类的各个操作是不行的。完全孤立地测试类的各个操作是不行的。完全孤立地测试类的各个操作是不行的。 考虑类的层次。在基类中定义了一个操作考虑类的层次。在基类中定义了一个操作考虑类的层次。在基类中定义了一个操作考虑类的层次。在基类中定义了一个操作X X X X。 每一个派生类都使用操作每一个派生类都使用操作每一个派生类都使用操作每一个派生类都使用操作X X X X,它是在各个类所定它是在各个类所定它是在各个类所定它是在各个类所定义的私有属性和操作的环境中使用的。因使用操作义的私有属性和操作的环境中使用的。因使用操作义的私有属性和操作的环境中使用的。因使用操作义的私有属性和操作的环境中使用的。因使用操作X X X X的环境变化太大,所以必须在每一个派生类的环的环境变化太大,所以必须在每一个派生类的环的环境变化太大,所以必须在每一个派生类的环的环境变化太大,所以必须在每一个派生类的环境下都测试操作境下都测试操作境下都测试操作境下都测试操作X X X X。 在面向对象开发环境下,把操作完全孤立起来在面向对象开发环境下,把操作完全孤立起来在面向对象开发环境下,把操作完全孤立起来在面向对象开发环境下,把操作完全孤立起来进行测试,其收效是很小的。进行测试,其收效是很小的。进行测试,其收效是很小的。进行测试,其收效是很小的。单元测试举例单元测试举例继承的继承的测试测试 例:父类中定义例:父类中定义: :属性属性 s s 方法方法 f f1 1,f f2 2,f f3 3 子类中定义子类中定义: :属性属性 r r 方法方法 f f1 1,f f4 4,f f5 5 测试子类的内容:测试子类的内容: 属性属性 s, rs, r 方法方法 f f1 1,f f2 2,f f3 3 f f4 4,f f5 5二、集成测试二、集成测试 因因为为面面向向对对象象软软件件没没有有一一个个层层次次的的控控制制结结构构,所所以以传传统统的的自自顶顶向向下下和和自自底底向向上上的的组组装装策策略意义不大。略意义不大。 每每次次将将一一个个操操作作组组装装到到类类中中(像像传传统统的的增增殖殖式式组组装装那那样样)常常常常行行不不通通,因因为为在在构构成成类类的的各个部件之间存在各种各个部件之间存在各种直接和非直接的交互。直接和非直接的交互。 对对于于面面向向对对象象系系统统的的组组装装测测试试,存存在在两两种种不同的测试策略。不同的测试策略。二、集成测试(续)二、集成测试(续)n n基于线索测试基于线索测试 ( (Thread-based Test)Thread-based Test) 它把它把为响应某一系统输入或事件所需的一为响应某一系统输入或事件所需的一组类组装在一起组类组装在一起。每一条线索将分别测试和。每一条线索将分别测试和组装。组装。n n基于应用的测试基于应用的测试 ( (Use-based Test)Use-based Test) 它它着眼于系统结构着眼于系统结构,首先测试独立类,这,首先测试独立类,这些类只使用很少的服务器类。再测试那些使些类只使用很少的服务器类。再测试那些使用了独立类的相关类。一系列测试各层相关用了独立类的相关类。一系列测试各层相关类的活动继续下去,直到整个系统构造完成类的活动继续下去,直到整个系统构造完成三三、确认测试确认测试&在进行在进行确认测试确认测试和和系统测试系统测试时,不关心时,不关心类之间连接的细节。着眼于用户的要求和类之间连接的细节。着眼于用户的要求和用户能够认可的系统输出。用户能够认可的系统输出。&为了帮助确认测试的执行,测试者需要为了帮助确认测试的执行,测试者需要回到分析模型,回到分析模型,根据那里提供的事件序列根据那里提供的事件序列(脚本)进行测试。(脚本)进行测试。&可以利用黑盒测试的方法来驱动确认测可以利用黑盒测试的方法来驱动确认测试。试。104 UML简介简介一、传统的面向对象方法简介一、传统的面向对象方法简介公认的面向对象建模语言出现于公认的面向对象建模语言出现于公认的面向对象建模语言出现于公认的面向对象建模语言出现于70707070年代中期,年代中期,年代中期,年代中期,从从从从1989198919891989年到年到年到年到1994199419941994年年年年, , , ,其数量从不到十种增加到了五其数量从不到十种增加到了五其数量从不到十种增加到了五其数量从不到十种增加到了五十多种。十多种。十多种。十多种。 在众多的建模语言中在众多的建模语言中在众多的建模语言中在众多的建模语言中, , , ,语言的创造者努力推崇语言的创造者努力推崇语言的创造者努力推崇语言的创造者努力推崇自己的产品自己的产品自己的产品自己的产品, , , ,并在实践中不断完善。但是并在实践中不断完善。但是并在实践中不断完善。但是并在实践中不断完善。但是, , , ,OOOOOOOO方法方法方法方法的用户并不了解不同建模语言的优缺点及相互之的用户并不了解不同建模语言的优缺点及相互之的用户并不了解不同建模语言的优缺点及相互之的用户并不了解不同建模语言的优缺点及相互之间的差异间的差异间的差异间的差异, , , ,因而很难根据应用特点选择合适的建模因而很难根据应用特点选择合适的建模因而很难根据应用特点选择合适的建模因而很难根据应用特点选择合适的建模语言语言语言语言, , , ,于是爆发了一场于是爆发了一场于是爆发了一场于是爆发了一场“ “方法大战方法大战方法大战方法大战” ”。 90 90 90 90年代中年代中年代中年代中, , , ,一批新方法出现了一批新方法出现了一批新方法出现了一批新方法出现了, , , ,其中最引人注其中最引人注其中最引人注其中最引人注目的是目的是目的是目的是BoochBoochBoochBooch 1993 1993 1993 1993、OOSEOOSEOOSEOOSE和和和和OMT-2OMT-2OMT-2OMT-2、CoadCoadCoadCoad/ / / /YourdonYourdonYourdonYourdon方法方法方法方法等。等。等。等。一、传统的面向对象方法简介(续)一、传统的面向对象方法简介(续)BoochBoochBoochBooch是面向对象方法最早的倡导者之一是面向对象方法最早的倡导者之一是面向对象方法最早的倡导者之一是面向对象方法最早的倡导者之一, , , ,他提他提他提他提出了出了出了出了面向对象软件工程面向对象软件工程面向对象软件工程面向对象软件工程的概念。的概念。的概念。的概念。1991199119911991年年年年, , , ,他将以前面他将以前面他将以前面他将以前面向向向向AdaAdaAdaAda的工作扩展到整个面向对象设计领域。的工作扩展到整个面向对象设计领域。的工作扩展到整个面向对象设计领域。的工作扩展到整个面向对象设计领域。BoochBoochBoochBooch 1993199319931993比较适合于系统的设计和构造。比较适合于系统的设计和构造。比较适合于系统的设计和构造。比较适合于系统的设计和构造。RumbaughRumbaughRumbaughRumbaugh等人提出了等人提出了等人提出了等人提出了面向对象的建模技术面向对象的建模技术面向对象的建模技术面向对象的建模技术( ( ( (OMT)OMT)OMT)OMT)方法方法方法方法, , , ,采用了面向对象的概念采用了面向对象的概念采用了面向对象的概念采用了面向对象的概念, , , ,并引入各种独立于语言并引入各种独立于语言并引入各种独立于语言并引入各种独立于语言的表示符。这种方法用的表示符。这种方法用的表示符。这种方法用的表示符。这种方法用对象模型对象模型对象模型对象模型、动态模型动态模型动态模型动态模型、功能模功能模功能模功能模型型型型和和和和用例模型用例模型用例模型用例模型, , , ,共同完成对整个系统的建模共同完成对整个系统的建模共同完成对整个系统的建模共同完成对整个系统的建模, , , ,所定义的所定义的所定义的所定义的概念和符号可用于软件开发的分析、设计和实现的全概念和符号可用于软件开发的分析、设计和实现的全概念和符号可用于软件开发的分析、设计和实现的全概念和符号可用于软件开发的分析、设计和实现的全过程过程过程过程, , , ,软件开发人员不必在开发过程的不同阶段进行软件开发人员不必在开发过程的不同阶段进行软件开发人员不必在开发过程的不同阶段进行软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。概念和符号的转换。概念和符号的转换。概念和符号的转换。OMT-2OMT-2OMT-2OMT-2特别适用于分析和描述以特别适用于分析和描述以特别适用于分析和描述以特别适用于分析和描述以数据为中心的信息系统数据为中心的信息系统数据为中心的信息系统数据为中心的信息系统。一、传统的面向对象方法简介(续)一、传统的面向对象方法简介(续)JacobsonJacobson于于19941994年提出了年提出了OOSEOOSE方法方法, ,其最其最大特点是面向用例大特点是面向用例( (Use-Case),Use-Case),并在用例的描述并在用例的描述中引入了外部角色的概念。中引入了外部角色的概念。用例的概念是精确用例的概念是精确描述需求的重要武器描述需求的重要武器, ,但用例贯穿于整个开发过但用例贯穿于整个开发过程程, ,包括对系统的测试和验证包括对系统的测试和验证。OOSEOOSE比较适合支比较适合支持商业工程和需求分析持商业工程和需求分析。CoadCoad/ /YourdonYourdon方法方法, ,即著名的即著名的OOA/OODOOA/OOD, ,它它是最早的面向对象的分析和设计方法之一是最早的面向对象的分析和设计方法之一。该。该方法简单、易学方法简单、易学, ,适合于面向对象技术的初学者适合于面向对象技术的初学者使用使用, ,但由于该方法在处理能力方面的局限但由于该方法在处理能力方面的局限, ,目目前已很少使用。前已很少使用。【存在的危机】:【存在的危机】: 1 1)面对众多的建模语言)面对众多的建模语言, ,用户由于没有能力区用户由于没有能力区别不同语言之间的差别别不同语言之间的差别, ,因此很难找到一种比较因此很难找到一种比较适合其应用特点的语言适合其应用特点的语言; ; 2 2)众多的建模语言实际上各有千秋)众多的建模语言实际上各有千秋; ; 3 3)虽然不同的建模语言大多类同)虽然不同的建模语言大多类同, ,但仍存在某但仍存在某些细微差别些细微差别, ,极大地妨碍了用户间的交流。极大地妨碍了用户间的交流。 因此在客观上因此在客观上, ,极有必要在精心比较不同的极有必要在精心比较不同的建模语言优缺点及总结面向对象技术应用实践建模语言优缺点及总结面向对象技术应用实践的基础上的基础上, ,组织联合设计小组组织联合设计小组, ,根据应用需求根据应用需求, ,取取其精华其精华, ,去其糟粕去其糟粕, ,统一建模语言。统一建模语言。一、传统的面向对象方法简介(续)一、传统的面向对象方法简介(续)二、统一建模语言二、统一建模语言( (UML)UML)的诞生的诞生1994199419941994年年年年10101010月月月月, , , ,Grady Grady Grady Grady BoochBoochBoochBooch和和和和Jim Jim Jim Jim RumbaughRumbaughRumbaughRumbaugh开开开开始始始始致致致致力力力力于于于于这这这这一一一一工工工工作作作作。他他他他们们们们首首首首先先先先将将将将Booch93Booch93Booch93Booch93和和和和OMT-2 OMT-2 OMT-2 OMT-2 统统统统一一一一起起起起来来来来, , , ,并并并并于于于于1995199519951995年年年年10101010月月月月发发发发布布布布了了了了第第第第一一一一个个个个公公公公开开开开版版版版本本本本, , , ,称称称称之之之之为为为为统统统统一一一一方方方方法法法法UM UM UM UM 0.8(0.8(0.8(0.8(UnitiedUnitiedUnitiedUnitied Method)Method)Method)Method)。1995199519951995年年年年秋秋秋秋, , , ,OOSE OOSE OOSE OOSE 的的的的创创创创始始始始人人人人IvarIvarIvarIvar JacobsonJacobsonJacobsonJacobson加加加加盟盟盟盟到到到到这这这这一一一一工工工工作作作作。经经经经过过过过BoochBoochBoochBooch、RumbaughRumbaughRumbaughRumbaugh和和和和JacobsonJacobsonJacobsonJacobson三三三三人人人人的的的的共共共共同同同同努努努努力力力力, , , ,于于于于1996199619961996年年年年6 6 6 6月月月月和和和和10101010月月月月分分分分别别别别发发发发布布布布了了了了两两两两个个个个新新新新的的的的版版版版本本本本, , , ,即即即即UML UML UML UML 0.90.90.90.9和和和和UML UML UML UML 0.91,0.91,0.91,0.91,并并并并 将将将将 UMUMUMUM重重重重 新新新新 命命命命 名名名名 为为为为 UML(Unified UML(Unified UML(Unified UML(Unified Modeling Modeling Modeling Modeling LanguageLanguageLanguageLanguage,统一建模语言统一建模语言统一建模语言统一建模语言) ) ) )。 UML UML的诞生,是软件工程界一个重要的、划的诞生,是软件工程界一个重要的、划时代意义的成果之一。在今后的至少近时代意义的成果之一。在今后的至少近1010年内,年内,UMLUML将是面向对象技术领域内占主导地位的标志将是面向对象技术领域内占主导地位的标志建模语言建模语言。 在美国在美国, ,截止截止19961996年年1010月月, ,UMLUML获得了工业界、获得了工业界、科技界和应用界的广泛支持科技界和应用界的广泛支持, ,已有已有700700多个公司多个公司表示支持采用表示支持采用UMLUML作为建模语言。作为建模语言。 1996 1996年底年底, ,UMLUML已稳占面向对象技术市场的已稳占面向对象技术市场的85%,85%,成为可视化建模语言事实上的工业标准。成为可视化建模语言事实上的工业标准。 1997 1997年年1111月月1717日日, ,OMGOMG采纳采纳UML 1.1UML 1.1作为基于作为基于面向对象技术的标准建模语言。面向对象技术的标准建模语言。 UML UML代表了面向对象方法的软件开发技术的代表了面向对象方法的软件开发技术的发展方向发展方向, ,具有巨大的市场前景具有巨大的市场前景, ,也具有重大的也具有重大的经济价值和国防价值。经济价值和国防价值。小知识:小知识:对象管理组织对象管理组织 OMGOMG OMGOMG(对象管理组织,Object Management Group)成立于成立于19891989年,作为一个非营利性组织,集年,作为一个非营利性组织,集中致力于开发在技术上具有先进性、在商业上具有中致力于开发在技术上具有先进性、在商业上具有可行性并且独立于厂商的软件互联规范,推广可行性并且独立于厂商的软件互联规范,推广面向面向对象模型技术,增强软件的可移植性对象模型技术,增强软件的可移植性、可重用性和可重用性和互操作性互操作性。 该组织成立之初,成员包括该组织成立之初,成员包括UnisysUnisys、SunSun、CannonCannon、Hewlett-PackardHewlett-Packard、PhilipsPhilips等在业界享有等在业界享有声誉的软硬件厂商,目前该组织拥有声誉的软硬件厂商,目前该组织拥有800800多家成员。多家成员。 CORBA CORBA(Common Object Request Broker Common Object Request Broker Architecture, Architecture, 公共对象请求代理体系结构)是由公共对象请求代理体系结构)是由OMGOMG提出的应用软件体系结构和对象技术规范,其支提出的应用软件体系结构和对象技术规范,其支持异构分布应用程序间的互操作性及独立于平台和持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。编程语言的对象重用。三三、UMLUML内容简介内容简介 UMLUMLUMLUML融合了融合了融合了融合了BoochBoochBoochBooch、OMTOMTOMTOMT和和和和OOSEOOSEOOSEOOSE方法中的基本概念方法中的基本概念方法中的基本概念方法中的基本概念, , , ,而且这些基本概念与其他面向对象技术中的基本概而且这些基本概念与其他面向对象技术中的基本概而且这些基本概念与其他面向对象技术中的基本概而且这些基本概念与其他面向对象技术中的基本概念大多相同念大多相同念大多相同念大多相同, , , ,因而因而因而因而, , , ,UMLUMLUMLUML必然成为这些方法以及其他方必然成为这些方法以及其他方必然成为这些方法以及其他方必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言法的使用者乐于采用的一种简单一致的建模语言法的使用者乐于采用的一种简单一致的建模语言法的使用者乐于采用的一种简单一致的建模语言; ; ; ; 其次其次其次其次, , , ,UMLUMLUMLUML不仅仅是上述方法的简单汇合不仅仅是上述方法的简单汇合不仅仅是上述方法的简单汇合不仅仅是上述方法的简单汇合, , , ,而是在而是在而是在而是在这些方法的基础上广泛征求意见这些方法的基础上广泛征求意见这些方法的基础上广泛征求意见这些方法的基础上广泛征求意见, , , ,集众家之长集众家之长集众家之长集众家之长, , , ,几经几经几经几经修改而完成的修改而完成的修改而完成的修改而完成的, , , ,UMLUMLUMLUML扩展了现有方法的应用范围扩展了现有方法的应用范围扩展了现有方法的应用范围扩展了现有方法的应用范围; ; ; ; 第三第三第三第三, , , ,UMLUMLUMLUML是标准的建模语言是标准的建模语言是标准的建模语言是标准的建模语言, , , ,而不是标准的开发而不是标准的开发而不是标准的开发而不是标准的开发过程过程过程过程(Rational Unified Process, Rational Rational Unified Process, Rational Rational Unified Process, Rational Rational Unified Process, Rational 统一统一统一统一过程,过程,过程,过程,RUPRUPRUPRUP)。尽管。尽管。尽管。尽管UMLUMLUMLUML的应用必然以系统的开发过的应用必然以系统的开发过的应用必然以系统的开发过的应用必然以系统的开发过程为背景程为背景程为背景程为背景, , , ,但由于不同的组织和不同的应用领域但由于不同的组织和不同的应用领域但由于不同的组织和不同的应用领域但由于不同的组织和不同的应用领域, , , ,需需需需要采取不同的开发过程。要采取不同的开发过程。要采取不同的开发过程。要采取不同的开发过程。三三、UMLUML内容简介(续)内容简介(续) 作为一种建模语言作为一种建模语言, ,UMLUML的定义包括的定义包括UMLUML语语义义和和UMLUML表示法表示法两个部分。两个部分。 1) 1) UMLUML语义语义。描述基于。描述基于UMLUML的精确元模型的精确元模型定义。元模型为定义。元模型为UMLUML的所有元素在语法和语义的所有元素在语法和语义上提供了简单、一致、通用的定义性说明上提供了简单、一致、通用的定义性说明, ,使使开发者能在语义上取得一致开发者能在语义上取得一致, ,消除了因人而异消除了因人而异的最佳表达方法所造成的影响。此外的最佳表达方法所造成的影响。此外UMLUML还支还支持对元模型的扩展定义。持对元模型的扩展定义。 2) 2) UMLUML表示。表示。定义定义UMLUML符号的表示法符号的表示法, ,为为开发者或开发工具使用这些图形符号和文本开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型和文字所表达的是应用级的模型, ,在语义上它在语义上它是是UMLUML元模型的实例。元模型的实例。三三、UMLUML内容简介(续)内容简介(续) 客观世界是一个复杂巨系统,为了能支持从不同客观世界是一个复杂巨系统,为了能支持从不同客观世界是一个复杂巨系统,为了能支持从不同客观世界是一个复杂巨系统,为了能支持从不同角度来考察系统,标准建模语言角度来考察系统,标准建模语言角度来考察系统,标准建模语言角度来考察系统,标准建模语言UMLUMLUMLUML定义了下列定义了下列定义了下列定义了下列5 5 5 5类、类、类、类、共共共共10101010种模型图:种模型图:种模型图:种模型图:1 1 1 1)用例图)用例图)用例图)用例图:从用户角度描述系统功能:从用户角度描述系统功能:从用户角度描述系统功能:从用户角度描述系统功能, , , ,并指出各功并指出各功并指出各功并指出各功能的操作者。能的操作者。能的操作者。能的操作者。2 2 2 2)静态图)静态图)静态图)静态图:包括包括包括包括类图类图类图类图、对象图对象图对象图对象图和和和和包图包图包图包图。 其中其中其中其中类图描述系统中类的静态结构类图描述系统中类的静态结构类图描述系统中类的静态结构类图描述系统中类的静态结构。不仅定义系统中的。不仅定义系统中的。不仅定义系统中的。不仅定义系统中的类类类类, , , ,表示类之间的联系如关联、依赖、聚合等表示类之间的联系如关联、依赖、聚合等表示类之间的联系如关联、依赖、聚合等表示类之间的联系如关联、依赖、聚合等, , , ,也包括类的内也包括类的内也包括类的内也包括类的内部结构部结构部结构部结构( ( ( (类的属性和操作类的属性和操作类的属性和操作类的属性和操作) ) ) )。类图描述的是一种静态关系类图描述的是一种静态关系类图描述的是一种静态关系类图描述的是一种静态关系, , , ,在在在在系统的整个生命周期都是有效的。系统的整个生命周期都是有效的。系统的整个生命周期都是有效的。系统的整个生命周期都是有效的。 对象图是类图的实例对象图是类图的实例对象图是类图的实例对象图是类图的实例, , , ,几乎使用与类图完全相同的标识。几乎使用与类图完全相同的标识。几乎使用与类图完全相同的标识。几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例他们的不同点在于对象图显示类的多个对象实例他们的不同点在于对象图显示类的多个对象实例他们的不同点在于对象图显示类的多个对象实例, , , ,而不是实而不是实而不是实而不是实际的类。一个对象图是类图的一个实例。际的类。一个对象图是类图的一个实例。际的类。一个对象图是类图的一个实例。际的类。一个对象图是类图的一个实例。 包由包或类组成包由包或类组成包由包或类组成包由包或类组成, , , ,表示包与包之间的关系。包图用于描表示包与包之间的关系。包图用于描表示包与包之间的关系。包图用于描表示包与包之间的关系。包图用于描述系统的分层结构述系统的分层结构述系统的分层结构述系统的分层结构。 三三、UMLUML内容简介(续)内容简介(续)3 3)行为图)行为图:描述系统的动态模型和组成对象描述系统的动态模型和组成对象间的交互关系间的交互关系 其中其中状态图状态图描述类的对象所有可能的状描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常态以及事件发生时状态的转移条件。通常, ,状状态图是对类图的补充。在实用上并不需要为态图是对类图的补充。在实用上并不需要为所有的类画状态图所有的类画状态图, ,仅为那些有多个状态其行仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状为受外界环境的影响并且发生改变的类画状态图。态图。 而而活动图活动图描述满足用例要求所要进行的描述满足用例要求所要进行的活动以及活动间的约束关系活动以及活动间的约束关系, ,有利于识别并行有利于识别并行活动。活动。三三、UMLUML内容简介(续)内容简介(续)4)4)交互图交互图: :描述对象间的交互关系。描述对象间的交互关系。 其中其中顺序图显示对象之间的动态合作关系顺序图显示对象之间的动态合作关系, ,它强调对象之间消息发送的顺序它强调对象之间消息发送的顺序, ,同时显示对同时显示对象之间的交互象之间的交互; ; 合作图描述对象间的协作关系合作图描述对象间的协作关系。合作图跟。合作图跟顺序图相似顺序图相似, ,显示对象间的动态合作关系。除显示对象间的动态合作关系。除显示信息交换外显示信息交换外, ,合作图还显示对象以及它们合作图还显示对象以及它们之间的关系。之间的关系。 如果强调时间和顺序如果强调时间和顺序, ,则使用顺序图则使用顺序图; ;如如果强调上下级关系果强调上下级关系, ,则选择合作图。这两种图则选择合作图。这两种图合称为交互图。合称为交互图。 三三、UMLUML内容简介(续)内容简介(续)5) 5) 实现图:实现图: 其中其中构件图描述代码部件的物理结构及构件图描述代码部件的物理结构及各部件之间的依赖关系各部件之间的依赖关系。一个部件可能是一。一个部件可能是一个资源代码部件、一个二进制部件或一个可个资源代码部件、一个二进制部件或一个可执行部件。执行部件。 它包含逻辑类或实现类的有关信它包含逻辑类或实现类的有关信息。息。构件图构件图有助于分析和理解部件之间的相有助于分析和理解部件之间的相互影响程度。互影响程度。 配置图定义系统中软硬件的物理体系配置图定义系统中软硬件的物理体系结构结构。它可以显示实际的计算机和设备。它可以显示实际的计算机和设备( (用节用节点表示点表示) )以及它们之间的连接关系以及它们之间的连接关系, ,也可显示也可显示连接的类型及部件之间的依赖性。连接的类型及部件之间的依赖性。三三、UMLUML内容简介(续)内容简介(续)从应用的角度看从应用的角度看从应用的角度看从应用的角度看, , , ,当采用面向对象技术设计系统当采用面向对象技术设计系统当采用面向对象技术设计系统当采用面向对象技术设计系统时时时时, , , ,首先是描述需求首先是描述需求首先是描述需求首先是描述需求; ; ; ;其次根据需求建立系统的静态其次根据需求建立系统的静态其次根据需求建立系统的静态其次根据需求建立系统的静态模型模型模型模型, , , ,以构造系统的结构以构造系统的结构以构造系统的结构以构造系统的结构; ; ; ;第三步是描述系统的行为第三步是描述系统的行为第三步是描述系统的行为第三步是描述系统的行为。 其中在第一步与第二步中所建立的模型都是静其中在第一步与第二步中所建立的模型都是静其中在第一步与第二步中所建立的模型都是静其中在第一步与第二步中所建立的模型都是静态的态的态的态的, , , ,包括用例图、类图包括用例图、类图包括用例图、类图包括用例图、类图( ( ( (包含包包含包包含包包含包) ) ) )、对象图、组件图、对象图、组件图、对象图、组件图、对象图、组件图和配置图等五个图形和配置图等五个图形和配置图等五个图形和配置图等五个图形, , , ,是标准建模语言是标准建模语言是标准建模语言是标准建模语言UMLUMLUMLUML的静态建的静态建的静态建的静态建模机制。模机制。模机制。模机制。 其中第三步中所建立的模型或者可以执行其中第三步中所建立的模型或者可以执行其中第三步中所建立的模型或者可以执行其中第三步中所建立的模型或者可以执行, , , ,或者或者或者或者表示执行时的时序状态或交互关系。它包括状态图、表示执行时的时序状态或交互关系。它包括状态图、表示执行时的时序状态或交互关系。它包括状态图、表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形活动图、顺序图和合作图等四个图形活动图、顺序图和合作图等四个图形活动图、顺序图和合作图等四个图形, , , ,是标准建模语是标准建模语是标准建模语是标准建模语言言言言UMLUMLUMLUML的动态建模机制。的动态建模机制。的动态建模机制。的动态建模机制。 因此因此因此因此, , , , UMLUMLUMLUML的主要内容也可以归纳为静态建模机的主要内容也可以归纳为静态建模机的主要内容也可以归纳为静态建模机的主要内容也可以归纳为静态建模机制和动态建模机制两大类制和动态建模机制两大类制和动态建模机制两大类制和动态建模机制两大类。四四、UMLUML的现状和发展的现状和发展 1 1)UMLUML已经取得重要成功,它已成为在软已经取得重要成功,它已成为在软件工业中占支配地位的建模语言,并在许多领件工业中占支配地位的建模语言,并在许多领域的软件开发中得到应用。域的软件开发中得到应用。 2 2) UMLUML还存在许多问题,自它产生之日起还存在许多问题,自它产生之日起就从未离开过批评:用户和教师抱怨它内就从未离开过批评:用户和教师抱怨它内 3 3) UMLUML的关键问题是过于庞大和复杂,以的关键问题是过于庞大和复杂,以及在语言体系结构、语义等方面存在理论缺陷。及在语言体系结构、语义等方面存在理论缺陷。产生这些问题的一个重要原因是,在形成规范产生这些问题的一个重要原因是,在形成规范的过程中不得不照顾多种方法流派的观点和多的过程中不得不照顾多种方法流派的观点和多家公司的利益。家公司的利益。 四四、UMLUML的现状和发展(续)的现状和发展(续) 为了为了为了为了UMLUMLUMLUML的下一次重大发布,的下一次重大发布,的下一次重大发布,的下一次重大发布,UML 2.0UML 2.0UML 2.0UML 2.0修订的主修订的主修订的主修订的主持者正在广泛收集各方面的意见。各界都给予了很持者正在广泛收集各方面的意见。各界都给予了很持者正在广泛收集各方面的意见。各界都给予了很持者正在广泛收集各方面的意见。各界都给予了很高的关注,提出的意见涉及高的关注,提出的意见涉及高的关注,提出的意见涉及高的关注,提出的意见涉及UMLUMLUMLUML的各个方面。其中一的各个方面。其中一的各个方面。其中一的各个方面。其中一个关键问题是个关键问题是个关键问题是个关键问题是UMLUMLUMLUML是否需要简化,以及如何使之更精是否需要简化,以及如何使之更精是否需要简化,以及如何使之更精是否需要简化,以及如何使之更精练,最终大部分意见是提供一个精练的核心,而把练,最终大部分意见是提供一个精练的核心,而把练,最终大部分意见是提供一个精练的核心,而把练,最终大部分意见是提供一个精练的核心,而把不常用的内容放到定义良好的外围或扩展机制中。不常用的内容放到定义良好的外围或扩展机制中。不常用的内容放到定义良好的外围或扩展机制中。不常用的内容放到定义良好的外围或扩展机制中。 此外,此外,此外,此外,UML2.0UML2.0UML2.0UML2.0还将对还将对还将对还将对UMLUMLUMLUML的底层结构、上层结构的底层结构、上层结构的底层结构、上层结构的底层结构、上层结构和对象约束语言(和对象约束语言(和对象约束语言(和对象约束语言(OCLOCLOCLOCL)做重大改进。做重大改进。做重大改进。做重大改进。 原定原定原定原定UML 2.0UML 2.0UML 2.0UML 2.0在今年某个时间发布,但是在刚刚在今年某个时间发布,但是在刚刚在今年某个时间发布,但是在刚刚在今年某个时间发布,但是在刚刚结束的本年度结束的本年度结束的本年度结束的本年度UMLUMLUMLUML国际研讨会上,没有透露关于该版国际研讨会上,没有透露关于该版国际研讨会上,没有透露关于该版国际研讨会上,没有透露关于该版本最新进度的任何消息,看来它的面世要比预期的本最新进度的任何消息,看来它的面世要比预期的本最新进度的任何消息,看来它的面世要比预期的本最新进度的任何消息,看来它的面世要比预期的日程推后。日程推后。日程推后。日程推后。 五五、UMLUML的应用领域的应用领域 UMLUMLUMLUML的目标是以面向对象图的方式来描述任何的目标是以面向对象图的方式来描述任何的目标是以面向对象图的方式来描述任何的目标是以面向对象图的方式来描述任何类型的系统类型的系统类型的系统类型的系统, , , ,具有很宽的应用领域。其中具有很宽的应用领域。其中具有很宽的应用领域。其中具有很宽的应用领域。其中最常用的最常用的最常用的最常用的是建立软件系统的模型是建立软件系统的模型是建立软件系统的模型是建立软件系统的模型, , , ,但它同样可以用于描述非但它同样可以用于描述非但它同样可以用于描述非但它同样可以用于描述非软件领域的系统软件领域的系统软件领域的系统软件领域的系统, , , ,如机械系统、企业机构或业务过如机械系统、企业机构或业务过如机械系统、企业机构或业务过如机械系统、企业机构或业务过程程程程, , , ,以及处理复杂数据的信息系统、具有实时要求以及处理复杂数据的信息系统、具有实时要求以及处理复杂数据的信息系统、具有实时要求以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。的工业系统或工业过程等。的工业系统或工业过程等。的工业系统或工业过程等。 总之总之总之总之, , , ,UMLUMLUMLUML是一个通用的标准建模语言是一个通用的标准建模语言是一个通用的标准建模语言是一个通用的标准建模语言, , , ,可以对任可以对任可以对任可以对任何具有静态结构和动态行为的系统进行建模何具有静态结构和动态行为的系统进行建模何具有静态结构和动态行为的系统进行建模何具有静态结构和动态行为的系统进行建模。标准标准标准标准建模语言建模语言建模语言建模语言UMLUMLUMLUML适用于以面向对象技术来描述任何类适用于以面向对象技术来描述任何类适用于以面向对象技术来描述任何类适用于以面向对象技术来描述任何类型的系统型的系统型的系统型的系统, , , ,而且适用于系统开发的不同阶段而且适用于系统开发的不同阶段而且适用于系统开发的不同阶段而且适用于系统开发的不同阶段, , , ,从需求从需求从需求从需求规格描述直至系统完成后的测试和维护。规格描述直至系统完成后的测试和维护。规格描述直至系统完成后的测试和维护。规格描述直至系统完成后的测试和维护。六六、UMLUML的建模工具的建模工具 建模工具主要是让设计人员通过对项目对象的建模工具主要是让设计人员通过对项目对象的分析建立起全面的认识。不管是系统分析人员还是分析建立起全面的认识。不管是系统分析人员还是程序设计人员,采用建模语言对项目进行预先的模程序设计人员,采用建模语言对项目进行预先的模型规划,能大大地提高生产效率,有助于项目高质型规划,能大大地提高生产效率,有助于项目高质量高速度的完成。量高速度的完成。 除此之外,这些建模工具都支持一种称为除此之外,这些建模工具都支持一种称为“双向工程双向工程”的特性。即,由建模工具生成的对象模的特性。即,由建模工具生成的对象模型自动转换为型自动转换为VCVC或或VBVB源代码的源代码的“正向工程正向工程”,以及,以及通过建模工具对通过建模工具对VCVC或或VBVB源码分析而产生对象模型的源码分析而产生对象模型的“逆向工程逆向工程”,两种特性合称为,两种特性合称为“双向工程双向工程”。 针对面向对象建模语言,已经有很多公司推出了各自针对面向对象建模语言,已经有很多公司推出了各自的建模工具,比较流行的是的建模工具,比较流行的是RationalRational公司的公司的ROSEROSE建模工具建模工具。以及新近较为风行的由以及新近较为风行的由Visual Object Modelers(VOM)Visual Object Modelers(VOM)软件软件公司推出的旗舰级产品公司推出的旗舰级产品Visual UML 2.0 Plus EditionVisual UML 2.0 Plus Edition。Rational Rose Rational Rose 简介简介 Rational Rose Rational Rose 是是RationalRational公司开发的一种分公司开发的一种分析和设计面向对象的可视化的建模工具,目前市场析和设计面向对象的可视化的建模工具,目前市场占有率第一。占有率第一。RationalRational公司已成公司已成为OO CASEOO CASE(面向面向对象)界的象)界的MicrosoftMicrosoft。利用利用ROSEROSE这个工具,可以建立用这个工具,可以建立用UMLUML的软件系的软件系统的模型,而且可以自动生成和维护统的模型,而且可以自动生成和维护C+C+、JAVAJAVA、VBVB、PBPB、ORACLEORACLE等语言和系统的代码。等语言和系统的代码。支持双向工程:支持双向工程:1 1)生成代码:根据选择开发应用程序的语言生成对应)生成代码:根据选择开发应用程序的语言生成对应的程序的代码。的程序的代码。2 2)逆向转出工程:根据选择开发应用程序的语言生成)逆向转出工程:根据选择开发应用程序的语言生成对应的程序的代码。对应的程序的代码。105 本章重点本章重点1 1)熟悉熟悉OOOO语言的特点,语言的特点,掌握掌握选取开发语言选取开发语言的基本原则。的基本原则。2 2)了解了解面向对象测试的概念。面向对象测试的概念。3 3)了解了解UMLUML的基本概念。的基本概念。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号