《软件工程新技术.ppt》由会员分享,可在线阅读,更多相关《软件工程新技术.ppt(54页珍藏版)》请在优知文库上搜索。
1、1234现实世界为对象世界OOAOOPOOD5商务过程商务过程订货订货物品物品运输运输建模是为了捕捉、描述系统的核心建模是为了捕捉、描述系统的核心. Dr. James Rumbaugh计算机系统计算机系统可视化建模就是用标准的图可视化建模就是用标准的图示化方法来进行建模工作示化方法来进行建模工作什么是建模和可视化建模?什么是建模和可视化建模?6 OMT OMT方法方法把分析时收集的信息构造在三类模型中把分析时收集的信息构造在三类模型中,即,即对象模型对象模型、功能模型功能模型和和动态模型动态模型。7 对象模型对象模型8动态模型动态模型由多个状态图组成。由多个状态图组成。9 功能模型功能模型由
2、多个数据流图组成,它们指明从外部由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个输入,通过操作和内部存储,直到外部输出,这整个的数据流情况。的数据流情况。10UMLUML( Unified Modeling LanguageUnified Modeling Language)是下面是下面这些这些最好最好的建模方法中的建模方法中最好最好部分的集成:部分的集成:数据建模的概念数据建模的概念( (E-RE-R模型模型) )商务流程模型商务流程模型( (Work Flow)Work Flow)对象建模方法对象建模方法软构件建模思想软构件建模思想 UML UML是一种用可
3、视化方法对软件系统进行描述是一种用可视化方法对软件系统进行描述、实施和说明的标准语言。、实施和说明的标准语言。支持用不同实现技术进行的软件开发全过程。支持用不同实现技术进行的软件开发全过程。111213UMLUML支持用于系统开发支持用于系统开发Classesapplication partitioningBusiness ObjectsRelationshipsBusiness ProcessObjectsUse Caseslarge scale systemScenariosComponentsMicrosoftActiveX/COMMicrosoftORDBMSOracleCORBAOM
4、G14Use CaseDiagramsUse CaseDiagrams用例图用例图ScenarioDiagramsScenarioDiagrams协作图协作图StateDiagramsStateDiagrams组件图组件图ComponentDiagramsComponentDiagrams分布图分布图StateDiagramsStateDiagrams对象图对象图ScenarioDiagramsScenarioDiagrams状态图状态图Use CaseDiagramsUse CaseDiagrams时序图时序图StateDiagramsStateDiagrams类图类图活动图活动图15软件过
5、程软件过程( (Software Process)Software Process)是人们建立、维护和是人们建立、维护和进化软件产品整个过程中所有技术活动和管理活动进化软件产品整个过程中所有技术活动和管理活动的集合。的集合。从从19841984年起每年有软件过程国际研讨会年起每年有软件过程国际研讨会( (ISPW)ISPW),从从19911991年起开始召开软件过程国际会议年起开始召开软件过程国际会议( (ICSP)ICSP),每个每个国家几乎都有自己的软件过程改进网络国家几乎都有自己的软件过程改进网络( (SPIN)SPIN)。主要研究方向:软件过程分析和建模、软件过程支主要研究方向:软件过
6、程分析和建模、软件过程支持、软件过程评估和改进持、软件过程评估和改进16RUPRUP软件过程软件过程XPXP软件过程软件过程敏捷软件过程敏捷软件过程CMMCMM软件过程软件过程PSPPSP个体软件过程个体软件过程TSPTSP群组软件过程群组软件过程17Rational Unified Process(RUP)Rational Unified Process(RUP)是是RationalRational公司公司的一个软件过程产品,其初始版本为的一个软件过程产品,其初始版本为5.0,5.0,先后经历先后经历了了5.15.1、5.1.15.1.1、5.55.5等版本直到最新的等版本直到最新的Rati
7、onal Rational Unified Process 2000Unified Process 2000版本。版本。 RUP RUP将项目管理、商业建模、分析与设计等统一起将项目管理、商业建模、分析与设计等统一起来来, ,贯穿整个开发过程。贯穿整个开发过程。 RUP RUP采用采用InternetInternet技术技术, ,可以增强团队的开发效率可以增强团队的开发效率, ,并为所有成员提供最佳的软件实现方案。并为所有成员提供最佳的软件实现方案。181920Kent BeckKent Beck于于19971997年在年在Extreme Programming Extreme Program
8、ming Explained Explained Embrace Change Embrace Change中提出中提出一种高度动态的过程,它通过非常短的迭代周期来一种高度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化应对软件开发中的变化强调有效测试和演化设计强调有效测试和演化设计21Kent BeckKent Beck于于19971997年在年在Extreme Programming Extreme Programming Explained Explained Embrace Change Embrace Change中提出中提出一种高度动态的过程,它通过非常短的迭代周期来一种高
9、度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化应对软件开发中的变化强调有效测试和演化设计强调有效测试和演化设计22什么时候需要什么时候需要XPXP?需求不明确、变化快需求不明确、变化快高风险:在特定的时间内,面对一个相当难高风险:在特定的时间内,面对一个相当难开发的系统开发的系统 中小型团队(人数不超过中小型团队(人数不超过10 10 个)个) 23XP项目的状态图项目的状态图24XP的的计计划划反反馈馈循循环环25敏捷敏捷( (agility)agility)软件过程是软件过程是AoyamaAoyama在在19981998年提出年提出来的。来的。 基于时间的、并行的、分布的、演化
10、的快速软基于时间的、并行的、分布的、演化的快速软件开发过程。件开发过程。2627 8080年代,在美国国防部资助下,由卡内基梅隆大年代,在美国国防部资助下,由卡内基梅隆大学软件工程研究所(学软件工程研究所(CMU/SEICMU/SEI)建立,用于评价软建立,用于评价软件开发组织的软件过程能力成熟度。件开发组织的软件过程能力成熟度。19911991年,年,CMM1.0CMM1.0版版;1993;1993年,年,CMM 1.1CMM 1.1版版软件过程能力:遵循一个软件过程后能够得到的软件过程能力:遵循一个软件过程后能够得到的预期结果的界限范围。该指标是对能力的一种衡预期结果的界限范围。该指标是对
11、能力的一种衡量,用它可以预测一个组织在承接下一个软件项量,用它可以预测一个组织在承接下一个软件项目时,所能期望得到的最可能的结果。目时,所能期望得到的最可能的结果。28软件过程成熟度:指一个具体的软件过程被明确软件过程成熟度:指一个具体的软件过程被明确地定义、管理、评价、控制和产生实效的程度。地定义、管理、评价、控制和产生实效的程度。成熟度包含着能力的一种潜力,同时也表明了组成熟度包含着能力的一种潜力,同时也表明了组织实施软件过程的实际水平。织实施软件过程的实际水平。关键过程域:是一组相互关联的活动,实现一组关键过程域:是一组相互关联的活动,实现一组对建立过程能力至关重要的目标。规定每一个关对
12、建立过程能力至关重要的目标。规定每一个关键过程域属于某个成熟度级别。每个关键过程域键过程域属于某个成熟度级别。每个关键过程域由由SEISEI标识为一个基本结构单元域,以帮助确定机标识为一个基本结构单元域,以帮助确定机构的软件过程能力和了解要达到软件成熟度级别构的软件过程能力和了解要达到软件成熟度级别所需要的过程改进。所需要的过程改进。29初 始 级 可 重 复 级 已 管 理 级 已 定 义 级 优 化 级 成成 熟熟 度度 风风 险险 30初 始 级 可 重 复 级 已 管 理 级 已 定 义 级 优 化 级 纪律化的过程纪律化的过程标准一致的过程标准一致的过程可预测的过程可预测的过程不断改
13、进的过程不断改进的过程31初始级初始级可重复级可重复级需求管理、软件项目计划、软件项目跟踪与监控需求管理、软件项目计划、软件项目跟踪与监控软件子合同管理、软件质量保证、软件配置管理软件子合同管理、软件质量保证、软件配置管理已定义级已定义级集成软件管理、组间协调、组织过程焦点集成软件管理、组间协调、组织过程焦点组织过程定义、培训程序、软件产品工程组织过程定义、培训程序、软件产品工程同级评审同级评审可管理级可管理级定量过程管理、软件质量管理定量过程管理、软件质量管理优化级优化级技术改革管理、过程技术改革管理、过程变更管理、缺陷防范变更管理、缺陷防范32PSPPSP是一种可用于控制、管理和改进个人工
14、作方是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。格、指南和规程的结构化框架。 PSPPSP与具体的技术(程序设计语言、工具或者设与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。的软件工程任务之中。33PSPPSP保障软件产品质量的一个重要途径是提高设保障软件产品质量的一个重要途径是提高设计质量。计质量。在软件设计阶段,在软件设计阶段,PSPPSP的着眼点在于的着眼点在于软件缺陷的软件缺陷的预防预防
15、,其具体办法是强化设计结束准则,而不是,其具体办法是强化设计结束准则,而不是设计方法的选择。设计方法的选择。统计数据表明,在应用了统计数据表明,在应用了PSPPSP后,软件中总的缺后,软件中总的缺陷减少了陷减少了58.0%58.0%,在测试阶段发现的缺陷减少了,在测试阶段发现的缺陷减少了71.9%71.9%,生产效率提高了,生产效率提高了20.8%20.8%。34指导项目组中的成员如何有效地规划和管理所面指导项目组中的成员如何有效地规划和管理所面临的项目开发任务。临的项目开发任务。告诉管理人员如何指导软件开发队伍始终以最佳告诉管理人员如何指导软件开发队伍始终以最佳状态来完成工作。状态来完成工作
16、。 TSP TSP实施集体管理与自已管理自己相结合的原则,实施集体管理与自已管理自己相结合的原则,最终目的在于指导一切人员如何在最少的时间内,最终目的在于指导一切人员如何在最少的时间内,以预定的费用生产出高质量的软件产品。以预定的费用生产出高质量的软件产品。35TSPTSP比较适合规模为比较适合规模为3-203-20人的开发小组。实施人的开发小组。实施TSPTSP的先决条件有三条:的先决条件有三条: 1 1、需要有高层主管和各级经理的支持,以取得、需要有高层主管和各级经理的支持,以取得必要的资源。必要的资源。 2 2、项目组开发人员需要经过、项目组开发人员需要经过PSPPSP的培训并有按的培训并有按TSPTSP工作的愿望和热情。工作的愿望和热情。 3 3、整个软件企业在总体上应处于、整个软件企业在总体上应处于CMMCMM二级以上。二级以上。3637工程系统越来越复杂工程系统越来越复杂执行工程的方式发生了变化执行工程的方式发生了变化 各种模型之间的不协调各种模型之间的不协调38CMMICMMI是由美国产业界、政府和是由美国产业界、政府和CMU/SEICMU/SEI共同主共同主持的项目,于