《第7章_软件工程项目的团队建设、风险管理及质量管理课件.pptx》由会员分享,可在线阅读,更多相关《第7章_软件工程项目的团队建设、风险管理及质量管理课件.pptx(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程经济学第7章 软件工程项目的团队建设、风险管理及质量管理 Software Engineering Economics叶 小 莺软件工程项目的风险管理软件工程项目的团队建设软件工程项目的质量管理7.17.2主要内容C O N T E N T S7.37.1 软件工程项目的团队建设形成阶段震荡阶段规范阶段执行阶段终止阶段 Bruce Tuckman(布鲁斯.塔克曼)在1965年发表了团队建设4阶段模型,并在20世纪70年代进行了修改,增加了1个阶段,即塔克曼模型:7.1.1 软件工程项目团队的特点软件工程项目团队的目的性软件工程项目团队的临时性软件工程项目团队的凝聚力软件工程项目团队的合
2、作性7.1.2 软件工程项目团队的作用能满足团队成员的心理需求能使个人得到较快的进步能提高决策质量能更有效的实现目标7.1.3 团队成员的选择对于一个软件工程项目来说,参与项目的角色通常有:需求分析人员开发经理开发工程师设计师测试经理测试工程师质量管理人员系统分析师集成工程师项目经理7.1.3 软件工程项目团队成员的选择确保软件工程项目目标的实现,领导项目团队按时并优质地完成全部项目相关工作。保持与客户的沟通,了解项目的整体需求,能即时反馈阶段性成果,并对客户提出的合理需求进行相应的变更。制定软件工程项目开发计划文档,量化各阶段任务,并合理分配给相应的团队人员。跟踪软件工程项目的进度,协调项目
3、组团队成员之间的合作。监督软件工程项目进展中各阶段的文档,保持与质量保证人员的沟通,保证文档的完整与规范性。软件工程项目经理的基本职责有:7.1.3 软件工程项目团队成员的选择如果项目开发过程中有需求的变更,项目经理需要向客户了解需求,在无法判断新的需求对项目的整体影响的情况下,需同项目组团队成员商量,最后决定是否接受客户的需求,再跟客户协商;在确定要变更需求的情况下,需产生需求变更文档,更改开发计划,同步通知质量保证人员。项目提交测试后,项目经理需了解测试结果,根据测试的bug严重程度更改开发计划。及时向上级汇报项目的进展情况、需求变更等所有项目相关信息。软件工程项目完成的时候项目经理需要做
4、项目总结,产生软件工程项目总结文档。软件工程项目经理的基本职责有:7.1.3 软件工程项目团队成员的选择 软件工程项目经理的业务素质是各种能力的综合体现,主要包括必要能力、核心能力与增效能力三个方面。其中必要能力包括专业技术能力、决策能力、指挥能力与组织能力;核心能力是指创新能力;增效能力主要包括控制能力与协调能力。这些能力都是软件工程项目经理有效行使岗位职责,充分发挥其领导作用应具备的条件。7.1.3 团队成员的选择01OPTION02OPTION03OPTION根据岗位确定项目组成员,保证人员配备的效率项目组成员的配备要以软件工程项目目标所服务根据项目的需要适时的加入或者退出相关项目组成员
5、在对软件工程项目进行成员配备时,通常需要遵循以下原则:7.1.4 软件工程项目团队的建设7.1.4 软件工程项目团队的建设7.1.4 软件工程项目团队的建设应该尽量使各阶段活动的全职软件人员人数为整数当项目规模较大的时候,编程或者测试阶段可以将程序员再分成若干个小组,但每个小组(基本单元)原则上不要超过7人尽量注意每个全职软件人员在完成项目任务时在工作时间上的连续性问题,不宜将项目团队人员进行频繁的调动与更换工作任务在确定软件工程项目各阶段的人数时,需要注意:7.1.4 软件工程项目团队的建设7.1.4 软件工程项目团队的建设7.1.4 软件工程项目团队的建设7.1.4 软件工程项目团队的建设
6、软件工程项目的风险管理软件工程项目的团队建设软件工程项目的质量管理7.17.2主要内容C O N T E N T S7.37.2.1 软件工程项目风险概述软件工程项目风险的特点:普遍性与客观性偶然性和必然性不确定性多样性与层次性7.2.1 软件工程项目风险概述 软件工程项目进度过于紧迫;软件工程项目预算太紧张;软件性能和可靠性要求过高;开发人员缺乏相关项目经验,软件工程项目的组织结构不适宜;软件工程项目期望过高脱离现实;没有充分理解合同的条款;软件规模估计不太恰当;软件工程项目风险分析与管理不当;项目管理经验缺乏;缺乏政策性支持;对必要的硬件不熟悉;项目需求的不断变动;软件开发计划设计不当;软
7、件开发过程模型选择不适用;缺乏自动化软件工具的支持等。导致软件工程项目风险的原因主要有:7.2.1 软件工程项目风险概述按照风险的来源通常可分为外部风险和内部风险按照风险的影响范围可分为整体风险和局部风险按照风险的状态可分为静态风险和动态风险按照风险的影响期限可分为短期风险和长期风险根据风险的内容可分为技术风险、进度风险、费用风险、管理风险、已知风险、不可预测风险、可预测风险、社会环境风险、商业风险风险的分类:7.2.1 软件工程项目风险概述01在整个软件工程项目开发中要规划项目风险管理,尽可能的规避风险02指定软件工程项目的风险管理者,全程监控各项风险因素03建立软件工程项目的风险清单和风险
8、管理计划04建立良好的项目风险反馈渠道一个良好的软件工程项目风险管理策略通常包括以下内容:7.2.1 软件工程项目风险概述STEP 01STEP 03STEP 02STEP 04风险管理的四个过程:风险识别风险分析风险规划风险控制7.2.2 软件工程项目的风险识别 风险识别,又称为风险辨识,是指试图通过系统化的方法来寻找可能影响软件工程项目的风险以及确认项目风险特性的过程。对软件工程项目进行风险管理首要的问题就是风险识别,需要查明软件工程项目中的不确定因素以及可能带来的后果,以便于明确对软件工程项目构成威胁的各种因素,进而制定规避和降低风险的计划与策略。7.2.2 软件工程项目的风险识别7.2
9、.2 软件工程项目的风险识别识别并确定软件工程项目存在的潜在危险识别引起这些项目风险的主要影响因素识别软件工程项目风险可能引起的后果风险识别主要包括:7.2.2 软件工程项目的风险识别 (1)头脑风暴法(brainstorming),又称为智力激励法、BS法。它是由美国创造学家A.F.奥斯本于1939年首次提出,1953年正式发表的一种激发创造性思维的方法。头脑风暴法是一种通过小型会议的组织形式,让所有参与者在自由愉快、畅所欲言的气氛中,用以自由交换想法或点子,并以此激发与会者创意及灵感,使各种设想在相互碰撞中激起脑海的创造性“风暴”。7.2.2 软件工程项目的风险识别 (2)德尔菲法(Del
10、phi Method),又称为专家调查法或专家意见法,德尔菲技术是Rand公司在20世纪60年代后期为美国空军所开发的,该方法是以匿名方式,轮番征询专家意见,最终得出预测结果的一种集体经验判断法。 主要优点是:匿名性,反馈性,可以有效避免面对面商议中可能出现的各种偏见,调查结果的收敛性及其简便实用性。 主要缺点是:调查结果通常受专家认识及知识结构的制约;专家思维的局限性在一定程度上会影响到调查的实际效果;在选择专家人选等技术处理问题上,尚缺乏有效的或是较为统一的衡量标准。7.2.2 软件工程项目的风险识别 (3)访谈法集 体 访 谈 法个 别 访 谈 法7.2.2 软件工程项目的风险识别(4)
11、情景分析法,是指根据软件工程项目发展趋势的多样性,通过对系统内外相关的问题进行系统分析,设计出多种可能的未来前景,然后用类似于撰写电影剧本的手法,对系统发展态势做出自始至终的情景与画面的描述。当一个软件工程项目持续的时间较长时,通常需要考虑各种技术、经济与社会因素的影响,对此类项目进行风险识别就可选用情景分析法。7.2.2 软件工程项目的风险识别(5)风险条目检查表,是一种最常用也是比较简单的风险识别方法,是利用检查表作为风险识别的工具,通常使用一组提问来帮助管理者了解软件工程项目在各方面有哪些风险。软件工程项目风险条目检查表通常会根据软件工程项目的风险要素来进行编写,主要涉及软件产品的规模风
12、险、软件工程项目需求风险、软件技术风险因素及其管理风险等。7.2.2 软件工程项目的风险识别 (6) SWOT技术,是综合运用软件工程项目的优势、劣势、机会和威胁四个方面,从多个视角对软件工程项目的风险进行识别的方法。 除了以上六种风险识别方法外,因果图法、系统流程图法、风险树分析法、幕景分析法等方法都可以运用到软件项目的风险识别中。7.2.2 软件工程项目的风险识别已识别出来的项目风险可能潜在的软件工程项目风险软件工程项目风险的征兆 在完成风险识别后要把结果整理成风险登记册,为后面的风险分析与风险管理做准备。风险识别的结果主要有:7.2.2 软件工程项目的风险识别 针对整理出的项目风险,需要
13、根据风险点列出相应的风险识别表(如表7-3中的模板);然后根据风险事件对风险进行分类,分类主要是为了将风险按分类方法的要求来落实项目中具体工作阶段,便于进行风险的分析、跟踪与控制;再将风险将要发生的症状来描述风险的触发点;最后根据风险识别阶段的结果来提出项目各阶段相关工作的改进要求。7.2.3 软件工程项目的风险评估分析 风险评估分析主要是对软件工程项目的单个风险进行评估,而非风险识别阶段针对项目整体。风险评估分析是指对识别出的风险做进一步分析,对风险发生的概率、风险影响范围、风险后果的严重程度以及对风险发生时间进行估计与评价。7.2.3 软件工程项目的风险评估分析(1)定性风险分析的方法 风
14、险的概率是指风险发生的可能性,风险存在的概率通常分为五个等级,详如表7-4所示。风险后果是指风险一旦发生对软件工程项目目标所产生的影响。风险的概率和风险后果都是针对某一具体风险事件,而非整个软件工程项目。用这个两个因素来进行风险分析有助于识别需要管理的风险事件。7.2.3 软件工程项目的风险评估分析(1)定性风险分析的方法 风险的影响程度通常受风险影响的范围、风险的性质以及持续时间的制约。其中风险影响的范围主要包括严重程度、分布情况以及变动的幅度;风险的性质是指当风险发生时可能产生的各种问题。风险后果可根据风险影响的程度分为表7-5所示的4个等级。7.2.3 软件工程项目的风险评估分析(1)定
15、性风险分析的方法 将表7-4中的风险发生概率等级和表7-5中的风险后果影响等级编制为矩阵,并赋予一定的加权值可得风险评价指数矩阵,如表7-6所示的某项目风险发生概率。7.2.3 软件工程项目的风险评估分析(2)前10位首要风险事件的跟踪 在软件工程项目开发过程中,需要对各个风险事件进行风险指数的评定以及定期跟踪风险指数在前10位的风险事件。并与投资方、用户一起定期审查风险来源情况,风险指数排名变化情况,风险控制的进展情况等,进行实施跟进与总结。(3)风险数据的质量分析 风险数据的质量分析主要是评价与分析有关风险的数据对风险管理与控制有用程度的一种方式,主要涉及风险数据的的可靠性、精确性与完整性
16、以及检查对风险事件的理解程度。7.2.3 软件工程项目的风险评估分析(4)更新风险登记册 进行定性风险分析的结果主要是进行风险登记册的更新。风险登记册通常是在风险识别过程中形成的,需要在项目进行的同时根据定性风险分析的相关信息进行更新。更新的内容主要有:按照风险指数由低至高进行排序,列出风险优先级;列出需要近期尽快采取应对措施的风险清单;理清需要进一步分析与应对的风险清单;实时关注风险趋势。7.2.3 软件工程项目的风险评估分析 在进行了定性风险分析后,为了进一步了解软件工程项目风险发生的可能性究竟有多大,以及后果的严重性等,就需要对项目风险进行定量分析。定量风险分析主要有敏感性分析、概率分析
17、、决策树分析等技术。7.2.3 软件工程项目的风险评估分析 (1)敏感性分析:主要是把其他不确定因素保持在基准值的条件下,考察软件工程项目的每个要素的不确定性对项目目标产生影响的程度。如当软件工程项目成本发生变化时,会导致该项目的绩效发生怎样的变化。敏感性分析可以掌握在软件工程项目经济分析中由于使用某些不可靠的数据或某些参数值的错误估算,而可能导致对投资项目价值指标的影响程度,有助于确定需要在软件工程项目决策中进行重点分析和评价的因素。7.2.3 软件工程项目的风险评估分析 (2)决策树分析 决策树分析是一种图形分析方法,可以帮助决策人员在未来结果不确定的情况下做最好行动路径的选择。预期货币值
18、是决策树分析较常用的一种计算方法。预期货币值(EMV,Expected Monetary Value)是风险事件的货币价值与风险概率的乘积。假设某IT公司准备做项目1、项目2的项目方案提交决策,则可以做如图7-4所示的决策树,通过预期货币值来决策。7.2.3 软件工程项目的风险评估分析7.2.3 软件工程项目的风险评估分析 在进行软件工程项目风险分析时,要对识别的项目风险进行分类,分析风险发生的原因,确定其风险后果的影响程度,再列出可量化的风险序列清单。7.2.4 软件工程项目的风险相应规划应对负面的风险的基本策略:风险规避策略风险承担策略风险转移策略风险缓解策略7.2.4 软件工程项目的风险
19、相应规划应对正面风险的策略:风险开发策略01风险共享策略02风险承担策略04风险增强策略037.2.5 软件工程项目的风险控制 软件工程项目的风险控制主要是为了改变软件工程项目管理组织所承受的风险程度,采取相应的风险处置措施,最大限度地降低风险事件发生概率以及减小损失幅度的管理工作。 软件工程项目风险控制主要有:实施项目风险管理计划,持续进行软件工程项目风险的识别与度量,追踪软件工程项目风险发生的各种征兆,监控软件工程项目潜在的风险发展,应对与处理各种已经发生的风险事件,消除与缩小软件工程项目风险事件的后果等。7.2.5 软件工程项目的风险控制软件工程项目风险控制的主要措施有:01020304
20、05项目权变措施风险纠正措施变更申请应对措施对风险应对计划实时更新定期进行风险预警软件工程项目的风险管理软件工程项目的团队建设软件工程项目的质量管理7.17.2主要内容C O N T E N T S7.37.3 软件工程项目的质量管理 关于软件质量,CMM的定义是:一个系统、组件、过程符合特定需求的程度;一个系统、组件、过程符合客户的要求或者期望的程度。 软件质量的属性较多,如稳定性、正确性、健壮性、易用性、兼容性、安全性、容错性、可测试性、可复用性等。软件质量的要素主要从技术和商业角度两个维度来衡量,从技术角度来看,对软件整体质量影响最大的质量属性就是质量要素;从商业角度来看,客户最关心的、
21、实用性最强,最能成为卖点的质量属性就是质量要素。不同的软件,先要判定其质量要素才能给出提高其质量的具体举措,而非将所有的质量属性都一一做好。7.3.1 影响软件质量的因素7.3.2 软件质量模型(1)McCall模型 McCall质量模型将软件质量面向软件产品的运行、修正和转移三个方面的11个特性之上,如图7-6所示。7.3.2 软件质量模型(2)“FURPS”及“FURPS+”模型 惠普公司提出了一套软件质量因素的FURPS模型,主要涉及:功能性、可用性、可靠性、性能以及支持度5个功能方面的评估指标。 功能性(Functionality) 可用性(Usability) 可靠性(Reliabi
22、lity) 性能(Performance) 支持度(Supportability)7.3.2 软件质量模型 而“FURPS+”模型中的“+”除了上面的功能性因素外,还增加了一些非功能性的因素,主要是指一些辅助性的和次要的因素: 接口(interface):指强加于外部系统接口之上的约束; 实现(implementation):指资源限制、语言与工具、硬件等; 操作(operation):指对其操作设置的系统管理; 包装(packaging):指软件系统的物理外包装等; 授权(legal):指软件的许可证等。7.3.2 软件质量模型 (3)Boehm模型:主要着眼于整个软件系统的功效,主要分解成
23、可移植性、有效性以及可维护性7.3.2 软件质量模型 (4)ISO/IEC9126:国际标准组织在二十世纪九十年代发布了ISO/IEC9126国际质量标准,其质量模型主要包括6个主质量特性以及21个质量子特性7.3.3 软件质量保证的内容软件质量保证的主要工作内容有: 与软件质量保证计划直接相关的各项工作。参与软件工程项目的阶段性评审及其审计 对软件工程项目常规活动与规程的符合性进行检查 对项目的配置管理工作的检查及其审计 跟踪所发现问题的解决情况 在软件质量保证过程中收集新方法,提供过程改进的相关依据 生成软件质量审计报告7.3.3 软件质量保证的内容【案例7.1】某IT企业中标了某大型连锁酒店的信息系统建设项目,该项目包含ERP、单店管理系统、客户管理系统等子系统,该项目由项目经理李俊全权负责。李俊认为信息系统项目的质量管理重在系统的测试,进而制定了详细的软件测试计划来进行该项目的管理。在整个项目实施过程中,李俊通过定期给用户测试报告来证明项目质量的可靠性,而客户却总觉得对项目的质量不放心。试问为什么客户会对项目质量不放心?THANKS