面向对象分析与设计讲解课件.ppt
《面向对象分析与设计讲解课件.ppt》由会员分享,可在线阅读,更多相关《面向对象分析与设计讲解课件.ppt(109页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目标:目标:运用面向对象方法与技术,分析用户对运用面向对象方法与技术,分析用户对软件系统的需求,建立软件系统模型。软件系统的需求,建立软件系统模型。 以以功能为中心功能为中心的软件开发方法(结构化方法)的软件开发方法(结构化方法) 以以数据为中心数据为中心的软件开发方法(信息建模方法)的软件开发方法(信息建模方法)低内聚,高耦合,缺乏灵活性和可维护性低内聚,高耦合,缺乏灵活性和可维护性分析与设计阶段采用的概念和表示不一致分析与设计阶段采用的概念和表示不一致对功能的处理较弱,不适合具有复杂功能对功能的处理较弱,不适合具有复杂功能的系统的系统面向对象方法基本思想面向对象方法基本思想面向对象软件开发
2、方法的目标面向对象软件开发方法的目标 源于面向对象程序设计语言源于面向对象程序设计语言 1967, Simula67 1970s, Smalltalk, Modula 1980s-90s,C+, Objective-C, Eiffel, java 向分析、设计甚至测试、维护等整个软件生命向分析、设计甚至测试、维护等整个软件生命 周期扩展周期扩展 1990s,统一建模语言(,统一建模语言(Unified Modeling Language, UML)诞生)诞生1.3 1.3 面向对象方法的基本概念和原则面向对象方法的基本概念和原则 基本概念基本概念 类与对象,属性与操作,继承、聚合和关联类与对象
3、,属性与操作,继承、聚合和关联 基本原则基本原则 抽象,分类,封装,消息,多态性抽象,分类,封装,消息,多态性例例2 2:对下列事物进行分类和抽象:对下列事物进行分类和抽象显微镜、摩天楼、望远镜、飞机、铆钉、显微镜、摩天楼、望远镜、飞机、铆钉、 管道、管道、卡车、单向阀、指数、过滤器、压力器、卡车、单向阀、指数、过滤器、压力器、 自行自行车、正旋、岩洞、眼镜、车库、车、正旋、岩洞、眼镜、车库、 滑翔机、平方滑翔机、平方根、铁钉、水龙头、螺钉、根、铁钉、水龙头、螺钉、 余旋、螺栓、余旋、螺栓、 帐篷、帐篷、双筒镜、车棚、杂物堆房、摩托车、帆船、瞄准双筒镜、车棚、杂物堆房、摩托车、帆船、瞄准器器例
4、例1 1:数据抽象和过程抽象:数据抽象和过程抽象 数据抽象:数据抽象:学生、客户、电子邮件、汽车学生、客户、电子邮件、汽车过程抽象:交易、答辩、备课、开门过程抽象:交易、答辩、备课、开门光学设备类:显微镜、眼镜、望远镜、瞄准器、双筒镜光学设备类:显微镜、眼镜、望远镜、瞄准器、双筒镜管道控制类:管道、单向伐、水龙头、过滤器、压力器管道控制类:管道、单向伐、水龙头、过滤器、压力器交通工具类:自行车、帆船交通工具类:自行车、帆船 、卡车、飞机、滑翔机、摩托车、卡车、飞机、滑翔机、摩托车五金类:五金类: 铁钉、螺钉、螺栓、铆钉铁钉、螺钉、螺栓、铆钉建筑类:建筑类: 帐篷、岩洞、车棚、车库、杂物堆房、摩
5、天楼帐篷、岩洞、车棚、车库、杂物堆房、摩天楼数学概念类:平方根、指数、正旋、余旋数学概念类:平方根、指数、正旋、余旋 光学设备类:聚焦度、变焦长度、单双镜形式、用途功能光学设备类:聚焦度、变焦长度、单双镜形式、用途功能管道控制类:时速、功率,动力资源、消耗、用途、管道控制类:时速、功率,动力资源、消耗、用途、五金类:五金类: 材料、直径、长度、硬度、用途材料、直径、长度、硬度、用途建筑类:建筑类: 面积、高度、材料、用途面积、高度、材料、用途数学概念类:概念定义、公式内容、用途数学概念类:概念定义、公式内容、用途 抽取同类事物的共同性质:抽取同类事物的共同性质: 分类:分类:学生学生姓名姓名年
6、龄年龄研究生研究生导师导师研究方向研究方向本科生本科生班级班级专业专业人员人员姓名姓名年龄年龄研究生研究生导师导师研究方向研究方向职工职工部门部门职务职务在职研究生在职研究生运输工具运输工具轮船轮船车辆车辆飞机飞机卡车卡车轿车轿车继承:继承:多继承:多继承:继承层次:继承层次:关联关联 关联表示类之间的静态联系。关联表示类之间的静态联系。 当类实例化为对象后,关联实例化为对象之间当类实例化为对象后,关联实例化为对象之间的链。的链。 可以通过属性来表达关联。可以通过属性来表达关联。职员职员公司公司关联:关联:工作工作聚合聚合 聚合表示对象之间的整体部分关系,具有聚合表示对象之间的整体部分关系,具
7、有“有有 一个一个”或或“是一部分是一部分”的语义的语义 聚合也是一种关联。聚合也是一种关联。汽车汽车发动机发动机车轮车轮聚合:聚合:系统复杂性控制(包)系统复杂性控制(包) 包用于控制系统的包用于控制系统的粒度粒度,将系统组成元素组织,将系统组成元素组织到不同的包中,可以方便系统整体规划,减小到不同的包中,可以方便系统整体规划,减小系统分析和设计的复杂性。系统分析和设计的复杂性。面向对象方法实现其目标的途径面向对象方法实现其目标的途径1.4 1.4 面向对象软件系统模型面向对象软件系统模型 系统模型系统模型 为了理解和实现所要建造的软件系统,对系统及其工作为了理解和实现所要建造的软件系统,对
8、系统及其工作 环境的简化和形式化描述。环境的简化和形式化描述。 一个完整的软件系统模型通常包括若干不同层一个完整的软件系统模型通常包括若干不同层次、不同视角的模型次、不同视角的模型 层次:系统的抽象程度层次:系统的抽象程度 视角:系统的不同方面(交互、功能、实现、组织视角:系统的不同方面(交互、功能、实现、组织)面向对象模型视图面向对象模型视图用况视图用况视图进程视图进程视图部署视图部署视图设计视图设计视图实现视图实现视图结构视图结构视图 用况视图:软件系统的内外交互情况用况视图:软件系统的内外交互情况 设计视图:软件系统的功能需求设计视图:软件系统的功能需求 进程视图:软件系统的控制与驱动进
9、程视图:软件系统的控制与驱动 实现视图:软件系统的配置与管理实现视图:软件系统的配置与管理 部署视图:软件系统的物理分布与安装部署视图:软件系统的物理分布与安装 结构视图:结构视图: 软件系统的体系结构软件系统的体系结构面向对象模型视图的构成面向对象模型视图的构成2.1 2.1 分析面临的主要问题分析面临的主要问题 OOA OOA与与OODOOD的界限的界限 对问题域和系统责任的理解对问题域和系统责任的理解 人与人之间的交流人与人之间的交流 需求的不断变化需求的不断变化 软件复用的要求软件复用的要求OOAOOA与与OODOOD的界限的界限 OOA OOA:运用面向对象方法,对问题域和系统责任进
10、行分运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域和系统责任所需的对象,定析和理解,找出描述问题域和系统责任所需的对象,定义对象的属性和操作以及对象之间的关系,建立一个符义对象的属性和操作以及对象之间的关系,建立一个符合问题域,满足用户需求的合问题域,满足用户需求的OOAOOA模型。模型。 OOA OOA不考虑与系统具体实现有关的因素,而将其不考虑与系统具体实现有关的因素,而将其留给留给OODOOD去处理,因此去处理,因此OODOOD包括两方面的工作:包括两方面的工作: 1 1)根据实现条件对)根据实现条件对OOAOOA模型作某些必要的修改和调整。模型作某些必要的修改和调整
11、。 2 2)针对具体实现条件,建立人机界面、数据存储和控)针对具体实现条件,建立人机界面、数据存储和控制驱动等模型。制驱动等模型。问题域和系统责任问题域和系统责任软件分析人员必须尽快了解和明确:软件分析人员必须尽快了解和明确: 1 1)问题域)问题域-被开发系统的应用领域,现实世界中,被开发系统的应用领域,现实世界中, 要要求系统处理的业务范围。求系统处理的业务范围。 2 2)系统责任)系统责任-所开发的系统应该具备的功能。所开发的系统应该具备的功能。问题域不等于系统责任,但它们有很多重合部分问题域不等于系统责任,但它们有很多重合部分 金融业务金融业务 个人储蓄个人储蓄 代发工资代发工资收费业
12、务收费业务 贷款业务贷款业务办公管理办公管理数据备份数据备份系统责任问题域人与人之间的交流人与人之间的交流 交流包括三部分人员之间:交流包括三部分人员之间: 1 1)开发人员与用户(需求方)开发人员与用户(需求方) 2 2)开发人员之间)开发人员之间 3 3)开发人员与管理人员)开发人员与管理人员 交流工具包括谈话和文档交流工具包括谈话和文档 用户文档,技术文档,管理文档用户文档,技术文档,管理文档需求的不断变化需求的不断变化树立树立“需求变化是绝对的需求变化是绝对的”的观念,从分析的观念,从分析到设计,始终注意到设计,始终注意“易维护修改易维护修改”这一原则。这一原则。需求变化时,最容易变化
13、的是系统功能。在需求变化时,最容易变化的是系统功能。在面向对象方法中,最容易变化的成分是对象面向对象方法中,最容易变化的成分是对象中的操作,其次是对象间的交互与协作,第中的操作,其次是对象间的交互与协作,第三是对象的属性。对象本事是相对稳定的。三是对象的属性。对象本事是相对稳定的。隐蔽内部操作,抽取高层类,可以使系统稳隐蔽内部操作,抽取高层类,可以使系统稳定且易于应对需求变化。定且易于应对需求变化。软件复用的要求软件复用的要求在已有的软件成分基础上建造系统,是新型软在已有的软件成分基础上建造系统,是新型软 件开发方法的一个重要原则。件开发方法的一个重要原则。复用已有的软件成分,不仅是提高开发效
14、率的复用已有的软件成分,不仅是提高开发效率的资源集约化生产方式,更重要的原因在于复用资源集约化生产方式,更重要的原因在于复用已有软件成分可以保证其相对正确性,回避不已有软件成分可以保证其相对正确性,回避不宜保证的软件质量问题。宜保证的软件质量问题。复用是多方面的,从执行代码、源代码到设计复用是多方面的,从执行代码、源代码到设计文档,乃至分析文档。文档,乃至分析文档。2.2 2.2 面向对象的分析模型面向对象的分析模型目标:目标:用规范的面向对象图表和文字来描述所要建造用规范的面向对象图表和文字来描述所要建造的软件系统,以便在用户与系统分析人员之间达成共的软件系统,以便在用户与系统分析人员之间达
15、成共识,同时使后续工作得以继续。识,同时使后续工作得以继续。内容:内容: 需求描述需求描述 Use CaseUse Case 用况图用况图 辅助模型辅助模型 SequenceSequence 交互图交互图 CollaborationCollaboration 协作图协作图 State TransitionState Transition 状态转换图状态转换图 ComponentComponent 包图包图基本模型基本模型 ClassClass类图类图 详细说明详细说明对象层关系层特征层用况图(用况图(Use CaseUse Case) 捕获与描述用户需求的工具捕获与描述用户需求的工具类图(类图
16、(ClassClass) 类图是系统模型的基础,描述系统的静态结构。类图是系统模型的基础,描述系统的静态结构。 三个层次:三个层次: 对象层:描述问题域和系统责任所需的对象对象层:描述问题域和系统责任所需的对象 关系层:类之间的相互关系关系层:类之间的相互关系 特征层:类的属性和操作(分析阶段不用细化)特征层:类的属性和操作(分析阶段不用细化)顺序图(顺序图(SequenceSequence) 按时间顺序排列在完成某一功能过程中对象之间的交互按时间顺序排列在完成某一功能过程中对象之间的交互行为。行为。 协作图(协作图(CollaborationCollaboration) 以某一对象为中心描述
17、对象之间的交互。以某一对象为中心描述对象之间的交互。状态转换图(状态转换图(State TransitionState Transition) 描述对象在生命周期内,响应事件的状态转换过程,以描述对象在生命周期内,响应事件的状态转换过程,以及响应事件后所做的反映。及响应事件后所做的反映。包图(包图(ComponentComponent) 对关系密切的模型元素进行打包。对关系密切的模型元素进行打包。2.3 2.3 面向对象的分析过程面向对象的分析过程分析过程中各个步骤不要求按固定顺序进行。所以,面向分析过程中各个步骤不要求按固定顺序进行。所以,面向对象的分析步骤经常被叫做对象的分析步骤经常被叫做
18、“活动活动”。建立建立Use CaseUse Case发现对象发现对象定义属性与服务定义属性与服务建立结构与连接建立结构与连接定义:顺序图、定义:顺序图、协作图、状态图协作图、状态图建立建立ClassClass详细说明详细说明原型开发原型开发实施实施OOAOOA的几点建议:的几点建议:1 1)确定需求的工作放在前面;)确定需求的工作放在前面;2 2)建立)建立ClassClass图,可以随时切换到其他活动;图,可以随时切换到其他活动;3 3)建立顺序图、协作图和状态图的活动,放在对象)建立顺序图、协作图和状态图的活动,放在对象 识别之后,并与基本模型活动交错进行,识别之后,并与基本模型活动交错
19、进行,4 4)详细说明应分散在各项活动之中进行,最后做一次审)详细说明应分散在各项活动之中进行,最后做一次审查和补充;查和补充;5 5)原形可以反复地进行,早期的原型可以用来证实用户)原形可以反复地进行,早期的原型可以用来证实用户需求;需求;6 6)对于规模较小系统,分析时可以省略包图。)对于规模较小系统,分析时可以省略包图。第三章第三章 面向对象的设计面向对象的设计 3.1 3.1 面向对象设计概述面向对象设计概述3.2 3.2 问题域设计问题域设计3.3 3.3 人机交互设计人机交互设计3.4 3.4 控制驱动设计设计控制驱动设计设计3.5 3.5 数据管理设计数据管理设计3.6 3.6
20、构件和部署设计构件和部署设计3.1 3.1 面向对象设计概述面向对象设计概述按照软件生命周期的规律,面向对象的方法学也包括分按照软件生命周期的规律,面向对象的方法学也包括分析活动和设计活动。析活动和设计活动。分析活动和设计活动并没有明显的阶段划分,对应喷泉分析活动和设计活动并没有明显的阶段划分,对应喷泉式模型:式模型:演化演化维护维护测试测试实现实现设计设计分析分析 体现认识事物的循环迭代性体现认识事物的循环迭代性 强调开发活动的无间隙性(无强调开发活动的无间隙性(无明显的阶段划分)明显的阶段划分) 强调开发活动的并发性强调开发活动的并发性 面向对象分析活动面向对象分析活动-针对问题域和系统责
21、任,不考虑针对问题域和系统责任,不考虑与实现有关的因素,建立独立于实现的与实现有关的因素,建立独立于实现的OOA模型。模型。 面向对象设计活动面向对象设计活动-考虑与实现有关的问题,建立针考虑与实现有关的问题,建立针对具体实现的对具体实现的OOD模型,设计内容包括:模型,设计内容包括: 1)根据实现语言对类(属性与操作)进行描述)根据实现语言对类(属性与操作)进行描述 2)人机交互界面设计)人机交互界面设计 3)系统控制部分的设计)系统控制部分的设计 4)数据管理部分的设计)数据管理部分的设计 5)系统构件部署)系统构件部署问题域问题域 部分部分 详细说明详细说明控制驱动部分控制驱动部分人机交
22、互部分人机交互部分数据管理部分数据管理部分行为图与包图行为图与包图类图类图用况图用况图详详细细说说明明面向对象设计准则面向对象设计准则 以设计元素的耦合性、内聚性以及复用性为主以设计元素的耦合性、内聚性以及复用性为主要准则要准则 耦合性耦合性 衡量耦合度的两个方面:衡量耦合度的两个方面:成分之间的信息传输量成分之间的信息传输量成分之间传递信息的复杂程度成分之间传递信息的复杂程度 交互耦合:成分之间通过消息交互,越松散越好交互耦合:成分之间通过消息交互,越松散越好 继承耦合:成分之间有继承关系,越紧密越好继承耦合:成分之间有继承关系,越紧密越好 内聚性内聚性 操作内聚:完成单一功能的操作的内聚最
23、高操作内聚:完成单一功能的操作的内聚最高 类内聚:类中没有多余的属性和操作,且所有属性和类内聚:类中没有多余的属性和操作,且所有属性和操作应该是自身的责任,每个操作也是高内聚的。操作应该是自身的责任,每个操作也是高内聚的。 复用性复用性 执行代码级的复用执行代码级的复用 源代码级的复用和继承源代码级的复用和继承 分析和设计结果的复用和继承分析和设计结果的复用和继承 体系结构的复用和继承(设计模式)体系结构的复用和继承(设计模式) 清晰准则清晰准则统一的用语统一的用语一致的约定一致的约定消息模板要少消息模板要少类责任表达要明确类责任表达要明确独立处理算法和策略算法独立处理算法和策略算法继承关系层
24、次不宜过深继承关系层次不宜过深 类简洁性准则类简洁性准则避免过多的属性,使用继承保持属性量避免过多的属性,使用继承保持属性量对象间协作最小化对象间协作最小化避免过多的操作避免过多的操作保持操作的高内聚保持操作的高内聚保持内部成员的私有性保持内部成员的私有性(包括属性和操作)(包括属性和操作) 其他设计准则其他设计准则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 为提高性能进行类调整为提高性
25、能进行类调整 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 定义对象的可访问性定义对象的可访问性3.2.1 3.2.1 引入可引入可复用类复用类目标目标-尽可能地使用可以利用的复用成分。尽可能地使用可以利用的复用成分。例:已经存在图书类,在书店管理系统和图书馆例:已经存在图书类,在书店管理系统和图书馆系统中可以复用它。系统中可以复用它。 图书图书零售图书零售图书馆藏图书馆藏图书书店系统书店系统图书馆系统图书馆系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 讲解 课件
限制150内