




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UML建模语言UML及面向对象分析及设计及面向对象分析及设计 主主 讲讲: 胡元发胡元发 Email: UML建模语言 本课程采用平时成绩(包括出勤考核,课堂发言本课程采用平时成绩(包括出勤考核,课堂发言等)、实践(实验和课程设计)和理论考试相结等)、实践(实验和课程设计)和理论考试相结合的考核方法。总评成绩中平时成绩占合的考核方法。总评成绩中平时成绩占15%,实,实践成绩占践成绩占25%,期末考试占,期末考试占60%。课程设计要求。课程设计要求学生按小组完成项目设计,并以软件验收书面报学生按小组完成项目设计,并以软件验收书面报告的形式上交。告的形式上交。课程安排UML建模语言教科书:UML面
2、向对象设计与分析基础教程,牛丽平等编著 ,清华大学出版社 2007UML建模语言第第1章章 UML与面向对象与面向对象 本章主要介绍什么是面向对象的分析方法和设计方法,面向对象分析的三层设计;然后介绍面向对象分析的工具和方法-UML,以及UML的主要构成Coad和Yourdon:面向对象=对象+类+继承+通信UML建模语言1.1 面向对象开发1.1.1 不同的分析与设计方法 1.功能分解法(function decomposition) 以系统需要提供的功能为中心来组织系统。 首先定义各种功能,然后把功能分解为子功能,对较大的子功能进一 步分解,直到可给出明确的定义 设计功能/子功能所需要的数
3、据结构 定义功能/子功能之间的接口。 (作为一种早期的建模方法,没有明确地区分分析与设计) 建模过程:层层进行功能分解UML建模语言1.1 面向对象开发1.1.1 不同的分析与设计方法 1.功能分解法(function decomposition) 功能分解法得到的系统模型(由模块及其接口构成) 优点与缺点: 直接地反映用户的需求,所以工作很容易开始; 不能直接地映射问题域,很难检验结果的正确性; 对需求变化的适应能力很差; 局部的错误和修改很容易产生全局性的影响。 UML建模语言1.1 面向对象开发1.1.1 不同的分析与设计方法 2.结构化方法: 结构化分析(structured anal
4、ysis,SA) 结构化设计(structured design。SD) 结构化分析又称数据流法,其基本策略是跟踪数据流,即研究问题域中数据如何流动,以及在各个环节上进行何种处理,从而发现数据流和加工。得到的分析模型是数据流图(DFD),主要模型元素是数据流、加工、文件及端点,外加处理说明和数据字典。数据流图: UML建模语言1.1 面向对象开发1.1.1 不同的分析与设计方法 2.结构化方法: 结构化设计与功能分解法基本相同,基于模块的概念建立设计模型,分为概要设计和详细设计。 概要设计:确定系统中包含哪些模块以及模块之间的调用关系,得到模块结构图(MSD)。 详细设计:描述每个模块内部的数
5、据结构和操作流程。 结构化方法的优缺点:优点:强调研究问题域,并且有严格的法则。缺点:仍然是间接映射问题域;分析与设计的概念不一致,从分析到设计的过渡比较困难;数据流和加工的数量太多,引起分析文档的膨胀。 UML建模语言1.1 面向对象开发1.1.1 不同的分析与设计方法 3.信息建模法(information modeling) 由实体-关系法(E-R方法)发展而来。 核心概念是实体和关系。实体描述问题域中的事物,关系描述事物之间在数据方面的联系,都可以带有属性。 发展之后的方法也把实体称作对象,并使用了类型和子类型的概念,作为实体(对象)的抽象描述。 E-R图: UML建模语言1.1 面向
6、对象开发1.1.1 不同的分析与设计方法 3.信息建模法(information modeling) 信息模型:信息建模法已经很接近面向对象方法,因此有的文献也把它称为一种面向对象方法,但有以下差别: 1) 强调的重点是信息建模和状态建模,而不是对象建模 2) 实体中只有属性没有操作 3) 只有属性的继承,不正常操作的继承 4) 没有采用信息通讯 UML建模语言1.1 面向对象开发1.1.1 不同的分析与设计方法 4.面向对象方法 面向对象的分析(OOA)(做什么) 面向对象的设计(OOD)(怎么做) 面向对象的编程(OOP) 运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统
7、。 把问题域中的事物抽象为对象,作为系统的基本构成单位,其属性和操作刻画了事物的静态特征和动态特征完整地刻画了问题域中事物。 用类作为对象的抽象描述,建立它们之间的继承、聚合、关联、消息等关系如实地表达了问题域中事物之间的各种关系。 封装、继承、聚合、关联、消息通讯等原则符合人类的日常思维使系统的复杂性得到控制。 不同的建模方法 体现于 从不同的概念出发认识问题域 用不同的概念进行系统构造UML建模语言1.1 面向对象开发1.1.1 不同的分析与设计方法系统对现实世界的映射方式不同UML建模语言1.1 面向对象开发不同的方法对同一应用实例(电话安装业务系统)的不同效果 结构化分析数据流和加工问
8、题: 不是直接映射问题域,与事物相关的数据和操作不是围绕这些事物来组织的,而是分散在数据流和加工中;经常发生信息膨胀模型中的多个数据里,实现中其实只是一项数据;分析模型难以与设计模型及源程序对应。UML建模语言1.1 面向对象开发 面向对象方法对象及其关系UML建模语言1.1 面向对象开发OO包括包括OOA、OOD、OOP什么是什么是OOA 顾名思义,面向对象的分析(OOA),就是运用面向对象方法进行系统分析。 首先,OOA是分析,是软件生存周期的一个阶段,具有一般分析方法共同具有的内容、目标及策略; 但是,它强调运用面向对象方法进行分析,用面向对象的概念和表示法表达分析结果。 基本任务:运用
9、面向对象的概念对问题域进行分析,将问题域中与系统责任有关的事物抽象为系统中的对象,定义这些对象的属性与操作,以及它们之间的各种关系。 最终目标:建立一个满足用户需求、直接映射问题域的OOA模型。UML建模语言1.1 面向对象开发 什么是什么是OOD 不同时期有不同内容及特点 早期(80年代末期之前)OOD的特点: 1) 不是基于OOA的 大多基于结构化分析结果(数据流图) 2) 是OO编程方法的延伸 多数方法与编程语言无关,特别受Ada影响很大 3) 不是纯OO的 对某些OO概念(如继承)缺少支持,掺杂一些非OO概念(如数据流、包、模块等) 4) 不是只针对软件生存周期的设计阶段 OOD中的“
10、D”指的是Design或Development,多少涉及分析问题(如识别问题域的对象),但很不彻底 早期的OOD可看作现今OOA&D方法的雏形 现今(90年代以后)OOD的特点: i. 以面向对象的分析为基础,一般不依赖结构化分析。 ii. 与OOA方法共同构成一种OOA&D方法体系。OOA和OOD采用一致的概念与原则,但属于软件生存周期的不同阶段,有不同的目标及策略。 iii. 较全面地体现面向对象方法的概念与原则。 iv. 大多数方法独立于编程语言,通过面向对象的分析与设计所得到的系统模型可以由不同的编程语言实现。 定义: 面向对象的设计(OOD)就在是OOA模型基础上运用
11、面向对象方法进行系统设计,目标是产生一个符合具体实现条件的OOD模型。UML建模语言1.1 面向对象开发 什么是什么是OOP OOP就是使用某种面向对象的语言,实现系统中的类和对象,并使系统能够正常运行。在理想的OO开发过程中,OOP只是简单的使用编程语言实现了OOA和OOD分析和设计模型。UML建模语言1.1 面向对象开发 OO方法的主要优点方法的主要优点 软件建模面临的挑战 a) 问题域和系统责任复杂性日益增长 问题域(problem domain):被开发系统的应用领域,即在现实世界中由这个系统进行处理的业务范围。 系统责任(system responsibilities):所开发的系统
12、应该具备的职能。 随着硬件性能的提高和价格的下降,软件系统所面临的问题域和系统责任越来越复杂,因此系统也越来越庞大。 b) 交流问题 软件系统的开发需要各类人员之频繁交流。领域的多样性使软件工程中的交流问题比与其他工程更为突出。 有效的交流需要一种彼此都能理解的共同语言,否则将彼此的思维难以沟通,很容易隐藏下许多错误。 c) 需求的不断变化 用户因素,竞争因素,经费因素 d) 软件复用的要求 复用级别提高分析与设计结果复用 要求分析与设计模型的基本成分可以在多个系统中复用UML建模语言1.1 面向对象开发 面向对象方法的优势 i. 对问题域和系统责任的复杂性具有较强的处理能力 从问题域中的实际
13、事物出发来构造系统模型,使系统模型能直接地映射问题域;继承、封装、聚合等概念使系统的复杂性得到有效的控制。 ii. 提供了便于各类相关人员交流共同语言 使用与问题域一致的概念及术语,体现人类的日常思维方式,为改进各类人员之间的交流提供了最基本的条件。 iii. 对需求的变化具有较强的适应性 按封装原则把系统中最容易变化的因素隔离起来,系统的各个单元成分之间接口很少,把需求变化所引起的影响局部化。 iv. 为实现分析与设计级别的软件复用提供了有力支持 OO方法的封装、继承、聚合等原则,对象的完整性、独立性以及与问题域的良好对应,使之有利于软件复用。 v. 贯穿软件生存周期全过程的一致性 从OOA
14、开始使用与问题域一致的概念、词汇、原则及表示法,这种一致性保持到设计、编程、测试、维护等各个阶段,对于整个软件生存周期的开发、维护及管理活动都具有重要的意义。UML建模语言1.1 面向对象开发 几种典型的几种典型的OO方法方法方法的异同体现于:概念、表示法、系统模型、开发过程、可用性、技术支持等方面 UML建模语言1.1 面向对象开发 Booch方法 UML建模语言1.1 面向对象开发 Booch方法的过程, 特点:思维活跃,开拓与创新,可操作性不够强,类图与对象图并存UML建模语言1.1 面向对象开发 Coad/Yourdon方法,特点:概念简练,过程清晰,强调概念的一致性,过程指导不够具体
15、 UML建模语言1.1 面向对象开发 Jacobson方法(OOSE),特点:通过用况描述用户需求,用交互图描述对象之间的交互,用况驱动的观点言之有过。 UML建模语言1.1 面向对象开发 Rumbaugh方法(OMT),特点:概念严谨,阐述清楚,过程具体,可操作性强,包含了许多非OO的内容,提出若干扩充概念,偏于复杂。 UML建模语言1.1.2 面向对象的主要概念1 对象对象(Object)是面向对象(Object-Oriented,OO)系统的基本构造块,是一些相关的变量和方法的软件集。2 面向对象与面向过程的区别面向对象:以对象为基础,以事件或消息来驱动对象执行处理,是自下而上的程序设计
16、方法,其特点是,从问题的一部分着手,在设计中以数据为中心,类为工具.结构化程序设计:自上而下,先确定程序的流程怎么走,函数间的调用关系和依赖关系是什么.UML建模语言3 对象与类的确定对象(Object)是由状态(State)和行为(Behavior)构成的,是包含客观事物特征的抽象实体,封装了状态和行为。 对象=数据+数据操作可以利用对象来代表现实世界中的对象:可用一个飞行试驾程序来代表现实世界中的正在飞行的飞机,或者用机床数控程序来代表现实世界的运行的机床。同样可以使用对象来造型抽象的概念,比如,点击按钮事件就是一个用在GUI窗口系统的公共对象,它可以代表用户点击程序界面中的一个确定按钮的
17、动作。UML建模语言1.1.3 对象与类的确定类(Class)是具有相同属性和操作的一组对象的组合。 对象是类的实体化类的确定:确定系统的范围,在系统范围内寻找对象,将对象抽象成为一个类,进而确定类的数据和操作。例如名为“学生”的类被用于描述为被学生管理系统管理的学生对象。类的定义要包含以下的要素 第一,定义该类对象的数据结构(属性的名称和类型) 第二,定义对象所要执行的操作,也就是类的对象要被调用执行那些操作,以及这些操作时对象要执行那些操作,比如数据库操作等等。UML建模语言4 消息和事件n所谓消息(Message)是指描述事件发生的信息,是对象间相互联系和相互作用的方式。一个消息主要由5
18、部分组成:消息的发送对象、消息的接收对象、消息传递方式、消息内容(参数)、消息的返回。传入的消息内容的目的有两个,一个是让接受请求的对象获取执行任务的相关信息,另一个是行为指令。n所谓事件通常是指一种由系统预先定义而由用户或系统发出的动作。事件作用于对象,对象识别事件并作出相应反应 。n对象通过对外提供的方法在系统中发挥自己的作用,当系统中的其它对象请求这个对象执行某个方法时,就向该对象发送一个消息,对象响应这个请求,完成指定的操作。程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。UML建模语言1.2 面向对象的基本特征面向对象的核心元素面向对象的核心元素:对象对象,封装封装
19、,消息消息,类类,继承继承,多态性多态性,结构与连接结构与连接UML建模语言 客观世界里的任何实体都可以被称为对象。客观世界里的任何实体都可以被称为对象。 对象可以是具体的、有形的物,也可以是无形的对象可以是具体的、有形的物,也可以是无形的事物或概念。事物或概念。 对象是问题域或实现域中某些事物的一个抽象。对象是问题域或实现域中某些事物的一个抽象。 对象是一个封装数据属性和操作行为的实体。对象是一个封装数据属性和操作行为的实体。 系统中的对象在软件生命周期的各个阶段可能有系统中的对象在软件生命周期的各个阶段可能有不同的表示形式。不同的表示形式。 1. 对象UML建模语言一个对象的实例图解UML
20、建模语言封装(Encapsulation)是把对象的状态和行为绑到一起的机制,把对象形成一个独立的整体,并且尽可能的隐藏对象的内部细节。封装有两个含义:一是把对象的全部状态和行为结合一起,形成一个不可分割的整体。对象的私有属性只能够由对象的行为来修改和读取。二是尽可能隐蔽对象的内部细节,与外界的联系只能够通过外部接口来实现。封装的信息屏蔽作用反映了事物的相对独立性,我们可以只关心它对外所提供的接口,即能够提供什么样的服务,而不用去关注其内部的细节问题。比如说使用手机,我们关注的通常是这个手机能实现什么功能,而不太会去关心这个手机的是怎么一步步制造出来的。2. 封装UML建模语言 消息是向对象发
21、出的服务请求。 一个消息包含消息名、接受对象的标志、服务标志、输入信息、回答信息等。 消息传递机制。 3. 消息UML建模语言 类是一组具有相同数据结构和相同操作的对象的集合。 类是对象的抽象。 客观世界实际存在的都是对象,而不是类 。 类和对象的关系。 4. 类UML建模语言 继承(Inheritance)是一种连接类与类的之间的层次模型。继承是指特殊类的对象拥有其一般类的属性和行为。 继承意味着“自动地拥有”,即在特殊类中不必重新对已经在一般类中所定义过的属性和行为进行定义,而是特殊类自动地、隐含地拥有其一般类的属性和行为。 继承对类的重用性,提供了一种明确表述共性的方法。即一个特殊类既有
22、自己定义的属性和行为,又有继承下来的属性和行为。5. 继承继承UML建模语言继承的描述继承的描述UML建模语言单重继承和多重继承的描述UML建模语言定义:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。多态性分为两种: 编译时的多态性。 运行时的多态性。6. 多态性UML建模语言 一般/特殊结构 整体/部分结构 实例连接 消息连接7. 结构与连接UML建模语言 发现对象,从对象中抽象出类的定义。 识别对象的内部特征。 识别对象的外部关系。 划分主题,建立主题图。 定义用例,建立交互图。 建立详细说明。 原型开发。面向对象分析的基本过程UML建模语言面向对象分析过程模型UML建模
23、语言 抽象原则 分类原则 聚合原则 关联原则 消息通信原则面向对象分析的基本原则UML建模语言1.3 UML1.3 UML简介简介为什么要利用UML对系统进行面向对象建模,如何使用UML形成面向对象建模的开发模式。UML建模语言建模的使用是软件成功的一个基本因素。模型的实质:对现实的简化。 建模的目标 : 便于展现系统。 允许指定系统的结构或行为。 提供构造系统的模板。 记录决策。 建模的重要性建模的重要性UML建模语言 选择建立什么样的模型对如何发现和解决问题具有重要的影响。 每个模型可以有多种表达方式。 最好的模型总是能够切合实际。 孤立的模型是不完整的。任何好的系统都是由一些几乎独立的模
24、型拼凑出来的。 建模四原则UML建模语言面向对象建模面向对象建模 两种最常用的建模方法:基于算法的和面向对象的。 随着需求的变化和系统的增长,运用基于算法的建模方法建立起来的系统很难维护。 在面向对象的建模方法中,主要的模块是对象或者类。UML建模语言 Booch 1993(Grady Booch) OOSE(Jim Rumbaugh) OMT-2(Ivar Jacobson)面向对象的建模语言统一建模语言UMLUML建模语言1.3.2UML的发展过程UML建模语言1.4 UML视图uUML定义了一套建模语言。uUML是一种对软件系统进行规约,构造,可视化和文档化的语言。uUML也致力于并发分
25、布式系统和实时系统的建模。uUML的概念模型分为静态结构,动态行为,实现构造,模型组织和扩展机制等部分。uUML的概念和模型划分为视图,图和模型。UML建模语言1.4视图 UML利用模型来描述系统的结构、静态特征、行为或动态特征,它从不同的视角为系统的架构建模形成系统的不同视图。UML建模语言结构分类描述了系统中的结构成员及其相互关系。类元包括类、用例、构件和节点。类元为研究系统动态行为奠定了基础。类元视图包括静态视图、用例视图、实现视图以及部署视图。 动态行为描述了系统随时间变化的行为。行为利用从静态视图中抽取的瞬间值的变化来描述。动态行为视图包括状态机视图、活动视图和交互视图。模型管理说明
26、了模型的分层组织结构。包是模型的基本组织单元。特殊的包还包括模型和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。 视图模型划分为三个视图域UML建模语言UML中的主要视图有:用例视图 、逻辑视图 、并发视图 、组件视图 、部署视图。UML建模语言 1. 用例视图用例视图描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。UML建模语言2. 逻辑视图描述用例视图提出的系统功能的实现。主要关注系统内部,既描述系统的静态结构,如类、对象及它们之间的关系,又描述系统内部的动态协作关系。UML建模语言3. 并发视图主要考虑资源的有效利用、代码的并行执
27、行已经系统环境中异步事件的处理。除了系统划分为并发执行的控制以外,并发视图还要处理线程之间的通信与同步。描述并发视图主要使用状态图、协作图和活动图UML建模语言4. 组件视图描述系统的实现模块以及它们之间的依赖关系。组件视图可以添加组件的其它附加信息。描述组件视图的主要是组件图。UML建模语言5. 部署视图显示系统的物理部署,它描述位于节点上的运行实例的部署情况,还允许评估分配结果和资源分配。一般使用部署图来描述。UML建模语言最常用的UML图包括:用例图、类图、对象图、组件图和部署图(静态图);顺序图、协作图、状态图、活动图(动态图)。1.5 图UML建模语言1. 用例图:用例图描述了系统提
28、供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的“角色”关系以及系统用例之间的关系。 用例角色用例间的关系UML建模语言2. 类图:显示了系统的静态结构,表示不同的实体(人,事物和数据)是如何相关联的. 名称操作或方法属性UML建模语言类图可以整合其他许多概念,下图中可以看到泛化关系和关联关系。 UML建模语言3. 对象图:类图的一个实例,用于显示系统执行时的一个可能,即在某一个时刻上系统显现的样子。它使用与类图相似的符号描述。不同之处在于对象图显示的是类的多个对象实例而非实际的类。UML建模语言4. 状态图:是对类描述的补充,用于显示类
29、的对象可能具备的所有状态,以及引起状态改变的事件。状态之间的变化称为转移,状态图由对象的各个状态和连接这些状态的转移组成。事件的发生会触发状态间的转移,导致对象从一种状态转化到另一种新的状态。UML建模语言4. 状态图:表示某个类所处的不同状态以及在这些状态中的转换过程.判断点初始起点状态间的转换状态终止点UML建模语言5. 序列图(顺序图) :显示了一个具体用例或者用例一部分的流程。垂直维度水平维度UML建模语言6. 协作图:对一次交互中有意义的对象和对象间链接建模,除显示消息的交互,协作图也显示对象以及它们之间的关系。顺序图和协作图都可以表示各对象之间的交互关系,但它们的侧重点不同。顺序图
30、用消息的排列关系来表达消息的时间顺序,各角色之间的关系是隐含的;协作图用各个角色的排列来表示角色之间的关系,并用消息说明这些关系。UML建模语言7. 活动图用来表示两个或者更多的对象之间在处理某个活动时的过程控制流程.开始泳道活动结束UML建模语言8. 组件图指出某些功能实际存在于哪些地方.构件可以是源代码组件、二进制组件或可执行的组件。确保最终系统将会被接受。UML建模语言9. 部署图用于表示该软件系统如何部署到硬件环境中。它是显示在系统中的不同的构件在何处物理运行以及如何进行彼此的通信。图之间的作用:系统的部署图利用系统物理结构的节点显示属于该节点的构件,然后使用构件图显示该构件包含的类,
31、接着使用交互图显示该类对象参与的交互,最终到达某个用例。UML建模语言把可以在图中使用的基本概念统称为模型元素。模型元素使用相关的语义、元素的正式定义、确定的语句来表达准确的含义。1.6 模型元素 模型元素划分为事物和关系。UML建模语言(1)结构事物(Structural Thing)(2)动作事物(Behavioral Thing)(3)分组事物(Grouping Thing)(4)注释事物(Annotational Thing)1. 事物事物是UML模型中面向对象的基本模块,它们在模型中属于静态部分。UML建模语言2. 关系(5种) 以及这些事物之间的各种关系构成的。关系是指支配、协调各
32、种模型元素存在并相互使用的规则。(2)依赖(Dependency)关系(1)关联(Associate)关系 UML建模语言(3)泛化(Generalization)关系(4)实现(Realization)关系l用在接口和实现接口的类或构件之间,l用在用例和实现用例的协作之间UML建模语言继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;UML建模语言实现指的是一个class类实现interface接口(可以是多个
33、)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性; UML建模语言依赖可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;UML建模语言关联他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友;这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的
34、、关联可以是单向、双向的;表现在代码层面,为被关联类B以类属性的形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量;UML建模语言(5)聚合聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与CPU、公司与员工的关系等;表现在代码层面,和关联关系是一致的,只能从语义级别来区分;UML建模语言组合组合也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关
35、系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;表现在代码层面,和关联关系是一致的,只能从语义级别来区分; UML建模语言 UML提供了一些通用的公共机制,使用这些通用的公共机制(通用机制)能够使UML在各种图中添加适当的描述信息,从而完善UML的语义表达。1.7 UML的通用机制通用机制:修饰、注释、规格说明、扩展机制。UML建模语言1. 修饰(Adornment)在UML的图形表示中,每一个模型元素都有一个基本符号,这个基本符号可视化地表达了模型元素最重要的信息。UML建模语言2. 注释用于为模型元素添加额外信息与说明。注释以自由文本的形式
36、出现,它的信息类型为字符串,可以附加到任何模型中,并且可以放置在模型元素的任意位置上。在UML图中注释使用一条虚线连接它所解释或细化的元素。UML建模语言3. 规格说明(Specification)如果把模型元素当成一个对象来看待,那么模型元素本身也应该具有很多的属性,这些属性用于维护属于该模型元素的数据值。属性是使用名称和标记值(Tagged Value)来定义的。UML建模语言4. 扩展机制(Extensibility)允许UML的使用人员根据需要自定义一些构造型语言成分,通过该扩展机制用户可以定义使用自己的元素。UML扩展机制由三部分组成:构造型(Stereotype)、标记值(Tagg
37、ed Value)和约束(Constraint)。UML建模语言1. 构造型(Stereotype)构造型就像在模型元素的外面重新添加了一层外壳,这样就在模型元素上又加入了一个额外语义。图2 使用include构造型示例 图图1 1 未使用未使用构造型示例构造型示例UML建模语言2. 标记值(Tagged Value)标记值是由一对字符串构成的,这对字符串包含一个标记字符串和一个值字符串,从而用来存储有关模型元素或表达元素的相关信息。 UML建模语言3. 约束(Constraint)如果需要对UML构造块的语义进行扩展,就可以使用约束机制,这种机制用于扩展UML构造块的语义,允许建模者和设计人
38、员增加新的规则和修改现有的规则。UML建模语言13章 UML的对象约束语言对象约束语言(Object Constraint Language,OCL)是一种能够使用工具进行解释的表达UML约束的标准方法。用规范或自然语言表达。对象约束语言包含如下4个特性。1. 对象约束语言不仅是查询语言还是约束语言2. 对象约束语言是基于数学的3. 对象约束语言是一种强类型的语言4. 对象约束语言也是一种声明式语言对象约束语言的元模型包含类型包和表达式包.对象约束语言支持不变量约束、前置条件和后置条件UML建模语言不变量约束是指当某个对象在进行某一操作的过程中将某种约束应用到一种类型上,并指定一个条件特征,该
39、特征在此操作的整个过程中保持不变。UML建模语言UML中的前置条件是指当某个对象进行某一操作时,附于此操作的限定条件(Constraint)必须为True。UML建模语言UML中的后置条件是指当一个操作执行结束时附于此操作的限定条件(Constraint)也必须为True。UML建模语言UML的未来发展目标对于UML 2.0的新改进包括以下5个方面。1. 在语言定义方面的精确程度有了很大提高2. 一个改良的语言组织3. 重点改进大规模的软件系统的模型性能4. 对特定领域改进的支持5. 全面合并、合理化、清晰化各种不同的模型概念 UML建模语言 本 节 小 结本节是对UML的内容进行一个简要的概
40、括,重点强调的是UML的基本内容,它是后面对UML进行详细介绍的铺垫。在下一章中将对UML的工具Rational Rose进行介绍。UML建模语言第11章 Rational Rose概述本章学习的重点是Rational Rose的4种视图模型 UML建模语言11.1 Rational Rose的起源与发展Rose Modeler:仅仅用于创建系统模型,但是不支持代码生成和逆向工程。Rose Professional:可以创建系统模型,包含了Rose Modeler的功能,并且还可以使用一种语言来进行代码生成。Rose Enterprise:Rose的企业版工具,支持前面Rose工具的所有功能,
41、并且支持各种语言,包括C+、Java、Ada、CORBA、Visual Basic、COM、Oracle 8等,还包括对XML的支持。UML建模语言11.2 Rational Rose对UML的支持1. Rational Rose提供基本的绘图功能2. Rational Rose提供模型库3. Rational Rose提供导航功能4. Rational Rose提供代码生成功能5. Rational Rose提供逆向工程功能6. Rational Rose提供模型互换功能 Rational Rose建模工具能够为UML提供很好的支持,可以从以下6个方面进行说明。 UML建模语言1.Ratio
42、nal Rose提供基本的绘图功能 为UML提供了基本的绘图功能是Rational Rose作为一个建模语言工具的基础。Rational Rose提供了众多的绘图元素,形象化的绘图支持使得绘制UML图形变得轻松有趣。UML建模语言2. Rational Rose提供模型库Rational Rose的支持工具维护着一个模型库,这个模型库相当于一个数据库,该数据库中包含模型中使用的各种元素的信息。(1)非一致性检查(2)审查功能(3)报告功能(4)重用建模元素和图功能UML建模语言3. Rational Rose提供导航功能在使用多个视图或图来共同描述一个解决方案的时候,允许用户在这些视图或图中进
43、行导航。UML建模语言4. Rational Rose提供代码生成功能Rational Rose的代码生成功能可以针对不同类型的目标语言生成相应的代码,这些目标语言包括C+、Ada、Java、CORBA、Oracle、Visual Basic等。UML建模语言5. Rational Rose提供逆向工程功能逆向工程与代码生成功能正好相反。利用逆向工程功能,Rational Rose可以通过读取用户编写的相关代码,在进行分析以后生成显示用户代码结构的相关UML图。UML建模语言6. Rational Rose提供模型互换功能在一种建模工具中创建了模型并将其输出后,接着想在另外一种建模工具中将其导
44、入,由于各种建模工具之间提供了不同的保存格式,这就造成了导入往往是不可能实现的。为了实现这种功能,一个必要的条件就是在两种不同的工具之间采用一种用于存储和共享模型的标准格式。UML建模语言11.3 Rational Rose的4种视图模型用例视图(Use Case View)逻辑视图(Logical View)构件视图(Component View)部署视图(Deployment View)使用Rational Rose建立的Rose模型中分别包括4种视图.UML建模语言11.3.1 用例视图(Use Case View)在用例视图(Use Case View)中包括了系统中的所有参与者、用例
45、和用例图,必要时还可以在用例视图中添加顺序图、协作图、活动图和类图等。 UML建模语言建立方法:UML建模语言11.3.1 用例视图(Use Case View)1. 包(Package)包是在用例视图和其他视图中最通用的模型元素组的表达形式。2. 用例(Use Case)用例用来表示在系统中所提供的各种服务。 UML建模语言3. 参与者(Actor)参与者是指存在于被定义系统外部并与该系统发生交互的人或其他系统。UML建模语言4. 类(Class)类是对某个或某些对象的定义。UML建模语言5. 用例图(Use Case Diagram)用例图显示了各个参与者、用例以及它们之间的交互。UML建
46、模语言6. 类图(Class Diagram)类图提供了结构图类型的一个主要实例,并提供一组记号元素的初始集,以供其他结构图使用。UML建模语言7. 协作图(Collaboration Diagram)协作图用于表达各种参与者和用例之间的交互协作关系。UML建模语言8. 序列图(Sequence Diagram)序列图用于表达各种参与者和用例之间的交互序列关系。UML建模语言9. 状态图(Statechart Diagram)状态图主要用来表达各种参与者或类的状态之间的转换。UML建模语言10. 活动图(Activity Diagram)活动图主要用来表达参与者的各种活动之间的转换。UML建模
47、语言11. 文件(File)File是指能够连接到用例视图中的一些外部文件。12. URL地址(URL)URL是指能够连接到用例视图的一些外部URL地址。UML建模语言逻辑视图关注于系统如何实现用例中所描述的功能,主要是对系统功能性需求提供支持,即在为用户提供服务方面系统所应该提供的功能。11.3.2 逻辑视图(Logical View)在逻辑视图中,同样可以创建一些模型元素。UML建模语言逻辑视图的创建: UML建模语言1.类(Class) 在逻辑视图中主要是对抽象出来的类进行详细定义,包括确定类的名称、方法和属性等。UML建模语言2. 工具类(Class Utility)工具类是对公共机制
48、或服务的定义,通常存放一些静态的全局变量,从而方便其他类对这些信息进行访问。UML建模语言3. 用例(Use Case)在逻辑视图中仍然可以存在用例,目的是围绕用例添加各种图,从而详细描述该用例。UML建模语言4. 接口(Interface)类可以有它的真实实例,然而一个接口必须至少有一个类来实现它。UML建模语言5. 包(Package)使用包可以将逻辑视图中的各种UML图或模型元素按照某种规则进行划分。6. 类图(Class Diagram)类图用于浏览系统中的各种类、类的属性、操作以及类与类之间的关系。7. 用例图(Use Case Diagram)其功能和在用例视图中介绍的一样,只是放
49、在不同的视图区域中了。UML建模语言8. 协作图(Collaboration Diagram)协作图用于按照各种类或对象交互发生的一系列协作关系显示这些类或对象之间的交互。9. 序列图(Sequence Diagram)序列图用于按照各种类或对象交互发生的一系列顺序显示各种类或对象之间的交互。10. 状态图(Statechart Diagram)状态图用于描述各个对象自身所处状态的转换,用于对模型元素的动态行为进行建模,更具体地说,就是对系统行为中受事件驱动的方面进行建模。UML建模语言11. 活动图(Activity Diagram)活动图含:活动状态,状态的转移。活动决策。同步连接。12.
50、 文件(File)File是指能够连接到逻辑视图中的一些外部文件,用来详细介绍使用逻辑视图的各种信息。13. URL地址(URL)URL是指能够连接到逻辑视图的一些外部URL地址。这些地址用于介绍逻辑视图的相关信息。UML建模语言构件视图用来描述系统中的各个实现模块以及它们之间的依赖关系。包含模型代码库,执行文件,运行库和其他构件信息。11.3.3 构件视图(Component View) UML建模语言1. 包(Package)包在构件视图中仍然担当的是划分的功能。2. 构件(Component)构件是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口。UML建模语
51、言3. 构件图(Component Diagram)构件图的主要目的是显示系统构件间的结构关系。UML建模语言4. 文件(File)File是指能够连接到构件视图中的一些外部文件,用来详细介绍使用构件视图的各种信息。5. URL地址(URL)URL是指能够连接到构件视图的一些外部URL地址。这些地址用于介绍构件视图的相关信息。 UML建模语言在系统中只包含一个部署视图,用来说明各种处理活动在系统各节点的分布。 11.3.4 部署视图(Deployment View)UML建模语言1. 处理器(Processor)处理器是指任何有处理功能的节点。2. 设备(Device)设备是指任何没有处理功能
52、的节点,例如打印机。3. 文件(File)File是指那些能够连接到部署视图中的外部文件,用来详细介绍使用部署视图的各种信息。4. URL地址(URL)URL是指能够连接到部署视图的一些外部URL地址。这些地址用于介绍部署视图的相关信息。UML建模语言Rational Rose作为一种很强大的UML建模工具,不仅通过视图建立不同详细程度的模型,从而对UML提供非常好的支持,而且还提供了一些其他的技术来完善软件开发,其中Rational Rose使用模型生成代码、使用逆向工程从代码生成模型以及对XML的支持都是一些很重要的技术。11.4 Rational Rose的其他技术 UML建模语言可以通
53、过选择Tools | Options命令来查看所支持的语言信息。1. 代码生成Rational Rose Enterprise支持的语言信息UML建模语言使用Rational Rose生成代码时可以通过以下4个步骤进行,以目标语言Java代码为例。(1)选择待转换的目标模型(2)检查Java语言的语法错误(3)设置代码生成属性(4)生成代码UML建模语言2. 逆向工程在Rational Rose中可以通过收集有关类(Classes)、类的属性(Attributes)、类的操作(Operations)、类与类之间的关系(Relationships)以及包(Packages)和构件(Compone
54、nts)等静态信息,将这些信息转化成为对应的模型,并在相应的图中显示出来。UML建模语言11.5 本 章 小 结本章对Rational Rose进行概要介绍,如Rational Rose的起源与发展、对UML是如何支持的等。还介绍了Rational Rose的4个视图模型,分别为用例视图(Use Case View)、逻辑视图(Logical View)、构件视图(Component View)和部署视图(Deployment View)。最后介绍了Rational Rose的一些其他技术,如Rational Rose的双向工程等。UML建模语言第11章 Rational统一过程 关于Rati
55、onal统一过程中更加详细的内容,可以参考Rational统一过程的电子资源或书籍。本章的重点是对Rational统一过程的内容和结构进行介绍。UML建模语言4.1 什么是Rational统一过程下面将从4个方面介绍什么是Rational统一过程。1. Rational统一过程是一种软件工程过程2. Rational统一过程是一个过程产品3. Rational统一过程拥有一套自己的过程框架4. Rational统一过程包含了许多现代软件开发中的最佳实践UML建模语言在各种书籍以及参考资料中,将Rational统一过程的开发过程使用一种二维结构来表达,即使用沿着横轴和纵轴两个坐标轴来表达该过程。
56、UML建模语言UML建模语言Rational统一过程同时也包含了许多现代软件开发中的最佳实践。Rational统一过程以一种能够被大多数项目和开发组织适应的形式建立整个过程,其包含的6项最佳实践如下:1.迭代式软件开发。2.需求管理。3.基于构件的架构应用。4.建立可视化的软件模型。5.软件质量验证。6.软件变更控制。UML建模语言4.2 Rational统一过程的演进历史 Ratinal统一过程是经过一系列的阶段逐步发展和完善起来的,在这发展的十几年的时间里,Rational统一过程搜集并反馈了很多公司和个人的使用经验,并不断逐步丰富Rational统一过程的内容。 统一建模语言(UML)可
57、以说是迄今为止最为成熟的软件建模技术和语言。UML建模语言Rational统一过程的演进历史 UML建模语言4.3 Rational统一过程的结构4.1 什么是Rational统一过程4.2 Rational统一过程的演进历史4.3 Rational统一过程的结构4.4 RATIONAL统一过程的配置和实现UML建模语言4.3.1 统一过程的静态结构: Rational统一过程的静态结构是通过对其模型元素的定义来进行描述的。在Rational统一过程的开发流程中定义了“谁何时如何做某事”,并分别使用4种主要的建模元素来进行表达。UML建模语言1. 角色(Workers)“谁”来做? 角色定义了
58、个人或由若干人所组成小组的行为和责任。2. 活动(Activities)“如何”去做? 角色所执行的行为使用活动表示,每一个角色都与一组相关的活动联系,活动定义了它们执行的工作。3. 产物(Artifacts)要做“某事”? 产物是被过程产生的、修改或过程所使用的一段信息。4. 工作流(Workflows)“何时”做?需要一种方法来描述能产生若干有价值的有意义结果的活动序列,从而显示角色之间的交互作用,这就是工作流。4种主要的建模元素: UML建模语言Rational统一过程的动态结构是通过对迭代式软件开发过程的周期、阶段、迭代过程以及里程碑等的描述来进行表示。为了对迭代的特定短期目标进行分割并组织迭代开发秩序,将迭代过程划分为4个连续的阶段,分别为初始(Inception)阶段、细化(Elaboration)阶段、构建(Construction
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 岸电箱施工方案
- 2025年山东省成考试题及答案
- 农村泥巴墙施工方案
- 5年级下册语文背诵
- 5年级上册语文笔记第6单元第1课小练笔
- 等保测评服务人员配置方案
- 4年级上册第5单元
- 嘉兴古建基础施工方案
- 大学语文同步练习12-垓下之围 (1) - 副本 - 副本
- 2025年安徽卫生健康职业学院单招职业倾向性测试题库参考答案
- GB/T 13384-2008机电产品包装通用技术条件
- 综合门诊部全科医疗科设置基本标准
- GB 15603-1995常用化学危险品贮存通则
- FZ/T 07019-2021针织印染面料单位产品能源消耗限额
- 北师大版高中英语必修二《New-Zealand-Fact-File》reading-课件-
- 竖弯钩的书写课件
- 幼儿园小班植树节课件:《栽树》
- 初中英语《Unit5-Do-you-remember-what-you-were-doing》教学课件设计
- 幼儿园大班数学口算练习题可打印
- 小学班会课件-端午节主题班会(共19张PPT)通用版 PPT课件
- 细菌性痢疾流行病学个案调查表
评论
0/150
提交评论