




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安交通大学 刘海岩1西安交通大学西安交通大学刘海岩刘海岩西安交通大学 刘海岩21. 1. 软件工程软件工程实践者的研究方法实践者的研究方法 Roger S.Pressman ( (第第6 6版)版) 机械工业出版社机械工业出版社2. 2. 软件工程(第软件工程(第8 8版)版) Ian Sommerville 机械工业出版社机械工业出版社 西安交通大学 刘海岩3 2008年年5月月14日日-16日在德国小镇日在德国小镇Garmisch,举办了,举办了软件工程四十周年纪念会议。软件工程四十周年纪念会议。 四十年里,计算环境发生了很大的变化,简单的字四十年里,计算环境发生了很大的变化,简单的字符
2、终端演变为互联网的符终端演变为互联网的云计算云计算(Cloud Computing););开发方式也从个人英雄主义发展到集体兵团作战。开发方式也从个人英雄主义发展到集体兵团作战。 近年来近年来SOA的出现和实施,以及敏捷方法论的普及的出现和实施,以及敏捷方法论的普及与实践为软件工程的发展开辟了全新的方向。当年出席与实践为软件工程的发展开辟了全新的方向。当年出席会议的会议的Peter Naur、Brian Randell等关键人物依然健在,等关键人物依然健在,表明软件工程还很年轻,需要继续探索和尝试。表明软件工程还很年轻,需要继续探索和尝试。 西安交通大学 刘海岩4l软件工程与软件过程软件工程与
3、软件过程l需求工程需求工程l软件设计软件设计l软件测试软件测试l软件维护与进化软件维护与进化l软件开发方法软件开发方法l软件项目管理软件项目管理西安交通大学 刘海岩5 2004年,由年,由IEEE-CS对软件工程的内容作出进一步的对软件工程的内容作出进一步的修改,出版了修改,出版了SWEBOK(Software Engineering Body of Knowledge,软件工程知识体系)指南,该体系被划分为,软件工程知识体系)指南,该体系被划分为10个知识域:个知识域:l软件需求软件需求:需求工程过程、需求获取、需求分析、需求规:需求工程过程、需求获取、需求分析、需求规格说明、需求验证、需求
4、管理。格说明、需求验证、需求管理。l软件设计软件设计:基本概念、关键问题、软件构成与体系结构、:基本概念、关键问题、软件构成与体系结构、质量分析与评价、软件设计符号、策略与方法。质量分析与评价、软件设计符号、策略与方法。l软件构造软件构造:降低复杂性、预知多样性、结构化验证、使用:降低复杂性、预知多样性、结构化验证、使用外部标准。外部标准。l软件测试软件测试:基本概念、测试级别、测试技术、测试相关度:基本概念、测试级别、测试技术、测试相关度量、测试过程管理。量、测试过程管理。l软件维护软件维护:基本概念、维护过程、关键问题、维护技术。:基本概念、维护过程、关键问题、维护技术。西安交通大学 刘海
5、岩6l软件配置管理软件配置管理:配置过程管理、配置识别、配置控制、:配置过程管理、配置识别、配置控制、配置状态报告、配置审计、软件发布管理与交付。配置状态报告、配置审计、软件发布管理与交付。l软件工程管理软件工程管理:组织管理、过程:组织管理、过程/项目管理、软件工程项目管理、软件工程度量。度量。l软件工程过程软件工程过程:基本概念、过程基础实施、过程度量、:基本概念、过程基础实施、过程度量、过程定义、定性分析、过程实施与变更。过程定义、定性分析、过程实施与变更。l软件工程工具与方法软件工程工具与方法:软件工程工具、软件开发方法。:软件工程工具、软件开发方法。l软件质量软件质量:软件质量概念、
6、:软件质量概念、SQA与与V&V的目的与计划、的目的与计划、 SQA与与V&V的活动、适用于的活动、适用于SQA与与V&V的度量。的度量。西安交通大学 刘海岩7l敏捷方法(敏捷方法(Agile)l基于基于MDA的开发的开发l基于复用的开发基于复用的开发l基于组件的开发基于组件的开发l面向服务的软件开发(面向服务的软件开发(SOA,SaaS)l面向方面的软件开发面向方面的软件开发lWeb工程工程西安交通大学 刘海岩81.1.笔试;笔试;2.2.提交作业文档:提交作业文档: 针对软件工程新兴技术及高级课题中的某个专针对软件工程新兴技术及高级课题中的某个专题写出一篇论文或学习
7、心得。题写出一篇论文或学习心得。论文要求论文要求: (1)必须按一般论文的格式并列出参考文献;)必须按一般论文的格式并列出参考文献; (2)可做成)可做成PPt在课堂上交流(分值较高);在课堂上交流(分值较高); (3)学期末将学期末将文章及文章及PPt发送到我的信箱中:发送到我的信箱中: 文件名为:作者名论文题目文件名为:作者名论文题目西安交通大学 刘海岩9l软件工程产生的背景软件工程产生的背景l软件工程定义软件工程定义l过程框架、过程框架、CMMI、PSP与与TSPl软件过程模型软件过程模型l统一过程统一过程RUPl软件工程方法软件工程方法l工具工具西安交通大学 刘海岩10 60年代中期,
8、随着硬件技术的发展,软件应用范围年代中期,随着硬件技术的发展,软件应用范围的扩展,软件越来越大型化、复杂化,产生了上万行的的扩展,软件越来越大型化、复杂化,产生了上万行的源程序。源程序。 当发现错误时需要对这些程序进行修改;当发现错误时需要对这些程序进行修改; 当用户需求发生变化时需要修改;当用户需求发生变化时需要修改; 当硬件环境更新时需要修改。当硬件环境更新时需要修改。 1968年年10月,北大西洋公约组织(月,北大西洋公约组织(NATO)的科学)的科学技术委员会讨论如何摆脱软件危机问题:技术委员会讨论如何摆脱软件危机问题: 将大型软件开发中普遍存在的费用高、开发过程不将大型软件开发中普遍
9、存在的费用高、开发过程不易控制、工作量估计困难、软件质量低、软件项目失败易控制、工作量估计困难、软件质量低、软件项目失败率高以及软件维护成本和难度大等现象,归结为率高以及软件维护成本和难度大等现象,归结为“软件软件危机危机”。西安交通大学 刘海岩11 为了克服软件危机,科学家们从其他产业为了克服软件危机,科学家们从其他产业(如机械制造、建筑等)的工程化生产得到启(如机械制造、建筑等)的工程化生产得到启示,在该会上提出了示,在该会上提出了“软件工程软件工程”的概念,标的概念,标志着一个新学科的开始。志着一个新学科的开始。 克服软件危机的努力:克服软件危机的努力: (1)进行软件项目管理:)进行软
10、件项目管理: 软件度量、项目估算、进度控制、人员组软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。织、配置管理、项目计划等。 (2)软件研发技术的研究)软件研发技术的研究 软件研发方法学、软件工具和软件工程环软件研发方法学、软件工具和软件工程环境。境。 这也是软件工程包含的内容。这也是软件工程包含的内容。西安交通大学 刘海岩12 根据根据IEEE(The Institute for Electrical and Electronic engineers) 定义:定义: 软件工程软件工程是:是:(1)将系统化的、规)将系统化的、规范的、可量化的方法应用于软件的开发、范的、可量化的方
11、法应用于软件的开发、运行和维护,即将工程应用于软件。(运行和维护,即将工程应用于软件。(2)在(在(1)中所述方法的)中所述方法的研究。研究。西安交通大学 刘海岩13lRoger S.Pressman认为软件工程是一种层次化的技术认为软件工程是一种层次化的技术(见下图)。(见下图)。l软件是为人开发的,软件是由人开发的。需要软件是为人开发的,软件是由人开发的。需要过程过程规规范人的行为,需要范人的行为,需要方法方法帮助人面对复杂性,需要帮助人面对复杂性,需要工具工具来贯彻这些过程和方法。来贯彻这些过程和方法。l任何工程必须以对质量的承诺为基础。软件工程的根任何工程必须以对质量的承诺为基础。软件
12、工程的根基在于质量关注点(基在于质量关注点(quality focus)。西安交通大学 刘海岩14过程过程: 建立了一个框架,构成了软件项目管理控制的基础,建立了一个框架,构成了软件项目管理控制的基础,并建立了一个环境,以便于:并建立了一个环境,以便于:技术方法的采用、技术方法的采用、工程产品(模型、文档、数据)的产生、工程产品(模型、文档、数据)的产生、里程碑(里程碑(milestone,工作产品的目标及条件的结合,工作产品的目标及条件的结合) )的的建立、建立、质量的保证及正常变更的正确管理。质量的保证及正常变更的正确管理。方法方法:提供了建造软件在技术上:提供了建造软件在技术上“如何做如
13、何做”。 方法覆盖面:沟通、需求分析、设计、编程、测试和方法覆盖面:沟通、需求分析、设计、编程、测试和支持。支持。 工具工具: 对过程和方法提供了自动或半自动的支持。工具集对过程和方法提供了自动或半自动的支持。工具集成起来,建立一个软件开发的支持环境,称为计算机辅助成起来,建立一个软件开发的支持环境,称为计算机辅助软件工程(软件工程(CASE)。)。西安交通大学 刘海岩151、过程框架、过程框架 过程框架过程框架(Process framework)定)定义了若干框架活义了若干框架活动,为完整的软动,为完整的软件开发过程建立件开发过程建立了基础。了基础。 这些框架活这些框架活动可广泛的应用动可
14、广泛的应用于所有的软件开于所有的软件开发项目。发项目。软件过程框架软件过程框架普适性活动(普适性活动(umbrella activity) 框架活动(框架活动(framework activity)#1 软件工程活动(软件工程活动(action)#1.1 任务集任务集 . . . 软件工程活动软件工程活动#1.k 任务集任务集 工作任务工作任务工作产品工作产品质量保证点质量保证点项目里程碑项目里程碑框架活动(框架活动(framework activity)#n 软件工程活动软件工程活动#n.1 任务集任务集 . . . 软件工程活动软件工程活动#n.m 任务集任务集 工作任务工作任务工作产品工
15、作产品质量保证点质量保证点项目里程碑项目里程碑西安交通大学 刘海岩16l沟通沟通:包含了与客户之间的交流和协作,还包括需求:包含了与客户之间的交流和协作,还包括需求获取以及其他相关活动。获取以及其他相关活动。l策划策划:为后续的软件工程工作制订计划。该计划描述:为后续的软件工程工作制订计划。该计划描述了需要执行的技术任务、可能的风险、资源需求、工了需要执行的技术任务、可能的风险、资源需求、工作产品和工作进度计划。作产品和工作进度计划。l建模建模:包括分析与设计两个:包括分析与设计两个action的建模(和的建模(和/或生成或生成规格说明)。创建模型有助于理解需求、实现需求。规格说明)。创建模型
16、有助于理解需求、实现需求。l构建构建:包括编码和测试。:包括编码和测试。l部署部署:包括交付、安装、评价、反馈。:包括交付、安装、评价、反馈。 不同的应用中过程的细节可能不一样,但框架活不同的应用中过程的细节可能不一样,但框架活动是一致的。动是一致的。通用的框架活动有以下通用的框架活动有以下5个:个:西安交通大学 刘海岩17普适性(普适性(umbrella)活动一般包括:)活动一般包括:l软件项目跟踪与控制软件项目跟踪与控制l风险管理风险管理l软件质量保证软件质量保证l正式技术评审正式技术评审l度量度量l软件配置管理软件配置管理l可复用管理可复用管理l工作产品的准备和生产工作产品的准备和生产西
17、安交通大学 刘海岩18 起源于起源于CMM,被用于政府和军方评估软件承包商,被用于政府和军方评估软件承包商的标准。的标准。CMMI (Capability Maturity Model Integration)是由美国国防部与卡内基)是由美国国防部与卡内基-梅隆大学软件梅隆大学软件工程研究院(工程研究院(SEI)和美国国防工业协会共同开发和)和美国国防工业协会共同开发和研制的一套融合多学科的、可扩充的过程改进框架,研制的一套融合多学科的、可扩充的过程改进框架, 其研制的目的是利用两个或多个单一学科的模型实现其研制的目的是利用两个或多个单一学科的模型实现一个组织的集成化过程改进,该模型能广泛应用
18、于多一个组织的集成化过程改进,该模型能广泛应用于多种企业。种企业。 CMMI模型的表示方式有两种:连续模型的表示方式有两种:连续(continuous)和分级()和分级(staged)表示,或者称为连续)表示,或者称为连续版本或分级版本。版本或分级版本。 西安交通大学 刘海岩19(1)分级版本的)分级版本的CMMI成熟度等级成熟度等级过程域过程域1过程域过程域2过程域过程域n (做什么)(做什么)目标目标实施保证实施保证实施能力实施能力执行活动执行活动验证实施验证实施实践实践成熟度等级分为以下成熟度等级分为以下5级:级:对一个组织要达到的对一个组织要达到的期望状态的抽象描述期望状态的抽象描述(
19、特定目标、共性目(特定目标、共性目标)标)对达到目标的方法对达到目标的方法的描述的描述西安交通大学 刘海岩20 初始级初始级(Initial):在初始级,企业一般不具备):在初始级,企业一般不具备稳定的软件开发与维护环境。项目成功与否在很大程稳定的软件开发与维护环境。项目成功与否在很大程度上取决于是否有杰出的项目经理和经验丰富的开发度上取决于是否有杰出的项目经理和经验丰富的开发团队。此时,项目经常超出预算和不能按期完成,组团队。此时,项目经常超出预算和不能按期完成,组织的软件过程能力不可预测。织的软件过程能力不可预测。 已管理级已管理级(Managed):在可重复级,组织建立了管:在可重复级,
20、组织建立了管理软件项目的方针以及为贯彻执行这些方针的措施。理软件项目的方针以及为贯彻执行这些方针的措施。组织基于在类似项目上的经验对新项目进行策划和管组织基于在类似项目上的经验对新项目进行策划和管理。组织的软件过程能力可描述为有纪律的,并且项理。组织的软件过程能力可描述为有纪律的,并且项目过程处于项目管理系统的有效控制之下。目过程处于项目管理系统的有效控制之下。西安交通大学 刘海岩21 已定义级已定义级(Defined):在该级中,组织形成了管理):在该级中,组织形成了管理软件开发和维护活动的标准软件过程,包括软件工程过软件开发和维护活动的标准软件过程,包括软件工程过程和软件管理过程,即建立起
21、文件化的程和软件管理过程,即建立起文件化的“标准软件过标准软件过程程”。项目依据标准定义自己的软件过程进行管理和控。项目依据标准定义自己的软件过程进行管理和控制。达到了这一级,表明组织的软件过程能力制。达到了这一级,表明组织的软件过程能力“成熟成熟了了”。 已量化管理级已量化管理级(Quantitatively Managed):指使用):指使用统计和其他量化方法来控制过程。在该级,组织对软件统计和其他量化方法来控制过程。在该级,组织对软件产品和软件过程都设置定量的质量目标,并能对跨项目产品和软件过程都设置定量的质量目标,并能对跨项目的重要的过程活动的效率和质量予以度量。组织的软件的重要的过程
22、活动的效率和质量予以度量。组织的软件过程能力可描述为可预测的,软件产品具有可预测的高过程能力可描述为可预测的,软件产品具有可预测的高质量。质量。西安交通大学 刘海岩22 优化级优化级(Optimizing):该级,组织通):该级,组织通过预防缺陷、技术创新和调整过程等方式,过预防缺陷、技术创新和调整过程等方式,不断提高软件过程能力以适应业务需要。组不断提高软件过程能力以适应业务需要。组织的软件过程能力可描述为持续改善的。织的软件过程能力可描述为持续改善的。 与每个目标相关联的实践活动通过过程与每个目标相关联的实践活动通过过程域进行分类定义。域进行分类定义。 达到达到5个成熟度等级相关的关键过程
23、域个成熟度等级相关的关键过程域(KPA)和关注的焦点见下图)和关注的焦点见下图: 西安交通大学 刘海岩23配置管理、配置管理、过程和产品质量保证、过程和产品质量保证、度量与分析、度量与分析、供方合同管理、供方合同管理、项目监督和控制、项目监督和控制、项目规划、项目规划、需求管理需求管理需求开发、技术解决方案、需求开发、技术解决方案、产品集成、验证、确认、产品集成、验证、确认、组织过程焦点、组织过程定义、组织过程焦点、组织过程定义、组织培训方案、集成项目管理、组织培训方案、集成项目管理、风险管理、决策分析和决定、风险管理、决策分析和决定、组织的集成环境、集成化团队、组织的集成环境、集成化团队、集
24、成供方管理集成供方管理组织过程性能、组织过程性能、量化项目管理量化项目管理组织创新和部署、组织创新和部署、原因分析与决策原因分析与决策初始级初始级已管理级已管理级已定义级已定义级已定量管理级已定量管理级优化级优化级关注焦点:关注焦点:基本的项目管理基本的项目管理关注焦点:关注焦点:过程标准化过程标准化关注焦点:关注焦点:量化的管理量化的管理持续的过程改进持续的过程改进达到达到5个成熟度等个成熟度等级所需的级所需的KPA:西安交通大学 刘海岩24 CMMI分级模型中的分级模型中的 实施保证:制定过程改进的策略。实施保证:制定过程改进的策略。 实施能力:提供项目和(或)组织具有实现过程实施能力:提
25、供项目和(或)组织具有实现过程 改进所需要的资源。改进所需要的资源。 执行活动:包括收集、度量和分析与过程相关的执行活动:包括收集、度量和分析与过程相关的 数据。数据。 验证实施:验证过程活动和产品是否遵循规程。验证实施:验证过程活动和产品是否遵循规程。 随着某个成熟度等级的一组过程域的目标的实现,则随着某个成熟度等级的一组过程域的目标的实现,则提高了组织的过程成熟度并得到过程改进。提高了组织的过程成熟度并得到过程改进。 西安交通大学 刘海岩25(2)连续性版本的)连续性版本的CMMI结构结构 该模型不根据离散级来分类,它为每个过程域赋该模型不根据离散级来分类,它为每个过程域赋予一个予一个1-
26、6级的能力评价。将过程域为级的能力评价。将过程域为4类:过程管理、类:过程管理、项目管理、工程、支持。对不同的过程域,组织机构项目管理、工程、支持。对不同的过程域,组织机构会在不同的成熟度级别上运作,成熟度评估的结果不会在不同的成熟度级别上运作,成熟度评估的结果不是一个值,而是一组值,是一个能力概图。是一个值,而是一组值,是一个能力概图。 1 2 3 4 5项目监督和控制项目监督和控制 供方合同管理供方合同管理 风险管理风险管理 配置管理配置管理 需求管理需求管理 验证验证 确认确认 右图给出了能力概右图给出了能力概图的片段。组织可以开图的片段。组织可以开发目标能力概图和实际发目标能力概图和实
27、际能力概图。目标概图反能力概图。目标概图反映的是期望达到的过程映的是期望达到的过程域的能力级。域的能力级。 不同的组织类型有不同的组织类型有不同的过程改进需求,不同的过程改进需求,该模型更灵活。该模型更灵活。西安交通大学 刘海岩26 CMMI 与与 ISO 9001 ISO9001:国际标准化组织提出的涉及软件、硬件、材:国际标准化组织提出的涉及软件、硬件、材料、产品、服务等行业的通用标准,定义了料、产品、服务等行业的通用标准,定义了质量管理体系质量管理体系的的要求,适用范围比较广。要求,适用范围比较广。 ISO9001:2000采用采用plan-do-check-act循环,将其应用于循环,
28、将其应用于软件项目的质量管理环节。软件项目的质量管理环节。“计划计划”是为实现高质量的软件是为实现高质量的软件产品建立必须的过程目标、活动和任务。产品建立必须的过程目标、活动和任务。“实施实施”是执行软是执行软件过程。件过程。“检查检查”是监督并测量过程,以保证为质量管理所是监督并测量过程,以保证为质量管理所建立的需求均已实现。建立的需求均已实现。“行动行动”是持续的改进软件过程。是持续的改进软件过程。 ISO9001只包含两个级别的认证,即通过或没有通过。只包含两个级别的认证,即通过或没有通过。 一个软件组织打算推进质量管理或改进软件过程时,是一个软件组织打算推进质量管理或改进软件过程时,是
29、采用采用ISO 9001还是采用还是采用CMMI?按照?按照CMMI的要求进行逐级的要求进行逐级过程改进,有助于通过过程改进,有助于通过ISO9001认证。认证。西安交通大学 刘海岩27 好的软件过程需要贴近于过程的执行人员。每个好的软件过程需要贴近于过程的执行人员。每个开发人员应该有最适合他的过程,并同时能够与开发开发人员应该有最适合他的过程,并同时能够与开发队伍及整个组织的要求相吻合。队伍及整个组织的要求相吻合。 个体软件过程(个体软件过程(Personal Software Process)是一)是一种用以指导软件开发人员控制、管理、改进个人工作种用以指导软件开发人员控制、管理、改进个人
30、工作方式的方式的自我完善自我完善过程,是一个包括软件开发表格、指过程,是一个包括软件开发表格、指南和规程的结构化框架。南和规程的结构化框架。 PSP能够指导软件工程师如何保证自己的工作质量,能够指导软件工程师如何保证自己的工作质量,估算和规划自身的工作,度量和追踪个人的表现,管估算和规划自身的工作,度量和追踪个人的表现,管理自身的软件过程和产品质量。理自身的软件过程和产品质量。PSP的实施有助于组的实施有助于组织织CMMI目标的实现。目标的实现。 PSP着眼点在于软件缺陷的预防。着眼点在于软件缺陷的预防。 SEI的统计资料的统计资料表明:在应用表明:在应用PSP以后,软件系统的缺陷数减少了以后
31、,软件系统的缺陷数减少了58%,效率提高了,效率提高了20.8%。西安交通大学 刘海岩28 个体软件过程框架个体软件过程框架 一个说明完整的过程有许多脚本(一个说明完整的过程有许多脚本(script) 、表格、表格、模版和标准组成。其中过程脚本是指在过程中应该遵模版和标准组成。其中过程脚本是指在过程中应该遵守的一系列步骤。下图显示了守的一系列步骤。下图显示了PSP过程流程及主要元过程流程及主要元素:素:过程脚本过程脚本计划计划设计设计编码编码编译编译测试测试后置处理后置处理日志日志项目计划项目计划与总结表与总结表需求需求最终产品最终产品计划计划所用时间所用时间结果结果指导指导西安交通大学 刘海
32、岩29目的目的 指导开发人员进行模块程序的开发指导开发人员进行模块程序的开发入口入口条件条件问题描述;项目计划总结表;以前开发程序的实际规模和时间数问题描述;项目计划总结表;以前开发程序的实际规模和时间数据;时间日志。据;时间日志。计划计划描述程序功能;估计程序的代码行;计算开发效率的历史数据描述程序功能;估计程序的代码行;计算开发效率的历史数据(分钟(分钟/LOC);估算开发时间;预测缺陷数目;制定计划;将计);估算开发时间;预测缺陷数目;制定计划;将计划数据填入总结表;将计划阶段所花费的时间记入时间日志。划数据填入总结表;将计划阶段所花费的时间记入时间日志。设计设计进行设计;以指定的格式记
33、录设计文档;将该阶段所花费的时间进行设计;以指定的格式记录设计文档;将该阶段所花费的时间记录时间日志。记录时间日志。编码编码实现设计;将编码阶段所花费的时间记入时间日志。实现设计;将编码阶段所花费的时间记入时间日志。编译编译编译程序;改正所有发现的缺陷;将编译阶段所花费的时间记入编译程序;改正所有发现的缺陷;将编译阶段所花费的时间记入时间日志。时间日志。测试测试测试程序;改正所有发现的缺陷;将测试阶段所花费的时间记入测试程序;改正所有发现的缺陷;将测试阶段所花费的时间记入时间日志。时间日志。后置后置处理处理将实际的规模和时间数据填入项目总结表;通过大量数据的统计将实际的规模和时间数据填入项目总
34、结表;通过大量数据的统计分析确定过程的有效性;将该阶段所用的时间记入时间日志。分析确定过程的有效性;将该阶段所用的时间记入时间日志。出口出口条件条件详尽测试过的程序;设计文档;源程序清单;已填写完成的项目详尽测试过的程序;设计文档;源程序清单;已填写完成的项目计划总结表;已填写完成的时间日志。计划总结表;已填写完成的时间日志。PSP过程脚本过程脚本西安交通大学 刘海岩30 PSP进化框架共有进化框架共有4级:级: 个体度量过程(个体度量过程(Personal Measurement Process) : PSP0和和PSP0.1 个体规划过程(个体规划过程(Personal Planning
35、Process) : PSP1和和PSP1.1 个体质量管理过程(个体质量管理过程(Personal Quality Management Process) : PSP2和和PSP2.1 个体循环过程(个体循环过程(Cycle Personal Process):):PSP3 在在PSP的前面三级进化框架中,后一个版本都是前一个的前面三级进化框架中,后一个版本都是前一个版本的增强版。版本的增强版。西安交通大学 刘海岩31lPSP0目的是目的是建立个体过程基线建立个体过程基线,包括计划,开发(设计、编码、包括计划,开发(设计、编码、编译和测试)及后置处理,并编译和测试)及后置处理,并对过程中主要
36、任务和工作结果对过程中主要任务和工作结果进行度量。进行度量。lPSP1重点是重点是个体计划个体计划。lPSP2重点是重点是个体质量管理。个体质量管理。lPSP3目标是把个体开发小程序目标是把个体开发小程序所能达到的生产率和生产质量,所能达到的生产率和生产质量,延伸到大型程序,其方法是采延伸到大型程序,其方法是采用螺旋式上升过程,即用螺旋式上升过程,即迭代增迭代增量式量式开发方法。开发方法。PSP3循环开发循环开发PSP2代码复查代码复查设计评审设计评审PSP2.1设计模板设计模板PSP1程序规模估计程序规模估计测试报告测试报告PSP1.1任务规划任务规划进度计划进度计划PSP0当前软件过程当前
37、软件过程基本度量基本度量PSP0.1编码标准编码标准过程改善建议过程改善建议软件规模度量软件规模度量西安交通大学 刘海岩32 在在PSP中,从时间管理、项目规划、缺陷管理和质中,从时间管理、项目规划、缺陷管理和质量管理等几个方面,提出了达到生产无缺陷产品的策量管理等几个方面,提出了达到生产无缺陷产品的策略和方法。略和方法。 PSP规范为软件工程师提供了规范为软件工程师提供了发展个人技能的一个发展个人技能的一个阶梯式的进化框架,阶梯式的进化框架,以循序渐进的方法逐步达到开发以循序渐进的方法逐步达到开发无缺陷产品的目标。无缺陷产品的目标。 专家们认为产品的质量取决于过程的质量,而过专家们认为产品的
38、质量取决于过程的质量,而过程的质量又取决于人们的工作方式。因此为了开发出程的质量又取决于人们的工作方式。因此为了开发出更好的产品,需要更好的产品,需要改变个人的工作方式改变个人的工作方式。 PSP代表的是一种严格有序的、基于度量的软件代表的是一种严格有序的、基于度量的软件工程方法,对第一线人员产生文化冲击。未被广泛采工程方法,对第一线人员产生文化冲击。未被广泛采用的主要原因在于个人和软件开发组织的惯性。用的主要原因在于个人和软件开发组织的惯性。西安交通大学 刘海岩33 4、团队软件过程(、团队软件过程(TSP) TSP (Team Software Process)的目标是建立一个能)的目标是
39、建立一个能“自我管理自我管理”的项目团队。它定义了每个团队成员的角的项目团队。它定义了每个团队成员的角色和责任;跟踪定量项目数据(包括生产率和质量);色和责任;跟踪定量项目数据(包括生产率和质量);确定适合该项目的团队过程和执行此过程的具体策略;确定适合该项目的团队过程和执行此过程的具体策略;定义适合团队工作的定义适合团队工作的本地标准本地标准;持续评估风险并采取风;持续评估风险并采取风险避免措施;跟踪、管理和报告项目状态。险避免措施;跟踪、管理和报告项目状态。 TSP定义了以下框架活动:定义了以下框架活动: 项目启动、高层设计、实现、集成、测试、后验。项目启动、高层设计、实现、集成、测试、后
40、验。 这些活动使团队按规范的方式开发软件,同时定量这些活动使团队按规范的方式开发软件,同时定量的评测软件过程和产品,并通过后验确定改进的步骤。的评测软件过程和产品,并通过后验确定改进的步骤。 TSP使用大量的脚本和标准等来指导其团队成员的工使用大量的脚本和标准等来指导其团队成员的工作,也是一个严格的软件工程过程。作,也是一个严格的软件工程过程。西安交通大学 刘海岩34CMMI组织级能力组织级能力建立建立TSP高质量产品高质量产品生产并交付生产并交付PSP个人技能个人技能建立建立原则原则技能技能目标目标CMMI与与PSP、TSP 的关系的关系西安交通大学 刘海岩35 软件过程中定义了如下框架活动
41、:软件过程中定义了如下框架活动: 沟通、策划、建模、构建、部署沟通、策划、建模、构建、部署。 这些活动如何衔接,开发过程中采用什么样的策略,这些活动如何衔接,开发过程中采用什么样的策略,应遵守什么样的规定和制约,将这些活动及其关联(忽应遵守什么样的规定和制约,将这些活动及其关联(忽略不必要的细节)用一种模型表示出来,称为略不必要的细节)用一种模型表示出来,称为软件过程软件过程模型模型(或(或软件开发模型软件开发模型)。)。 每个模型根据应用问题的不同都对框架活动有不同每个模型根据应用问题的不同都对框架活动有不同的侧重。应用过程模型的的侧重。应用过程模型的目的目的是提高软件质量、项目的是提高软件
42、质量、项目的可管理性以及对于交付时间和项目费用的可预测性,这可管理性以及对于交付时间和项目费用的可预测性,这样把规模大、结构复杂、管理复杂的软件开发变得容易样把规模大、结构复杂、管理复杂的软件开发变得容易控制和管理。控制和管理。西安交通大学 刘海岩36 软件过程模型为软件工程工作提供了路线图,软件过程模型为软件工程工作提供了路线图,对软对软件开发人员构建系统所必需的工作提供指导件开发人员构建系统所必需的工作提供指导。 过程模型的选择基于项目和应用的性质、采用的方过程模型的选择基于项目和应用的性质、采用的方法工具以及需要的控制和交付的产品。法工具以及需要的控制和交付的产品。 几种典型的模型:几种
43、典型的模型: 瀑布模型(线性顺序模型)瀑布模型(线性顺序模型) 沟通沟通项目启动项目启动需求获取需求获取 策划策划项目估算项目估算进度计划进度计划项目跟踪项目跟踪 建模建模分析分析 设计设计 构建构建编码编码 测试测试 部署部署交付交付 支持支持反馈反馈瀑布模型瀑布模型西安交通大学 刘海岩37西安交通大学 刘海岩38特点特点: 提供了软件过程模型的基本框架(模板)。提供了软件过程模型的基本框架(模板)。 强调了每一阶段活动的严格顺序。强调了每一阶段活动的严格顺序。 质量保证观点:以经过评审确认了的阶段工质量保证观点:以经过评审确认了的阶段工 作产品(文档)驱动下一阶段的工作,便于作产品(文档)
44、驱动下一阶段的工作,便于 管理。管理。 是一种整体开发模型,程序的物理实现集中是一种整体开发模型,程序的物理实现集中 在开发阶段的后期,用户在最后才能看到自在开发阶段的后期,用户在最后才能看到自 己的产品。己的产品。 适合于用户需求明确、完整、无重大变化的适合于用户需求明确、完整、无重大变化的 软件项目开发。软件项目开发。 西安交通大学 刘海岩39 (2 2) 原型模型原型模型 在用户不能给出完整、准确的需求说明,或者开发在用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交者不能确定算法的有效性、操作系统的适应性或人机交互的形式等许多情况下,可以根据用户
45、的一组基本需求,互的形式等许多情况下,可以根据用户的一组基本需求,快速建造一个原型(可运行的软件),然后提交、评估,快速建造一个原型(可运行的软件),然后提交、评估,进一步精化(迭代)、调整原型,使其满足用户的要求,进一步精化(迭代)、调整原型,使其满足用户的要求,也使开发者对将要做的事情有更好的理解也使开发者对将要做的事情有更好的理解。西安交通大学 刘海岩40原型的分类:原型的分类: 抛弃型抛弃型:主要用于需求分析阶段,针对开:主要用于需求分析阶段,针对开发目标模糊、用户与开发者对项目都缺乏经验发目标模糊、用户与开发者对项目都缺乏经验的情况。建立原型的目的是为了搞清用户的需的情况。建立原型的
46、目的是为了搞清用户的需求,确定所期望的特性,探索各种方案的可行求,确定所期望的特性,探索各种方案的可行性。产生完整、一致、准确的需求说明。性。产生完整、一致、准确的需求说明。 实验型实验型:主要用于设计阶段,通过原型验:主要用于设计阶段,通过原型验证设计方案的可行性。原型或成为设计结果的证设计方案的可行性。原型或成为设计结果的一部分或抛弃。一部分或抛弃。 演化型演化型:用于整个开发阶段。原型经过不:用于整个开发阶段。原型经过不断扩充,演化为最终的软件系统。断扩充,演化为最终的软件系统。西安交通大学 刘海岩41存在的问题存在的问题: 为了使原型尽快的工作,没有考虑软件为了使原型尽快的工作,没有考
47、虑软件的总体质量和长期的可维护性。的总体质量和长期的可维护性。 为了演示,可能采用不合适的操作系统、为了演示,可能采用不合适的操作系统、编程语言、效率低的算法,这些不理想的选择编程语言、效率低的算法,这些不理想的选择成了系统的组成部分。成了系统的组成部分。 开发过程不便于管理。开发过程不便于管理。 有效的使用原型模式是:有效的使用原型模式是: 建造原型仅是为了定义需求,之后就被抛建造原型仅是为了定义需求,之后就被抛弃(或被部分抛弃),实际的软件在充分考虑弃(或被部分抛弃),实际的软件在充分考虑了质量和可维护性之后才被开发。了质量和可维护性之后才被开发。西安交通大学 刘海岩42 (3 3) 增量
48、模型增量模型 是一种渐进地开发逐步完善的软件版本的模型。是一种渐进地开发逐步完善的软件版本的模型。 西安交通大学 刘海岩43 特点:特点: 反复的应用瀑布模型的基本成分和原型模反复的应用瀑布模型的基本成分和原型模型的迭代特征,每一个线型过程产生一个型的迭代特征,每一个线型过程产生一个“增增量量”的发布或提交,该增量均是一个可运行的的发布或提交,该增量均是一个可运行的产品。产品。 第一个增量往往是核心产品,即满足用户第一个增量往往是核心产品,即满足用户的基本需求,提供给用户评估的平台,以便制的基本需求,提供给用户评估的平台,以便制定下一个增量计划。定下一个增量计划。西安交通大学 刘海岩44(4
49、4) 螺旋模型螺旋模型 对于复杂的大型软件对于复杂的大型软件,开发一个原型往往开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型达不到要求。螺旋模型将瀑布模型和增量模型结合起来,加入了风险分析。在该模型中,软结合起来,加入了风险分析。在该模型中,软件开发使一系列的增量发布,早期的迭代中,件开发使一系列的增量发布,早期的迭代中,发布的增量可能是一个理论模型或原型,在以发布的增量可能是一个理论模型或原型,在以后的迭代中,逐步产生更加完善的系统版本。后的迭代中,逐步产生更加完善的系统版本。每个演进过程,除了考虑风险,还要标记里程每个演进过程,除了考虑风险,还要标记里程碑。碑。 螺旋模型将开发过
50、程划分为几个螺旋周期,螺旋模型将开发过程划分为几个螺旋周期,每个周期有三到六个任务区域,见下图。每个周期有三到六个任务区域,见下图。西安交通大学 刘海岩45西安交通大学 刘海岩46螺旋模型的简单表示螺旋模型的简单表示西安交通大学 刘海岩47 螺旋的第一圈可能产生产品的规格说明,螺旋的第一圈可能产生产品的规格说明,再下面的螺旋可能用于开发一个原型系统,随再下面的螺旋可能用于开发一个原型系统,随后可能是软件的更完善的版本。每一圈还要根后可能是软件的更完善的版本。每一圈还要根据用户评估的反馈对项目计划(包括进度、费据用户评估的反馈对项目计划(包括进度、费用)进行调整。用)进行调整。 特点:特点: 适
51、合于大型系统的软件开发,随着过程的适合于大型系统的软件开发,随着过程的进展演化,开发者和用户能够更好的识别和对进展演化,开发者和用户能够更好的识别和对待每一个演化级别上的风险。待每一个演化级别上的风险。 演进的方法不一定可控,依赖于演进的方法不一定可控,依赖于相当丰富相当丰富的风险评估经验来保证成功。的风险评估经验来保证成功。西安交通大学 刘海岩48(5 5) 形式化方法模型形式化方法模型 是基于形式化语言和程序变换的模型,因是基于形式化语言和程序变换的模型,因此,也称变换模型。从软件需求形式化说明开此,也称变换模型。从软件需求形式化说明开始,经过一系列的数学变换和正确性证明,最始,经过一系列
52、的数学变换和正确性证明,最终得到系统高层的设计逻辑或低层的目标程序。终得到系统高层的设计逻辑或低层的目标程序。形式化方法使开发者应用一个严格的数学符号形式化方法使开发者应用一个严格的数学符号体系来表示、构造和验证系统,从而大大提高体系来表示、构造和验证系统,从而大大提高软件的可靠性。软件的可靠性。 模型见下图:模型见下图:西安交通大学 刘海岩49 变换模型变换模型 形式化形式化规格说明规格说明与需求比与需求比较后修正较后修正形式化开发记录形式化开发记录变换变换n变换变换2变换变换1验证验证系统需求系统需求设计逻辑或设计逻辑或目标系统目标系统西安交通大学 刘海岩50两种技术:两种技术: 基于模型
53、的方法基于模型的方法 基于模型的方法使用数学上的概念如集合、基于模型的方法使用数学上的概念如集合、关系、函数、结构等概念为系统建模。它们能展关系、函数、结构等概念为系统建模。它们能展现系统的状态以简化对某些行为的描述,即将系现系统的状态以简化对某些行为的描述,即将系统操作表达成系统状态模型的改变。基于模型的统操作表达成系统状态模型的改变。基于模型的描述语言及方法如描述语言及方法如Z、VDM( (Vienna Definition Method)、B、Petri Nets等。等。 代数方法代数方法 系统用类型操作和它们之间的联系来描述。系统用类型操作和它们之间的联系来描述。代数方法适合于对接口的
54、描述。这里接口被定义代数方法适合于对接口的描述。这里接口被定义为一组对象类或抽象数据类型的集合。为一组对象类或抽象数据类型的集合。西安交通大学 刘海岩51特点特点: 该模型迫使对系统需求的分析在软件开发的早期该模型迫使对系统需求的分析在软件开发的早期阶段完成。在这个阶段改正错误比在系统被交付之后阶段完成。在这个阶段改正错误比在系统被交付之后修改错误要经济得多。修改错误要经济得多。 形式化描述是对非形式化描述技术的补充,可以形式化描述是对非形式化描述技术的补充,可以用来精化非形式化的详细的系统需求描述。描述是精用来精化非形式化的详细的系统需求描述。描述是精确的和无二义的,避免了由于语言误解而产生
55、的一些确的和无二义的,避免了由于语言误解而产生的一些问题。形式化描述可用来描述标准。问题。形式化描述可用来描述标准。 最适合用于安全性、可靠性和保密性等性能要求最适合用于安全性、可靠性和保密性等性能要求极高的系统。极高的系统。 开发成本较高,往往不能快速开发。开发成本较高,往往不能快速开发。 需要严格的数学理论和开发环境的支持。需要严格的数学理论和开发环境的支持。 难以与用户进行沟通。难以与用户进行沟通。西安交通大学 刘海岩52 形式化过程模型的一个扩展,称为形式化过程模型的一个扩展,称为净室软件工程净室软件工程(cleanroom software engineering) )或或净室模型净
56、室模型,它除了强,它除了强调分析和设计上的严格性,以及使用基于数学的正确性证调分析和设计上的严格性,以及使用基于数学的正确性证明来对设计模型的每个元素进行形式化验证外,还强调了明来对设计模型的每个元素进行形式化验证外,还强调了统计质量控制技术。统计质量控制技术。 基本思想基本思想: 力求在分析和设计阶段就消除错误,确保正确,然后力求在分析和设计阶段就消除错误,确保正确,然后在无缺陷或在无缺陷或“洁净洁净”的状态下实现软件的制作。的状态下实现软件的制作。 关键技术关键技术: 基于统计过程控制之下的增量开发。基于统计过程控制之下的增量开发。 “ “盒盒”(封装系统或某些方面)结构设计入手(封装系统
57、或某些方面)结构设计入手 正确性验证正确性验证统计使用测试统计使用测试 基于函数的规范、设计、验证。基于函数的规范、设计、验证。 统计使用测试(按照对用例使用的统计使用测试(按照对用例使用的概率分布概率分布来确定进来确定进一步测试)和软件可靠性认证。一步测试)和软件可靠性认证。西安交通大学 刘海岩53(6)构件组装模型构件组装模型 构件(构件(component) )也称为组件,是一段实也称为组件,是一段实现一系列有确定接口的程序体,具有自己的功现一系列有确定接口的程序体,具有自己的功能和逻辑,能同其他构件组装起来协调工作。能和逻辑,能同其他构件组装起来协调工作。 该模型支持软件重用,对缩短软
58、件开发周该模型支持软件重用,对缩短软件开发周期、降低项目成本有重要的现实意义。同时,期、降低项目成本有重要的现实意义。同时,建造符合某应用领域体系结构标准的构件,可建造符合某应用领域体系结构标准的构件,可以用来搭建分布式的、跨越不同操作平台的软以用来搭建分布式的、跨越不同操作平台的软件,扩展了软件的应用前景,促进了软件标准件,扩展了软件的应用前景,促进了软件标准化、商品化的发展。化、商品化的发展。 因此,在此基础上专家们又提出了因此,在此基础上专家们又提出了“基于基于构件的软件工程构件的软件工程”( (CBSE) )。 构件组装模型的一种形式如下图所示:构件组装模型的一种形式如下图所示:西安交
59、通大学 刘海岩54 构件组装模型的构件组装模型的一种一种形式形式 该模型是软件体系结构被建立后用构件去充实。这些该模型是软件体系结构被建立后用构件去充实。这些构件可从复用库(或商品库)中获得,或者根据专门需要构件可从复用库(或商品库)中获得,或者根据专门需要而开发。整个过程可以演化地进行,面向对象方法给予技而开发。整个过程可以演化地进行,面向对象方法给予技术上的支持。术上的支持。西安交通大学 刘海岩55 RUP ( Rational Unified Process )或或UP于于1998年年6月月由由Rational公司推出。有上千家公司在使用,分布于电公司推出。有上千家公司在使用,分布于电信
60、、交通、航空、国防、制造、金融等不同的行业和应信、交通、航空、国防、制造、金融等不同的行业和应用域。用域。 RUP是一个二维的迭代结构是一个二维的迭代结构: 横轴为横轴为生命周期生命周期的四个阶段的四个阶段起始、细化、构建起始、细化、构建和产品化,各阶段结束于一个里程碑。和产品化,各阶段结束于一个里程碑。 纵轴为九个工作流(纵轴为九个工作流(RUP2000版)版)业务建模、业务建模、需求、分析设计、实施、测试、部署、配置需求、分析设计、实施、测试、部署、配置(称为核心过称为核心过程工作流)与变更管理、项目管理、环境(称为核心支程工作流)与变更管理、项目管理、环境(称为核心支持工作流)。持工作流)。 下图显示了五个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 转让建房指标协议书
- 韦博门店转让协议书
- 阳光小院合伙协议书
- 部队厂房出租协议书
- 车棚承包合同协议书
- 住宅地下室物业协议书
- 公积金委托追缴协议书
- 让学生签安全协议书
- 餐饮代理加盟协议书
- 食品生产安全协议书
- 小学高段学生数学应用意识培养的实践研究 开题报告
- GB/T 17592-2024纺织品禁用偶氮染料的测定
- GA/T 2015-2023芬太尼类药物专用智能柜通用技术规范
- 唱片行业前景分析
- 新华DCS软件2.0版使用教程-文档资料
- 中职中国历史练习卷8
- 医美整形医院渠道合作协议样本
- 《术前肠道准备》课件
- RTO蓄热焚烧系统操作规程
- CONSORT2010流程图(FlowDiagram)【模板】文档
- 篮球比赛分组循环积分表
评论
0/150
提交评论