当前位置:文档之家› 软件工程课后习题参考答案

软件工程课后习题参考答案

1.简述软件开发的本质。

答:软件开发的本质就是实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射。

P192.简述实施软件开发的基本途径。

答:实施软件开发的基本途径是系统建模。

所谓系统建模,是指运用所掌握的知识,通过抽象,给出该系统的一个结构——系统模型。

P193.简述何谓模型以及软件开发中所涉及的模型。

答:模型是一个抽象。

该抽象是在意图所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述。

软件开发中所涉及的模型可分为两大类,一类称为概念模型,描述了系统是什么;另一类统称为软件模型,描述了实现概念模型的软件解决方案。

4.简述软件开发所涉及的两大类技术。

答:软件开发所涉及的两大类技术为:一是求解软件的开发逻辑,二是求解软件的开发手段。

5、简述需求与需求规约的基本性质。

答:需求的基本性质:1) 必要的,该需求是用户所要求的。

2)无歧义的,该需求只能用一种方式解释。

3)可测的,该需求是可进行测试的。

4)可跟踪的,该需求可从一个开发阶段跟踪到另一个阶段。

5)可测量的,该需求是可测量的。

需求规约的基本性质:1)重要性和稳定性程度:按需求的重要性和稳定性,对需求进行分级。

2)可修改的:在不过多地影响其他需求的前提下,可以容易地修改一个单一需求。

3)完整的:没有被遗漏的需求。

4)一致的:不存在互斥的需求。

6、简述软件需求的分类。

答:软件需求可以分为两大类:一类是功能需求,一类是非公能需求,而非公能需求可7、举例说明功能需求和非功能需求之间的基本关系。

答:非功能需求可作用于一个或多个功能需求,例如非功能需求可作用于一个或多个功能需求 其中,非功能需求1作用于功能需求1和功能需求3等;非功能需求2作用于功能需求2等。

P248、有哪几种常用的初始需求发现技术答:有5种常用的需求发现技术:自悟、交谈、观察、小组会和提炼。

P269、简述需求规约的3种基本形式。

(1) 非形式化的需求规约。

非形式化的需求规约即以一种自然语言来表达需求规约,如同使用一种自然语言写了一篇文章。

(2) 半形式化的需求规约。

半形式化的需求规约即以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。

(3)形式化的需求规约。

形式化的需求规约即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。

P2910、简述软件需求规约的内容和作用。

答:软件需求规约的内容有:引言、总体描述、特定需求、附录、索引。

P28需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。

2)对于项目的其余大多数工作,需求规约是一个管理控制点。

3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。

4)需求规约是创建产品验收测试计划和用户指南的基础。

P3111、简述需求规约在项目开发中的基本作用。

答:需求规约的作用可概括为以下4点:1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现。

2)对于项目的其余大多数工作,需求规约是一个管理控制点。

3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点。

4)需求规约是创建产品验收测试计划和用户指南的基础。

P3112、简述需求规约和项目需求的不同。

答:需求规约和项目需求是两个不同的概念。

需求规约是软件开发组织和用户之间一份事实上的技术合同书,即关注产品需求,回答“交付给客户的产品/系统是什么”;而项目需求是客户和开发者之间有关技术合同——产品/系统需求的理解,应记录在工作陈述中或其他某一项目文档中,即关注项目工作与管理,回答“开发组要做的是什么”。

P3013、何谓模块耦合简述模块耦合的类型。

答:耦合是不同模块之间相互依赖程序的度量。

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

14、何谓模块内聚简述模块内聚的类型。

答:指一个模块内部各成分之间相互关联程度的度量。

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

功能内聚的模块对完成其功能而言是充分必要的。

15、何谓模块的控制域和模块的作用域并举例说明答:控制域:模块本身以及所有直接或间接从属于它的模块的集合。

作用域:受该模块内的一个判定所影响的所有模块的影响16为了表达系统功能模型,结构化分析方法给出了哪些基本概念他们是如何表示的其基本作用是什么使用中应注意哪些问题答:给出的基本概念:数据流、加工、数据存储、数据源和数据潭。

表示方法:(注:表示方法都是图形,请按文字提示画图)数据流表示方法:方向向右的箭头;加工的表示方法:椭圆;数据存储表示方法:两条平行线;数据源表示方法:一个长方形;数据源和数据潭表示方法:两个并列的长方形。

作用:数据流:用于表达在分析中所使用的、用于表达“客体”的信号。

加工:用于表达在分析中所使用的、用于表达“处理”的信号。

数据存储:用于表达在分析中所使用的、用于表达“结构化客体”的信号。

数据源和数据潭:表示系统的环境,可以使用它们和相关数据流来定义系统的边界,表达系统/产品“边界”的信息。

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

基本作用:(同上面第一小题里的“作用”)18解释结构符“+”、“|”、“{}”的含义,并举例说明。

答:顺序结构是指数据A是由数据B和数据C顺序构成的,记为“+”。

例:学生成绩=姓名+姓名+性别+学号+科目+成绩。

选择结构是指由数据A或是由数据B0或是有数据C定义的,即数据B 不可能同时是B 0 C 0,并记为“|”。

例:性别=男|女。

重复结构是指数据A 是由多个重复出现的数据B 构成,并记为“{}”。

例:学生成绩表={学生成绩}。

19就一个特定系统而言,系统功能模型与系统模型的主要区别是什么答:区别:系统功能模型分为数据流、加工、数据存储、数据源和数据潭这四部分组成。

系统模型分为两类:一类称为概念模型,描述了系统是什么;另一类系统称为软件模型,描述了实现概念模型的软件解决方法。

20简述结构化方法总体设计的任务及目标。

答:任务:在需求分析的基础上,定义满足需求所需要的结构。

目标:建立系统的模块结构。

21简述结构化方法详细设计的任务及目标。

答:任务:具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和数据结构,从而精确地定义了满足需求所规约的结构。

目标:将总体设计阶段所产生的系统高层结构映射为以这些术语所以澳大的低层结构,也是系统的最终结构。

22简述变换设计与事务设计之间的区别。

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

23简述启发式规则的基本原理。

答:启发式规则“基于高内聚低耦合的原理,采用一些经验性的启发式规则,对初始的模块结构图进行精化,形成最终的模块结构图”。

启发式规则包括:1)改进软件结构,提高模块独立性。

2)力求模块规模适中。

3)力求深度、宽度、扇出和扇入适中。

4)尽力使模块的作用域在其控制域之内。

5)尽力降低模块接口的复杂度。

6)力求模块功能可以预测。

24简述依据一个系统的DFD ,将其转换为MSD 的基本思路。

答:结构化设计方法在分类DFD的基础上,基于自顶向下、功能分解的设计原则,定义了两种不同的“映射”,即变换设计和事务设计。

其基本步骤是,首先将系统的DFD图首先转化为初始的模块结构图,再基于“高内聚低耦合”这一软件设计原理,通过模块化,将初始的模块结构图转化为最终的、可供详细设计使用的模块结构图(MSD)。

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

26.举例说明结构化方法给出的控制复杂性机制。

答:1上层数据流可以打包,实例研究数据流查询要求就是一个打包数据,并以*作一特殊标志。

上下层?数据流之间的对应关系通过数据字典予以描述。

2为便于理解,把一幅图中图元个数尽量控制在7加减2个?以内。

3检查与每个加工相关的数据流是否有太多的输入/输出数据流,并寻找可降低该加工接口复杂性?的,对数据流进行划分的方法。

4分析数据内容,确定是否所有的输入信息都用于产生输出信息,相应的?由一个加工产生的所有信息是否都能由进入该加工的信息导出。

27.试分析结构化方法在建造系统模型中存在的问题。

答:最主要的问题是没有摆脱冯·诺依曼体系结构的影响,捕获的功能过程和数据恰恰是客观事物的易变性质,由此建造的系统结构很难与客观实际系统的结构保持一致。

在某种意义上说就是这些问题促使面向对象方法学的产生和发展。

28.举例说明变换设计的步骤。

答:第一步,设计准备,复查并精化系统模型。

第二步,确定输入,变换,输出这三部分之间的边界。

第三步,第一级分解,系统模块结构图顶层和第一层设计。

第四步,第二级分解,自顶向下,逐步求精。

29.举例说明事务设计的步骤。

答:第一步,设计准备,复查并精化系统模型。

第二步,确定事务处理中心。

第三步,第一级分解,系统模块结构图顶层和第一层设计,以数据流图为基础,按自顶向下逐步细化的原则进行。

第二级分解自顶向下逐步求精。

30.一种软件开发方法学,应该由哪些基本部分组成?答:包括结构化分析方法、结构化设计方法、结构化程序设计方法31.为了表达客观事物,UML给出了哪些基本术语答:为了支持抽象分析和设计中的事物,UML给出了8个基本术语,即类、接口、协作、用况、主动类、构件、制品、结点,并给出了这些基本术语的一些变体。

相关主题