软件工程导论期末复习重点


 

选择、判断略

一、  名词解释  

1、软件危机     2、软件工程     3、数据字典     4、模块化     5、黑盒测试

6、软件维护     7、软件过程     8、快速原型     9、白盒测试

二、简答题  

1、可行性研究目的和任务?

2、可行性研究包括哪几方面的内容?

3、简述需求分析的描述工具和基本任务?

4、什么是模块化?模块设计的准则?

5、详细设计阶段的根本目标和任务?

6、比较面向数据流和面向数据结构两类设计方法的异同?

7、测试与调试的主要区别?

8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。

9、比较层次方框图与结构图的异同?

10、结构化程序设计的基本原则?

11、提高软件编码效率的3条原则?

 

 

 

 

 

 

 

 

一、名词解释

1、软件危机

答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

2、软件工程

答:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

3、数据字典

答:数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。

4、模块化

答: 模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

5、黑盒测试

答:黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

6、软件维护

软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

7、软件过程

答: 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

8、快速原型

答:快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。

9、白盒测试

答:白盒测试是指测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。

二、简答题

1、可行性研究目的和任务?

目的:确定在问题定义中所提出的问题是否值得去解,在限制条件下问题能否解决。

可行性研究的任务:

(1) 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;

(2) 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建议;

(3) 如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,并为工程制定一个初步的计划。

2、可行性研究包括哪几方面的内容?

答:(1)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;

(2)经济可行性:经济效益是否超出开发成本;

(3)操作可行性:系统操作在用户内部行得通吗?

(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。

3、简述需求分析的描述工具和基本任务?

答:需求分析的描述工具有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等。

需求分析的基本任务是:准确定义未来系统的目标,确定为满足用户的需要系统必须做什么。

4、什么是模块化?模块设计的准则?

答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

模块设计的准则:

(1) 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。

(2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。

(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。

(4) 尽量降低模块接口的复杂程度;

 (5) 设计单入口、单出口的模块。

(6) 模块的作用域应在控制域之内。

5、详细设计阶段的根本目标和任务?

答:详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统;详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”。

6、比较面向数据流和面向数据结构两类设计方法的异同?

答:相同点:(1)  遵守结构程序设计“由顶向下”逐步细化的原则,并以其为共同的基础;

            (2) 均服从“程序结构必须适应问题结构”的基本原则,各自拥有从问题结构(包括数据结构)导出程序结构的一组映射规则。

不同点:(1)  面向数据流的设计以数据流图为基础,在分析阶段用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构。面向数据结构的设计以数据结构为基础,从问题的数据结构出发导出它的程序结构。

        (2)  面向数据流的设计的最终目标是软件的最终结构图,面向数据结构的设计的最终目标是程序的过程性描述。

7、测试与调试的主要区别?

答: (1) 测试从一个侧面证明程序员的失败;调试证明程序员的正确;

     (2) 测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试从不可知内部条件开始,除统计性调试外,结果是不可预见的;

     (3) 测试有计划并且要进行测试设计;调试不受时间约束;

     (4) 测试是发现错误、改正错误、重新测试的过程;调试是一个推理的过程;

     (5) 测试执行是有规程的;调试执行要求程序员进行必要的推理;

     (6) 测试由独立的测试组在不了解软件设计的件下完成;调试由了解详细设计的程序员完成;

     (7) 大多数测试的执行和设计可由工具支持;调试用的工具主要是调试器。

8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。

答:软件生命周期模型可以简洁地描述软件过程,它规定了把生命周期划分成哪些阶段及各个阶段的执行顺序。包括瀑布模型、快速原型模型、增量模型和螺旋模型等。

瀑布模型优点:可强迫开发人员采用规范的方法(例如,结构化技术);严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。缺点:模型过于理想化,是由文档驱动的。

快速原型模型优点:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要。

增量模型优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

螺旋模型优点:对可选方案和约束条件的强调有利于已有软件的重用;减少过多测试。

瀑布模型适用于文档驱动的产品研发;快速原型模型适用于软件交付时间紧急,且需获知用户真实需求的情况;增量模型适用于能在较短时间内向用户提交可完成部分工作的产品;螺旋模型适用于内部开发的大规模软件项目。

9、比较层次方框图与结构图的异同?

答: (1) 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构。

     (2) 二者都采用多层次矩形框树形结构。

层次方框图的顶层矩形框代表完整的数据结构, 下面各层矩形框依次代表上个框数据的子集;

结构图是在层次图的每一个方框内注明模块的名字或主要功能,方框之间的直线表示模块的调用关系,用带注解的箭头表示模块调用过程中传递的信息。

10、结构化程序设计的基本原则?

答:结构化程序设计的基本原则是:在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构。

11、提高软件编码效率的3条原则?

答:3条原则为:1)效率是性能要求,因此应该在需求分析阶段确定效率方面的要求。

             2)效率是靠好设计来提高的。

             3)程序的效率和程序的简单程度是一致的,不要牺牲程序的清晰性和可读性来不必要地提高效率。

你可能感兴趣的:(软件工程导论期末复习重点)