第十章UML开发方法主要学习内容UML概述UML的主要目标和特点UML的应用领域UML的建模框架和基本概念10.1UML概述UML是由世界著名的面向对象技术专家GradyBooch、JimRumbaugh和IvarJacobson发起,在著名的Booch方怯、OMT方怯和OOSE方怯的基础上,集众家之长,几经修改而完成的。在原理上,任何方法都应由建模语言和建模过程两部分构成。其中,建模语言提供用于表示没计的符号(通常是图形符号),建模过程则描述进行设计所需要遵循的步骤。标准建模语言UML统一了面向对象建模的基本概念、术语及其图形符号,建立了便于软件开发交流的通用语言。10.2UML的主要目标和特点10.2.1UML的主要目标UML的目标是:(1)运用面向对象概念来构造系统模型(不仅仅是针对软件)。(2)建立从概念模型直至可执行体之间明显的对应关系。(3)刨建一种对人和机器都适用的建模语言。(4)易于使用,表达能力强,方便可视化建模。(5)与具体的实现无关,可应用于任何语言平台和工具平台。10.2.2UML的主要特点作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。UML是一种标准的图形化建模语言,它是面向对象分析与设计方法的表现手段。UML的特点如下:(1)不是一种可视化的程序设计语言,而是一种可视化的建模语言。(2)不是工具或知识库的规格说明,而是一种建模语言规格说明,是一种表示的标准。(3)不是过程,也不是方法,但允许任何一种过程和方法使用它。10.3UML的应用领域UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中,最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求UML模型还可作为测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据10.4UML的建模框架和基本概念10.4.1UML的建模框架一般而言,可以从以下几种角度来描述一个系统。(1)系统的使用实例:从系统外部的操作者的角度描述系统的功能。(2)系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。(3)系统的构成:描述系统由哪些程序构件所组成。(4)系统的并发特性:描述系统的并发性,强调并发系统中存在的各种通信和同步。(5)系统的配置:描述系统的软件和各种硬件设备之间的配置关系。10.4.2UML的基本概念1.UML的词汇表UML的词汇表包括3个范畴。事物(thing):对系统模型中最具有代表性方面的抽象。关系(relationship):表示如何将事物通过不同的方法结合在一起,是模型元素之间具体的语义连接。图(diagram):是很多有相互关系的事物的组。2.UML的事物UML中有4种类型的事物是结构事物、动作事物、分组事物、注释事物。它们在模型中属于静态的部分,代表概念上或物理上的元素2.UML的事物(1)结构事物(总共有7种结构化事物)1)类(Class)。类是一组具有相同属性、相同操作、相同关系和相同语义的对象描述,是对事物概念本质的抽象。UML中类的表示法是一个矩形框上面区域表示类名,中间区域是类的属性,下面区域是类的操作,属性和操作都可以省略,将对应的矩形框空着。2.UML的事物(1)结构事物(总共有7种结构化事物)2)接口(Interface)。描述了类中部分行为的一组操作,它是用来重用类中操作的一个UML组件,可以向一个类提供另一个类的一组操作。2.UML的事物(1)结构事物(总共有7种结构化事物)3)协作(Collaboration)。是一组类、接口和其它元素的群体,它们共同工作,提供比各个组成部分总和更强的合作行为,一个给定的类可以参与多个协作2.UML的事物(1)结构事物(总共有7种结构化事物)4)用例(UseCase)。是能够帮助分析员和用户确定系统使用情况的UML组件,一个用例就是从用户角度出发对如何使用系统的表示,它是一组动作序列的描述2.UML的事物(1)结构事物(总共有7种结构化事物)5)活动类(ActiveClass)。所对应的对象有一个或多个进程或线程,因此能够启动控制活动。活动类与其它类的区别在于,活动类的对象实例所描述的操作行为与其它主动对象的操作行为并发2.UML的事物(1)结构事物(总共有7种结构化事物)6)构件(Component)。是系统中遵从一组接口并且提供其实现的可替换的物理部分。类与构件之间的重要关系在于,一个构件可以是多个类的实现7)节点(Node)。是运行时的物理对象,代表一个计算资源,通常至少有一定的存储能力和处理能力,运行时对象实例和构件实例可以驻留在节点内2.UML的事物(2)动作事物1)交互(Interaction)。表示在对象或其它实例之间如何传递消息,它是在特定的协作语境中定义的,由共同完成一定任务的一组对象之间交换的消息组成,交互涉及其它的一些元素,包括消息、动作序列和对象之间的连接。简单消息:表示从一个对象到另一个对象的控制流的转移。同步消息:一旦一个对象发送了一个同步消息,它必须等到对方的应答才能继续自己的操作。异步消息:发送异步消息的对象不需要等待应答就可以继续自己的操作。消息用一条有向直线表示,表示消息的直线上有操作名2.UML的事物(2)动作事物2)状态机(StateMachine)。状态机由一系列对象的状态组成。2.UML的事物(3)分组事物(4)注释事物3.UML中的关系(1)依赖(2)关联(3)一般化(4)实现①1:表示1个②*:表示多个③1..*:表示1个或多个④0..1:表示0个或1个10.5UML的基本准则和图形表示10.5.1UML的基本准则(1)不要试图使用所有的图形和符号在UML中有些符号仅用于特殊的场合和方法中,仅当确实需要时才使用它们。(2)不要为每个事物都画一个模型抽取事物的本质(内核)然后围绕内核建模,实现内核的具体表示(3)应该分层次地画模型图10.5.2UML的图形表示(1)类图类图描述系统中类的静态结构。(2)对象图对象图描述系统中某个时刻的一组对象及它们之间的关系,它是类图的特殊用例,是类图的实例。10.5.2UML的图形表示(3)用例图1)用例模型描述外部执行者所理解的系统功能。用例模型用于需求分析阶段。2)用例代表一个完整的功能3)执行者是指用户在系统中所扮演的角色4)用例之间具有使用、扩展和组合三种关系。10.5.2UML的图形表示(4)顺序图1)从上到下:从上到下代表时间的先后顺序,并表示某段时间内该对象是存在的。2)水平方向:横向水平线的箭头指示了不同对象之间传递消息的方向。10.5.2UML的图形表示(5)协作图协作图与顺序图相似,都是显示对象间的交互关系。但它们的侧重点不同,顺序图着重表示交互的时间顺序,协作图则着重表示交互对象的静态链接关系。如果强调时间和顺序,则使用顺序图,如果强调上下级关系,则选择协作图。10.5.2UML的图形表示状态图描述类的对象所有可能的状态及事件发生时状态的转移条件。通常状态图是对类图的补充。10.5.2UML的图形表示(7)活动图活动图描述满足用例要求所要进行的活动及活动间的约束关系,有利于识别并行活动,是状态图的一种特殊形式,是对状态图的扩展10.5.2UML的图形表示(8)构件图构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件,其中,只有可执行构件才有实例。10.5.2UML的图形表示(9)部署图部署图定义系统中软硬件的物理体系结构。表示运行中进行处理的节点和在节点上活动的构件的配置。1)结点是一种代表运行时计算资源的分类器2)构件和接口部署图中的构件代表可执行的物理代码模块(可执行构件的实例),在逻辑上可以和类图中的包或类对应。3)对象部署图中的构件是包或类对应的物理代码模块10.6运用UML对学籍管理系统建模1.开放式学籍管理系统概述开放式学籍管理系统是一个由学校学籍管理信息中心监控,各教学系(部)、教研室分级管理,由学生档案管理、导师管理、授课教师管理、选课管理、成绩查询管理、打印报表等几部分组成,选课学生可以是联网的邻近院校共同参与的管理系统。学籍管理由学校学籍管理中心监控,各教学系部、教研室分级管理,任课教师,选课学生共同参与。2.开放式学籍管理系统的用例和角色3.开放式学籍管理系统分析与设计(1)静态结构的分析设计3.开放式学籍管理系统分析与设计(2)动态结构的分析与设计4.开放式学籍管理系统的实现、测试和系统配置经过系统分析与设计后,就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行的系统。然后,需要对系统送行测试和排错,保证系统符合预定的要求,获得一个无错的系统实现,调试的结果将确认所完成的系统可以真正使用。最后,系统配置的任务是在真实的使用运行环境中配置,调试系统,解决系统正式使用前可能存在的任何问题。