《软件工程新技术》PPT课件_第1页
《软件工程新技术》PPT课件_第2页
《软件工程新技术》PPT课件_第3页
《软件工程新技术》PPT课件_第4页
《软件工程新技术》PPT课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,软件工程新技术,张友生博士中国系统分析员协会理事长中国软件工程专家网首席专家2002.12.,2,软件工程新技术报告提纲,一、面向对象与统一建模语言二、软件过程改进与能力成熟度模型三、构件与软件重用四、模式与构架,3,一、面向对象与统一建模语言,面向对象(Object-Oriented)方法形成最初是从面向对象程序设计语言开始的。第一个OO语言是20世纪60年代末挪威奥斯陆大学和挪威计算中心共同研制的Simula。到20世纪80年代中期,OO语言达数十种之多。,4,一、面向对象与统一建模语言,20世纪80年代中期,面向对象分析(OOA)的研究开始发展,进而延伸到面向对象设计(OOD)。90年代以后,OOA/OOD方法逐渐走向实用,形成OO开发方法:,5,一、面向对象与统一建模语言,什么是建模和可视化建模?,6,一、面向对象与统一建模语言,一些专家按照OO思想,对系统分析和设计工作的步骤、方法、图形工具等进行了详细的研究,提出了许多不同的实施方案。比较著名和流行的有Coad/Yourdon方法、Booch方法和Rumbaugh的OMT方法。OMT方法把分析时收集的信息构造在三类模型中,即对象模型、功能模型和动态模型。,7,一、面向对象与统一建模语言,对象模型是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。,8,一、面向对象与统一建模语言,动态模型由多个状态图组成。,9,一、面向对象与统一建模语言,功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个的数据流情况。,10,一、面向对象与统一建模语言,UML(UnifiedModelingLanguage)是下面这些最好的建模方法中最好部分的集成:数据建模的概念(E-R模型)商务流程模型(WorkFlow)对象建模方法软构件建模思想UML是一种用可视化方法对软件系统进行描述、实施和说明的标准语言。支持用不同实现技术进行的软件开发全过程。,11,一、面向对象与统一建模语言,UML的历史,12,一、面向对象与统一建模语言,UML的组成,13,一、面向对象与统一建模语言,UML支持用于系统开发,Classes,applicationpartitioning,BusinessObjects,Relationships,BusinessProcess,Objects,UseCases,largescalesystem,Scenarios,ComponentsMicrosoft,ActiveX/COMMicrosoft,ORDBMSOracle,CORBAOMG,14,一、面向对象与统一建模语言,15,二、软件过程改进与能力成熟度模型,软件过程(SoftwareProcess)是人们建立、维护和进化软件产品整个过程中所有技术活动和管理活动的集合。从1984年起每年有软件过程国际研讨会(ISPW),从1991年起开始召开软件过程国际会议(ICSP),每个国家几乎都有自己的软件过程改进网络(SPIN)。主要研究方向:软件过程分析和建模、软件过程支持、软件过程评估和改进。,16,二、软件过程改进与能力成熟度模型,RUP软件过程XP软件过程敏捷软件过程CMM软件过程PSP个体软件过程TSP群组软件过程,17,二、软件过程改进与能力成熟度模型,RationalUnifiedProcess(RUP)是Rational公司的一个软件过程产品,其初始版本为5.0,先后经历了5.1、5.1.1、5.5等版本直到最新的RationalUnifiedProcess2000版本。RUP将项目管理、商业建模、分析与设计等统一起来,贯穿整个开发过程。RUP采用Internet技术,可以增强团队的开发效率,并为所有成员提供最佳的软件实现方案。,基于RUP的软件过程,18,二、软件过程改进与能力成熟度模型,基于RUP的软件过程,19,二、软件过程改进与能力成熟度模型,基于RUP的软件过程,20,二、软件过程改进与能力成熟度模型,基于XP的软件过程,KentBeck于1997年在ExtremeProgrammingExplainedEmbraceChange中提出一种高度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化强调有效测试和演化设计,21,二、软件过程改进与能力成熟度模型,基于XP的软件过程,KentBeck于1997年在ExtremeProgrammingExplainedEmbraceChange中提出一种高度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化强调有效测试和演化设计,22,二、软件过程改进与能力成熟度模型,基于XP的软件过程,什么时候需要XP?需求不明确、变化快高风险:在特定的时间内,面对一个相当难开发的系统中小型团队(人数不超过10个),23,二、软件过程改进与能力成熟度模型,基于XP的软件过程,XP项目的状态图,24,二、软件过程改进与能力成熟度模型,基于XP的软件过程,XP的计划反馈循环,25,二、软件过程改进与能力成熟度模型,敏捷软件过程,敏捷(agility)软件过程是Aoyama在1998年提出来的。基于时间的、并行的、分布的、演化的快速软件开发过程。,26,二、软件过程改进与能力成熟度模型,敏捷软件过程,27,二、软件过程改进与能力成熟度模型,软件能力成熟度模型(SW-CMM),80年代,在美国国防部资助下,由卡内基梅隆大学软件工程研究所(CMU/SEI)建立,用于评价软件开发组织的软件过程能力成熟度。1991年,CMM1.0版;1993年,CMM1.1版软件过程能力:遵循一个软件过程后能够得到的预期结果的界限范围。该指标是对能力的一种衡量,用它可以预测一个组织在承接下一个软件项目时,所能期望得到的最可能的结果。,28,二、软件过程改进与能力成熟度模型,软件能力成熟度模型(SW-CMM),软件过程成熟度:指一个具体的软件过程被明确地定义、管理、评价、控制和产生实效的程度。成熟度包含着能力的一种潜力,同时也表明了组织实施软件过程的实际水平。关键过程域:是一组相互关联的活动,实现一组对建立过程能力至关重要的目标。规定每一个关键过程域属于某个成熟度级别。每个关键过程域由SEI标识为一个基本结构单元域,以帮助确定机构的软件过程能力和了解要达到软件成熟度级别所需要的过程改进。,29,二、软件过程改进与能力成熟度模型,软件能力成熟度模型(SW-CMM),30,二、软件过程改进与能力成熟度模型,软件能力成熟度模型(SW-CMM),31,二、软件过程改进与能力成熟度模型,软件能力成熟度模型,32,二、软件过程改进与能力成熟度模型,个体软件过程(PSP),PSP是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。,33,二、软件过程改进与能力成熟度模型,个体软件过程(PSP),PSP保障软件产品质量的一个重要途径是提高设计质量。在软件设计阶段,PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计结束准则,而不是设计方法的选择。统计数据表明,在应用了PSP后,软件中总的缺陷减少了58.0%,在测试阶段发现的缺陷减少了71.9%,生产效率提高了20.8%。,34,二、软件过程改进与能力成熟度模型,群组软件过程(TSP),指导项目组中的成员如何有效地规划和管理所面临的项目开发任务。告诉管理人员如何指导软件开发队伍始终以最佳状态来完成工作。TSP实施集体管理与自已管理自己相结合的原则,最终目的在于指导一切人员如何在最少的时间内,以预定的费用生产出高质量的软件产品。,35,二、软件过程改进与能力成熟度模型,群组软件过程(TSP),TSP比较适合规模为3-20人的开发小组。实施TSP的先决条件有三条:1、需要有高层主管和各级经理的支持,以取得必要的资源。2、项目组开发人员需要经过PSP的培训并有按TSP工作的愿望和热情。3、整个软件企业在总体上应处于CMM二级以上。,36,二、软件过程改进与能力成熟度模型,CMM/PSP/TSP,37,二、软件过程改进与能力成熟度模型,集成化过程改进(CMMI),工程系统越来越复杂执行工程的方式发生了变化各种模型之间的不协调,38,二、软件过程改进与能力成熟度模型,集成化过程改进(CMMI),CMMI是由美国产业界、政府和CMU/SEI共同主持的项目,于1998年启动,2002年1月11日正式发布CMMI1.1版。CMMI参照CMM模型,也是分成五个等级。,39,三、构件与软件重用,软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需要分析文档甚至领域知识。通常将这些软件元素称为软构件。简单地说,构件是具有一定的功能,能够独立工作或能同其它构件装配起来协调工作的程序体,构件的使用同他的开发、生产无关。,40,三、构件与软件重用,横向重用是指重用不同应用领域中的软件元素,例如数据结构、分类算法、人机界面构件等。标准函数库是一种典型的、原始的横向重用机制。纵向重用是指在一类具有较多公共性的应用领域之间进行软部件重用。,41,三、构件与软件重用,降低费用、提高复用性、提高可定制性和适应性、提高可维护性。至今,构件技术已形成三个流派:Sun的Java平台、Microsoft的COM+、IBM的CORBA。,42,三、构件与软件重用,43,四、模式与构架,软件体系结构(Softwarearchitecture)的定义:1997年,Bass,Clementsetc.使用软件体系结构:一个程序或计算机系统的软件体系结构包括一个或一组软件部件、软件部件的外部的可见特性及其相互关系。定义了软件部件;一个系统可以包括多于一个结构;系统可看作是由软件部件及其相互关系组成;每一部件的行为都是体系结构的一部分;基本单位是部件。,44,四、模式与构架,经典的软件体系结构模式:管道和过滤器数据抽象和面向对象组织基于事件的隐式调用分层系统仓库系统及知识库表格驱动的解释器过程控制其他类型的体系结构异构结构,45,四、模式与构架,客户机/服务器模式,Client/Server(客户机/服务器)结构,是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术。C/S结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。,46,四、模式与构架,客户机/服务器模式,开发成本较高。C/S体系结构对客户端软硬件配置要求较高,增加了整个系统的成本。客户端程序设计复杂。大部分工作量放在客户端的程序设计上,客户端显得十分庞大。软件移植困难。采用不同开发工具或平台开发的软件,一般互不兼容,不能或很难移植到其它平台上运行。软件维护和升级困难。对软件的一个小小改动,每一个客户端都必须更新。,47,四、模式与构架,浏览器/服务器模式,Browser/Server(浏览器/服务器)结构是随着Internet技术的兴起,对C/S体系结构的一种变化或者改进的结构。在B/S体系结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。节约了开发成本,系统安装、修改和维护全在服务器端解决。真正达到了“零客户端”的功能,很容易在运行时自动升级。,48,四、模式与构架,浏览器/服务器模式,B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。B/S体系结构的系统扩展能力差,安全性难以控制。在数据查询等响应速度上,要远远地低于C/S体系结构。数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。,49,四、模式与构架,C/S与B/S混合模式,内外有别,50,四、模式与构架,C/S与B/S混合模式,查改有别,51,四、模式与构架,三层结构模式,52,四、模式与构架,三层结构模式,允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。允许更灵活有效地选用相应的平台

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论