面向对象软件工程-第06章_面向对象方法学与UML.ppt
《面向对象软件工程-第06章_面向对象方法学与UML.ppt》由会员分享,可在线阅读,更多相关《面向对象软件工程-第06章_面向对象方法学与UML.ppt(253页珍藏版)》请在三一办公上搜索。
1、面向对象软件工程Object Oriented Software Engineering,授课教师:周岩E-mail:,第6章 面向对象方法学与UML,主要内容1.面向对象方法概念2.UML图,面向对象方法:(Objected Oriented,简称为OO)面向对象分析:(Object Oriented Analysis,简称OOA)面向对象设计:(Object Oriented Design,简称OOD),6.1 面向对象方法概述,6.1.1 面向对象方法学的要素和优点1.面向对象方法的要素 对象类继承消息,2、面向对象方法学的主要优点与人类习惯的思维方法一致稳定性好可重用性好较易开发大型软
2、件产品可维护性好,8.1.2 面向对象的概念,1对象(object)(1)对象的定义:在应用领域中有意义的、与所要解决的问题有关系的任何事物都可作为对象。(2)对象的特点以数据为核心主动性实现了数据封装本质上具有并行性模块独立性好,内部状态,打开,调节频道,其他,关闭,调节声音,一台收音机对象的实例,2类(Class):类是具有相同属性和相同方法的一组对象的集合。,人类分门别类物以类聚,3实例(Instance):一个对象是类的 一个实例。4属性(Attribute):是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。5消息(Message):消息就是向对象发出的服务请求。分为同步消息
3、和异步消息,消息传递:当一个消息发送给某个对象时,包含要求接受对象去执行某些活动的信息。接收到消息的对象经过解释,然后予以响应。这种通信机制叫做消息传递。,对象,对象,消息,6方法(Method):方法是对象所能执行的操作,是类中所定义的服务。7封装(Encapsulation):就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。,两层含义:(1)结合性(2)信息隐蔽性,8继承(Inheritance):利用继承子类可以自动的拥有父类中定义的属性和方法。,父类或超类,子类或派生类,继承性分类:单重继承、多重继承两类。单重继承:一个子类只能有一个父类;多重继承:一个子类
4、可以有多于一个的父类。,9多态性(Polymorphism):多态是指一个实体在不同条件下具有不同意义或用法的能力。10重载(Overloading):重载有两种:(1)函数重载(2)运算符重载,3种实现方式:通过接口实现多态性 通过继承实现多态性 通过抽象类实现的多态性,结构与连接,为了使系统能够有效地映射问题域,系统开发者需要认识并描述对象间的以下几种关系:(1)一般/特殊结构,(2)整体/部分结构,(3)实例连接,实例连接:反映了对象与对象间的静态关系。,(4)消息连接,消息连接:描述对象之间的动态联系。消息连接是有方向的,连接从消息发送者指向消息接受者。,1、建模的原则(1)选择建立什
5、么样的模型对如何发现和解决问题具有重要的影响。正确的模型有助于提高开发者的洞察力。,6.2 UML概述,(2)每个模型可以有多种表达方式。使用者的身份和使用的原因是评判模型好坏的关键。(3)最好的模型总是能够切合实际。模型是现实的简化,必须保证简化过程不会掩盖任何重要的细节。,(4)孤立的模型是不完整的。,5、建模的目标 通过建模,要实现以下4个目标:(1)便于开发人员展现系统。可视化visualization(2)允许开发人员指定系统的结构或行为。详述specification(3)提供指导开发人员构造系统的模板。构造construction(4)记录开发人员的决策。文档化documenta
6、tion,通用建模语言(1)自然语言、图形语言、数学语言(2)结构化建模与面向对象建模 A、基于功能的分解与基于概念的建模 B、面向对象的建模语言(50种之多)Rumbaugh(云豹):OMT Shlaer/Mellor(雪梨与米勒)Jacobson(雅克森):OOSE Booch(布什)Yourdon(尤顿):OOA/OOD Martin/Odell(马丁与奥地),建模语言,(3)统一建模语言UML 软件工程领域在1995-1997年取得前所未有的进展,其中最重要的、具有划时代意义的成果之一就是统一建模语言,UMLUnified Modeling LanguageUnified:组合了当前最
7、好的面向对象软件建模方法Grady Booch,James Rumbaugh,Ivar Jacobson,UML三位主要贡献者。1.OMT(James Rumbaugh)2.The Booch Method(Grady Booch)3.OOSE(Ivar Jacobson),Modeling:用于表达现实的简化视图,以便于面向对象软件系统的设计与实现。Language:UML主要是遵循精确语法的图形语言。,(4)应注意的问题 A、UML是一种建模语言,不是一种建模方法。遵循特定的规则、允许创建各种模型、并不告诉设计者需要创建哪些模型,不提供开发过程 B、UML并不是软件建模的专用语言。UML是
8、用于构造系统或理解系统的语言(UML既支持正向工程,又支持反向工程)、是文档化的语言。,6.2.2 UML的内容(UML的构成)(1)视图“4+1”视图 表达系统的某一方面特征的UML建模元素的子集。视图并不是图。由一个或者多个图组成的对系统某个角度的抽象。(2)图 9种图(3)模型元素 UML中的模型元素包括事物和事物之间的联系。事物描述了一般的面向对象的概念,如类、对象、接口、消息和组件等。(4)通用机制 UML提供的通用机制可以为模型元素提供额外的注释、信息或语义。,1)、用例视图 用例视图强调从系统的外部参与者角度看到的或需要的系统功能。用例图2)、逻辑视图 逻辑视图从系统的静态结构和
9、动态行为角度显示如何实现系统的功能。类图、对象图、状态图、时序图、协作图、活动图3)、组件视图 组件视图显示代码组件的组织结构。组件图4)、并发视图 并发视图显示系统的并发性,解决在并发系统中存在的通信和同步问题。状态图、协作图、活动图5)、配置视图 配置视图显示系统的具体部署。配置图 部署是指将系统配置到由计算机和设备组成的物理结构上。,(1)UML“4+1”视图,1)、用例图Use Case Diagram2)、类 图Class Diagram3)、对象图Object Diagram4)、状态图State Diagram5)、时序图Sequence Diagram6)、协作图Collabo
10、ration Diagram7)、活动图Activity Diagram8)、组件图Component Diagram9)、配置图Deployment Diagram,(2)UML的图,(3)UML的模型元素,1)、事物 UML中的事物可以分为结构事物、动作事物、分组事物和注释事物4类。(1)结构事物结构事物共有7种:类、接口、协作、用例、活动类、组件和节点。,类 对具有相同属性、方法、关系和语义的对象的抽象,一个类可以实现一个或多个接口。在UML中类用包括类名、属性和方法的矩形表示。,接口。为类或组件提供特定服务的一组操作的集合。描述了类或组件的对外可见的动作。在UML中接口用圆表示,在图形
11、旁边还要标注接口的名字。,协作。定义了交互操作。在UML中,用虚线构成的椭圆表示,椭圆中要标注协作的名字。,用例 描述系统对一个特定角色执行的一系列动作。在UML中,用例用标注了用例名称的实线椭圆表示,如下图所示。,活动类 活动类是类对象有一个或多个进程或线程的类。在UML中,活动类和类的表示法相同,只是边框用粗线条,如下图所示。,组件 实现了一个接口集合的物理上可替换的系统部分。在UML中,组件如下图所示。,节点。在运行时存在的一个物理元素。代表一个可计算的资源,通常占用一些内存和具有处理能力。一个组件集合一般来说位于一个节点。在UML中,节点如下图所示。,(2)动作事物 动作事物是UML模
12、型中的动态部分,代表时间和空间上的动作。交互和状态机是UML中最基本的两个动态事物元素。交互。一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。在UML中用带箭头的直线来表示。,状态机。状态机由一系列对象的状态组成。在UML中,状态如下图所示。,(3)分组事物 分组事物是UML模型中组织的部分,分组事物只有一种,称为包。包是一种有组织地将一系列元素分组的机制。在UML中包的图形如下图所示。,(4)注释事物 注释事物是UML模型的解释部分。在UML中注释事物的图形如下图所示。,2)、关系(1)关联关系指一种对象和另一种对象有联系。,(2)依赖关系 对于两个对象X、Y,
13、如果对象X发生变化,可能会引起对另一个对象Y的变化,则称Y依赖于X。,(3)泛化关系UML中的泛化关系定义了一般元素和特殊元素之间的分类关系,(4)实现关系实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,(5)聚合关系聚合关系描述元素之间部分与整体的关系。,1)、修饰 可以将图形修饰附加到UML图中的模型元素上。为图中的模型元素增加语义。(粗体、下划线等)2)、注释 添加不能用建模语言来表示的信息UML的注释功能。注释:以自由的文本形式出现的,信息类型是不被UML解释的字符串。在UML图中用一条虚线将注释连接到它为之解释的或细化的元素上。,(4)UML的通用机制,3)、规格说
14、明 例如:文档、职责、永久性、并发性4)、通用划分 型实例:接口实现:5)、扩展机制 允许自定义一些构造型语言成分。3种主要的扩展组件:构造型、标记值 和约束。扩展特性使得UML的应用不仅仅局限于软件建模。,6.3 UML图,用例图类图对象图状态图时序图(顺序图)活动图协作图组件图(构件图)配置图(部署图),用例图,1、概 述,用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务,用来为系统的功能建模最常用来描述系统以及子系统,用例图的概念,用例图包含6个元素参与者(Actor)用例(Use Case)关联关系(Association)包含关系(Include)扩展
15、关系(Extend)泛化关系(Generalization),关系,参与到系统中的“对象”,系统功能,2、参与者(Actor),参与者系统外部的一个实体。参与用例的执行过程。通过向系统输入或请求系统输入某些事件来触发系统的执行。,(1)概念,是指在系统外部与系统交互的人或其他系统,它以某种方式参与系统内用例的执行。,“与系统交互”是指执行者向系统发送消息、或从系统接受消息,或与系统交换信息。,注意由参与用例时所担当的角色来表示。每个参与者可以参与一个或多个用例。,参与者的种类系统用户与所建造的系统交互的其他系统一些可以运行的进程,“人”,如在企业“财务管理系统”,“资金流动”,“进、销、存管理
16、系统”,时间,(2)确定参与者,如何寻找系统的参与者 谁将使用该系统的主要功能谁将需要该系统的支持以完成其工作谁将需要维护、管理该系统,以及保持该系统处于工作状态系统需要处理哪些硬件设备与系统交互的是什么系统谁或什么系统对本系统产生的结果感兴趣,(3)参与者间的关系,在用例图中,使用泛化关系来描述多个参与者之间的公共行为。,参与者间的泛化关系示例:,3、用 例,(1)概念用例外部可见的系统功能单元 用途在不揭示系统内部构造的前提下定义连贯的行为这些行为不但应包含正常使用的各种行为,而且应包括非正常使用时的各种行为 一个用例代表软件系统功能的划分,代表系统角色和系统的一次交互不是需求或功能的规格
17、说明,但是也展示和体现其所描述的过程中的需求情况,用例的名称简单名:用例名路径名:包名:用例名,(2)识别用例从分析系统的参与者开始,考虑每个参与者是如何使用系统的 如何识别用例(1)特定参与者希望系统提供什么功能。(2)系统是否存储和检索信息,如果是,由哪个参 与者触发。(3)当系统改变状态时,是否通知参与者(4)是否存在影响系统的外部事件。(5)哪个参与者通知系统这些事件。,(3)用例与事件流事件流从用户角度描述执行用例的具体步骤简要说明:描述用例的作用前提条件:用例之前必须要满足的条件主事件流和其他事件流:用例的具体细节事后条件:用例执行完后必须为真的条件,4、用例间的关系,1 关联关系
18、2 包含关系3 扩展关系4 泛化关系,关联关系表示参与者和用例之间进行通信。不同的参与者可以访问相同的用例。,用例间的关联关系示例,包含关系客户用例可以简单地包含提供者用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。在具有包含关系的两个用例中,提供者用例不能单独存在,它只能以实例的形式存在于客户用例之中。包含关系使得一个用例的功能可以在另一个用例中使用。,扩展关系扩展用例被定义为基础用例的增量扩展,扩展关系是把新的行为插入到已有用例中的方法。基础用例提供扩展点以添加新的行为。基础用例可以独立于扩展用例单独存在。基础用例即使没有扩展用例也是完整的,这点与包含关系有所不同。,用例间的扩
19、展关系示例,学校学分管理系统用例图中的包含、扩展关系,泛化关系父用例也可以被特别列举为一个或多个子用例。子用例表示父用例的特殊形式。子用例从父用例处继承行为和属性,还可以添加行为或覆盖、改变继承的行为。体现了用例共同行为和特殊行为的关系。,一个饮用水自动售水系统实例,例6.1 饮用水自动售水系统使用方法:供水正常:绿灯亮,等待顾客投币投一个一元硬币,自动放水5升投一个五角硬币,自动放水2.5升投两个五角硬币,自动放水5升供水不足:红灯亮,要求顾客等待将已经投入的硬币退出供水恢复:红灯灭,绿灯亮硬币回收:收银员定期收回顾客投入的硬币,一个ATM系统实例,建立一个具有基本功能的ATM机软件,客户可
20、以存钱,取钱客户可以查询节余客户可以修改密码客户可以使用信用卡付帐,需求分析的第一步确定系统能够做什么?谁来使用这个系统?用例图显示用例(表示系统功能)与角色(表示提供或者接收系统信息的人或系统)之间的交互。用户,项目管理员,分析人员,开发人员质保人员都可以通过用例图了解系统功能。,用例“取钱”的事件流,简要说明:客户可以从ATM机上取出自己帐目上的部分或者全部存款。前提条件:无 主事件流:客户将卡插入ATM机,开始用例。ATM显示欢迎消息并提示客户输入密码。客户输入密码。ATM确认密码有效。如果无效则执行其他事件流A1。如果与主机联接有问题,则执行异常事件流E1。,5.ATM提供以下选项:存
21、钱,取钱,查询。6.用户选择取钱选项。7.ATM提示输入所取金额。8.用户输入所取金额。9.ATM确定该帐户是否有足够的金额。如果余额不够,则执行A2,如果与主机联接有问题,则执行异常事件流E1。10.ATM从客户帐户中减去所取金额。11.ATM向客户提供要取的钱。12.ATM打印清单。13.ATM退出客户的卡,用例结束。,其他事件流A1:输入无效密码 ATM告诉客户该密码错误。ATM退出客户的卡,用例结束。其他事件流A2:余额不足ATM告诉客户该帐户余额不足。ATM退出客户的卡,用例结束。异常事件流E1:联接主机出现错误ATM告诉客户联接主机出现错误。ATM在错误日志记下错误。ATM退出客户
22、的卡,用例结束。事后条件:无,ATM系统的用例图,论 坛,网上论坛主要包括:用户注册、登录、签写留言、回复留言、留言查看和管理员维护等功能。本系统应该具有处理下面这些的业务的能力:1.用户功能需求:用户注册、用户登录、签写留言、回复留言、查看留言2.管理员功能需求:用户登录、签写留言、回复留言、查看留言、删除留言,习 题,一台饮料自动售货机能提供6种不同的饮料,售货机上有6个按钮,分别对应于这6种饮料,顾客可通过按钮来选择所要的饮料。每个按钮旁边有一个指示灯,用来表明该售货机中是否还有这种饮料可售。售货机有一个硬币槽和找零槽,用来收钱和找钱。请给出描述上述场景的用例图。,类图和对象图,类图例子
23、,类图的概念,描述类、接口、协作及它们之间关系的图。显示系统中各个类的静态结构。,1、概述,类图的元素:类(Class)接口(Interface)协作(Collaboration)依赖关系(Dependency)泛化关系(Generalization)关联关系(Association)实现关系(Realization),2、类,面向对象系统组织结构的核心类。对一组具有相同属性、操作、关系和语义的对象的抽象。包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。,1 名称2 属性3 操作4 职责5 约束6 注释,类中的信息,1、名称,应该来自系统的问题域。应该
24、是一个名词,且不应该有前缀或后缀。分为简单名称和路径名称。,唯一,2、属性,描述了类在软件系统中代表的事物(即对象)所具备的特性。类可以有任意数目的属性,也可以没有属性。在UML中,类属性的语法为:,1)可见性2)属性名3)类型4)初始值5)属性字符串,(1)可见性,属性的可见性类型:公有(Public)“”私有(Private)“”受保护(Protected)“”实现(Implementation)“”,(2)属性名,每个属性都必须有一个名字以区别于类中的其他属性。属性名由描述所属类的特性的名词或名词短语组成。单字属性名小写,如果属性名包含了多个单词,这些单词要合并,且除了第一个单词外其余单
25、词的首字母要大写。,(3)类型,简单类型:整型布尔型实型枚举类型系统中的其他类,不同编程语言有不同定义,属性可以使用任意类型,(4)初始值,目的:保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。为用户提供易用性。,(5)属性字符串,指定关于属性的其他信息。任何希望添加在属性定义字符串值但又没有合适地方可以加入的规则,都可以放在属性字符串里。,对类的对象所能做的事务的抽象。一个类可以有任意数量的操作或者根本没有操作。返回类型、名称和参数一起被称为操作签名。在UML中,类操作的语法为:,3、操作,1)可见性2)操作名3)参数表4)返回类型5)属性字符串,(1)可见性,类型:公有(Pub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 软件工程 06 方法 UML
链接地址:https://www.31ppt.com/p-2725509.html