其他分享
首页 > 其他分享> > (软件工程复习核心重点)第十章面向对象设计-第三节:系统分解和设计问题域子系统

(软件工程复习核心重点)第十章面向对象设计-第三节:系统分解和设计问题域子系统

作者:互联网

文章目录

一:系统分解

(1)分解思想

在设计比较复杂的应用系统时,先把系统分解成若干个较小部分,然后分别设计每个部分。这样做有利于降低设计的难度,有利于分工协作,也有利于维护人员对系统理解和维护

(2)子系统

A:定义

系统的主要组成部分称为子系统,通常根据所提供的功能来划分子系统

B:划分原则

(3)分解面向对象设计模型

A:表示

典型的面向对象设计模型如下图所示
在这里插入图片描述

B:子系统间交互方式

①:客户-供应商关系(Client-supplier)

作为“客户”的子系统调用作为“供应商”的子系统,后者完成某些服务工作并返回结果。作为客户的子系统必须了解作为供应商的子系统的接口,后者却无须了解前者的接口

②:平等伙伴关系

每个子系统都可能调用其他子系统,每个子系统都必须了解其他子系统的接口。由于各个子系统需要相互了解对方的接口,子系统之间的交互复杂,且还可能存在通信环路

C:组织系统的方案

①:层次组织

软件系统组织成一个层次系统,每层是一个子系统。上层在下层的基础上建立,下层为实现上层功能而提供必要的服务。每一层内所包含的对象,彼此间相互独立,而处于不同层次上的对象,彼此间有关联。在上、下层之间存在客户-供应商关系。低层子系统提供服务,上层子系统使用下层提供的服务

②:块状组织

把软件系统垂直地分解成若千个相对独立的、弱耦合的子系统,一个子系统相当于一块,每块提供一种类型的服务

③:层次和块状的结合

当混合使用层次结构和块状结构时,同一层次可以由若干块组成,而同一块也可以分为若干层

④:设计系统的拓扑结构

典型的拓扑结构有管道形、树形、星形等。应采用与问题结构相适应的、尽可能简单的拓扑结构,以减少子系统之间的交互数量

二:设计问题域子系统

(1)概念

(2)对问题域模型进行的处理

A:调整需求

①:需要进行调整的情况

②:方法

简单地修改面向对象分析结果,然后再把这些修改反映到问题域子系统中

B:重用已有的类

步骤为:

  1. 在已有类中找出与问题域内某个最相似的类作为被重用的类
  2. 从被重用的类派生出问题域类
  3. 简化对问题域类的定义(从被重用的类继承的属性和服务无须再定义)
  4. 修改与问题域类相关的关联,必要时改为与被重用的类相关的关联

C:把问题域类组合在一起

D:增添一般化类以建立协议

在设计过程中常常发现,一些具体类需要有一个公共的协议,可以引入附加类以便建立这个协议

E:调整继承层次

如果面向对象分析模型中包含了多重继承关系,然而所使用的程序设计语言却并不提供多重继承机制,则必须修改面向对象分析的结果。具体如下:

标签:层次,模型,面向对象分析,问题,面向对象,软件工程,设计,子系统
来源: https://blog.csdn.net/qq_39183034/article/details/122736337