2017年湖南大学信息科学与工程学院F1008软件工程导论复试仿真模拟三套题
● 摘要
一、名词解释
1. UML
【答案】UML 又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
二、简答题
2. 功能模型的特征有哪些?
【答案】(1)功能模型描述了系统的所有计算。
(2)功能模型指出发生了什么,对动态模型确定什么时候发生,而对象模型确定发生的客体。
(3)功能模型表明一个计算如何从输入值得到输出值,它不考虑所计算的次序。
(4)功能模型由多张数据流图组成。数据流图说明数据流是如何从外部输入、经过操作和内部存储输出到外部的。
(5)功能模型包括对象模型中值的约束条件。
3. 使用快速原型方法构造原型时,对原型有什么样的要求?
【答案】(1)原型不同于最终系统,两者在功能上的区别是最终系统要实现软件需求的全部功能,而原型只实现所选择的部分功能,最终系统对每个软件需求都是要求详细实现,而原型仅仅是为了试验和演示的,部分功能需求可以忽略或者模拟实现。
(2)在构造原型时,必须注意功能性能的取舍,忽略一切暂时不关心的部分以加速原型的实现,同时又要充分体现原型的作用,满足评价原型的要求。
(3)在构造原型之前,必须明确运用原型的目的,从而解决分析与构造内容的取舍,还要根据构造原型的目的确定考核、评价原型的内容。
4. 列举出几种情况下运用整体一部分结构而实现或支持的复用。
【答案】(1)在两个或更多的对象类中都有一组属性和服务描述这些对象的一个相同的组成部分。把它们分离出来作为部分对象,建立整体一部分结构,这些属性和服务就被多个类复用,从而简化了它们的描述。
(2)系统中已经定义了某类对象,在定义其他对象时,发现其中一组属性和服务与这个已定义的对象是相同的,那就不必再重复地定义这些属性与服务,只需建立它与前一类对象之间的整体一部分结构。
(3)通过整体一部分结构提取可复用构件,以支持领域范围的复用问题。如果一个对象类中有一组属性和服务描述了该对象的一个独立部分,即使从本系统看并不需这样一个部分对象,只
要它是一种在本领域经常使用的对象,就可把它从整体中分离出来作为部分对象,使它的类定义成为一个应用范围较广的可复用构件。
5. 根据瀑布模型为下列任务排序:验收测试、项目计划、单元测试、需求复审、成本估计、总体设计、设计复审、市场调研、详细设计、系统测试、实现、编制需求规格说明书。
【答案】根据题意可以把上述任务分为:
A. 市场调研
B. 项目计划、成本估计、编制需求规格说明书(同时进行)
C. 需求复审
D. 总体设计
E. 详细设计
F. 设计复审
G. 实现
H. 单元测试
I. 系统测试
J. 验收测试
根据瀑布模型的要求,上述任务正确的排序应为ABCDEFGHIJ 。
6. 维护技术有哪些?
【答案】(1)面向维护的技术
面向维护的技术是在软件开发阶段用来减少错误,提高软件可维护性的技术,面向维护的技术涉及软件开发的所有阶段。
①在需求分析阶段,对用户的需求进行严格的分析定义,使之没有矛盾和易于理解,可以减少软件中的错误。
②在设计阶段,划分模块时充分考虑将来改动或扩充的可能性。使用结构化分析和结构化设计方法,采用容 易变更的、不依赖于特定硬件和特定操作系统的设计。
③在编码阶段,采用灵活的数据结构,是程序相对独立于数据的物理结构,养成良好的程序设计风格。
④在测试阶段,尽可能多地发现错误,保存测试用例和测试数据等。
(2)维护支援技术
维护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术,维护支援技术包括下列各方面的技术:信息收集、错误原因分析、软件分析与理解、维护方案评价、代码与文档修改、修改后的确认、远距离的维护。
7. 简要叙述软件工程目标和内容。
【答案】(1)软件工程的目标
软件工程的目的是成功地建造一个大型软件系统,该软件系统具有如下特点:
①付出的开发成本较低;
②达到了要求的软件功能;
③取得了较好的软件性能;
④开发的软件易于移植;
⑤需要较低的维护费用;
⑥能够按时完成开发任务;
⑦及时交付使用;
⑧开发的软件可靠性高。
(2)软件工程的内容
软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
①在软件开发技术方面,主要是研究软件开发方法、软件开发过程、软件开发工具和环境。 ②在软件开发管理方面,主要是研究软件管理学、软件经济学、软件心理学等。
三、综合应用题
8. 假设自己的任务是对一个已有的软件做重大修改,而且只允许从下述文档中选取两份:(a )程序的规格说明;(b )程序的详细设计结果(自然语言描述加上某种设计工具表示);(c )源程序清单(其中有适当数量的注解)。
应选取哪两份文档?为什么这样选取?打算怎样完成交给自己的任务?
【答案】应该选取(a )和(b )两份文档,理由如下:
(1)“对一个已有的软件做重大修改”意味着对软件功能做较大变更或增加较多新功能,这往往需要修改软 件的体系结构。因此,了解原有软件的总体情况是很重要的。程序的规格说明书准确地描述了对软件系统的数据 要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接□需求、约束、逆向需求及将来可能提出的需求,对了解已有软件的总体情况有很大帮助。在对已有软件做重大修改之前仔细阅读、认真研究这份文档, 可以避免许多修改错误。因此,应该选取(a )程序的规格说明。
(2)有经验的软件工程师通过阅读含有适当数量注解的源程序,不难搞清程序的实现算法,没有描述详细 设计结果的文档并不会给维护工作带来太大困难。此外,为了修改程序代码,原有程序的清单是必不可少的。因此,应该选取(c )源程序清单。
9. 良好的面向对象程序设计风格主要有哪些准则?
【答案】面向对象程序设计风格应遵循如下准则:
(1)提尚重用性。
(2)提高可扩展性。
(3)提高健壮性。