软件工程4-史济民._第1页
软件工程4-史济民._第2页
软件工程4-史济民._第3页
软件工程4-史济民._第4页
软件工程4-史济民._第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、湘 潭 大 学中篇:面向对象软件工程中篇:面向对象软件工程第4章 面向对象与UML第5章 需求工程与需求分析第6章 面向对象分析第7章 面向对象设计第8章 编码与测试第第4 4章章 面向对象与面向对象与UMLUML面向对象概述UML简介静态建模动态建模物理架构建模UML工具v面向对象是以问题空间中出现的事物为中心进行模型化的一种技术。vUML是OO软件工程使用的统一建模语言,是一种图形化的语言。v对象的概念v对象代表客观世界中实际或抽象的事物,每个对象都包含一定的特征和服务功能。 v客观世界是由各种对象组成的,对象可以分解,复杂对象可以由比较简单的对象构成。 v计算机世界,对象定义为数据以及在

2、其上的操作的封装体。是客观世界在计算机中的逻辑表示。v一个对象是具有唯一对象名和固定对外接口的一组属性和操作的集合。v属性表示对象的静态特征;v方法或操作描述对象的动态行为;v对外接口是对象与外界通信的通道,对象之间通过消息的传递相互作用。v类的概念v类是一组相似的对象的共性抽象,是创建对象的模板。v在现实世界,类是一组客观对象的抽象。v在计算机世界,类是实现抽象数据类型的工具。 v类与对象的关系v抽象与具体的关系;v组成类的每个对象都是该类的实例 ;v实例是类的具体事物;v类是各个实例的综合抽象。面向对象的基本特征面向对象的基本特征 抽象 在某个重要的或想关注的方面来表示某个物体或概念。 忽

3、略主题中与当前目标无关的方面。 封装 把操作和数据包围起来,对数据的访问只通过已定义的接口来完成。 继承 类之间的“is a”或“is like”关系。 类层次,定义一个新类,可以从现有的类中派生出来。 子类可以从父类继承方法和属性。 多态 不同类的对象可以对同一消息作出响应,执行不同的处理。 面向对象开发的优点面向对象开发的优点 面向对象符合人类习惯的思维方式 OO开发的优点 提高软件系统的可复用性 提高软件系统的可扩展性 提高软件系统的可维护性 4.2 UML4.2 UML简介简介 Unified Modeling Language(统一建模语言) 近10多年来OOSE最重要的成果 贡献者

4、:Grady Booch, Ivar Jacobson,Jim Rumbaugh 中文网站 http:/www. http:/UMLUML的组成的组成1. UML的模型元素,有两类: 一类表示模型中的某个概念一类表示模型中的某个概念 类类 对象对象 构件构件 用例用例 结点(结点(nodenode) 接口(接口(interfaceinterface) 包(包(packagepackage) 注释(注释(notenote) UMLUML的组成的组成 一类表示模型元素之间的关系一类表示模型元素之间的关系 关联、泛化、依赖、实现、聚集和组合。关联、泛化、依赖、实现、聚集和组合。 关联:模型元素实例之

5、间的固定对应关系,永久的关联:模型元素实例之间的固定对应关系,永久的结构关系。结构关系。 泛化:表示一般与特殊的关系,泛化:表示一般与特殊的关系,“一般一般”元素是元素是“特殊特殊”元素的泛化,元素的泛化, “ “特殊特殊”元素是元素是“一般一般”元素的特化。元素的特化。 依赖:表示一个元素以某种方式依赖于另一个元素,依赖:表示一个元素以某种方式依赖于另一个元素,为短暂性关系。为短暂性关系。 实现:表示接口和实现它的模型元素之间的关系。实现:表示接口和实现它的模型元素之间的关系。 聚集:表示聚集:表示“整体整体”与与“部分部分”关系,关系, “ “部分部分”元素是元素是“整体整体”元素的一部分

6、。元素的一部分。 组合:表示组合:表示“整体整体”与与“部分部分”关系,关系,“部分部分”不不能独立于能独立于“整体整体”而存在。而存在。UMLUML的组成的组成2. UML的元模型结构(四个层次) 元元模型层:元元模型定义用于描述元模型的语言,是任何模型的基础。 元模型层:元模型定义了用于描述模型的语言,组成了UML的基本元素,包括面向对象和构件的概念。元模型是元元模型的一个实例。 模型层:模型定义了用于描述信息领域的语言,组成了UML的模型。 用户模型层:用户模型是模型的实例,用于表达一个模型的特定情况。 下一层是上一层的基础,上一层是下一层的实例。用户模型元模型模型元元模型3. 图和视图

7、 UML用模型描述系统的结构或静态特征以及行为或动态特征。 UML从不同的视角为系统建模,形成不同的视图,每个视图由一组图构成,图中包含了强调系统中某一方面的信息,显示了系统中某一特定的方面。UMLUML的组成的组成 图是系统架构在某个侧面的表示,有两类: 静态图1. 用例图:描述系统功能;2. 类图:描述系统的静态结构;3. 对象图:描述系统在某个时刻的静态结构;4. 构件图:描述实现系统的元素的组织;5. 部署图:描述系统环境元素的配置,也称配置图。 动态图1. 状态图:描述系统元素的状态条件和响应;2. 时序图:按时间顺序描述系统元素间的交互;3. 协作图:按照连接关系描述系统元素间的交

8、互;4. 活动图:描述系统元素的活动流程。 UMLUML的组成的组成 视图1. 用例视图:从用户的角度看到的系统应有的外部功能。用用例图描述,用活动图进一步描述其中的实例。 2. 逻辑视图:描述系统的静态结构和对象间的动态协作关系。静态结构用类图和对象图描述,动态行为用状态图、时序图、协作图和活动图表示。3. 进程视图:展示系统的动态行为及其并发性。用状态图、时序图、协作图、活动图、构件图和部署图表示。4. 构件视图:展示系统实现的结构和行为特征。用构件图表示。5. 部署视图:显示系统的实现环境和构件被部署到物理结构中的映射。用部署图描述。UMLUML的特点的特点 统一标准 面向对象 表达能力

9、强大 可视化UMLUML的应用的应用 用于描述系统开发的不同类型于不同阶段,从需求分析到软件设计到软件测试及维护。 主要作用: 可视化问题描述,帮助理解问题。 帮助建立各阶段的文档。 获取和交流有关应用问题求解的知识。 辅助构建系统。4.3 4.3 静态建模静态建模 UML的静态建模机制包括用例图、类图和对象图。 用例模型 用例图表示 从最终用户的角度描述系统功能 类和对象模型 类图和对象图表示 表示系统的静态结构用例图与用例模型用例图与用例模型 用例图的组成符号系统名称系统边界用例名用例参与者关联建立用例图建立用例图 保险商务系统用例图保保险险商商务务系系统统签定保险单销售统计客户统计客户保

10、险销售员用例之间的关系用例之间的关系 用例之间主要存在两种关系: 扩展关系 根据指定的条件,一个用例中有可能加入另一个用例的动作。 包含关系 一个用例的行为包含另一个用例的行为 ,可把若干用例的相同行为抽取成单独一个用例,即抽象用例。扩展签保险单签汽车购买合同使用使用签保险单签汽车保险单签房屋保险单类图类图Class DiagramClass Diagram 类图表示类以及类之间的关系。学生姓名:string学号:string书书名:string价格:real 1 购买 0.* 属于类名属性(可省略)方法(可省略) 类属性的语法:可见性 属性名:类型=默认值约束特性 可见性:Public(+)

11、, Private(-), Protected(#) Public(+)表示所以的对象都可以访问; Private(-)表示只有类本身的对象可以访问; Protected(#)表示类本身及其子类的对象可以访问。 方法(操作)的语法:可见性 操作名(参数表):返回类型约束特性对象图对象图Object DiagramObject Diagram 对象是类的实例,对象图可看做是类图的实例,对象之间的链是类之间的关联的实例。对象图常用于表示复杂的类图的一个实例。王平:学生姓名:王平学号:020106英语:书书名:英语价格:26.5数学:书书名:数学价格:21.8对象名属性值链类图表示类间关系类图表示类

12、间关系 关联关系 (Association) 类之间存在的语义上的关系 普通关联、递归关联、多重关联等 关联类 两个类之间的关联是多对多时,可以把该关联定义成关联类。关联类也可以有属性、操作和其他的关联。 聚集关系(Aggregation) 特殊的关联:整体-部分 组合关系(Composition) 特殊的聚集:整体强烈拥有部分 泛化关系(Generalization) 继承 依赖关系(Dependency) 对一个类/对象的修改会影响另一个类/对象关联关系关联关系1.*工人管理老板0.1员工递归关联 机器产品三重关联 工人角色名角色名学生姓名:string学号:string书书名:strin

13、g价格:real普通关联 关联类关联类用户工作站授权优先级特权0* 授权 0.*聚集和组合聚集和组合 一般聚集也称共享聚集,特征是“部分”对象可以是多个任意“整体”对象的一部分。成员课题组个人聚集关系窗口标题外框显示区组合关系泛化关系泛化关系 泛化也称为继承,UML对泛化有3个要求: 一般元素所具有的关联、属性和操作,特殊元素也都隐含地具有。 特殊元素应包含额外信息。 允许使用特殊元素实例的地方,也应能使用一般元素。泛化又分为普通泛化和限制泛化。泛化关系泛化关系交通工具abstract船车轿车卡车客车依赖关系依赖关系 设X,Y是两个元素,如果修改X的定义可能会引起对Y的定义的修改,则称Y依赖于

14、X。例如某个类中使用另一类的对象作为操作中的参数等。 图中是类B依赖类A。类B类A约束与派生约束与派生 约束和派生机制能应用于任何模型元素 用花括号括起放在模型元素旁边 典型的属性约束是该属性的取值范围 派生属性可由其它属性通过某种方式计算得到,通常在派生属性前面加一个“/”表示 关联关系可以被约束,也可以被派生 类图的例子类图的例子包图包图 包是UML将一些模型元素组织成语义上相关的组的分组机制。形成一个高内聚、低耦合的类的集合。包之间的关系可以是依赖和泛化。子系统A子系统D子系统B子系统C子系统E子系统F4.4 4.4 动态建模动态建模 UML也提供了描述系统动态行为的图形工具,用于描述系

15、统中的对象在执行期间的不同时间点是如何进行动态交互的。 消息(Message) 状态图(State Diagram) 时序图(Sequence Diagram) 协作图(Collaboration Diagram) 活动图(Activity Diagram)消息消息 消息类型: 简单消息:表示简单的控制流,描述控制如何在对象间传递,不考虑通信的细节。 同步消息:表示嵌套的控制流。操作的调用是一种典型的同步消息。调用者发出消息后必须等待消息返回,只有当处理消息的操作执行完毕后,调用者才能继续执行自己的操作。 异步消息:表示异步控制流。当调用者发出消息后,不用等待消息的返回即可继续自己的操作。同步

16、消息异步消息简单消息状态图状态图图3.7 状态图中使用的主要符号状态1状态变量1活动表1状态2状态变量2活动表2事件表达式状态图状态图State DiagramState Diagram超时到达下楼上楼到达上楼到达在底楼向上移动向底楼移动向下移动空闲状态图之间发送消息状态图之间发送消息Off()play()stop()On()CD机Off()/stop()stop()Off()On()stop()play()On()Off()遥控器关开关 开/停止开/播放play()时序图(时序图(Sequence DiagramSequence Diagram) 时序图:着重体现对象间消息传递的时间顺序。消

17、息可时序图:着重体现对象间消息传递的时间顺序。消息可以是信号或操作调用。以是信号或操作调用。打印机忙保存文件打印机就绪打印文件打印文件打印文件计算机打印服务器打印队列打印机对象对象生命线对象激活消息条件表达式协作图(协作图(Collaboration DiagramCollaboration Diagram) 协作图:描述对象间的交互和链接。与时序图着重体现交互的时间顺序不同,协作图着重体现交互对象间的静态链接。 消息串的语法规则:前缀前缀 守卫条件守卫条件 序列表达式序列表达式 返回值:返回值:= =说明说明打印机忙2.2:保存文件打印机就绪2.1:打印文件1:打印文件计算机打印队列打印服务

18、器打印机消息流消息串链活动图活动图Activity DiagramActivity Diagram 活动图:显示动作流程及其结果。描述操作的行为或用例和对象内部的工作过程。购买处理顾客 销售部门 处理销售支付货款库存处理发送商品收取商品水未开水开了打开信号接通电源加热显示灯亮水壶断电网上购物活动图电水壶烧水的活动图4.5 4.5 物理架构建模物理架构建模 逻辑架构和物理架构 物理架构详细描述系统的软件和硬件,试图有效地利用软硬件资源,并解决以下问题: 类和对象物理上分布在哪一个程序或进程中。 程序或进程在哪台计算机上运行。 系统中有哪些计算机和其他硬件,它们是如何连接的。 不同的代码之间有何关联,如果一个文件有改变,其他文件是否需要重新编译。 构件图 配置图构件图构件图Compone

温馨提示

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

评论

0/150

提交评论