如何在面向对象软件开发过程开发过程中使用uml

教学大纲_UML和面向对象设计模式
UML和面向对象设计模式
主讲老师:&& 徐迎晓
博士 (Dr.& Xu
Yingxiao)
【教学目的与要求】
教学目的:
l掌握面向对象的概念
l掌握主要的设计模式
l掌握用例模型、领域模型和设计模型的创建
l掌握核心UML表示法
l掌握设计过程中如何使用各种UML图
l使用一种工具进行系统建模
l了解统一软件开发过程(RUP)
基本内容:
本课程从两个软件系统开发案例入手,在剖析案例的过程中逐步介绍面向对象分析与设计的基本概念、UML建模的方法、设计模式以及系统分析的方法和步骤。学生若已掌握一门编程语言,将有助于本课程的学习。
本课程内容涉及UML的13种图、面向对象技术、领域模型与业务建模、用例模型与需求的捕获、设计模型与对象的提取及类的设计、用GRASP模式设计带职责的对象、GoF设计模式、体系结构和框架设计、实现、测试、实施、Rational Rose/Rational Software Architect等工具及统一软件过程基本概念等。适合于从事软件开发和设计以及项目管理者学习。
基本要求:
通过本课程的学习,要求学生能读懂软件开发队伍中各个成员绘制的各类UML图,能根据软件需求进行系统分析与设计,并绘制UML图,能将设计模式应用到实际软件开发中,能对不同的设计进行评估和分析,了解统一软件开发过程。
【教学纲要】
面向对象技术基础
软件过程和UML简介
POS系统案例简介
POS系统案例
初始阶段用例模型的建立
用例的提取,用例图,POS系统的用例描述分析
Lab: 信息系统的用例提取和描述
建立概念模型
概念的可视化,添加关联,添加属性
UML类图表示法,POS系统的概念模型分析
Lab:信息系统的概念模型
用例模型—系统行为
系统事件、系统操作和系统顺序图
操作合约的创建,UML交互图简介
POS系统系统行为分析
Lab:绘制信息系统系统顺序图
细化阶段设计模型—GRASP用例实现
UML交互图(协作图、顺序图)表示法
GRASP模式(创建者模式,专家模式,控制者模式,低耦合度模式,高内聚度模式,多态模式,纯虚构模式,中介者模式,PV模式)
POS系统职责分配和协作设计分析
POS系统用例实现分析
Lab:设计信息系统交互图
设计模型GoF设计模式
典型GoF设计模式分析
使用GoF设计模式分析POS系统
Lab: GoF设计模式应用
设计模型—创建设计类图
软件类,可见性设计,POS系统类图分析
Lab:信息系统设计类图
实现模型—从设计到代码
类和接口定义,方法的定义
Course Registration系统案例
&& &架构分析
&&& &用例分析
&&& &识别设计元素
&&& &识别设计机制
&&& &描述运行时架构
&&& &描述分布
&&& &用例设计
&&& &子系统设计
&&& &类设计
&&& &数据库设计
&& 配套Lab 薪资管理系统案例
UML建模风格
UML Profile
模型驱动架构(MDA)
Eclipse建模框架(EMF)
【教学方式】
&本课程教学以英汉双语进行,包括课堂讲授,案例分析和课堂练习等。
通过串讲案例,逐步引入相关的理论与知识,使学生不会淹没在UML大量的概念和分散的知识点中,能够学以致用,并能通过全局看到知识点之间的相互联系。
对主要的知识点和技能设计了贴近实际的小项目进行课堂练习和课后分组练习,包括POS系统案例中部分功能的开发、绘图软件的部分功能实现、信息系统开发、薪资管理系统开发等。通过实际的练习和讲解加深对案例分析的理解,实现讲、解、练相结合,达到学以致用的目的。
结合教学提供大量电子文档供学有余力的同学进一步自学。
【考核方式】
&根据平时分组练习及项目实践情况进行综合考核。
【教材与参考书】
&&&&&&&&&&&&&&&&&&&教材(英文影印版)
“Applying UML and
Patterns: An Introduction to Object-Oriented Analysis and Design and the
Unified Process”. (3RD
EDITION). Craig Larman. 机械工业出版社
“Mastering Object-Oriented Analysis and Design with
UML 2.0“. IBM Corporation Rational University
&& &&&&&&&&&&&&&&&&&&&参考书:
Object-Oriented Design with UML, 作者Mark Priestley,清华大学出版社,英文影印版
Design Patterns,Erich
Gamma等,提供电子文档
UML用户指南,Grady Booch等,机械工业出版社
【课件下载】下次自动登录
现在的位置:
& 综合 & 正文
基于UML的面向对象软件开发过程
基本概念:
UMl是一种标准的图形化建模语言,它是面向对象分析和设计的一种标准表示。经常用的工具有Microsoft Office Visio 2007 .
UML中的视图大致分为如下5种:
1、用例视图。用例视图强调从系统的外部参与者(主要是用户)的角度看到的或需要的系统功能。
2、逻辑视图。逻辑视图从系统的静态结构和动态行为角度显示如何实现系统的功能。
3、组件视图。组件视图显示组件的组织结构。
4、并发视图。并发视图显示系统的并发性,解决在并发系统中存在的通信和同步问题。
5、配置视图。配置视图显示系统的具体部署。部署是指将系统配置到由计算机和设备组成的物理结构上。
上述5种视图分别描述系统的一个方面,5种视图组合成UML完整的模型。下图显示了构成UML完整模型的5种视图间的关系
一、用例视图
用例视图描述系统应具备的功能,也就是被成为参与者的外部用户所能观察到的功能。用例是系统的一个功能单元,可以被描述为参与者与系统之间的一次交互作用。参与者可以是一个用户或者另外一个系统。客户对系统要求的功能被当作多个用例在用例视图中进行描述,一个用例就是对系统的一个用法的通用描述。用例模型的用途就是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行。用例视图是视图的核心,它的内容直接驱动其他视图的开发。
二、逻辑视图
逻辑视图描述用例视图中提出的系统功能的实现。与用例视图相比,逻辑视图主要关注系统内部,它既描述系统的静态结构(类、对象以及他们之间的关系),也描述系统内部的动态协作关系。系统的静态结构在类图和对象图中进行描述,而动态模型则在状态图、时序图、协作图以及活动图中进行描述。逻辑视图的使用者主要是设计人员和开发人员。
三、并发视图
并发视图主要考虑资源的有效利用、代码的并行执行以及系统环境中异步事件的处理。除了将系统划分为并发执行的控制以外,并发视图还需要处理线程之间的通信和同步。并发视图的使用者是开发人员和系统集成人员。并发视图由状态图、协作图、以及活动图组成。
四、组件视图
组件是不同类型的代码模块,它是构造应用的软件单元。组件视图描述系统的实现模块以及它们之间的依赖关系。组件视图中也可以添加组件的其他附加信息,例如资源分配或者其他管理信息。组件视图主要由组件图构成,它的使用者主要是开发人员。
五、配置视图
配置视图显示系统的物理部署,它描述位于节点上的运行实例的部署情况。配置视图主要由配置图表示,它的使用者是开发人员、系统集成人员和人员。配置视图还允许评估分配结果和资源分配。
UML的各种图是UML模型的重要组成部分
1、 用例图(Use Case Diagram)
用例是系统中的一个可以描述参与者与系统直接交互作用的功能单元,用例图的用途是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行。
2、 类图(Class Diagram)
类是对应用领域或应用解决方案中概念的描述。类图以类为中心组织,类图中国的其他元素或属于某个类,或与类相关联。
3、 对象图(Object Diagram)
对象图是类图的变体,它使用与类图相似的符号描述,不同之处在于对象图显示的是类的多个对象实例而非实际的类。可以说对象图是类图的一个例子,对象图与类图表示的不同之处在于它用带下划线的对象名称类表示对象,显示一个关系中的所有实例。
4、 状态图(State Diagram)
状态图是对类描述的补充,它用于显示类的对象可能具备的所有状态,以及引起状态改变的事件。实际建模时,并不需要为所有的类都绘制状态图,仅对那些具有多个明确状态并且这些状态会影响和改变其行为的类才有绘制状态图的必要。此外,还可以为系统绘制整体状态图。
5、 时序图(Sequence Diagram)
时序图显示多个对象间的动作协作,重点是显示对象之间发送的消息的时间顺序。
6、 协作图(Collaboration Diagram)
协作图对在一次交互中有意义的对象和对象间的链建模。除了显示消息的交互以外,协作图也显示对象以及它们之间的关系。时序图和协作图都可以表示各对象间的交互关系,但它们的侧重点不同。时序图用消息的几何排列关系来表达消息的时间顺序,各角色之间的关系是隐含的。协作图用各个角色排列来表示角色之间的关系,并用消息类说明这些关系。在实际应用中可以根据需要选用这两种图:如果需要重点强调时间或顺序,那么选择时序图;如果需要重点强调上下文,那么选择协作图。
7、 活动图(Activity Diagram)
活动图是状态图的一个变体,用来描述执行的流程中涉及的活动。活动状态代表了一个活动,即一个工作流步骤或一个操作的执行。活动图由多个动作状态组成,当一个动作完成后,动作状态将会改变,转换为一个新的状态。
8、 组件图(Component Diagram)
组件图是用代码组件来显示代码物理结构。一个组件包含它所实现的一个或多个逻辑类的相关信息。通常组件图用于实际的编程工作中。
9、 配置图(Deployment Diagram)
配置图用于显示系统中的硬件和物理结构。
UML中的模型元素包括事物和事物之间的联系。事物是UML中重要的组成部分,它代表任何可以定义的东西。事物之间的关系能够把事物联系在一起,组成有意义的结构模型。每一个模型元素都有一个与之相对应的图形元素。
UML中事物可以分为结构事物、动作事物、分组事物和注释事物。
1、 结构事物
结构事物分为:类、接口、协作、用例、活动类、组件和节点
(1) 类。类是对具有相同属性、方法、关系和语义的对象的抽象,一个类可以实现一个或多个接口。类用包括类名、属性和方法的矩形表示。
(2) 接口。接口是为类或组件提供特定服务的一组操作的集合。
(3) 协作。协作定义了交互操作。一些角色和其他元素一起工作,提供一些合作的动作,这些动作比元素的总和要大。UML中协作用虚线构成的椭圆表示。
(4) 用例。用例描述系统对一个特定角色执行的一系列动作。在模型中用例通常用来组织动作事物,它是通过协作来实现的。UML中,用例用标注了用例名称的实线椭圆表示。
(5) 活动类。活动类是类对象有一个或多个进程或线程的类。在UML中活动类的表示法和类相同,只是边框用粗线条。
(6) 组件。组件是实现了一个接口集合的物理上可替换的系统部分。
(7) 节点。节点是在运行时存在的一个物理元素,它代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个节点,但也可以从一个节点转到另一个节点。
2、 动作事物
动作事物是UML模型中的动态部分,它们是模型的动词,代表时间和空间上的动作。交互和状态机是UML模型中最基本的两个动态事物元素。
(1) 交互。交互是一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。在交互中组成动作的对象的每个操作都要详细列出,包括消息、动作次数(消息产生的动作)、连接(对象之间的连接)。
(2) 状态机。状态机由一系列对象的状态组成。
3、 分组事物
分组事物是UML模型中组织的部分,分组事物只有一种,称为包。
4、 注释事物
注释事物是UML模型的解释部分。
二、UML中的关系
1、 关联关系
关联关系连接元素和链接实例,它用连接两个模型元素的实线表示,在关联的两端可以标注关联双方的角色和多重性标记。
2、 依赖关系
依赖关系描述一个元素对另一个元素的依附。依赖关系用源模型指向目标模型的带箭头的虚线表示。
3、 泛化关系
泛化关系也称为继承关系,泛化用一条带空心三角箭头的实线表示,从子类指向父类。
4、 实现关系
实现关系描述一个元素实现另一个元素。
5、 聚合关系
聚合关系描述元素之间部分和整体的关系,即一个表示整体的模型元素可能由几个表示部分的模型元素聚合而成。
一、 修饰。
在使用UML建模时,可以将图形修饰附加到UML图中的模型元素上。比如,当一个元素代表某种类型的时候,它的名称可以用粗体字形类显示;当同一元素表示该类型的实例时,该元素的名称用一条下划线修饰。
二、 注释。
UML中用一条虚线将注释连接到它为之解释的或细化的元素上。
三、 通用划分。
UML对其模型元素规定了两种类型的通用划分:型-实例(值)和接口-实现。
1、型-实例(Type-Instance):描述一个通用描述符与单个元素项之间的对应关系。实例元素使用与通用描述符相同的表示图形,但是名字的表示与通用描述符不同:实例元素名字带有下划线,而且后面还要加上冒号和通用描述符的名字。
2、接口-实现:接口声明了一个规定了服务的约定,接口的实现负责执行接口的全部语义定义并实现该项服务。
基于UML的面向对象软件开发过程:
统一过程(up)已成为一种流行的构造面向对象系统的软件开发过程,RUP是对UP的详细精化,下面介绍在业务建模、需求、设计、实现和测试这几个流程中使用UML的哪些图进行建模。
1.业务建模
采用UML的对象图和类图表示目标软件系统所基于的的应用领域中的概念和概念间的关系。这些相互关联的概念构成了领域模型。领域模型一方面可以帮助软件项目组理解业务背景,与业务专家进行有效沟通;另一方面,随着软件开发阶段的不断推进,领域模型将成为软件结构的主要基础。如果领域中含有明显的流程处理部分,可以考虑利用UML的活动图来刻画领域中的工作流,并标识业务流程中的并发、同步等特征。
UML的的用例视图以用户为中心,对系统的功能性需求进行建模。通过识别位于系统边界之外的参与者以及参与者的目标,来确定系统要为用户提供哪些功能,并用用例进行描述。可以用文本形式或UML活动图描述用例,利用UML用例图表示参与者与用例之间、用例与用例之间的关系。采用UML顺序图图形描述参与者和系统之间的系统事件。利用系统操作契约刻画系统事件的发生引起系统内部状态的变化。如果目标系统比较庞大,用例较多,则可以用包来管理和组织这些用例,将关系密切的用例组织到同一个包里,用UML包图刻画这些包及其关系。
把分析阶段的结果扩展成技术解决方案,包括软件体系结构设计和用力实现的设计。采用UML包图设计软件体系结构,刻画系统的分层、分块思路。采用UML协作图或顺序图寻找参与用例实现的类及其职责,这些类一部分来自领域模型,另一部分是软件实现新加入的类,它们为软件提供基础服务,如负责持久化的类。用UML类图描述这些类及其关系,这些类属于体系结构的不同的包中。用UML状态图描述那些具有复杂生命周期行为的类。用UML活动图描述复杂的算法过程和有多个对象参与的业务处理过程,活动图尤其合适描述过程中的并发和同步。此外,还可以使用UML构件图描述软件代码的静态结构与管理。UML部署图描述硬件的拓扑结构以及软件和硬件的映射问题。
把设计得到的类转换成某种面向对象设计语言的代码。
不通的测试小组使用不同的UML图作为他们工作的基础:使用类图和类的规格说明,集成测试典型地使用构件图和协作图,而确认测试使用用例图和用例文本描述的来确认系统的行为是否符合这些图中的定义。
&&&&推荐文章:
【上篇】【下篇】面向对象技术及UML教程_PDF图书下载_李磊,王养廷
主编_在线阅读_PDF免费电子书下载_第一图书网
面向对象技术及UML教程
出版时间:2010-5&&出版社:人民邮电出版社&&作者:李磊,王养廷
主编&&页数:186&&Tag标签:无&&
统一建模语言(Unified Modeling Language,UML,)汇集和融合了著名的面向对象技术专家Grady Booth、James Rum baugh和Ivar Jaeo bson的研究成果。它是一种简洁的、统一的可视化建模语言。UML是一种定义良好、易于表达、功能强大且适用于各种应用领域的建模语言,已被OMG采纳为标准,目前UML已成为面向对象技术领域内占主导地位的标准建模语言。对于系统的使用者,开发人员可以用UML来表达系统的功能,让使用者了解系统能够提供的功能和价值。对于系统分析师,他们可以使用UML作为系统架构设计的工具。对于软件工程师,他们可以利用UML进行构件和类的设计,描述系统中对象之间的动态交互。对于系统的管理者,他们也可以使用UML来刻画系统中硬件或是软件构件的部署与配置情形。本书以面向对象程序设计、UML基础知识和实际应用为主,由浅人深地向读者介绍了面向对象编程的基础知识、UML的基础知识以及如何在实际项目中应用UML技术,并且以:Rational Rose为例介绍了如何使用UML工具。本书共分为13章,第1章主要讲解了面向对象的基础知识;第2章主要介绍了RUP(统一软件过程),RUP是目前的软件过程中与UML结合最好的过程;第3章简要介绍了UML的基础内容,包括UML的概念、UML的发展历史、UML的主要内容,以及UML2.0中的新内容;第4章主要介绍了UML的工具,并以Raional Rose工具为例,讲解了如何绘制UML的各种关系图,以及如何使用Rose的双向工程;第5章到第11章详细介绍了UML的用例图、顺序图、协作图、类图、对象图、包图、状态图、活动图、构件图和部署图,包括10种模型图的含义、使用的图符以及如何在实际应用中使用这10种模型图;第12章介绍了面向对象的实现技术,包括面向对象语言的介绍、面向对象类和接口的设计,以及面向对象的基本编程规范;第13章以一个具体的实例“打击游戏”为例,将该实例作为一个软件项目,参照软件公司的项目组织和开发方式,应用UML完成项目的需求分析、设计实现、集成和测试的过程,帮助读者学会如何使用UML进行实际软件项目的开发。本书既可以作为高等院校计算机专业的学生学习UML或面向对象程序设计的基础教材,也可作为从事计算机行业的技术人员学习UML的参考书。本书由李磊、王养廷和杜启军共同编写,其中第4章、第5章、第6章、第7章、第8章、第9章由李磊编写,第1章、第2章、第12章、第13章由王养廷编写,第3章、第10章、第11章由杜启军编写。由于作者的水平有限,书中难免存在错误之处,恳请广大读者批评指正。如果读者有问题,请发送电子邮件到编者将及时给您答复。
本书主要包括3部分内容:面向对象编程的基本知识、UML介绍和UML工具的介绍,其中详细讲解了UML的主要模型图的图符、含义和应用。主要内容包括用例图、顺序图和协作图、类图和对象图、包图、状态图和协作图、构件图和UML部署图。在讲述UML各种模型图时,不仅介绍图符的用法和含义,还着重介绍这些模型图的应用。另外,本书还以Rational Rose为例简要介绍了如何使用UML工具进行UML主要模型图的绘制,以及如何利用Rational Rose进行模型到代码、代码到模型的双向工程。  本书在内容组织和安排上强调实用性,书中介绍了面向对象的概念、面向对象实现技术以及相关的软件开发过程,最后给出一个实例详细介绍如何在实际项目中应用UML进行面向对象分析和设计。  本书内容浅显易懂,适合作为高等院校相关专业的UML教材,也可以作为计算机行业从业人员学习UML的参考书。
第1章 面向对象技术概述 
1.1 面向对象方法学 
1.2 面向对象的类和对象 
1.3 面向对象程序设计语言 
1.4 小结 
1.5 习题 第2章 RUP软件开发过程 
2.1 RUP软件开发过程概述 
2.2 RUP过程框架 
2.3 RUP的静态结构 
2.4 RUP的角色 
2.5 RUP的活动 
2.6 RUP的工件 
2.7 小结 
2.8 习题 第3章 UML概述 
3.1 什么是UML 
3.2 UML演变 
3.3 UML组成 
3.4 UML的应用领域 
3.5 UML 2.0的新特性 
3.6 小结 
3.7 习题 第4章 UML工具 
4.1 UML工具介绍 
4.2 主要UML工具介绍 
4.3 Rational Rose的主要功能 
4.4 Rational Rose窗口介绍 
4.5 Rose模型视图 
4.6 Rational Rose框图创建 
4.7 Rational Rose的双向工程 
4.8 小结 
4.9 习题 第5章 用例和用例图 
5.1 用例图概述 
5.2 为什么要使用用例图 
5.3 用例图元素 
5.4 用例图图符 
5.5 用例粒度 
5.6 用例图应用 
5.7 小结 
5.8 习题 第6章 顺序图和协作图 
6.1 顺序图概述 
6.2 顺序图元素 
6.3 顺序图图符 
6.4 顺序图理解 
6.5 顺序图应用 
6.6 协作图概述 
6.7 协作图元素 
6.8 协作图图符 
6.9 协作图理解 
6.10 协作图应用 
6.11 顺序图与协作图之间关系 
6.12 小结 
6.13 习题 第7章 类图和对象图 第8章 包 第9章 状态图和活动图 第10章 构件图 第11章 部署图 第12章 面向对象实现技术 第13章 UML项目实训 
插图:1.1.2面向对象方法学的基本特征
面向对象程序设计的基本特征包括了封装、继承和多态,对象之间是通过消息相互作用的。下面对这些特征进行介绍。1.抽象抽象是解决实际问题经常采用的策略,也是人类认识世界的本能方式。.所谓抽象是指从许多事物中,舍弃个别的、非本质的属性,抽取出共同的、本质的属性的过程,它是形成概念的必要手段。交通图就是应用抽象的一个很好范例。在人们驾车外出旅行时,需要一张交通路线图。在这张图上,有道路、河流、山脉、旅游景区、快餐店、加油站等各种标志,它们都是对实际景观抽象的结果。这些标志只能说明某个地理位置有一条道路、一条河流、一座加油站等,而并没有反映出某一座特定的加油站的特征。实际上,每一个加油站在其建筑、占用面积、人员管理等诸多方面都有所不同,但所有这些加油站都是用来为汽车加油的,这是所有加油站的共同特征。对于所有的出行人来说只要知道有一个能够加油的地方就可以了,并不需要知道这个加油站的人员、规模等信息。数据抽象是一种更高级别的抽象方法。它将现实世界中存在的事物作为抽象单元,其抽象内容既包括事物的属性特征,也包括行为特征。数据抽象是面向对象程序设计所采用的核心方法,通过数据抽象得到现实世界的一个一个的事物,这些事物就是一个一个的对象。例如,现实世界中一个学校有许多学生,在抽象过程中每个学生可以用学号、姓名、性别、年龄、家庭住址等信息进行描述;同时每个学生还可以有注册学籍、选修课程等行为。通过这些从每个学生身上抽象出的信息和行为,可以任意描述出该学校每一个现实世界中的学生。2.封装封装是指将现实世界中某个事物的属性与行为聚集在一个逻辑单元内部的机制。封装指将对象属性和操作结合在一起,构成一个独立的对象。它的内部信息是隐藏的,不允许外界直接存取对象的属性,而只能通过指定的接口与对象联系。实际上,封装并不是新的概念,在日常生活中,处处可以看到封装机制的应用。例如,一台日常的电视机由许多电器元件组成,每一个电器元件都有一定的性能指标,完成一定的功能。但是在使用电视机时,用户不需要了解这些电器元件的功能,只需要操作电视机前面面板上提供的按钮来实现换台、调节音量等功能。这就是封装,用户只需要操作电视机提供的按钮,而不需要了解内部每个电器元件的工作原理与工作过程。
《面向对象技术及UML教程》以面向对象程序设计、UML基础出知识和实际应用为主,由浅入深地向读者介绍了面向对象编程的基础知识、UML的基础知识以及如何在实际项目中应用UML技术,并且以Rational Rose为主介绍了如何使用UML工具。以Ralional Rose为主要工具,以UML基础知识为主要内容,以实际应用UML为主要目的。
图书标签Tags
评论、评分、阅读与下载
用户评论&(总计5条)
&&&&上课要用,还不知道内容如何,希望好用
&&&&书真心不错!!!
&&&&教科书来着
&&&&用了一星期,就那个面向对象思想还是从别的书得来的,用得还是感觉一般
&&&&主要讲的是UML,面向对象没有详讲
250万本中文图书简介、评论、评分,PDF格式免费下载。
第一图书网() @ 2014当前位置: →
→ 面向对象UML学习笔记
面向对象UML学习笔记
& 作者及来源: RockyXiang - 博客园 &
&收藏到→_→:
摘要: 面向对象UML学习笔记
"面向对象UML学习笔记"::
思想就是把大的程序分解为具有层次结构的若干个模块,每个模块再分解为下一层模块,如此自顶向下、,从而把复杂的大模块分解为许多功能单一的小模块。其特征是以函数为中心,也就是以功能为中心来描述系统,用函数来作为划分程序的基本单位。
= 对象 + 分类 + 继承 + 消息通信
是以对象为基础、以事件或消息来驱动对象执行处理的技术。它是一种自下而上的方法,从问题的一部分着手,一点一点地构建出整个程序。其以数据为中心,使用类作为表现数据的工具,类是划分程序的基本对单位。
对象指客观世界存在的有形或无形的事物。从系统的建模和实现而言,对象是描述客观事物的一个实体,是构成系统的一个独立的基本单元,它由一组属性和操作组成。
系统分析设计阶段:对象表示一种概念,它把现实世界的有关实体模型化。
系统实现阶段:对象表示在中出现的实体的实际。
对象 = 数据 + 操作
对象的基本特征:
1、& 以数据为中心。数据和操作相关联。
2、& 对象是主动的。对象是进行处理的主体,当系统需要完成某对象内部的某个操作时,不能从外部直接加工对象自己的数据,而是必须通过公共接口向该对象发送消息。
3、& 实现了数据的封装。对象的数据和操作被封装在对象的内部,对外是隐蔽、不可见的。
4、& 模块性好。对象是的基本模块,对象的操作围绕着对其内部数据所需进行的处理来设置,没有无关的操作。
类是一组具有相同属性和相同操作的对象的集合。
类中对象所具有的数据值,表示了类的特征。
对象封装自身数据并对数据进行处理的过程成为操作,也叫方法或服务。
相同的操作可以用与不同的类,这叫多态。
指对象之间在交互中所传送的通信信息。格式:
message:[destination,operation,parameters]
把对象的全部属性和操作组合在一起,构成一个不可分割的、独立的对象,不允许外界直接存取对象的属性,只保留与外界对象发生联系的有限接口。
指子类可以自动拥有、共享父类的全部属性与操作。
在基类中定义的属性和操作被其子类继承后,可以具有不同的数据类型或表现出不同的行为。
对象模型:表示了静态的、的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的交互关系。该模型主要关心对象的结构、属性和操作,它是三个模型的核心。
动态模型:是与时间和变化有关的系统性质,描述了系统的控制结构,它表示了瞬间的、行为化的系统控制性质,它关心的是系统的控制,操作的执行此文来自: 马开东博客
转载请注明出处 网址:
顺序,它表示从对象的事件和状态的角度触发,表现了对象的相互行为。
功能模型:描述了系统的所有计算,指出发生了什么,确定什么时候发生。表明一个计算如何从输入值得到输出值,它不考虑计算的次序。其由多张组成。
uml:unified modeling language是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立制品的文档,可用于对系统的理解、设计、浏览、配置、维护和信息控制。
uml描述了系统的静态和动态行为:
uml将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定功能的模型结构,静态结构定义了系统中的重要对象的属性和操作以及这些对象之间的关系。动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制。
uml在各阶段的使用
该阶段可使用来捕获用户的需求,从用户的角度来描述系统的功能,表示了操作者与系统的一个交互过程。 通过用例建模,描述对系统感兴趣的外部角色和他们对系统的功能要求。&
2.& 系统分析
分析阶段主要关心问题域中的主要概念,如对象、类以及它们之间的关系等,需要建立系统的静态模型,可用类图来描述。
为了实现用例,类之间需要协作,可以用动态模型的状态图、顺序图和合作图来描述。在分析阶段,只考虑问题域中的对象建模此文来自: 马开东博客
转载请注明出处 网址:
,通过静态模型和动态模型来描述和系统行为。&
在分析阶段建立的分析模型基础上,考虑定义中的技术细节用到的类,如引入处理用户交互的接口类、处理数据的类、处理通信和并行性的类。因此,设计阶段为实现阶段提供了更详细的设计说明。
4.& 系统实现
实现阶段的任务是使用语言, 将来自设计阶段的类转换成源程序代码,用构件图来描述代码构件的物理结构以及构件之间的关系。用配置图来描述和定义系统中软硬件的物理体系结构。
uml建立的模型也是测试阶段的依据。可使用类图进行,可使用构件图、合作图进行集成测试,可使用进行确认测试, 以验证测试结果是否满足用户的需求。&
(1) : 用于表示系统的功能,并指出各功能的操作者。&
(2) 静态图: 包括类图、 对象图及包图, 表示系统的静态结构。&
(3) 行为图: 包括状态图和活动图,用于描述系统的动态行为和对象之间的交互关系。&&
(4) 交互图: 包括顺序图和合作图,用于描述系统的对象之间的动态合作关系。
(5) 实现图: 包括构件图和配置图,用于描述系统的物理实现。&
从用户角度描述系统功能,并指出各功能的操作者,强调谁在使用系统,系统为执行者完成哪些功能。
当几个用例存在相同的动作时,为避免重复,把相同的动作构造成另一个用例,则该用例与这几个用例之间的关系就是《使用》关系。《使用》关系是uml预定义的构造型模型元素,它是泛化关系的构造型模型元素。&
使用关系的图符表示与泛化关系的图符表示一样,用带空心三角形的连线表示,在连线上标注《使用》。
《扩展》是指用例之间的一种关系。 有两个用例a和b, a与b功能相似,但是a的动作比b的动作多一点, 则a与b之间的关系是扩展关系, a扩展b。 《扩展》关系也是泛化关系的构造型模型元素, 也是预定义构造型模型元素。&
扩展与使用之间有相似之处和不同之处。这两者都从几个用例中抽取公共的行为放入一个单独的用例中,以便其他几个用例使用或扩展。 但是这两个关系的目的是不同的。
可采用下列方法来区别应使用哪种关系。&
当描述一般行为的变化时,采用扩展;
当在两个或多个用例中出现重复描述而又想避免重复时,采用使用。
1、& 用例名;
2、& 简述:对本用例的简短描述,一般一两句话即可;
3、& 依赖关系(可选):用于描述用例是否依赖于其他用例;
4、& 参与者:命名用例中的参与者。往往有一个启动用例的主要参与者,也可能有参与用例的次要参与者;
5、& 前置条件:在一个或者多个条件必须为真的情况下用例才可以开始。例如网络交易股票必须在交易时间内,且网络运行无阻的条件下才能运行;
6、& 描述:对于用例的顺序性描述,包括参与者的输入及系统的相应,系统被看作是黑箱,也就是说,只关心系统对于参与者的输入做出了什么响应,而不必关心内部的实现。
7、& 备选:对主顺序的可替换部分的叙述性描述,例如股民的账户可用余额不足,则提示抱歉,不能买入股票;
8、& 后置条件:如果主顺序遵守这个条件,则在用例结尾处条件总为真,例如股民已经买入了委托的股票;
9、& 待解问题:将有关用例中还要和用户进行讨论的问题记入文档。
1、& 用例名:网络股票交易
2、& 简述:股民在有效的股民账户下交易上市公司股票
3、& 参与者:网络股民,证券系统
4、& 前置条件:网络正常,在正常股票的交易时间内
5、& 描述:
&股民打开证券交易软件
&查看所关注股票
&按交易键f12,系统提示股民输入帐号和密码
&系统检查输入的帐号、密码是否与系统中存储的匹配
&如果匹配,则弹出选择交易营业所
&如果选择初始开户的营业所,则系统弹出交易窗口
&股民可以进行查询、买入股票、卖出股票的活动
&如果交易符合要求,则交易成功
&如果关闭交易窗口,则交易结束
6、& 备选:
&如果系统检查帐号、密码输入错误,则提示重新输入
&如果股民的输入超过三次错误,系统锁定
&如果选择交易营业所不对,提示继续选择
&如果交易不在交易时间,则只能查询
&如果交易不符合要求,系统提示错误,重新交易
7、& 后置条件:股民交易成功
网络交易图
网络交易细化图
创建的步骤
1、确定系统涉此文来自: 马开东博客
转载请注明出处 网址:
及的总体信息。如证券交易系统包括一下功能:公司上市融资、股民股市开户、股民网络交易、电话交易、股民银证转账、股民账户转移、证监会监管、证交所发布信息、股票分红、公司股改、公司退市等。
2、确定系统的参与者,如谁使用系统的主要功能、谁需要系统支持他们的日常工作、谁来维护、管理系统使其能正常工作、系统需要控制哪些硬件、系统需要与其他哪些系统交互等。如股票交易系统包括上市公司、股民、证监会、证券系统。
3、确定系统用例。用例是系统参与者与系统在交互过程中所要完成的事务,识别用例最好的方法就是从参与者的角度分析他是如何使用系统的。如执行者要求系统提供哪些功能
、执行者需要读、产生、删除、修改或存储系统中的信息有哪些类型、执行者必须指出的系统事件有哪些、如何把这些事件表示成用例中的功能等。
4、区分用例的有限次序。如证券交易系统的用例可排序如下:公司上市、股民开户、股民银证转账、股民网络交易、证交所发布信息、证监会监管、电话交易、公司股改、股票分红、股民账户转移、公司退市。
5、细化用例。如公司上市还可以分为&申请上市&、&审查通过&、&发行股票&用例,股民开户还可以氛围&填写资料&、&录入系统&和&办理银行转帐卡&三步。
包括类图、对象图和包图
类图:描述系统中类的静态结构,不仅定义系统的中的类,还表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(属性和操作)。类在系统的整个都是有效的。
对象图:是类图的实例,不同点在于对象图显示类的多个对象实例,而不是实际的类。由于对象是类图的一个示例,所以只能在系统某一时间段存在。
包图:包图用于描述包中存在的类以及包与包之间的各种关系。它也是管理复杂系统的若干类以及类结构的有力工具。包还是保持系统整体结构简明、清晰的重要工具。
当一个系统有几十个、上百个类时,理解和修改这个系统也就变得更加困难,总是希望能将复杂的系统进行分解。解决这个问题的一个基本方法是将许多类组合成为一个更高层次的单位,形成高内聚、低耦合的类的集合,uml把这种分组机制称为包。
描述系统的动态模型和组成对象间的交互关系。
状态机由状态、转换、事件、活动、动作五部分组成。状态表示一个模型在其生命期内的状况。转换表示两个不同状态之间的联系。事件可以触发状态之间的转换。活动是在状态机中进行的一个非原子的执行,由一系列动作组成。动作是一个可执行的原子计算,它导致状态的变更或者返回一个值。
状态图:一个状态图表示一个状态机,描述类的对象所有可能的状态以及事件发生时状态的转移条件。是对类图的补充,但一般只为有多个状态且其行为易受外界影响并发生改变的类画状态图。
复合状态是已经分解为并发(and)或互斥(or)子状态的状态。
内部转移域是对象在该状态下,为响应收到的事件而执行的内部动作或活动的列表,执行这些动作或活动后并不改变状态。 内部转移域定义为:&
事件名参数表& [条件] /& 动作表达式
一些特定的内部转移域:&
(1) entry / 动作表达式: 进入该状态时要执行的原子动作, 该转移域无参数表和条件。 ? &(2) exit / 动作表达式:离开该状态时要执行的原子动作, 该转移域无参数表和条件。
状态可以带有一个活动,标注在内部转移域中,表示为 do / 活动名。活动是有一段时间的操作,动作是相对快速的操作。 因此活动依附于状态, 而动作依附于转移。&
一旦进入一个状态, 立即执行与entry相连的动作, 随后转移到该状态中。只要通过某个转移离开该状态,则与exit相连的动作立即被执行。 若有一个转移的出发点和终止点是同个状态,那么离开动作将首先执行然后是转移动作, 最后是进入动作。这种情况称为回授。若该状态有相关的活动, 则该活动将在进入动作结束之后执行。
&&&&&& 复合状态是指可进一步细分为多个子状态的状态。 这些子状态之间有&或&关系、 &与&关系。或关系子状态是指某时刻只可到达一个子状态。如图 (c)中,在汽车行驶某时刻,只可能是向前行驶或向后行驶中的一种子状态。与关系子状态是指某时刻可同时到达多个子状态。这也称为并发子状态。与关系子状态的表示如图 (d)所示,在汽车行驶状态中,除了向前、 向后只取一种子状态外,同时,低速、高速两种子状态中也只取一个子状态。&
&&&&&& 转移是指两个状态之间的关系,它描述了对象从一个状态进入另一个状态的情况,并执行了包含的动作。
转移的图形表示是两个状态之间的带箭头连线, 箭头指向要进入的状态,在连线上标注转移的事件、 条件、 依附的动作等,其格式为
事件名 (参数表 ) [ 条件 ] / 动作表达式
活动图:用来为用例建模工作流,描述满足用例要求所要进行的活动以及活动间的约束关系。活动图可以向用户说明需要满足什么条件用例才会有效,以及用例完成后系统保留的条件或者状态。
泳道就是把活动图中的活动用垂直线划分成一些纵向区域, 将这些区域称为泳道。每个区域代表一个特定类、人及组织的责任区, 将这些责任者标注在每个区域的顶部。泳道是另一种形式的包,它把一个类中的各个活动的责任组织成一个包,常对应于商业模型的组织单位。泳道将活动图的逻辑描述与顺序图、合作图的责任描述结合起来。&
活动图和流程图的区别:
1、& 活动图描述的是对象活动的顺序关系所遵循的规则,着重表现得是系统的行为,而非系统的处理过程;流程图注重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有着严格的顺序和时间关系;
2、& 活动图能够表示并发活动,流程图不行;
3、& 活动图,流程图面向过程。
活动图和状态图都是用来描述对象的动态行为。状态图侧重于从行为的结果来描述,也就是一个一个的状态,而活动图则侧重于从行为的动作来描述,也就是一个一个的活动。
顺序图:表示对象之间的合作关系,强调对象之间消息发送的顺序,同时显示对象之间的交互。
(1) 简单消息: 是一种简单控制流, 用一般带箭头连线表示。&
(2) 同步消息: 是一种嵌套控制流, 消息发出后, 等待处理完成并收到返回消息后,才
能继续下去。同步消息用带半边箭头连线表示。&
(3) 异步消息:是一种异步控制流,消息发出后,不等返回消息就执行自己的操作,可用于
描述实时系统中的并发行为。 异步消息用带实心箭头连线表示。&
协作图:描述对象间的协作关系,除显示信息交换外还显示对象以及他们之间的关系。若一个对象在消息的交互中被创建,则可在对象图符的对象名之后加约束{new}; 若一个对象在消息的交互期间被删除, 则可在对象图符的对象名之后加约束{destroy}。
如果强调时间和顺序使用顺序图,强调上下级关系则使用协作图。
构件图:描述代码部件的物理结构及各部件之间的依赖关系。一个构件可能是一个资源代码部件、一个二进制部件或一个可执行部件,它包含逻辑类或实现类的有关信息。
配置图:定义系统中软硬件的物理体系结构,配置图可以显示计算结点的拓扑结构和通信路径、结点上执行的软构件、软构件包含的逻辑单元等。特别对于分布式系统,配置图可以清楚地描述系统中的配置、通信以及在各上各种软构件和对象的配置。
图的选择和使用
&&&&&& 采用技术设计系统时,首先是描述需求,其次是根据需求建立系统的静态模型构造系统的结构,然后是描述系统的行为。
&&&&&& 其中第一、二步建立的模型都是静态的,包括、类图、对象图、组件图和部署图等。
&&&&&& 第三步建立的是可执行的或表示执行时的时序状态或交互关系的模型,包括状态图、活动图、顺序图和协作图等。
&&&&&& 在需求分析阶段,可以用用例来捕获,通过用例建模,描述对系统感兴趣的角色及系统的。
&&&&&& 分析阶段只要关心问题域中的主要概念和机制,需要类图来描述他们之间的关系
作者:rocky翔出处:/rockymyx/本文版权归作者和共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
此文来自: 马开东博客
网址: 站长QQ
面向对象UML学习笔记_博客园相关文章
博客园_总排行榜
博客园_最新
博客园_月排行榜
博客园_周排行榜
博客园_日排行榜

我要回帖

更多关于 uml面向对象设计基础 的文章

 

随机推荐