2017年南京大学1507计算机软件基础之软件工程复试实战预测五套卷
● 摘要
一、名词解释
1. 信息隐藏
【答案】信息隐藏在信息安全保障体系的诸多方面发挥着重要作用,它指的是在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对不需要这些信息的其他模块来说,是不能访问的,也是不可见的。
二、简答题
2. 什么是面向数据流的设计方法?它有哪些策略?
【答案】(1)面向数据流的设计方法的定义
面向数据流的设计方法也称结构化设计方法(SD ),它与结构化分析(SA )相衔接,它按一定的设计策略将数据流图转换成软件的模块层次结构。
(2)面向数据流的设计策略
①事务型分析设计
一个大的复杂的系统分解成较小的,相对简单的子系统,这些子系统彼此之间相对独立一些,而高层数据流图的数据处理往往反映这些子系统的功能,有平行分别处理的特点,因此,高层数据流图的转换通常可作为事务型处理,把一个加工逻辑看成是一类特定的事务,把它们分别映射成一个模块,最高层模块为系统模块,通过对输入初始命令的判断决定调用哪个模块。这种事务型分析设计的策略也用于较低层数据流图向软件结构图的转换。
②变换型分析设计
变换型数据流图具有主要的处理功能及实现这项处理功能所需要的输入数据流和经过处理后产生的输出数据流。确定了第三部分,高层模块就可分解出三个从属于它的新模块,分别执行输入、变换、输出功能。变换分析设计一般用于对较低层数据流图向软件结构图的转换。
3. 快速原型模型有哪几种?各有何特点?
【答案】(1)快速原型模型的分类
原型模型又称快速原型模型,它是增量模型的另一种形式。它是在开发真实系统之前,构造一个原型,在该原型的基础上,逐渐完成整个系统的开发工作。根据原型的不同作用,可以分为探索型模型、实验型模型和演化型模型三类。
(2)三种快速原型模型的特点
①探索型模型
这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发者对项目都缺乏
经验的情况,通过对原型的开发来说明用户的需求。
②实验型模型
这种原型主要用于设计阶段,考核实现方案是否合适,能否实现。对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。
③演化型模型
这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包括系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统。它将原型的思想扩展到软件开发的全过程。
4. 列举用主动对象表示控制流时应遵循的应用规划。
【答案】(1)在一个表示进程的主动对象中,有且仅有一个表示进程的主动服务。
(2)如果要把一个进程和隶属于它的线程分散到不同的对象中去表示,则尽可能使每个对象中只含有一个表示线程的服务。
(3)如果要把进程和隶属于它的线程放在一个对象中表示,就应该把这个进程的全部线程都放在同一个对象中,避免一部分集中,一部分分散。
5. 使用快速原型方法构造原型时,对原型有什么样的要求?
【答案】(1)原型不同于最终系统,两者在功能上的区别是最终系统要实现软件需求的全部功能,而原型只实现所选择的部分功能,最终系统对每个软件需求都是要求详细实现,而原型仅仅是为了试验和演示的,部分功能需求可以忽略或者模拟实现。
(2)在构造原型时,必须注意功能性能的取舍,忽略一切暂时不关心的部分以加速原型的实现,同时又要充分体现原型的作用,满足评价原型的要求。
(3)在构造原型之前,必须明确运用原型的目的,从而解决分析与构造内容的取舍,还要根据构造原型的目的确定考核、评价原型的内容。
6. 简要叙述软件工程目标和内容。
【答案】(1)软件工程的目标
软件工程的目的是成功地建造一个大型软件系统,该软件系统具有如下特点:
①付出的开发成本较低;
②达到了要求的软件功能;
③取得了较好的软件性能;
④开发的软件易于移植;
⑤需要较低的维护费用;
⑥能够按时完成开发任务;
⑦及时交付使用;
⑧开发的软件可靠性高。
(2)软件工程的内容
软件工程研究的主要内容是软件开发技术和软件开发管理两个方面。
①在软件开发技术方面,主要是研究软件开发方法、软件开发过程、软件开发工具和环境。 ②在软件开发管理方面,主要是研究软件管理学、软件经济学、软件心理学等。
7. 非渐増式测试与渐増式测试有什么区别?
【答案】(1)渐增式测试和非渐增式测试的定义
集成测试的方法主要有两种:非渐増式测试和渐増式测试。
①非渐增式测试
首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试。 ②渐增式测试
逐个把未经过测试的模块组装成到已经测试的模块上去,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。
(2)渐增式测试和非渐増式测试的区别
①非渐增式方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试把单元测试与集成测试合在一起,同时完成。
②非渐增式测试需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。
③渐增式可以较早地发现进口之间的错误,非渐增式最后组装时才发现。
④渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐増式发现进口错误推迟到最后,很难判断是哪一部分接口出错。
⑤渐增式比较彻底,已测试的模块和新的模块再测试。
⑥渐增式占用的时间较多,但非渐增式需更多地驱动模块。桩模块也占用一些时间。
⑦非渐増式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。
三、综合应用题
8. 下面是自动售货机系统的需求陈述,试建立它的对象模型、动态模型和功能模型:
自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重 量、厚度及边缘类型。有效的硬币是一元币、五角币、一角币、五分币、二分币和一分币。其他货币都被认为是 假币。机器拒绝接收假币,并将其从退币孔退出。当机器接收了有效的硬币之后,就把硬币送入硬币储藏器中。 顾客支付的货币根据硬币的面值进行累加。
自动售货机装有货物分配器。每个货物分配器中包含零个或多个价格相同的货物。顾客通过选择货物分配器 来选择货物。如果货物分配器中有货物,而且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送 孔送给顾客,并将适当的零钱返回到退币孔。如果分配器是空的,则和顾客支付的货币值相等的硬币将被送回到退币孔。如果顾客支付的货币值少于所选择的分配器中货物的价格,机器将等待顾客投进更多的货币。如果顾客 决定不买所选择的货物,他投放进
相关内容
相关标签