软件过程.docx
《软件过程.docx》由会员分享,可在线阅读,更多相关《软件过程.docx(10页珍藏版)》请在冰点文库上搜索。
软件过程
第一章软件过程规范
1.IEC12207软件生命周期过程示意图
2.ISO/IEC15504软件过程评估标准的组成
3.软件过程规范的概念:
过程规范就是对输入输出和活动所构成的过程进行明文规定或约定俗成的标准。
软件过程规范是软件开发组织行动的准则和指南,可以依据各类过程的特点而建立相应的规范,如软件基本过程规范、软件支持过程规范和软件组织过程规范。
在软件过程的管理中,人们会更多地关注软件管理过程规范、开发过程规范、维护过程规范、配置管理过程规范和质量保证过程规范等。
而软件开发过程规范,进一步可分为需求分析和开发的过程规范、设计过程规范、测试过程规范和发布过程规范等。
4.软件过程规范的建立
组织过程规范的建立,除了国家制定的软件过程规范外,可以借鉴的过程模型、框架或模式主要有如下几种:
(1)软件能力成熟度模型(CMM)。
适用于评估和改进软件组织的过程能力,提供了关键过程域、过程活动等指导。
(2)个体软件过程(PSP)。
帮助软件开发团队中的个体——软件工程师改善其个人能力和素质的组织过程,内容丰富,具有良好的实践性。
(3)团队软件过程(TSP)。
建立在个体软件过程之上,致力于开发高质量的产品,建立、管理和授权项目小组,改善开发团队过程、提高开发团队能力的指导性框架。
(4)能力成熟度模型集成(CMMI)。
是在CMM的基础上,试图把现有的各种能力成熟度模型集成到一个框架中去,包含了健全的软件开发原则。
(5)IBM—Rational的统一过程(RUP)。
定义了一系列的过程元素,如角色、活动和产物,通过适当的组合能够帮助软件开发组织有效管理软件过程。
(6)极限编程方法。
为适应快速的需求变化而积累的最佳实践,但需要适度借鉴。
(7)软件解决方案框架(MSF)。
基于一套制定好的原理、模型、准则、概念和指南而形成的一种成熟的、系统的技术项目规划、构建和部署的指导体系。
5.项目实施过程规范可定义如下:
(1)参与人员。
项目经理、开发组长、测试组长和项目组其他成员。
(2)入口准则。
项目计划已批准,项目资源和进度已确定,任务安排完毕,项目计划基线已建立,并通过配置管理组的确认。
(3)出口准则.项目通过用户验收,《验收报告》经用户代表、项目经理、开发组长和测试组长等签字确认。
(4)输入。
《市场需求文档》、《软件需求规格说明书》和《软件项目计划书》等。
(5)输出。
通过验收测试的、可交付的、源代码及相关文档。
(6)在项目实施期间的主要活动包括如下。
*项目经理、开发组长和测试组长需要提交每日、每周报告,包括存在的问题、缺陷状态、任务进度和资源。
*项目经理、开发组长和测试组长要定期审查项目计划的执行情况,若发现进度延误,应及时采取措施以加快进度或及时调整项目计划。
*项目经理、开发组长和测试组长审查各类问题并及时解决这些问题,清理软件缺陷,决定哪些缺陷要优先修正,哪些缺陷可以留到下一个版本。
(7)相关模板。
《软件项目计划》、《项目日报》、《缺陷报告单》、《缺陷状态跟踪表》以及《项目进度周报》等模板。
6.项目管理过程
项目管理过程(PMP)是计划、跟踪和协调项目执行及生产所需资源的管理过程。
项目管理过程的活动,包括软件基本过程的活动,包括项目基本过程的范围确定、策划、执行和控制、评审、评价等。
该过程的成功实施期待带来如下结果。
(1)为过程和执行指定计划,定义项目的目标、工作范围和责任,以及相关活动和任务的说明。
(2)对任务规模、难度和工作量估计,完成任务所需资源和成本估计,指定时间进度表。
(3)任务的分配、责任的指定,对在过程执行期间完成的软件产品、活动和任务的评价结果进行评估,以确保过程满足所设定的项目目标和里程碑准入、准出标准。
(4)实行控制、监视过程计划的执行,随时提供过程进展的内部和外部报告,要对过程执行过程中发现的问题进行调查、分析和解决。
(5)确定和管理项目内不同元素之间、项目与项目之间、组织单元之间的各种接口或关系。
(6)当项目进度滞后、阶段性目标未能完成时,要及时采取相应的纠正措施,包括计划的变更。
保证对计划更改的效果进行确定、控制和监视,以便达到目标和完成计划。
7.软件过程规范和项目过程规范,有何关系和区别(3,5)
8.通过互联网搜索有关软件过程标准、软件过程建模的更多资料。
第二章软件过程成熟度
1.CMM的基本内容和结构
CMM的四项基本元素。
(1)成熟度等级。
是朝着实现成熟软件过程改进的、适当定义的和特定的平台。
5个成熟度等级提供了CMM的顶层结构。
(2)关键过程域(KPA)。
每个成熟度等级由若干KPA组成,每个KPA标识出一串相关的活动。
当KPA作为群体完成时,就达到一组目标,此组目标对建立相应的过程成熟度等级是至关重要的。
(3)关键实践(KP)。
每个KPA用若干关键实践加以描述,当实施这些关键实践时,能帮助实现该KPA的目标。
关键实践描述了对KPA的有效实施和规范化贡献最大的基础设施和活动。
(4)共同特点(CF)。
将关键实践分别归入五个共同特点,执行约定、执行能力、执行活动、测量和分析及验证实施。
共同特点是一种属性,能指示一个关键过程区域的实施和规范化是否是有效的、可重复的和持久的。
2.软件过程不同的成熟度分为5个等级——1初始级、2可重复级/受管理级、3已定义级、
4定量管理级、5优化级,为过程不断改进建立了一个又一个循序渐进的、通向成熟软件组织的台阶。
3.成熟度各个级别的软件过程特征
2级软件过程特征:
(1)建立了软件项目管理的策略和实施这些策略的规范,但过程管理的策略主要是针对项目建立的,而不是针对整个组织来建立。
(2)软件开发和维护的过程相对稳定,已有的成功经验可以被复用,即基于以往的成功经验来规划和管理同类的新项目。
(3)软件过程中,引入了软件配置管理、质量保证和管理。
(4)软件项目管理人员负责跟踪成本、进度,有能力识别及纠正过程中出现的问题。
(5)为需求和相应的工作产品建立基线来标志过程进展、控制过程的完整性。
(6)定义了软件项目的标准,能保证项目在执行过程中严格遵守标准。
(7)软件过程中,对子合同管理,保证与转包商建立良好的供求关系。
(8)重视人员培训工作、建立技术支持活动,更好的支持了过程管理。
3级软件过程特征:
(1)整个组织内的软件过程都已标准化、文档化,形成有机的整体——组织的标准软件过程。
(2)整个组织内的软件过程得到了良好的管理和监控,过程是稳定的、可重复的和连续的。
(3)软件过程标准被应用到所有的项目中,可以根据项目的类型、规模和实际特点。
,对组织的标准软件过程进行剪裁,以适应特点项目的需求。
(4)软件过程具有可预见性及防范问题的能力,能使风险的影响最小化,软件质量得到控制。
(5)有专门的过程管理组织单元负责软件过程活动。
(6)全组织范围内安排培训计划,有计划的对不同的技术人员角色进行培训。
(7)整个组织内部的所有人员对已定义的软件过程的活动和任务有着深入的、一致的理解。
(8)在定性基础上建立新的软件过程和产品评估技术。
4级软件过程特征:
(1)制定了软件过程和产品质量的详细而具体的度量标准。
(2)定量的认识和度量软件过程和组织过程能力,更有效地管理、控制和预测软件过程和提高产品质量、保证所实施项目的生产率。
(3)在定量的限度范围内,预测过程和产品质量的发展趋势,一旦意外情况出现,就可以确定导致这些意外的“特定的原因”,从而采取适当的措施来解决问题。
(4)具有已定义及一致的度量标准来指导软件过程,并作为评价软件过程及产品的定量基础。
(5)组织内已建立软件过程数据库,保存收集到的数据,并用于各项目的软件过程。
(6)软件过程变化较小,一般在可接受的范围内。
(7)因为项目的每个人员都了解个人的作用与组织的关系,所以都存在强烈的团队合作意识。
(8)不断地在定量基础上评估新技术。
第三章软件过程的组织管理
1.下图是PSP过程框架:
从图中可以看出整个开发过程中从需求开始,经过计划、设计、设计评审、编码、代码评审、编译、测试和总结等开发阶段。
而软件工程除了遵循整个开发流程外,还需要通过脚本来指导自己完成工作,脚本还将记录他们所花费的时间和相应的缺陷数据并产生相应的日志,如缺陷日志。
在项目总结阶段,需要从日志中收集各种时间和缺陷的数据,度量产品的规模并把他们填入计划总结报告中。
最后,连同报告一起发布完成的产品。
2.资源和规模估计
对于软件工程师而言,项目的规模和开发时间的关系非常密切,规模越大则花费时间肯定越长。
因此PSP一开始就要求工程师对项目规模进行估计,然后根据估计的规模预计需要花费的时间。
在PSP过程中,资源和规模的估计是通过PROBE方法来完成的。
该预测方法最早由汉弗莱在1995年出版的《软件工程规范》一书中提到。
PROBE方法通过使用和参考以往相似项目的工作和数据经验来预测将来项目的情况。
通常,PROxy来源于如下几类工作,代码行数、模块、功能、对象和功能点等。
3.个体质量管理过程
PSP2的重点是个体质量管理,根据程序的缺陷状况建立检查单,按照检查单进行设计复查和代码复查。
以便及早发现缺陷,使修复缺陷的代价最小。
随着个人经验和技术的积累,还应学会怎样修改检查单以适应自己的要求。
PSP2.1则论述设计过程和设计模版技术,介绍设计方法,并提供了设计模版。
但PSP并不强调选用什么设计方法,而强调设计完成准则和设计验证技术。
一个合格的软件开发啊人员必须掌握设计评审技术和代码评审技术这两项基本技术。
4.TSP启动过程
当TSP小组建立时,整个小组就进入了TSP小组启动流程,启动流程如下图所示:
从图中可以看出,整个启动流程共包含了9个启动会议。
当流程结束时,小组将创建详细的工作计划,并形成一个团结一致的、高效的团队。
同时,由于所有的工程师都参与到详细计划的制定中,因此,最后形成的工作计划应该被所有的工程师认同并得到承诺。
5.整体策略和计划
在第3次和第4次会议中小组将谈论和制定项目的整体策略和计划。
工程师需要完成概念设计,讨论开发策略,定义详细的流程和选择支持工具和需要的设备。
同时,还需要列出所有需要开发的产品,预计产品规模,并为每个开发流程评估需要的时间。
一旦相关的任务都已经定义并评估,则工程师需要开始评估每个人每个星期花费在这些任务上的时间并形成个人的时间表。
第四章、软件过程的需求管理
1.软件需求包括三个不同的层次,业务需求、用户需求和功能需求。
业务需求决定了用户需求,而每个用户需求又对系统提出了一个或多个功能需求。
(1)业务需求:
反映了组织机构或客户对系统、产品的概括的目标要求,它在项目视图与范围文档中予以说明。
主要的目的是对企业目前的业务流程进行评估,得到一个业务前景。
业务需求的确定对后面的用户需求和功能需求起到了限制作用。
(2)用户需求:
文档使用了用户使用系统而完成的任务的集合,用户需求在用户案例文档或方案脚本中予以说明。
收集和分析用户需求是不容易的,因为很多需求是隐形的,很难获取,更难保证需求完整,而需求又是易变的,这就要求用户和开发人员进行充分的交流。
(3)功能需求:
定义了开发人员必须实现的软件功能,她源于用户需求。
功能需求是软件需求说明书中最重要的部分之一,它在开发、测试、质量保证、项目管理以及相关项目功能中都起到了重要的作用。
非功能需求描述了系统展现给用户的行为和执行的操作等,包括要遵从的业务规则、人机接口、安全性和可靠性等要求。
2.需求获取的过程和方法
需求获取过程采用如下几个步骤:
(1)定义问题。
定义问题是简单地将问题记录下来,并和用户讨论从而对所有问题达成一致意见。
讨论之后列出的问题需要是双方都认可的问题。
(2)分析问题根本原因。
当知道问题所在之后,接下来需要做的就是分析问题产生的原因。
例如,造成订单输入速度慢的原因是什么?
在分析过程中可以采用鱼骨图法。
(3)分析涉众。
有效解决问题的最终目的是为了满足相关人员的需要,因此,分析哪些人员属于相关人员对于解决方案的制定非常重要。
(4)定义系统边界。
有的系统边界可能非常清晰,例如一个单机游戏,人机交互界面就是系统的边界。
而对于一个复杂的订单系统则需要考虑更多的问题,例如是否支持在线访问,如何与其他系统交互等。
系统边界的定义对于以后的解决方案的分析和实施非常重要。
(5)确定约束条件。
在整个问题分析阶段除了对用户存在的问题进行分析之外,还要考虑解决这些问题所面临的各种约束条件。
只有充分考虑可各种约束条件,才能更快更有效的解决用户的问题。
在需求获取的过程中,可以采用如下的几种方法;
(1)需求研讨会。
需求研讨会需要将所有涉众尽可能集中到一起对用户存在的问题和需求进行讨论。
(2)头脑风暴。
头脑风暴激发所有与会者尽可能的提出自己的意见。
(3)用例模型。
用例模型由系统的所有参与者以及参与者与系统交互的用例组成。
从而描述系统全部功能性行为。
(4)访谈。
一种简单、直接的需求获取方法。
(5)角色扮演。
角色扮演允许软件开发团队从用户的角度体验用户的世界。
(6)原型法。
软件原型是软件系统的早期缩型,它显示了新系统的部分功能。
第六章软件过程的项目管理
1.论述形成工作分解结构表(WBS)的方法
完成项目计划的第一个问题是怎么做。
因此,首先需要完成的是工作分解结构表,它在项目管理中扮演着很重要的地位。
有的人可能很不喜欢编写计划,他会说:
“我不会编写计划。
”实际上计划只是将头脑里的东西整理到文档中而已。
在完成WBS时,你只要将你想到的事情都一一列出来就行了。
然后再对每个任务进行进一步细分。
例如:
但需要开发一个新项目是,可以列出如下需要完成的任务:
(1)编写需求说明书
(2)编写设计文档(3)编码(4)测试(5)验收
2.如何给任务排序?
利用网络图。
网络图用箭头连接方框,从左至右时间顺序把所有任务排成序列,一眼就能看出应该先做什么,后做什么,那些可以同时做,哪些是相互依赖的。
网格图可以表示出这些先期工作和依赖工作,反映出任务之间的逻辑关系,所以网络图也叫做逻辑图。
3.解释项目跟踪重要性,并述其内容。
项目跟踪是必要的,因为它可以证明计划是否可以被完成。
跟踪可以对计划进行检验,如果把计划和跟踪看做一个工作循环,那么计划将得到适时的改进,因为跟踪过程中会发现计划的不当之处。
项目跟踪主要包含了如下几方面的内容:
(1)了解成员的工作情况
(2)调整工作安排,合理利用资源(3)促进计划内容的完善(4)促进项目经理对人员的认识(5)促进对项目工作量得估计(6)统计并了解项目总体进度(7)有利于人员考核
第七章软件过程的质量管理
1.作为软件质量管理的指导文件,软件质量方针主要包含了如下内容。
(1)软件质量工作中长期目标。
细化公司对业务发展的中、长期目标,一般可以提出3-5年的业务发展规划。
(2)软件质量工作年度目标。
围绕实现公司年度总目标的要求,细化业务的年度目标。
(3)文件覆盖范围。
明确该文件的覆盖范围,及指明哪些部门、哪些人员必须执行该文件。
(4)相关部门、人员的责任和义务。
(5)过程改进和过程回顾活动事宜。
明确过程改进和过程回顾活动的时间、责任人等,为制定企业过程改进行动计划提供依据。
(6)过程培训活动。
明确什么人员需要参加什么方面的过程培训及培训时机等。
(7)过程剪裁审批流程。
明确过程剪裁的审核、审批流程,规范过程执行行为。
(8)文件的监督执行部门。
明确文件的监督执行部门,为文件体系真正能落实到位提供组织保障。