02333自考(2011年版)软件工程课后习题参考答案——第三章

版权声明:欢迎转载!如有纰漏之处,欢迎批评指正! https://blog.csdn.net/black_kyatu/article/details/81608219

1.、解释术语
1)需求分析
答:一般来说,分析是系统地使用信息,对一个问题的估算。软件需求分析是这一概念的特化,即系统化地使用“数据流”、“加工”、“数据存储”、“数据源”和“数据潭”等术语所表达的信息,对待建系统“是什么”给出一个估算――系统概念模型 软件设计:在需求分析的基础上,定义满足需求所需要的结构,即针对给定的问题,给出该问题的软件解决方案,确定“怎么做”的问题。
2)软件设计
答:在需求分析的基础上,定义满足需求所需要的结构,即针对给定的问题,给
出该问题的软件解决方案,确定“怎么做”的问题
3)数据流图
答:表达功能模型的工具,即数据流图( Dataflow Diagram ) 简称DFD图,简单
的说,DFD图是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。
4)变换性数据流图
答:具有较明显的输入部分和变换(主加工)部分之间的界面、变换部分和
输出部分之间界面的数据流图
5)事务性数据流图
答::数据到达一个加工T,该加工T 根据输入数据的值,在其后的若干动作
序列(称为一个事务)中选出一个来执行的数据流图
6)模块
答::执行一个特殊任务的一个过程以及相关的数据结构称为模块

2、何谓模块耦合?简述模块耦合的类型
答:耦合是不同模块之间相互依赖程度的度量。
模块耦合分为以下几个类型:

  • 内容耦合:当一个模块直接修改或操作另一个模块的数据,或一个模块不通过正常入口而转入到另一个模块时,称为内容耦合
  • 公共耦合:两个或两个以上的模块共同引用一个全局数据项,这种耦合被称为公共耦合
  • 控制耦合:一个模块通过接口向另一个模块传递一个控制信号,接收信号的模块根据信号值进行适当的动作
  • 标记耦合:若一个模块A通过接口向两个模块B 和C传递一个公共参数,称模块B和C之间存在标记耦合
  • 数据耦合:模块之间通过参数来传递数据

3、何谓模块内聚?简述模块内聚的类型
答:内聚指一个模块内部各成分之间相互关联程度的度量
内聚的类型:

  • 偶然内聚:一个模块的各成分之间基本不存在任何关系
  • 逻辑内聚:几个逻辑上相关的功能被放在同一个模块中
  • 时间内聚:一个模块完成的功能必须在同一时间内执行,但这些功能只是因为时间因素关联在一起
  • 过程内聚:一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行
  • 通信内聚:一个模块的所有成分都操作同一数据集或生成同一数据集
  • 顺序内聚:一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另一个成分的输入
  • 功能内聚:最理想的内聚,模块的所有成分对于完成单一的功能都是基本的。功能内聚的模块对完成其功能而言是充分必要的

4、何谓模块的控制域和模块的作用域?并举例说明
答:控制域:模块本身以及所有直接或间接从属于它的模块的集合。
作用域:受该模块内的一个判定所影响的所有模块的集合

5、简答以下问题:
1)为了表达系统功能模型,结构化方法给出了哪些基本概念?它们是如何表示的?其基本作用是什么?使用中应注意哪些问题?
答:
给出的基本概念 :

  • 数据流、加工、数据存储、数据源和数据潭。

表示方法 :

  • 数据流表示方法:方向向右的箭头;
  • 加工的表示方法:椭圆;
  • 数据存储表示方法:两条平行线;
  • 数据源和数据潭表示方法:一个长方形。

作用 :

  • 数据流:用于表达在分析中所使用的、用于表达“客体”的信号。
  • 加工:用于表达在分析中所使用的、用于表达“处理”的信号。
  • 数据存储:用于表达在分析中所使用的、用于表达“结构化客体”的信号。
  • 数据源和数据潭:表示系统的环境,可以使用它们和相关数据流来定义系统的边界,表达系统 /产品“边界”的信息。

2)以结构化分析方法建立的系统功能模型由哪些部分组成?每一部分的基本作用是什么?
答:组成部分:数据流、加工、数据存储、数据源和数据潭。作用同上。

3)解释结构符“+”、“|”、“{}”的含义,并举例说明。
答:结构符用于定义数据结构:
+表示顺序结构,例如 班级=班主任+学生
|表示选择结构,例如 性别=男|女
{}表示重复结构,例如 学生成绩={学生成绩}

4)就一个特定系统而言,系统功能模型与系统模型的主要区别是什么?
答:
区别:系统功能模型分为数据流、加工、数据存储、数据源和数据潭这四部分组成。
系统模型分为两类:一类称为概念模型,描述了系统是什么;另一类系统称为软件模型,描述了实现概念模型的软件解决方法。

5)简述结构化方法总体设计的任务及目标
答:任务:在需求分析的基础上,定义满足需求所需要的结构。目标:建立系统的模块结构。

6)简述结构化方法详细设计的任务及目标。
答:任务:具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和数据结构,从而精确地定义了满足需求所规约的结构。
目标:将总体设计阶段所产生的系统高层结构映射为以这些术语所表达的低层结构,也是系统的最终结构。

7)简述变换设计与事务设计之间的区别。
答: 区别:变换设计的目标是将变换型数据流图映射为模块结构图,而事务设计的目标是将事务型数据流图映射为模块结构图。

8) 简述启发式规则的基本原理。
答:启发式规则“基于高内聚低耦合的原理,采用一些经验性的启发式规则,对初始的模块结构图进行精化,形成最终的模块结构图” 。
启发式规则包括:
1. 改进软件结构,提高模块独立性。
2. 力求模块规模适中。
3. 力求深度、宽度、扇出和扇入适中。
4. 尽力使模块的作用域在其控制域之内。
5. 尽力降低模块接口的复杂度。
6. 力求模块功能可以预测。

9)简述依据一个系统的DFD,将其转换为MSD的基本思路
答:结构化设计方法在分类DFD 的基础上,基于自顶向下、功能分解的设计原则,定义了两种不同的“映射” ,即变换设计和事务设计。其基本步骤是,首先将系统的DFD 图首先转化为初始的模块结构图,再基于“高内聚低耦合”这一软件设计原理,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块结构图

10)为什么说结构化设计与结构化分析之间存在一条鸿沟?
答::从软件方法学习研究的角度,结构化方法仍然存在一些问题,其中最主要的问题是仍然没有“摆脱”冯·诺依曼体系结构的影响,捕获的“功能(过程) ”和“数据”恰恰是客观失误的易变性质,由此建造的系统结构很难与客观实际系统的结构保持一致。

6、举例说明结构化方法给出的控制复杂性机制
答:

  • 上层数据流可以打包,实例研究数据流查询要求就是一个打包数据,并以* 作一特殊标志。上下层数据流之间的对应关系通过数据字典予以描述。
  • 为便于理解,把一幅图中图元个数尽量控制在7 加减2 个以内。
  • 检查与每个加工相关的数据流是否有太多的输入/ 输出数据流,并寻找可降低该加工接口复杂性的,对数据流进行划分的方法。
  • 分析数据内容,确定是否所有的输入信息都用于产生输出信息,相应的由一个加工产生的所有信息是否都能由进入该加工的信息导出。

7、试分析结构化方法在建造系统模型中存在的问题。
答:最主要的问题是没有摆脱冯·诺依曼体系结构的影响,捕获的功能过程和数据恰恰是客观事物的易变性质,由此建造的系统结构很难与客观实际系统的结构保持一致。在某种意义上说就是这些问题促使面向对象方法学的产生和发展。

9、举例说明变换设计的步骤。
答:第一步,设计准备,复查并精化系统模型。第二步,确定输入,变换,输出这三部分之间的边界。第三步,第一级分解,系统模块结构图顶层和第一层设计。第四步,第二级分解,自顶向下,逐步求精。

10、举例说明事务设计的步骤。
答:第一步,设计准备,复查并精化系统模型。第二步,确定事务处理中心。第三步,第一级分解,系统模块结构图顶层和第一层设计,以数据流图为基础,按自顶向下逐步细化的原则进行。第四步,第二级分解,自顶向下逐步求精。

13、一种软件开发方法学,应该由哪些基本部分组成?
答:包括结构化分析方法、结构化设计方法、结构化程序设计方法

猜你喜欢

转载自blog.csdn.net/black_kyatu/article/details/81608219