




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程软件工程第七章第七章 面向对象方法基础面向对象方法基础软件工程软件工程面向对象方法概述面向对象方法概述l软件开发过程l传统软件开发过程问题空间问题空间(现实世界现实世界)解空间解空间(软件系统软件系统)问题空间问题空间(现实世界现实世界)解空间解空间(软件系统软件系统)复杂映射复杂映射软件工程软件工程面向对象方法概述面向对象方法概述l传统软件开发方法存在的问题l传统软件开发方法无法实现从问题空间到解空间的直接映射;l传统软件开发方法无法实现高效的软件复用;l传统软件开发方法难以实现从分析到设计的直接过渡。复杂转换复杂转换分析文档分析文档(DFD)设计文档设计文档(SC)软件工程软件工程
2、面向对象方法概述面向对象方法概述l面向对象方法OOSD (Object-Oriented Software Development)是一种把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。实体实体1实体实体2实体实体n对象对象1对象对象n对象对象2面向对象面向对象=对象对象+类类+继承继承+通信通信软件工程软件工程面向对象方法特点面向对象方法特点l对软件开发过程所有阶段进行综合考虑,使问题空间与解空间具有一致性,降低复杂性;l软件生存周期各阶段所使用的方法、技术具有高度的连续性,用符合人类认识世界的思维方式来分析、解决问题;l将OOA、OOD、OOP有机地集成在一起,有利于系统的稳定
3、性;l由于对象所具有的封装性和信息隐蔽,具有很强的独立性和良好的可重用性。软件工程软件工程面向对象的基本概念面向对象的基本概念l对象(Object)l类(Class)l继承(Inheritance)l消息(Message)l多态性(Polymorphism)软件工程软件工程对象对象(ObjectObject)l对象是客观事物或概念的抽象表述,即对客观存在的事物的描述统称为对象。l对象可以是事、物或抽象概念,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体。l有形的实体;l作用;l事件;l性能说明。软件工程软件工程对象(对象(ObjectObject)l对象由属性和方法组成l属性(a
4、ttribute):对象本身的性质;l方法(method):改变属性状态的各种操作。l对象之间的联系通过传递消息实现;l对象将自身属性和操作包装起来,称为封装;软件工程软件工程类(类(ClassClass)l类又称对象类(Object Class),是一组具有相同属性和相同操作的对象的集合。l类是对象的模版,每个对象都是类的实例;l类具有属性,用数据结构来描述类的属性。l类具有操作,它是对象的行为的抽象,操作实现的过程称为方法(method) ,方法有方法名、方法体和参数。软件工程软件工程对象和类的描述对象和类的描述l类和对象一般采用“名字”、“属性”和“运算”来描述。几何对象几何对象颜色颜色
5、位置位置移动(移动(delta:矢量)矢量)选择(选择(P:指针型)指针型):布尔型布尔型旋转旋转(角度角度)人人姓姓 名名:字符串字符串年年 龄龄: 整整 型型改换工作改换工作改换地址改换地址文件文件文件名文件名文件大小文件大小最近更新日期最近更新日期打印打印类名类名属性属性运算运算 类类(人人)张红兵张红兵28改做绘图员改做绘图员改为人民路改为人民路8号号(人人)李军李军27改做程序员改做程序员无无 对象对象软件工程软件工程继承(继承(InheritanceInheritance)l继承是使用现存的定义作为基础,建立新定义的技术,是父类和子类之间共享数据结构和方法的机制,是类之间的一种关系
6、。l继承分为单重继承和多重继承l单重继承:一个子类只有一个父类。l多重继承:一个子类可有多个父类。现存类定义现存类定义父类父类( (父类父类) )新类定义新类定义子类子类( (派生类派生类) )继继 承承父类父类子类子类A子类子类B软件工程软件工程消息(消息(MessageMessage)l消息就是向对象发出的服务请求(互相联系、协同工作等)。对象之间的联系可表示为对象间的消息传递,即对象间的通信机制。l一个消息应该包含:消息名、接收消息对象的标识、服务标识 、消息和方法、输入信息、回答信息。软件工程软件工程多态性(多态性(PolymorphismPolymorphism)l多态性是指相同的操
7、作、函数、过程作用于不同的对象上并获得不同的结果。l重载(Overload)l指对特殊类中继承来的属性或操作进行重新定义;l动态绑定(Dynamic Binding)l也称动态联编,指在运行时根据对象所接收的消息,动态地确定要连接的服务代码;使用虚拟函数可实现动态联编。软件工程软件工程多态性举例多态性举例l 实现多态性的基本步骤:l在父类中,定义成员函数为虚函数;l定义父类的公有(public)派生类;l在父类的公有派生类中“重载”该虚函数;l定义指向父类的指针变量,它指向父类的公有派生类的对象。软件工程软件工程多态性举例多态性举例#include class figure /定义父类定义父类
8、 protected: double x,y; public: void set_dim(double i; double j=0) x=i; y=j; virtual void show_area() /定义虚函数定义虚函数 cout“No area computation define ”; coutset_dim(10.0,5.0); p-show_area(); p= &s; / 指向矩形对象指向矩形对象 p-set_dim(10.0,5.0); p-show_area(); p=&c; / 指向圆形对象指向圆形对象 p-set_dim(9.0); p-show_area(); 软件工
9、程软件工程面向对象的分析面向对象的分析l面向对象分析就是抽取和整理用户需求并建立问题域精确模型的过程。l基本任务:l分析问题域,确定类和对象;l定义类或对象属性和操作,确定其结构;l建立系统中类或对象之间的静态联系和动态联系。软件工程软件工程面向对象的分析面向对象的分析获取用户基本需求获取用户基本需求标识类和对象标识类和对象定义类的结构和层次定义类的结构和层次表示类表示类( (对象对象) )间的关系间的关系为对象行为建模为对象行为建模软件工程软件工程面向对象的分析面向对象的分析l由3个独立模型构成:l用例模型:由用例和场景表示的功能模型;l对象模型:由类和对象表示的静态模型;l交互模型:由状态
10、图和顺序图表示的动态模型。l对象模型的5个层次l主题层l类-对象层l结构层l属性层l服务层软件工程软件工程面向对象的分析面向对象的分析建立用例模型建立用例模型l建立用例模型过程:l确定业务参与者:标示目标系统将支持的不同类型的用户,可以是人、事件或其他系统;l确定业务需求用例:参与者需要系统提供的完整功能;l创建用例图:标示参与者与用例之间、用例与用例之间的关系。软件工程软件工程面向对象的分析面向对象的分析建立对象模型建立对象模型l划分主题l确定类与对象l找出候选的类与对象;l筛选出正确的类与对象;l区分实体类、边界类和控制类;l确定关联l确定属性l确定服务软件工程软件工程面向对象的分析面向对
11、象的分析建立动态模型建立动态模型l顺序图l按照时间顺序显示对象之间的交互关系;l协作图l也成通信图,用于描述相互协作的对象间的交互关系;l状态图l由对象的各个状态和连接这些状态的转换组成;软件工程软件工程面向对象分析的特点面向对象分析的特点l有利于对问题及系统责任的理解l有利于人员之间的交流l对需求变化有较强的适应性l支持软件复用软件工程软件工程面向对象的设计面向对象的设计l 面向对象设计是将面向对象分析所创建的分析模型转换为设计模型,解决“如何做”的问题。l 主要任务l体系结构设计l水平层次组织:封闭式、开放式l垂直块状组织l子系统设计:问题域子系统、人机交互子系统、任务管理子系统、数据管理
12、子系统l对象设计及优化l接口设计(或人机交互设计)l数据设计l类设计软件工程软件工程面向对象的设计原则面向对象的设计原则l模块化l抽象l信息隐藏l弱耦合l强内聚l服务内聚:一个服务完成且仅完成一个功能;l类内聚:一个类应只有一个用途;l一般-特殊内聚:设计出一般-特殊结构,应是对相应知识领域的正确抽取;l可重用l尽量使用已有的类;l创建新类时考虑将来的可复用性。软件工程软件工程BoochBooch方法方法lBooch开发模型包含l静态模型:描述系统的构成和结构l逻辑模型l物理模型l动态模型:描述对象之间的相互作用l状态图l时序图l开发过程l标识类和对象;l标识类和对象的语义;l标识类和对象之间
13、的关系;l实现类和对象。软件工程软件工程BoochBooch方法的基本模型方法的基本模型l类图类名类名类名类名父类父类子类子类(a) 关联(b) 继承整体类整体类成员类成员类请求服务类请求服务类提供服务类提供服务类(c) 包含(d) 使用控制环境控制环境冷气冷气管理计划管理计划暖气暖气灯光灯光温度温度执行机构执行机构1 11 11 1N N温室管理系统的类图软件工程软件工程BoochBooch方法的基本模型方法的基本模型l对象图对象对象1 1对象对象2 2编号:消息名编号:消息名对象图的表示: :计划分析计划分析计划度量计划度量1:收获时间:收获时间(C)C:C:谷物谷物: :计划管理计划管理
14、3:成熟时间:成熟时间()6:成本成本( )5:作物作物:产量产量4:产量产量( )2:状态状态( )温室管理系统的对象图软件工程软件工程BoochBooch方法的基本模型方法的基本模型l 状态图状态状态1状态状态2事件名事件名/操作操作状态图的表示空闲空闲白天白天定义气候定义气候夜晚夜晚日落日落日出日出终止气候终止气候温度上升温度上升/调温调温( )温度下降温度下降/调温调温( )环境控制器类的状态图软件工程软件工程BoochBooch方法的基本模型方法的基本模型l时序图用户用户对象对象1对象对象2 用户服务请求用户服务请求 内部服务请求内部服务请求 服务返回服务返回 服务返回服务返回温室管
15、理系统的时序图软件工程软件工程BoochBooch方法的基本模型方法的基本模型l 模块图l 进程图 气候气候温室管理系统的模块图温室工作站温室工作站温室温室A温室温室B温室温室C温室管理系统的进程图软件工程软件工程Coad/YourdonCoad/Yourdon方法方法lOOA:建立问题域的分析模型类与对象层类与对象层属性层属性层服务层服务层结构层结构层主题层主题层类的边界类的边界实例的边界实例的边界属性属性实例连接实例连接服务服务消息连接消息连接泛化与特化结构泛化与特化结构整体与部分结构整体与部分结构主题主题软件工程软件工程Coad/YourdonCoad/Yourdon方法方法lOOA主要
16、活动:l类和对象的认定;l结构的认定:描述类及对象之间的结构关系;l主题的认定;l定义属性;l定义服务。软件工程软件工程Coad/YourdonCoad/Yourdon方法方法lOOD:在OOA模型5个层次基础上,建立系统的4类组元。 PDC问题域问题域 组元组元 HIC人机界面人机界面 组元组元 TMC任务管理任务管理 组元组元 DMC数据管理数据管理 组元组元主题层对象层结构层属性层服务层Coad/Yourdon方法的OOD模型软件工程软件工程Coad/YourdonCoad/Yourdon方法方法lOOD主要活动:l设计问题域组元(problem domain component)l设计
17、人机界面组元(human interaction component)l设计任务管理组元(task management component) l设计数据管理组元(data management component) 软件工程软件工程对象模型技术(对象模型技术(OMTOMT)l基本概念l 对象模型:描述了由对象和相应实体构成的系统静态结构,描述了系统中对象的标识、属性、操作及对象的相互关系。l动态模型:根据事件和状态描述了系统的控制结构,系统中与时间和操作顺序有关的内容。l函数模型:着重描述系统中与值的转换有关的问题,如函数、映射、约束和函数作用等。软件工程软件工程对象模型技术(对象模型技术(
18、OMTOMT)l建立对象模型类名类名属性属性操作操作 类类 名名属性名属性名(1),数据类型数据类型1默认值默认值1属性名属性名(2),数据类型数据类型2默认值默认值2 操作名操作名1(变量名变量名1) :结果类型:结果类型1操作名操作名2(变量名变量名2) :结果类型:结果类型2 (类名)(类名)对象名对象名属性属性操作操作对象名对象名类名类名类与对象的描述软件工程软件工程对象模型技术(对象模型技术(OMTOMT)l类之间、对象之间的关系l关联与链的关系l关联:描述两个或多个类之间的关系l链:是关联的实例l二元关联、三元关联人员人员公司公司雇用雇用二元关联的例(人员)(人员)张涛张涛(公司)(公司)通大通大雇用雇用链的例子项目项目语言语言人人(项目项目)CAD系统系统(语言语言) C 语言语言(人人)林珩林珩三元关联的例链的例子软件工程软件工程对象模型技术(对象模型技术(OMTOMT)l受限关联l用重数、链属性和角色进一步描述直线直线名称名称点点名称名称相交相交2+人人公司公司公司公司名字名字个人个人名字名字工作工作职务职务工资工资雇佣雇佣雇雇主主雇雇员员软件工程软件工程对象模型技术(对象模型技术(OMTOMT)l 继承性通常又称为概括,表示基类与子类的关系。运输工具运输工具陆上运输工具陆上运输工具水上运输工具水上运输工具汽车汽车水陆两用车水陆两用车船船继承
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国广电抚州市2025秋招综合管理类专业追问清单及参考回答
- 酒泉市中石化2025秋招面试半结构化模拟题及答案炼油设备技术岗
- 甘肃地区中石化2025秋招笔试行测50题速记
- 韶关市中储粮2025秋招面试专业追问题库安全环保岗
- 成都市中储粮2025秋招笔试粮食政策与企业文化50题速记
- 2025年防汛调度考试题及答案
- 国家能源阜新市2025秋招心理测评常考题型与答题技巧
- 国家能源松原市2025秋招财务审计类面试追问及参考回答
- 中国联通内蒙古地区2025秋招心理测评常考题型与答题技巧
- 中国移动资阳市2025秋招技能类专业追问清单及参考回答
- 《分众传媒公司介绍》课件
- 物资编码基础知识
- 管桩试桩方案
- 血液科医师晋升副(主)任医师难治性伯基特淋巴瘤病例分析专题报告
- 癌性疼痛中西医结合诊疗指南
- 冷库建设工程施工进度计划及保证措施
- 建筑设计行业2024年财务挑战解析
- 慢性病防治健康教育知识讲座
- 中国石化加油站视觉形象(VI)标准手册-课件
- 退费账户确认书
- 国家开放大学《政治学原理》章节自检自测题参考答案
评论
0/150
提交评论