《软件工程简答题(13页).doc》由会员分享,可在线阅读,更多相关《软件工程简答题(13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-软件工程简答题-第 13 页简答题:软件工程的内容和方法1. 开发文档都有哪些?用图来表示他们之间的关系。开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同,它们之间的关系如图所示。目标程序源程序详细设计说明书概要设计说明书需求规格说明书用户需求报告软件合同2. 说明软件工程研究的内容。软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。其中软件开发方法的内容又含盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级。常用的软件开
2、发模型有瀑布模型、迭代模型、增量模型和原型模型。软件支持过程由所支持的CASE工具组成,常用的CASE工具有PowerDesigner和RationalRose。软件管理过程主要有CMMI、ISO9000、微软企业文化和敏捷文化现象。3. 请详细解释软件的定义和程序的定义。软件的定义:软件=程序+数据+文档。这里的程序是指程序系统。这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。现在有一种新提法正在引起关注,这种提法是
3、:软件=知识+程序+数据+文档。程序是计算机为完成特定任务而执行的指令的有序集合。从应用的角度可理解为:面向过程的程序=算法+数据结构面向对象的程序=对象+信息面向构件的程序=构件+构架4. 是否存在这样一种现象:搞系统软件的公司不需要采用CMMI和ISO9000模式?CMMI和ISO模式只适用于搞应用软件的企业?如果是,为什么?如果不是,又是为什么?不是。因为CMMI和ISO9000模式规定了严格的管理制度、文档和评估软件能力与成熟度等级的一套标准,它们几乎包括了所有的IT的企业,只是一些优秀的企业自己内部形成特有的企业管理文化,但是它们并不排斥CMMI和ISO9000模式,甚至还充分肯定C
4、MMI和ISO9000体系。5. 根据学过的数据库编程经验,举出一个用创建视图的方法进行数据处理的例子。create view j1_spjasselect sno,sname,ssex from studentwhere sno = s1(条件语句)视图(j1_spj)的创建是依据基本表(student)进行查询 。当基本表的记录符合条件语句where sno = s1规定的条件时,就能查询出基本表中符合条件记录的学号、姓名、性别的值。软件生存周期及开发模型6. 简述瀑布模型、增量模型、迭代模型、原型模型的优点和缺点。答案如表:序号模型名称优点缺点1瀑布模型简单好学逆转性差2增量模型可以分阶
5、段提交有时用户不同意3迭代模型克服瀑布模型的缺点对开发人员要求高4原型模型开发速度快不利于创新7. 软件公司的ISO9000或CMMI管理体系与软件开发模型有关吗?为什么?无关。因为ISO9000或CMMI管理体系是一种过程与质量管理模型,它是适应于任何软件开发模型的,或者说它与任何开发模型无关。开发模型本身只是规定了软件生存周期中的若干步骤或阶段,便于开发人员去开发与维护,它并没有规定管理人员的过程管理方法与任务。为此,ISO9000或CMMI管理体系规定采取阶段评审和不符合项的动态跟踪制度,只有前一阶段的不符合项全部改正后,才允许开发人员进入后一阶段的工作。所谓不符合项,就是在评审中发现的
6、问题项,它与BUG既有联系,又有区别。对于这些不符合项,软件管理部门要列出表格,记录在案,确定负责人,限定改正时间,动态跟踪到底。8. 对生存周期模型裁减指南有什么看法?“生存周期模型裁减指南”是IT企业或软件组织内部根据软件开发模型的普遍原则,结合本单位的开发经验和行业特点的具体实际定制出来的。它有针对性地对选定的软件开发模型中定义的生存周期,进行恰当地裁减。所谓裁减,就是队员模型中定义的内容进行增、改、删,去掉对本单位或者本项目不适合的部分,增加对本单元或者本项目适用的内容,同时进一步细化。这样可以缩短开发时间,减少开发成本,具有非常现实的意义。软件立项与合同9. 什么叫风险分析?技能风险
7、和技术风险有何区别?这里的风险分析是指软件立项过程中对产品开发、销售等可能出现的风险进行分析。分析方法是将一个大风险化解为多个小风险,然后再一个个克服小风险。技术风险是指采用新技术的风险程度。技能风险是指项目组成员掌握新技术的风险程度。两者的区别在于一个是说新技术(如新的开发工具,新的设计思想)本身的风险,一个是说人员要掌握这种新技术的风险。10. 行业领域业务专家与产品经理有何异同?行业领域业务专家是精通某行业领域业务的人,在讲标时能把投标书的内容准确、生动地表述出来,使客户心服口服。而产品经理是某产品需求分析和概要设计的经理或专家,主要负责产品的立项、需求、设计和销售等业务。两者的相同点是
8、:必须精通该产品的功能、性能和接口。不同点是:前者突出熟悉产品的应用业务领域,后者突出熟悉产品的需求与设计。软件需求11. 需求分析的目的是什么?需求分析的难点在哪里?软件需求分析,其目的是用于说明软件产品或软件项目需要满足的条件和限制。在软件工程项目中首先要获取用户的需求,通过对软件需要的提取、分析、文档化及验证,为进一步的设计和实现提供依据。需求分析的难点是:在系统的功能、性能和接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。万一需求有一点变化,双方必须履行“需求变更管理程序”,而变更管理程序在签订合同时已经做了规定。要知道,合同是具有法
9、律效力的。12. 为什么说需求分析是面向流程的?系统的功能、性能、接口、界面都是在流程中动态实时的反映出来。在所有的流程(物流、人流、资金流、信息流、单据流、报表流、数据流)中,数据流最重要,也最具有代表性。因为在计算机网络系统内,一切流程都表现为数据流,或者说是数据流在不同方向的投影。而流程是动态的、实时的。所以说,需求分析是面向流程的。13. 需求分析的基本思路是什么?需求分析的思路,是从客户的功能需求(系统需要做什么)出发,由系统的业务流程和数据流程导出系统的业务模型和功能模型,识别出系统的元数据和中间数据,为今后设计数据模型做好充分准备。同时,对系统的软、硬件环境配置,开发工具,开发周
10、期,费用,开发进度,培训,系统风险进行评估。14. 业界存在哪三种需求分析方法?你认为哪一种更好?业界存在三种需求分析方法:面向功能分析、面向对象分析、面向数据分析。以上这三种方法,各自适用于不同的目标系统。目前时尚的方法是面向对象分析,包括面向主体和面向方法。总的来说,对于系统软件和应用软件来说,面向功能需求分析的方法简单明了,而面向对象的需求分析方法则复杂抽象。对于以关系数据库为平台的信息系统软件来说,面向数据需求分析方法的特点是抓住了本质。但是,这三种分析方法都离不开面向流程分析这根总线:功能、对象、数据都是在流程中产生的,又都是为流程服务的。15. 需求管理过程的目标和内容是什么?需求
11、管理的目标,是保证软件项目或产品满足客户在软件功能、性能、接口三个方面的需求。需求管理过程的内容,主要包括需求确认、需求评审、需求追踪和需求变更活动管理。16. 为什么需求文档要进行同行评审?同行评审,是软件工作产品验证的活动,其目的是为了及早和高效地从软件工作产品中识别并消除缺陷。重点在于发现软件工作产品中的缺陷。另外,由于进行同行评审,使大量人员对软件系统中原本不熟悉的部分更加了解,因此同行评审还提高了项目的连续性,培训了后备人员。17. 怎么理解不符合项?为什么要对它进行跟踪管理?不符合项是指没有满足要求的项,不一定是错误,跟bug是不同的。跟踪的意思在于,获得需求目前的实现状态,确保用
12、户所有的需求都得到满足。可靠的跟踪信息可为需求变更、系统维护、关键成员离开、系统再设计和类似系统设计等很多方面,提供参考和指导,并可以减少风险和提高项目成功率。18. 需求描述有哪几种工具?你喜欢哪一种?为什么?需求描述工具包括数据流图、业务流程图、用况图、时序图、用户交互图、数据模型图和功能需求列表、性能需求列表、接口需求列表、界面需求列表等。选择哪一种描述工具,主要取决于问题域的本质特征。不同的软件,对分析要求的严格程度不同。我喜欢业务流程图,它包括了物流、资金流、信息流,即业务操作模型,重点是业务操作的流水步骤。业务模型表示了与系统有关的人、设备、其他子系统之间的业务关系和费用关系,它是
13、经过业务流程重组、再创和优化后,并且得到企业领导确认的业务流程图。绘制这个图的工具可以是Office办公软件。软件策划19. 简述软件策划的步骤。软件策划共分4个步骤,如表:步骤步骤名称步骤内容1评估软件工作产品的规模、工作量、费用及所需要的资源软件工作产品,包括需求规格说明书、概要设计说明书、详细设计说明书、源代码、测试计划和测试报告、质量保证计划、软件配置管理计划、里程碑及评审计划。每个工作产品所需的工作量(人年)、费用及其所需的其他资源,都要量化2制定时间表包括开发进度时间表和日历进度时间表:软件开发计划、质量保证计划、软件配置管理计划、测试计划、评审计划3鉴别和评估风险政策风险、资源风
14、险、市场突变风险、技术风险和技能风险4与相关的组或人协商策划中的有关约定策划的结果要实事求是,要得到各有关方面的同意和认可20. 软件策划要实现的具体目标是什么?软件策划是项目跟踪和监控的基础,是项目经理和高层经理管理项目的依据。软件策划要实现的具体目标有三个。1 对供项目测试和跟踪用的三个软件估计已建立文档。这三个评估是: 工作产品规模估计 工作量及成本估计 计算机资源估计2 软件项目活动和约定是有计划的,并已建立文档。这里的活动,包括开发活动和管理活动。这里的约定,是指对项目的各种标准、规范、规程的约束。3 受影响的组和个人,同意他们对软件项目的约定。受影响的组和个人有: 软件工程组(项目
15、组) 软件估计组 系统测试组 质量保证组 配置管理组 合同管理组 文档支持组其中有的组可能只有一个人21. 定义软件过程的含义是什么?所谓定义软件过程,就是根据选定的生存周期模型,规定软件的开发阶段,及每一阶段的工作步骤和文档标准等内容。22. 项目跟踪与监督的基础是什么?在项目策划阶段,要为开发计划制定严格的评审流程。开发计划在经过组织批准生效后,将成为进行项目跟踪与监督的基础。23. 软件开发计划书应该包括哪些内容?软件开发计划书是软件策划的输出文档,它包括如下10各方面的内容:1 软件项目组的目的、范围、目标和对象。2 软件生存周期的选择与裁减。3 确定软件开发和维护的规范、方法和标准。
16、4 软件工作产品的确定。5 对工作产品规模的估计。6 对工作量和成本的估计。7 关键计算机资源的估计和使用情况。8 项目的进度、里程碑和评审计划。9 风险的识别和评估。10 项目工程设计和工具的计划。24. 怎样理解软件中的度量,它有何作用?软件中的度量,是指对大量测量数据的统计分析。度量是按规定在项目进行过程中,需要采集的度量数据,以便量化地反映项目的进展情况,为管理者提供对项目进展的适当的可视性,同时度量数据是项目过程改善的基础数据,它们存放在测量数据库中。软件设计25. 软件设计的输入/输出是什么?对于签订合同的项目,软件设计的输入是用户需求报告/需求规格说明书,输出是概要设计说明书和详
17、细设计说明书。对于立项的项目,软件设计的输入是需求规格说明书,输出是概要设计说明书和详细设计说明书。26. 概要设计说明书和详细设计说明书有和区别?概要设计说明书,一是要覆盖需求规格说明书的全部内容,二是要作为指导详细设计的依据。它注重框架上的设计,它是软件系统的总体结构设计、全局数据库(包括数据结构)设计、外部接口设计、功能部件分配设计、部件之间的内部接口设计,它要覆盖需求规格说明书中的功能点列表、性能点列表,接口列表。详细设计说明书,一是要覆盖概要设计说明书的全部内容,二是要作为指导程序设计的依据,它注重微观上和框架内的设计,它是各子系统的公用部件实现设计、专用部件实现设计、存储过程实现设
18、计、触发器实现设计、外部接口实现设计、部门角色授权设计和其他详细设计等。两者的设计者不同,在一般情况下,概要设计说明书是由系统设计师负责,详细设计说明书则是由高级程序员负责。软件建模27. 请简述UML的宏观建模思想和微观思想。UML的宏观建模思想是:以“9个模型”和“5张视图”为纲,以“9种图”为目,建立系统的UML模型。“9个模型”包括:业务模型、领域模型、用例模型、分析模型、设计模型、过程模型、部署模型、实现模型和测试模型。“9种图”包括:类图、对象图、用例图、顺序图、协作图、状态图、活动图、构件图、实施图。“5张视图”包括:用例视图、设计视图、进程视图、实现视图、实施视图。UML的微观
19、建模思想是:基本结构模型、高级结构模型、基本行为模型、高级行为模型、体系结构模型(5各方面,66个微观建模)。基本结构模型包括:对类建模,对关系建模,对公共机制建模,对图建模,对类图建模。高级结构模型包括:对类的语义建模,对关系网络建模,对接口、类型和角色建模,成组的元素建模,对体系结构视图建模,对具体实例、原型实例建模,对对象结构建模。基本行为建模包括:对交互建模、对用例建模、对用例图建模、对交互图建模、对活动图建模。高级行为模型包括:对信号族建模、对异常情况建模、对状态建模、对进程和线程建模、对时间空间建模、对状态建模。体系结构建模包括:对构件建模、对实施建模、对协作建模、对模式和框架建模
20、、对构件图建模、对实施图建模、对系统建模。一般而言,人们最常用的是建立系统的用例图、类图和顺序图。28. 请简述UML的优点和缺点。UML的优点:1 UML语言使系统建模过程标准化、统一化、规范化。2 UML在整个软件开发过程中采用相同的概念和表示方法。3 UML采用图形化的表现形式,产生的模型易于理解,易于开发人员与用户之间的沟通,从而能够及时得到用户的反馈信息。4 用UML进行系统建模,所得到的建模制品不仅包括各种模型框图,还有大量丰富的文档。5 UML不是一门程序设计语言,但可以使用代码生成工具将UML模型转换成为多种程序设计语言代码,或使用反向生成工具将程序源代码转换为UML模型但任何
21、事物都有正反两个方面,UML这种新兴的建模工具也存在它本身的一些不足和缺点:1. UML建模可视化图形的内容太多、太深、太宽,导致难学难教。2. UML缺少核心和外围,有些语言定义不够精确且带有二义性。3. UML过多考虑了各种分析、设计、实现的普遍性,过少考虑了它们的特殊性。4. UML过于细致。5. UML对开发者的素质要求过高。29. 读者怎样理解下面这段文字:“UML只是一种图形化的建模语言,不是一种方法论,不规定开发者在什么时候、什么情况下、用什么方法去建立什么模型,也没有指定使用哪一种实现工具,Rose只是其中的一种实现工具而已。”请读者再思考一个问题:语言与方法论两者之间有什么联
22、系?又有什么区别?因为UML认为开发者在什么时候、什么情况下、用什么方法去建立什么模型是软件开发过程中的工作,是方法论的范围,开发者自己应该会明白的。而Rose是UML的一种支撑环境和实现工具。语言只是方法论的一部分,而且只是实现方法论的一种工具,方法论包含语言。方法论要告诉读者在建模过程中做什么、怎么做、什么时候做、为什么做、做的过程中要注意什么。而UML建模语言只是提供了一大堆的可视化图形符号,并没有告诉读者,应该在什么时候,用什么方法、去建立什么模型。软件实现30. 实现原则有哪几条?软件实现原则包括以下5条:1 尽可能地简单。2 易于验证。3 适应变化。4 遵守某一编程规范。5 选择项
23、目组成员最熟悉的工具或语言。31. 面向对象程序设计的特点是什么?它与面向过程程序设计有何差异?面向对象程序设计有三个特点:1 封装性。把数据和代码结合在一起,对外隐藏了实现的细节。它的好处是有利于程序的模块化。2 继承性。一个新的对象能继承父对象的属性和方法,这一点就像遗传。继承性的好处是可以共享代码。3 多态性。就是一个对象类型可以产生多个对象实例,每个实例还可以有所不同。面向对象程序设计与面向过程程序设计有如下差异:1 面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。2 面
24、向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对与功能而言具有较强的稳定性,因此更易于维护。3 面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。4 面向对象程序设计方法可以利用框架产品(如MFC,Microsoft Foundation Classes)进行编程。软件测试32. 软件测试的目的和目标是什么?简单明了地说,软件测试的目的就是发现软件缺陷。但同时还要时刻牢记在心的是:软件测试的目标是尽可能早地发现软件缺陷,并确保其得以修复。这里
25、的缺陷,包括bug和不符和项。33. 什么是软件缺陷?我们说,符合下列五个规则之一的就是软件缺陷:1 软件未达到产品说明书(需求报告或需求说明书)标明的功能;2 软件出现了产品说明书指明不会出现的错误;3 软件未达到产品说明书未指明但应达到的目标;4 软件功能超出产品说明书所指明的范围;5 软件测试人员认为软件难以理解、不易使用、速度缓慢,或者最终客户认为不好。34. 试举例说明软件测试的原则有哪些?1 尽早开展测试工作;2 完全测试不可能,把握最优测试量;3 严防寄生虫现象;4 严防杀虫剂现象;5 并非所有的软件缺陷都能修复;6 难以说清楚的软件缺陷;7 产品说明书不断变化8 软件测试人员在
26、产品小组中不受欢迎。35. 试阐述软件测试V模型的思想、不足之处和改进方法图。软件测试V模型的基本思想,如图所示。我们可以初步了解,左侧是开发阶段,右侧是测试阶段。开发阶段先从定义软件需求开始,然后要把这些需求不断地转换到概要设计和详细设计中去,最后形成程序代码。测试阶段是在代码编写完成以后,先做单元测试开始,然后是集成测试、系统测试和验收测试。对V模型的进一步阐述是:当需求分析完成后,验收测试计划也应完成。当概要设计完成后,系统测试计划也应完成。当详细设计完成后,集成测试计划也应完成,当编码完成后,单元测试计划也应完成。可见,V模型提高了测试的时间与地位。以上的测试V模型,一般只适用于瀑布开
27、发模型,若对迭代开发模型,就显得不足了。实际工作中,V模型只是提高了测试工作的地位,具体测试方法,仍然是黑白盒子法。36. 试说出几种软件测试的分类方法。软件测试分类的实质,是软件测试技术的分类。测试工作中采用不同的测试技术,就产生了不同的测试类型,相继也产生了很多的测试类型术语,大概有以下几种。1 动态测试:通过运行程序开展测试工作,即软件测试人员通过使用软件来找出缺陷;2 静态测试:不通过运行程序来开展测试工作;3 黑盒测试:又叫功能测试;4 白盒测试:可以理解为对程序执行路径的测试;5 通过测试:简单的说,就是验证软件至少能做什么,而不会考察其能力有多强;6 失败测试:纯粹是为了验证软件
28、在某一种条件下,是否会出现异常、停止工作等现象的测试;7 负载/压力测试:一方面,可以通过减少软件需要的资源,来测试软件运行的最低配置或者最低资源需求;另一方面,可以正常提供软件需要的资源,但是通过不断加重软件要处理的任务,来测试软件在正常配置下具有的能力指标;8 易用性测试:易用性测试的目的很明确,即简单易用,但是标准不容易确定;9 其他测试:如边界值测试、兼容性测试、回归测试、ALPHA测试和BETA测试等。37. 试说出黑盒测试和白盒测试的区别及联系。黑盒测试又称功能测试。在这里,盒子指的是被测试的软件,“黑盒”就是只知道被测试软件的外部情况,主要是界面和接口,被测试软件的内部逻辑结构和
29、数据结构,对测试人员来说是不可见的,主要关注被测试软件的功能实现。白盒测试就是对程序执行路径的测试,又叫做玻璃盒测试、透明盒测试、结构化测试、开放盒测试、基于代码的测试等。黑盒测试和白盒测试的联系是:一般宏观上用黑盒测试,微观上用白盒测试,系统集成人员用黑盒测试方法对系统进行测试,构件开发人员用白盒测试方法对构件进行测试,这是常用的测试方法。38. 软件测试工作中要验证哪些文档?试举例。软件测试工作中要验证的文档包括两个部分,即被测试文档和测试工作中要编写的文档。现在按生命周期划分如下:1 项目立项阶段的文档项目立项报告、标书、合同。2 需求分析阶段文档需求分析说明书/用户需求报告、验收测试设
30、计说明书、测试计划、客户手册、操作手册。3 项目策划阶段的文档项目开发计划、配置管理计划、质量保证计划。4 设计阶段的文档概要设计说明书、数据库设计说明书、详细设计说明书、系统测试设计说明书、集成测试设计说明书。5 编码阶段的文档自测报告、单元测试说明书。6 测试阶段的文档单元测试报告、集成测试报告、系统测试报告/ALPHA测试、验收测试报告/BETA。7 维护阶段的文档缺陷及修改报告。还有一些管理文档,如工作日报、会议记录、开发进度周报、开发进度月报、开发总结报告等。还有和客户签署的协议,如委托开发协议书、验收手册。提供给客户的所有文档都要经过测试,从这个角度考虑,被测试的文档还可能包括联机
31、帮助文档、样例、模板、常见问题解答、市场宣传材料、授权/注册登记表、客户许可协议,以及包装文字、图片、标签等。39. 用自己的话简述实用软件测试的流程,你认同吗?有什么想法和建议?软件测试的流程分五步展开:1 理解、验证和分解需求;2 编写测试计划(包括测试计划);3 测试执行;4 专项测试;5 编写测试报告。认同,没有什么想法和建议。软件发布与实施40. 软件项目与软件产品有什么不同?软件产品是指不局限于特定业务领域、能被广大用户直接使用的软件系统,如操作系统、编译系统、工具系统、通用财务系统等。软件项目是指针对特定业务领域、徐提供业务流程充足与优化的软件系统,如MIS、ERP、电子商务、自
32、动跟踪控制系统等,它们一般叫做软件项目。软件维护41. 传统软件维护分哪几大类?传统软件维护分四大类,分别是:纠错性维护;适应性维护;完善性维护;预防性维护。42. 简述软件维护的工作程序。软件维护的工作程序与软件开发的工作程序相仿。其工作程序是:维护的需求分析、维护的设计、修改程序代码、维护后的测试、维护后的试运行、维护后的正式运行、维护过程的评审和审计。43. 可维护性的软件应具备什么性质?所谓软件的可维护性,就是维护人员理解、掌握和修改被维护软件的难易程度。可维护性的软件,必须具备下列4条性质:可理解性、可测试性、可修改性和可移植性。44. 面向缺陷维护的内容是什么?面向缺陷维护的内容是
33、:该软件产品能够正常运行,可以满足用户的功能、性能、接口需求,只是维护前在个别地方存在缺陷,用户不是非常满意。克服缺陷的方法是修改程序,也就是通常说的只修改程序,不修改数据结构。45. 面向功能维护的内容是什么?面向功能维护的内容是:该软件产品在功能、性能、接口上存在某些不足,不能满足用户的某些需求,因此需要增加某些功能、性能、接口。解决这些不足的方法是,不但要修改设计,而且也要修改程序,也就是通常说的既修改数据结构,又修改编码。46. 怎么理解UML对软件维护的重大影响?UML的功能覆盖整个软件的开发周期,从需求分析开始,直到软件的发布、实施和维护为止,因而它对传统意义下的维护工作产生重大影
34、响。UML把软件生存周期定义为4个主要阶段:初始、细化、构造、移交。经过这4个阶段的历程被称为一个开发周期,自动产生一个周期内的所有文档,从而生成一个软件产品。首次经历着4个阶段称为该产品的初开发周期,除非该产品的生命终止,否则它将重复初始、细化、构造和移交这4个阶段,从而演化为下一代产品,这就是对旧有产品的维护,也是新产品的升级换代,也就是开发周期的演化,也就是UML对软件维护工作的影响。软件过程管理47. 怎样理解“软件组织、工作产品、软件过程、软件过程资源、软件过程财富”的概念?软件组织:CMM/CMMI中的“组织”或“软件组织”,是指软件企业(或软件公司)自己。或者企业内部的一个软件研
35、发部门。但是,该组织内部应有若干项目和一个软件工程管理部门。如公司的研发中心、软件中心、软件事业部,它们均可称为“组织”或“软件组织”。工作产品:在CMM/CMMI中,每一道工作程序输出的文档、程序或数据,均称为软件工作产品。评审报告、跟踪记录等软件管理文档,也是软件工作产品。软件过程:一般来讲,过程是一个时间概念,它指为了实现某一目标而采取的一系列步骤。这里的软件过程,既是指软件开发过程,又指软件管理过程。软件过程资源:是组织在进行软件过程改善中通过积累而得到的,用于指导软件项目过程的文档和数据等重要信息。这些信息存放在软件测量数据库或软件过程有关的文档库中。软件过程财富:软件过程财富可以看
36、作是软件组织和过程改进中产生的有价值实体的集合,这些财富横跨个项目过程,形成了软件组织持续的过程改善的源泉。例如,软件测量数据库或软件过程有关的文档库中的记录,就是财富的表现。48. SW-CMM的5个级别各有哪些特征?SW=CMM的5个等级分别为:初始级(CMM1):组织内部是人治,是英雄创造历史。可重复级(CMM2):项目管理级,在组织内部重复使用项目管理的经验。已定义级(CMM3):组织级管理,在组织内部已经达到了法律化管理,由项目组级管理发展到组织级管理,13个KPA已制度化和法律化,组织及法律框架健全,工程过程和管理过程已文档化,软件测量数据库已开始建立。已管理级(CMM4):定量管
37、理或数据管理,在组织内部已经达到了定量化管理,实现了定量的数据级管理,产品和项目级管理的经验已定量化,组织级过程管理已标准化和定量化,软件测量数据库已发挥量化管理的作用。优化级(CMM5):组织已经达到了循环优化和与时俱进。49. CMMI本身为什么不规定统一的实施文档结构?CMMI只是一个软件工程改进模型,不是过程改进模板,模型必须与软件组织的具体实际相结合,在结合中产生适合于本组织的自己文档结构,这样的文档结构由组织自己提出、自己落实、自己执行、自己监督。因为没有千篇一律的软件组织,所有不规定统一的实施文档结构。50. 怎样理解“CMMI的实施与软件组织的过程改进,是渐进式的,预防式的”?
38、CMMI的实施与软件组织的过程改进,本身有一个较长的过程,它规定必须一级又一级地向前走,每一个级别需要三年左右,只有经历这么长时间,相应过程与才能踏踏实实地执行好。一个组织相当于一个人,人的身体与知识的提高也只能一步一步地前进,不能吃激素。因此,CMMI的实施与软件组织的过程改进,只能是渐进式的,而且是预防式的,预防组织在过程管理上因急功近利而犯错误。软件配置管理51. 软件配置管理的目的是什么?通俗地讲,软件配置管理的目的,就是为了做到“三个有利于”:有利于配置项的综合管理,有利于基线的变更管理,有利于版本的升级管理,以保证所交付的软件版本产品能够满足需求规格说明书中的各项具体要求,节省人力
39、、物力资源,加强安全与保密工作。科学地讲,软件配置管理的目的,就是为了建立和维护在整个软件生存周期内软件产品的完善性。52. 什么是配置项?什么是配置管理?软件配置管理中的基本单元,称为软件配置项。在开发过程中,将软件的文档、程序、数据进行分割与综合,以利于软件的定义、标识、跟踪、管理,使其最终形成受控的软件版本产品,这一管理过程称为软件配置管理。53. 基线、里程碑与检查点各是什么含义?它们之间有什么关系?经正式评审和审计后,被批准的阶段性软件工作产品,称为软件配置管理中的一根基线。里程碑只是一个阶段标记,基线是一个阶段软件工作产品,基线与里程碑一般表现为一对一的关系。基线既是前一个开发阶段
40、输出的软件工作产品,又是后一开发阶段输入的软件工作产品。里程碑是检查点,检查点不是里程碑,因为检查点还可以是时间、计划和时间。54. “Check out Edit Check in”操作是什么意思?它与配置管理工具有什么关系?“Check out Edit Check in”,这是配置管理工具的基本操作,这种操作是对3个库而言的。对每一个库中的内容进行操作(比如增、删、改),要先将操作内容从库中取出,放入内存缓冲区,这一动作叫做“Check out”。当操作(Edit)完成后,又要将本次操作的内容放入相应的库中,这一动作叫做“Check in”。值得注意的是,每次Check out后,相应库
41、中原来的内容仍然保留着。每次Check in后,也不会覆盖原来的内容,这就自动保存了可供追踪的轨迹。软件质量管理55. 请给出软件质量的定义。所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和。56. 针对软件质量保证问题,最有效的办法是什么?通常,人们将“质量标准”、“配置管理”、“测试测量”作为质量管理的三大支柱,而将“SQA计划”、“SQA进度”、“SQA评审和审计”作为质量管理三大要素。软件质量保证是一个质量管理过程,基本思想是以事前预防为主,以事后测试和纠偏为辅,采取标本兼治的方法,且以治本为主。为此,要从“事前、事中、事后”三个层次上对软件质量进行控制。归根
42、结底一句话:软件质量保证的最有效的办法是软件质量过程管理,因为质量蕴含在过程之中。57. 对软件质量进行“全面综合治理”有哪5种方法,哪一种方法最好,为什么?1 面向CMM2的KPA“软件质量管理”SQA(Software Quality Assurance)。2 面向CMM3的KPA“同行评审”PR(Peer Reviews)。3 面向CMM4的KPA“软件质量管理”SQM(Software Quality Management)。4 面向CMM5的KPA“缺陷管理”DP(Defect Prevention)5 软件质量管理的其他措施。在这5种方法中,第2种同行评审的方法最好。引入同行评审流
43、程后,加大了对软件开发前期工作产品质量的保证力度,如需求分析、概要设计和详细设计阶段的产品,都是同行评审的重点。对前期产品的质量保证明显地降低了软件产品的成本,提高了软件产品的整体质量。软件项目管理58. 怎样理解“项目”和“项目管理”?项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、质量标准,以及特定的功能、性能和接口要求。项目管理是为了实现项目目标,运用相关的知识、技能、方法与工具,对项目的计划、进度、质量、成本、资源进行管理和控制的活动。59. 测试工作实际上需要考虑两个方面,一方面是正常调用的测试;另一方面是异常调用的测试。作为软件蓝领,如何能做到?测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责;另一方面旧是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等。程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性地进行相关测试并尽早发现和解决问题。为此,程序员需要有较强的需求理解能力。
限制150内