首页计算机计算机软件软件工程 11 第十一章 面向对象设计.pptx

11 第十一章 面向对象设计.pptx

页数:27页文件大小:140.1 KB来源: 软件工程ppt课件

本课件讲解面向对象设计的准则与启发规则,介绍软件重用的层次与效益,并依次展开问题域、人机交互、任务管理与数据管理四类子系统的设计方法以及类中服务的设计要点。

第11章章节页,指出对象就是模块并把数据结构和操作方法紧密结合在一起构成模块
抽象准则页,指出类是一种抽象数据类型且对外开放的公共接口构成类的规格说明协议
信息隐蔽页,指出面向对象方法中信息隐蔽通过对象的封装性实现并分离了类的接口与实现
查看本课件的文字版(共 27 页,供检索与复制)

第1页:第11章 面向对象设计

第11章 面向对象设计:1.1面向对象设计的准则1.模块化面向对象的软件开发模式,支持了系统模块化的原则:对象就是模块。它把数据结构和操作(方法)紧密地结合在一起构成模块

第2页:抽象

抽象:类实际上是一种抽象数据类型,它对外开放的公共接口构成了类的规格说明(协议),这种接口规定了外界可以使用的合法操作符,利用这些操作符可以对类的实例中包含的数据进行操作

第3页:信息隐蔽

信息隐蔽:在面向对象方法中,信息隐蔽通过对象的封装性实现:类结构分离了类的接口与类的实现,从而支持了信息隐蔽

第4页:弱耦合

弱耦合:弱的耦合可以提高软件模块的独立性,避免某一部分模块发生变化对其它模块有较大的影响

第5页:交互耦合与继承耦合

交互耦合与继承耦合:一般来说,对象间的耦合有两大类

  • 交互耦合:对象间的耦合通过信息连接来实现。应使交互耦合尽量松散
  • 继承偶合:与交互耦合相反,应该提高继承耦合的程度。因为通过继承关系结合起来的基类和派生类,结合得越紧密越好

第6页:强内聚

强内聚

  • 5.强内聚面向对象设计中存在三种内聚
  • 服务内聚:一个服务应该完成一个且完成一个功能
  • 类内聚:一个类应该只有一个用途,它的属性和服务应该是高内聚的
  • 一般—特殊内聚:即基类—

第7页:可重用

可重用:使用已经存在的类(包括开发环境提供的类库,及以往开发相似系统时创建的类),可以提高软件重用性,提高软件生产率

第8页:启发规则

启发规则:人们在面向对象方法中也积累了一些经验

  • 1.设计结果应该清晰易懂
  • 用词一致
  • 使用已有的协议
  • 减少消息模式的数目
  • 避免模糊的定义

第9页:类等级深度应适当

类等级深度应适当:一般—特殊结构的深度应适当:中等规模的系统中,类等级层次数应保持为7±2。不是必要情况,不应该随意创建派生类

第10页:设计简单的类

设计简单的类

  • 3.设计简单的类:设计小而简单的类,便于开发和管理
  • 避免包含过多的属性
  • 有明确的定义
  • 尽量简化对象之间的合作关系
  • 不要提供太多服务

第11页:简单的协议与服务

简单的协议与服务

  • 4.使用简单的协议:设计简单的类接口,发送的消息中参数要少
  • 5.使用简单的服务:编写实现每一个服务时,避免复杂的语句和结构
  • 6.把设计变动减至最小

第12页:软件重用概述

软件重用概述

  • 1.重用重用的三个层次
  • 知识重用
  • 方法和标准的重用
  • 软件成分的重用

第13页:软件成分的重用级别

软件成分的重用级别

  • 代码重用a.源代码剪贴;b.源代码包含;c.继承
  • 设计结果重用
  • 分析结果重用

第14页:典型的可重用软件成分

典型的可重用软件成分

  • 项目计划
  • 成本计划
  • 体系结构
  • 需求模型和规格说明
  • 设计
  • 源代码
  • 用户文档和技术文档
  • 用户界面
  • 数据
  • 测试用例

第15页:系统分解

系统分解:类与对象层人机交互部分问题域部分任务管理部分数据管理部分主题层结构层属性层服务层图11.2典型的面向对象设计模型

第16页:设计问题域子系统

设计问题域子系统:在设计问题域部分时,仅需要从实现的角度对问题域模型(对象模型、动态模型、功能模型)作一些补充、修改,主要是增添、合并或分解类与对象、属性和服务,调整继承关系等

第17页:问题域子系统的设计内容

问题域子系统的设计内容

  • 1.调整需求
  • 2.重用已有的类
  • 3.组合问题域的类
  • 4.增添基类以定义公共函数集合
  • 5.调整继承层次
  • 使用多重继承机制
  • 使用单继承机制

第18页:ATM系统实例

ATM系统实例

第19页:设计人机交互子系统

设计人机交互子系统:在面向对象分析中,已经对用户界面需求作了初步分析,在面向对象设计过程中,要对系统人机交互部分进行详细设计,其中包括指定窗口和报表的形式、设计命令层次等等

第20页:人机交互的设计策略

人机交互的设计策略

  • 分类用户
  • 描述用户
  • 设计命令层次
  • 设计人机交互类

第21页:分析并发性

分析并发性:设计任务管理子系统任务可视作进程(Process)1.分析并发性基于动态模型分析并发性,如果对象间不存在交互,或不同时接受事件,则是并发的。并发任务可以在不同的处理器上实现,也可以在单个处理器上利用多任务操作系统实现

第22页:事件驱动与时钟驱动任务

事件驱动与时钟驱动任务

  • 2.设计任务管理子系统
  • 确定事件驱动型任务:主要完成通信工作工作过程:睡眠等待来自数据线的中断任务唤醒、接收数据通知相应对象继续睡眠
  • 确定时钟驱动型任务每隔一定时间触发执行某些任务
  • 确定优先任务

第23页:优先任务与协调任务

优先任务与协调任务

  • 确定关键任务
  • 确定协调任务当同时运行的任务较多时(3个以上),一般设计协调任务,会增加系统开销,但有利于封装不同任务间的协调控制
  • 尽量减少任务数
  • 确定资源需求计算系统载荷(单位时间处理业务数),估算所需CPU性能

第24页:选择数据存储管理模式

选择数据存储管理模式:设计数据管理子系统

  • 1.文件管理系统
  • 2.关系数据库管理系统
  • 3.面向对象数据库管理系统

第25页:设计数据格式与服务

设计数据格式与服务:设计数据管理子系统

  • 1.设计数据格式
  • 2.设计相应的服务

第26页:ATM系统的数据管理实例

ATM系统的数据管理实例:ATM系统实例采用成熟的商品化关系数据库。根据数据库范式设计,保持数据一致性、完整性。处理并发事务时,每个事务作为一个不可分割的批操作来处理,由事务封锁帐户,直至事务结束

第27页:设计类中的服务

设计类中的服务

  • 1.设计实现服务的算法
  • 算法复杂度
  • 容易理解、容易实现
  • 容易修改
  • 2.选择数据结构
  • 3.定义内部类和内部操作
顶部目录