2017年河海大学993软件工程综合之软件工程导论复试实战预测五套卷
● 摘要
一、名词解释
1. 模块化
【答案】模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起 来构成一个整体,可以完成指定的功能满足用户的需求。模块化是为了使一个复杂的大型程序能被人的智力所管理。
二、简答题
2. 一个正文文件由若干记录组成,每个记录是一个字符串,要求统计每个记录中空格字符的个数及文件中空格字符的总个数。要求输出数据格式是每复制一行字符串之后,另起一行打印出这个字符串中的空格数,最后打印出文件空格的总个数,请用Jackson 方法设计该程序结构。
【答案】(1)输入数据的Jackson 图如图1所示:
图1输入数据的Jackson 图
(2)输出数据的图如图2所示:
图2 输出数据的Jackson 图
(3) 程序结构的图如图3所示:
图3程序结构的Jackson 图
3. 说明McCall 软件质量度量模型。
【答案】McCall 质量度量模型是McCall 等人于1979年提出的软件质量模型。针对面向软件产品的运行、修正、转移,软件质量概念包括11个特性,其定义如下。
(1)面向软件产品操作
①正确性:软件满足设计规格说明及用户预期目标的程度。
②可靠性:软件按照设计要求,在规定时间和条件下不出故障、持续运行的程度。
③效率:为了完成预定功能,软件系统所需的计算机资源和程序代码数量。
④完整性:对非授权人访问软件或数据行为的控制程度。
⑤可使用性:用户熟悉、使用及准备输入和解释输出所需工作量的大小。
(2)面向软件产品修改
①可维护性:找到并改正程序中的一个错误所需代价。
②可测试性:测试软件以确保其能够执行预定功能所需工作量。
③灵活性:修改可运行程序所需要付出的努力。
(3)面向软件产品适应
①可移植性:将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行所需的工作量。
②可重用性:一个软件(或软件的部件)能再次用于其他相关应用的程度。
③连接性:将一个系统耦合到另一个系统所需的工作量。
4. 什么是软件生存周期模型?有哪些主要模型?
【答案】(1)软件生存周期模型的定义
软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
(2)软件生存周期模型的分类
主要的软件生存周期模型有瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知
识的模型。
5. 什么是软件工程?简述软件工程的基本原理及软件工程的目标。
【答案】(1)软件工程的定义
①软件工程是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门学科。
②软件工程采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术 和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
(2)软件工程的基本原理
①用分阶段的生命周期计划严格管理。
①坚持进行阶段评审。
②实行严格的产品控制。
③采用现代程序设计技术。
④结果应能清楚地审查。
⑤开发小组的人员应该少而精。
⑥承认不断改进软件工程实践的必要性。
(3)软件工程的目标
软件工程的目标是在给定成本和进程的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性、可互操作性并满足用户需要的高质量软件产品。
6. 快速原型模型有哪几种?各有何特点?
【答案】(1)快速原型模型的分类
原型模型又称快速原型模型,它是增量模型的另一种形式。它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。根据原型的不同作用,可以分为探索型模型、实验型模型和演化型模型三类。
(2)三种快速原型模型的特点
①探索型模型
这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开发来说明用户的需求。
②实验型模型
这种原型主要用于设计阶段,考核实现方案是否合适,能否实现。对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。
③演化型模型
这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包括系统的框架,或者包