第15章软件工程新技术资料课件

上传人:仙*** 文档编号:241639753 上传时间:2024-07-12 格式:PPT 页数:78 大小:1.39MB
返回 下载 相关 举报
第15章软件工程新技术资料课件_第1页
第1页 / 共78页
第15章软件工程新技术资料课件_第2页
第2页 / 共78页
第15章软件工程新技术资料课件_第3页
第3页 / 共78页
点击查看更多>>
资源描述
第15章 软件工程新技术2024年7月12日第1页第第15章章 软件工程新技术软件工程新技术本章内容结构本章内容结构l本章引言本章引言l学习目标学习目标l教学内容教学内容l本章小结本章小结l思考和练习思考和练习第15章 软件工程新技术本章引言本章引言软件工程领域研究使用的新技术:软件工程领域研究使用的新技术:迭代开发,以时间换空间,消除市场风险。迭代开发,以时间换空间,消除市场风险。敏捷开发或轻量级过程,以不变应万变。敏捷开发或轻量级过程,以不变应万变。永远的永远的Beta,不断推陈出新,永无止境。,不断推陈出新,永无止境。持续集成、持续构建、全程测试。持续集成、持续构建、全程测试。知识管理,将软件工程纳入知识管理的范畴。知识管理,将软件工程纳入知识管理的范畴。软件即服务软件即服务(SaaS),面向服务架构,面向服务架构(SOA)的开发思想。的开发思想。用例驱动开发,用户为本思想在软件中的体现。用例驱动开发,用户为本思想在软件中的体现。以顾客为中心的全面质量管理。以顾客为中心的全面质量管理。2024年7月12日第2页第15章 软件工程新技术2024年7月12日第3页学习目标学习目标l掌握掌握软件复用软件复用的概念、分类、关键技术及复用粒度的概念、分类、关键技术及复用粒度l理解理解基于构件的软件工程技术基于构件的软件工程技术的相关概念及应用的相关概念及应用l理解理解软件过程和标准化软件过程和标准化的作用及应用的作用及应用l理解理解敏捷软件开发过程敏捷软件开发过程概念及模型概念及模型l理解理解Web 软件工程软件工程的相关概念和特色的相关概念和特色l理解理解软件产品线技术软件产品线技术的概念及发展的概念及发展第15章 软件工程新技术2024年7月12日第4页教学内容教学内容15.1 软件复用技术软件复用技术15.2 基于构件的软件工程技术基于构件的软件工程技术15.3 软件过程与标准化软件过程与标准化15.4 敏捷软件开发过程敏捷软件开发过程15.5 Web 软件工程软件工程15.6 软件产品线技术软件产品线技术15.7 本章小结和习题本章小结和习题 第15章 软件工程新技术2024年7月12日第5页15.1.1 软件复用概念及分类软件复用概念及分类软件复用:软件复用:重复使用重复使用“为了复用目的而设计的软件为了复用目的而设计的软件”的过程。的过程。实施软件复用的目的:实施软件复用的目的:要使软件开发工作进行得更要使软件开发工作进行得更快、更好、更省。快、更好、更省。软件复用与共享、软件移植的区别:软件复用与共享、软件移植的区别:共享:共享:是在一个系统中多次使用一个相同的软件成是在一个系统中多次使用一个相同的软件成分分软件移值:软件移值:对一个软件进行修改,对一个软件进行修改,使它运行于新的使它运行于新的软硬件平台软硬件平台第15章 软件工程新技术2024年7月12日第6页15.1.1 软件复用概念及分类软件复用概念及分类(1)依据复用的对象分类)依据复用的对象分类产品复用、过程复用产品复用、过程复用(2)依据对可复用信息进行复用的方式分类)依据对可复用信息进行复用的方式分类黑盒复用、白盒复用黑盒复用、白盒复用(3)依据复用的组织方式分类)依据复用的组织方式分类个别的软件复用、系统化的软件复用个别的软件复用、系统化的软件复用(4)根据所应用的领域范围分类)根据所应用的领域范围分类横向复用、纵向复用横向复用、纵向复用第15章 软件工程新技术2024年7月12日第7页15.1.2 软件复用的关键技术和复用粒度软件复用的关键技术和复用粒度l软件复用有软件复用有3个基本问题:个基本问题:必须有可以复用的对象必须有可以复用的对象所复用的对象必须是有用的所复用的对象必须是有用的复用者需要知道如何去使用被复用的对象。复用者需要知道如何去使用被复用的对象。l软件复用包括两个相关过程:软件复用包括两个相关过程:可复用软件(构件)的开发可复用软件(构件)的开发基于可复用软件(构件)应用系统的构造(集成和组装)基于可复用软件(构件)应用系统的构造(集成和组装)第15章 软件工程新技术2024年7月12日第8页15.1.2 软件复用的关键技术和复用粒度软件复用的关键技术和复用粒度实现软件复用的关键技术因素:实现软件复用的关键技术因素:软件构件技术、领软件构件技术、领域工程、软件构架技术、软件再工程技术、开放系域工程、软件构架技术、软件再工程技术、开放系统技术、软件过程、统技术、软件过程、CASE技术等。技术等。软件复用的非技术因素:软件复用的非技术因素:机构组织如何适应复用的机构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知需求;管理方法如何适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发人员的心识的更新;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保守商业秘密的问题;复理障碍;知识产权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题等。用前期投入的经济考虑;标准化问题等。第15章 软件工程新技术2024年7月12日第9页15.2.1 中间件技术中间件技术中间件是一种独立的系统软中间件是一种独立的系统软件或服务程序件或服务程序,分布式应用,分布式应用软件借助这种软件在不同的软件借助这种软件在不同的技术之间共享资源;技术之间共享资源;中间件中间件位于客户机位于客户机/服务器的操作系服务器的操作系统之上,管理计算资源和网统之上,管理计算资源和网络通信。络通信。图15.1 15.1 中中间件概念件概念 第15章 软件工程新技术2024年7月12日第10页15.2.1 中间件技术中间件技术图15.2 15.2 中中间件在件在应用系用系统中的位置中的位置l中间件的作用:中间件的作用:建立建立分布式软件模块之间互分布式软件模块之间互操作的机制,操作的机制,屏蔽底层屏蔽底层分布式环境的复杂性和分布式环境的复杂性和异构性异构性,为处于自己上为处于自己上层的应用软件提供运行层的应用软件提供运行与开发环境与开发环境,帮助用户,帮助用户灵活、高效地开发和集灵活、高效地开发和集成复杂的应用软件。成复杂的应用软件。第15章 软件工程新技术2024年7月12日第11页15.2.1 中间件技术中间件技术1中间件要解决的问题中间件要解决的问题(1)应用的互连和互操作问题)应用的互连和互操作问题(2)针对不同的应用领域,对中间件又有各种不同的要求)针对不同的应用领域,对中间件又有各种不同的要求l中间件具有以下特点:中间件具有以下特点:满足满足大量应用的需要;大量应用的需要;运行于多种硬件和操作系统平台;运行于多种硬件和操作系统平台;支持分布式计算;支持分布式计算;提供跨网络、硬件和操作系统平台的透明性;提供跨网络、硬件和操作系统平台的透明性;支持标准的协议和接口。支持标准的协议和接口。第15章 软件工程新技术2024年7月12日第12页15.2.1 中间件技术中间件技术2中间件的分类中间件的分类(1)根据中间件具有的功能和所提供的服务)根据中间件具有的功能和所提供的服务面向对象中间件面向对象中间件、消息中间件、容错中间件、反射中间件消息中间件、容错中间件、反射中间件(2)基于)基于IDC分类方法分类方法终端仿真终端仿真/屏幕转换、数据访问中间件屏幕转换、数据访问中间件远程过程调用中间件、消息中间件远程过程调用中间件、消息中间件交易中间件、交易中间件、基于对象请求代理(基于对象请求代理(ORB)中间件)中间件第15章 软件工程新技术2024年7月12日第13页15.2.1 中间件技术中间件技术3中间件的发展及认识度中间件的发展及认识度早期的中间件市场中事务中间件与消息中间件占的份额最大,早期的中间件市场中事务中间件与消息中间件占的份额最大,近年来随着近年来随着Web应用的逐渐普及,应用的逐渐普及,支持支持Web服务和应用的应服务和应用的应用服务器中间件的占有量已经居于各类中间件的首位用服务器中间件的占有量已经居于各类中间件的首位,消息,消息中间件和事务中间件分别居第二、三名。中间件和事务中间件分别居第二、三名。表表15.1 15.1 操作系操作系统、数据、数据库管理系管理系统和中和中间件的件的类比比第15章 软件工程新技术2024年7月12日第14页15.2.2 构件与构件化构件与构件化构件:构件:是一些是一些可执行单元可执行单元,可以通过独立的开发、购买和配,可以通过独立的开发、购买和配置组合到一个功能系统中去,是软件系统内被标识、符合某置组合到一个功能系统中去,是软件系统内被标识、符合某种标准要求并可复用的软件组成成分,类似于传统工业中的种标准要求并可复用的软件组成成分,类似于传统工业中的零部件。零部件。从广义上来讲,从广义上来讲,构件可以是被封装的对象类、类簇、一些功构件可以是被封装的对象类、类簇、一些功能模块、构件框架或构架、文档、分析件、设计模式能模块、构件框架或构架、文档、分析件、设计模式等;等;从狭义上来说,一般指对外提供的具有规约化接口、符合一从狭义上来说,一般指对外提供的具有规约化接口、符合一定标准、可替换的软件系统的定标准、可替换的软件系统的程序模块程序模块。第15章 软件工程新技术2024年7月12日第15页15.2.2 构件与构件化构件与构件化构件技术的基本思想构件技术的基本思想:创建和利用可复用的软件构件来:创建和利用可复用的软件构件来解决软件开发的问题。解决软件开发的问题。可复用构件:可复用构件:具有相对独立功能和可复用价值的构件。具有相对独立功能和可复用价值的构件。构件化的软件开发方法构件化的软件开发方法是一种将一个完整系统看作是是一种将一个完整系统看作是若若干个独立部分(构件)干个独立部分(构件)组装的软件开发方法,每一部分组装的软件开发方法,每一部分是一个可重用的单元,通过是一个可重用的单元,通过替换和重新配置来完成软件替换和重新配置来完成软件的升级的升级。第15章 软件工程新技术2024年7月12日第16页15.2.3 构件模型及描述语言构件模型及描述语言两个主要的构件描述模型:两个主要的构件描述模型:Tracz提出的提出的3C模型:模型:主要用于对构件的可重用信息进行主要用于对构件的可重用信息进行描述,描述,Component=(Concept,Content,Context)REBOOT项目中提出的项目中提出的REBOOT(Reuse Based on Object Oriented Techniques)模型:)模型:主要用于对可重用主要用于对可重用构件进行分类与检索,它与构件检索的关系更为密切。构件进行分类与检索,它与构件检索的关系更为密切。第15章 软件工程新技术2024年7月12日第17页15.2.3 构件模型及描述语言构件模型及描述语言 北京大学北京大学青鸟构件模型青鸟构件模型是一个具有面向对象风格的模型,从是一个具有面向对象风格的模型,从3个不同的、相互正交的视角来看待构件,每个具体的构件都是形态、个不同的、相互正交的视角来看待构件,每个具体的构件都是形态、层次和表示构成的三维空间中的一个点。层次和表示构成的三维空间中的一个点。构件形态构件形态:类、类树、框架、设计模式、体系结构;:类、类树、框架、设计模式、体系结构;构件层次构件层次:分析件、设计件、编码件、测试件:分析件、设计件、编码件、测试件构件的表示与层次有关构件的表示与层次有关,不同层次的构件具有不同的表示媒,不同层次的构件具有不同的表示媒介和手段,如图形、复合文档、正文、伪码、编程语言、目介和手段,如图形、复合文档、正文、伪码、编程语言、目标码等。标码等。青鸟构件模型从青鸟构件模型从9个方面个方面来描述构件,即来描述构件,即概念、操作规约、接口、概念、操作规约、接口、类型、实现体、构件复合、类型、实现体、构件复合、构件性质、构件注释、构件语境。构件性质、构件注释、构件语境。第15章 软件工程新技术2024年7月12日第18页15.2.3 构件模型及描述语言构件模型及描述语言l构件实现模型标准构件实现模型标准:CORBA、COM/DCOM/COM+、JavaBeans/EJBl基本思想:基本思想:第一,采用将构件的接口和实现相分离的原则;第一,采用将构件的接口和实现相分离的原则;第二,采用黑盒重用的方式,外界仅可以通过构件的接第二,采用黑盒重用的方式,外界仅可以通过构件的接口来访问构件的功能;口来访问构件的功能;第三,在实现方法上都使用接口描述语言(第三,在实现方法上都使用接口描述语言(Interface Description Language,IDL)进行构件接口定义,利)进行构件接口定义,利用相应的中间件作为支持该构件模型的运行时环境,从用相应的中间件作为支持该构件模型的运行时环境,从而达到由不同的编程语言所实现、运行在不同的操作系而达到由不同的编程语言所实现、运行在不同的操作系统环境中及在不同主机上的构件都能相互交互的目的。统环境中及在不同主机上的构件都能相互交互的目的。第15章 软件工程新技术2024年7月12日第19页15.2.3 构件模型及描述语言构件模型及描述语言l主要不同在于技术的提出者及应用背景主要不同在于技术的提出者及应用背景 COM/DCOM是由是由微软公司微软公司提出的,由于提出的,由于Microsoft在在PC软件领域的垄断地位,因此在基于软件领域的垄断地位,因此在基于Microsoft的环境的环境中,使用中,使用COM/DCOM/COM+是一种当然的选择;是一种当然的选择;CORBA是由是由OMG组织组织提出的,它的标准是开放的,并提出的,它的标准是开放的,并且且OMG成员广泛,所以成员广泛,所以CORBA最具普遍性,是异构环最具普遍性,是异构环境中的理想选择;境中的理想选择;在在Internet 和移动计算(如手机)中,和移动计算(如手机)中,Java是普遍采用是普遍采用的一种技术,因此的一种技术,因此JavaBeans/EJB在这类在这类Internet和移和移动计算应用环境中比较适合动计算应用环境中比较适合。第15章 软件工程新技术2024年7月12日第20页15.2.3 构件模型及描述语言构件模型及描述语言构件描述语言构件描述语言 比较典型的有比较典型的有CORBA规范中的规范中的接口描述语言接口描述语言IDLUML规范中的规范中的对象约束语言对象约束语言OCL北大青鸟构件系统中的北大青鸟构件系统中的青鸟构件描述语言青鸟构件描述语言JBCDL加州理工大学提出的加州理工大学提出的构件描述语言构件描述语言CDL等等第15章 软件工程新技术2024年7月12日第21页15.2.4 构件的检索与组装构件的检索与组装1构件的检索构件的检索W.Frakes从构件表示出发,将现有方法分为从构件表示出发,将现有方法分为人工人工智能方法、超文本方法和信息科学方法智能方法、超文本方法和信息科学方法3类。类。H.Mili则按照复杂度和检索效果的递增,将其分为则按照复杂度和检索效果的递增,将其分为基于正文的、基于词法描述符的、基于规约的分类基于正文的、基于词法描述符的、基于规约的分类和检索和检索3类。类。第15章 软件工程新技术2024年7月12日第22页15.2.4 构件的检索与组装构件的检索与组装W.Fr akes重点讨论了信息科学方法,因为这是实际复用项目重点讨论了信息科学方法,因为这是实际复用项目中,应用较为成功的途径。将信息科学方法分为中,应用较为成功的途径。将信息科学方法分为基于受控词基于受控词汇表和基于不受控词汇表分类汇表和基于不受控词汇表分类两种形式。两种形式。图15.3 15.3 信息科学的信息科学的编目方法分目方法分类图第15章 软件工程新技术2024年7月12日第23页15.2.4 构件的检索与组装构件的检索与组装l常用分类方式常用分类方式枚举分类枚举分类刻面分类刻面分类属性值分类属性值分类正文检索正文检索关键词分类关键词分类第15章 软件工程新技术2024年7月12日第24页15.2.4 构件的检索与组装构件的检索与组装l2构件组装技术构件组装技术l目的目的:利用现有的构件组装成新的系统利用现有的构件组装成新的系统。l本质:本质:是在是在构件之间建立关联构件之间建立关联,根据这种关联,协调,根据这种关联,协调它们的行为,把它们组织成为一个有机的整体。它们的行为,把它们组织成为一个有机的整体。l构件构件组装的研究内容包括两部分组装的研究内容包括两部分:对对复合构件形成过程的复合构件形成过程的研究研究面向面向体系结构(或者组装框架)的体系结构(或者组装框架)的研究研究第15章 软件工程新技术2024年7月12日第25页15.2.4 构件的检索与组装构件的检索与组装l3构件组装技术及方法的分类构件组装技术及方法的分类l(1)根据组装场景的不同分类)根据组装场景的不同分类不同的组装层次:不同的组装层次:源代码级的组装、运行级组装源代码级的组装、运行级组装不同的组装模式不同的组装模式静态组装:设计时的组装。静态组装:设计时的组装。动态组装:运行动态组装:运行时的组装时的组装。l(2)按照构件在组装之前需要对构件内部细节了解)按照构件在组装之前需要对构件内部细节了解的程度及是否需要进行修改、的程度及是否需要进行修改、封装封装黑黑盒组装方式、白盒组装方式和灰盒组装盒组装方式、白盒组装方式和灰盒组装方式方式第15章 软件工程新技术2024年7月12日第26页15.2.4 构件的检索与组装构件的检索与组装4构件组装的实现方法构件组装的实现方法(1)以)以框架为基础框架为基础的方法的方法(2)以)以连接件连接件为基础的方法为基础的方法(3)以)以胶合代码胶合代码为基础的方法为基础的方法(4)基于)基于总线总线的方法的方法第15章 软件工程新技术2024年7月12日第27页15.2.5 基于构件的软件工程方法基于构件的软件工程方法l基于构件的软件工程(基于构件的软件工程(Component-Based Software Engineering,CBSE):以):以面向对象的方法面向对象的方法为基础,为基础,强调软强调软件重用的作用件重用的作用,在软件体系结构设计的基础上,使用可复用,在软件体系结构设计的基础上,使用可复用的软件的软件“构件构件”来设计和构造基于计算机的系统过程。来设计和构造基于计算机的系统过程。l基于构件的开发(基于构件的开发(CBD,Component-Based Development):是一个与领域活动并行的):是一个与领域活动并行的CBSE活动。为活动。为了实现软件重用,基于构件的软件工程了实现软件重用,基于构件的软件工程强调领域工程与软件强调领域工程与软件工程同步进行工程同步进行。第15章 软件工程新技术2024年7月12日第28页15.2.5 基于构件的软件工程方法基于构件的软件工程方法图15.4 15.4 一个典型的可重用的一个典型的可重用的过程模型程模型图图15.4给出了一个典型的可重用的过程模型,描述了领域工给出了一个典型的可重用的过程模型,描述了领域工程与软件工程的关系。程与软件工程的关系。第15章 软件工程新技术2024年7月12日第29页15.2.5 基于构件的软件工程方法基于构件的软件工程方法图图15.5给出了一个基于构件的开发模型。该模型中,建模和构建给出了一个基于构件的开发模型。该模型中,建模和构建活动开始于识别可选构件。这些构件有些设计成通用的软件模块,活动开始于识别可选构件。这些构件有些设计成通用的软件模块,有些设计成面向对象的类或软件包。有些设计成面向对象的类或软件包。图15.5 15.5 基于构件的开基于构件的开发模型模型第15章 软件工程新技术2024年7月12日第30页15.2.5 基于构件的软件工程方法基于构件的软件工程方法u基于构件的开发模型可以由以下步骤组成(采用演基于构件的开发模型可以由以下步骤组成(采用演进方法):进方法):(1)对于该问题领域的基于构件的可用产品进)对于该问题领域的基于构件的可用产品进行研究和评估行研究和评估(2)考虑构件集成的问题)考虑构件集成的问题(3)设计软件架构以容纳这些构件)设计软件架构以容纳这些构件(4)将构件集成到架构中)将构件集成到架构中(5)进行充分的测试以保证功能正常)进行充分的测试以保证功能正常第15章 软件工程新技术2024年7月12日第31页15.2.5 基于构件的软件工程方法基于构件的软件工程方法基于构件的开发模型存在的问题:基于构件的开发模型存在的问题:(1)构件的信赖度问题)构件的信赖度问题(2)构件认证)构件认证(3)自然特性预测)自然特性预测(4)需求折中)需求折中第15章 软件工程新技术2024年7月12日第32页15.2.6 SOA 与与SaaSSOA凭借其松耦合的凭借其松耦合的特性,使得企业可以特性,使得企业可以按照模块化的方式来按照模块化的方式来添加新服务或更新现添加新服务或更新现有服务,以解决新的有服务,以解决新的业务需要,从而可以业务需要,从而可以通过不同的渠道提供通过不同的渠道提供服务,并可以把企业服务,并可以把企业现有的应用作为服务,现有的应用作为服务,从而保护了现有的从而保护了现有的IT基础建设投资。基础建设投资。图15.6 15.6 面向服面向服务的分析与的分析与设计原理示意原理示意图第15章 软件工程新技术2024年7月12日第33页15.2.6 SOA 与与SaaSlSOA模型的典型特征:模型的典型特征:松散耦合、粗粒度服务和标准化接口松散耦合、粗粒度服务和标准化接口lSOA的设计实践原则:的设计实践原则:业务驱动服务,服务驱动技术;业务业务驱动服务,服务驱动技术;业务敏捷是基本的业务需求。敏捷是基本的业务需求。lSOA的目标:的目标:最大限度地重用现有服务以提高最大限度地重用现有服务以提高IT 的适应能力的适应能力和利用效率。和利用效率。图15.7 15.7 一个完整的面向服一个完整的面向服务的体系的体系结构模型构模型第15章 软件工程新技术2024年7月12日第34页15.2.6 SOA 与与SaaS图15.8 15.8 单个服个服务内部内部结构构第15章 软件工程新技术2024年7月12日第35页15.2.6 SOA 与与SaaSuSaaS(Software-as-a-Service,软件即服务),软件即服务),国内通常叫做软件运营服务模式,简称为软营模式:国内通常叫做软件运营服务模式,简称为软营模式:是一种通过是一种通过Internet 提供软件的模式,厂商将应用提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商订购所需的应用软己实际需求,通过互联网向厂商订购所需的应用软件服务,按订购的服务多少和时间长短向厂商支付件服务,按订购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务费用,并通过互联网获得厂商提供的服务。第15章 软件工程新技术2024年7月12日第36页15.3 软件过程与标准化软件过程与标准化软件过程:软件过程:软件生存周期中,将用户需求转化为可执软件生存周期中,将用户需求转化为可执行系统的演化过程所进行的软件工程活动的全体,是行系统的演化过程所进行的软件工程活动的全体,是用于用于生产软件产品的工具、方法和实践的集合生产软件产品的工具、方法和实践的集合。软件过程技术的目标:软件过程技术的目标:通过工程化、标准化和形式化通过工程化、标准化和形式化的方法管理软件的开发过程,从而改变目前的软件生的方法管理软件的开发过程,从而改变目前的软件生产方式,实现产方式,实现大规模的软件生产大规模的软件生产。软件过程的研究:软件过程的研究:主要针对软件生产和管理,不仅要主要针对软件生产和管理,不仅要有工程观点,还要有有工程观点,还要有系统观点、管理观点、运行观点系统观点、管理观点、运行观点和用户观点和用户观点。第15章 软件工程新技术2024年7月12日第37页15.3.1 软件过程及其改进软件过程及其改进软件过程改进:软件过程改进:在软件过程活动中,为了更有效地达在软件过程活动中,为了更有效地达到优化软件过程的目的所实施的改善或改变其软件过到优化软件过程的目的所实施的改善或改变其软件过程的系列活动。程的系列活动。软件过程改进主要包括以下几个关键步骤:软件过程改进主要包括以下几个关键步骤:对比目前的状态和期望达到的状态,找出存在的对比目前的状态和期望达到的状态,找出存在的差距差距 确定要改变哪些差距,需要改变到什么确定要改变哪些差距,需要改变到什么程度程度 制定相应的具体制定相应的具体实施计划实施计划第15章 软件工程新技术2024年7月12日第38页15.3.2 ISO 9000 标准标准ISO 9000是国际标准化组织是国际标准化组织ISO制定的世界上第一套质量管理和制定的世界上第一套质量管理和质量保证标准,质量保证标准,主要目的是为了满足国际贸易中对质量管理和主要目的是为了满足国际贸易中对质量管理和质量保证需要有共同语言和共同准则的需要。质量保证需要有共同语言和共同准则的需要。表表15.3 ISO 900015.3 ISO 9000标准体系准体系第15章 软件工程新技术2024年7月12日第39页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)CMM(Capability Maturity Model)是卡内基梅隆大学软件是卡内基梅隆大学软件工程研究院工程研究院SEI受美国国防部委托制定的软件过程的改良、评受美国国防部委托制定的软件过程的改良、评估模型,也称为估模型,也称为SEI SW-CMM(Software Engineering Institute Software-Capability Maturity Model)。)。该模型于该模型于1991年发布,并发展成为系列标准模型,描述了有年发布,并发展成为系列标准模型,描述了有效的软件过程单元的框架,为软件机构提供了一条从混乱的、效的软件过程单元的框架,为软件机构提供了一条从混乱的、不成熟的软件过程向成熟的、有纪律的软件过程改进的途径。不成熟的软件过程向成熟的、有纪律的软件过程改进的途径。CMM涵盖了有关计划、设计和管理软件开发和维护的实践,涵盖了有关计划、设计和管理软件开发和维护的实践,软件机构只要遵循这些实践,就能够提高该机构的能力,以满软件机构只要遵循这些实践,就能够提高该机构的能力,以满足成本、进度计划、功能及产品质量等目标足成本、进度计划、功能及产品质量等目标。第15章 软件工程新技术2024年7月12日第40页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)1)初始级()初始级(Initial)2)可重复级()可重复级(Repeatable)3)已定义级()已定义级(Defined)4)已管理级()已管理级(Managed)5)优化级(优化级(Optimizing)图15.9 CMM15.9 CMM模型的模型的5 5个成熟个成熟级1CMM 的内容的内容第15章 软件工程新技术2024年7月12日第41页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)表表15.4 15.4 软件件过程的可程的可视性与各成熟度能力模型的比性与各成熟度能力模型的比较第15章 软件工程新技术2024年7月12日第42页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)2关键过程域关键过程域(Key Process Area,KPA)一系列相互影响的关键操作活动,这些活动反映一个软一系列相互影响的关键操作活动,这些活动反映一个软件组织改进软件过程时,必须集中力量改进的几个方面件组织改进软件过程时,必须集中力量改进的几个方面第15章 软件工程新技术2024年7月12日第43页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)3CMM 实施中应注意的问题实施中应注意的问题(1)剪裁的问题)剪裁的问题(2)ISO 9000与与CMM的关系的关系(3)时间和效果的问题)时间和效果的问题CMM只是说明达到某一级别必须做的工作,并未说明如只是说明达到某一级别必须做的工作,并未说明如何实施何实施CMM费用远大于实施费用远大于实施ISO 9000的费用的费用 实际一个管理过程的改进是一步步实现的实际一个管理过程的改进是一步步实现的第15章 软件工程新技术2024年7月12日第44页15.3.4 PSP、TSP 和和CMMI1个体软件过程(个体软件过程(Personal Software Process,PSP)PSP可以为基于个体和小型群组软件过程的优化提供具体而可以为基于个体和小型群组软件过程的优化提供具体而有效的途径,有效的途径,PSP的着眼点在于软件缺陷的预防的着眼点在于软件缺陷的预防2小组软件开发过程(小组软件开发过程(Team Software Process,TSP)TSP实施集体管理与自己管理相结合的原则,最终目的在于实施集体管理与自己管理相结合的原则,最终目的在于指导一切人员如何在最少的时间内,以预定的费用生产出高指导一切人员如何在最少的时间内,以预定的费用生产出高质量的软件产品。质量的软件产品。第15章 软件工程新技术2024年7月12日第45页15.3.4 PSP、TSP 和和CMMI3能力成熟度集成模型(能力成熟度集成模型(Capability MaturityModel Integration,CMMI)SW-CMM(Software CMM)软件软件CMMSE-CMM(System Engineering CMM)系统工程系统工程CMMSA-CMM(Software Acquisition CMM)软件采购软件采购CMMIPT-CMM(Integrated Product Team CMM)集成产品群组集成产品群组CMMP-CMM(People CMM)人力资源能力成熟度模型人力资源能力成熟度模型第15章 软件工程新技术2024年7月12日第46页15.3.4 PSP、TSP 和和CMMICMMI为企业带来价值主要体现在以下几个方面:为企业带来价值主要体现在以下几个方面:(1)能保证软件开发的质量与进度,能对)能保证软件开发的质量与进度,能对“杂乱无章、无序管杂乱无章、无序管理理”的项目开发过程进行规范的项目开发过程进行规范(2)有利于成本控制)有利于成本控制(3)有助于提高软件开发者的职业素养)有助于提高软件开发者的职业素养(4)能够解决人员流动所带来的问题)能够解决人员流动所带来的问题(5)有利于提升公司和员工绩效管理水平,以持续改进效益)有利于提升公司和员工绩效管理水平,以持续改进效益第15章 软件工程新技术2024年7月12日第47页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念1“敏捷过程敏捷过程”在软件业中的提出在软件业中的提出 2001年年2月,月,17位位“轻量级轻量级”软件开发方法的创始人和专家软件开发方法的创始人和专家(被称为敏捷联盟)共同签署了(被称为敏捷联盟)共同签署了“敏捷软件开发宣言敏捷软件开发宣言”,标志着,标志着敏捷软件开发正式出现。该宣言声明:敏捷软件开发正式出现。该宣言声明:个体和交互个体和交互 胜过胜过 过程和工具过程和工具可工作软件可工作软件 胜过胜过 面面俱到的文档面面俱到的文档客户合作客户合作 胜过胜过 合同谈判合同谈判响应变化响应变化 胜过胜过 遵循计划遵循计划第15章 软件工程新技术2024年7月12日第48页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念2敏捷的概念敏捷的概念l敏捷软件过程很容易适应变化并迅速做出自我调整,在保证质敏捷软件过程很容易适应变化并迅速做出自我调整,在保证质量的前提下,做到文档、度量适度,适用于各类中小型软件企量的前提下,做到文档、度量适度,适用于各类中小型软件企业应用。业应用。l敏捷过程的适用范围包括以下要求:敏捷过程的适用范围包括以下要求:软件需求经常变化或者需求变化比较大软件需求经常变化或者需求变化比较大项目团队与用户之间进行沟通比较容易项目团队与用户之间进行沟通比较容易项目的开发风险比较高项目的开发风险比较高规模比较小,一般项目组成员在规模比较小,一般项目组成员在50人之内人之内项目团队的成员能力比较强,而且具有责任感项目团队的成员能力比较强,而且具有责任感项目的可测试性比较好项目的可测试性比较好第15章 软件工程新技术2024年7月12日第49页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念3敏捷宣言所遵循的敏捷宣言所遵循的 12 条原则条原则(1)人们最优先要做的是通过尽早地、持续地交付有价值的软)人们最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意。件来使客户满意。(2)即使到了开发的后期,也欢迎改变需求。敏捷过程利用变即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。化来为客户创造竞争优势。(3)经常性的交付可以工作的软件,交付的间隔可以从几个星经常性的交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。期到几个月,交付的时间间隔越短越好。(4)在整个项目开发期间,业务人员和开发人员必须天天都在在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。一起工作。(5)围绕被激励起来的个体来构建项目。给它们提供所需的环)围绕被激励起来的个体来构建项目。给它们提供所需的环境和支持,并且信任它们能够完成工作。境和支持,并且信任它们能够完成工作。第15章 软件工程新技术2024年7月12日第50页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念(6)在团队内部,最具有效果并且富有效率的传递信息的方法)在团队内部,最具有效果并且富有效率的传递信息的方法就是面对面的交谈。就是面对面的交谈。(7)工作的软件是首要的进度度量标准。工作的软件是首要的进度度量标准。(8)敏捷过程提倡可持续的开发进度。责任人、开发者和用户)敏捷过程提倡可持续的开发进度。责任人、开发者和用户应保持一个长期恒定的开发速度。应保持一个长期恒定的开发速度。(9)不断关注优秀的技能和好的设计会增强敏捷能力。不断关注优秀的技能和好的设计会增强敏捷能力。(10)简单)简单使未完成的工作最大化的艺术使未完成的工作最大化的艺术是根本的。是根本的。(11)最好的构架、需求和设计出自于自组织的团队。)最好的构架、需求和设计出自于自组织的团队。(12)每隔一定时间,团队会在如何才能更有效的工作方面进)每隔一定时间,团队会在如何才能更有效的工作方面进行反省,然后相应地对自己的行为进行调整。行反省,然后相应地对自己的行为进行调整。第15章 软件工程新技术2024年7月12日第51页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念4敏捷软件过程的特性敏捷软件过程的特性 轻载软件过程(轻载软件过程(Light Weight Software Process)基于时间基于时间 够用就好(够用就好(Just Enough)并行并行 基于构件的软件工程基于构件的软件工程敏捷软件过程模型可定义如下:敏捷软件过程模型可定义如下:敏捷软件过程模型敏捷软件过程模型=功能模型功能模型+合作模型合作模型+资源模型资源模型+产品模型产品模型第15章 软件工程新技术2024年7月12日第52页15.4.2 典型的敏捷过程模型典型的敏捷过程模型敏捷过程模型:敏捷过程模型:eXtreme Programming(XP,极限编程),极限编程)Scrum、DSDM(动态,系统开发方法)(动态,系统开发方法)自适应软件开发(自适应软件开发(Adaptive Software Development,ASD)Feature Driven Development(FDD,特性驱动开发),特性驱动开发)Crystal Family第15章 软件工程新技术2024年7月12日第53页15.4.2 典型的敏捷过程模型典型的敏捷过程模型1极限编程(极限编程(eXtreme Programming,XP)XP的目标:的目标:在规定的时间生产出满足客户需要的软件。在规定的时间生产出满足客户需要的软件。XP方法主要适用于下述情况:方法主要适用于下述情况:需求不明确、变化快;风险较高(在特定时间内,面对一个相当难开发的系统);人数不超过10个的中小型团队;开发地点适宜在集中的场合。XP体现体现4个价值目标:个价值目标:沟通、简化、反馈和勇气沟通、简化、反馈和勇气第15章 软件工程新技术2024年7月12日第54页15.4.2 典型的敏捷过程模型典型的敏捷过程模型图图15.10 XP15.10 XP方法的开发过程方法的开发过程第15章 软件工程新技术2024年7月12日第55页15.4.2 典型的敏捷过程模型典型的敏捷过程模型2Scrum 方法方法 开发软件就像是开发新产品,无法一开始就定义最终产品开发软件就像是开发新产品,无法一开始就定义最终产品的规程的规程,过程中需要研发、创意、尝试错误,所以,过程中需要研发、创意、尝试错误,所以没有一没有一种固定的流程可以保证项目成功。种固定的流程可以保证项目成功。Scrum开发团队通常由开发团队通常由59(72)人组成。)人组成。Scrum偏重项目管理,偏重项目管理,XP偏重编程实践。偏重编程实践。第15章 软件工程新技术2024年7月12日第56页15.4.2 典型的敏捷过程模型典型的敏捷过程模型3特征驱动开发(特征驱动开发(Feature Driven Development,FDD)领域对象建模。领域对象建模。按照特征开发。按照特征开发。类(代码)拥有权。类(代码)拥有权。特征小组。特征小组。审查。审查。定期构造。定期构造。配置管理。配置管理。可视性进度报告。可视性进度报告。第15章 软件工程新技术2024年7月12日第57页15.4.2 典型的敏捷过程模型典型的敏捷过程模型FDD方法包括方法包括5个过程组成,如图所示。个过程组成,如图所示。第15章 软件工程新技术2024年7月12日第58页15.5 Web 软件工程软件工程15.5.1 Web 软件工程概述软件工程概述15.5.2 Web 软件的需求分析软件的需求分析15.5.3 Web 软件的设计软件的设计15.5.4 Web 软件的测试软件的测试第15章 软件工程新技术2024年7月12日第59页15.5.1 Web 软件工程概述软件工程概述lWebAppWebApp软件几乎具备下述所有属性:软件几乎具备下述所有属性:(1 1)网络密集性()网络密集性(Network IntensiveNetwork Intensive)(2 2)访问并发性()访问并发性(ConcurrencyConcurrency)(3 3)工作负荷的跳跃性()工作负荷的跳跃性(Unpredictable loadUnpredictable load)(4 4)性能()性能(PerformancePerformance)要求苛刻)要求苛刻(5 5)安全性()安全性(SecuritySecurity)要求苛刻)要求苛刻(6 6)可用性()可用性(AvailabilityAvailability)(7 7)数据驱动()数据驱动(Data drivenData driven):):(8 8)内容敏感性()内容敏感性(Content SensitiveContent Sensitive)(9 9)持续演化()持续演化(Continuous EvolutionContinuous Evolution)(1010)即时性()即时性(ImmediacyImmediacy)(1111)美观性()美观性(AestheticsAesthetics)第15章 软件工程新技术2024年7月12日第60页15.5.1 Web 软件工程概述软件工程概述lWeb Web 工程过程工程过程 l整个整个WebWeb工程过程的框架工程过程的框架包括包括5 5个个部分部分:(1 1)客户)客户交流交流阶段阶段(2 2)计划阶段)计划阶段(3 3)建模阶段)建模阶段(4 4)构建)构建阶段阶段(5 5)部署阶段)部署阶段lWebWeb工程方法一般包括工程方法一般包括如下如下4 4种:种:(1 1)交流)交流方法方法:(2 2)需求分析方法)需求分析方法(3 3)设计)设计方法方法:(4 4)测试方法:)测试方法:第15章 软件工程新技术2024年7月12日第61页15.5.2 Web 软件的需求分析软件的需求分析根据根据WebWeb工程的分析特点,工程的分析特点,WebWeb软件的需求分析会有软件的需求分析会有以下以下5 5种主要的模型类型:种主要的模型类型:(1)内容模型)内容模型(2)交互模型)交互模型(3)功能模型)功能模型(4)配置模型)配置模型(5)导航模型)导航模型第15章 软件工程新技术2024年7月12日第62页15.5.3 Web 软件的设计软件的设计WebWeb软件的设计由需求分析阶段所获取的信息驱动,主要可分为软件的设计由需求分析阶段所获取的信息驱动,主要可分为6 6个个步骤步骤:(1)(1)内容内容设计利用内容模型作为设计利用内容模型作为建立建立内容对象设计的内容对象设计的基础;基础;(2)(2)美学美学设计建立了最终用户所关注的外观和感觉设计建立了最终用户所关注的外观和感觉;(3)(3)架构架构设计重点关注所有内容对象和功能的总体超媒体结构设计重点关注所有内容对象和功能的总体超媒体结构;(4)(4)界面设计创建了定义用户界面的总体布局和交互机制;界面设计创建了定义用户界面的总体布局和交互机制;(5)(5)导航导航设计定义了最终用户对超媒体结构的导航关系设计定义了最终用户对超媒体结构的导航关系;(6)(6)构件设计表示了构件设计表示了WebAppWebApp功能元素的详细内部结构。功能元素的详细内部结构。这这6 6个步骤分别会产生内容、美学外观、体系架构、界个步骤分别会产生内容、美学外观、体系架构、界面、导航和构件,这些都是面、导航和构件,这些都是WebWeb软件设计阶段的成果。软件设计阶段的成果。第15章 软件工程新技术2024年7月12日15.5.3 Web 软件的设计软件的设计WebAppWebApp设计的方法设计的方法1 1WebApp WebApp 界面界面设计设计2.2.美学设计美学设计3.3.内容设计内容设计4.4.体系结构设计:体系结构设计:线性、网络和层次线性、网络和层次5.5.导航设计导航设计6.6.构件级设计构件级设计第15章 软件工程新技术2024年7月12日第64页15.5.4 Web 软件的测试软件的测试l测试和评价测试和评价WebAppWebApp的质量的原则:的质量的原则:(1 1)内容:)内容:句法、语义句法、语义(2 2)功能)功能(3 3)结构)结构(4 4)易用性)易用性(5 5)导航性)导航性(6 6)性能)性能(7 7)兼容性)兼容性(8 8)互操作性)互操作性(9 9)安全性)安全性第15章 软件工程新技术2024年7月12日第65页15.6.1 软件产品线基本概念软件产品线基本概念l美国卡内基梅隆大学软件工程研究所(美国卡内基梅隆大学软件工程研究所(CMU/SEI)给出的定义:给出的定义:“产品线是一个产品集合,这些产品共享一个公产品线是一个产品集合,这些产品共享一个公 共的、可管理的特征集,这个特征集能满足选定的共的、可管理的特征集,这个特征集能满足选定的 市场或任务领域的特定需求。这些系统遵循一个预市场或任务领域的特定需求。这些系统遵循一个预 描述的方式,在公共的核心资产基础上进行开发。描述的方式,在公共的核心资产基础上进行开发。”第15章 软件工程新技术2024年7月12日第66页15.6.1 软件产品线基本概念软件产品线基本概念l软件产品线的理论基础:软件产品线的理论基础:特定领域(产品线)内的相似产品具有大量的公共部分和特特定领域(产品线)内的相似产品具有大量的公共部分和特征,通过征,通过识别和描述这些公共部分和特征识别和描述这些公共部分和特征,可以开发需求规范、,可以开发需求规范、测试用例、软件构件等产品线的公共资源。测试用例、软件构件等产品线的公共资源。典型的产品线开发过程典型的产品线开发过程包括两个关键过程:包括两个关键过程:领域工程领域工程应用工程应用工程第15章 软件工程新技术2024年7月12日第67页15.6.1 软件产品线基本概念软件产品线基本概念(1)领域)领域工程工程l主要任务:主要任务:通过识别给定领域或相似产品的公共结构和特征,通过识别给定领域或相似产品的公共结构和特征,开发开发产品线内产品的公共资源。产品线内产品的公共资源。l领域工程包括领域工程包括3个阶段:个阶段:领域分析、领域设计、领域实现领域分析、领域设计、领域实现。(2)应用工程)应用工程l应用应用工程是工程是在领域工程生成的公共资源基础上开发特定产品在领域工程生成的公共资源基础上开发特定产品。l在在产品线应用开发中,不仅仅考虑客户需求,也要受产品线公产品线应用开发中,不仅仅考虑客户需求,也要受产品线公共资源约束。共资源约束。l应用工程的应用工程的3个阶段个阶段:需求分析、系统设计、系统实现。需求分析、系统设计、系统实现。第15章 软件工程新技术2024年7月12日第68页15.6.1 软件产品线基本概念软件产品线基本概念软件产品线的软件产品线的 3 大基本活动大基本活动核心资产的开发核心资产的开发利用核心资产的产品开发利用核心资产的产品开发技术和组织管。技术和组织管。第15章 软件工程新技术2024年7月12日第69页15.6.1 软件产品线基本概念软件产品线基本概念产品线的双生存周期模型:由产品线的双生存周期模型:由STARS的双生存周期模型发展而来的双生存周期模型发展而来的(美国国防部资助的一个关于过程驱动、特定领域和基于重用的(美国国防部资助的一个关于过程驱动、特定领域和基于重用的软件开发方法的研究项目)。的软件开发方法的研究项目)。第15章 软件工程新技术2024年7月12日第70页15.6.1 软件产品线基本概念软件产品线基本概念软件产品线可以为人们软件产品线可以为人们带来大量的好处:带来大量的好处:缩短开发周期、降缩短开发周期、降低研发成本、减少低研发成本、减少产品更新和维护的产品更新和维护的难度难度提供更好的产品质提供更好的产品质量,进而在竞争中量,进而在竞争中处于领先地位,获处于领先地位,获取更大的利润。取更大的利润。软件产品线的收益图软件产品线的收益图第15章 软件工程新技术2024年7月12日第71页15.6.1 软件产品线基本概念软件产品线基本概念软件产品线工程区别于其他复用方法的地方主要在两软件产品线工程区别于其他复用方法的地方主要在两个方面:个方面:(1)软件产品线工程涉及的是一系列相关的软件产品集。)软件产品线工程涉及的是一系列相关的软件产品集。(2)软件产品的开发基于公共的复用资产,产品线中每一)软件产品的开发基于公共的复用资产,产品线中每一个产品的生产都充分利用了分析、设计、编码、计划、培训个产品的生产都充分利用了分析、设计、编码、计划、培训等已为生产其他产品所做的活动,和仅复用代码不同,复用等已为生产其他产品所做的活动,和仅复用代码不同,复用对象范围大大扩展了。对象范围大大扩展了。第15章 软件工程新技术2024年7月12日第72页15.6.3 北大青鸟工程北大青鸟工程青鸟青鸟工程简介工程简介 青鸟青鸟工程是国家重点支持的知识创新工程,是我国软件工程是国家重点支持的知识创新工程,是我国软件产业建产业建设的设的基础性工作。在基础性工作。在著名软件著名软件专家、中科院院士杨芙清专家、中科院院士杨芙清教授的教授的组织与组织与领导实施下,青鸟工程形成了包括软件工程领导实施下,青鸟工程形成了包括软件工程国家工程研国家工程研究中心、北京大学、北京航空航天大学、北大青鸟公司等科研、究中心、北京大学、北京航空航天大学、北大青鸟公司等科研、教学、产业教学、产业多方多方面的攻关群体。面的攻关群体。目标:以实用的目标:以实用的
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!