软件工程复试——十一、面向对象设计

面向对象设计是将分析阶段的需求转化为实现方案的过程,强调模块化、抽象、信息隐藏和弱耦合等原则。文章介绍了面向对象设计的准则、启发规则、软件重用的层次与方法,以及如何设计子系统、类构件、数据管理系统。重用性是提高软件质量和生产率的关键,体现在代码、设计和分析结果的复用。设计优化涉及效率和清晰度的平衡,调整继承关系以提高继承程度。
摘要由CSDN通过智能技术生成

十一、面向对象设计

面向对象设计概念

​ 设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。从面向对象分析
到面向对象设计是一个逐渐扩充模型的过程,即面向对象设计就是用面向对象观点建立求解域模型的过程。

​ 分类:

  • 系统设计:确定实现系统的策略和目标高层结构

  • 对象设计:确定解空间中的类、关联、接口形式及实现服务的算法。

面向对象设计准则

准则:

  • 模块化(对象就是模块。他是把数据结构和操作这些数据方法紧密的结合在一起所构成的模块)
  • 抽象(支持过程抽象和数据抽象)
  • 信息隐藏(通过封装性实现)
  • 弱耦合(耦合包括交互耦合和继承耦合)
  • 强内聚(服务内聚、类内聚、一般-特殊内聚)
  • 可重用

启发规则

  • 设计结果清晰易懂(遵循用词一致、使用已有协议、减少消息数目、避免模糊定义等因素)
  • 一般-特殊结构深度适当
  • 设计简单的类(避免包括太多属性、有明确的定义、尽量简化对象之间的合作关系、不要提供太多服务)
  • 使用简单的协议
  • 使用简单的服务
  • 把设计变动减至最小

软件重用

重用也叫再用或复用,是指同一事物不作修改或稍加改动就多次重复使用。软件重用可分为以下3个层次:

  • 知识重用;
  • 方法和标准的重用;
  • 软件成分的重用。

重用一般分为以下三个级别

① 代码重用
代码重用是调用库中的模块。
形式:
第一,源代码剪贴
是最原始的重用形式,复制或修改源代码时可能出错,且存在严重的配置管理问题。
第二,源代码包含
配置管理问题有所缓解,所有包含它的程序都必须重新编译。
第三,继承
无须修改已有的代码,就可扩充或具体化在库中找出的类。基本上不存在配置管理问题。
② 设计结果重用
重用某个软件系统的设计模型(求解域模型),有助于把一个应用系统移植到完全不同的软硬件平台上。
③ 分析结果重用
是一种更高级别的重用,重用某个系统的分析模型。特别适用于用户需求未改变,但系统体系结构发生了根
本变化的场合。

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

1、可重用软构件的特点
为使软构件也像硬件集成的电路那样,能在构造各种各样的软件系统时方便地重复使用,就必须使它们满足
下列要求:
① 模块独立性强
具有单一、完整的功能,且经过反复测试被确认是正确的。它应该是一个不受或很少受外界干扰的封装体,
其内部实现在外面是不可见的。
② 具有高度可塑性
可重用的软构件必须具有高度可裁剪性,即必须提供为适应特定需求而扩充或修改已有构件的机制,而且所
提供的机制必须使用起来简单方便。
③ 接口清晰、简明、可靠
软构件应该提供清晰、简明、可靠的对外接口,而且还应该有详尽的文档说明,以方便用户使用。

2、类构建的重用方式

① 实例重用
除了用已有的类为样板直接创建该类的实例之外,还可以用几个简单的对象作为类的成员创建出一个更复杂
的类。
② 继承重用
当己有的类构件不能通过实例重用方式满足当前系统的需求时,利用继承机制从巳有类派生出符合需要的子
类,是安全修改巳有的类构件并获得可在当前系统中使用的类构件的有效手段。
③ 多态重用
在设计类构件时应把注意力集中在下

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值