资源描述
简答题1 什么是软件危机?试简述至少3种软件危机的典型表现。答:(1)软件危机是指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。(2)典型表现: l 开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;l 软件需求分析不够充分,用户不满意“已经完成”的软件系统。l 软件质量难于保证;l 软件维护困难;l 通常没有保留适当的文档资料l 开发成本逐年上升;l 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势2 简述软件过程模型答:(1)软件过程是人们开发和维护软件及相关产品的活动、方法、实践和改进的集合。它明确定义软件过程中所执行的活动及其顺序,确定没一个活动内容和步骤,定义每个角色和职责。(2)软件工程将软件开发和维护的过程概况为8个大的活动:问题定义、可行性研究、需求分析、总体设计、详细设计、编码、系统测试和运行维护。3 简述结构化分析的主要步骤答:(1)根据用户的需求画出初始的数据流程图,写出数据字典和初始的加工处理说明(IPO图),实体关系图。(2)以初始数据流程图为基础,从数据流程图的输出端开始回溯。在对数据流程图进行回溯的过程中可能会发现丢失的处理和数据,应将数据流程图补充完善。(3)对软件性能指标、接口定义、设计和实现的约束条件等逐一进行分析。(4)系统分析人员与用户一起对需求分析的结果进行复查。(5)根据细化的需求修订开发计划。(6)编写需求规格说明书和初始的用户手册,测试人员开始编写功能测试用的测试数据。4. 请给出软件工程七条基本原理中的任意6条基本原理。答:原理1用分阶段的生命周期计划严格管理。原理2坚持进行阶段评审。原理3实行严格的产品控制。理4采用现代程序设计技术。原理5结果应能清楚地审查。原理6开发小组的人员应该少而精。原理7承认不断改进软件工程实践的必要性5.软件工程为什么要强调规范化和文档化?答:(1)软件工程强调规范化和文档化。规范化的目的是使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式。(2)文档化是将软件的设计思想、设计过程和实现过程完整地记录下来,以便于后人的使用和维护,在开发过程中各类相关人员借助于文档进行交流和沟通。另外,在开发过程中产生的各类文档使得软件的生产过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理。在用户最终验收时可以通过对提交的文档进行技术审查和管理审查,保证软件的质量。6简述模块独立性,内聚与耦合。答: 模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能, 而和软件系统中其它的模块的接口是简单的。一般采用两个准则度量模块独立性。即模块间耦合和模块内聚。耦合是模块之间的互相连接的紧密程度的度量。 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。模块独立性比较强的模块应是高内聚低耦合的模块。7设计下列伪程序的语句覆盖测试用例。BEGININPUT(A,B,C)IF A5 THEN X=10ELSE X=1END IFIF B10 THEN Y=20ELSE Y=2END IFIF C15THEN Z=30ELSE Z=3END IF PRINT(X,Y,Z)END答:因为每个判定表达式为真或假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或假各一次。下面是实现语句覆盖的典型测试用例:(1)使3个判定表达式之值全为假,输入:A=1,B=1,C=1,预期的输出:X=1,Y=2,Z=3 (2)使3个判定表达式之值全为真,输入:A=20,B=40,C=60,预期的输出:X=10,Y=20,Z=308. 为了提高软件的可维护性,在软件开发过程的各个阶段怎样充分考虑软件的可维护性因素。答:(1)在需求分析阶段应该明确维护的范围和责任,检查每条需求,分析维护时这条需求可能需要的支持,对于那些可能发生变化的需求要考虑系统的应变能力。(2)在设计阶段应该做一些表更实验,检查系统的可维护性、灵活性和可移植性,设计时应该将今后可能变更的内容与其他部分分离出来,并且遵循高内聚、低耦合的原则。(3)编码阶段要保持源程序与文档的一致性、源程序的可理解性和规范性。(4)在测试阶段测试人员应该按照需求文档和设计文档测试软件的有效性和可用性,收集出错信息并进行分类统计,为今后的维护打下基础。9简述在项目开发时选择程序设计语言的主要考虑的因素。答:编程人员的水平和编程经历;待开发的软件类型;算法和计算复杂性;数据结构的复杂性;软件的开发成本和时间要求;软件可移植性要求;可用的软件工具。10设计下列伪程序的条件组合覆盖测试用例。BEGININPUT(A,B)IF(A0) AND (B0) THEN X=A+BELSE X=A-BENDIF (CA) OR (D0,B0A0,B=0A0A=0,BA,DA,D=BC=A,DBC=B 下面的4个测试用例,可以使上面列出的8种条件组合每种至少出现一次:实现1,5两种条件组合输入:A=1,B=1,C=2,D=0预期的输出:X=2,Y=2 (1分)实现2,6两种条件组合输入:A=1,B=0,C=2,D=1预期的输出:X=2,Y=1 (1分)实现3,7两种条件组合输入:A=0,B=1,C-1,D=0预期的输出:X=-1,Y=-1 (1分)实现4,8两种条件组合输入:A=0,B=0,C=-1,D=1预期的输出:X=0,Y=0 (1分)1、 试从软件的特点出发分析软件危机产生的原因。答案:a) 软件是一种逻辑实体,具有抽象性,无法看到软件本身的形态,必须通过观察、分析、思考和判断才能了解它的功能和性能。b) 软件对硬件和环境有着不同程度的依赖性,这导致了软件升级和移植的问题。计算机硬件和支撑环境不断升级,为了适应运行环境的变化,软件也需要不断维护,并且维护的成本通常比开发成本高许多。c) 软件生产至今尚未摆脱手工方式,软件开发的手工行为造就了一个致命的问题,就是为应用“量身订做”软件。长期以来,软件给人的感觉是修改几条指令很简单,客户总是强调软件要适应自己的业务需求。因此,软件产品大多是为客户“订做”的,通用性差。d) 软件涉及人类社会的各行各业,常常涉及一些行业知识,这对软件工程师提出了很高的要求。e) 软件是与文学艺术作品相似的精神作品,与体力劳动相比,精神活动过程的特点是“不可见性”,这大大增加了组织管理上的困难。2、 什么是软件生命周期?他分为哪几个阶段?答案:软件生命周期是一个软件从提出开发要求到废弃为止的整个时期。分为8个阶段:问题定义、可行性分析、需求分析、概要设计、详细设计、编码、系统测试和运行维护3、一个程序片段如下,请设计符合条件组合覆盖的测试用例。if (a=4) & (b3) | (c=4 b=4 b=0a4 b0a=0c3c=3c=1综合以上条件组合,设计测试用例如下(注意结果不唯一,只要满足上面的组合条件即可):a=4 b=-1 c=3a=4 b=0 c=4a=-1 b=-1 c=0a=2 b=0 c=24、请说明对象模型的作用是什么?答案:对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。在面向对象方法中,类图是构建对象模型的核心工具。6、面向对象的分析通常要建立三个模型,请问三个模型的作用?答案:1)功能模型:表达系统的详细需求,为软件的进一步分析和设计打下基础。在面向对象方法中,由用例图和场景描述组成。2)对象模型:表示静态的、结构化的系统“数据”性质。描述现实世界中实体的对象以及它们之间的关系,表示目标系统的静态数据结构。3)动态模型:描述系统的动态结构和对象之间的交互,表示瞬时的、行为化的系统的“控制”特性。10、一个程序片段如下,请设计符合判定覆盖的测试用例。if (a=5) & (b5) | (c=5 b=5 b0c11c5 & t10 y=20 else y=2; if c15 z=30 else z=3; printf(“d%,d%,d%n”,x,y,z)答案条件:a5,t=0 a10b15c1) AND (z=0) THEN x=x/y END IFIF(y=2) OR(x=l) THENx=x+lEND IFPRINT(x)END答:条件组合覆盖标准为,使得每个判定表达式中条件的各种可能组合都至少出现一次。本程序中共有两个判定表达式,每个判定表达式中有两个简单条件,因此,总共有8种可能的条件组合,它们是: y1, z=0 y1, z0 y=1, z=0 y=1, z0 y=2, x=1 y=2, x1 y2, x=1 y2, x1条件组合覆盖设计测试用例: 实现1,6两种条件组合输入:y=2, z=0, x=4; 实现 2,5两种条件组合输入:y=2, z=1, x=1;实现 3,8两种条件组合输入:y=1, z=0, x=2; 实现 4,7两种条件组合输入: y=1, z=1, x=1. 9. 活动图与状态图的区别?答:(1)描述的重点不同:活动图描述的是从活动到活动的控制流;状态图描述的是对象的状态及状态之间的转移。(2)使用的场合不同:在分析用例、理解涉及多个用例的工作流、处理多线程应用等情况下,一般使用活动图;在显示一个对象在其生命周期内的行为时,一般使用状态图。10设计下列伪程序的判定覆盖测试用例。BEGININPUT(a,b,c,x,y,z,t);IF (a10) THEN x=10ELSE x=1END IFIF(b10)AND (t15) THEN z=30 ELSE z=3 END IFPRINT(x,y,z)END答:判断覆盖标准为,不仅使条语句都至少执行一次,还要是程序中每个分支都至少执行一次。也就是说,设计的测试用例使每个判定都有一次取“真”和“假”的机会。测试用例(不唯一):a=16 t=0 b=11 c=16; a=5 t=0 b=10 c=15
展开阅读全文