1、软件项目管理教案1 软件过程规范 (1)过程的定义定义牛津简明词典:“过程”被定义为活动与操作的集合,例如一系列的生产活动。IEEE-Std-610:“过程”是为完成一个特定的目标而进行的一系列操作步骤。SEICMM:过程是用于软件开发及维护的一系列活动、方法、实践和革新。软件过程的分类和组成软件基本过程:软件获取、供应、开发、运行和维护,包括需求分析、软件设计、编码等过程。软件支持过程:对软件主要过程提供支持的过程,包括文档编制过程、配置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。软件组织过程:对软件主要过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和
2、培训过程。(2)过程规范什么是过程规范“规范”可以解释为“明文规定或约定俗成的标准”或理解为“用来控制或治理一个团队的一系列准则与章程,以及团队成员必须遵守的相关的规章制度” 过程规范就是对输入/输出活动进行明文规定或约定俗成的标准,即人们需要遵守的约定和规则。软件过程规范是软件开发组织行动的准则与指南,如软件支持和软件组织过程规范。软件过程规范与创造力是一对矛盾,如何平衡两者之间的关系,值得研究。软件过程规范的建立:软件能力成熟度模型(CMM/CMMI ); IBM-Raional 统一过程(RUP);极限编程 (eXtreme Programming,XP);微软软件框架(MSF);个体软
3、件过程(PSP);团队软件过程(TSP)。 过程规范的内容和示例任务规范;日常规章制度;软件工具。过程规范的作用帮助团队实现共同的目标;能带来稳定的、高水平的过程质量;使软件组织的生产效率更高。 (3)软件生命周期的过程需求软件工程过程工程过程:软件系统、产品的定义、设计、实现以及维护的过程。开发过程:定义并开发软件产品的活动,包括需求分析、软件设计和编程等。运行过程:在规定的环境中为用户提供运行计算机系统服务的活动,包括软件部署维护过程:提供维护软件产品服务的活动。也就是通过软件的修改、变更,使软件系统保持合适的运行状态,这一过程包括软件产品的移植和退役。软件支持过程文档编制;配置管理;质量
4、保证;验证;确认;联合评审;审核等。软件管理过程项目管理过程是计划、跟踪和协调项目执行及生产所需资源的管理过程。项目管理过程的活动,包括软件基本过程的范围确定、策划、执行和控制、评审和评价等;质量管理过程是对项目产品和服务的质量加以管理,从而获得最大的客户满意度;风险管理过程是在整个项目的生命周期中对风险不断的识别、诊断和分析,回避风险、降低风险或消除风险,并在项目以及组织层次上建立有效的风险管理机制;合同商管理过程是选择合格的合同商并对其进行管理的过程。软件组织过程业务规划过程:为组织与项目成员提供对愿景的描述以及企业文化的介绍,从而使项目成员能更有效地工作。从顶可以看出真正的规划绝不是鬼话
5、!切记!定义过程:建立一个可重复使用的过程定义库,从而对其它过程等提供指导、约束和支持。改进过程:为了满足业务变化的需要,提高过程的效率与有效性,而对软件过程进行持续的评估、度量、控制和改善的过程。人力资源和培训过程:为项目或其它组织过程提供培训合格的人员所需的活动。基础设施过程:建立生存周期过程基础结构、为其他过程建立和维护所需基础设施的过程 。软件客户供应商的过程客户供应商过程是(内部直接影响到客户、外部直接影响开发)向客户交付软件以及软件正确操作与使用的过程,包括软件获得、客户需求管理、提供软件、操作软件以及提供客户服务等子过程(4)软件生命周期标准ISO/IEC标准体系ISO/IEC
6、12207:1995-软件生存周期过程从多个角度说明软件生命周期各个过程中的活动,对规范软件开发过程,协调各类人员之间的关系,都具有指导作用。ISO/IEC15504软件过程评估标准帮助评估并确定一个潜在软件供应商的能力,帮助提高软件开发过程的水平,帮助判断是否有能力承接新项目的开发。IEEE标准体系包括IEEE 1074:1997,IEEE 1540-01,IEEE 1517-99,IEEE 1219-1998,IEEE Std 730-2001,IEEE Std 1012,IEEE Std 1028。内容涵盖生命周期过程的标准,软件风险管理,软件复用过程,软件维护过程,软件质量保证计划,验
7、证与确认,评审。,(5)软件过程建模包括软件过程模型(瀑布模型;螺旋模型、增量模型、迭代模型;V模型 ;并发过程模型;极限编程;IBM-Rational统一过程);基于UML的过程建模;基于IDEF3的过程建模;基于Agent的自适应软件过程模型;基于SOA的软件过程模型。2软件过程成熟度(1)过程成熟度标准软件过程不成熟的特点不能按预定计划开发出客户满意的产品,项目拖延、费用大大超出预算;对进度和预算估计、产品质量的目标缺乏历史数据和有效方法的客观基础;开发的进度、成本和产品的质量都难以预测;软件过程缺乏定义、缺乏文档和跟踪;在整个软件活动中,不清楚每个阶段进出的标准、执行的方法和规则;实际
8、的、具体的操作过程是在一个项目开始后临时拼凑而成,每个项目都不一样;缺乏改进的主动性。软件过程成熟的标准具有全组织范围的管理软件开发和维护过程的能力;对进度、预算和质量做出现实的和准确的估计和预测;有可遵循的标准、规则和指导性原则。此外还有过程的一致性、丰富性、可视性、稳定性和不断改进性。3个基本概念:软件过程能力;软件过程性能;软件过程成熟度。 (2)CMM和ISO9000软件开发过程管理是指在软件开发中的一套管理技术,软件改进过程是指对软件生产过程中会对产品质量产生影响而进行的活动。常见的软件过程改进方法有:CMM,ISO9000和CMMI CMM和CMMICMM:软件过程能力成熟度模型(
9、Capacity Maturity Model,CMM)的简称,是一个评估软件供应商能力的研究模型。CMMI:CMMI被看作是各种CMM集成的一个系列模型。ISO9000ISO9000是一族系列质量标准的统称。ISO9000的作用(P30,第2行起)。三者比较(P 30-32).(3)过程成熟度级别初始级:具有明显的不成熟过程的特点 可重复级/受管理级:建立了管理软件项目的方针和实施这些方针的规程,使软件项目的有效管理过程制度化,能跟踪成本、进度和质量等。已定义级:包含一组协调的、集成的、适度定义的软件工程过程和管理过程,具有良好的文档化、标准化,使软件过程具有可视性、一致性、稳定性和可重复性
10、,软件过程被集成为一个有机的整体。 已管理级:在已定义级的基础上,可以建立有关软件过程和产品质量的、一致的度量体系,采集详细的数据进行分析,从而对软件产品和过程进行有效的定量控制和管理。优化级:不断改善组织的软件过程能力和项目的过程性能,利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续过程改进成为可能。为了预防缺陷出现,组织有办法识别出弱点并预先针对性地加强过程 26-29页。(4)软件过程文化过程至上,奉过程为教条,一切围绕着过程,组织、质量和效率都服从于过程。过程的执行严格,过程结果可靠、稳定,认为生产的“东西”是过程的一个节点,只是全局的一部分。但效率较低,缺乏灵活性、
11、创造性。关注过程,强调过程的重要性,但不拘于过程,让过程服从于质量和效率、服从于组织的业务目标过程只能起辅助作用,人决定一切, 过程可能流于形式.3 软件过程模型不同的项目需要不同的方法论,项目的最佳过程是这个项目所能负担的最小过程。(1)敏捷过程(AP) 敏捷方法强调适用而非预测,主张适应变化,重视以人为中心而非以过程为中心。极限编程(XP)可归于敏捷旗下。 敏捷过程的价值观与原则价值观:个体交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判。原则:尽早持续地交付有价值软件满足客户;欢迎改变需求;经常交付可工作的软件;商务人员和开发人员应该在一起工作;充分信任并提供所
12、需要的环境和支持;团队内部应该面对面的交流信息;工作的软件是首要的进度度量标准;主张简单、轻便;不断关注优秀设计;团队应定期反省工作,然后就此进行调整;提倡可持续性;最好的架构、需求和设计来自于团队;围绕被激励起来的个体构建项目。敏捷过程的最佳实践编程实践:简单设计、测试、重构、编码标准团队实践:代码集体所有、持续集成、编码标准、每周40小时工作制、结对编程、小型发布等。过程实践:现场客户、测试、计划、小型发布等。敏捷过程能较好地适应商业竞争环境下对小型项目提出的有限开发时间的约束。(2)IBM-Rational统一过程(RUP)概述作为一个面向对象的基于网络程序的开发方法,RUP是Ratio
13、nal公司推出的一种软件产品,并由Rational公司开发和维护。RUP是软件工程化和可配置过程;RUP是有效使用UML的指南;RUP能提高团队生产力;RUP能对大部分开发过程提供自动化的工具支持等。Rational与最佳实践迭代式开发;需求管理;使用基于构件的体系结构;可视化建模(UML);验证软件质量;控制软件变更。RUP术语用户:与开发的系统进行交互的某个人或某个系统。用例(用况):向用户提供有价值结果的一项系统功能。用例描述了系统完成的动作序列,产生对用户有价值的结果。一个系统包含若干个用例,每个用例具体说明应完成功能。用例反映了用户与系统在一次交互中执行的、特定的相关事务序列。架构:
14、通过接口交互的重要构件的组织和结构,这些构件又由一些更小构件和接口组成。工作流程(工作流):在业务中执行的活动序列,它相对于业务主角个体生成一个可见值的结果。迭代:带有已建立基线的计划和评估准则的独特活动序列。基线:通过正式评审和认可的标准或产品(软件生存期各阶段末尾特定点)。增量:在后续迭代结束后两个发布版本之间存在差异或差值。发布(Release):宣布,名词意指版本,动词意旨发布,发行。新版本与新发行是不同概念。新版本是指开发出的新程序、新系统,新发行是指除新程序、新系统外,还有配置文件、新文档、新包装等。新发行比新版本开销大。角色:个人或协同工作的小组。例如,开发人员、经理等。活动:要
15、求角色执行的工作单元。工件:一条由过程生成、修改和使用的信息,里程碑:迭代正式结束的时间点。因此,基线也被称为里程碑。阶段:项目中相邻两个里程碑之间的时间段。RUP的迭代过程RUP生命周期用P45图3-9描述。每个阶段都有一个结果,如初始阶段主要成果是: 前景文档:对核心项目要求、关键性质、前景说明; 初始的项目术语表; 初始的用例模型和商业用例; 项目规划,其中明确阶段和迭代,一个或多个原型; 初始的风险评估和商业模型。Rational统一过程的特点相对瀑布模型,RUP有利于降低风险,适用需求变化等,但RUP很不完善。敏捷过程虽然不如RUP全面,但相对RUP具有对变化和不确定性的更快速的反应
16、,同时还保持可持续性,可作为RUP的补充和完善。应用概况目前全球有上千家使用Rational,开发着大小项目,分布在不同应用领域。(3)微软过程(MP)微软解决方案框架MSF作为一个软件开发管理系统,微软解决方案框架MSF是一组建立、开发和实现分布式企业系统应用的工作模型和开发准则及应用指南,是一个框架结构的知识经验库。从软件过程模式的角度出发,微软过程(MP)是从MSF中抽取的软件过程模式。微软解决方案框架MSF的5个重要阶段见P51图3-11.MSF的团队模型6种基本角色,即程序管理、开发、测试、发布管理、用户体验和产品管理。这些角色和实现特定的关键质量目标有直接的关系,而关键质量目标能否
17、达到是项目成功的标志,MSF 团队模型的核心是技术项目必须符合各种利益相关人的需求。MSF过程模型的特点和原则 目标驱动而非任务驱动;外部可见的里程碑;应提交项的变更管理;递进的版本发布策略;风险驱动的进度管理;项目组集体参与管理产品质量。MSF过程模型的应用 为共同的愿景而工作;推动开放式沟通;赋予团队成员权力;建立清晰的职责和共同的责任;关注交付业务价值;保持灵巧,预测变化;质量投资;学习所有的经验。微软过程可视为RUP的一个精简版本,又可作为敏捷过程的一个扩充版本。MP是一个比较完整的软件过程模式,它综合了AP和RUP许多优点。但MP也存在缺点,如对方法工具、产品等方面的论述不及AP和R
18、UP全面,有些原则本身也有问题。实践中,可以考虑把MP与AP和RUP结合使用。项目前景(vision):对项目要解决什么问题的开放性描述,代表项目的远景目标。项目范围(scope):在项目的限制条件内,需要完成哪些具体目标(主要指所有特定的近期目标)。4.质量计划(1)基本概念质量的定义1986年ISO 8492:质量是产品或服务所满足明示或暗示的需求能力的特性和特征的集合。质量的优劣取决于产品、服务和工作的能力和特性总和能否满足客户的需求,其中“明示的需求”在交易合同中标明,“暗示的需求”通过市场或客户调查获得。产品质量:能够满足客户使用要求所具备的功能特性。服务(过程)质量:能够满足客户期
19、望的程度。服务质量的高低取决于客户对于服务的预期与对于服务的实际体验二者之间的匹配程度,客户对服务的期望与体验会随时间与环境的变化而变化,所以服务质量中“暗示的需求”成分比较高。工作(活动)质量:用工作的结果度量。工作结果可能是产品,也可能是服务,因此,工作质量可以用产品质量和服务质量衡量。过程:一组将输入转化为输出的相互关联或相互作用的活动。过程由输入、实施活动和输出三个环节组成,过程一般伴随着时间先后次序的、不同的事件发生。产品:过程的结果或过程的中间结果。产品有四种通用的类别:硬件、软件、服务和流程性材料等。依产品的存在形式,又可将产品分为有形的和无形的。服务:向客户提供相应的技术支持、
20、帮助和关心等的行为。服务也是一种无形的产品,是对有形产品的补充。客户:接受产品或服务的组织或个人,包括潜在的客户。广义讲,客户是公司为实现目标所需要的产品和过程而影响到的人。体系/系统:相互关联、或相互作用、或相互依存的一组要素构成的有机整体。体系一般拥有一定的组织形式,其相互作用受某些规则或规律所控制,其变化的过程有一定的秩序,趋于和谐的状态。组织:职责、权限和相互关系得到安排的一组人员及设施。组织是由两个或两个以上的个人为了实现共同的目标组合而成的有机整体。结构:各个组成部分的搭配和排列(汉语词典)。质量特性内在质量特性:产品的性能、强度、精度等方面的特性。外在质量特性:产品的外形、包装、
21、装潢、色泽、味道等方面的特性。经济质量特性:产品的寿命、成本、价格、营运维护费用等方面的特性。商业质量特性:产品的保质期、保修期、售后服务水平等方面的特性。环保质量特性:产品或服务对于环境保护的贡献或对于环境造成污染等方面的特性。软件质量软件质量需求的背景 质量在软件业的地位还不是十分坚固;市场力量对于软件质量的影响,既有正面的,也有负面的;软件越来越复杂;软件缺陷造成的质量事故数不胜数,给企业带来的损失或负面影响很大。软件质量需求的内容用户的需求:能正常使用全部所需要的功能;功能强大,而且界面美观、易用、好用;内容健康,有益于生活和工作;用户的数据安全、受保护和兼容;及时得到新的产品或得到更
22、完美的软件服务;软件可靠性很高,使用软件服务没有时间障碍。软件企业的需求:软件质量是市场竞争的需要;高质量的软件可以降低“质量问题产生的成本”,增加公司的盈利;质量是进入国际市场的一个门坎;容易维护、移植和扩充,以扩大市场或适应环境的变化。软件质量的定义ANSI/IEEE STD729:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。这个定义包含了软件产品质量满足用户要求的程度;软件各种属性的组合程度;用户对软件产品的综合反映程度;软件在使用过程中满足用户要求的程度(教材52页)。高质量的软件应该是相对的无产品缺陷(Bug Free)或只有极少量的缺陷, 它能够准时递交给用户并且所用
23、的费用都是在预算内,满足客户需求,是可维护的。不过,有关质量的好坏最终评价依赖于用户的反馈。软件质量的特性软件质量的特性是多方面的,但必须包含与明确确定的功能和性能需求的一致性,能满足给定需要的特性之全体;与明确成文的开发标准的一致性。不遵循专门开发标准的将导致软件质量低劣;与所有专业开发的软件所期望的隐含的特性的一致性。忽视软件隐含需求,软件质量不可信。客户认为能满足其综合期望的程度,即软件的组合特性。当今客户驱动型的质量已成为企业经营理念,要求企业从战略的高度看待质量问题。软件系统的可靠性和性能相互关联、相互影响。软件系统的安全性和可靠性是一致的。因为任何一个失效,可能造成数据的不安全。软
24、件质量的内容软件产品质量要素对软件质量的评价是将产品的实际情况与给定需求中推导出来的软件质量特征和质量标准进行比较后得出来的,虽然软件质量难以定量度量的属性,但有许多软件质量定性标准可用于对软件质量的评价。人们常用软件质量模型来描述影响软件质量的因素,著名的质量模型有McCall模型,Boehm模型,ISO 9126 模型等。McCall把影响软件质量的因素分为三组,即产品运行,产品修正和产品转移。产品运行包含正确性,健壮性,可用性,效率,完整性,风险性;产品修正包含可理解性,可维护性,可测量性,灵活性;产品转移包含互运行性,可重用性。可移植性。其中(选择表述)正确性:在给定环境下系统能正确完
25、成预期功能的程度。健壮性:在发生故障,输入无效或操作等意外情况下,系统能做出适当相应的程度。可用性:系统在完成预定应该完成的功能时使人满意的概率(程度)可理解性:理解和使用系统的难易程度可维护性:在软件中纠正一个缺陷或完成一次更改的难易程度可测量性:对软件进行测试的难易程度可重用性:软件在其他应用中被再次使用的概率(程度)可移植性:软件从一个环境转移到另一环境的难易程度。评价软件质量的原则强调软件总体质量;软件质量管理贯穿软件生产的各个阶段;制定软件质量标准,定量评价软件质量,使软件质量评价走评测结合,以测为主的科学轨道。过程质量软件能力成熟度模型CMM(Capability Maturity
26、 Model).国际标准过程模型 ISO 9000软件过程改进和能力决断SPICE ( Software Process Improvement and Capability dEtermination)。商业过程中有关的质量内容培训、成品制作、宣传、发布日起、客户、风险、成本、业务等。项目质量管理现代项目管理的质量管理是为了保障项目产出物能够满足客户及项目各相关利益者的需求所开展的对于项目产出物质量和项目工作质量的全面管理。项目质量管理的内容包括项目质量方针的确定,项目质量目标和质量责任的制定,项目质量体系的建设,项目质量以及为实现项目质量目标所开展的项目质量计划,项目质量控制和项目质量保障
27、等一系列的质量管理工作。项目质量管理与产品质量管理方法有很大差别,但项目质量管理与产品质量管理都认为下述理念是很重要的:质量管理的目地就是客户满意质量是干出来的,不是检验出来的质量管理的责任是全体员工的质量管理的关键是不断改进和提高。(2)软件质量的度量软件度量软件度量是对软件开发、过程和产品进行数据定义、收集于分析的持续定量化过程,目的在于理解、预测、评估、控制和改善。软件度量可以改进软件开发过程,促进项目成功,提供高质量的软件产品。软件度量包括客户满意度度量,质量度量,项目度量,品牌度量、资产度量、知识产权价值度量等。度量的取向是依据事实、数据、原理和法则,方法是测试、审核、调查,工具是统
28、计、图表、模型,标准是量化的指标。在软件开发中,不同的主体拥有不同的度量内容角色/主体度量内容经营者开发组织客户满意度,收益,风险,绩效,产品开发周期,发布缺陷级别,日程与作业量估算精度,复用有效性,计划与实际成本管理者项目组不同阶段的成本,不同开发小组成员的生产率,规模,工作量分配,需求状况,测试用例合格率,主要里程碑之间的估算期间与实际期间,估算与实际员工的水平,缺陷状况,审查发现的缺陷数目,计划和完成任务的数目等作业者开发人员工作量分配,代码与设计的复杂性,单体测试覆盖代码,单体测试检出缺陷数目等软件度量分类软件度量包括三个维度,即项目度量,产品度量和过程度量。度量维度侧重点内容项目度量
29、理解和控制当前项目的情况和状态,针对具体项目规模,成本,工作量,进度,生产力,风险,客户满意度等产品度量理解和控制当前产品的质量状况,用于对产品质量的预测和控制以质量为中心,包括功能性,可靠性,易用性,效率性,可维护性,可移植性等过程度量理解和控制当前的情况和状态,包含对过程的改善和未来过程的能力预测,在整个组织内范围内进行成熟度,管理,生命周期,生产率,缺陷植入等软件度量过程制定过程计划实施过程改善过程(3)软件质量管理质量管理是在质量方面指挥和控制组织协调的活动,包括制定质量方针,质量目标和质量策划,通过质量计划的编制、质量控制和质量保证等活动提高软件质量。项目质量计划软件项目质量计划是为
30、了满足用户的期望,降低不良质量的成本和在软件开发全过程中实施质量保证。企业最高层亲自抓质量体系,质量方针要反映对顾客的承诺和文件化的操作规程。软件项目质量计划就是要将与项目有关的质量标准标识出来,提出如何达到这些质量标准和要求的设想。软件项目质量计划的编写依据包括项目质量标准,项目阶段划分,项目质量范围,项目质量计划内容,项目质量计划其他方面要求等。软件质量标准标准主要包括技术标准和业务标准两类。技术标准包括方面,一是软件企业的软件行业技术标准,例如,知识体系指南、过程标准、建模标准、质量管理标准、程序语言标准、数据库标准。另一是软件开发服务对象所在的行业技术标准,例如,安全保密标准、技术性能
31、标准。标准有助于减少无效讨论,有助于不同产品之间的兼容与衔接。软件质量计划内容包括:计划目标;参考文献;管理;文档;标准和约定;复审、内审或评审 配置管理;测试;问题报告和改正活动;工具、技术和方法;媒体的控制;供应商的控制;记录、收集、维护和保密;培训;风险管理。软件质量计划的制定原则始终以客户的需求为焦点;质量计划应得到管理层的认可和承诺;选择合适的质量标准;持续的质量改进等。制定质量计划的方法和规程产品介绍:说明产品、产品的意向市场及对产品性质的预期。软件计划:包括产品确切的发布日期、产品责任及产品的销售和售后服务计划。过程描述:产品的开发和管理中应该采用开发和售后服务质量过程质量目标:包括鉴定和验证产品的关键质量属性。风险和风险管理:说明影响产品质量的主要风险和这些风险的应对措施(科学研究课题时间延长举例)。质量计划实例见P57质量计划实施体系
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1