- 1、本文档共63页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程课件第十一章、十二章讲述
第十一章 面向对象设计
第十二章 面向对象实现
教学内容
11.1 面向对象设计的准则
11.2 启发规则
11.3 软件重用
11.4 系统分解
11.5 设计问题域子系统
11.6 设计人机交互子系统
11.7 设计任务管理子系统
11.8 设计数据管理子系统
11.9 设计类中的服务
本章概述
面向对象设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。
从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程
生命周期方法学把设计进一步划分成总体设计和详细设计两个阶段,类似地,也可以把面向对象设计再细分为系统设计和对象设计。
系统设计确定实现系统的策略和目标系统的高层结构。
对象设计确定解空间中的类、关联、接口形式及实现操作的算法。
11.1 面向对象设计的准则
模块化( Modularity ) :对象就是模块。把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。
抽象:不仅支持过程抽象,而且支持数据抽象。
信息隐蔽:通过对象的封装性来实现。
弱藕合:对象是最基本的模块,因此,耦合主要指不同对象之间相互关联的紧密程度。分为交互藕合和继承藕合
强内聚:分为服务内聚、类内聚和一般特殊内聚。
可重用:11.3 节讨论
强内聚:分为服务内聚、类内聚和一般特殊内聚。
可重用:11 . 3 节讨论
11. 2 启发规则
设计结果应该清晰易懂
一般特殊结构的深度适当
设计简单的类
使用简单的协议
使用简单的服务
把设计变动减至最小
11. 3 软件重用
1 1.3.1 概述
1、软件重用的概念
软件复用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
可复用的软件成分一可复用构件( Reusable Component )可从旧软件中提取,也可以专门为复用而开发。
在软件复用中重复使用的软件产品不仅仅局限于程序代码,而是包含了在软件生产的各个阶段所得到的各种软件产品。
可以用于软件复用的软件产品,按照其抽象程度的高低,可以划分为如下的复用级别:
(1)代码复用
二进制形式的经过编译产生的目标代码。
文本形式的源代码
(2)设计结果的复用
设计结果比源程序的抽象级别更高,因为它的复用受实现环境的影响较小,从而使可复用构件被复用的机会更多,并且所需的修改更少。这种复用有三种途径:
软件成分的重用级别
从现有系统的设计结果中提取一些可复用的设计构件
把一个现有系统的全部设计文档在新的软硬件平台上重新实现。
独立于任何具体的应用,有计划地开发一些可复用的设计构件
(3)分析结果的复用
这是比设计结果的复用抽象程度更高的复用,可被复用的分析结果是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现条件的影响非常小,所以可复用的机会更大。
11.3.2 类构件
面向对象技术中的“类”,是比较理想的可重用软构件,称之为类构件。
1 、可重用软构件的特点
一个软构件能在构造各种各样的软件系统时方便地重复使用,必须具备的条件:
独立性强:
高度可塑性:
接口清晰
2、类构件重用的方式
实例重用
继承重用
多态重用
11.3.3 软件重用的效益
提高软件质量
提高软件生产率
降低软件成本
11.4 系统分解
系统的主要组成部分称为子系统。
与面向对象分析模型一样,面向对象设计模型也由主题、类与对象、结构、属性、服务等 5 个层次组成。
大多数系统的面向对象设计模型在逻辑上都由 4 大部分组成,分别是:
问题域子系统(问题空间类)
人机交互子系统(用户界面类)
任务管理子系统(任务管理类)
数据管理子系统(数据管理类)
1、子系统之间的两种交互方式
客户一供应商关系
作为“客户”的子系统调用作为“供应商”的子系统,后者完成某些服务工作并返回结果。
平等伙伴关系
每个子系统都可能调用其他子系统,因此,每个子系统都必须了解其他子系统的接口。
2、组织系统的两种方案
把子系统组织成完整的系统时,有水平层次组织和垂直块组织两种方案可供选择。
层次组织
这种组织方案把软件系统组织成一个层次系统,每层是一个子系统。
块状组织
这种组织方案把软件系统垂直地分解成若干个相对独立的、弱藕合的子系统,一个子系统相当于一块,每块提供一种类型的服务。
采用了层次与块状的混合结构
概括地说,面向对象软件开发方法采用面向对象设计 (OOD)技术进行问题解决方案的设计工作,它将问题的解决方案表述为:
类+关联
的形式,其中,
类包括问题域子系统(问题空间类)、人机交互子系统(用户界面类)、任务管理子系统(任务管理
文档评论(0)