系统集成项目管理工程师-结构化设计面向对象设计UML与设计模式

系统集成项目管理工程师-结构化设计面向对象设计UML与设计模式

一、软件设计概述(掌握)

需求阶段解决“做什么”,软件设计阶段解决“怎么做”。软件设计分为结构化设计面向对象设计


二、结构化设计(SD)(掌握)

结构化设计是一种面向数据流的方法,以SRS和SA阶段的DFD、数据字典为基础,自顶向下、逐层分解、逐步求精和模块化。

从管理角度分为概要设计详细设计两个阶段。

阶段

主要任务

概要设计(总体结构设计)

确定软件系统结构,将功能需求进行模块划分,确定每个模块的功能、接口和调用关系,形成模块结构图(系统结构图)

详细设计

为每个模块设计实现细节,包括输入/输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等

1. 模块结构

信息隐藏与抽象:采用封装技术,将模块实现细节隐藏,模块设计成“黑盒”,外部只能使用接口说明中的信息。

模块化:模块具有功能、逻辑和状态3个基本属性。先确定外部特性,再确定内部特性。

耦合(模块间联系程度,越低越好):

耦合类型(从低到高)

描述

非直接耦合

两个模块无直接关系,完全通过上级模块控制调用

数据耦合

借助参数表传递简单数据

标记耦合

通过参数表传递记录等复杂信息(数据结构)

控制耦合

传递的信息中包含控制模块内部逻辑的信息

通信耦合

一组模块共用一组输入信息,或输出需整合

公共耦合

多个模块访问同一个公共数据环境

内容耦合

一个模块直接访问另一个模块的内部数据,或有多个入口等

内聚(模块内部各成分联系紧密程度,越高越好):

内聚类型(从高到低)

描述

功能内聚

完成一个单一功能,各部分协同工作

顺序内聚

处理元素相关且必须顺序执行

通信内聚

所有处理元素集中在一个数据结构的区域上

过程内聚

处理元素相关且必须按特定次序执行

时间内聚

所包含的任务必须在同一时间间隔内执行

逻辑内聚

完成逻辑上相关的一组任务

偶然内聚

完成一组没有关系或松散关系的任务

📌 设计原则:高内聚、低耦合

2. 系统结构图

系统结构图(SC)是软件概要设计阶段的工具,反映系统功能实现和模块之间的联系与通信。

3. 详细设计工具

工具类别

具体工具

描述

图形工具

业务流程图

描述管理系统内各单位、人员之间的业务关系和作业顺序

程序流程图

用方框、菱形、箭头描述程序逻辑,最广泛使用

NS流程图(盒图)

强制使用结构化构造,功能域明确,不能任意转移控制

PAD图

改进的图形描述,反映自顶向下的历史过程,提供5种基本控制结构

表格工具

判定表等

列出各种可能的操作和相应条件

语言工具

伪码/PDL

用高级语言描述过程细节,可作为注释直接插在源程序中


三、面向对象设计(OOD)(掌握)

OOD基本思想包括抽象、封装、可扩展性(通过继承和多态实现)。主要任务是对类和对象进行设计。

1. 常用面向对象设计原则(7个)

原则

说明

单职原则

一个类应有且仅有一个引起它变化的原因

开闭原则

对扩展开放,对修改封闭

李氏替换原则

子类可以替换父类,不能改变父类原有功能

依赖倒置原则

依赖于抽象,不依赖于具体实现;针对接口编程

接口隔离原则

使用多个专门接口比使用单一总接口好

组合重用原则

尽量使用组合而不是继承达到重用

迪米特原则(最少知识法则)

一个对象应尽可能少了解其他对象,降低耦合

📌 记忆口诀:单开李依接组迪(单职、开闭、李氏替换、依赖倒置、接口隔离、组合重用、迪米特)

2. 类的三种类型

类型

描述

实体类

映射需求中的每个实体,保存需要存储在永久存储体中的信息(如学员类、课程类)

控制类

用于控制用例工作的类,由动宾结构短语转化而来(如身份验证器)

边界类

封装在用例内、外流动的信息或数据流,位于系统与外界的交接处(如窗体、报表、打印机接口)


四、统一建模语言UML(掌握)

UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言(不是编程语言)。结构包括构造块、规则和公共机制

1. UML中的事物(建模元素)

事物类型

说明

结构事物

最静态的部分,有7种:类、接口、协作、用例、活动类、构件、节点

行为事物

动态部分,包括交互(内部活动)和状态机

分组事物

唯一的包,是一种将有组织的元素分组的机制,只存在于开发阶段

注释事物

UML模型的解释部分

2. UML中的关系(4种)

关系

说明

依赖

一个事物变化影响另一个事物

关联

一种对象和另一种对象有联系

泛化

一般元素和特殊元素之间的分类关系

实现

一个类指定了由另一个类保证执行的契约

3. UML 2.0 的14种图

UML 14种图分类图

序号

说明

1

类图

描述一组类、接口、协作及它们之间的关系,给出系统静态设计视图

2

对象图

描述一组对象及它们之间的关系

3

构件图

描述一个封装的类和它的接口、端口及内部结构

4

组合结构图

描述结构化类的内部结构及交互点

5

用例图

描述一组用例、参与者及它们之间的关系

6

顺序图(序列图)

强调消息的时间次序的交互图

7

通信图

强调收发消息的对象或参与者的结构组织

8

定时图(计时图)

强调消息跨越不同对象或参与者的实际时间

9

状态图

描述状态机,由状态、转移、事件和活动组成

10

活动图

展示计算内部一步步的控制流和数据流

11

部署图

描述运行时处理节点及构件配置

12

制品图

描述计算机中一个系统的物理结构

13

包图

描述模型本身分解而成的组织单元及依赖关系

14

交互概览图

活动图和顺序图的混合物

4. UML视图

视图

说明

逻辑视图(设计视图)

表示设计模型中架构方面重要的部分

进程视图

可执行线程与进程作为活动类的建模,描述并发与同步结构

实现视图

对组成系统的物理代码的文件和构件进行建模

部署视图

把构件部署到物理节点上,表示软件到硬件的映射

用例视图

最基本的需求分析模型


五、设计模式(掌握)

设计模式是前人经验的总结,使人们可以方便地复用成功的软件设计。

根据处理范围:类模式和对象模式。

根据目的和用途(3种):

类型

描述

创建型模式

主要用于创建对象

结构型模式

主要用于处理类或对象的组合

行为型模式

主要用于描述类或对象的交互以及职责的分配


六、本章真题小测

Q1:模块的耦合类型中,耦合度最低的是()。

A. 数据耦合 B. 非直接耦合 C. 标记耦合 D. 控制耦合

Q2:UML中,强调消息的时间次序的交互图是()。

A. 通信图 B. 顺序图 C. 定时图 D. 活动图

Q3:面向对象设计原则中,“一个类应该有且仅有一个引起它变化的原因”指的是()。

A. 开闭原则 B. 单职原则 C. 李氏替换原则 D. 迪米特原则

📩 答案:

Q1答案:B解析:

耦合度从低到高:非直接耦合 <数据耦合<标记耦合<控制耦合。非直接耦合:模块之间没有直接联系,完全通过主程序调度,耦合度最低。

Q2答案:B解析:

  • 顺序图:重点强调消息发送的时间次序、先后顺序

  • 通信图:侧重对象之间连接关系,不突出时间顺序;

  • 定时图:侧重时间约束、时间间隔;

  • 活动图:侧重流程、活动流转。

Q3答案:B解析:

单一职责原则(单职原则):一个类应该有且仅有一个引起它变化的原因。

  • 开闭原则:对扩展开放,对修改关闭

  • 李氏替换原则:子类可以替换父类

  • 迪米特原则:最少知道原则,尽量减少对象之间交互

✅汇总答案

Q1:B;Q2:B;Q3:B