软件工程第6章--面向对象方法学与UML.pptx
- 文档编号:14975842
- 上传时间:2023-06-28
- 格式:PPTX
- 页数:119
- 大小:5.23MB
软件工程第6章--面向对象方法学与UML.pptx
《软件工程第6章--面向对象方法学与UML.pptx》由会员分享,可在线阅读,更多相关《软件工程第6章--面向对象方法学与UML.pptx(119页珍藏版)》请在冰点文库上搜索。
,软件工程,6面向对象方法学与UML,本章概述,面向对象方法有许多优点,是目前广泛使用的软件开发方法之一。
面向对象方法的要素是对象、类、继承和用消息通信。
软件工程领域在19951997年期间取得的最重要的成果之一,是统一建模语言(UnifiedModelingLanguage,UML)。
UML是一种直观的、通用的、可视化建模语言。
在用面向对象方法进行软件分析和设计时,必须按照其方法和原则,要懂得UML的概念、符号和使用规则,然后再学习如何灵活应用UML进行软件的分析、设计。
目前在设计移动互联系统时,常采用面向对象方法。
在介绍用面向对象的方法进行软件分析和设计时,本书采用统一建模语言(UML)来描述系统。
本章重点:
面向对象方法的概念;UML图。
面向对象方法学与UML,Contents,目录,面向对象方法概述,6.1面向对象方法概述,6.1面向对象方法概述,ObjectedOriented,6.1面向对象方法概述,ObjectedOriented,6.1面向对象方法概述,6.1面向对象方法概述,6.1面向对象方法概述,6.1.1面向对象方法的要素和优点,对象,类,6.1面向对象方法概述,6.1.1面向对象方法的要素和优点,继承,用消息通信,面向对象方法的四要素:
6.1面向对象方法概述,6.1.1面向对象方法的要素和优点,综上所述,面向对象就是使用对象、类和继承机制,并且对象之间仅能通过传递消息实现彼此通信。
可以用下列方程来概括:
OOObjectsClassesInheritanceCommunicationwithMessages(面向对象对象类继承用消息通信)仅使用对象和消息的方法,称为基于对象的方法(Object-based),不能称为面向对象方法。
使用对象、消息和类的方法,称为基于类的方法(Class-based),也不能称为面向对象方法。
只有同时使用对象、类、继承和消息的方法,才是面向对象的方法。
6.1面向对象方法概述,6.1.1面向对象方法的要素和优点,面向对象方法的主要优点:
6.1面向对象方法概述,6.1.1面向对象方法的要素和优点,6.1面向对象方法概述,6.1.2面向对象方法的概念,6.1面向对象方法概述,6.1.2面向对象方法的概念,6.1面向对象方法概述,6.1.2面向对象方法的概念,6.1面向对象方法概述,6.1.2面向对象方法的概念,6.1面向对象方法概述,6.1.2面向对象方法的概念,6.1面向对象方法概述,6.1.2面向对象方法的概念,6.1面向对象方法概述,6.1.2面向对象方法的概念,6.1面向对象方法概述,6.1.2面向对象方法的概念,6.1面向对象方法概述,6.1.2面向对象方法的概念,消息就是向对象发出的服务请求,是要求某个对象执行它所属的类中所定义的某个操作的规格说明。
一个消息通常由以下3部分组成:
6.1面向对象方法概述,6.1.2面向对象方法的概念,Encapsulation,6.1面向对象方法概述,6.1.2面向对象方法的概念,特殊类的对象拥有其一般类的全部属性与服务,称为特殊类对一般类的继承。
继承是子类自动地拥有父类中定义的属性和方法的机制。
面向对象方法把类组成一个层次结构的系统,称为类等级:
子类/父类或派生类/基类或特殊类/一般类。
继承具有传递性,一个对象继承了它所在的类等级中、它的上层类的全部属性和方法,它的子类又继承了它的属性和方法。
Inheritance,6.1面向对象方法概述,6.1.2面向对象方法的概念,继承有两类:
单继承和多重继承。
单继承:
一个类只允许有一个父类,即类等级为树形结构时,类的继承是单继承。
例如,学生类分为专科生、本科生、研究生3个子类,就是单继承。
多重继承:
当一个类有多个父类,即类等级为网状结构时,类的继承是多重继承。
例如,冷藏车继承了汽车类和冷藏设备类两个类的属性和服务。
Inheritance,6.1面向对象方法概述,6.1.2面向对象方法的概念,Polymorphism,6.1面向对象方法概述,6.1.2面向对象方法的概念,UML概述,6.2UML概述,6.2.1UML的发展,6.2UML概述,6.2.1UML的发展,6.2UML概述,6.2.1UML的发展,6.2UML概述,6.2.2UML的内容,6.2UML概述,6.2.2UML的内容,UML语义是定义在一个建立模型的框架中的,建模框架有如下4个层次(抽象级别)。
6.2UML概述,6.2.2UML的内容,UML的模型是用图来表示的,共有5类9种图。
6.2UML概述,6.2.2UML的内容,视图由若干张图构成,从不同的目的或角度描述系统。
UML视图主要包括:
静态视图、用例视图、实现视图、部署视图、状态视图、活动视图、交互视图、模型管理视图等。
6.2UML概述,6.2.2UML的内容,模型,元素,6.2UML概述,6.2.2UML的内容,6.2UML概述,6.2.2UML的内容,6.2UML概述,6.2.2UML的内容,UML可以建立系统的用例模型、静态模型、动态模型和实现模型,每种模型由适当的UML图组成。
UML图,部署图,6.3UML图,6.3UML图,6.3.1用例图,用例代表某些用户可见的功能,实现一个具体的用户目标。
整个系统功能是由一系列用例组成的,待所有用例设计完成,系统设计工作也就完成了,这就是用例驱动方法。
用例图(UseCaseDiagram)定义了系统的功能需求。
用例图从用户的角度描述系统功能,并指出各功能的操作者。
用UML开发软件,是对用例进行迭代、渐增式地构造的过程。
用例图的主要元素是用例、执行者和通信联系。
用例图中用方框画出系统的功能范围,该系统功能的用例都置于方框中,用例的执行者都置于方框外。
执行者和用例之间要进行通信联系(信息交换)。
UseCaseDiagram,6.3UML图,6.3.1用例图,6.3UML图,6.3.1用例图,执行者,执行者实际上就是类。
执行者是与系统交互的人或物。
执行者是能够使用某个功能的一类人或物。
执行者之间可以有一般特殊关系。
6.3UML图,6.3.1用例图,6.3UML图,6.3.1用例图,6.3UML图,案例,6.3UML图,案例,案例,6.3UML图,6.3UML图,6.3.2类图和包,6.3UML图,6.3.2类图和包,图6-4类的图形符号和关系的连线,6.3UML图,6.3.2类图和包,6.3UML图,6.3.2类图和包,6.3UML图,6.3.2类图和包,6.3UML图,6.3.2类图和包,01表示:
0到1个对象0*或*表示:
0到多个对象115表示:
1到15个对象3表示:
3个对象个数缺省表示:
1,图6-5类与类的关联,普通关联,6.3UML图,6.3.2类图和包,图6-6类的限定,6.3UML图,6.3.2类图和包,图6-7关联类图示,6.3UML图,6.3.2类图和包,图6-8共享聚集,6.3UML图,6.3.2类图和包,图6-9复合聚集图例,6.3UML图,6.3.2类图和包,(a)(b)图6-10类的单继承关系和多重继承关系,6.3UML图,6.3.2类图和包,图6-11类的依赖关系,6.3UML图,6.3.2类图和包,图6-12类的细化关系,6.3UML图,6.3.2类图和包,6.3UML图,6.3.2类图和包,图6-13包的图示符号,6.3UML图,6.3.2类图和包,图6-13包的图示符号,6.3UML图,6.3.2类图和包,6.3UML图,6.3.3对象图,对象是类的实例。
因此,对象图(ObjectDiagram)可以看做是类图的实例,能帮助人们理解比较复杂的类图。
类图与对象图之间的区别是,对象图中对象的名称下面要加下划线。
对象有以下3种表示方式:
对象名:
类名对象名:
类名
(1)对象名与类名之间用冒号(:
)连接,一起加下划线。
(2)可以只写对象名并加下划线,将冒号及类名省略。
(3)如果只有类名没有对象名,在表示对象时,类名前一定要加冒号,冒号和类名要同时加下划线。
6.3UML图,案例,图6-14对象图,6.3UML图,6.3.4状态图,6.3UML图,6.3.4状态图,6.3UML图,6.3.4状态图,6.3UML图,6.3.4状态图,6.3UML图,6.3.4状态图,6.3UML图,案例,6.3UML图,案例,6.3UML图,顺序图(SequenceDiagram)描述对象之间动态交互的情况,着重表示对象间消息传递的时间顺序。
顺序图中的对象用矩形框表示,框内标有对象名。
顺序图有以下两个方向:
6.3.5顺序图,6.3UML图,6.3.5顺序图,6.3UML图,案例,6.3UML图,6.3.6活动图,6.3UML图,案例,6.3UML图,6.3.7协作图,6.3UML图,6.3.7协作图,6.3UML图,案例,6.3UML图,6.3.8构件图,6.3UML图,6.3.8构件图,构件图的图示符号是左边带有两个小矩形的大矩形。
构件的名称写在大矩形内。
构件的依赖关系用一条带箭头的虚线表示。
箭头的形状表示消息的类型。
构件的接口:
从代表构件的大矩形边框画出一条线,线的另一端为小空心圆,接口的名称写在空心圆附近。
这里的接口可以是模块之间的接口,也可以是软件与设备之间的接口或人机交互界面。
图6-20表示某系统程序有外部接口,并调用数据库。
由于在调用数据库时,必须等数据库中的信息返回后,程序才能进行判断、操作,因而是同步消息传送。
6.3UML图,6.3.9部署图,6.3UML图,6.3.9部署图,6.3UML图,6.3.9部署图,6.3UML图,6.3.9部署图,6.3UML图,案例,6.3UML图,案例,UML的应用,UML使用准则,6.4UML的应用,结构化程序设计,6.4UML的应用,结构化程序设计,UML,使用UML面向对象方法从建立模型开始,画出相应的UML图;再考虑不同的视图补充所需要的图;最后把这些图合成为一个整体。
这样,就可比较全面地建立系统模型,合理正确地解决问题、设计软件。
6.4UML的应用,结构化程序设计,6.4.1UML模型,6.4UML的应用,结构化程序设计,6.4.1UML模型,6.4UML的应用,结构化程序设计,6.4.1UML模型,6.4UML的应用,6.4.1UML模型,任何建模语言都以静态模型作为建模的基础,UML也不例外。
静态模型描述系统的元素及元素间的关系。
它定义了类、对象和它们之间的关系及组件模型。
UML对可重用性的支持,在设计的前期体现在支持可重复使用的类和结构,后期则体现在组件的装配上。
组件是组成应用程序的可执行单元,类被分配到各组件中,以提供可重复使用的应用程序结构部件。
组件为即插即用的应用程序结构奠定了基础。
静态模型主要描述类、接口、用例、协作、组件、结点等体现系统结构的事物。
静态模型使用的图,包括用例图、类图、包图、对象图、构件图和部署图等。
有时软件系统并不大,可以只建立对象模型,描述系统所包含的所有对象及其相互关系,而静态模型中的其他图可以省略。
6.4UML的应用,结构化程序设计,6.4.1UML模型,动态模型描述系统随时间的推移而发生的行为。
动态模型可以使用的UML图有状态图、顺序图、活动图、协作图等。
动态模型主要描述两种动作:
消息交互和状态机。
6.4UML的应用,结构化程序设计,6.4.1UML模型,实现模型包括构件图和部署图,它们描述了系统实现时的一些特性。
构件图显示代码本身的逻辑结构。
构件图描述系统中的软构件以及它们之间的相互依赖关系,构件图的元素有构件、依赖关系和接口。
部署图显示系统运行时的结构。
部署图显示系统硬件的拓扑结构和通信路径、系统结构结点上执行的软件构件所包含的逻辑单元等。
6.4UML的应用,结构化程序设计,6.4.2UML视图,视图(View)是模型的简化说明,即采取特定的角度或观点并忽略与相应角度或观点无关的实体来表达系统的某一方面特征。
一个系统往往可以从不同的角度进行观察。
从一个角度观察到的系统,构成系统的一个视图,每个视图是整个系统描述的一个投影,说明了系统的一个特殊侧面。
若干不同的视图可以完整地描述所建造的系统。
每种视图是由若干幅UML图组成的,每一幅图包含了系统某一方面的信息,阐明了系统的一个特定部分或方面。
由于不同视图之间存在一些交叉,因此一幅图可以作为多个视图的一部分。
在UML中,视图可划分成9类,分别属于3个层次。
最上层,视图被分成3个视图域:
结构分类、动态行为和模型管理;每个视图域的第二层包括一些视图;第三层由UML图组成。
6.4UML的应用,结构化程序设计,6.4.2UML视图,6.4UML的应用,结构化程序设计,6.4.2UML视图,6.4UML的应用,结构化程序设计,6.4.2UML视图,模型管理说明了模型的分层组织结构。
模型管理视图根据系统开发和部署组织视图,主要概念为包、子系统、模型。
6.4UML的应用,结构化程序设计,6.4.2UML视图,6.4UML的应用,结构化程序设计,6.4.2UML视图,下列5种UML视图是较常用的,可用来观察系统。
6.4UML的应用,结构化程序设计,6.4.2UML视图,6.4UML的应用,结构化程序设计,6.4.2UML视图,例如,图书馆的“图书目录查询”程序在读者查询机上运行;“图书流通”(借书、还书)程序在图书流通部的计算机上运行。
显然描述系统分析、设计的各个部分和各个方面的所有UML图,都是描述同一个系统的,它们之间不能有矛盾。
总之,一个系统可以有多种视图,但视图之间必须是一致的。
同样,系统可以有多种模型,模型之间也必须是一致的。
UML有多种模型和多种图,在实际的软件开发过程中,开发者可以根据自己的需要选择几种来运用。
6.4UML的应用,结构化程序设计,6.4.3UML使用准则,要集中精力围绕问题的核心来建立模型。
最好只画几张关键的图,经常使用并不断更新、修改这几张图。
软件分析的开始阶段通过分析对象实例建立系统的基本元素,即对象或构件;然后建立类、建立静态模型;分析用例、建立用例模型和动态模型;在设计阶段考虑系统功能的实现方案。
应当优先选用简单的图形和符号。
例如,最常用的概念为用例、类、关联、属性和继承等,应当首先用图描述这些内容。
选择使用合适的UML图,只对关键事物建立模型,分层次地画模型图,6.4UML的应用,结构化程序设计,6.4.3UML使用准则,每个抽象层次内的模型、不同抽象层次的模型都必须协调一致。
对同一事物从不同角度描述得到不同的模型、不同的视图后,要把它们合成为一个整体。
建立在不同层次上的模型之间的关系,用UML中的细化关系表示出来,以便追踪系统的工作状态。
如果要建模的问题比较复杂,可以把问题分解成若干子问题,分别为每个子问题建模,把每个子模型构成一个包,以降低模型的复杂性和建模的难度。
模型应具有协调性,模型和模型的元素应大小适中,6.4UML的应用,结构化程序设计,6.4.4UML的扩展机制,(a)(b)图6-22标签的使用,6.4UML的应用,结构化程序设计,6.4.4UML的扩展机制,6.4UML的应用,结构化程序设计,6.4.4UML的扩展机制,图6-23UML图中的版型,6.4UML的应用,结构化程序设计,6.4.5UML的应用领域,UML是一种建模语言,是一种标准的表示方法。
UML可以为不同领域的人们提供统一的交流方法。
其表示方法的标准化,有效地促进了不同背景的人们之间的交流,有效地促进了软件分析、设计、编码和测试人员的相互理解。
UML的目标是,用面向对象的图形方式来描述任何系统,因此具有很宽的应用领域。
其中最常用的是建立软件系统的模型,也可以用于描述非计算机软件的其他系统,例如机械系统、商业系统、处理复杂数据的信息系统、企业机构或业务流程、具有实时要求的工业系统或工业过程等。
UML是一种通用的标准建模语言,可以为任何具有静态结构和动态行为的系统建立模型。
6.4UML的应用,结构化程序设计,6.4.5UML的应用领域,本章小结,本章小结,面向对象方法是一种将数据和处理相结合的方法,它不强调分析与设计之间的严格区分。
从面向对象分析(OOA)到面向对象设计(OOD),是一个反复多次迭代的过程。
面向对象方法使用对象、类和继承机制,对象之间仅能通过传递消息实现彼此通信。
可以用下列方程来概括:
面向对象对象类继承用消息通信UML是面向对象方法使用的一种标准建模语言。
常用的UML图有9种:
用例图、类图、对象图、状态图、顺序图、活动图、协作图、构件图、部署图。
本章小结,本章小结,本章小结,包由类图或另一个包构成,表示包与包之间的依赖、细化和泛化等关系。
包通常用于对模型的管理,可把包称为子系统。
UML是一种有力的软件开发工具,它不仅可以用来在软件开发过程中对系统的各个方面进行建模,还可以用在许多工程领域。
面向对象方法在开发过程中会产生几种主要模型:
用例模型、静态模型、动态模型和实现模型。
UML常用的视图有5种:
用例视图、逻辑视图、并发视图、构件视图、部署视图。
开发者应根据实际需要选择使用合适的UML图和模型。
本章小结,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 面向 对象 方法 UML