1、软件工程教案软件工程教案(12)UML 1-简介张海涛 8/17/20221第1页,共17页。1-1 1-1 统一建模语言统一建模语言(UML)(UML)是一个通用的可视化建模语言,用是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。和建立软件系统制品的文档。8/17/20222第2页,共17页。w 记录了对必须构造的系统的决定和理解,可用于对系统记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制等方面。的理解、设计、浏览、配置、维护和信息控制等方面。w 它不是一种系统开发的方法,而
2、是一种表示方法;一它不是一种系统开发的方法,而是一种表示方法;一种用于发现应用程序本质的机制。种用于发现应用程序本质的机制。w UMLUML包括概念的语义,表示法和说明,提供了静态、包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。动态、系统环境及组织结构的模型。8/17/20223第3页,共17页。w UML UML 适用于各种软件开发方法、软件生命周期的各适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具;个阶段、各种应用领域以及各种开发工具;UML UML 是是总结了以往建模技术的经验并吸收当今优秀成果的总结了以往建模技术的经验并吸收当今
3、优秀成果的标准建模方法。标准建模方法。w UMLUML标准并没有定义一种标准的开发过程,但它适用于标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。它是为支持大部分现存的面向对象迭代式的开发过程。它是为支持大部分现存的面向对象开发过程而设计的。开发过程而设计的。8/17/20224第4页,共17页。第5页,共17页。w 19961996年,年,ObjectManagementGroup(ObjectManagementGroup(国际对象管理组织国际对象管理组织)发发布了征集向外界关于面向对象建模标准方法的消息。布了征集向外界关于面向对象建模标准方法的消息。UMLUML的三位创始人
4、开始与来自其他的软件工程方法专家一道制的三位创始人开始与来自其他的软件工程方法专家一道制订一套方法,并设计一种能被软件开发工具提供者、软件订一套方法,并设计一种能被软件开发工具提供者、软件开发方法学家和开发人员这些最终用户所接受的建模语言。开发方法学家和开发人员这些最终用户所接受的建模语言。w 19971997年年1111月,月,UMLUML被被OMGOMG全体成员一致通过,并被采纳为标准。全体成员一致通过,并被采纳为标准。8/17/20226第6页,共17页。2-1 2-1 建模的优点建模的优点为项目小组成员提供了一个交流的为项目小组成员提供了一个交流的途径。途径。避免了小组成员的个人理解对
5、项目避免了小组成员的个人理解对项目开发的影响开发的影响8/17/20227第7页,共17页。w Grady BoochGrady Booch提出的提出的4 4个目标个目标n帮助项目小组将系统结构可视化;帮助项目小组将系统结构可视化;n帮助说明系统的结构与行为;帮助说明系统的结构与行为;n提供一个指导建立系统的模板;提供一个指导建立系统的模板;n将项目小组的决定记录为文档。将项目小组的决定记录为文档。w 总之,总之,“保持小组中良好的沟通保持小组中良好的沟通”。8/17/20228第8页,共17页。w UMLUML提供了多种模型,它比先前的建模语言更复杂更全面。提供了多种模型,它比先前的建模语言
6、更复杂更全面。w UMLUML有足够的表达能力以便可以处理现代软件系统中出现的有足够的表达能力以便可以处理现代软件系统中出现的所有概念,例如并发和分布,以及软件工程中使用的技巧,所有概念,例如并发和分布,以及软件工程中使用的技巧,如封装和组件。如封装和组件。w UMLUML的最终目标是在尽可能简单的同时能够对实际需要建的最终目标是在尽可能简单的同时能够对实际需要建立的系统的各个方面建模。立的系统的各个方面建模。8/17/20229第9页,共17页。3-1 UML3-1 UML的的9 9种图种图活动图、类图、协作图、组件图、活动图、类图、协作图、组件图、部署图、对象图、用例图、顺序图、状部署图、
7、对象图、用例图、顺序图、状态图态图注:注:“包图包图”可以包含所有可以包含所有9 9种图种图8/17/202210第10页,共17页。w静态图:描绘系统的结构和功能。静态图:描绘系统的结构和功能。n用例图、类图、对象图用例图、类图、对象图w动态图:描述系统支持的对象间的相互作用关系。动态图:描述系统支持的对象间的相互作用关系。n活动图、协作图、顺序图、状态图、活动图、协作图、顺序图、状态图、用例图用例图w结构图:系统的实现描述成运行和可执行的组件。结构图:系统的实现描述成运行和可执行的组件。n组件图、部署图组件图、部署图8/17/202211第11页,共17页。wUMLUML的的9 9类图太多
8、了,并非每个项目都类图太多了,并非每个项目都用这么多图。用这么多图。w 最常用最常用(至少至少)有以下几类:有以下几类:n用例图、类图、顺序图用例图、类图、顺序图n另外:一般项目也应有组件图和部署图另外:一般项目也应有组件图和部署图8/17/202212第12页,共17页。w 属性:成员变量的问题属性:成员变量的问题w 接口:类的接口,消息传递模式接口:类的接口,消息传递模式w 操作:子程序操作:子程序&函数(函数(PublicPublic)w 关联关联:类之间的关联类之间的关联w 终止类终止类:用来生成用来生成DLLDLL形式中的数据库方案形式中的数据库方案8/17/202213第13页,共
9、17页。w 应用程序用例指定的路径应用程序用例指定的路径产生对应产生对应的顺序图的顺序图w 顺序图:演化出运行对象的动态协作,顺序图:演化出运行对象的动态协作,相互之间的传送消息相互之间的传送消息8/17/202214第14页,共17页。w 图形式组件图形式组件w 商业级规则组件商业级规则组件w事务或持久性组件事务或持久性组件注注:一般为可执行文件式。一般为可执行文件式。8/17/202215第15页,共17页。w 部署图表部署图表w 组件的安装组件的安装w 实际机器的配置等实际机器的配置等8/17/202216第16页,共17页。4-1 UML4-1 UML有哪有哪9 9类图?类图?4-2 UML4-2 UML的适用范围?的适用范围?8/17/202217第17页,共17页。