2017年江西农业大学软件工程(同等学力加试)复试实战预测五套卷
● 摘要
一、名词解释
1. 概要设计
【答案】概要就是回答“概括地说,系统应该如何实现”这个问题。概要设计站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构。
二、简答题
2. 试述软件危机产生的原因。
【答案】软件危机产生的原因有:
(1)软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。
(2)软件开发管理困难。由于软件规模大,结构复杂,又具有无形性的特点,因此导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。
(3)软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多、周期长,费用上升很快。
(4)生产方式落后。仍然采用个体手工方式开发,根据个人习惯爱好工作,无章可循,无规范可依据,仅靠言传身教方式工作。
(5)软件开发技术落后。
(6)软件开发工具落后,生产率的提高速度缓慢。
3. 软件生命期各阶段的任务是什么?
【答案】(1)问题定义
问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”。通过对客户的访问调查,系统分析员扼 要地写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。
(2)可行性研究
这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗? ”。
可行性研究阶 段的任务是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。
(3)需求分析
这个阶段的任务是准确地确定“为了解决这个问题,目标系统必须做什么”。这个阶段的一项重要任务是用 需求规格说明书准确地记录对目标系统的需求。
(4)总体设计
这个阶段必须回答的关键问题是:“概括地说,应该怎样实现目标系统?”。用适当的表达工具描述和分析 每种方案,推荐一个最佳方案并制定出详细计划。另一项主要任务就是设计程序的体系结构。
(5)详细设计
“应该怎样具体地实现这个系统呢? ”。详细设计阶段的任务就是把解法具体化,也就是回答:
在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。
(6)编码和单元测试
这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。程序员把详细设计的结果翻译成用选定 的高级编程语言书写的程序,并且仔细测试编写出的每一个模块。
(7)综合测试
这个阶段的关键任务是通过各种类型的测试使软件达到预定的要求。应该用正式的文档资料把测试计划、详细测试方案以及实际测试结果保存下来,作为软件配置的一个组成部分。
(8)软件维护
维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。
4. 什么是事件?
【答案】事件是发生在某一个时问点的一件事,例如,用户单击左边按钮,或者某次航班从北京出发。
5. 简述文档在软件工程中的作用。
【答案】文档是软件开发使用和维护中的必备资料,在软件工程中的作用如下:
(1)提高软件开发过程的能见度。
(2)提高软件开发的效率。
(3)作为开发人员阶段工作成果和结束标志。
(4)记录开发过程的有关信息,便于使用和维护。
(5)提供软件运行、维护和培训的相关说明性参考资料。
(6)便于用户了解软件功能、性能和相关配置信息。
6. 什么是面向数据流的设计方法?它有哪些策略?
【答案】(1)面向数据流的设计方法的定义
面向数据流的设计方法也称结构化设计方法(SD ),它与结构化分析(SA )相衔接,它按一定的设计策略将数据流图转换成软件的模块层次结构。
(2)面向数据流的设计策略
①事务型分析设计
一个大的复杂的系统分解成较小的,相对简单的子系统,这些子系统彼此之间相对独立一些,而高层数据流图的数据处理往往反映这些子系统的功能,有平行分别处理的特点,因此,高层数
据流图的转换通常可作为事务型处理,把一个加工逻辑看成是一类特定的事务,把它们分别映射成一个模块,最高层模块为系统模块,通过对输入初始命令的判断决定调用哪个模块。这种事务型分析设计的策略也用于较低层数据流图向软件结构图的转换。
②变换型分析设计
变换型数据流图具有主要的处理功能及实现这项处理功能所需要的输入数据流和经过处理后产生的输出数据流。确定了第三部分,高层模块就可分解出三个从属于它的新模块,分别执行输入、变换、输出功能。变换分析设计一般用于对较低层数据流图向软件结构图的转换。
7. 通常采取哪些措施来降低模块问的耦合度?
【答案】(1)在耦合方式上降低模块间接口的复杂性。模块间接口的复杂性包括模块的接口方式、接口信息的结构和数量。接口方式不采用直接引用(内容耦合),而采用调用方式。接口信息通过参数传递且传递信息的结构尽量简单,不用复杂参数结构,参数的个数也不宜太多,如果很多,可考虑模块的功能是否庞大复杂。
(2)在传递信息类型上尽量使用数据耦合,避免控制耦合,慎用或有控制地使用公共耦合。这只是原则,耦合类型的选择要根据实际情况综合地考虑。
三、综合应用题
8. 回答下列问题。
(1)什么是模块测试和集成测试?它们各有什么特点?
,(2)假设有一个由1000行FORTRAN 语句构成的程序(经编译后大约有5000条机器指令)
估计在对它进行测试期间将发现多少个错误?为什么?
(3)设计下列伪码程序的语句覆盖和路径覆盖测试用例:
【答案】(1)①模块测试时对每个单独的模块,分别用黑盒和白盒测试技术,测试它地功能是否正确,检查模块控制结构中的特定路径并发现最大数量的错误。