软件工程简答题复习题带答案_第1页
软件工程简答题复习题带答案_第2页
软件工程简答题复习题带答案_第3页
软件工程简答题复习题带答案_第4页
软件工程简答题复习题带答案_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章1,与计算机硬件相比,计算机软件有哪些特点软件的特点如下.1无法直度理桀计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等.2人们在分析、设计、开发、测试软件产品,以及在软件开发工程的治理过程中,渗透了大量的脑力劳动.3不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问'WJVWVWUWW.nrfWWVWVW,"UVWWV!_WVWW%IWWfafldWWVVMUVWl_U_WWXrMWK.题.4软件的开发和运行必须依赖.于特定的计算机系统环境.95具有M复用性.3,什么是软件危机什么原因导致了软件危机软件危机的现象如下.1经费

2、超出预算,工程一再拖延.2不重视直求,开发的软件不能满足用户的要求,工程成功率低.3没有标准的软件工程方法,软件可维护性差、软件质量差、可靠性差.4开发工具落后,手工方式,开发效率低.所有导致软件危机的原因,都与软件本身的产品特点相关.1软件是一个复杂的逻辑产品.如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保证,开发与维护费用就会持续开Mi.2软件产品不能实现大规模复用,这导致了软硬件生产效率的不同.3软件生产是脑力劳动,它看不见、摸不着,开发本钱、开发周期等都无法做到准确估算,生产过程不易限制.4软件本钱主要是由研发本钱构成;而硬件的生产本钱主要是材料和制造本钱,

3、分摊的研发本钱很少,即软件研发过程与硬件制造过程相比要复杂得多.软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件WMWWWMWMWWWWVWMWVWWVWWtfMWWVWWWWTWWWWWVWWWWMWWI治理过程.软件开发方法的内容涵盖市场调研、正式立项、需求分析、工程筹划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等.常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等.软件支持过程由所支持的CASE工具组成,常用的CASE工具有PowerDesigner和RationalRose等.7,请简述软件工程的

4、目标、过程和原那么.目标、过程和原那么是一切工程的三维框架,这里是以工程的观点来看待软件开iin-in.一?nin.,1一一i,发.1软件工程的目标:降低本钱、及时交付高质量的软件产品高质量、高效率、高效益.2实现目标的过程即完成产品加工的过程,包括:根本过程、支持过程和组织过程.3进行过程应遵守的原那么:原那么就是过程中的轨道约束,包括:选取适宜的开发范型、采用适宜的设计方法、提供高质量的工程支持、重视开发过程的治理.9,请简述现代软件工程与传统软件工程显著的区别和改良.1传统的软件工程是基于结构化的软件开发方法,而现代软件工程是以面向,Jn1一一一nnr.,n1yrn,.nl.n一对象技术

5、为标志.2不仅在编程技术上有很大的改良,而且在分析、设计等整个开发过程中,采用面向对象的思维方式,更加完整、自然地反映客观世界.3采用架构技术,开发效率、产品质量得到了极大提升.4更让.重团队开发和修理工融入更多、更新的治理理念和手段,如RUP模型、XP模型、过程改良、水平成熟度模型、配置治理等.第二章1,如何理解软件生命周期的内在特征?软件产品的生命周期是指从设计该产品的设想开始,到软件需求确实定、软件设计、软件实现、产品测试与验收、投入使用以及产品版本的不断更新,再到最终该产品被市场淘汰的全过程.软件生命周期这个概念从时间的角度将软件的开发和维护的复杂过程分解为了假设干个阶段,每个阶段都完

6、成特定的相对独立的任务.由于每个阶段的任务相对于总任务难度会大幅度降低,因此在资源外配、时间把握和工程治理上都会比拟容易限制.应该合理地划分软件生命周期的各个阶段,使各个阶段之间既相互区别又相互联系,为每个阶段赋予特定的任务.3,当需求不能一次搞清楚,且系统需求比拟复杂时应选用哪种开发模型比拟合开发模型不是孤立或排斥的,它们之间需要相互借鉴和参考.螺旋模型是一种综合性的模型,适和于较复杂的系统.5,XP是一种什么样的模型XP是现代版的增量模型,特点是客户参与、适应变化、测试驱动、以代码为核心.实行XP的条件如下.1企业具有较高的水平成熟度,具有团队开发环境和配套的测试工具.2软件结构是开放的,

7、增量可随意整合.3开发团队拥有系统隐喻.7,请简述软件过程.软件过程就是软件产品的加工过程,其本质就是将“客观世界映射虚拟到“计算机世界,即从抽象到具体的逐步细化过程.系统分析就是对客观世界的抽象,中间要经过分析模型、设计模型的逐步细化具体化,最终的具体结果就是计算机世界里的代码.9,请简述CMM的作用.1) CMM是评价软件组织开发水平水平的参考模型,是一种认证标准,认可软件工程到达的程度如同评定职称的条件2) CMM是软件组织提升自身水平、走向成熟的参照系.它提供了走向成熟的阶梯目标,但并不提供走向目标的方法.3) CMM等级的提升依靠软件过程改良.4) CMM既是评估软件水平成熟度的模型

8、,也起到了促进软件企业根据该模型设置的级别和关键过程域不断改良自己的软件过程的作用.11,假设你要开发一个软件,它的功能是把73624.9385这个数开平方,所得到的结果应该精确到小数点后4位.一旦实现并测试完之后,该产品将被抛弃.你打算选用哪种软件生命周期模型请说明你做由这样选择的理由.对这个软件的需求很明确,实现开平方功能的算法也很成熟.因此,既无须通过原型模型来分析需求也无须用原型模型来验证设计方案.止匕外,一旦实现并测试完之后,该产品将被地弃,因此也无须使用有助于提升软件可维护性的增量模型或螺旋模型来开发该软件.综上所述,为了开发这个简单的软件,使用大多数人所熟悉的瀑布模型就可以了.第

9、五章1,在选择编程语言时,通常要考虑哪些因素1待开发系统的应用领域,即工程的应用范围.2用户的要求.3软件开发人员的喜好和水平.4系统的可移植性要求.5算法和数据结构的复杂性.3,什么是调试什么是测试二者有何区别调试debug指的是对模块的调试,是程序员交付可运行的代码模块所必须经历的工作.软件测试test有如下特点.1软件测试的目的是发现程序中的错误,是为了证实程序有错,而不是证实程序无错.2不仅仅是测试程序,还应该对开发过程中所有的产品进行测试,包括文档,其目的是为了尽早地、尽可能多地发现并排除软件中潜在的错误.二者的区别如图5.2所示.氮E赛V发现错误崔州靖说的侍?一排除错在被动的1工己

10、知条件年均.使啮网壬定X的程序.有筋惺的拮口小可知的内都条件产蛤,结果一1ft不可我见由独立的用钛纲.在不丁依件设计的条件下完成由舞即推者通行测试和调试的帆别5,请简述静态测试和动态测试的区别.根据执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试.静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷.静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性.与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题.测试人员可以输入一系列的测试用例,通

11、过观察测试用例的输出结果是否与预期相符来检验系统内潜在的问题或缺陷.7,软件测试的目的是什么测试的目的如下1测试是一个为了发现程序中的错误为目的的程序执行过程.2个好的测试用例是能最大限度地找到迄今为止尚未发现的错误.3成功的测试是能发现了那些尚未发现的错误.9,什么是白盒测试有哪些常用的白盒测试方法白盒测试主要针对于程序内部逻辑和数据流程的测试,因此白盒测试的测试用例设计需要了解程序的内部逻辑.常用的白盒测试方法主要有逻辑覆盖法、根本路径测试法.11,软件测试应该划分几个阶段各个阶段应重点测试的内容是什么软件测试总的来说可分为单元测试、集成测试、系统测试、验收测试.每个阶段又分为确定测试方案

12、,测试设计,设计测试用例,实施测试,进行测试报告5个步骤.1单元测试是对软件中的根本组成单位进行的测试,如一个模块、一个过程等.它是软件动态测试的最根本的局部,也是最重要的局部之一,其目的是检验软件根本组成单位的正确性.2集成测试是软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确.3系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非是一项简单的任务,它被称为测试的先知者问题.4验收测试是向软件的购置者展示该软件系统满足其用户的需求.它的测试数据通常是系统测试的测试数据的子集.5回归测试

13、是在软件维护阶段,对软件进行修改之后进行的测试.其目的是检验对软件进行.第十一章1,请简述工程、工程治理和软件工程治理.工程、工程治理和软件工程治理的概念如下.1工程是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、2质量标准,以及特定的功能、性能和接口要求.3工程治理是为了实现工程目标,运用相关的知识、技能、方法与工具,对工程的方案、进度、质量、本钱、资源进行治理和限制的活动.4软件工程治理以通用的工程治理知识体系为根底,治理的对象是软件工程工程.它结合软件工程自身的科学规律,采用适合软件产品自身特点的治理方法,使得整个软件开发过程从分析、设计、编码到测试、维护全过程

14、都能在治理者的限制之下,以预定本钱按期、按质的完成软件交付用户使用.3,请简述工程方案应该包括的内容.工程方案应该包括的内容如下1确定详细的工程实施范围.2定义递交的工作成果.3评估实施过程中主要的风险.4制定工程实施的时间方案.5本钱和预算方案.6人力资源方案等.5,如何进行工程的时间治理工程的时间治理首先要对工程活动进行定义,依据包括:工作分解结构、工程范围说明、历史信息、约束条件、假定和专家评论.在整个工程中,我们需要一份能清楚描述活动发生的时间和所需要的资源的计划,工程进度安排的内容为如下1定义一组工程活动,并建立活动之间的相互关系.2估算各个活动的工作量和完成任务所需要的资源.3定义

15、里程碑.4分配人力和其他资源,制定进度时序.5检查进度安排,保证任务之间没有冲突,并且包含了完成工程必需的所有任务,7,请简述估算的作用.方案是工程的启动入口,工程开展过程就是执行方案.而估算是制定方案的依据,因此估算是工程开展的根底.估算的主要工作如下.1范围估算:搞清软件边界.2规模估算:定量单位采用LOC或FP3工作量估算:工作量估算决定了开发团队的规模和组建,决定开发周期和进度估算.4开发周期与进度估算:进度估算是对整个开发周期中不同阶段的里程碑进行估算.5人力资源估算:在考虑各种软件开发资源时,人是最重要最优先考虑的资源.6开发本钱估算:整个开发周期所花费的工作量产生的劳动费用.7软

16、硬件资源估算:软件开发所需的硬件工具及软件工具.9,请简述做进度方案的两种方式.做进度方案的两种方式如下.1)Gant图用线段标明子任务的分解;标明各个任务的方案开始时间、完成时间;标明各个任务与参与工作的人数,各子任务间的并行和串行的关系的衔接情况.特点:简单、明了、直观、易于编制;以文档与评审作为开发进度的里程碑.缺点:无法标明多个任务之间存在的相互制约关系;无法标明关键的限制作业.2)工程网络图是用时间和节点来表示工作流程的有序、有向的网状图形.它可弥补Gantt图无法表达关键路径和作业之间的制约关系,并且易于调整.第十二章1,目前工程开发时常用的小组组织方法有哪些目前,工程开发时常用的

17、小组组织方法:民主制程序员组、主程序员组和现代程序员组.3,民主制、主程员制各存在什么问题民主制程序员组中所有程序员不分主次,这样在责任落实、分工协作方面存在一些问题.责任不明,分工不清,大家都负责,实际上没有人负责.主程序员制是主程序员负责制,克服了民主制的缺点,但又走到了另一个极端-只有主程序员负责,其他成员的积极性就被扼杀了.另外,主程序员这个位置既是一个技术岗位,也是一个治理角色,这样的位置很难找到胜任的人担任.热衷于技术的人,往往对治理不感兴趣,而具有治理才能的人,大多不会是技术专家.第十三章1,风险识别的步骤有哪些风险识别分为三步进行:收集资料;估计工程风险形势;识别风险.3,请简

18、述软件质量的定义.所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的水平特性的总和.5,什么是配置项什么是配置治理软件配置治理中的根本单元,称为软件配置项.在开发过程中,将软件的文档、程序、数据进行分割与综合,以利于软件的定义、标识、跟踪、治理,使其最终形成受控的软件版本产品,这一治理过程称为软件配置治理.7,请简述软件配置治理的工作内容.配置治理的工作内容一般包括如下的4个方面.1标识配置项.配置项是配置治理中的根本单元,每个配置项应该包含相应的根本配置治理的信息.标识配置项就是要给配置项取一个适宜的名字.2进行配置限制.进行配置限制是配置治理的关键,包括存取限制、版本限制、变更限

19、制和产品发布限制等.存取限制通过配置治理中的“软件开发库、“软件基线库、“软件产品库来实现.每个库对应着不同级别的操作权限,为团队成员授予不同的访问权利.版本限制往往使用自动的版本限制工具来实现,如SVN,变更限制是应对软件开发过程中各种变化的机制,可以通过建立限制点和报告与审查制度来实现.产品发布限制面向最终发布版本的软件产品,旨在保证提交给用户的软件产品版本是完整、正确和一致的.3记录配置状态.配置状态报告记录了软件开发过程中每一次配置变更的详细信息.记录配置状态的目的是使配置治理的过程具有可追踪性.4执行配置审计.配置审计是为了保证软件工作产品的一致性和完整性,从而保证最终软件版本产品发

20、布的正确性.第十四章1,为什么要进行软件维护软件维护的作用有哪些软件维护是软件产品生命周期的最后一个阶段.在产品交付并且投入使用之后,为了解决在使用过程中不断发现的各种问题,保证系统正常运行,同时使系统功能随着用户需求的更新而不断升级,软件维护的工作是非常必要的.概括地说,软件维护就是指在软件产品交付给用户之后,为了改正软件测试阶段未发现的缺陷,改进软件产品的性能,补充软件产品的新功能等,所进行的修改软件的过程.3,传统软件维护分哪几大类传统软件维护分4类,分别是纠错性维护、适应性维护、完善性维护和预防性维护.5,请简述结构化维护和非结构化维护.结构化维护的前提是软件产品或软件工程必须有完善的文档,并且文档与程序代码互相匹配,两者完全一致.在这样的前提下,维护不但会比拟省力,而且维护后可以用原来的测试用例进行回归测试.相反,假设软件产品或软件工程只有程序而没有文档,或文档很不标准

温馨提示

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

评论

0/150

提交评论