1、作业:
某单位住房分配方案如下:所有住户50平方米以内每平方米1000元,超过50平方米后:在本人住房标准面积以内每平方米1500元,其中住房标准为:教授105平方米,副教授90平方米,讲师75平方米;标准面积以外每平方米4000元。请用判定表和判定树表示各条件组合与费用之间的关系。
2、练习题:
第5、6章软件设计
习题
一、填空
1、软件设计是要把描述软件“做什么”的转换为描述“怎么做”的,即着手实现软件的需求,并将设计结果记入软件文档中。
2、软件程序系统结构的设计是以为基础的。以需求分析的结果为依据,从实现的角度进一步划分为,并组成模块的。
3、数据库的设计指的设计,主要进行、、的设计。
4、在数据处理系统的功能分析与设计过程中同时要进行数据分析和数据设计,数据库的概念设计和逻辑设计分别对应于系统开发的与,而数据库的物理设计与模块的相对应。
5、在软件的系统结构中,,模块是可组合、可分解和可更换的单元。模块的基本属性包括功能、、和状态。
6、模块内聚与耦合是模块独立性的两个定性标准。在划分模块时,应尽可能作
到内聚、耦合。
7、一个模块的范围应在其范围之内,且判定所在的模块应与受其影响的模块在层次上尽可能。
8、如果模块之间耦合性太高,每个模块内功能不复杂,可将它们,以减少信息的和的引用。若有多个相关的模块,应对它们的功能进行,消去。
二、单项选择题
1、结构化设计方法(SD)与结构化分析方法(SA)一样,遵循(      )的模型,采用自顶向下,逐步细化的技术。通常SD方法继续SA的工作,根据数据流图设计程序的结构。
A. 实体-关系
B. 快速原型
C. 抽象
D. 瀑布
2、结构化设计在软件开发中用于(      )。
A. 测试设计
B. 概要设计
C. 程序设计
D. 详细设计
3、(      )把已确定的软件需求转换成特定形式的软件表示,使其得以实现。
A. 系统设计
B. 逻辑设计
C. 详细设计
D. 软件设计
4、在进行软件模块结构设计时应当遵循的最主要的准则是(      )。
A. 抽象
B. 模块化
C. 模块独立
D. 信息隐蔽
5、(      )是数据说明、可执行语句等程序对象的集合,它是单独命名的并可通过名字访问。
A. 模块
B. 复合语句
C. 程序块
D. 数据块
6、模块(      ),则说明模块的独立性越强。
A. 耦合越强
B. 扇入数越高
C. 耦合越弱
D. 扇入数越低
7、模块之间的信息可以做“控制信息”用,也可以作为(      )用。
A. 控制流
B. 数据结构
C. 控制结构
D. 数据
8、(      )数据处理问题的工作过程大致分为三步:即取得数据、变换数据和输出数据。
A. 变换型
B. 事务型
C. 演化型
D. 结构化
9、在多层系统结构图中,其模块的层次数称为结构图的(      )。
A. 深度
B. 宽度
C. 控制域
D. 粒度
10、(      )着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。
A. 程序流程图
B. 数据流图
C. 系统结构图
D. 实体关系图
11、(      )是指把一些关系密切的软件元素物理地放置到彼此靠近的位置。
A. 信息隐蔽
B. 内聚
C. 局部化
D. 模块独立
12、块间联系和块内联系是评价程序结构质量的重要标准。联系的方式、共用信息的作用、共用信息的数量和界面的(      )等因素决定了块间联系的大小。
A. 友好性
B. 健壮性
C. 清晰性
D. 安全性
13、为了提高模块的独立性,模块之间最好是(      )。
A. 公共耦合
B. 控制耦合
C. 内容耦合
D. 数据耦合
14、为了提高模块的独立性,模块内部最好是 (      )。
A. 逻辑内聚
B. 时间内聚
C. 功能内聚
D. 通信内聚
15、从下列有关系统结构图的叙述中选出正确的叙述。
A. 系统结构图中反映的是程序中数据流的情况。
B. 系统结构图是精确表达程序结构的图形表示法。因此,有时也可将系统结构当作程序流程图使用。
C. 一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。
D. 在系统结构图中,上级模块与其下属模块之间的调用关系用有向线段表示。这时,使用斜的线段和水平、垂直的线段具有相同的含义。
三、选择填空
1、软件的开发工作经过需求分析阶段,进入(  A  )以后,就开始着手解决“怎么做”的问题。常用的软件设计方法有(  B  )、(  C  )、(  D  )和(  E  )等方法。
供选择的答案:
A~B.①程序设计②设计阶段③总体设计④定义阶段
⑤SD方法⑥SP方法
C.  ①Jackson方法②瀑布法③快速原型法④回溯法
D~E. ①LCP(Wanier)方法②递归法③Parnas方法
④自下而上修正⑤逐步求精法⑥检测校正法
2、请将下述有关模块独立性的各种模块之间的耦合,按其耦合度从低到高排列起来。
①内容耦合②控制耦合③非直接耦合④标记耦合
⑤数据耦合⑥外部耦合⑦公共耦合
3、请将下述有关模块独立性的各种模块内聚,按其内聚度(强度)从高到低排列起来。
①巧合内聚②时间内聚③功能内聚④通信内聚
⑤逻辑内聚⑥信息内聚⑦过程内聚
4、从供选择的答案中选出正确的答案填入下列叙述中的(    )内。
模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。
(1) 一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是(  A  )的。
(2) 将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能。该模块的内聚性是(  B  )的。
(3) 模块中所有成分引用共同的数据,该模块的内聚性是(  C  )的。
(4) 模块内的某成份的输出是另一些成份的输入,该模块的内聚性是(  D  )的。
(5) 模块中所有成份结合起来完全一项任务,该模块的内聚性是(  E  )的。它具有简明的外部界面,由它构成的软件易于理解、测试和维护。
供选择的答案:
A~E:①功能内聚②信息内聚③通信内聚④过程内聚
⑤巧合内聚⑥时间内聚⑦逻辑内聚
5、从供选择的答案中选出正确的答案填入下面的(    )中。
块间联系和块内联系是评价程序模块结构质量的重要标准。联系的方式、共用信息的作用、共用信息的数量和接口的(  A  )等因素决定了块间联系的大小。在块内联系中,(  B  )的块内联系最强。
SD方法的总的原则是使每个模块执行(  C  )功能,模块间传送(  D  )参数,模块通过(  E  )语句调用其它模块,而且模块间传送的参数应尽量(  F  )。
此外,SD方法还提出了判定的作用范围和模块的控制范围等概念。SD方法认为,(  G  )应该是(  H  )的子集。
供选择的答案:
A:①友好性②健壮性③简单性④安全性
B:①巧合内聚②功能内聚③通信内聚④信息内聚
C:①一个②多个
D:①数据型②控制型③混合型
E:①直接引用②标准调用③中断④宏调用
F:①少②多
G~H:①作用范围②控制范围
6、从供选择的答案中选出应该填入下列关于软件设计的叙述的(    )内的正确答案。 在众多的设计方法中,SD方法是最受人注意的,也是最广泛应用的一种,这种方法可以同分析阶段的(  A  )方法及编程阶段的(  B  )方法前后衔接,SD方法是考虑如何建立一个结构良好的程序结构,它提出了评价模块结构质量的两个具体标准——块间联系和块内联系。SD方法的最终目标是(  C  ),用于表示模块间调用关系的图叫(  D  )。
另一种比较著名的设计方法是以信息隐蔽为原则划分模块,这种方法叫(  E  )方法。供选择的答案:
A~B:①Jackson ②SA ③SC ④Parnas  ⑤SP
C:①块间联系大,块内联系大②块间联系大,块内联系小
③块间联系小,块内联系大④块间联系小,块内联系小
D:①PAD ②HCP ③SC ④SADT  ⑤HIPO ⑥NS
E:①Jackson ②Parnas ③Turing ④Wirth ⑤Dijkstra
7、从供选择的答案中选出应该填入下列关于软件详细设计的叙述的(    )内的正确答案。
pascal是系统软件吗
软件详细设计工具可分为三类,即:图示工具、设计语言和表格工具。图示工具中,(  A  )简单而应用广泛、(  B  )表示法中,每一个处理过程用一个盒子表示,盒子可以嵌套。(  C  )可以纵横延伸,图形的空间效果好。
(  D  ) 是一种设计和描述程序的语言,它是一种面向(  E  )的语言。
供选择的答案:
A~C:①NS图②流程图③HIPO图④PAD图
D:①C ②PDL  ③RPOLOG ④PASCAL
E:①人②机器③数据结构④对象
8、Jackson结构化程序设计方法(JSP)是英国人M. Jackson提出的,它是一种面向(  A  )的设计方法,主
要适用于规模适中的(  B  )系统的开发,其基本步骤依次为(  C  )、  ( D )  、(  E )  。
供选择的答案:
A:①对象②数据流③数据结构④控制结构
B:①数据处理②文字处理③实时控制④科学计算
C~E:①建立数据结构②列出基本操作③建立程序结构
④建立控制结构⑤建立对象
9、从供选择的答案中选出应该填入下列关于软件设计的叙述的(    )内的正确答案。 在完成软件概要设计,并编写出相关文档之后,应当组织对概要设计工作的评审。评审的内容包括:
分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成份是否可(  A  )到某一项需求。分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足(  B  )和(  C  )的要求。模块(  D  )是否在其(  E  )之内。
供选择的答案
A:①覆盖②演化③追溯④等同⑤连接
B:①多功能②高内聚③高耦合④高效率⑤可读性
C:①多入口②低内聚③低耦合④低复杂度⑤低强度
D~E:①作用范围②高内聚③低内聚④取值范围⑤控制范围
四、问答题
1、逐步求精、分层过程与抽象等概念之间的相互关系如何?
2、完成良好的软件设计应遵循哪些原则?
3、如何理解模块独立性?用什么指标来衡量模块独立性?
4、模块独立性与信息隐蔽(反映模块化有效程度的属性)有何关系?
5、模块的内聚性程度与该模块在分层结构中的位置有关系吗?说明你的论据。
6、耦合性的概念和软件的可移植性有什么关系?请举例说明你的论述。
7、递归模块(即自己调用自己的模块)的概念如何能够与本章所介绍的设计原理与方法相适应?
8、举例说明你对概要设计与详细设计的理解。有不需要概要设计的情况吗?
9、如何用PDL语言来实施逐步求精的设计原理?
10、什么是概要设计?有那些基本任务?
11、软件设计基本原理包括那些内容?
12、什么是软件结构图?简述软件结构设计优化准则。
13、什么是模块的控制范围和作用范围?他们的关系如何?
14、什么是变换流?什么是事物流?
15、详细设计的基本任务是什么?有那几种描述方法?
答案
三、选择填空
1、解答:A. ②,  B. ⑤,  C. ①,  D. ①,  E. ③。其中,D与E的答案可互换。
2、解答:③、⑤、④、②、⑥、⑦、①
3、解答:③、⑥、④、⑦、②、⑤、①
4、解答:A. ⑤,  B. ⑦,  C. ③,  D. ④,  E. ①
5、解答:A. ③,  B. ②,  C. ①,  D. ①,  E. ②,  F. ①,  G. ①,  H. ②
6、解答:A. ②,  B. ⑤,  C. ③,  D. ③,  E. ②
7、解答:A. ②,  B. ①,  C. ④,  D. ②,  E. ①
8、解答:A. ③ B. ① C. ① D. ③ E. ②
9、解答:A. ③,  B. ②,  C. ③,  D. ①,  E.  ⑤
四、问答题
1、解答:“自顶向下,逐步求精”是Niklaus Wirth提出的设计策略:即将软件的体系结构按自顶向下方式,
对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。
这样的结构实际就是一个模块的分层结构,即分层的过程。在实施时,采用抽象化的方法,自顶向下,给出不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。而在较低的抽象层次上,则采用过程化的方法。在描述问题的解法时,我们可以配合使用面向问题的术语和面向现实的术语。但最后在最低的抽象层次上,我们应使用能够直接实现的方式来描述这个解法。