第5讲详细设计之类图_第1页
第5讲详细设计之类图_第2页
第5讲详细设计之类图_第3页
第5讲详细设计之类图_第4页
第5讲详细设计之类图_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程导论

详细设计之类图建模主讲:李传科Tel:152030222481海软院软件工程系 第5讲面向对象的软件工程面向对象方法面向对象基本概念面向对象建模类图时序图2海软院软件工程系面向对象思想提出背景传统结构化方法学的缺点:1、生产效率低2、不能满足用户需求3、软件复用程度很低4、软件仍然很难维护面向对象方法:不是把程序看作是工作在数据上的一系列过程和函数数据的集合,而是把程序看作是相互协作而彼此独立的对象的集合。每个对象就像一个有数据、操作、功能和目的的微型程序3海软院软件工程系什么是面向对象

面向对象的基本思想是将一个实际问题看成是一个对象或几个对象的集合。按照以下4个概念设计和实现的系统,称为面向对象。 面向对象=对象

(object)+类

(classification)+继承(inheritance)+通信

(communicationwithmessages)5.1软件工程的新途径—面向对象方法4海软院软件工程系5.1.1面向对象思想

OOSD由三部分组成:

OOA(Object-OrientedAnalysis)面向对象的分析

OOD(Object-OrientedDesign)面向对象的设计

OOP(Object-OrientedProgram)面向对象的程序设计5海软院软件工程系OOA

过程是在系统所要求解的问题中找出对象(属性和行为)以及它所属的类,并定义对象与类;OOD

是把系统所要求解的问题分解为一些对象及对象间传递消息的过程;OOP

是把数据和处理数据的过程结合为一个对象。对象既可以像数据一样被处理,又可以像过程一样被描述处理的流程和细节。6海软院软件工程系5.1.2面向对象的基本概念1.对象(Object)2.类(Class)3.消息和方法(MessageandMethod)4.继承性(Inheritance)5.封装性(Encapsulation)6.多态性(Polymorphism)7海软院软件工程系5.1.2面向对象的基本概念1、对象(Object)

对象(Object)是客观事物或概念的抽象表述,即对客观存在的事物的描述统称为对象,对象可以是事、物、或抽象概念,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体。8海软院软件工程系5.1.2面向对象的基本概念2.类(Class)类又称对象类(ObjectClass),是一组具有相同属性和相同操作的对象的集合。在一个类中,每个对象都是类的实例(instance),它们都可以使用类中提供的函数。类具有属性,用数据结构来描述类的属性,类具有操作,它是对象的行为的抽象,操作实现的过程称为方法(method),方法有方法名,方法体和参数。9海软院软件工程系5.1.2面向对象的基本概念几何对象颜色位置移动(delta:矢量)选择(P:指针型):布尔型旋转(角度)图5.1对象类的描述人姓名:字符串年龄:整型找工作更换地址文件文件名文件大小最近更新日期打印(人)张红兵24(人)李军24图5.2对象的描述对象和类的描述对象和类一般采用“对象图”和“类图”来描述。类名属性操作

对象图

类图10海软院软件工程系5.1.2面向对象的基本概念3.消息和方法(MessageandMethod)消息就是向对象发出的服务请求(互相联系、协同工作等)。对象之间的联系可表示为对象间的消息传递,即对象间的通讯机制。一个消息应该包含以下信息:消息名、接收消息对象的标识、服务标识、消息和方法、输入信息、回答信息。在面向对象程序设计中,程序的执行是靠在对象间传递消息来完成的。11海软院软件工程系5.1.2面向对象的基本概念4.继承性(Inheritance)继承性是共享类、子类和对象中的方法和数据的机制。当类A不但具有类B的属性,而且还具有自己的独特属性时,这时称类A继承了类B。当类A继承类B时,就表明类A是类B的子类,而类B是类A的超类。12海软院软件工程系5.1.2面向对象的基本概念继承的特性:传递性。分为单重继承和多重继承两类。继承的传递性图5.3简单继承图5.4多重继承13海软院软件工程系5.1.2面向对象的基本概念5.封装性(Encapsulation)封装是面向对象的一个重要概念。封装是一种信息隐蔽技术,用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。也就是说,用户只知道某对象是“做什么”的,不知道“怎么做”。封装将外部接口与内部实现分离开来,用户不必知道行为实现的细节,只须用消息来访问该对象。优点:1)封装体现了良好的模块性,它将定义模块和实现模块分开。2)封装使对象的内部软件的范围有清楚边界,有一个描述该对象和其他的对象之间通信的接口;3)使得模快内部的数据受到很好的保护,避免外部的干扰。4)封装大大增强了软件的维护性、修改性,这也是软件技术追求的目标。14海软院软件工程系5.1.2面向对象的基本概念6.多态性(Polymorphism)当同样的消息可以被送到一个父类的对象和它的子类的对象上时,被称作多态性。即相同的操作的消息发送给不同的对象时,每个对象将根据自己所属类中所定义的操作去执行,故产生不同的结果。多态即一个名字可具有多种语义。优点:多态性机制不仅增加了面向对象软件系统的灵活性、可理解性和可维护性,进一步减少了信息冗余,而且显著提高了软件的可重用性和可扩充性。15海软院软件工程系5.2面向对象建模1.面向对象模型面向对象建模是用面向对象技术和方法来定义、描述问题域中的软件解的。面向对象方法最基本的原则,是按照人们习惯的思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求解方法的软件。16海软院软件工程系5.2面向对象建模2.面向对象建模用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型三种模型。1)对象模型是描述系统数据结构的,它始终都是目标系统中最关键、最基本、最核心的;2)动态模型是描述系统控制结构的;3)功能模型是描述系统功能的。17海软院软件工程系UML和对象建模UML(统一建模语言)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它可以把人们对所需要构建系统的想法和理解记录下来,以便用于对系统的分析、设计、研究、配置和维护。18海软院软件工程系UML常用视图UsecaseDiagram(用例图、用况图)ClassDiagram(类图)ObjectDiagram(对象图)SequenceDiagram(顺序图、时序图)CollaborationDiagram(协作图)StatusDiagram(状态图)ActivityDiagram(活动图)ComponentDiagram(组件图)DeploymentDiagram(部署图)19海软院软件工程系5.3静态模型—类图类图(ClassDiagram)显示了系统的静态结构,而系统的静态结构构成了系统的概念基础。类名(Name)属性(Attribute)方法(Operation)20海软院软件工程系1.类名(Name)一般的类带路径名的类21海软院软件工程系2.类属性和方法的可见性可见性用来表示类中属性和方法对类以外元素是否可见。Public:以+表示;能够被系统中的其他类的方法使用。Private:以–表示;只能由本类的方法使用,其他类不可使用。Protected:以#表示;不仅可以被本类的方法使用,也可以被该类的子类使用,但不能被其他类的方法使用。22海软院软件工程系23海软院软件工程系3.类的职责在标准的UML定义中,有时还可指明类的另一种信息,那就是类的职责(角色)。4.类的约束类的约束指定了该类所要满足的一个或多个规则。24海软院软件工程系5.接口(Interface)接口是在没有给出对象的实现和状态的情况下对对象行为的描述。接口是一种特殊的类,所有接口都是有构造型<<interface>>的类。在UML中,接口使用一个带有名称的小圆圈来进行表示,并且可以通过一条Realize(实现关系)线与实现它的类相连接。25海软院软件工程系当接口被其他类依赖的时候,即一个接口是在某个特定类中实现后,一个类通过一个依赖关系与该接口相连接。26海软院软件工程系6.类与类之间的关系(1)依赖(Dependency)

(2)泛化(Generalization)

(3)关联(Association)(4)实现(Realize)27海软院软件工程系(1)类之间的依赖关系对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。28海软院软件工程系(2)类之间的泛化关系泛化其实就是我们面向对象中的继承。29海软院软件工程系(3)类之间的关联关系关联:对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联关系还可以表示类之间的名称、角色、多重性、聚合、组合。30海软院软件工程系(3.1)类之间的聚合(组合)关系当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚合关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。31海软院软件工程系例、选课管理系统创建类图示例32海软院软件工程系1.确定类和关联 进行系统建模的很重要的一个挑战就是决定需要哪些类来构建系统。类的识别是一个需要大量技巧的工作。33海软院软件工程系2.确定属性和操作 创建好相关的类和初步的关联后,可以开始添加属性和操作,以便提供数据存储和需要的功能。34海软院软件工程系管理员和用户的用例图

类图示例—图书馆管理系统35海软院软件工程系用户的用例图

36海软院软件工程系系统管理员注册用户未注册用户37海软院软件工程系38海软院软件工程系图书馆管理系统简单需求描述图书管理系统主要给借阅者提供书籍的借阅和还书等,这些操作都是通过图书管理员进行的,以及系统管理员对读者信息进行统一的管理。1.识别参与者以及他们的属性借阅者:Borrower图书管理员:Librarian系统管理员:Administrator39海软院软件工程系40海软院软件工程系2.系统中用到的其他类以及属性

具体某书籍

借书

书库单条记录

图书预订

41海软院软件工程系注:在定义类、类的方法和属性时,对后面建立动态模型的时序图是很有帮助的,类图和时序图的建立是相辅相成的,因为时序图中出现的消息基本上都会成为类中的方法,因此在设计阶段绘制系统的时序图时,要尽量使用类的已识别出的方法来描述消息,若出现无法用类的已识别出的方法来描述的消息,就要考虑消息是否是类的一个待识别的方法,若是,就要将这个方法及时添加到类的操作类表中,并用这个新方法来描述消息。

42海软院软件工程系2.确定各个类之间的关系

43海软院软件工程系对象图(ObjectDiagram)对象图的组成

对象图是由对象(Object)和链(Link)组成。对象图的目的在于描述系统中参与交互的各个对象在某一时刻的状态。44海软院软件工程系

对象是类的实例,创建一个对象通常可以从以下两种情况来考虑:第一种情况是将对象作为一个实体,它在某个时刻具有明确的值;另一种情况是作为一个身份持有者,不同时刻有不同的值。1.对象(Object)45海软院

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论