1、广东工业大学应用数学学院第11章 组织 软件项目成功的关键是具有高素质的软件开发人员。为了成功地完成软件开发工作,项目组成员必须以一种有意义且有效地方式彼此交互和通信。组织软件开发人员的方法,取决于所承担的项目的特点,以往的组织经验以及软件开发公司负责人的看法和喜好。广东工业大学应用数学学院11.1 民主制程序员组v Weinberg在1971年首先描述了民主制程序员组的组织方式。构成民主制程序员组的基本概念是无私编程。v程序员组作为一个总体,将培养一种团队精神,坚信“每个模块都是属于整个程序组的,而不是属于某个人的”。v民主制程序员组的特点:小组成员完全平等,享有充分的民主,通过协商做出技术
2、决策。广东工业大学应用数学学院v一般来说,程序设计小组的规模应该比较小,以28名成员为宜。v民主制程序员组的主要优点:1)对发现错误抱有积极的态度,这种态度有助于更快速地发现错误,从而导致高质量地代码;2)小组成员充分民主,组内学术氛围浓厚,有利于攻克技术难关。v民主制程序员组的主要缺点:由于没有明确的权威知道开发工程的进行,组员间将缺乏必要的协调,最终可能导致工程的失败。广东工业大学应用数学学院11.2 主程序员组vBaker在1971年描述了一个典型的主程序员组:主程序员,后备程序员,编程秘书以及13名程序员。v主程序员:高级程序员与成功管理者的结合体,突出专业化和层次性。v后备程序员:技
3、术熟练且经验丰富。v编程秘书:负责完成与项目有关的全部事务性工作。广东工业大学应用数学学院11.3 现代程序员组v现代程序员组:项目经理,行政组长,技术组长和程序员。v项目经理:全面负责开发项目。v行政组长:全权负责该组的非技术事务。v技术组长:只对该小组技术工作负责。v程序员向组长汇报工作,组长向项目经理汇报工作。v当项目规模更大时可以增加中间管理层次。广东工业大学应用数学学院一流软件领导的一流软件领导的10个特征个特征v特征一:敢于设想 v特征二:敢于冒险 v特征三:多样选择v特征四:敢于尝试v特征五:强调速度v特征六:目标远大v特征七:敢于变革v特征八:反应迅速v特征九:善于管理v特征十
4、:创造文化广东工业大学应用数学学院11.4 软件项目组11.4.1 三种组织方式v民主分权式(Democratic Decentralized,DD)小组成员间的通信是平行的。v控制分权式(Controlled Decentralized,CD)子组和个人之间的通信是平行的,但也是沿着控制层的上下级之间的通信。v控制集权式(Controlled Centralized,CC)负责人和小组成员之间的通信是上下级的。广东工业大学应用数学学院11.4.2 四种组织范型v封闭式范型:按照传统的权力层次来组织项目。v随机式范型:松散地组织项目组,小组工作依靠小组成员发挥个人的主动性。v开放式范型:这种范
5、型试图以一种既具有封闭式范型的控制性,又包含随机式范型的创造性的方式来组织项目组。v同步式范型:按照对问题的自然划分,组织项目组成员各自解决一些子问题,他们之间很少有主动的通信需求。广东工业大学应用数学学院第12章 控制v12.1 风险管理v软件风险分类v风险识别v风险预测v处理风险的策略广东工业大学应用数学学院风险分析v每当新建一个程序时,总是存每当新建一个程序时,总是存在某些不确定性。在某些不确定性。用户要求是否能确切地被理解?用户要求是否能确切地被理解?在项目最后结束之前要求实现的在项目最后结束之前要求实现的功能能否建立?功能能否建立?是否存在目前仍未发现的技术难是否存在目前仍未发现的技
6、术难题?题?在项目出现严重误期时是否在项目出现严重误期时是否 会发生一些变更会发生一些变更?等等。?等等。广东工业大学应用数学学院v风险分析风险分析对于软件项目管理对于软件项目管理是是决定性的决定性的,然而现在还有许多,然而现在还有许多项目不考虑风险就着手进行。项目不考虑风险就着手进行。v所谓所谓风险分析风险分析实际上就是一系实际上就是一系列列风险管理步骤风险管理步骤,其中包括,其中包括风风险识别险识别、风险估计风险估计、风险优化风险优化、风险管理策略风险管理策略、风险解决风险解决和和风风险监督险监督。这些步骤贯穿在软件。这些步骤贯穿在软件工程过程中。工程过程中。广东工业大学应用数学学院12.
7、2 质量保证软件质量的定义vvANSI/IEEE Std 729-1983定义软件定义软件质量为质量为“与软件产品满足规定的和与软件产品满足规定的和隐含的需求的能力有关的特征或特隐含的需求的能力有关的特征或特性的全体性的全体”。vvM.J.Fisher 定义软件质量为定义软件质量为“所所有描述计算机软件优秀程度的特性有描述计算机软件优秀程度的特性的组合的组合”。广东工业大学应用数学学院质量特性及其组合,是软件开发与维护中的重要考虑因素vv为满足软件的各项精确定义的功能、为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特
8、需要相应地给出或设计一些质量特性及其组合。性及其组合。vv如果这些质量特性及其组合都能在如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品产品中得到满足,则这个软件产品质量就是高的。质量就是高的。广东工业大学应用数学学院vv软件需求是度量软件质量的基础软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。不符合需求的软件就不具备质量。vv标准定义了一组开发准则,用来指标准定义了一组开发准则,用来指导软件人员用工程化的方法来开发导软件人员用工程化的方法来开发软件软件。如果不遵守这些开发准则,。如果不遵守这些开发准则,软件质量就得不到保证。软件质量就得不到保证。vv软件质量是各种特
9、性的复杂组合。软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用它随着应用的不同而不同,随着用户提出的质量要求不同而不同。户提出的质量要求不同而不同。广东工业大学应用数学学院软件质量特性vv软件质量特性,反映了软件的本质软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要讨论一个软件的质量,问题最终要归结到定义软件的质量特性。归结到定义软件的质量特性。vv定义一个软件的质量,就等价于为定义一个软件的质量,就等价于为该软件定义一系列质量特性。该软件定义一系列质量特性。vv人们通常把影响软件质量的特性用人们通常把影响软件质量的特性用软件质量模型来描述软件质量模型来描述。广东工业
10、大学应用数学学院软件质量模型vv软件质量特性定义成软件质量特性定义成分层模型分层模型vv最基本的叫做最基本的叫做基本质量特性基本质量特性,它可,它可以由一些子质量特性定义和度量。以由一些子质量特性定义和度量。vv二次特性二次特性在必要时又可由它的一些在必要时又可由它的一些子质量特性定义和度量。子质量特性定义和度量。vv1976年年 Boehm质量模型质量模型vv1979年年 McCall质量模型质量模型vv1985年年 ISO质量模型质量模型广东工业大学应用数学学院广东工业大学应用数学学院ISO的软件质量评价模型vv按照按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质
11、量度量模型由三,软件质量度量模型由三层组成层组成vv软件质量需求评价准则软件质量需求评价准则(SQRC)vv软件质量设计评价准则软件质量设计评价准则(SQDC)vv软件质量度量评价准则软件质量度量评价准则(SQMC)vv高层和中层建立国际标准,低层可高层和中层建立国际标准,低层可由各使用单位视实际情况制定由各使用单位视实际情况制定广东工业大学应用数学学院Boehm质量模型质量模型广东工业大学应用数学学院广东工业大学应用数学学院1991年 ISO质 量 特 性 国 际 标 准 (ISO/IEC9126)vv质量特性:质量特性:功能性功能性、可靠性可靠性、可维可维护性护性、效率效率、可使用性可使用
12、性、可移植性可移植性vv推荐推荐21个子特性:适合性个子特性:适合性 准确性准确性 互用性互用性 依从性依从性 安全性安全性 成熟性成熟性 容错性容错性 可恢复性可恢复性 可理解性可理解性 易学习性易学习性 操作性操作性 时间特性时间特性 资源特性资源特性 可分析性可分析性 稳定性稳定性 可可变更性变更性 可测试性可测试性 可安装性可安装性 可替可替换性换性 适应性适应性 一致性一致性 广东工业大学应用数学学院广东工业大学应用数学学院质量保证的概念vv什么是质量保证,它是什么是质量保证,它是为保证产品为保证产品和服务充分满足消费者要求的质量和服务充分满足消费者要求的质量而进行的有计划、有组织的
13、活动而进行的有计划、有组织的活动。vv质量保证是质量保证是面向消费者的活动面向消费者的活动,是为了,是为了使产品实现用户要求的功能,站在用户使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。立场上来掌握产品质量的。vv软件的质量保证就是向用户及社会提供软件的质量保证就是向用户及社会提供满意的高质量的产品。满意的高质量的产品。广东工业大学应用数学学院v软件的质量保证活动也和一般软件的质量保证活动也和一般的质量保证活动一样,是的质量保证活动一样,是确保确保软件产品从诞生到消亡为止的软件产品从诞生到消亡为止的所有阶段的质量的活动所有阶段的质量的活动。即。即为为了确定、达到和维护需要的软了确定
14、、达到和维护需要的软件质量而进行的所有有计划、件质量而进行的所有有计划、有系统的管理活动有系统的管理活动。广东工业大学应用数学学院软件质量保证的主要任务v为了提高软件的质量和软件为了提高软件的质量和软件的生产率,软件质量保证的的生产率,软件质量保证的主要任务大致可归结为主要任务大致可归结为8点。点。广东工业大学应用数学学院1.用户要求定义v熟练掌握熟练掌握正确定义用户要求正确定义用户要求的技术的技术v熟练使用和指导他人使用熟练使用和指导他人使用定定义软件需求的支持工具义软件需求的支持工具v重视重视领导全体开发人员收集领导全体开发人员收集和积累有关用户业务领域的各和积累有关用户业务领域的各种业务
15、的资料和技术种业务的资料和技术技能技能。广东工业大学应用数学学院2.力争不重复劳动v考虑哪些考虑哪些既有软件可以复用既有软件可以复用v在开发过程中,随时在开发过程中,随时考虑所考虑所生产软件的复用性生产软件的复用性。广东工业大学应用数学学院3.掌握开发新软件的方法v在开发新软件的过程中大力使在开发新软件的过程中大力使用和推行软件工程学中所介绍用和推行软件工程学中所介绍的开发方法和工具。的开发方法和工具。使用先进的开发技术:如使用先进的开发技术:如结构结构化技术化技术、面向对象技术面向对象技术 使用数据库技术或网络化技术使用数据库技术或网络化技术 应用开发工具或环境应用开发工具或环境 改进开发过
16、程改进开发过程广东工业大学应用数学学院4.组织外部力量协作的方法v一个软件自始至终由同一个软一个软件自始至终由同一个软件开发单位来开发,也许是最件开发单位来开发,也许是最理想的。但在现实中常常难以理想的。但在现实中常常难以做到。做到。v改善对外部协作部门的开发管改善对外部协作部门的开发管理。必须理。必须明确规定明确规定进度管理进度管理、质量管理质量管理、交接检查交接检查、维护体维护体制制等各方面的要求等各方面的要求,建立建立跟踪跟踪检查检查的体制的体制。广东工业大学应用数学学院5.排除无效劳动vv最大的无效劳动就是最大的无效劳动就是因需求规格说因需求规格说明有误明有误、设计有误设计有误而造成的
17、而造成的返工返工。定量记录返工工作量定量记录返工工作量,收集和分析收集和分析返工劳动花费数据返工劳动花费数据vv较大的无效劳动是较大的无效劳动是重复劳动重复劳动,即相,即相似的软件在几个地方同时开发似的软件在几个地方同时开发vv建立互相交流、信息往来通畅、具建立互相交流、信息往来通畅、具横向交流特征的信息流通网横向交流特征的信息流通网广东工业大学应用数学学院6.发挥每个开发者的能力vv软件生产是人的智能生产活动,它软件生产是人的智能生产活动,它依赖于人的能力依赖于人的能力和和开发组织团队的开发组织团队的能力能力。vv开发者开发者必须有必须有学习各专业业务知识学习各专业业务知识、生生产技术产技术
18、和和管理技术管理技术的能动性。的能动性。vv管理者管理者或或产品服务者产品服务者要要制定技术培训计制定技术培训计划划、技术水平标准技术水平标准,以及,以及适用于将来需适用于将来需要的中长期技术培训计划要的中长期技术培训计划。广东工业大学应用数学学院7.提高软件开发的工程能力v要想生产出高质量的软件产要想生产出高质量的软件产品必须有高水平的品必须有高水平的软件工程能软件工程能力力。v在软件开发环境或软件工具在软件开发环境或软件工具箱的支持下箱的支持下,运用先进的开发运用先进的开发技术技术、工具和管理方法开发软工具和管理方法开发软件的能力件的能力。广东工业大学应用数学学院8.提高计划和管理质量能力
19、vv项目开发初期项目开发初期计划阶段的项目计划计划阶段的项目计划评价评价vv计划执行过程中及计划完成报告的计划执行过程中及计划完成报告的评价评价vv将评价、评审工作在工程实施之前将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中就列入整个开发工程的工程计划中vv提高软件开发项目管理的精确度提高软件开发项目管理的精确度广东工业大学应用数学学院软件质量保证体系vv软件的质量保证活动,是涉及各个软件的质量保证活动,是涉及各个部门的部门间的活动。部门的部门间的活动。vv例如,如果在用户处发现了软件故例如,如果在用户处发现了软件故障,障,产品服务部门产品服务部门就应听取用户的就应听取用户的意见
20、,再由意见,再由检查部门检查部门调查该产品的调查该产品的检验结果,进而还要调查软件实现检验结果,进而还要调查软件实现过程的状况,并根据情况检查设计过程的状况,并根据情况检查设计是否有误,不当之处加以改进,防是否有误,不当之处加以改进,防止再次发生问题。止再次发生问题。广东工业大学应用数学学院vv为了顺利开展以上活动,为了顺利开展以上活动,事先明确事先明确部门间的质量保证业务部门间的质量保证业务,确立部门确立部门间的联合与协作的机构间的联合与协作的机构十分重要,十分重要,这个机构就是质量保证体系这个机构就是质量保证体系。必须必须明确反馈途径明确反馈途径。必须必须明确各部门的职责明确各部门的职责。
21、必须必须确定保证系统运行的方法确定保证系统运行的方法、工具工具、有关文档资料有关文档资料,以及,以及系统系统管理的规程和标准管理的规程和标准。广东工业大学应用数学学院 必须必须明确决定是否可向下一阶段明确决定是否可向下一阶段进展的评价项目和评价准则进展的评价项目和评价准则。必须必须不断地总结系统管理的经验不断地总结系统管理的经验教训教训,能够修改系统能够修改系统。制定质量保证计划制定质量保证计划,在计划中,在计划中v 确定确定质量目标质量目标v 确定确定在每个阶段为达到总目标在每个阶段为达到总目标所应达到的要求所应达到的要求v 确定确定进度安排进度安排v 确定确定所需人力、资源和成本等所需人力
22、、资源和成本等。广东工业大学应用数学学院软件质量保证规程和技术准则vv规定规定在项目的哪个阶段进行评审及在项目的哪个阶段进行评审及如何评审如何评审;vv规定规定在项目的哪个阶段应当产生哪在项目的哪个阶段应当产生哪些报告和计划些报告和计划;vv规定规定产品各方面测试应达到的水平产品各方面测试应达到的水平。vv在在每次评审和测试中发现的错误如每次评审和测试中发现的错误如何修正何修正;广东工业大学应用数学学院v描述描述希望得到的质量度量希望得到的质量度量;v说明说明各种软件人员的职责各种软件人员的职责,规,规定为了达到质量目标他们必须定为了达到质量目标他们必须进行哪些活动。进行哪些活动。v建立建立
23、在各阶段中执行质量评价的在各阶段中执行质量评价的质质量评价和质量检查系统量评价和质量检查系统 有效运用质量信息的有效运用质量信息的质量信息质量信息系统系统,并使其运行。,并使其运行。广东工业大学应用数学学院质量保证的实施vv软件质量保证的实施需要从纵向软件质量保证的实施需要从纵向和横向两个方面展开。和横向两个方面展开。要求所有与软件生存期有关的要求所有与软件生存期有关的人员都要参加人员都要参加 要求对产品形成的全过程进行要求对产品形成的全过程进行质量管理质量管理vv这要求整个软件部门齐心协力,这要求整个软件部门齐心协力,不断完善软件的开发环境。此外不断完善软件的开发环境。此外还需要与用户共同合
24、作。还需要与用户共同合作。广东工业大学应用数学学院质量目标与度量vv为了开发高质量的软件,需要为了开发高质量的软件,需要明确明确软件的功能软件的功能,明确软件应达到什么明确软件应达到什么样的质量标准样的质量标准,即,即质量目标质量目标。vv为了达到这个目标,为了达到这个目标,在开发过程中在开发过程中的各个阶段进行检查和评价的各个阶段进行检查和评价。vv在做质量评价时,在做质量评价时,需要有对质量进需要有对质量进行度量的准则和方法行度量的准则和方法。vv需要有在软件生存期中如何使用这需要有在软件生存期中如何使用这些准则和方法的些准则和方法的质量保证步骤质量保证步骤,以,以及提高该项作业效率的及提
25、高该项作业效率的工具工具广东工业大学应用数学学院软件质量度量和保证的条件vv适应性:适应性:适应各种用户、软件类型适应各种用户、软件类型vv易学性:易学性:不需要特殊技术,易掌握不需要特殊技术,易掌握vv可靠性:可靠性:同个软件的评价结果一致同个软件的评价结果一致vv针对性:针对性:设计阶段就确立质量目标,设计阶段就确立质量目标,在各个阶段实施落实。在各个阶段实施落实。vv客观性:客观性:vv经济性:经济性:广东工业大学应用数学学院质量保证活动的实施步骤:vvTarget:以用户要求和开发方针为:以用户要求和开发方针为依据,对质量需求准则、质量设计依据,对质量需求准则、质量设计准则的各质量特性
26、设定质量目标。准则的各质量特性设定质量目标。vvPlan:设定适合于被开发软件的评:设定适合于被开发软件的评测检查项目测检查项目(质量评价准则质量评价准则)。研讨。研讨实现质量目标的方法或手段。实现质量目标的方法或手段。vvDo:制作高质量的规格说明和程序。在:制作高质量的规格说明和程序。在接受质量检查前先做自我检查。接受质量检查前先做自我检查。广东工业大学应用数学学院vvCheck:以以Plan阶段设定的质量评阶段设定的质量评价准则进行评价。价准则进行评价。计算结果用质量计算结果用质量图的形式表示图的形式表示出来。比较评价结果出来。比较评价结果的质量得分和质量目标,看其是否的质量得分和质量目
27、标,看其是否合格。合格。vvAction:对对评价发现的问题进行改评价发现的问题进行改进活动进活动,如果实现并达到了质量目,如果实现并达到了质量目标就转入下一个工程阶段。标就转入下一个工程阶段。这样重这样重复复“Plan”到到“Action”的过程的过程,直到整个开发项目完成。直到整个开发项目完成。广东工业大学应用数学学院广东工业大学应用数学学院广东工业大学应用数学学院广东工业大学应用数学学院软件的质量设计vv质量特性转换为软件的内部结构质量特性转换为软件的内部结构vv在在软件定义阶段软件定义阶段,必须定义对软件必须定义对软件的质量需求的质量需求。即确定软件的质量特。即确定软件的质量特性及必需
28、的评价准则,并定量地设性及必需的评价准则,并定量地设定其必须达到的质量水平定其必须达到的质量水平vv在以后软件开发的每一阶段结束时,在以后软件开发的每一阶段结束时,要算出评价的分数要算出评价的分数,然后与,然后与目标值目标值加以对照加以对照,以评估在这一阶段开发,以评估在这一阶段开发的软件质量是否达到要求。的软件质量是否达到要求。广东工业大学应用数学学院vv为了实现规定的质量特性,就需要为了实现规定的质量特性,就需要把这些把这些质量特性转换为软件的内部质量特性转换为软件的内部结构的特性结构的特性。vv例如,软件质量需求中的例如,软件质量需求中的“性能性能”,可以转换成软件内部结构中的构,可以转
29、换成软件内部结构中的构成元素,即成元素,即每一个程序模块和物理每一个程序模块和物理数据各自应具有的性能特性数据各自应具有的性能特性。这些这些性能特性的累积就形成外部规格中性能特性的累积就形成外部规格中的性能特性的性能特性。广东工业大学应用数学学院12.3 配置管理vv在软件建立时在软件建立时变更是不可避免的变更是不可避免的,因为在进行变更前没有仔细分析,因为在进行变更前没有仔细分析,或没有进行变更控制,或没有进行变更控制,变更加剧了变更加剧了项目中软件人员之间的混乱项目中软件人员之间的混乱。vv协调软件开发使得混乱减到最小的协调软件开发使得混乱减到最小的技术叫做配置管理技术叫做配置管理。vv配
30、置管理是一组标识、组织和控制配置管理是一组标识、组织和控制修改的活动,目的是使错误达到最修改的活动,目的是使错误达到最小并最有效地提高生产率。小并最有效地提高生产率。广东工业大学应用数学学院软件配置管理的概念vv软件配置管理,简称软件配置管理,简称SCM,是一种,是一种“保护伞保护伞”活动,它活动,它应用于整个软应用于整个软件工程过程件工程过程。vvSCM活动的目标是为了活动的目标是为了 (1)标识变更;标识变更;(2)控制变更;控制变更;(3)确保变更正确地实现;确保变更正确地实现;(4)向其他有关的人报告变更。向其他有关的人报告变更。广东工业大学应用数学学院vv在软件工程过程中产生的所有信
31、息在软件工程过程中产生的所有信息项(文档、报告、程序、表格、数项(文档、报告、程序、表格、数据)据)构成了软件配置构成了软件配置。vv软件配置是软件的具体形态在某一软件配置是软件的具体形态在某一时刻的瞬时影像。时刻的瞬时影像。vv随着软件工程过程的进展,随着软件工程过程的进展,软件配软件配置项置项(SCI)数目快速增加。系统规数目快速增加。系统规格说明可繁衍出软件项目实施计划格说明可繁衍出软件项目实施计划和软件需求规格说明。它们又依次和软件需求规格说明。它们又依次繁衍出建立信息层次的其它文档。繁衍出建立信息层次的其它文档。广东工业大学应用数学学院基线(Baseline)vv基线是软件生存期中各
32、开发阶段末基线是软件生存期中各开发阶段末尾的特定点,又称里程碑。尾的特定点,又称里程碑。vv由正式的技术评审而得到的由正式的技术评审而得到的SCI协协议和软件配置的正式文本才能成为议和软件配置的正式文本才能成为基线。基线。vv基线的基线的作用是把各阶段工作的划分作用是把各阶段工作的划分更加明确化更加明确化,以便于检验和肯定阶,以便于检验和肯定阶段成果。段成果。广东工业大学应用数学学院软件开发各阶段的基线广东工业大学应用数学学院项目数据库vv一旦一旦一个一个SCI成为基线成为基线,就把它存就把它存放到项目数据库中放到项目数据库中。vv当软件组织成员想要当软件组织成员想要对基线对基线SCI进进行修
33、改时行修改时,把它从项目数据库中复把它从项目数据库中复制到该工程师的专用工作区中制到该工程师的专用工作区中。vv例如,把一个例如,把一个名为名为B的的SCI从项目从项目数据库复制到工程师的专用工作区数据库复制到工程师的专用工作区中中。工程师在工程师在B(B的副本)上完的副本)上完成要求的变更成要求的变更,再用再用B来更新来更新B。广东工业大学应用数学学院v有些系统中把这个基线有些系统中把这个基线SCI锁锁定。定。v在变更完成、评审和批准之前,在变更完成、评审和批准之前,不许对它做任何操作。不许对它做任何操作。广东工业大学应用数学学院基线SCI和项目数据库广东工业大学应用数学学院软件配置项 SC
34、Iv软件配置管理的对象就是软件配置管理的对象就是SCI软件配置项软件配置项。系统规格说明系统规格说明 软件项目实施计划软件项目实施计划 软件需求说明软件需求说明 可执行的原型可执行的原型 初步的用户手册初步的用户手册 设计规格说明设计规格说明广东工业大学应用数学学院 源代码清单源代码清单 测试计划和过程、测试用例和测试计划和过程、测试用例和测试结果记录测试结果记录 操作和安装手册操作和安装手册 可执行程序(可执行程序模块、可执行程序(可执行程序模块、连接模块)连接模块)数据库描述(模式和文件结构、数据库描述(模式和文件结构、初始内容)初始内容)正式的用户手册正式的用户手册 维护文档(软件问题报
35、告、维维护文档(软件问题报告、维护请求、工程变更次序)护请求、工程变更次序)广东工业大学应用数学学院vv软件工程标准软件工程标准vv项目开发总结项目开发总结vv除以上所列除以上所列SCI以外,许多软件工以外,许多软件工程组织还把程组织还把配置控制之下的软件工配置控制之下的软件工具具列入其中,即列入其中,即编辑程序编辑程序、编译程编译程序序、其它其它CASE工具的特定版本工具的特定版本。因为要使用这些工具来生成文档、因为要使用这些工具来生成文档、程序和数据,如果编译程序的版本程序和数据,如果编译程序的版本不同,可能产生的结果也不同。不同,可能产生的结果也不同。广东工业大学应用数学学院配置对象vv
36、在实现在实现SCM时,把时,把SCI组织成配置组织成配置对象对象,在项目数据库中用一个,在项目数据库中用一个单一单一的名字来组织它们的名字来组织它们。vv一个配置对象有一个一个配置对象有一个名字名字和一组和一组属属性性,并通过某些联系,并通过某些联系“连接连接”到其到其它对象。它对象。vv每个对象与其它对象的联系用箭头每个对象与其它对象的联系用箭头表示。箭头指明了一种构造关系。表示。箭头指明了一种构造关系。广东工业大学应用数学学院配置对象配置对象广东工业大学应用数学学院v双向箭头则表明一种相互关系双向箭头则表明一种相互关系。如果对如果对“源代码源代码”对象作了一对象作了一个变更,软件工程师就可
37、以根个变更,软件工程师就可以根据这种相互关系确定,其它哪据这种相互关系确定,其它哪些对象(和些对象(和SCI)可能受到影响。)可能受到影响。广东工业大学应用数学学院软件配置管理的任务vv软件配置管理(软件配置管理(SCM)的任务是:)的任务是:标识单个的标识单个的SCI 标识和管理软件各种版本标识和管理软件各种版本 控制变更控制变更 审查软件配置审查软件配置 报告所有加在配置上的变更。报告所有加在配置上的变更。广东工业大学应用数学学院配置标识vv一方面随着软件生存期的向前推进,一方面随着软件生存期的向前推进,SCI的数量不断增多的数量不断增多。vv整个软件生存期的整个软件生存期的软件配置就象一
38、软件配置就象一部不断演变的电影部不断演变的电影,而某一时刻的,而某一时刻的配置就是这部电影的一个片段。配置就是这部电影的一个片段。vv为了方便为了方便对软件配置的各个片段对软件配置的各个片段(SCI)进行控制和管理进行控制和管理,不致造,不致造成混乱,首先应给它们成混乱,首先应给它们命名命名。广东工业大学应用数学学院对象类型vv基本对象基本对象:是由软件工程师在分析、是由软件工程师在分析、设计、编码和测试时所建立的设计、编码和测试时所建立的文本文本单元单元。例如,基本对象可能是需求。例如,基本对象可能是需求规格说明中的一节,一个模块的源规格说明中的一节,一个模块的源程序清单、一组用来测试一个等
39、价程序清单、一组用来测试一个等价类的测试用例。类的测试用例。vv复合对象复合对象:是基本对象或其它复合是基本对象或其它复合对象的对象的一个收集一个收集。广东工业大学应用数学学院vv对象标识:对象标识:(名字、描述、资源、实现)(名字、描述、资源、实现)vv对象的对象的名字名字明确地标识对象。明确地标识对象。vv对象对象描述描述包括:包括:SCI类型类型(如文档、(如文档、程序、数据)、程序、数据)、项目标识项目标识、变更变更和和或或版本信息版本信息。vv资源资源包括由对象包括由对象产生的产生的、处理的处理的、引用的引用的或或其它需要其它需要的的一些实体一些实体。vv基本对象的实现基本对象的实现
40、是是指向指向文本单元文本单元的的指针指针,复合对象的实现为,复合对象的实现为null。广东工业大学应用数学学院命名对象之间的联系vv对象的层次关系:对象的层次关系:一个对象可以一个对象可以是一个复合对象的一个组成部分,是一个复合对象的一个组成部分,用联系用联系标识标识。E-R diagram 1.4 data model;data model Design Specification;vv就可以建立就可以建立SCI的一个层次的一个层次。广东工业大学应用数学学院vv对象的相互关联关系:对象的相互关联关系:对象跨越对对象跨越对象层次的分支相互关联。这些交叉象层次的分支相互关联。这些交叉的结构联系表
41、达方式如下:的结构联系表达方式如下:data model data flow model;(两个复合对象之间的相互联系两个复合对象之间的相互联系)data model test case class m;(一个复合对象与一个特定的基本一个复合对象与一个特定的基本对象之间的相互联系)对象之间的相互联系)广东工业大学应用数学学院演变图v整个软件工程过程中所涉及的整个软件工程过程中所涉及的软件对象都必须加以标识。软件对象都必须加以标识。v在对象成为基线以前可能要做在对象成为基线以前可能要做多次变更,在成为基线之后也多次变更,在成为基线之后也可能需要频繁地变更。可能需要频繁地变更。v对于每一配置对象都
42、可以建立对于每一配置对象都可以建立一个演变图一个演变图,用演变图记叙对,用演变图记叙对象的象的变更历史变更历史。广东工业大学应用数学学院演变图广东工业大学应用数学学院v在某些工具中,当前保持的在某些工具中,当前保持的只只是最后版本的完全副本是最后版本的完全副本。v为了得到较早时期为了得到较早时期(文档或程序文档或程序)的版本,可以从最后版本中的版本,可以从最后版本中“提取提取”出出(由工具编目的由工具编目的)变更变更,使得使得当前配置直接可用当前配置直接可用,并使,并使得得其它版本也可用其它版本也可用。广东工业大学应用数学学院版本控制vv版本控制是版本控制是SCM的基础,它管理并的基础,它管理
43、并保护开发者的软件资源。保护开发者的软件资源。vv版本控制管理在软件工程过程中建版本控制管理在软件工程过程中建立起立起配置对象的不同版本配置对象的不同版本。vv版本管理可以把版本管理可以把一些属性结合到各一些属性结合到各个软件版本个软件版本上。上。vv通过通过描述所希望的属性集合描述所希望的属性集合来来确定确定(或(或构造构造)所想要的配置所想要的配置。vv使用使用演变图演变图来表示系统的不同版本。来表示系统的不同版本。广东工业大学应用数学学院广东工业大学应用数学学院vv图中的各个结点都是图中的各个结点都是聚合对象聚合对象,是,是一个一个完全的软件版本完全的软件版本。vv软件的每一版本都是软件
44、的每一版本都是SCI(源代码、文(源代码、文档、数据)档、数据)的一个收集的一个收集,且各个版本都,且各个版本都可能由不同的变种组成。可能由不同的变种组成。vv例如,一个简单的程序版本由例如,一个简单的程序版本由1、2、3、4和和5等部件组成。其中等部件组成。其中部件部件4在软件在软件使用使用彩色显示器彩色显示器时使用,时使用,部件部件5在软件在软件使用单使用单色显示器色显示器时使用。因此,可以定义版本时使用。因此,可以定义版本的两个变种。的两个变种。广东工业大学应用数学学院版本管理的主要任务v集中管理档案,安全授权机制集中管理档案,安全授权机制:版本管理的操作版本管理的操作将开发组的档案集将
45、开发组的档案集中地存放在服务器上中地存放在服务器上,经系统管理经系统管理员授权给各个用户员授权给各个用户。用户通过登入(用户通过登入(check in)和检出)和检出(check out)的方式访问服务器上)的方式访问服务器上的文件,未经授权的用户无法访问的文件,未经授权的用户无法访问服务器上的文件。服务器上的文件。广东工业大学应用数学学院广东工业大学应用数学学院v软件版本升级管理软件版本升级管理:每次登入时,在服务器上都会生每次登入时,在服务器上都会生成新的版本。成新的版本。任何版本都可以随时检出编辑,任何版本都可以随时检出编辑,同一应用的不同版本可以像树枝同一应用的不同版本可以像树枝一样向
46、上增长。一样向上增长。广东工业大学应用数学学院广东工业大学应用数学学院v加锁功能加锁功能:目的是目的是在文件更新时保护文件在文件更新时保护文件,避免不同用户更改同一文件时发避免不同用户更改同一文件时发生冲突生冲突。某一文件一旦被某一文件一旦被登入登入,锁即被锁即被解除解除,该文件可被其它用户使用。,该文件可被其它用户使用。在在更新一个文件之前锁定它更新一个文件之前锁定它,避免变更没有锁定的项目源文件。避免变更没有锁定的项目源文件。广东工业大学应用数学学院vv在文件登入和检出时,需要注意登入和在文件登入和检出时,需要注意登入和检出的使用检出的使用:当需要修改某个小缺陷时,应当需要修改某个小缺陷时
47、,应只检只检出完成工作必需的最少文件出完成工作必需的最少文件;需要对文件变更时,应登入它并需要对文件变更时,应登入它并加加锁锁,保留对每个变更的记录保留对每个变更的记录;应避免长时间地锁定文件。如果需应避免长时间地锁定文件。如果需要长时间工作于某个文件,最好能要长时间工作于某个文件,最好能创创建一个分支建一个分支,并在分支上做工作。,并在分支上做工作。广东工业大学应用数学学院 如果需要做较大的变更,可有两如果需要做较大的变更,可有两种选择:种选择:a.将需要的所有文件检出并将需要的所有文件检出并加锁,然后正常处理加锁,然后正常处理;b.为需要修改的所有分支创为需要修改的所有分支创建分支,把变更
48、与主干建分支,把变更与主干“脱机脱机”,然后把结果合并回去。,然后把结果合并回去。广东工业大学应用数学学院变更控制vv软件生存期内全部的软件配置是软软件生存期内全部的软件配置是软件产品的真正代表件产品的真正代表,必须使其保持,必须使其保持精确精确。vv软件工程过程中软件工程过程中某一阶段的变更某一阶段的变更,均要均要引起软件配置的变更引起软件配置的变更,这种变,这种变更必须严格加以更必须严格加以控制控制和和管理管理,保持,保持修改信息。修改信息。vv变更控制包括变更控制包括建立控制点建立控制点和和建立报建立报告与审查制度告与审查制度。广东工业大学应用数学学院变更控制变更控制过程过程广东工业大学
49、应用数学学院广东工业大学应用数学学院软件变更有两类不同情况:vv为改正小错误需要的变更为改正小错误需要的变更。它是必。它是必须进行的,通常不需要从管理角度须进行的,通常不需要从管理角度对这类变更进行审查和批准。但是,对这类变更进行审查和批准。但是,如果发现错误的阶段在造成错误的如果发现错误的阶段在造成错误的阶段的后面,例如在实现阶段发现阶段的后面,例如在实现阶段发现了设计错误,则必须遵照标准的变了设计错误,则必须遵照标准的变更控制过程,把这个变更正式记入更控制过程,把这个变更正式记入文档,把所有受这个变更影响的文文档,把所有受这个变更影响的文档都做相应的修改。档都做相应的修改。广东工业大学应用
50、数学学院vv为了增加或者删掉某些功能、或者为了增加或者删掉某些功能、或者为了改变完成某个功能的方法而需为了改变完成某个功能的方法而需要的变更要的变更。这类变更必须经过某种。这类变更必须经过某种正式的变更评价过程,以估计变更正式的变更评价过程,以估计变更需要的成本和它对软件系统其它部需要的成本和它对软件系统其它部分的影响。分的影响。如果变更的代价比较小且对软如果变更的代价比较小且对软件系统其它部分没有影响,或影件系统其它部分没有影响,或影响很小,通常应批准这个变更。响很小,通常应批准这个变更。广东工业大学应用数学学院 如果变更的代价比较高,或者如果变更的代价比较高,或者影响比较大,则必须权衡利弊