选择题

填空题


总体设计的设计原理包括

  • 模块化
  • 抽象
  • 逐步求精
  • 信息隐藏和局部化
  • 模块独立性

请按照耦合度从低到高写出常见耦合方式

  • 完全独立
  • 数据耦合
  • 特征耦合
  • 控制耦合
  • 外部耦合
  • 公共耦合
  • 内部耦合

耦合设计原则为:

在这里插入图片描述


内聚由低到高为

  • 偶然内聚
  • 逻辑内聚
  • 时间内聚
  • 过程内聚
  • 通信内聚
  • 顺序内聚
  • 功能内聚

一个完整的模块包括

  • 执行规定的功能部分
  • 出错处理部分
  • 返回一个结束标志

名词解释

  • 模块:模块是由边界元素限定的相邻程序元素所组成的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件
  • 模块化:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能以满足用户的需求
  • 模块独立性:开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立
  • 抽象:抽出事物的本质特性而暂时不考虑它们的细节
  • 逐步求精:逐步求精是软件工程技术的基础,为了能集中精力解决主要问题而尽量推迟对问题细节的考虑
  • 信息隐藏:指一个模块内包含的信息对于不需要这些信息的模块来说是不能访问的,主要是指模块的实现细节
  • 局部化:指把一些关系密切的软件元素物理地放得彼此接近,有助于实现信息隐藏
  • 耦合:是对一个软件结构内不同模块间互连程序的度量。耦合强度取决于模块接口的复杂程度、通过接口的数据等。耦合度越高,模块独立性越弱
  • 内聚:是用来度量一个模块内部各个元素彼此结合的紧密程度。内聚度越高,紧密程度越高
  • 深度:表示软件结构中控制的层数,能粗略地标志一个系统的大小和复杂程度
  • 宽度:是软件结构内同一个层次上的模块总数的最大值
  • 扇出:是一个模块直接控制的模块数目
  • 扇入:表明有多少个上级模块直接调用它。扇入越大则共享该模块的上级模块数目越多。但是,不能违背模块独立原理单纯追求高扇入

简答题

(1)必考

1.总体设计的相关概念

【答案】

总体设计的定义:总体设计的基本目的就是回答“系统应该如何实现”这个问题,又称为概要设计或初步设计

总体设计的任务:确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系

总体设计的概括

在这里插入图片描述

总体设计的必要性:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统


2.总体设计的步骤

【答案】

在这里插入图片描述


3.简述设计原理(这一部分中的内容基本会分散在名词解释和填空题中记忆)

在这里插入图片描述


  1. 模块独立性的重要性

【答案】

  • 具有独立模块的软件比较容易开发出来
  • 独立的模块比较容易测试和维护

5.请简述耦合方式

【答案】

在这里插入图片描述

6.请简述内聚方式

【答案】

在这里插入图片描述

7.请简述启发式规则

【答案】

  • 改进软件结构以提高模块独立性
  • 模块的规模应该适当
  • 深度、宽度、扇入、扇出数目应该适当
  • 模块的作用域应该在控制域之内
  • 力争降低模块接口的复杂程度
  • 设计单入口单出口的模块
  • 模块的功能应该可以预测但要防止过分局限

  1. 简述层次图和HIPO图

【答案】

  • 层次图:层次图用于描绘软件的层次结构,其中一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系层次图很适于在自顶向下设计软件的过程中使用。通常用层次图作为描绘软件结构的文档
  • HIPO图:HIPO图本质就是层次图加编号。也即HIPO图=层次图+输入/处理/输出图

9.简述结构图

【答案】

在这里插入图片描述

(2)了解

1.简述一般的抽象过程和软件工程抽象工程

【答案】

在这里插入图片描述

画图题/应用题

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐