1软件过程与软件管理课程复习题(一)解释相关概念或术语1)软件工程是指导软件开发和维护的工程类学科,它以计算机科学理论及其他相关学科的理论为指导,采用工程化的概念、原理、方法和技术,进行软件的开发和维护,并与经过时间证明正确的管理方法与措施相结合,以较少的代价获取高质量的软件。TheIEEEComputerSociety:是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。(2)对(1)中所述方法的研究。2)软件过程软件过程是指软件开发人员开发和维护软件及相关产品(如项目计划、设计文档、代码、测试用例、用户手册等)的一套行为、方法、实践及变换过程根据IEEE对软件过程概念的解释,软件过程涵盖了软件采购、软件开发、软件维护、软件运行、软件获取、软件管理、软件支持等7大类的软件活动ISO12207分别将这些活动归结为基本过程、支持过程和组织过程等3大类3)软件过程工程为建造软件过程所进行的一系列工程化活动,包含如下基本活动:过程定义、过程例化、过程模拟、过程运作。现代软件工程=软件项目工程+软件过程工程,这标志着软件过程的时代的到来。4)软件配置管理SCM是标识和确定系统中配置项的过程,在系统整个生命周期内控制这些项的投放和变动,记录并报告配置的状态和变动要求,验证配置项的完整性和正确性(GB/T11457-1995软件工程术语)。针对SCM在软件生命周期各阶段所起的作用,一个完整的SCM环境要求具有版本控制、变更管理、状态统计、和配置审计的功能。5)CMMCMM是指“能力成熟度模型”,其英文全称为CapabilityMaturityModelforSoftware,英文缩写为SW-CMM,简称CMM。它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、标准化、使企业能够更好地实现商业目标。6)CMM中的关键过程域每个软件能力成熟度等级包含若干个对该成熟度等级至关重要的过程方面,它们的实施对达到该成熟度等级的目标起到保证作用。这些过程域就称为该成熟度等级的关键过程域。确定了实现一个成熟度级别所必须解决的问题处于级别3的机构,必须解决级别2和级别3的所有关键过程域中的问题每个关键过程域都确定了一套相应的活动,完成了这些活动,就达到了被认为是对改进过程非常重要的一组目标目标说明了每个关键过程域的范围、界限和意义对于满足关键过程域的机构,一个关键过程域的所有目标都必须实现每个关键过程域的目标总结了它的关键实践7)CMM中的关键实践是指关键过程域种的一些主要实践活动。每个关键过程域最终由关键实践所组成,通过实现这些关键实践达到关2键过程域的目标。一般情况下,关键实践描述了该“做什么”,但没有规定“如何”去达到这些目标。描述了对关键过程域的有效实施和制度化起重要作用的基础设施和活动。每个关键过程域最终由关键实践所组成,通过实现这些关键实践来达到关键过程域的目标。关键实践描述要做“什么”,但没有强行规定应当“怎样”完成目标。关键实践的下面描述更为详细的各实践。8)PSP个体软件过程(PersonalSoftwareProcess,PSP)是一个过程描述、测度和方法的结构化集合,能够帮助软件工程师改善其个人性能。它提供了表格、脚本和标准,以帮助软件工程师估算和计划其工作。它显示了如何定义过程及如何测量其质量和生产率。9)TSPTSP(TeamSoftwareProcess,团队软件过程/群组软件过程)是为开发软件产品的开发团队提供指导,TSP的早期实践侧重于帮助开发团队改善其质量和生产率,以使其更好的满足成本及进度的目标。TSP被设计为满足2~20人规模的开发团队,大型的多团队过程的TSP被设计为大约最多为150人左右的规模。TSP是一个小组软件过程框架TSP指导你通过小组软件工程的每一个步骤TSP向你表明该如何在一个小组协同工作环境中工作TSP教会你如何规划和管理一个小组项目TSP教会你如何为小组成员分配不同的角色TSP为小组提高生产力确立了一个过程10)SCM(SoftwareConfigurationManagement):又称软件形态管理、或软件建构管理,简称软件形管(SCM)。界定软件的成项目,对每个项目的变更进行管控(版本控制),并维护不同项目之间的版本关联,以使软件在开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合,例如某一次交付给客户的软件内容。(二)简要回答下列问题1)PSP和TSP中质检过失比(A/FR)是一个重要的质量度量参数。请简要说明A/FR分别小于1和大于2时对过程的意义。质检/过失比:质检质量成本/过失质量成本,用来测量在第一次编译前花在查找缺陷上的时间的相对值。可用复查时间/(编译+测试)时间来计算。能很好地指示测试中发现缺陷的可能性。当A/FR1时,程序测试一般会发现很多错误;当A/FR2时,过程产生无缺陷的可能性更大。A/FR的值对于小的独立的产品通常比2.0要大;A/FR的值对于相对大的产品等于1.0较为合适。例如,如果有实际总开发时间=262min,实际代码复查时间=29min,则质检成本=100*29/262=11.07%如果有实际编译时间=5min,实际测试时间=10min,则过失成本=100*(5+10)/262=5.73%。此时,A/FR=11.07/5.73=1.93。可用复查时间/(编译+测试)时间来计算。2)在软件配置管理系统中检入与检出是基本功能。请解释该功能的作用。检入就是将软件配置项从用户的工作环境存入到软件配置库的过程;检出就是将软件配置项从软件配置库中取出的过程。33)CMM的主要用途。软件过程评估:(SPA,SoftwareProcessAssessment)一组经过训练和培训的软件专业人员,确定出一个企业软件过程的状况,找出软件企业所面对的与软件过程有关的、最急需解决的所有问题,以便取得企业领导层对软件过程改进的支持——企业内部。软件过程改进:(SPI,SoftwareProcessImprovement)帮助软件企业对其软件过程向更好的方向改变,进行计划、制定以及实施。软件能力评价:(SCE,SoftwareCapabilityEvaluation)一组经过训练和培训的软件专业人员,鉴别出软件承包者的能力资格;或者是,检查、监察正用于软件制作的软件过程的状况——企业外部。4)CMM中属于管理类别的关键过程域。2可重复级:需求管理;软件项目计划;软件项目跟踪及监督;软件子合同管理;软件质量保证;软件配置管理。3已定义级:集成软件管理;组间合作。4已管理级:定量的过程管理。5)简要说明PSP中程序规模与生产率的估计过程。先(按功能分类)估计程序可能有多少行代码LOC,再估计编写每行代码需要多少分钟MIN/LOC;然后(按功能分类汇总)估算总共需要的时间。其中对代码行的估计:较大规模--收集一系列有关数据,建立一个历史记录,用新程序的每个功能比对历史记录中每个类似功能,然后累加。小规模--与历史数据比对作出好的规模估计关键是要有大量的历史数据,要进行多次规模估计,要定期将实际结果与估计值作比较。6)软件基线库的要求是建立软件配置管理数据库系统。请简要给出软件配置管理数据库系统中的主要功能。软件配置库又称软件受控库,是指在软件生命周期的某一阶段结束时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息。软件配置库存储一般采用数据库的形式。软件配置管理就是对软件配置库中的各项软件项管理。7)软件工程过程组与软件工程组的主要区别。软件工程组(SoftwareEngineeringGroup):负责一个项目的软件开发和维护活动的团体。活动包括需求分析、设计、编码和测试等。软件工程过程组(SoftwareEngineeringProcessGroup):是由专家组成的组,他们推进组织采用的软件过程的定义、维护和改进工作。软件工程过程组统领CMM实施活动,协调全组织软件过程的开发和改进活动,制定、维护和跟踪与软件过程开发和改进活动有关的计划,定义用于过程的标准和模板,负责对全体人员培训有关软件过程及其相关的活动。8)度量与分析在CMM中的作用。描述与软件过程相关的基本测量实践,其目的是控制和改进过程,度量和分析一般包括测量示例,通过这些示例可以知道如何确定操作活动的状态和效果。9)TSP的启动过程主要包括的步骤及其要点。启动过程是TSP的第一个步骤,其步骤:1、描述了小组角色的职责2、制定小组目标43、制定小组成员目标4、制定角色目标5、TSP启动流程a、TSP周期1小组启动b、TSP周期n小组启动c、成员信息表d、每周例会e、每周状况报告(WEEK表)要点:组建小组不能随意;需要花费时间进行考虑;需要建立小组成员在工作中的相互关系;决定小组成员所担当的角色;取得目标的一致意见。10)UML中活动图可以用来描述什么?描述活动之间的数据流或判断提供多种不同的业务流程视图描述用例中出现的活动使用不同的非连续符号显示多种不同的活动显示并行线程用来描述事物发展变化的过程,活动图可以描述业务流程,工作流程,类中的操作流程等。11)简要说明“项目计划总结表”在PSP中的作用。作用:在PSP中,记录项目的计划数据和实际数据的表格叫项目计划总结表。在项目开始时,软件工程师记录计划部分的值;项目完成时,记录实际值,并累积值和累积百分比。计划不是一个准确的过程,作为一种技能,计划可以逐步的改善和提高,而提高的最主要途径是为所作的每一项工作做计划,然后对于每一项已经完成的工作,将它的计划值与实际结果作比较。这样可以更清楚的了解计划中的差错并且学会制定更好的计划。通过对缺陷数据的记录分析,可以清楚的看到设计过程中存在的问题,作为对日后开发有益的补充。12)ROSE的基本功能有哪些1、对业务进行建模(工作流);2、建立对象模型(表达信息系统内有哪些对象,它们之间是如何协作完成系统功能的);3、对数据库进行建模,并可以在对象模型和数据模型之间进行正、逆向工程,相互同步;4、建立构件模型(表达信息系统的物理组成,如有什么文件、进程、线程、分布如何等等)5、生成目标语言的框架代码,VB、JAVA、DELPHI等(三)论述题1)从PSP、TSP、CMM所关注的焦点,简要论述PSP、TSP、CMM之间的关系。1.PSP、TSP和CMM为软件产业提供了一个集成化的软件过程框架。三者互相配合,各有侧重,形成了不可分割的整体。2.CMM注重于组织能力和高质量的产品,它提供了评价组织的能力、识别优先改善需求和追踪改善进展的管理方式。然而,它实现的成功与否和TSP、PSP密不可分。在CMM的18个关键过程域中,有12个与PSP紧密相关,16个与TSP紧密相关。3.PSP注重于个人的技能,能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和追踪个人的表现。软件工程师们在他们参与的项目工作之中若充分利用PSP,则可以保证项目整体的进度和质量,有助于CMM目标的实现。4.TSP注重团队的高效工作和产品交付能力,结合CMM的管理方法和PSP的工程技能,通过告诉软件工程5师如何将个体过程结合进小组软件过程,通过告诉管理层如何支持和授权项目小组,坚持高质量的工作,并且依据数据进行项目的管理,向组织展示如何应用CMM的原则和PSP的技能去生产高质量的产品。5.CMM关注组织所应该做的,它指明组织应达到的目标;PSP为软件工程师个体持续改进个人的性能提供指导;TSP为受训的PSP工程师提供作为团队成员如何在高性能团队有效工作的具体指导。三者结合在一起,使软件组织如期生产高质量的软件产品。)2)从CMM的框架、结构方面,谈谈CMM是如何指示软件机构的能力成熟度的。1.CMM框架中融合了全面质量管理的思想,分别是初始级、可重复级、已定义级