软件工程案例教程主编习题答案_第1页
软件工程案例教程主编习题答案_第2页
软件工程案例教程主编习题答案_第3页
软件工程案例教程主编习题答案_第4页
软件工程案例教程主编习题答案_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

               附录A   习题答案30第1章习题答案一、判断题题号12345678910111213答案YYYYNYYNNNNYY二、填空题题号ABCD1方法工具过程2程序数据文档3程序开发环境需求分析概要设计详细设计4汇编语言高级语言5汇编语言高级语言6结构式模块化7需求定义设计使用和维护8系统界面原型运行用户界面原型同意什么和不同意什么自外向内9需求分析概要设计详细设计三、简答题1. 软件的特点: 软件具有抽象性。 软件与硬件的生产方式不同。 软件与硬件的维护方式不同。 软件具有复杂的逻辑性。 软件的成本较高。 软件的使用和社会因素有关。2. 软件危机产生的原因:用户需求不明确。缺乏正确的理论指导。软件开发规模越来越大。软件开发复杂度越来越高。3. 软件危机的主要表现:软件开发进度难以预测。软件开发成本难以控制。用户对产品功能难以满足。软件产品质量无法保证。软件产品难以维护。软件缺少适当的文档资料。4. 软件工程学的基本原则有哪些: 抽象。 信息隐蔽。 模块化。 局部化。 确定性。 一致性。 完备性。 可验证性。5 什么是软件的生命周期?答案:软件与任何一个事物一样,有它的孕育、诞生、成长、成熟、衰亡的生存过程。这就是软件的生存周期。6 软件工程过程有哪几个基本过程活动?试说明之。答案:软件工程过程的基本过程活动有4步: 软件规格说明(需求定义)。规定软件的功能及其运行的限制; 软件设计与开发(设计开发)。产生满足规格说明的软件; 软件确认(测试)。确认软件能够完成客户提出的要求; 软件演进(维护)。为满足客户的变更要求,软件必须在使用的过程中演进。四、综合题1. 详细说明软件生命周期分哪几个阶段?答案:软件生命周期主要分为6个阶段:软件项目计划、软件需求分析和定义、软件设计、程序编码、软件测试,以及运行维护。(1) 软件项目计划 :在这一步要确定软件工作范围,进行软件风险分析,预计软件开发所需要的资源,建立成本与进度的估算。根据有关成本与进度的限制分析项目的可行性。(2) 软件需求分析和定义 :在这一步详细定义分配给软件的系统元素。可以用以下两种方式中的一种对需求进行分析和定义。一种是正式的信息域分析,可用于建立信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。另一种是软件原型化方法,即建立软件原型,并由用户进行评价,从而确定软件需求。(3) 软件设计 :软件的设计过程分两步走。第一步进行概要设计,以结构设计和数据设计开始,建立程序的模块结构,定义接口并建立数据结构。此外,要使用一些设计准则来判断软件的质量。第二步做详细设计,考虑设计每一个模块部件的过程描述。经过评审后,把每一个加细的过程性描述加到设计规格说明中去。(4) 程序编码 :在设计完成之后,用一种适当的程序设计语言或CASE工具生成源程序。应当就风格及清晰性对代码进行评审,而且反过来应能直接追溯到详细设计描述。(5) 软件测试 :单元测试检查每一单独的模块部件的功能和性能。组装测试提供了构造软件模块结构的手段,同时测试其功能和接口。确认测试检查所有的需求是否都得到满足。在每一个测试步骤之后,要进行调试,以诊断和纠正软件的故障。(6) 软件维护 :为改正错误,适应环境变化及功能增强而进行的一系列修改活动。与软件维护相关联的那些任务依赖于所要实施的维护的类型。2. 试论述瀑布模型软件开发方法的基本过程。答案:瀑布模型规定了各项软件工程活动,包括:制定软件项目计划,进行需求分析和定义,软件设计,程序编码,测试及运行维护。并且规定了它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落。然而软件开发的实践表明,上述各项活动之间并非完全是自上而下,呈线性图式。实际情况是,每项开发活动均应具有以下特征:(1) 从上一项活动接受本项活动的工作对象,做为输入;(2) 利用这一输入实施本项活动应完成的内容;(3) 给出本项活动的工作成果,做为输出传给下一项活动;(4) 对本项活动实施的工作进行评审。若其工作得到确认,则继续进行下一项活动,否则返回前项,甚至更前项的活动进行返工。第2章习题答案一、判断题题号12345678910111213答案NYNNNYYYYYYNY二、选择题题号123456789答案CDACCCABD三、填空题题号ABCDE1多对一一对多2业务模型功能模型性能模型接口模型3访谈问卷调查情景分析构造原型4加工数据的原点或终点数据流.数据存储文件5名称别名或编号分类描述何处使用四、简答题1 可行性研究主要做4个方面的研究: 经济可行性:进行成本效益分析。从经济角度判断系统开发是否“合算”。 技术可行性:进行技术风险评价。从开发者的技术实力、以往工作基础、问题的复杂性等出发,判断系统开发在时间、费用等限制条件下成功的可能性。 法律可行性:确定系统开发可能导致的任何侵权、妨碍和责任。 方案的选择:评价系统或产品开发的几个可能的候选方案。最后给出结论意见。2 需求获取难的原因是: 用户需求具有动态性(不稳定性)。 用户需求具有模糊性(不准确性)。 对需求达成一致的艰难性。 管理体制、机构设置处在变革中。 软件书籍没有将需求分析讲清楚。3. 需求分析的原则: 解决逻辑问题:需求分析是对问题的识别和说明,要回答“做什么”,而不是“怎么做”。 以运行环境为基础:需求分析工作应以具体的运行环境为基础,实事求是。 用户参与的原则:需求分析工作是系统分析人员同用户不断交互的过程。 构造高质量的需求规格说明:需求规格说明是需求分析工作重要的完成标志。4. 需求分析的任务有: 画出目标系统的组织机构模型。 画出目标系统业务操作流程图。 画出目标系统的数据流图。 列出目标系统的功能点列表,即功能模型。 列出系统的性能点列表,即性能模型。 列出目标系统的接口列表,即接口模型。 确定目标系统的运行环境,即环境模型。 目标系统的界面约定,即界面模型。 分析与评估开发工期、费用、进度、风险等。5 数据流图的作用:数据流图可以用来抽象地表示系统或软件。它从信息传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,同时可以按自顶向下、逐步分解的方法表示内容不断增加的数据流和功能细节。因此,数据流图既提供了功能建模的机制,也提供了信息流建模的机制,从而可以建立起系统或软件的功能模型。6 数据词典的作用:分析模型中包含了对数据对象、功能和控制的表示。在每一种表示中,数据对象和控制项都扮演一定的角色。为表示每个数据对象和控制项的特性,建立了数据词典。数据词典精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。第3章习题答案一、判断题题号12345678910111213141516答案NNNYYYYYYYNYYYYY二、选择题题号12345678答案BCDADABC三、填空题题号ABCD1SD方法Jackson方法OOD方法2耦合内聚3一个数据型标准调用少4DDL     DMLDCL5基本表代码表中间表临时表6原子性原始性演绎性稳定性7SA                SP8图示语言表格9PDL          人10防卫性一致性冗余性11客户层应用层数据层12高内聚低耦合作用范围控制范围四、简答题1. 模块的基本属性: 功能:描述该模块做什么? 逻辑:描述模块内部怎么做? 状态:模块使用时的环境和条件。 接口:指模块的输入与输出。2. 软件设计的具体任务: 制定规范 结构设计 处理方式结构设计 数据结构及数据库设计 可靠性设计(质量设计) 编写软件设计文档 设计审查和复审 详细设计3. 模块化的特征: 抽象:用层次的方式构造和分析复杂系统。 逐步求精:帮助开发人员把精力集中在与当前开发阶段最相关的那些问题上。 信息隐蔽:如果一个模块内包含的信息(过程和数据) 不允许外部的模块访问的话,其它模块不能对其访问。 局部化:把一些关系密切的软件元素物理地放得彼此靠近。4. 软件设计优化的准则: 划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性。模块划分的准则:“将相关的各部分放在一起,无关的东西不要放在一起。” 模块的大小要适中。 模块的接口要简单、清晰、含义明确,便于理解,易于实现、易于测试和维护。 一个模块的作用范围应在其控制范围之内,且判定所在的模块,应与受其影响的模块在层次上尽量靠近。 软件结构的深度、宽度、扇入、扇出应适当。 力求设计单入口和单出口的模块,避免“病态连接”,以防止内容耦合。 设计功能可预测模块的划分,应防止功能过分局限。  5. 结构化设计的优点: 减少设计复杂性。将大化小,使复杂问题简单化。 结构独立。将程序划分成多个相对独立的模块。 模块功能单一化,可使软件设计获得最大的益处。 易于进行软件修改。 易于开发和维护。 加强了代码的可重用性。五、综合题1. 、2. 、第4章习题答案一、填空题题号ABCD1类对象2子类操作3封装性多态4对象模型动态模型功能模型5分析模型     设计模型测试模型6视图       图通用机制二、简答题1. 面向对象是:Coad和 Yourdon给出的定义:“面向对象(Object Oriented,OO)=对象(Object)+类(Classification)+继承(Inheritance)+通信(Communication with Messages)”。2. 面向对象基本特征是:面向对象技术的基本特征主要是抽象性、封装性、继承性和多态性。3. 软件开发过程指:软件开发过程就是将软件系统所涉及到的应用领域和业务范围(现实世界)的问题空间和用于解决某些问题的软件系统的解空间之间的映射。4. 传统软件开发方法存在的问题:(1) 问题空间不能直接映射到解空间(2) 软件复用程度低(3) 分析不能直接过渡到设计(4) 软件可维护性差(5) 软件不满足用户需要5. 面向对象开发方法的特点:(1) 对软件开发过程所有阶段进行综合考虑。(2) 软件生存期各阶段所使用的方法、技术具有高度的连续性,用符合人类认识世界的思维方式来分析、解决问题。(3) 增强系统稳定性(4) 具有良好的可复用性6. 统一建模语言:UML是具有指定的建模元素(图式符号),严格的语法(构图规则),明确的语义(逻辑含义)的建模语言,是面向对象技术领域内占主导地位的标准建模语言。7. Coda/Yourdon方法的面向对象设计模型:Coda/Yourdon方法的OOD模型是在OOA模型5个层次(主题层、类与对象层、结构层、属性层和服务层)基础上,建立4个组元的设计模型:问题域组元(PDC)、人机交互组元(HIC)、任务管理组元(TMC)和数据管理组元(DMC)。8. 简述UML视图结构:(1)用例视图:描述系统的外部特性、系统功能等。(2)逻辑视图:描述系统设计特征。(3)进程视图:表示系统内部的控制机制。(4)配置视图:描述系统的物理配置特征。(5)实现视图:表示系统的实现特征,常用构件图表示。三、综合题1. 类、属性、操作、继承、多态、封装及抽象类的概念:(举例略)1) 类,又称对象类(Object Class),是一组具有相同属性和相同操作的对象的集合。2) 类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。3) 类具有操作,它是对象的行为的抽象,操作实现的过程称为方法。4) 继承是类间的基本关系,它是基于层次关系的父类和子类之间共享数据和操作的一种机制。5) 多态是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。6) 封装是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。7) 抽象类是没有实例的类,它把一些类组织起来,提供一些公共的行为,但并不需要使用这个类的实例,而仅使用其子类的实例。2. 面向对象开发方法及每个方法的特点:(1)Booch方法Booch方法描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根本不同于传统的功能分解的设计方法。Booch方法的开发模型包括静态模型和动态模型,Booch方法偏向于系统的静态描述,对动态描述支持较少。(2)Coda/Yourdon方法在Coda/Yourdon方法中,对于一个复杂问题建立问题域的分析模型,构造和评审OOA概念模型的顺序由5个层次组成,OOD模型是在OOA模型5个层次基础上,建立4个组元的设计模型。该方法简单、易学。(3)OMT方法    OMT方法使用了建模的思想,讨论如何建立一个实际的应用模型。从3个不同而又相关的角度建立了三类模型,三类模型描述的角度不同,却又相互联系。(4)OOSE方法    OOSE的开发活动主要分为三类:分析、构造和测试。OOSE将面向对象的思想应用于软件工程中,建立五个模型。OOSE方法的最大特点是面向用例,建立了Use Case 模型。OOSE方法比较适合支持商业工程和需求分析。第5章习题答案一、判断题题号123456789101112131415答案NYYYYYYYYYYYYYY二、填空题题号ABCD1对象层         关系层2主题图           交互图3流程图IPO图伪码4发现潜在对象筛选对象为对象分类5初步确定筛选完善6分析选择7选择精炼构造三、简答题1. 面向对象分析:面向对象分析就是运用面向对象的方法进行需求分析,其主要任务是分析和理解问题域,找出相应的描述问题域和系统责任所需的类及对象,分析它们的内部构成好外部关系,正确地抽象为规范的对象,定义其内部结构和外部消息传递关系,建立问题域精确模型的过程。2. 面向对象分析的模型的构成:(1) 基本模型:基本模型是一个类图。构成类图的元素所表达的模型信息,分为三个层次:对象层、特征层和关系层。(2) 补充模型:补充模型有主题图和交互图。(3) 详细说明 3. 面向对象分析的过程:(1) 获取客户对系统的需求(2) 标识类和对象(3) 定义类的结构和层次(4) 建造对象-关系模型(5) 建立对象-行为模型4. 确定服务:(1) 确定访问对象属性的操作(2) 来自事件驱动的操作(3) 处理对应的操作(4) 消除冗余操作5. 动态模型:对于一个系统来说,功能模型指明了系统应该“做什么”,而动态模型则明确规定了“什么时候做”。即在何种状态下、接受了什么事件的触发,来确定对象的可能事件的顺序。6. 准备脚本:在建立动态模型的过程中,脚本是指在某一执行期间内系统中的对象(或其他外部设备)与目标系统之间发生一个或多个典型的互换信息时产生的事件,所互换的信息值就是该事件的参数,对于各事件,应确定触发事件的动作对象和该事件的参数。7. 准备事件跟踪图:事件跟踪图能形象、清晰地表示事件序列以及事件与对象的关系。在事件跟踪图中,一条竖线代表一个类和对象,每个事件用一条水平的箭头线表示,箭头方向从事件的发送对象指向接受对象。事件按照先后顺序排列,时间从上向下递增。8. 确定基本系统模型图:基本系统模型是用来确定系统的边界和输入/输出数据流的,表明一个计算如何从输入值得到输出值,表明值之间的依赖关系及相关的功能,它不考虑计算的次序。9. 面向对象分析的目的:面向对象分析的目的是对客观世界的系统进行建模,是定义所有与待解决问题相关的类。完成对所求解问题的分析,确定系统“作什么”,并建立系统的模型。10. 面向对象分析的基本任务:面向对象分析的基本任务是运用面向对象的方法,软件工程师和用户必须充分沟通,以了解基本的用户需求,对问题域和系统责任进行分析和理解。11. 为建立分析模型,要运用的基本原则:(1) 建立信息域模型;(2) 描述功能;(3) 表达行为;(4) 划分功能、数据、行为模型,揭示更多的细节;(5) 用早期的模型描述问题的实质,用后期的模型给出实现的细节。12. 建立对象-行为模型的步骤:(1) 评估所有的用例,完全理解系统中交互的序列。(2) 标识驱动交互序列的事件,理解这些事件如何和特定的对象相关联。(3) 为每个用例创建事件轨迹(event trace)。(4) 为系统建造状态机图。(5) 复审对象行为模型,以验证准确性和一致性。四、综合题1.完成实例图书管理系统面向对象的分析过程,包括:静态模型、动态模型和功能模型。系统需求:在图书馆管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡号,借阅者名),账户存储借阅者的个人信息、借阅信息以及预定信息。持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定,但这些操作都是通过图书管理员进行的,也即借阅者不直接于系统交互,而是图书管理员充当借阅者的代理与系统交互。在借阅书刊时,需要输入所借阅的书刊名、书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。借阅者还可预定该书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人。另外,不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊。答:分析模型第6章习题答案一、判断题题号12答案YY二、填空题题号ABCD1知识方法和标准软件成分2系统设计     对象设计3问题域     人机交互任务管理数据管理4实例     继承多态5模块化    信息隐藏可复用简洁化6限定交互时间指定窗口和报表设计命令层次三、简答题1. 优化对象设计:(1)确定优先级(2)提高效率(3)调整继承关系2. 设计内部结构:(1)确定遗漏的属性和操作(2)指定类型,声明可见性3. 面向对象启发规则是: 设计结果应该清晰易懂 一般-特殊结构的深度应适当 设计简单类 使用简单的协议 使用简单的操作 把设计变动减至最小4. 面向对象设计:面向对象设计是面向对象方法在软件设计阶段应用与扩展的结果,就是根据在问题域中已建立的分析模型,运用面向对象技术进行系统软件设计,并且补充实现的细节部分,如人机界面、数据存储、任务管理等,形成符合成本和质量要求的、抽象的系统实现方案,在求解域中建立设计模型。5. 设计任务管理子系统:任务管理的设计包括:确定要执行的任务并识别它的特征、确定任务的优先级、创建协调任务来协调所有其他任务、为每个任务设计对象,并定义它们之间的关系。6. 设计数据管理子系统:数据管理子系统也称数据管理部分。数据存储管理是建立在某种数据存储管理系统之上,提供了数据在数据管理系统中存储和检索对象的基本结构,是系统存储或检索对象的基本设施。7. 对全局资源管理:全局资源包括物理资源(磁盘驱动器、处理器、通信线路)或逻辑资源(数据库、对象)。不但有访问权限的问题,还有访问冲突的问题。所以,应该标识全局资源,并制定访问它们的策略。8. 选择控制流机制:分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。9. 设计边界条件:设计中的大部分工作都与系统稳定的状态行为有关。但必须考虑边界条件:系统如何启动、初始化、关闭以及故障处理。10. 评审:分析模型与设计模型映射,每个需求和每个系统设计问题都提到了,模型不包括任何冲突,能够实现,由非系统设计人员能够看懂模型。11. 对象设计:系统分析确定了问题域对象,以及它们之间的关系、相关的属性、操作。系统设计确定了子系统和大多数重要的求解域对象。12. 设计关联:根据应用系统中的使用方式来确定实现关联的策略。可以选定一个统一实现所有关联的全局性的策略,或者对不同的关联选择不同的实现策略。13. 设计接口:接口提供了一种方法,把对象基于操作的功能说明与具体实现区分开来,使得任何依赖和使用接口的客户不必依赖于接口的具体实现,有利于接口实现的替换。14. 设计类中服务:设计类中的服务是面向对象设计的一项重要内容。需要综合考虑对象模型、动态模型和功能模型,才能正确确定类中应有的服务。15. 面向对象设计中存在下述3种内聚形式: 服务内聚:一个服务应该完成一个且仅完成一个任务。 类内聚: 设计类的原则是,一个类应该只有一个功能,它的属性和服务应该是高内聚的。 层内聚:又称一般-特殊内聚。16. 客户/服务器(Client-service)交互方式和平等伙伴(Peer-to-peer)交互方式: 客户/服务器(Client-service)交互方式:在客户/服务器关系中,作为“客户”的子系统调用作为“服务器”的子系统,执行某些服务后并返回结果。 平等伙伴(Peer-to-peer)交互方式:在该交互方式中,每个子系统都可能调用其他子系统,因此,每个子系统都必须了解其他子系统的接口,子系统间必须相互了解接口。四、综合题1. 分析模型与设计模型的区别:分析模型设计模型概念模型,回避了实现问题;物理模型,是实现蓝图;对设计是通用的;针对特定的实现;对类型有3种构造型;对类型有任意数量的构造型(依赖于实现语言);不太形式化;比较形式化;开发费用较低;开发费用较高;层数少;层数多;勾画系统的设计轮廓;进行系统设计;主要通过研讨会等方式创建;设计模型和实现模型需双向开发;可能不需要在整个生命周期内都做维护;在整个生命周期内都应该维护2. 文件管理系统、关系数据库管理系统和面向对象数据库管理系统三种数据存储管理模式的优缺点:(1)文件管理系统A. 主要优点:a) 使用它长期保存数据具有成本低和简单等特点b) 数据按字节流存储,适合于存储大容量数据。B. 主要缺点:a) 文件操作的级别低,操作繁琐,实现比较困难,为提供适当的抽象级别还必须编写额外的代码。b) 文件管理系统是操作系统的一个组成部分,不同操作系统的文件管理系统往往有明显差异。(2)关系数据库管理系统A. 主要优点:a) 提供了各种最基本的数据管理功能。b) 为多种应用提供了一致的接口。c) 支持标准化的语言。B. 主要缺点:a) 运行开销大。b) 不能满足高级应用的需求。c) 与程序设计语言的连接不自然。(3)面向对象数据库管理系统A. 在关系数据库的基础上,将对象和关系作为数据储存,加强了一些操作功能。B. 面向对象程序设计语言中扩充了数据库的功能。C. 从面向对象方法本身出发来设计数据库。D. 查询比关系数据库慢。3. 实例图书管理系统面向对象的设计过程。系统需求:在图书馆管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡号,借阅者名),账户存储借阅者的个人信息、借阅信息以及预定信息。持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定,但这些操作都是通过图书管理员进行的,也即借阅者不直接于系统交互,而是图书管理员充当借阅者的代理与系统交互。在借阅书刊时,需要输入所借阅的书刊名、书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。借阅者还可预定该书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人。另外,不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊。设计模型:第7章习题答案一、判断题题号12答案YY二、选择题题号1答案D三、填空题题号ABCD1程序运行时间存储器效率输入/输出效率2代码行度量法McCabe环形复杂性度量Halstead复杂行度量3文档化规范化结构化可视化4自顶向下单入口单出口四、简答题1. 简述程序设计语言的三种类型及特点?机器语言,汇编语言:依赖于机器,面向机器高级语言:独立于机器,面向过程或面向对象面向问题语言:独立于机器,非过程式语言(4GL)1. 程序设计语言基本成分是什么?答:基本成份可归纳为四种:数据成分、运算成分、控制成分、传输成分。 数据成分:指明该语言能接受的数据,用来描述程序中的数据。如各种类型的变量、数组、指针、记录等。 运算成分:它指明该语言允许执行的运算,用来描述程序中所需进行的运算。如 + 、- 、* 、/ 等。 控制成分:它指明该语言允许的控制结构,人们可利用这些控制成分来构造程序中的控制逻辑。 传输成分:它指明该语言允许的数据传输方式,在程序中可用它进行数据传输。2. 良好的面向对象程序设计风格有哪些准则?既包括传统的程序设计风格准则,也包括为适应面向对象方法所特有的概念(例如,继承性)而必须遵循的一些新准则:提高可重用性、提高可扩充性和提高健壮性。五、综合题1. 如何选择适合项目的面向对象程序设计语言开发人员在考虑面向对象语言的选择时,除了语言自身特点外也应考虑以下一些实际因素:(1) 将来能否占主导地位(2) 可重用性(3) 类库和开发环境(4) 其他因素:对用户学习面向对象分析、设计和编码技术所能提供的培训服务水平;在使用面向对象语言时所能提供的技术支持资源;能提供给开发人员使用的开发工具、平台和发布平台,对及其性能和内存的需求,集成已有软件的方便程度等等。2. 请分别画出顺序结构、选择结构、循环结构的结构示意图3. 考虑提高程序效率,必须明确的三条原则是?程序的效率是指程序的执行速度及程序所需占用的内存的存储空间。程序编码是最后提高运行速度和节省存储的机会,因此在此阶段不能不考虑程序的效率。在讨论提高效率的要求,应该明确三条原则: 效率是一个性能要求,目标应在需求分析阶段给出。 追求效率要建立在不损害程序可读性或可靠性基础之上, 要先使程序正确,再提高程序效率;先使程序清晰,再提高程序效率。 提高程序效率的根本途径在于选择良好的设计方法、 良好的数据结构与算法,而不是靠编程时对程序语句做调整。4. 为什么要进行程序复杂性度量? 随着软件项目开发规模的不断扩大,要保证软件产品质量难度也越来越大,单凭以往的程序开发经验很难保证软件产品质量及开发的顺利进行,需要对产品及开发产品的过程进行度量,这就是软件度量。 程序复杂性度量是软件度量的重要组成部分,是指理解和处理程序的难易程度,主要针对模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。对程序进行复杂性度量可以减少程序复杂性,提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。5. 对照本章内容,对自己熟悉的一门程序设计语言,尝试分析和总结其基本成分和技术特点。并编写包括输入输出,数据运算,注释的程序,长度不小于500行。略6. 对照本章程序设计风格的内容,尝试修改代码。略第8章习题答案一、选择题题号1234567891011121314151617位号12312答案ABCBCDCCADBCCBDDACDD题号18192021位号1212答案BCCCAA二、简答题1 软件测试的目的是什么?答:测试的目的:(1) 测试是一个为了发现程序中的错误为目的的程序执行过程; (2) 一个好的测试用例是能最大限度地找到迄今为止尚未发现的错误; (3) 成功的测试是能发现了那些尚未发现的错误。2 什么是黑盒测试?有哪些常用的黑盒测试方法?黑盒测试法是依据软件的需求规格说明书,检查程序功能是否满足需求的要求,主要的黑盒测试方法有:等价类划分,边界值分析,错误推测法,因果图法和场景法。3 什么是白盒测试?有哪些常用的白盒测试方法白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要了解程序的内部逻辑。常用的白盒测试方法主要有逻辑覆盖法、基本路径测试法。4 验证与确认之间的区别:验证是检验开发出来的软件产品和设计规格说明书的一致性,即是否满足软件厂商的生产要求,保证生产出的产品是高质量的产品。确认就是检验产品功能的有效性,即是否满足用户的真正需求,确认是用户需要的产品。因为设计规格说明书本身有可能存在错误,即便软件产品中某个功能实现的结果和设计规格说明书完全一致,但也可能不是用户需要的,因为设计规格说明书一开始就对用户需求的理解错了,所以仅仅进行验证测试是不充分的,还要进行确认测试, 5 软件测试应该划分几个阶段?各个阶段应重点测试的内容是什么?答:大体上来说可分为单元测试、集成测试、系统测试、验收测试;每个阶段又分为确定测试计划,测试设计,设计测试用例,实施测试,进行测试报告五个步骤:。1) 单元测试对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。2) 集成测试软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。3) 系统测试,系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。4) 验收测试,在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集.5) 回归测试,回归测试是在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。三、综合题:1. 程序功能说明书指出,某程序的输入条件为:每个学生可以选修1至3门课程,试用黑盒法设计测试用例。(1)按等价分类法设计测试用例(要求列出设计过程)(2)按边界值分析法设计测试用例。(3)按错误推测法设计测试用例答:合理等价类不合理等价类选修1门选修2门选修3门没选课选3门以上输入数据预期结果覆盖范围20>3输入有效输入无效输入无效(2):边界值法值是1,3,所以测试用例为0,1,3,4。(3):错误推测法设计的测试用例:空、空格、12、a、a1、1¥、null2. 设被测试的程序段为:找出实现(1)语句覆盖;(2)条件覆盖;(3)判定覆盖至少要选择的数据组。Begin可供选择的测试数据组为:s1  x       yif  (x=0)  and  (y>2)            0       3then  s2;            1       2if  (x<1)  or  (y=1)           -1       2then  s3 ;            3       1s4 ;end答:(1)      (2) ,(3) ,3. 随意选择一个物品,根据所学的软件测试技术、方法和内容对其进行测试。如水杯、电梯等。测试项目:杯子需求测试:查看杯子使用说明书界面测试:查看杯子外观功能度:用水杯装水看漏不漏;水能不能被喝到安全性:杯子有没有毒或细菌可*性:杯子从不同高度落下的损坏程度可移植性:杯子再不同的地方、温度等环境下是否都可以正常使用兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等易用性:杯子是否烫手、是否有防滑措施、是否方便饮用用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等压力测试:用根针并在针上面不断加重量,看压强多大时会穿透跌落测试: 杯子加包装(有填充物),在多高的情况摔下不破损震动测试:杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路公路航空运输测试数据:测试数据具体编写此处略(最讨厌写测试数据了)。其中应用到:场景法、等价类划分法、因果图法、错误推测法、边界值法等方法期望输出:该期望输出需查阅国标、行标以及用户的需求。第9章习题答案一、判断题题号12345678答案YYYYYYYY二、选择题题号12345678910位号12123123451231212123答案BFBFCBDEAFECGEABACABAC题号10位号1234答案FCFE三、填空题题号ABCDE1劳动量2劳动量工作量3产品生产率开发全过程4程序2405类推自顶向下自底向上差别专家判定技术6风险越多越大7增加降低越多三、简答题1.简述软件开发成本估算的方法? 自顶向下估算法 自底向上估算法 差别估算法 专家判定技术估算法 经验模型估算法2.编制进度计划的步骤? 进度编制 资源调整 成本预算 计划优化调整 计划基线3.简述软件工程各阶段工作量的分配?阶段占开发时间的百分比需求分析与设计2540概要设计6详细设计7编码设计720单元测试5组装测试和确认测试5组装测试和确认测试5系统维护4040第10章习题答案一、判断题题号12345答案NNNYY二、选择题题号12345678答案ACBABAAD三、填空题题号ABCD1及时性准确性完整性可理解性四、简答题1. 简述软件项目团队的几种组织模式? 项目型、 职能型、 矩阵型。2. 简述软件项目团队组织的原则? 尽早落实责任。要尽早指定专人负责软件开发,使他有权进行管理,并对任务的完成负责。 减少接口。开发过程中人员之间的联系是必不可少的,但应注意,组织的工作效率是和完成任务中存在的人际联系数目成反比的。 责权均衡。软件经理人员所负的责任不应比委任给他的权力还大。3. 简述程序设计小组的组织形式? 主程序员制小组(chief programmer team) 民主制小组(democratic team) 层次式小组(hierarchical team)4. 简述软件项目人员配备的原则? 人员的配备必须要为项目的目标服务。 “以岗定员”保证人员配备的效率,充分利用人力资源,不能以人定岗。 项目处于不同的实施阶段,所需要的人力资源的种类、数量、质量是不同的,要安排一定比例的临时人员,根据项目的需要加入或者退出,节约人力资源成本。第11章 习题答案一、判断题题号12345答案YYYNY二、选择题题号123456789位号123答案DACCBBAADBA三、填空题题号ABCD1GBT 11457-1995 软件工程术语ISOIEC12207-1995 信息技术软件生存期过程ISO 9000-3:1997质量管理和质量保证标准第三部分:ISO 9001:1994在计算机软件开发、供应和维护中的使用指南巴比奇(W.Babich)2配置管理计划变更管理3配置标识唯一性可追溯性4信息收集度量尺度风险的评价标准风险的级别5风险参照水准成本进度性能6风险参照水准崩溃点区域7风险识别风险估计风险驾驭和监控四、简答题1. 简述处理风险的策略? 风险避免(或缓解); 风险监控; 风险管理 意外事件计划。2. 四个风险因素的定义。 性能风险产品能满足需求且符合其使用目的的不确定程度。 成本风险能够维持项目预算的不确定程度。 支持风险软件易于改错、适应和增强的不确定程度。 进度风险能够实现项目进度计划且产品能按时交付的不确定程度。3. 简述软件配置管理的基本目标? 软件配置管理的各项工作是有计划进行的。 被选择的项目产品得到识别,控制并且可以被相关人员获取。 已识别出的项目产品的更改得到控制。 使相关组别和个人及时了解软件基准的状态和内容。4. 简述软件配置管理的内容和基本目标? 版本控制:版本控制是全面实行软件配置管理的基础,可以保证软件技术状态的一致性。 变更控制:进行变更控制是至关重要的。但是要实行变更控制也是一件令人头疼的事情。 过程支持:软件工程过程概念和软件工程支持技术的结合可以作为一个管理变更的规则(或过程)。5. 简述软件配置管理过程的核心流程? CCB 设定研发活动的初始基线; CMO 根据软件配置管理规划设立配置库和工作空间,为执行软件配置管理就阿做好准备; 开发人员按照统一的软件配置管理策略,根据获得的授权的资源进行项目的研发工作; SIO 按照项目的进度集成组内开发人员的工作成果,并构建系统,推进版本的演进; CCB 根据项目的进展情况,审核各种变更请求,并适时的划定新的基线,保证开发和维护工作有序的进行。6. 简述软件配置管理的关键活动? 配置项(Software Configuration Item,SCI)识别 工作空间管理 版本控制 变更控制 配置状态报告 配置审计7. 配置控制委员会(CCB)具体职责? 定制开发子系统; 定制访问控制; 制定常用策略; 建立、更改基线的设置,审核变更申请; 根据配置管理员的报告决定相应的对策。第12章习题答案一、判断题题号12答案YY二、选择题题号123456答案BCDAFFCDBFDCD三、填空题题号ABCDE1注重问题强调知识创新鼓励参与领导层的统一计划不断地改进2重诊断,轻评估重实施,轻宣传重实施,轻宣传三方参与3关键过程域最低4过程技术

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论