1、第一章 概述 1.软件产品具有哪些特性? 答:软件是一种逻辑案件,而不是具体的物理实体,具有抽象性 软件是通过人的智力活动,将知识和技能转化成为信息的一种产品,是在研制,开发中被创造出来的 a.软件产品是一种逻辑产品. b.软件产品的生产主是研制,软件产品的成本主要体现在软件的... c.开发的软件可维护性差. d. 开发的软件可靠性差 ⑴是一种逻辑产品,与物质产品有很大的区别. ⑵软件产品的生产主要是研制,成本主要在开发和研制,开发完成后,通过复制就产生了大量软件产品. ⑶软件产品不会用坏,不存在磨损,消耗. ⑷生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"
2、定做"的 ⑸开发软件的费用不断增加,致使生产成本相当昂贵. (6)其质量往往靠不住,缺乏可见性 2. 简述什么是软件工程? 答: 软件工程软件工程是开发、运行、维护和修复软件的系统方法,其中“软件”的定义为计算机程序、方法、规则、相关的文档资料以及计算机上运行时所必须的数据;软件工程是一门科学,其目的是生产无故障的、软件,且交付及时,不超过预算,并满足用户要求; 3. 软件生命周期可分为哪三个时期?GB 8567中规定可分为哪几个阶段? 答:定义时期:问题的定义(客户需求)、可行性研究(为什么做); 开发时期:需求分析(做什么)、总体设计(怎么做—抽象)、详细设计(怎么实现—具
3、体)、编码(程序设计语实现)测试.。 运行时期:软件维护。 4.依下列叙述确定软件生命周期模型。 M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入M公司,你认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告简要阐明你的理由。 答:瀑布模型的缺点在于只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。另外瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要,它已不适宜开发实验型的软件。 根据快速原型法的特点,原型系统已经通过与用户交互而得到验证,据此产
4、生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。说明它特别适合于开发探索型、实验型的软件。 5.依下列叙述确定软件生命周期模型。 假设要求你开发一个软件,该软件的功能是 把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。一旦实现并测试完之后,该产品将被抛弃。你打算使用哪种软件生命周期模型?请说明你作出选择的理由。 答:对这个软件的需求很明确,实现开平方功能的算法也很熟
5、悉,因此,既无需通过原型来分析需求也无需用原型来验证设计方案。此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来年开发该软件。综上所述,为了开发这个简单的软件,使用大多数人熟悉的瀑布模型就可以了。 第二章 可行性研究 1.可行性分析的任务是什么? 答:可行性分析的任务是对一下三方面的可行性进行研究。1.技术上可行性:研究现有技术、资源及限制能否支持和实现系统的功能、性能,主要是技术风险问题。2.经济上的可行性:进行成本估算及效益评估,确定项目是否值得开发。3.操作上的可行性:系统的操作方式在这个用户组织内是否行得通。4.社会上的可行性
6、主要指系统开发后能否运行,是否存在合同、责任、侵权、用户组合管理等方面的问题。从法律,社会效益研究可行性。 2. 简述如何检查数据流图的正确性和提高它的易理解性? 答:可从以下几个角度来检查数据流图的正确性:数据守恒、文件的使用:父图和子图的平衡等;提高数据流图的易理解性可从以下几个方面进行:简化加工间的联系、注意分解的均匀、适当的命名等。 3.请依描述绘制DFD图。 画出银行取款过程的DFD图。问题描述为:储户用存折取款,首先填写取款单,根据“账卡”中的信息检验取款单与存折,如有问题,将问题反馈给储户,否则,登录“储户存款数据库”,修改相应数据,并更新“账卡”,同时发出付款通知,出
7、纳向储户付款。 4.请依描述绘制DFD图并写出数据词典中的数据流条目。(第二章 可行性研究) 自学考试报名过程中有个“记录报名单”的处理。该处理主要是根据报名表(姓名、性别、身份证号、课程名)和开考课程(课程名、开考时间)、经校核,编号、填写、输出准考证给报名者,同时记录到考生名册中(准考证号、姓名、课程)。 第五章 总体设计 1.衡量模块独立性的两个标准是什么?它们各表示什么含义? 答:两个定性的度量标准:耦合与内聚性。耦合性:也称块间联系。指软件系统中各模块间相互联系紧密程度的一种度量。模块间联系越紧密,其耦合性就是越强,模块的独立性则越差。内聚
8、性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量,模块内元素联系越紧密,内聚性越高。 2、问题描述如下: 我们已经开始进入“智能”产品时代。在这类产品中把软件做在只读存储器中,成为设备的一部分,从而使设备具有某些“智能”。因此,这类产品的设计都包含软件开发的任务。作为面向数据流的设计方法中变换分析的例子,考虑汽车数字仪表板的设计。 假设的仪表板将完成下述功能: (1) 通过模数转换实现传感器和微处理机接口; (2) 在发光二极管面板上显示数据: 1) 指示每小时英里数(mph), 2) 行驶的里程, 3) 每加仑油行驶的英里数(mp
9、g)等等; 4) 指示加速或减速 5) 超速警告:如果车速超过55英里/小时,则发出超速警告铃声。 1. 画出精化的数据流图。 2.利用变换分析画出第一级分解的软件的层次图。 3. 用层次图表示软件的最终结构图。 第六章详细设计 1.详细设计的基本任务是什么?有哪几种描述方法? 答:设计模块的数据结构、设计数据库的物理结构、设计模块的详细算法、其他(代码设计、输入|输出格式设计、人机对话设计)、编写详细设计说明书、评审。程序流程图、PAD图、PDL。 2.请依描述绘制判定表. 假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。当行李重量超过3
10、0kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。 3.画出下列伪码程序的程序流程图和盒图。 n 开始 p g f 停止 Q循环 WHILE q F T p q g n f F T START 答: IF p THEN WHILE q DO f END DO ELSE BLOCK g n END BLOCK END IF STOP 4. 如图所示的程
11、序流程代表一个非结构化的程序,请解答以下问题。为什么说它是非结构化的?设计一个与它等价的结构化程序(画出盒图) 盒图如下: T 开始 p g 停止 F q F T p (NOT p)OR (NOT q) g F T 如图所示程序的循环控制结构有两个出口,不符合狭义的结构程序定义(单入口单出口),因此是非结构化的程序; 5、问题描述如下: 有两个输入文件:考生基本情况文件(简称考生情况文件)和考生高考成绩文件(简称考分文件)如下: 考生情况文件 考分文件
12、准考证号 姓名 通讯地址 准考证号 考分 产生输出文件: 考生新文件 准考证号 姓名 通讯地址 考分 试用Jackson方法完成下列工作 1.用Jackson图表示输入与输出结构,找出它们之间的对应单元; 2.描绘程序结构的Jackson图,并列出列出所有操作和条件。 3. 用Jackson伪代码写出与程序结构图对应的过程性表示。 第七章 测试 1. 什么是编码风格?为什么要强调编码风格? 答:编码风格又称程序设计风格或变成风格。编码的目标从强调效率转变
13、为强调清晰。良好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不在注意风格就很难写出高质量的程序,尤其当多个程序员合作编写一个很大的程序时,需要强调良好而一直的编码风格,一边相互通讯,减少因不协调而引起的问题。总之,两哈的编码风格有助于编写出科考而又容易维护的程序编码的风格在很大程度上决定着程序的质量 2. 简述软件测试的两种基本的测试方法。 答:第一种方法是黑盒测试,第二种是白盒测试。黑盒测试时完全不考虑程序内部结构和处理过程、只按规格说明书的规定来检查程序是否符合它的功能要求。黑盒测试时在程序接口进行的测试,又称为功能测试。白盒测试是将程序看作是一个透明的盒子,也就是说测试人员完全
14、了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。 3. 为什么软件测试不应该由程序的编写人员来做? 答:软件测试的目的是为了发现程序中的错误而执行程序的过程。正确认识测试的目标十分重要。测试目标决定了测试方案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。 由于测试的目标是暴漏程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当。 4.请设计下列伪码程序的判定覆盖测试用例。
15、 答:本题共需两组测试用例: 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=30 START INPUT(A,B,C,D) IF(A>0)AND(B>0) THEN X=A+B ELSE X=A-B END IF(C>A)OR(D
16、句覆盖测试用例。 START INPUT(A,B,C) IF A>5 THEN X=10 ELSE X=1 END IF IF B>10 THEN Y=20 ELSE Y=2 IF C>15 THEN Z=30 ELSE Z=3 END IF PRINT(X,Y,Z) STOP 第八章 维护 1. 什么是BROOKS定律? Brooks法则是指一种实践,应用全面、严密的方法来描述组织之流程、信息系统、人员和组织子单元的当前或未来结构,以便其与组织的核心目标和战略方向保持一致。 为推迟的软件增加人力将使得软件时间发布更晚。 这是因为后来者需要加快速度,同时还要与前任进行沟通,从而使得开发团队增加了更多的开发时间,这个时间超过了新增程序员所做的贡献。从理论上说,软件发展陷入僵局是可能的,此时开发团队极其庞大,以致所有时间都来互相沟通和重新决定,这样项目永远也不会完成。






