欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    面向对象分析与设计精选文档.ppt

    • 资源ID:52094832       资源大小:4.65MB        全文页数:108页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象分析与设计精选文档.ppt

    面向对象分析与设计1 1本讲稿第一页,共一百零八页第一章第一章 绪论绪论1.1 1.1 面向对象方法基本思想面向对象方法基本思想1.2 1.2 面向对象方法发展简史面向对象方法发展简史1.3 1.3 面向对象方法的基本概念和原则面向对象方法的基本概念和原则1.4 1.4 面向对象软件系统模型面向对象软件系统模型2 2本讲稿第二页,共一百零八页1.1 1.1 面向对象方法基本思想面向对象方法基本思想 以以功能为中心功能为中心的软件开发方法(结构化方法)的软件开发方法(结构化方法)以以数据为中心数据为中心的软件开发方法(信息建模方法)的软件开发方法(信息建模方法)低内聚,高耦合,缺乏灵活性和可维护性低内聚,高耦合,缺乏灵活性和可维护性分析与设计阶段采用的概念和表示不一致分析与设计阶段采用的概念和表示不一致对功能的处理较弱,不适合具有复杂功能的对功能的处理较弱,不适合具有复杂功能的系统系统3 3本讲稿第三页,共一百零八页n n以事物为中心以事物为中心以事物为中心以事物为中心 将数据与对数据的操作看作一个整体,即对象将数据与对数据的操作看作一个整体,即对象将数据与对数据的操作看作一个整体,即对象将数据与对数据的操作看作一个整体,即对象n n是一种认识论、方法论是一种认识论、方法论是一种认识论、方法论是一种认识论、方法论n n是一种运用是一种运用是一种运用是一种运用对象、类、继承、封装、聚合、关联、对象、类、继承、封装、聚合、关联、对象、类、继承、封装、聚合、关联、对象、类、继承、封装、聚合、关联、消息和多态性消息和多态性消息和多态性消息和多态性等概念和原则来构造系统的软件开发方等概念和原则来构造系统的软件开发方等概念和原则来构造系统的软件开发方等概念和原则来构造系统的软件开发方法,其要点是法,其要点是法,其要点是法,其要点是 (1 1)认识事物及其相互关系)认识事物及其相互关系)认识事物及其相互关系)认识事物及其相互关系 (2 2)对事物归类,并实现继承)对事物归类,并实现继承)对事物归类,并实现继承)对事物归类,并实现继承 (3 3)强调事物的自主性)强调事物的自主性)强调事物的自主性)强调事物的自主性面向对象方法基本思想面向对象方法基本思想4 4本讲稿第四页,共一百零八页n n高可维护性:高可维护性:高可维护性:高可维护性:回避在不稳定的基础上建造系统。寻找可构造的回避在不稳定的基础上建造系统。寻找可构造的回避在不稳定的基础上建造系统。寻找可构造的回避在不稳定的基础上建造系统。寻找可构造的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的其它成分,不会影响到整体。其它成分,不会影响到整体。其它成分,不会影响到整体。其它成分,不会影响到整体。n n可复用性:可复用性:可复用性:可复用性:功能复用是代码级的,它基于必要的功能理解,功能复用是代码级的,它基于必要的功能理解,功能复用是代码级的,它基于必要的功能理解,功能复用是代码级的,它基于必要的功能理解,然而功能的语义是不一致的、多义的。软件复用是全方位的,然而功能的语义是不一致的、多义的。软件复用是全方位的,然而功能的语义是不一致的、多义的。软件复用是全方位的,然而功能的语义是不一致的、多义的。软件复用是全方位的,不但是代码级的复用,还应该有源程序级的复用,甚至包括不但是代码级的复用,还应该有源程序级的复用,甚至包括不但是代码级的复用,还应该有源程序级的复用,甚至包括不但是代码级的复用,还应该有源程序级的复用,甚至包括分析和设计文档的复用。分析和设计文档的复用。分析和设计文档的复用。分析和设计文档的复用。n n程序无关性:程序无关性:程序无关性:程序无关性:任何机器环境下,使用任意程序语言所编的程序,任何机器环境下,使用任意程序语言所编的程序,任何机器环境下,使用任意程序语言所编的程序,任何机器环境下,使用任意程序语言所编的程序,都应该是逻辑通用的。与机器相关的成分应该与处理逻辑无关。都应该是逻辑通用的。与机器相关的成分应该与处理逻辑无关。都应该是逻辑通用的。与机器相关的成分应该与处理逻辑无关。都应该是逻辑通用的。与机器相关的成分应该与处理逻辑无关。面向对象软件开发方法的目标面向对象软件开发方法的目标5 5本讲稿第五页,共一百零八页1.2 1.2 面向对象方法发展简史面向对象方法发展简史 源于面向对象程序设计语言源于面向对象程序设计语言 1967,Simula67 1970s,Smalltalk,Modula 1980s-90s,C+,Objective-C,Eiffel,java 向分析、设计甚至测试、维护等整个软件生命向分析、设计甚至测试、维护等整个软件生命 周期扩展周期扩展 1990s,统一建模语言(,统一建模语言(Unified Modeling Language,UML)诞生)诞生6 6本讲稿第六页,共一百零八页1.3 1.3 面向对象方法的基本概念和原则面向对象方法的基本概念和原则 基本概念基本概念 类与对象,属性与操作,继承、聚合和关联类与对象,属性与操作,继承、聚合和关联 基本原则基本原则 抽象,分类,封装,消息,多态性抽象,分类,封装,消息,多态性7 7本讲稿第七页,共一百零八页 对象(属性与操作,封装与消息)对象(属性与操作,封装与消息)客观存在的事物,包括有形客观存在的事物,包括有形客观存在的事物,包括有形客观存在的事物,包括有形对象和无形对象对象和无形对象对象和无形对象对象和无形对象 在在在在面面面面向向向向对对对对象象象象的的的的系系系系统统统统模模模模型型型型中中中中,对对对对象象象象是是是是描描描描述述述述客客客客观观观观事事事事物物物物的的的的一一一一个实体,由属性和操作构成。个实体,由属性和操作构成。个实体,由属性和操作构成。个实体,由属性和操作构成。属性:描述对象静态特征属性:描述对象静态特征属性:描述对象静态特征属性:描述对象静态特征 操作:描述对象动态特征操作:描述对象动态特征操作:描述对象动态特征操作:描述对象动态特征 体体体体现现现现了了了了封封封封装装装装原原原原则则则则,目目目目的的的的是是是是实实实实现现现现信信信信息息息息隐隐隐隐蔽蔽蔽蔽(事事事事物物物物的的的的独立自主性)。独立自主性)。独立自主性)。独立自主性)。可见性:暴露属性和操作的方式可见性:暴露属性和操作的方式可见性:暴露属性和操作的方式可见性:暴露属性和操作的方式 消息:请求其他对象提供服务的方式,如函数调用消息:请求其他对象提供服务的方式,如函数调用消息:请求其他对象提供服务的方式,如函数调用消息:请求其他对象提供服务的方式,如函数调用8 8本讲稿第八页,共一百零八页 类(抽象,分类)类(抽象,分类)类类类类是是是是具具具具有有有有共共共共同同同同属属属属性性性性和和和和操操操操作作作作的的的的对对对对象象象象的的的的集集集集合合合合,对对对对象象象象是是是是类的一个实例,类用于创建对象。类的一个实例,类用于创建对象。类的一个实例,类用于创建对象。类的一个实例,类用于创建对象。体体体体现现现现了了了了抽抽抽抽象象象象及及及及分分分分类类类类原原原原则则则则,是是是是人人人人们们们们分分分分析析析析问问问问题题题题的的的的基基基基本本本本方方方方法法法法 抽象:忽略事物的非本质特征,抽取共同的本质特征抽象:忽略事物的非本质特征,抽取共同的本质特征抽象:忽略事物的非本质特征,抽取共同的本质特征抽象:忽略事物的非本质特征,抽取共同的本质特征 分类:把具有共性的事物划分为一类分类:把具有共性的事物划分为一类分类:把具有共性的事物划分为一类分类:把具有共性的事物划分为一类9 9本讲稿第九页,共一百零八页 抽象抽象 类是对象的抽象,一般类是对特殊类的抽象类是对象的抽象,一般类是对特殊类的抽象类是对象的抽象,一般类是对特殊类的抽象类是对象的抽象,一般类是对特殊类的抽象 数据抽象:数据抽象:数据抽象:数据抽象:根据施加在数据上的操作来定义数据的类型根据施加在数据上的操作来定义数据的类型根据施加在数据上的操作来定义数据的类型根据施加在数据上的操作来定义数据的类型 过过过过程程程程抽抽抽抽象象象象:将将将将确确确确定定定定的的的的功功功功能能能能定定定定义义义义为为为为单单单单一一一一实实实实体体体体(确确确确定定定定的的的的功功功功能能能能是是是是由由由由一一一一系系系系列操作完成的)列操作完成的)列操作完成的)列操作完成的)抽象的好处:抽象的好处:抽象的好处:抽象的好处:1 1 1 1)复杂问题简单化)复杂问题简单化)复杂问题简单化)复杂问题简单化 2 2 2 2)实现可替换性)实现可替换性)实现可替换性)实现可替换性1010本讲稿第十页,共一百零八页例例2 2:对下列事物进行分类和抽象:对下列事物进行分类和抽象显微镜、摩天楼、望远镜、飞机、铆钉、显微镜、摩天楼、望远镜、飞机、铆钉、管道、管道、卡车、单向阀、指数、过滤器、压力器、卡车、单向阀、指数、过滤器、压力器、自行车、自行车、正旋、岩洞、眼镜、车库、正旋、岩洞、眼镜、车库、滑翔机、平方根、铁滑翔机、平方根、铁钉、水龙头、螺钉、钉、水龙头、螺钉、余旋、螺栓、余旋、螺栓、帐篷、双筒镜、帐篷、双筒镜、车棚、杂物堆房、摩托车、帆船、瞄准器车棚、杂物堆房、摩托车、帆船、瞄准器例例1 1:数据抽象和过程抽象:数据抽象和过程抽象 数据抽象:数据抽象:学生、客户、电子邮件、汽车学生、客户、电子邮件、汽车过程抽象:交易、答辩、备课、开门过程抽象:交易、答辩、备课、开门1111本讲稿第十一页,共一百零八页光学设备类:显微镜、眼镜、望远镜、瞄准器、双筒镜光学设备类:显微镜、眼镜、望远镜、瞄准器、双筒镜管道控制类:管道、单向伐、水龙头、过滤器、压力器管道控制类:管道、单向伐、水龙头、过滤器、压力器交通工具类:自行车、帆船交通工具类:自行车、帆船、卡车、飞机、滑翔机、摩托车、卡车、飞机、滑翔机、摩托车五金类:五金类:铁钉、螺钉、螺栓、铆钉铁钉、螺钉、螺栓、铆钉建筑类:建筑类:帐篷、岩洞、车棚、车库、杂物堆房、摩天楼帐篷、岩洞、车棚、车库、杂物堆房、摩天楼数学概念类:平方根、指数、正旋、余旋数学概念类:平方根、指数、正旋、余旋 光学设备类:聚焦度、变焦长度、单双镜形式、用途功能光学设备类:聚焦度、变焦长度、单双镜形式、用途功能管道控制类:时速、功率,动力资源、消耗、用途、管道控制类:时速、功率,动力资源、消耗、用途、五金类:五金类:材料、直径、长度、硬度、用途材料、直径、长度、硬度、用途建筑类:建筑类:面积、高度、材料、用途面积、高度、材料、用途数学概念类:概念定义、公式内容、用途数学概念类:概念定义、公式内容、用途 抽取同类事物的共同性质:抽取同类事物的共同性质:分类:分类:1212本讲稿第十二页,共一百零八页继承继承 在不同程度上运用抽象和分类原则,可以得到较一在不同程度上运用抽象和分类原则,可以得到较一在不同程度上运用抽象和分类原则,可以得到较一在不同程度上运用抽象和分类原则,可以得到较一般的类和较特殊的类。般的类和较特殊的类。般的类和较特殊的类。般的类和较特殊的类。继承继承继承继承:特殊类自动拥有一般类所具有的全部属性和操作,也特殊类自动拥有一般类所具有的全部属性和操作,也特殊类自动拥有一般类所具有的全部属性和操作,也特殊类自动拥有一般类所具有的全部属性和操作,也可称为一般类对特殊类的泛化。可称为一般类对特殊类的泛化。可称为一般类对特殊类的泛化。可称为一般类对特殊类的泛化。多重继承多重继承多重继承多重继承:一个特殊类同时继承两个以上一般类的属性和操作一个特殊类同时继承两个以上一般类的属性和操作一个特殊类同时继承两个以上一般类的属性和操作一个特殊类同时继承两个以上一般类的属性和操作 继承的继承的继承的继承的重要作用重要作用重要作用重要作用:1 1 1 1)简化对事物的认识和描述)简化对事物的认识和描述)简化对事物的认识和描述)简化对事物的认识和描述 2 2 2 2)有利于软件复用)有利于软件复用)有利于软件复用)有利于软件复用1313本讲稿第十三页,共一百零八页学生学生姓名姓名年龄年龄研究生研究生导师导师研究方向研究方向本科生本科生班级班级专业专业人员人员姓名姓名年龄年龄研究生研究生导师导师研究方向研究方向职工职工部门部门职务职务在职研究生在职研究生运输工具运输工具轮船轮船车辆车辆飞机飞机卡车卡车轿车轿车继承:继承:多继承:多继承:继承层次:继承层次:1414本讲稿第十四页,共一百零八页多态性多态性 多态性:多态性:特殊类可以对继承来的属性和特殊类可以对继承来的属性和操作做出自己的解释,即在继承关系的类操作做出自己的解释,即在继承关系的类层次结构中可以定义同名操作或属性,形层次结构中可以定义同名操作或属性,形成同一操作或属性的多种形态,这样可以成同一操作或属性的多种形态,这样可以按不同的行为响应同一个消息。按不同的行为响应同一个消息。多态性进一步体现了信息隐蔽的原则,多态性进一步体现了信息隐蔽的原则,可以实现接口的独立封装。可以实现接口的独立封装。1515本讲稿第十五页,共一百零八页关联关联 关联表示类之间的静态联系。关联表示类之间的静态联系。当当类类实实例例化化为为对对象象后后,关关联联实实例例化化为为对对象象之之间间的的链。链。可以通过属性来表达关联。可以通过属性来表达关联。职员职员公司公司关联:关联:工作工作1616本讲稿第十六页,共一百零八页聚合聚合 聚聚合合表表示示对对象象之之间间的的整整体体部部分分关关系系,具具有有“有有 一一个个”或或“是一部分是一部分”的语义的语义 聚合也是一种关联。聚合也是一种关联。汽车汽车发动机发动机车轮车轮聚合:聚合:1717本讲稿第十七页,共一百零八页系统复杂性控制(包)系统复杂性控制(包)包包用用于于控控制制系系统统的的粒粒度度,将将系系统统组组成成元元素素组组织织到到不不同同的的包包中中,可可以以方方便便系系统统整整体体规规划划,减减小小系系统统分分析和设计的复杂性。析和设计的复杂性。系统行为分析(状态转换与交互)系统行为分析(状态转换与交互)系系系系统统统统运运运运行行行行中中中中对对对对象象象象的的的的属属属属性性性性值值值值会会会会不不不不断断断断发发发发生生生生变变变变化化化化,从从从从而而而而形形形形成成成成对对对对象象象象的的的的不不不不同同同同状状状状态态态态。描描描描述述述述对对对对象象象象状状状状态态态态的的的的转转转转换换换换,可可可可以以以以确确确确定对象的行为完整性;定对象的行为完整性;定对象的行为完整性;定对象的行为完整性;系系系系统统统统中中中中对对对对象象象象必必必必须须须须相相相相互互互互协协协协作作作作以以以以完完完完成成成成某某某某项项项项功功功功能能能能,描描描描述述述述对对对对象象象象间间间间的的的的交交交交互互互互,可可可可以以以以表表表表示示示示系系系系统统统统实实实实现现现现功功功功能能能能的的的的整整整整体体体体行行行行为为为为以以以以及及及及对对对对象之间的并行性。象之间的并行性。象之间的并行性。象之间的并行性。1818本讲稿第十八页,共一百零八页 实现高可维护性:实现高可维护性:实现高可维护性:实现高可维护性:1 1 1 1)类是封装了操作的一个类是封装了操作的一个类是封装了操作的一个类是封装了操作的一个“代码级复用代码级复用代码级复用代码级复用”程序模板程序模板程序模板程序模板 ,类的使用,如同数据变量一样简单。,类的使用,如同数据变量一样简单。,类的使用,如同数据变量一样简单。,类的使用,如同数据变量一样简单。类的对象可成为系统的构造元素。类的对象可成为系统的构造元素。类的对象可成为系统的构造元素。类的对象可成为系统的构造元素。2 2 2 2)对于对于对于对于“对象变量对象变量对象变量对象变量”的操作不同于程序调用,采用了消息,的操作不同于程序调用,采用了消息,的操作不同于程序调用,采用了消息,的操作不同于程序调用,采用了消息,“消息消息消息消息”是并发的是并发的是并发的是并发的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的 实现可复用性:实现可复用性:实现可复用性:实现可复用性:1 1)对象语义的表示唯一,这使得代码级的复用简单且自然。)对象语义的表示唯一,这使得代码级的复用简单且自然。)对象语义的表示唯一,这使得代码级的复用简单且自然。)对象语义的表示唯一,这使得代码级的复用简单且自然。2 2)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并仍保持易维护性。仍保持易维护性。仍保持易维护性。仍保持易维护性。实现程序无关性:实现程序无关性:实现程序无关性:实现程序无关性:类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分独立出来,为程序无关性奠定了基础。独立出来,为程序无关性奠定了基础。独立出来,为程序无关性奠定了基础。独立出来,为程序无关性奠定了基础。面向对象方法实现其目标的途径面向对象方法实现其目标的途径1919本讲稿第十九页,共一百零八页1.4 1.4 面向对象软件系统模型面向对象软件系统模型系统模型系统模型 为了理解和实现所要建造的软件系统,对系统及其工作为了理解和实现所要建造的软件系统,对系统及其工作 环境环境的简化和形式化描述。的简化和形式化描述。一个完整的软件系统模型通常包括若干不同层次、不一个完整的软件系统模型通常包括若干不同层次、不同视角的模型同视角的模型 层次:系统的抽象程度层次:系统的抽象程度 视角:系统的不同方面(交互、功能、实现、组织视角:系统的不同方面(交互、功能、实现、组织)2020本讲稿第二十页,共一百零八页面向对象模型视图面向对象模型视图用况视图用况视图进程视图进程视图部署视图部署视图设计视图设计视图实现视图实现视图结构视图结构视图2121本讲稿第二十一页,共一百零八页结构视图结构视图结构视图结构视图设计视图设计视图设计视图设计视图进程视图进程视图进程视图进程视图实现视图实现视图实现视图实现视图部署视图部署视图部署视图部署视图用况视图用况视图用况视图用况视图静态静态静态静态包图包图包图包图类、对象图类、对象图类、对象图类、对象图构件图构件图构件图构件图部署图部署图部署图部署图用况图用况图用况图用况图动态动态动态动态交互图、状态图、活动图交互图、状态图、活动图交互图、状态图、活动图交互图、状态图、活动图 用况视图:软件系统的内外交互情况用况视图:软件系统的内外交互情况 设计视图:软件系统的功能需求设计视图:软件系统的功能需求 进程视图:软件系统的控制与驱动进程视图:软件系统的控制与驱动 实现视图:软件系统的配置与管理实现视图:软件系统的配置与管理 部署视图:软件系统的物理分布与安装部署视图:软件系统的物理分布与安装 结构视图:结构视图:软件系统的体系结构软件系统的体系结构面向对象模型视图的构成面向对象模型视图的构成2222本讲稿第二十二页,共一百零八页第二章第二章 面向对象的分析技术面向对象的分析技术2.1 2.1 分析面临的主要问题分析面临的主要问题2.2 2.2 面向对象的分析模型面向对象的分析模型2.3 2.3 面向对象的分析过程面向对象的分析过程2323本讲稿第二十三页,共一百零八页2.1 2.1 分析面临的主要问题分析面临的主要问题 OOA OOA与与OODOOD的界限的界限 对问题域和系统责任的理解对问题域和系统责任的理解 人与人之间的交流人与人之间的交流 需求的不断变化需求的不断变化 软件复用的要求软件复用的要求2424本讲稿第二十四页,共一百零八页OOAOOA与与OODOOD的界限的界限 OOA OOA:运用面向对象方法,对问题域和系统责任进行分析和运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域和系统责任所需的对象,定义对象的理解,找出描述问题域和系统责任所需的对象,定义对象的属性和操作以及对象之间的关系,建立一个符合问题域,满属性和操作以及对象之间的关系,建立一个符合问题域,满足用户需求的足用户需求的OOAOOA模型。模型。OOA OOA不考虑与系统具体实现有关的因素,而将其留不考虑与系统具体实现有关的因素,而将其留给给OODOOD去处理,因此去处理,因此OODOOD包括两方面的工作:包括两方面的工作:1 1)根据实现条件对)根据实现条件对OOAOOA模型作某些必要的修改和调整。模型作某些必要的修改和调整。2 2)针对具体实现条件,建立人机界面、数据存储和控制驱)针对具体实现条件,建立人机界面、数据存储和控制驱动等模型。动等模型。2525本讲稿第二十五页,共一百零八页问题域和系统责任问题域和系统责任软件分析人员必须尽快了解和明确:软件分析人员必须尽快了解和明确:1 1)问题域)问题域-被开发系统的应用领域,现实世界中,被开发系统的应用领域,现实世界中,要求系统处要求系统处理的业务范围。理的业务范围。2 2)系统责任)系统责任-所开发的系统应该具备的功能。所开发的系统应该具备的功能。问题域不等于系统责任,但它们有很多重合部分问题域不等于系统责任,但它们有很多重合部分 金融业务金融业务 个人储蓄个人储蓄 代发工资代发工资收费业务收费业务 贷款业务贷款业务办公管理办公管理数据备份数据备份系统责任问题域2626本讲稿第二十六页,共一百零八页人与人之间的交流人与人之间的交流 交交流包括三部分人员之间:流包括三部分人员之间:1 1)开发人员与用户(需求方)开发人员与用户(需求方)2 2)开发人员之间)开发人员之间 3 3)开发人员与管理人员)开发人员与管理人员 交流工具包括谈话和文档交流工具包括谈话和文档 用户文档,技术文档,管理文档用户文档,技术文档,管理文档2727本讲稿第二十七页,共一百零八页需求的不断变化需求的不断变化树立树立“需求变化是绝对的需求变化是绝对的”的观念,从分析到设的观念,从分析到设计,始终注意计,始终注意“易维护修改易维护修改”这一原则。这一原则。需求变化时,最容易变化的是系统功能。在面向对需求变化时,最容易变化的是系统功能。在面向对象方法中,最容易变化的成分是对象中的操作,其象方法中,最容易变化的成分是对象中的操作,其次是对象间的交互与协作,第三是对象的属性。对次是对象间的交互与协作,第三是对象的属性。对象本事是相对稳定的。象本事是相对稳定的。隐蔽内部操作,抽取高层类,可以使系统稳定隐蔽内部操作,抽取高层类,可以使系统稳定且易于应对需求变化。且易于应对需求变化。2828本讲稿第二十八页,共一百零八页软件复用的要求软件复用的要求在已有的软件成分基础上建造系统,是新型软在已有的软件成分基础上建造系统,是新型软 件开件开发方法的一个重要原则。发方法的一个重要原则。复用已有的软件成分,不仅是提高开发效率的资源集复用已有的软件成分,不仅是提高开发效率的资源集约化生产方式,更重要的原因在于复用已有软件成分约化生产方式,更重要的原因在于复用已有软件成分可以保证其相对正确性,回避不宜保证的软件质量问可以保证其相对正确性,回避不宜保证的软件质量问题。题。复用是多方面的,从执行代码、源代码到设计文复用是多方面的,从执行代码、源代码到设计文档,乃至分析文档。档,乃至分析文档。2929本讲稿第二十九页,共一百零八页2.2 2.2 面向对象的分析模型面向对象的分析模型目标:目标:用规范的面向对象图表和文字来描述所要建造的软用规范的面向对象图表和文字来描述所要建造的软件系统,以便在用户与系统分析人员之间达成共识,同时使件系统,以便在用户与系统分析人员之间达成共识,同时使后续工作得以继续。后续工作得以继续。内容:内容:需求描述需求描述 Use CaseUse Case 用况图用况图 辅助模型辅助模型 Sequence Sequence 交互图交互图 Collaboration Collaboration 协作图协作图 State Transition State Transition 状态转换图状态转换图 Component Component 包图包图基本模型基本模型 Class Class类图类图 详细说明详细说明对象层关系层特征层3030本讲稿第三十页,共一百零八页用况图(用况图(Use CaseUse Case)捕获与描述用户需求的工具捕获与描述用户需求的工具类图(类图(ClassClass)类图是系统模型的基础,描述系统的静态结构。类图是系统模型的基础,描述系统的静态结构。三个层次:三个层次:对象层:描述问题域和系统责任所需的对象对象层:描述问题域和系统责任所需的对象 关系层:类之间的相互关系关系层:类之间的相互关系 特征层:类的属性和操作(分析阶段不用细化)特征层:类的属性和操作(分析阶段不用细化)3131本讲稿第三十一页,共一百零八页顺序图(顺序图(SequenceSequence)按时间顺序排列在完成某一功能过程中对象之间的交互行为。按时间顺序排列在完成某一功能过程中对象之间的交互行为。协作图(协作图(CollaborationCollaboration)以某一对象为中心描述对象之间的交互。以某一对象为中心描述对象之间的交互。状态转换图(状态转换图(State TransitionState Transition)描述对象在生命周期内,响应事件的状态转换过程,以及响描述对象在生命周期内,响应事件的状态转换过程,以及响应事件后所做的反映。应事件后所做的反映。包图(包图(ComponentComponent)对关系密切的模型元素进行打包。对关系密切的模型元素进行打包。3232本讲稿第三十二页,共一百零八页2.3 2.3 面向对象的分析过程面向对象的分析过程分析过程中各个步骤不要求按固定顺序进行。所以,面向对象的分分析过程中各个步骤不要求按固定顺序进行。所以,面向对象的分析步骤经常被叫做析步骤经常被叫做“活动活动”。建立建立Use CaseUse Case发现对象发现对象定义属性与服务定义属性与服务建立结构与连接建立结构与连接定义:顺序图、定义:顺序图、协作图、状态图协作图、状态图建立建立ClassClass详详细细说说明明原原型型开开发发3333本讲稿第三十三页,共一百零八页实施实施OOAOOA的几点建议:的几点建议:1 1)确定需求的工作放在前面;)确定需求的工作放在前面;2 2)建立)建立ClassClass图,可以随时切换到其他活动;图,可以随时切换到其他活动;3 3)建立顺序图、协作图和状态图的活动,放在对象)建立顺序图、协作图和状态图的活动,放在对象 识别识别之后,并与基本模型活动交错进行,之后,并与基本模型活动交错进行,4 4)详细说明应分散在各项活动之中进行,最后做一次审查和)详细说明应分散在各项活动之中进行,最后做一次审查和补充;补充;5 5)原形可以反复地进行,早期的原型可以用来证实用户需)原形可以反复地进行,早期的原型可以用来证实用户需求;求;6 6)对于规模较小系统,分析时可以省略包图。)对于规模较小系统,分析时可以省略包图。3434本讲稿第三十四页,共一百零八页第三章第三章 面向对象的设计面向对象的设计 3.1 3.1 面向对象设计概述面向对象设计概述3.2 3.2 问题域设计问题域设计3.3 3.3 人机交互设计人机交互设计3.4 3.4 控制驱动设计设计控制驱动设计设计3.5 3.5 数据管理设计数据管理设计3.6 3.6 构件和部署设计构件和部署设计3535本讲稿第三十五页,共一百零八页3.1 3.1 面向对象设计概述面向对象设计概述按照软件生命周期的规律,面向对象的方法学也包括分析活动和设按照软件生命周期的规律,面向对象的方法学也包括分析活动和设计活动。计活动。分析活动和设计活动并没有明显的阶段划分,对应喷泉式模分析活动和设计活动并没有明显的阶段划分,对应喷泉式模型:型:演化演化维护维护测试测试实现实现设计设计分析分析 体现认识事物的循环迭代性体现认识事物的循环迭代性 强调开发活动的无间隙性(无明显的强调开发活动的无间隙性(无明显的阶段划分)阶段划分)强调开发活动的并发性强调开发活动的并发性3636本讲稿第三十六页,共一百零八页面向对象分析活动面向对象分析活动-针对问题域和系统责任,不考虑与实针对问题域和系统责任,不考虑与实现有关的因素,建立独立于实现的现有关的因素,建立独立于实现的OOA模型。模型。面向对象设计活动面向对象设计活动-考虑与实现有关的问题,建立针对考虑与实现有关的问题,建立针对具体实现的具体实现的OOD模型,设计内容包括:模型,设计内容包括:1)根据实现语言对类(属性与操作)进行描述)根据实现语言对类(属性与操作)进行描述 2)人机交互界面设计)人机交互界面设计 3)系统控制部分的设计)系统控制部分的设计 4)数据管理部分的设计)数据管理部分的设计 5)系统构件部署)系统构件部署问题域问题域 部分部分 详细说明详细说明控制驱动部分控制驱动部分人人机机交交互互部部分分数数据据管管理理部部分分行行为为图图与与包包图图类类图图用用况况图图详详细细说说明明3737本讲稿第三十七页,共一百零八页面向对象设计准则面向对象设计准则 以设计元素的耦合性、内聚性以及复用性为主要准以设计元素的耦合性、内聚性以及复用性为主要准则则耦合性耦合性 衡量耦合度的两个方面:衡量耦合度的两个方面:成分之间的信息传输量成分之间的信息传输量成分之间传递信息的复杂程度成分之间传递信息的复杂程度 交互耦合:成分之间通过消息交互,越松散越好交互耦合:成分之间通过消息交互,越松散越好 继承耦合:成分之间有继承关系,越紧密越好继承耦合:成分之间有继承关系,越紧密越好3838本讲稿第三十八页,共一百零八页 内聚性内聚性 操作内聚:完成单一功能的操作的内聚最高操作内聚:完成单一功能的操作的内聚最高 类内聚:类中没有多余的属性和操作,且所有属性和操类内聚:类中没有多余的属性和操作,且所有属性和操作应该是自身的责任,每个操作也是高内聚的。作应该是自身的责任,每个操作也是高内聚的。复用性复用性 执行代码级的复用执行代码级的复用 源代码级的复用和继承源代码级的复用和继承 分析和设计结果的复用和继承分析和设计结果的复用和继承 体系结构的复用和继承(设计模式)体系结构的复用和继承(设计模式)3939本讲稿第三十九页,共一百零八页 清晰准则清晰准则统一的用语统一的用语一致的约定一致的约定消息模板要少消息模板要少类责任表达要明确类责任表达要明确独立处理算法和策略算法独立处理算法和策略算法继承关系层次不宜过深继承关系层次不宜过深 类简洁性准则类简洁性准则避免过多的属性,使用继承保持属性量避免过多的属性,使用继承保持属性量对象间协作最小化对象间协作最小化避免过多的操作避免过多的操作保持操作的高内聚保持操作的高内聚保持内部成员的私有性保持内部成员的私有性(包括属性和操作)(包括属性和操作)其他设计准则其他设计准则4040本讲稿第四十页,共一百零八页3.2 3.2 问题域设计问题域设计 3.2.1 3.2.1 引入可复用类引入可复用类 3.2.2 3.2.2 增设一般类增设一般类 3.2.3 3.2.3 调整继承关系调整继承关系 3.2.4 3.2.4 调整多态性调整多态性 3.2.5 3.2.5 为提高性能进行类调整为提高性能进行类调整 3.2.6 3.2.6 为对象存储增补属性与操作为对象存储增补属性与操作 3.2.7 3.2.7 关联的实现关联的实现 3.2.8 3.2.8 调整属性调整属性 3.2.9 3.2.9 设计算法设计算法 3.2.10 3.2.10 定义对象的可访问性定义对象的可访问性4141本讲稿第四十一页,共一百零八页3.2.1 3.2.1 引入可引入可复用类复用类目标目标-尽可能地使用可以利用的复用成分。尽可能地使用可以利用的复用成分。例:已经存在图书类,在书店管理系统和图书馆系例:已经存在图书类,在书店管理系统和图书馆系统中可以复用它。统中可以复用它。图书图书零售图书零售图书馆藏图书馆藏图书书店系统书店系统图书馆系统图书馆系统4242本讲稿第四十二页,共一百零八页 可可直接利用:把可复用的类加到问题域并做标记。直接利用:把可复用的类加到问题域并做标记。只满足部分利用:把可复用类加到问题域,用子类继承并只满足部分利用:把可复用类加到问题域,用子类继承并重新定义或新添操作。重新定义或新添操作。只有部分可以利用:把可复用的类加到问题域,删除多余部分成为只有部分可以利用:把可复用的类加到问题域,删除多余部分成为新的类。新的类。注:注:重新重新规划问题域中的复用类与原有类之间的关联。规划问题域中的复用类与原有类之间的关联。复用方法复用方法 车辆车辆序号序号颜色颜色样式样式出厂日期出厂日期序号认证序号认证()()车辆车辆序号序号厂商厂商样式样式序号认证()序号认证()例:例:新建的类新建的类已有的类已有的类换名字换名字4343本讲稿第四十三页,共一百零八页3.2.2 3.2.2 增设一般类增设一般类 目标目标-把具有相同操作和属性的类组织在一起形把具有相同操作和属性的类组织在一起形成超类,建立继承关系。成超类,建立继承关系。处理策略处理策略 1)若子类中不需要父类中的某些操作,可在子类中重新)若子类中不需要父类中的某些操作,可在子类中重新声明该操作为无方法的操作。声明该操作为无方法的操作。2)若在不同的类中的操作具有相同语义名字,但方法不同,可利)若在不同的类中的操作具有相同语义名字,但方法不同,可利用多态机制,在一般类中为该操作做一个虚函数。用多态机制,在一般类中为该操作做一个虚函数。3)若继承来的操作执行效果相同,只是缺少参数。在父类操作中)若继承来的操作执行效果相同,只是缺少参数。在父类操作中加入必要的参数,执行时忽略该参数。加入必要的参数,执行时忽略该参数。4444本讲稿第四十四页,共一百零八页3.2.3 3.2.3 调整调整继承关系继承关系1)对不支持多继承的编程语言,需要将多继承关系调)对不支持多继承的编程语言,需要将多继承关系调整为单继承关系整为单继承关系 方法方法1:用聚合关系将多继承关系转换为单继承关系:用聚合关系将多继承关系转换为单继承关系手机手机照相机照相机照相手机照相手机手机手机照相机照相机照相手机照相手机方法方法1例例1:4545本讲稿第四十五页,共一百零八页学生学生职工职工在职学生在职学生人员人员学生学生职工职工身份身份人员人员方法方法1例例2:身份身份=在职学生在职学生=学生学生=职工职工4646本讲稿第四十六页,共一百零八页方法方法2例例1:学生学生职工职工人员人员在职学生在职学生学生学生在职学生在职学生人员人员职工职工学生信息学生信息职工信息职工信息方法方法2:提升多继承子类的层次,将多继承转换为单继承:提升多继承子类的层次,将多继承转换为单继承方法方法2例例2:4747本讲稿第四十七页,共一百零八页学生学生职工职工在职学生在职学生方法方法1:取消继承:取消继承方法

    注意事项

    本文(面向对象分析与设计精选文档.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开