第四章习题参考答案
1、什么是软件概要设计?该阶段的基本任务是什么?
答:把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。基本任务:⑴设计软件系统结构,具体为:1.采用某种设计方法,将一个复杂的系统按功能划分为模块。2.确定每个模块的功能。3.确定模块之间的调用关系。4.确定模块之间的接口(模块之间传递的信息) 评价模块的结构质量⑵进行数据结构及数据库的设计⑶编写概要设计的文档 主要内容有:概要设计说明书,数据库说明书(DBMS的简介,概念模型,逻辑设计,结果)用户手册,修订测试计划(测试的策略﹑方法﹑步骤)⑷评审:是否完整地实现了规定的功能﹑性能要求。设计方案是否可行。关键的处理及内部接口定义的正确性,有效性,各部分的一致性。
2、软件设计的基本原理包括哪些内容?
答:⑴模块化:模块是软件的组成部分,是具有独立功能且可命名的一段程序,所有模块组成整体,可以满足问题的要求。模块化即按照一定的原则,将软件划分成若干个模块,每个模块
完成一个特定的功能,然后把这些模块按照某种方法组装成一个软件系统。(可降低复杂度、减少工作量)
模块具有以下几种特性:接口:模块的输入输出。功能:指模块实现什么功能。逻辑:描述模块内部如何实现要求及所需的数据。状态:该模块的运行环境,模块间调用与被调用关系。⑵抽象:认识复杂现象过程所使用权的工具,只考虑事物本质的共同特性,忽略细节和其它因素。通过抽象确定组成软件的过程实体。⑶信息隐蔽:将模块实现自身功能的细节与数据"隐蔽"起来。模块间仅交换为完成系统功能所必须的信息。⑷模块独立性:每个模块只完成系统要求的独立的子功能。
3、衡量模块独立性的两个标准是什么?各表示什么含义?
答:内聚:又称为块内联系,指模块内部各成分之间相互关联的程度,以高内聚为设计目标。耦合:也称块间联系,模块之间相互联系程度的度量,联系越紧密,耦合性越强,独立性越差,以低耦合为设计目标。
4、模块的耦合性有哪几种?各表示什么含义?
答:⑴内容耦合:一个模块直接操作或修改另一模块的数据,或者不通过正常入口直接转入另一模块⑵公共耦合:两个或多个模块通过共同引用一个全局数据环境相互作用⑶控制耦合:模块之间通过传递控制信息相互作用⑷标记耦合:两个模块之间通过传递公共指针或地址相互作用的耦合⑸数据耦合:模块之间通过传递数据交换信息⑹无耦合:模块间无任何关系,独立工作
程序员和编程员的区别5、模块的内聚性有哪几种?各表示什么含义?答:⑴偶然内聚:一个模块各个成分之间毫无关系⑵逻辑内聚:将几个逻辑上相关的功能放在同一个模块中⑶时间内聚:一个模块完成的功能在同一时间执行⑷过程内聚:一个模块内部的处理成分是相关的,而且必须以特定的次序执行⑸通信内聚:一个模块的所有成分都集中在同一个数据结构上⑹顺序内聚:一个模块的各个成分同一个功能密切相关,而且一个成分的输出,作为另外一个成分的输入⑺功能内聚:模块内的所有成分属于一个整体,完成单一的功能。(内聚最高)
6、什么是软件结构?简述软件结构设计的优化准则。
答:⑴改进软件结构,提高模块独立性 首先设计出软件初始结构,评价该结构,通过模块分解或合并,力求降低耦合提高内聚。⑵模块的规模应该适中⑶模块结构的深度、宽度、扇出
和扇入应适中。深度:软件结构中控制的层数 宽度:软件结构中同一层次上最大模块总数 扇入:某一模块有多少直接调用它的上级模块数目(越大越好)扇出:一个模块直接控制(调用)下级模块的数目。(越少越好,3,4个为宜,不超过9个, "顶层扇出较高,中间扇出较少,底层模块高扇入多"⑷一个模块的作用域(范围),应处在这个模块的控制域(范围)之内 模块的作用域:受该模块内一个判定影响的所有模块的集合 模块的控制域:这个模块本身以及所有直接或间接从属于它的模块的集合 一个模块的影响范围(作用域),应处在这个模块的模块的控制范围(控制域)内。
8、什么样是"事物流"?什么是"变换流"?试将相应形式的数据流图转换为软件结构图
答:数据流图(DFD)一般可分为"变换流","事物流"两种。"变换流":由输入﹑输出﹑变换(或称处理)三部分组成,是一顺序结构。"事物流":它的某个加工,分离成许多发散的数据流,形成许多加工路径,并且根据输入值选择其中一个路径来执行。(这人加工称为事务处理中心)
9.试述"变换分析"﹑"事务分析"设计步骤。
答:变换分析设计步骤:⑴确定变换中心,逻辑输入和输出。⑵设计软件结构的顶层和第一层--变换结构:顶层的功能是完成所有模块的控制(名称应是系统名,以体现完成整个系统功能)第一层至少有三种功能模块:输入﹑输出和变换模块⑶设计中﹑下层模块,对第一层的模块自顶向下分解。输入模块由两部分组成:接收数据﹑转换成调用模块所需信息。输出模块由两部分组成:将数据转换成下属模块所需的形式﹑ 发送数据 变换模块:对每个基本加工建立一功能模块、⑷设计的优化 :输入部分求精,每个物理输入设置专门模块,以体现系统的外部接口。其它输入模块与转换数据模块都很简单时,可将它们合并。输出部分求精:每个物理输出设置专门模块,其它也可适当合并。变换部分求精:根据设计准则,对模块适当合并。
事务分析的设计步骤:⑴确定事务中心和加工路径⑵设计顶层(事务机构)和第一层 顶层模块有两个功能:接收数据和根据事务类型调动相应处理模块。⑶中下层模块的设计﹑优化工作与变换结构相同。事务型软件结构包括两部分: 接收分支 发送分支出 通常包括一调度模块,当事务类型不多时,可与主模块合并 。
第五章习题参考答案
1、详细设计的基本任务是什么,有哪几种描述方法?答:详细设计的基本任务包括:(1)为每个模块进行详细的算法设计 (2)为模块内的数据结构进行设计(3)对数据库进行物理设计(4)其他设计(5)编写详细设计说明书(6)评审 详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。
2、结构化程序设计的基本要点是什么?答:主要有三个:(1)采用自顶向下、逐步求精的程序设计方法(2)使用三种基本控制结构构造程序。任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。(3)主程序员组的组织形式。
3、简述Jackson方法的设计步骤。答:Jackson方法的设计步骤如下:1.分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构。 (2)出输入数据结构和输出数据结构中有对应关系的数据单元。3.按一定的规则由输入、输出的数据结构导出程序结构。 4.列出基本操作与条件,并把它们分配到程序结构图的适当位置。 (5)用伪码写出程序。
第六章习题参考答案
程序语言有哪些共同特征?
答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。语言的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。
在项目开发时选择程序设计语言通常考虑哪些因素?
答:通常要考虑的因素有:项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。
第4代语言(4GL)有哪些主要特征?答:4GL的主要特征是:1.友好的用户界面2.兼有过程性和非过程性双重特性3.高效的程序代码4.完备的数据库 (5)应用程序生成器
举例说明各种程序设计语言的特点及适用范围?
答:以常见的一些编程语言为例:FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算;Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写 ;C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。 Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。 SQL:结构化查询语言,用于对数据库进行存取管理。
汇编语言和Ada语言,主要用于实时处理和编写系统软件。 Prolog、Lisp语言。Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。 C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。
什么是程序设计风格?为了具有良好的设计风格,应注意哪些方面的问题?
答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。
第七章习题参考答案
软件测试的目的是什么?软件测试中,应注意哪些原则?
答:软件测试的目的是为了发现软件的错误。软件测试中应注意的原则有:
测试用例应由输入数据和预期的输出数据两部分组成。这样便 于对照检查,做到有的放矢。
测试且例不仅选用合理输入数据,还要选择不合理的输入数据。这样能更多地发现错误,提高程序的可靠性。对于不合理的输入数据,程序应拒绝接受,并给出相应的提示。
除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。
应制定测试计划并严格执行,排除随意性。
长期保留测试用例。
对发现错误较多的程序段,应进行更深入的测试。
(7)程序员应避免测试自己的程序。测试是一种"挑剔性"的行为,心理状态是测试自己程序的障碍。
什么是白盒测试法?有哪些覆盖标准?试对他们的检错能力进行比较?
答:白盒法测试法把测试对象看作一个打开的盒子,测试人员须了解程序内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
白盒法有下列几种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论