第三章 软件总体设计

1.系统设计包括哪两个阶段?总体设计的主要任务是什么?
答:①为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。对程序(特别是复杂的大型程序)的设计,通常分为两个阶段完成:
l 结构设计:确定程序由哪些模块组成,以及这些模块之间的关系;
l 过程设计:确定每个模块的处理过程。
其中,结构设计是总体设计阶段的任务,过程设计是详细设计阶段(通过对结构设计内容进行细化,得到软件的详细的数据结构和算法)的任务。
②总体设计的主要任务是:设计软件的结构——也即确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系(如何组成?如何调用?)。

3.什么是模块化?模块设计的准则?
答:①模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,既相对独立,又相互联系,把这些模块集成起来构成一个整体,可以完成软件系统所要求的功能。模块化是解决软件复杂问题的一种手段。对于一个复杂的大型软件系统,应该将它适当分解,即把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了。这就是模块化的根据。
②模块设计准则:
1 改进软件结构提高模块独立性
2 模块规模应该适中
3 深度、宽度、扇出和扇入都应适当
4 模块的作用域应该在控制域之内
5 力争降低模块接口的复杂程度
6 设计单入口、单出口的模块
7 模块功能应该可以预测
8 软件包应满足设计约束和可移植性

5.衡量模块独立性的两个标准是什么?它们各表示什么含义?
答:①模块的独立性一般采用耦合和内聚这两个定性的技术指标进行度量。
②耦合用来反映模块之间互相连接的紧密程度,模块之间的连接越紧密,联系越多,耦合性就越高——即模块之间的耦合性。
内聚用来反映模块内部各个元素彼此结合的紧密程度,一个模块内部各个元素之间结合越紧密,则它的内聚性就越高——即模块自身的内聚性。
因此,为了使模块具有较强的独立性,要求模块是高内聚、低耦合。

8.如何设计软件系统结构?
答:从细化后的DFD出发,映射数据流是建立软件结构的一个系统化的途径。具体表现为:
①需求分析阶段,信息流是一个关键考虑,通常用DFD描绘信息在系统中加工和流动的情况。
②任何软件系统都可以用DFD表示,所以映射数据流的方法可以设计任何软件的结构。
③把DFD中的信息流映射成软件结构时,信息流的类型决定了映射的方法——变换流和事务流。

10.欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/取款单和存折交给银行工作人员,然后由系统作以下处理;

  (1)业务分类处理:系统首先根据储户所填的存/取款单,确定本次业务的性质,并将存/取款单和存折交下一步处理;

  (2)存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最后将存折还给储户;

  (3)取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最后将现金和存折还给储户。

  绘制该系统的数据流图和软件结构图。

  

解:

系统总体设计系统架构 系统总体设计主要包括_模块化