2018年西安理工大学计算机科学与工程学院864软件工程考研核心题库
● 摘要
一、简答题
1. 三种模型的建立过程。
【答案】(1)对象模型:确定类、准备数据字典、确定联系、确定属性、完善对象模型。 (2)动态模型:准备脚本、准备事件跟踪、构造状态图。 (3)功能模型:确定输入输出值、建立DFD 。
2. 试述软件危机产生的原因。
【答案】软件危机产生的原因有:
(1)软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。
(2)软件开发管理困难。由于软件规模大,结构复杂,又具有无形性的特点,因此导致管理困难,进度控制困难,质量控制困难,可靠性无法保证。
(3)软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多、周期长,费用上升很快。
(4)生产方式落后。仍然采用个体手工方式开发,根据个人习惯爱好工作,无章可循,无规范可依据,仅靠言传身教方式工作。
(5)软件开发技术落后。
(6)软件开发工具落后,生产率的提高速度缓慢。
3. 试说明主动服务与被动服务的区别。
【答案】(1)主动服务
主动服务是不需要接收消息就能主动执行的服务,它在程序实现中是一个主动的程序成分,例如用于定义进程或线程的程序单位。
(2)被动服务
被动服务是只有接收到消息才执行的服务,它在编程实现中是一个被动的程序成分,例如函数、过程、例程等。
(3)区别
被动对象的服务都是被动服务,主动对象应该有至少一个主动服务。在定义服务的过程中,对于主动对象应指出它的主动服务。
4. 通常采取哪些措施来降低模块问的耦合度?
【答案】(1)在耦合方式上降低模块间接口的复杂性。模块间接口的复杂性包括模块的接口方式、接口信息的结构和数量。接口方式不采用直接引用(内容耦合),而采用调用方式。接口信息通过参数传递且传递信息的结构尽量简单,不用复杂参数结构,参数的个数也不宜太多,如果很多,可考虑模块的功能是否庞大复杂。
(2)在传递信息类型上尽量使用数据耦合,避免控制耦合,慎用或有控制地使用公共耦合。这只是原则,耦合类型的选择要根据实际情况综合地考虑。
二、综合设计应用题
5. 为每种类型的模块耦合举一个具体例子。
【答案】(1)数据耦合:计算机网络属于松耦合系统。 (2)控制耦合:遥控器与电器。 (3)公共环境耦合:多机系统。 (4)内容耦合:汇编程序模块。
6. 下面给出的伪码中有一个错误。仔细阅读这段伪码,说明该伪码的语法特点,找出并改正伪码中的错误。字频统计程序的伪码如下:
【答案】(1)错误:INSERT the extracted word into the table 在这个后面,没有给这个 word 的 occurrence count 赋值为1。
(2)语法特点:该伪代码在循环结构中嵌套循环结构,并且在嵌套的循环结构中又嵌套了IFELSE 结构。
7. 画出下面伪代码对应的PAD 图和N-S 图。
【答案】(1) PAD 图,如图1所示。
图1 PAD图
(2) N-S 图,如图2所示。
图2 N-S图