2018年西安理工大学计算机科学与工程学院864软件工程考研强化五套模拟题
● 摘要
一、简答题
1. 应该由谁来进行确认测试?是软件开发者还是软件用户?为什么?
【答案】(1)在对照需求做有效性测试和软件配置审查时,是由软件开发者在开发环境下进
行的测试。而接下来做验收测试时则以用户为主。软件开发人员和
输出结果,一般使用生产中的实际数据进行测试。
(2)如果软件是为多个用户开发的,则需要进行a 测试和p 测试。a 测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。软件在应该自然设置状态下使用。开发者坐在用户旁边,随时记录错误情况和使用中的问题,这是在受控制的环境下进行的测试。
(3)测试是由软件的多个用户在一个用户或多个用户的实际使用环境下进行的测试。这些用户是与公司签订了支持产品预发行合同的外部用户,他们要求使用产品,并愿意返回有关错误信息给开发者。与a 测试不同的是,开发者通常不在测试现场。因此,测试是在开发者无法控制的环境下进行的软件现场应用。
2. 维护技术的副作用有哪些?
【答案】因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用。维护的副作用有编码副作用、数据副作用、文档副作用三种。
(1)编码副作用
在使用程序设计语言修改源代码时可能引入下面错误。这些错误要到运行时才能被发现。例如:
①删除或修改一个子程序、一个标号、一个标识符。
②改变程序代码的时序关系,改变占用存储的大小,改变逻辑运算符。
③修改文件的打开和关闭。
④改进程序的执行效率。
⑤把设计上的改变翻译成代码的改变。
⑥为边界条件的逻辑测试做出改变。
(2)数据副作用
在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。数据副作用是修改软件信息结构导致的结果。例如:
①重新定义局部或全局的常量,重新定义记录和文件格式。
一一质量保证)人员也应参加。由用户参加设计测试用例,使用用户界面输入测试数据,并分析测试的
②增加或减少一个数组或高层数据结构的大小。
③修改全局或公共数据。
④重新初始化控制标志或指针。
⑤重新排列输入/输出或子程序的参数。
(3)文档副作用
所有的维护活动都必须对相关技术文档进行相应修改。否则会导致文档与程序功能不匹配、缺省条件改变、新错误信息不正确等错误,使文档不能反映软件当前的状态。如果对可执行软件的修改没有反映在文档中,就会产生文档副作用。例如:
①修改交互输入的顺序和格式,没有正确地记入文档中。
②过时的文档内容、索引和文本可能造成冲突等。
3. 试分析瀑布模型的优点和缺点。
【答案】瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终 得到软件产品。开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。
(1)优点
①可强迫开发人员采用规范的方法。
②严格地规定了每个阶段必须提交的文档。
③要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
④对文档的约束,使软件维护变得容易一些,且能降低软件预算。
(2)缺点
①开发过程一般不能逆转,否则代价太大。
②实际的项目开发很难严格按该模型进行。
③客户往往很难清楚地给出所有的需求。
④软件的实际情况必须到项目开发的后期客户才能看到。
4. 使用快速原型方法构造原型时,对原型有什么样的要求?
【答案】(1)原型不同于最终系统,两者在功能上的区别是最终系统要实现软件需求的全部功能,而原型只实现所选择的部分功能,最终系统对每个软件需求都是要求详细实现,而原型仅仅是为了试验和演示的,部分功能需求可以忽略或者模拟实现。
(2)在构造原型时,必须注意功能性能的取舍,忽略一切暂时不关心的部分以加速原型的实现,同时又要充分体现原型的作用,满足评价原型的要求。
(3)在构造原型之前,必须明确运用原型的目的,从而解决分析与构造内容的取舍,还要根据构造原型的目的确定考核、评价原型的内容。
二、综合设计应用题
5. 分析预测在下列系统交付使用以后,用户可能提出哪些改进或扩充功能的要求。如果由自己来开发这些系统,在设计和实现时将采取哪些措施,以方便将来的修改?
(1)储蓄系统
(2)机票预订系统
(3)患者监护系统
【答案】(1)储蓄系统
一般大型软件的维护成本远高于开发成本若干倍,所以在设计时就应该考虑到维护成本,而且在开发过程中 应该使用标准的程序设计语言和标准的操作系统接口,可以大大提高软件的可维护性,也可以减少软件存在的错误。
(2)机票预订系统
人多的时候系统瘫痪几率就大,在开发人员不在场的情况下,很容易出现系统错误,维护软件也是很困难的,也会给很多人带来不便,所以,在设计过程中应该科学的管理规划还有合理设计模块,使各个模块的独立性越高, 这样对软件的改进越方便,也便于快速纠错。
(3)患者监护系统
应该考虑它的完善性和预防性,要能满足用户在使用过程中的增加和修改工作,还要为了改善未来的可维护性或可靠性而修改。更要考虑系统数据的隐秘和安全,随时备份。
6. 什么是软件质量?试叙述它与软件可靠性的关系。
【答案】(1)软件质量是软件与明确地和隐含地定义的需求相一致的程度。
(2)软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度。软件可靠性是程序在给定的时间间隔内按照规格说明书的规定成功地运行的概率。
7. 假设自己被指派为一个软件公司的项目负责人,任务是开发一个技术上具有创新性的产品,该产品把虚拟现实硬件和最先进的软件结合在一起。由于家庭娱乐市场的竞争非常激烈,这项工作的压力很大。应选择哪种项目组结构?为什么?打算采用哪种(些)软件过程模型?为什么?
【答案】(1)由于是技术上具有创新性的产品,所以需要采用民主制程序员组,大家可以集思广益,共同攻关技术难题。
(2)要求把虚拟现实硬件和最先进的软件结合在一起,所以需要采用一种完整而且完美的模型进行开发,所以RUP 最为合适。
8. 简述有助于提高面向对象设计质量的每条主要启发规则的内容和必要性。
【答案】(1)有助于提高面向对象设计质量的主要启发规则如下所述:
①设计结果应该清晰易懂
a. 用词一致。
b. 使用已有的协议。
相关内容
相关标签