软件过程管理习题上课讲义
- 格式:docx
- 大小:55.58 KB
- 文档页数:11
福师12秋《软件过程管理》练习题注:本课程练习题所提供的答案仅供学员在学习过程中参考之用,有问题请到课程论坛提问。
一、填空题1.软件过程是指软件开发人员开发和维护软件及相关产品(如项目计划、设计文档、代码、测试用例、用户手册等)的一套行为、、及。
考核知识点:软件过程的概念2.在软件过程中,基本过程包括获取过程、、等。
考核知识点:软件过程的分类3.个体软件过程(Personal Software Process,PSP)是一个过程描述、和的结构化集合,能够帮助软件工程师改善其个人性能。
考核知识点:个体软件过程4.可将过程分为、和三大类。
考核知识点:过程的分类二、名称解释1.软件过程模型考核知识点:软件过程模型2、软件过程改进考核知识点:软件过程改进三、单项选择题1. CMM2(可重复级)重点关注的是下列哪一个级别的软件过程。
A. 企业B. 机构C. 项目D. 小组参考答案:C2. 下面有关CMM模型的描述中,不正确的是。
A. CMM模型定义了成熟的软件过程的实践活动B. CMM模型提供了改进软件开发过程的结构化模型C. CMM模型给出了适用于各种应用范围的专门技术D. 按照CMM模型改进软件过程需要相当可观的费用参考答案:D3. 以下哪一个KPA不是CMM2(可重复级)关键过程域。
A. 软件需求管理B. 软件质量保证C. 软件配置管理D. 定量过程管理参考答案:D4. 直接在测试环境中修改源代码违反了下列哪一个KPA的规定。
A. 需求管理B. 配置管理C. 项目计划D. 过程变更参考答案:B5. 以下哪一项是实施OPF(组织过程焦点)活动的前提条件。
A. 成立SEPG组B. 进行同行评审C. 制定软件项目计划D. 识别软件工作产品参考答案:A6. “定期地评估过程,理解过程的强项和弱项”是哪一个KPA的活动。
A. SQA(软件质量保证)B. OPD(组织过程定义)C. OPF(组织过程焦点)D. SCM(软件配置管理)参考答案: C7. OPF(组织过程焦点)的验证工作是由来承担的。
软件过程管理(一)一、引言1、过程是活动的集合,软件过程是与软件开发与维护相关的活动的集合。
2、过程管理是制定过程和对过程活动进行动态监管。
软件过程管理的目的是最大限度地提高软件产品的质量和软件开发过程的生产率。
3、软件过程管理的途径:软件过程模型→组织标准软件过程→项目定义软件过程→过程实施与监控→软件过程改进。
4、过程的分类:产品实现过程;管理过程;支持过程。
在软件过程中,产品实现过程被称为“工程过程”。
软件工程( Software Engineering)l 指导计算机软件开发和维护的工程科学。
l 旨在确定软件开发技术规范,其中软件开发技术包含:软件开发方法学、软件工具和软件工程环境。
l 应用计算机科学(用于构造模型预算法)、工程科学(用于制定规范、设计模型、评估成本及权衡利弊)和管理科学(用于计划、资源、质量、成本等管理)的基本原理。
l 与其他工程的区别:产品是程序。
l 特点:规范化、文档化。
l 软件过程是指软件开发人员开发和维护软件以及相关产品(如项目计划、设计文档、代码、测试用例和顾客手册)的一套行为、方法、实践以及变化过程。
l 软件过程管理的重要前提是:软件产品质量的好坏主要取决于开发和维护该产品所使用的软件过程质量。
l 有效的软件过程可将人员、工具和方法进行有机结合。
二、软件与软件产业的发展过程软件过程管理l 对软件开发全过程规范化及标准化的管理。
l 软件过程管理技术包括:软件管理学和软件工程经济学。
l 目前,国外普遍采用的软件过程管理方法是:美国卡内基·梅隆大学软件工程研究所(SEI)提出的软件能力成熟度模型(SW-CMM)。
l 目的:研究如何有效地对软件开发项目进行管理,以便按照进度和预算完成软件项目计划,实现预期的经济效益和社会效益。
l 包括:成本估计、进度计划、人员组织、质量保证等。
三、软件危机及其原因软件成本高软件特殊性l 软件开发的进度难于控制l 估计软件工作量很困难l 软件质量难于保证l 修正维护软件困难软件项目出现的典型问题l 缺少用户的参与l 需求及其说明不完整或经常变更l 项目得不到高层管理者的支持l 技术能力不足或对新技术不熟悉l 资源投入不足l 预期要求过高l 项目目标不清晰l 人员配合存在问题四、过程及其要素l 软件开发项目是在规定的成本和时间内,开发和提交满足客户某些需求的软件产品。
软件过程管理习题1.阅读全部的CMM内容,选择出你认为最有价值的十条关键实践,并说明理由。
(1)项目软件负责人,设计/编程/测试人员、软件版本管理员均已得到相应的培训,具备了完成其职责所需要的知识和技能。
理由:通过培训,工作人员具有了一定的知识储备,遇到困难能够很快找到相应的解决措施,就可以很快上手,不至于在一个问题上耽误太多时间。
因此,为了达到统一的科学技术规范、标准化作业,通过目标规划设定、知识和信息传递、技能熟练而进行培训是十分必要的,这样能减少所需工作时间,提高成员的开发能力和创新能力,从而降低人力成本;减少浪费,从而降低了开发成本。
因此,参加培训是十分必须的。
(2)根据项目要求,建立软件有关组(例如工程组、软件测试组等)。
理由:通过建立相关组,各组可以各施其职,同步工作,提高工作效率。
因为软件开发时不可能一个人兼顾所有的方面,应该分成几个模块,只做好自己的然后和其他组协调就可以。
如专人负责技术方案设计,专人负责数据,专人做技术层面的指导等。
这样权责分明,遇到问题能够很快找到相应的负责组,解决问题的时间也将大大减少。
(3)确定设计、编程、测试人员,并实施三分离。
理由:实现了三分离可以更加开阔人员的思维,防止由于思路固定而不能及时发现问题,更有助于激发员工的创新思维,使软件更先进,更经得起考验。
(4)根据项目软件的质量需要确定本项目所采用的软件开发方法。
理由:确定好软件开发所采用的开发方法,就能尽早的做下步计划,不至于到最后为选择开发方法而浪费太多时间。
目前已形成了八类软件开发方法,开发时是选择面向数据结构的开发方法还是面向对象的开发方法,直接会影响到小组的开发进度。
要根据成员的擅长情况制定方法。
(5)软件版本管理员,以及设计、编程、测试人员的职责明确。
理由: 权责分明,遇到问题追究到人,会使项目开发更有计划。
完善制度,将责任明确到人,这样才能明确目标,将工作细化,使成员做好自己的工作,认识到重要性,使开发过程能高效的进行。
1•阅读全部的CMM容,选择出你认为最有价值的十条关键实践,并说明理由。
(1)项目软件负责人,设计/编程/测试人员、软件版本管理员均已得到相应的培训,具备了完成其职责所需要的知识和技能。
理由:通过培训,工作人员具有了一定的知识储备,遇到困难能够很快找到相应的解决措施,就可以很快上手,不至于在一个问题上耽误太多时间。
因此,为了达到统一的科学技术规、标准化作业,通过目标规划设定、知识和信息传递、技能熟练而进行培训是十分必要的,这样能减少所需工作时间,提高成员的开发能力和创新能力,从而降低人力成本;减少浪费,从而降低了开发成本。
因此,参加培训是十分必须的。
(2)根据项目要求,建立软件有关组(例如工程组、软件测试组等)。
理由:通过建立相关组,各组可以各施其职,同步工作,提高工作效率。
因为软件开发时不可能一个人兼顾所有的方面,应该分成几个模块,只做好自己的然后和其他组协调就可以。
如专人负责技术方案设计,专人负责数据,专人做技术层面的指导等。
这样权责分明,遇到问题能够很快找到相应的负责组,解决问题的时间也将大大减少。
(3)确定设计、编程、测试人员,并实施三分离。
理由:实现了三分离可以更加开阔人员的思维,防止由于思路固定而不能及时发现问题,更有助于激发员工的创新思维,使软件更先进,更经得起考验。
(4)根据项目软件的质量需要确定本项目所采用的软件开发方法。
理由:确定好软件开发所采用的开发方法,就能尽早的做下步计划,不至于到最后为选择开发方法而浪费太多时间。
目前已形成了八类软件开发方法,开发时是选择面向数据结构的开发方法还是面向对象的开发方法,直接会影响到小组的开发进度。
要根据成员的擅长情况制定方法。
(5)软件版本管理员,以及设计、编程、测试人员的职责明确。
理由:权责分明,遇到问题追究到人,会使项目开发更有计划。
完善制度,将责任明确到人,这样才能明确目标,将工作细化,使成员做好自己的工作,认识到重要性,使开发过程能高效的进行。
《软件测试基础》教案课时2(45分钟)--------------------------------------------------------------------------------------- 错误!未定义书签。
1.回顾: [5分钟] ----------------------------------------------------------------------------------- 错误!未定义书签。
2.课程知识点讲解: ---------------------------------------------------------------------------- 错误!未定义书签。
2.1.具体知识点1:[15分钟] ................................................. 错误!未定义书签。
2.2.具体知识点2:[10分钟] ................................................. 错误!未定义书签。
2.3.具体知识点3:[5分钟] ................................................... 错误!未定义书签。
2.4.具体知识点4:[10分钟] ................................................. 错误!未定义书签。
3.本节总结[5分钟] --------------------------------------------------------------------------- 错误!未定义书签。
4.考核点-------------------------------------------------------------------------------------------- 错误!未定义书签。
软件过程管理习题1.阅读全部的CMM内容,选择出你认为最有价值的十条关键实践,并说明理由。
(1)项目软件负责人,设计/编程/测试人员、软件版本管理员均已得到相应的培训,具备了完成其职责所需要的知识和技能。
理由:通过培训,工作人员具有了一定的知识储备,遇到困难能够很快找到相应的解决措施,就可以很快上手,不至于在一个问题上耽误太多时间。
因此,为了达到统一的科学技术规范、标准化作业,通过目标规划设定、知识和信息传递、技能熟练而进行培训是十分必要的,这样能减少所需工作时间,提高成员的开发能力和创新能力,从而降低人力成本;减少浪费,从而降低了开发成本。
因此,参加培训是十分必须的。
(2)根据项目要求,建立软件有关组(例如工程组、软件测试组等)。
理由:通过建立相关组,各组可以各施其职,同步工作,提高工作效率。
因为软件开发时不可能一个人兼顾所有的方面,应该分成几个模块,只做好自己的然后和其他组协调就可以。
如专人负责技术方案设计,专人负责数据,专人做技术层面的指导等。
这样权责分明,遇到问题能够很快找到相应的负责组,解决问题的时间也将大大减少。
(3)确定设计、编程、测试人员,并实施三分离。
理由:实现了三分离可以更加开阔人员的思维,防止由于思路固定而不能及时发现问题,更有助于激发员工的创新思维,使软件更先进,更经得起考验。
(4)根据项目软件的质量需要确定本项目所采用的软件开发方法。
理由:确定好软件开发所采用的开发方法,就能尽早的做下步计划,不至于到最后为选择开发方法而浪费太多时间。
目前已形成了八类软件开发方法,开发时是选择面向数据结构的开发方法还是面向对象的开发方法,直接会影响到小组的开发进度。
要根据成员的擅长情况制定方法。
(5)软件版本管理员,以及设计、编程、测试人员的职责明确。
理由: 权责分明,遇到问题追究到人,会使项目开发更有计划。
完善制度,将责任明确到人,这样才能明确目标,将工作细化,使成员做好自己的工作,认识到重要性,使开发过程能高效的进行。
(6)制定正式评审规程、建立相应的评审机构。
理由:项目评审工作就是对项目计划执行情况以及未来计划的新情况做一个评审,同时对项目的财务状况及其它情况做一个总结。
另外,它可以为项目团队在处理项目风险时提供机会,以获得管理层的支持,同时也为项目团队继续开展项目工作提供在高层管理方面的认可。
(7)根据项目实际情况,选定本项目应遵循的软件过程标准、规范。
理由:如果一个团队中有了统一的过程,那么,大家的行为就会符合规范,从而提高团队的整体能力。
如果一个团队缺乏执行规范化过程的活动,就会导致整个组织的混乱。
为了消除软件过程所常见的问题,建立软件过程规范是必要的。
软件过程规范可以确保过程活动的一致性、有效性和持续性。
(8)任命项目负责人。
理由:项目负责人除了调配好小组成员,运用专业知识做整体质量的导向,控制项目的进度以外,还要与用户协调,利用周边人力资源做项目规划的流程安排,项目负责人要及时的发现程序开发中的困难和障碍,并且努力的及早的解决。
一个项目从开始运作到最后完成,不论是合同的签定、还是人员的调配、还是执行的安排,处处隐藏着不可预见的漏洞,因此需要项目负责人全局的掌控思维和能力。
(9)具有各阶段活动所需要的软/硬件环境、支持工具,并提供足够的经费。
理由:只有硬件基础具备了,才能形成一个好的开发环境,同时经费也是基础,要合理的制定经费计划,保证开发过程顺利进行。
要做好软件开发成本估算,这样才能合理的开发。
(10)项目软件负责的职责明确。
理由:责任是管理的基础,明确了职责,才能使成员更加认真的做好自己的本职工作,同时将责任细分,在出问题后也可以责任到人。
2.软件配置管理主要包括哪些?请详细说明。
(1)配置管理过程软件配置管理(SCM)简单而言就是管理软件的变化。
它属于软件工程过程,通常由相应的工具、过程和方法学组成。
在整个过程管理的活动中占有很重要的位置。
IEEE“软件配置管理计划标准”关于SCM论述如下。
软件配置管理由适用于所有软件开发项目的最佳工程实践组成,无论是采用分阶段开发,还是采用快速原型进行开发,甚至包括对现有软件产品进行维护。
SCM通过以下手段来提高软件的可靠性和质量。
1)在整个软件的生命周期中提供标识和控制文档、源代码、接口定义和数据库等工件的机制。
2)提供满足需求、符合标准、适合项目管理及其他组织策略的软件开发和维护的方法学。
3)为管理和产品发布提供支持信息,如基线的状态、变更控制、测试、发布和审计等。
软件配置管理贯穿于项目的整个软件过程中,与项目过程行为密不可分。
一方面,对于在软件过程中所产生的工作产品或变更请求通过配置管理活动进行管理,将有效的信息存储在配置管理库中。
另一方面,项目人员可依赖配置管理活动获取配置项的有效版本和历史信息。
软件配置控制是软件配置管理的核心工作。
软件配置控制主要包括对软件的存取控制、版本控制、变更控制和产品发布等4个方面。
(2)基线控制在软件开发过程中,由于各种原因,可能需要变动需求、预算、进度和设计方案等,尽管这些变动请求中绝大部分是合理的,但在不同的时机做不同的变动,其难易程度和造成影响差别比较大,为了有效的控制变动,软件配置管理引入基线的概念。
简单地说,基线就是项目存储库中每个工件版本在特定时期的一个“快照”,它提供一个正式标志,随后的工作基于这个标志进行,并且只有经过授权后才能变更这个标志。
建立一个初始基线后,以后每次对它进行的变更都将记录一个差值,直到建成下一个基线。
基线是软件生命期各阶段末尾的特定点,也称为里程碑。
在这些特定点上,阶段工作已结束,并且已经取得了正式的阶段性产品。
建立基线的概念是为了把各个阶段的工作划分的更加明确,使得本来连续开展的软件工作在这些点上被割开,从而更加有利于检验和肯定阶段性的成果。
同时也有利于变更控制。
有了基线的规定后,就可以禁止跨越里程碑去修改另一阶段“已冻结”的工作成果。
就各种不同类型的基线而言,有一条较为特殊的基线,它是软件过程中的第一条基线。
它包含通过评审的软件需求,因此称之为“需求基线”。
通过建立这样一个基线,受控的系统需求成为进一步软件开发的出发点,对需求基线的变更请求将受到慎重的评估和严格的控制。
受控的需求还是对软件进行功能评审的基础。
需求基线是整个软件生命周期的起点和终结点。
(3)版本控制版本控制是对系统不同版本进行标识和跟踪的过程,是实行软件配置管理的基础,也是所有配置管理系统的核心功能。
配置管理系统的其他功能大都建立在版本控制功能之上。
版本控制主要分为版本的访问与同步控制、版本的分支和合并。
1)版本的访问和同步:一般来说,不同的工作空间是由不同的目录来表示的,而对工作空间的访问是由文件系统提供的文件访问权限来加以控制的。
版本的访问控制:工作区域中的源文件是从库中恢复得到的一个副本,该副本可以是“可写”的,也可以是“可读”的。
对于“可写”的副本来说,它就是真正的工作文件。
而对于“可读”的副本,它可以被视为软件库中源文件的一个缓冲副本,此时一般有两种工作模式。
在工作区域一旦有“读”请求,则作一次恢复操作,获得一个副本。
当“读”操作结束后,该副本被删除。
这样就形成一种重复恢复,从而可以保证工作区域中的文件内容被更新为与软件库中的内容一致。
针对上一种模式中重复恢复引起的较大时间代价,不是每次“读”操作都要求与软件库中发生交互,而是将重点放在工作区域上,仅当软件库中的内容发生更改时,才发生交互。
版本同步控制:同步控制实际上是版本的检入检出控制。
2)版本的分支和合并:版本分支的人工方法就是从主版本---称为主干上复制的一份,并做上标记。
在实行了版本控制之后,版本的分支也是一份复制,这时的复制过程和标记动作由版本控制系统自动完成。
对于合并,在没有版本控制的时候,一般是通过文件的比较来进行合并。
在实行了版本控制之后,还是要通过文件的比较来进行合并,但是这时的比较工作可以由版本比较工具自动进行合并,自动合并后的结果需要人工检查,才有很高的可靠性。
(4)变更控制在软件过程中要产生许多变更,比如配置项、配置、基线、构建的版本和发布版本等。
对于所有的变更,都要有一个控制机制,以保证所有变更都是可控的、可跟踪的和可重现的。
为了有效地进行变更控制,需要规范相应的变更控制流程,变更控制流程主要分为7个阶段,变更请求提交、接受、评估、决策、实现、验证和完成。
3.如何综合运用过程管理的工具?在软件过程活动中,要经历不同的阶段和涉及很多的过程域,为了有效的执行这些软件过程活动,需要在整个软件开发过程中引入相关工具。
一般来说,实施软件过程活动所需要的工具主要有下面几种。
●需求管理工具●面向对象的分析设计工具●配置管理、变更管理工具●软件测试管理、缺陷跟踪工具(1)需求管理工具一个优秀的需求管理工具,可以有效地管理需求,提高需求管理工作流程的自动化程度,在项目实施中完整的、一致的管理好需求。
IBM-Rational AnalystStudio:IBM-Rational AnalystStudio可以帮助更好地分析问题,更好地定义并交流问题的解决方案,用于可视化建模、需求和用例管理以及缺陷和变更请求跟踪等。
Telelogic DOORS:Telelogic DOORS-Enterprise Requirements Suite (DOORS/ERS)是基于整个软件组织的需求管理系统,用来捕捉、链接、跟踪、分析及管理信息,以确保项目与特定的需求及标准保持一致。
DOORS/ERS 提供多种工具与方法对需求进行管理,可以灵活地融合到组织的软件过程管理中。
Borland Caliber:Borland Caliber是一个基于Web和用于协作的需求定义和管理工具,可以帮助分布式的开发团队平滑协作,从而加速交付应用系统。
Caliber辅助团队成员沟通,有助于更好地理解和控制项目,较少错误和提升项目质量。
(2)面向对象的分析设计工具IBM-Rational Rose是面向对象技术分析设计工具的代表,是可视化的建模工具。
它采用“统一建模语言(UML)”的表示方法,在同一个模型中实现业务建模、对象建模和数据建模,使所有参与项目的成员都可以在统一的语言环境中工作于同一个模型之上,有利于改善成员之间的沟通。
其次,IBM-Rational Rose支持多种语言的代码生成及双向工程,可实现代码和模型的互相转换,并且可以将遗留代码引入模型中。
最后,IBM-Rational Rose带有对设计元素进行测试的模块工具,可以尽早发现设计中的问题,真正实现“质量从头抓起”。
(3)配置管理和变更管理工具在CMM标准中,明确规定了软件配置管理以及变更请求管理的相关工作,主要包括以下两方面。
1)配置管理的主要工作包括通过创建软件配置管理库、定义配置项以及建立和维护软件的基线。