软件工程试题.doc

上传人:博****1 文档编号:564205244 上传时间:2024-04-02 格式:DOC 页数:6 大小:62KB
返回 下载 相关 举报
软件工程试题.doc_第1页
第1页 / 共6页
软件工程试题.doc_第2页
第2页 / 共6页
软件工程试题.doc_第3页
第3页 / 共6页
软件工程试题.doc_第4页
第4页 / 共6页
软件工程试题.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《软件工程试题.doc》由会员分享,可在线阅读,更多相关《软件工程试题.doc(6页珍藏版)》请在金锄头文库上搜索。

1、一、判断二、简答1.CMM (1)背景介绍: CMM是“软件能力成熟度模型”的英文简写,该模型由美国卡内基-梅隆大学的软件工程研究所(简称SEI)受美国国防部委托,于1991年研究制定,初始的主要目的是为了评价美国国防部的软件合同承包组织的能力,后因为在软件企业应用CMM模型实施过程改进取得较大的成功,所以在全世界范围内被广泛使用,SEI同时建立了主任评估师评估制度,CMM的评估方法为CBAIPI。CMMI是SEI于2000年发布的CMM的新版本。CMMI不但包括了软件开发过程改进,还包含系统集成、软硬件采购等方面的过程改进内容。CMMI纠正了CMM存在的一些缺点,使其更加适用企业的过程改进实

2、施。CMMI适用SCAMPI评估方法。需要注意的是,SEI没有废除CMM模型,只是停止了CMM评估方法:CBAIPI。现在如要进行CMM评估,需使用SCAMPI方法。但CMMI模型最终代替CMM模型的趋势不可避免。 (2)标准特点: CMM/CMMI/SPCA的思想来源于已有多年历史的产品质量管理和全面质量管理。Watts Humphrey和Ron Radice在IBM公司将全面质量管理的思想应用于软件工程过程,收到了很大的成效。SEI的软件能力成熟度框架就是在以Humphrey为主的软件专家实践经验的基础上发展而来的。软件能力成熟度模型中融合了全面质量管理的思想,以不断进化的层次反映了软件过

3、程定量控制中项目管理和项目工程的基本原则。CMM/CMMI/SPCA所依据的想法是只要不断地对企业的工程过程的基础结构和实践进行管理和改进,就可以克服软硬件生产中的困难,增强开发制造能力,从而能按时地、不超预算地制造出高质量的软件产品。CMM包括两部分软件能力成熟度模型和能力成熟度模型的关键惯例。软件能力成熟度模型主要是描述此模型的结构,并且给出该模型的基本构件的定义。能力成熟度模型的关键惯例详细描述了每个关键过程方面涉及的关键惯例。这里关键过程方面是指一组相关联的活动;每个软件能力成熟度等级包含若干个对该成熟度等级至关重要的过程方面,它们的实施对达到该成熟度等级的目标起到保证作用。这些过程域

4、就称为该成熟度等级的关键过程域,反之有非关键过程域是指对达到相应软件成熟度等级的目标不起关键作用。归纳为:互相关联的若干软件实践活动和有关基础设施的一个?实现和制度化的作用最大的基础设施和活动,对关键过程的实践起关键作用的方针、规程、措施、活动以及相关基础设施的建立。关键实践一般只描述做什么而不强制规定如何做。各个关键惯例按每个关键过程方面的5个公共特性(对执行该过程的承诺,执行该过程的能力,该过程中要执行的活动,对该过程执行情况的度量和分析,及证实所执行的活动符合该过程)归类,逐一详细描述。当作到了某个关键过程的的全部关键惯例就认为实现了该关键过程,实现了某成熟度级及其以低级所含的全部关键过

5、程就认为达到到了了该级。CMM把软件开发组织的能力成熟度分为5个的等级。除了第1级外,其他每一级由几个关键过程方面组成。每一个关键过程方面都由上述5种公共特性予以表征。CMM给每个关键过程了一些具体目标。按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。如果恰当地处理了某个关键过程涉及的全部关键惯例,这个关键过程的各项目标就达到了,也就表明该关键过程实现了。这种成熟度分级的优点在于,这些级别明确而清楚地反映了过程改进活动的轻重缓急和先后顺序。能力等级 特点 关键过程 第一级 基本级 软件过程是混乱无序的,对过程几乎没有定义,成功依靠的是个人的才能和经验,管理方式属于反应式 第二

6、级 重复级 建立了基本的项目管理来跟踪进度.费用和功能特征,制定了必要的项目管理,能够利用以前类似的项目应用取得成功 需求管理,项目计划,项目跟踪和监控,软件子合同管理,软件配置管理,软件质量保障 第三级 确定级 已经将软件管理和过程文档化,标准化,同时综合成该组织的标准软件过程,所有的软件开发都使用该标准软件过程 组织过程定义,组织过程焦点,培训大纲,软机集成管理,软件产品工程,组织协调,专家审评 第四级 管理级 收集软件过程和产品质量的详细度量,对软件过程和产品质量有定量的理解和控制 定量的软件过程管理和产品质量管理 第五级 优化级 软件过程的量化反馈和新的思想和技术促进过程的不断改进 缺

7、陷预防,过程变更管理和技术变更管理对于CMM的作用归纳两个主要方面: 科学地评价软件开发单位的软件能力成熟等级; 帮助软件开发单位进行自检,了解自己的强项和弱项,从而不断完善和改进单位的软件开发过程,确保软件质量,提高软件开发能效率。在中国的现状中国生产力促进协会、北航SEI、中科院研究SEI等科研机构已于近几年在北京、上海、广州和深圳等地先后举办过多次报告会和研讨会,组织过课程学习和应用实验,开展了软件过程方面的研究与开发工作,并发表了多篇的研究成果和学术论文,在软件质量保障平台支撑环境也取得了一定的成果总体上讲,国内对软件过程理论的讨论与实践正在展开,目标是使软件的质量管理和控制达到国际先

8、进水平,中国的软件产业获得可持续发展的能力。专家分析,在未来两三年内,国内软件业势必将出现实施CMM的高潮。从这一趋势看,中国的软件企业已经开始走上标准化、规范化、国际化的发展道路,中国软件业已经面临一个整体突破的时代。但是我们应该看到目前国内对软件管理工程存在的最大问题是认识不足。管理实际上是一把手工程,需要高层管理人员的足够重视。而且软件过程的重大修改也必须由高层管理部门启动,这是软件过程改善能否进行到底的关键。此外,软件过程的改善还有待于全体有关人员的积极参与。除了要认识到过程改善工作是一把手工程这个关键因素外,还应认识到软件过程成熟度的升级本身就是一个过程,且有一个生命周期。过程改善工

9、作需要循序渐进,不能一蹴而就,需要持续改善,不能停滞不前;需要联系实际,不能照本宣科;需要适应变革,不能凝固不变。一个有效的途径是自顶向下的课程培训,即从高层主管依次普及到下面的工程师。实施的思考上面重点介绍了CMM,但是提醒注意的是,并不是实施了CMM,软件项目的质量就能有所保障。CMM是一种资质认证,它可以证明一个软件企业对整个软件开发过程的控制能力。按照CMM的思想进行管理与通过CMM认证并不能划等号。CMM认证并不仅仅是在评估软件企业的生产能力,整个评估过程同时还在帮助企业完善已经按照CMM建立的科学工作流程,发现企业在软件质量、生产进度以及成本控制等方面可能存在的问题,并且及时予以纠

10、正。认证的过程是纠正企业偏差的过程,一定不能把CMM认证当作一种考试、一种文凭,而是要看成一项有利于企业今后发展的投资,借此来改变中国软件业长久以来形成的积弊。2. 在软件结构图中,一个接块作用率应该在这个模块的控制域之内,解释之。控制域:控制范围,是包括模块本身以及所有下属模块(直接调用模块和间接调用模块)的集合。作用域:作用范围,它是一个与条件判定相联系的概念。是受该模块内一个判定影响的所有模块的集合。作用域不在控制域的两种改进方法:判定上移和在作用域但不在控制域的模块下移。3.回归测试 定义、目的、意义回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本

11、,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。回归测试的价值在于它是一个能够检测到回归错误的受控实验。当测试组选择缩减的回归测试时,有可能删除了将揭示回归错误的测试用例,消除了发现回归错误的机会。然而,如果采用了代码相依性分析等安全的缩减技术,就可以决定哪些测试用例可以被删除而不会让回归测试的意图遭到破坏。 选择回归测试策略应该兼顾效率和有效性两个方面。回归测试:回归测试是在软件维护阶段,对软件进行修改之后进行

12、的测试。其目的是检验对软件进行的修改是否正确。这里,修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性。4.软件配置管理 基线CMMI中配置管理分为 “配置项和基线的管理”、“变更控制管理”和“基线的完整性”三个部分。 凡是提到软件“配置管理”(Configuration Management),我会先给它下个定义:“它是软件工程的核心部分,是CMMI中最基础的PA”。为什么它会如此重要呢?首先配置管理的工作就是确保软件项目时时保持条理清晰,随时想要任何工作产品都可以迅速找到,并且工作产品的内容不会出错,这也就是大家

13、常讲的可回溯性、完整性和正确性;其次软件配置管理活动始终贯穿整个软件项目的生命周期。因此说软件配置管理是最基础、最核心的管理工作一点都不夸张。基线标志软件开发过程的各个里程碑,任一SCI(例如,设计师说明书),一旦形成文档并复审通过,即形成一个基线,它标志开发过程中一个阶段的结束。对于已成为基线的SCI,虽然可以修改,但必须按照一个特殊的、正式的过程进行评估,确认每一处修改。相反,对于未成为基线的SCI,可以进行非正式修改。5.穷尽测试?为什么不可能?测试覆盖软件的所有输入和条件组合。测试是不可能穷尽的,资源和时间是有限的。因此我们在做测试的时候需要分析哪些功能是对用户很关键的,在这些功能中出

14、现某类型错误对用户是不可接受的,而相对其它一些功能,出现的错误是可以容忍的,这样,我们在测试的时候,重点就应当去寻找那些用户不可接受的错误,而不是漫无目的的去搜索错误。同时我们应当对测试定义合理的出口标准,这是因为测试是没有穷尽的,系统中的问题你总是可以一直发现下去,然而我们不能无休止的去寻找这些问题。当条件满足的时候,我们就应当停止测试。而测试出口条件的设置需要考虑系统的质量要求及系统的资源要求。曾经有人说过:当时间和资源用尽的时候,测试也就停止了。这是没有办法的最好办法。测试是一个持续进行的过程,而不是一个阶段。测试必须被计划、被控制,并且被提供时间和资源。测试不是为了证明程序的正确性,正

15、如 Mayer 所说的,测试的目的是证伪而不是证真。6.修改的副作用?类型?举例?所谓副作用是指因修改软件而造成的错误或其它不希望发生的情况,有三种副作用:(1)修改代码的副作用。在使用程序设计语言修改源代码时,都可能引入错误。例如,删除或修改一个子程序、删除或修改一个标号、 删除或修改一个标识符、改变程序代码的时序关系、改变占用存储的大小、改变逻辑运算符、修改文件的打开或关闭、改进程序的执行效率,以及把设计上的改变翻译成代码的改变、为边界条件的逻辑测试做出改变时,都容易引入错误。(2)修改数据的副作用。在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件出错。数据副作用就是修改

16、软件信息结构导致的结果。例如,在重新定义局部或全局常量、 重新定义记录或文件格式、增大或减小一个数组或高层数据结构的大小、修改全局或公共数据、重新初始化控制标志或指针、重新排列输入输出或子程序的参数时,容易导致设计与数据不相容的错误。数据副作用可以通过详细的设计文档加以控制。在此文档中描述了一种交叉引用,把数据元素、记录、文件和其它结构联系起来。(3)文档的副作用。对数据流、软件结构、 模块逻辑或任何其它有关特性进行修改时,必须对相关技术文档进行相应修改。否则会导致文档与程序功能不匹配,缺省条件改变,新错误信息不正确等错误。使得软件文档不能反映软件的当前状态。对于用户来说,软件事实上就是文档。如果对可执行软件的修改不反映在文档里,就会产生文档的副作用。例如,对交互输入的顺序或格式进行修改,如果没有正确地记录在文档中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号