第15章软件工程新技术_第1页
第15章软件工程新技术_第2页
第15章软件工程新技术_第3页
第15章软件工程新技术_第4页
第15章软件工程新技术_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、第15章 软件工程新技术2022年3月19日第1页第第15章章 软件工程新技术软件工程新技术本章内容结构本章内容结构l本章引言本章引言l学习目标学习目标l教学内容教学内容l本章小结本章小结l思考和练习思考和练习第15章 软件工程新技术本章引言本章引言软件工程领域研究使用的新技术:软件工程领域研究使用的新技术:迭代开发,以时间换空间,消除市场风险。迭代开发,以时间换空间,消除市场风险。敏捷开发或轻量级过程,以不变应万变。敏捷开发或轻量级过程,以不变应万变。永远的永远的Beta,不断推陈出新,永无止境。,不断推陈出新,永无止境。持续集成、持续构建、全程测试。持续集成、持续构建、全程测试。知识管理,

2、将软件工程纳入知识管理的范畴。知识管理,将软件工程纳入知识管理的范畴。软件即服务软件即服务(SaaS),面向服务架构,面向服务架构(SOA)的开发思想。的开发思想。用例驱动开发,用户为本思想在软件中的体现。用例驱动开发,用户为本思想在软件中的体现。以顾客为中心的全面质量管理。以顾客为中心的全面质量管理。2022年3月19日第2页第15章 软件工程新技术2022年3月19日第3页学习目标学习目标l掌握掌握软件复用软件复用的概念、分类、关键技术及复用粒度的概念、分类、关键技术及复用粒度l理解理解基于构件的软件工程技术基于构件的软件工程技术的相关概念及应用的相关概念及应用l理解理解软件过程和标准化软

3、件过程和标准化的作用及应用的作用及应用l理解理解敏捷软件开发过程敏捷软件开发过程概念及模型概念及模型l理解理解Web 软件工程软件工程的相关概念和特色的相关概念和特色l理解理解软件产品线技术软件产品线技术的概念及发展的概念及发展第15章 软件工程新技术2022年3月19日第4页教学内容教学内容15.1 软件复用技术软件复用技术15.2 基于构件的软件工程技术基于构件的软件工程技术15.3 软件过程与标准化软件过程与标准化15.4 敏捷软件开发过程敏捷软件开发过程15.5 Web 软件工程软件工程15.6 软件产品线技术软件产品线技术15.7 本章小结和习题本章小结和习题 第15章 软件工程新技

4、术2022年3月19日第5页15.1.1 软件复用概念及分类软件复用概念及分类软件复用:软件复用:重复使用重复使用“为了复用目的而设计的软件为了复用目的而设计的软件”的过程。的过程。实施软件复用的目的:实施软件复用的目的:要使软件开发工作进行得更要使软件开发工作进行得更快、更好、更省。快、更好、更省。软件复用与共享、软件移植的区别:软件复用与共享、软件移植的区别:共享:共享:是在一个系统中多次使用一个相同的软件成是在一个系统中多次使用一个相同的软件成分分软件移值:软件移值:对一个软件进行修改,对一个软件进行修改, 使它运行于新的使它运行于新的软硬件平台软硬件平台第15章 软件工程新技术2022

5、年3月19日第6页15.1.1 软件复用概念及分类软件复用概念及分类(1)依据复用的对象分类)依据复用的对象分类产品复用、过程复用产品复用、过程复用(2)依据对可复用信息进行复用的方式分类)依据对可复用信息进行复用的方式分类黑盒复用、白盒复用黑盒复用、白盒复用(3)依据复用的组织方式分类)依据复用的组织方式分类个别的软件复用、系统化的软件复用个别的软件复用、系统化的软件复用(4)根据所应用的领域范围分类)根据所应用的领域范围分类横向复用、纵向复用横向复用、纵向复用第15章 软件工程新技术2022年3月19日第7页15.1.2 软件复用的关键技术和复用粒度软件复用的关键技术和复用粒度l软件复用有

6、软件复用有3个基本问题:个基本问题: 必须有可以复用的对象必须有可以复用的对象 所复用的对象必须是有用的所复用的对象必须是有用的 复用者需要知道如何去使用被复用的对象。复用者需要知道如何去使用被复用的对象。l软件复用包括两个相关过程:软件复用包括两个相关过程: 可复用软件(构件)的开发可复用软件(构件)的开发 基于可复用软件(构件)应用系统的构造(集成和组装)基于可复用软件(构件)应用系统的构造(集成和组装)第15章 软件工程新技术2022年3月19日第8页15.1.2 软件复用的关键技术和复用粒度软件复用的关键技术和复用粒度实现软件复用的关键技术因素:实现软件复用的关键技术因素:软件构件技术

7、、领软件构件技术、领域工程、软件构架技术、软件再工程技术、开放系域工程、软件构架技术、软件再工程技术、开放系统技术、软件过程、统技术、软件过程、CASE技术等。技术等。软件复用的非技术因素:软件复用的非技术因素:机构组织如何适应复用的机构组织如何适应复用的需求;管理方法如何适应复用的需求;开发人员知需求;管理方法如何适应复用的需求;开发人员知识的更新;创造性和工程化的关系;开发人员的心识的更新;创造性和工程化的关系;开发人员的心理障碍;知识产权问题;保守商业秘密的问题;复理障碍;知识产权问题;保守商业秘密的问题;复用前期投入的经济考虑;标准化问题等。用前期投入的经济考虑;标准化问题等。 第15

8、章 软件工程新技术2022年3月19日第9页15.2.1 中间件技术中间件技术中间件是一种独立的系统软中间件是一种独立的系统软件或服务程序件或服务程序,分布式应用,分布式应用软件借助这种软件在不同的软件借助这种软件在不同的技术之间共享资源;技术之间共享资源;中间件中间件位于客户机位于客户机/服务器的操作系服务器的操作系统之上,管理计算资源和网统之上,管理计算资源和网络通信。络通信。图图15.1 15.1 中间件概念中间件概念 第15章 软件工程新技术2022年3月19日第10页15.2.1 中间件技术中间件技术图图15.2 15.2 中间件在应用系统中的位置中间件在应用系统中的位置中间件的作用

9、:中间件的作用:建立分建立分布式软件模块之间互操布式软件模块之间互操作的机制,作的机制,屏蔽底层分屏蔽底层分布式环境的复杂性和异布式环境的复杂性和异构性构性,为处于自己上层为处于自己上层的应用软件提供运行与的应用软件提供运行与开发环境开发环境,帮助用户灵,帮助用户灵活、高效地开发和集成活、高效地开发和集成复杂的应用软件。复杂的应用软件。第15章 软件工程新技术2022年3月19日第11页15.2.1 中间件技术中间件技术1中间件要解决的问题中间件要解决的问题 (1)应用的互连和互操作问题)应用的互连和互操作问题(2)针对不同的应用领域,对中间件又有各种不同的要求)针对不同的应用领域,对中间件又

10、有各种不同的要求l中间件具有以下特点:中间件具有以下特点: 满足满足大量应用的需要;大量应用的需要; 运行于多种硬件和操作系统平台;运行于多种硬件和操作系统平台; 支持分布式计算;支持分布式计算; 提供跨网络、硬件和操作系统平台的透明性;提供跨网络、硬件和操作系统平台的透明性; 支持标准的协议和接口。支持标准的协议和接口。第15章 软件工程新技术2022年3月19日第12页15.2.1 中间件技术中间件技术2中间件的分类中间件的分类(1)根据中间件具有的功能和所提供的服务)根据中间件具有的功能和所提供的服务 面向对象中间件、消息中间件、容错中间件、反射中间面向对象中间件、消息中间件、容错中间件

11、、反射中间件件(2)基于)基于IDC分类方法分类方法 终端仿真终端仿真/屏幕转换、数据访问中间件屏幕转换、数据访问中间件 远程过程调用中间件、消息中间件远程过程调用中间件、消息中间件 交易中间件、交易中间件、 基于对象请求代理(基于对象请求代理(ORB)中间件)中间件第15章 软件工程新技术2022年3月19日第13页15.2.1 中间件技术中间件技术3中间件的发展及认识度中间件的发展及认识度早期的中间件市场中事务中间件与消息中间件占的份额最大早期的中间件市场中事务中间件与消息中间件占的份额最大,近年来随着,近年来随着Web应用的逐渐普及,应用的逐渐普及,支持支持Web服务和应用的服务和应用的

12、应用服务器中间件的占有量已经居于各类中间件的首位应用服务器中间件的占有量已经居于各类中间件的首位,消,消息中间件和事务中间件分别居第二、三名。息中间件和事务中间件分别居第二、三名。表表15.1 15.1 操作系统、数据库管理系统和中间件的类比操作系统、数据库管理系统和中间件的类比第15章 软件工程新技术2022年3月19日第14页15.2.2 构件与构件化构件与构件化构件:构件:是一些是一些可执行单元可执行单元,可以通过独立的开发、购买和配,可以通过独立的开发、购买和配置组合到一个功能系统中去,是软件系统内被标识、符合某置组合到一个功能系统中去,是软件系统内被标识、符合某种标准要求并可复用的软

13、件组成成分,类似于传统工业中的种标准要求并可复用的软件组成成分,类似于传统工业中的零部件。零部件。从广义上来讲,从广义上来讲,构件可以是被封装的对象类、类簇、一些功构件可以是被封装的对象类、类簇、一些功能模块、构件框架或构架、文档、分析件、设计模式能模块、构件框架或构架、文档、分析件、设计模式等;等;从狭义上来说,一般指对外提供的具有规约化接口、符合一从狭义上来说,一般指对外提供的具有规约化接口、符合一定标准、可替换的软件系统的定标准、可替换的软件系统的程序模块程序模块。第15章 软件工程新技术2022年3月19日第15页15.2.2 构件与构件化构件与构件化构件技术的基本思想构件技术的基本思

14、想:创建和利用可复用的软件构件来:创建和利用可复用的软件构件来解决软件开发的问题。解决软件开发的问题。可复用构件:可复用构件:具有相对独立功能和可复用价值的构件。具有相对独立功能和可复用价值的构件。构件化的软件开发方法构件化的软件开发方法是一种将一个完整系统看作是是一种将一个完整系统看作是若若干个独立部分(构件)干个独立部分(构件)组装的软件开发方法,每一部分组装的软件开发方法,每一部分是一个可重用的单元,通过是一个可重用的单元,通过替换和重新配置来完成软件替换和重新配置来完成软件的升级的升级。第15章 软件工程新技术2022年3月19日第16页15.2.3 构件模型及描述语言构件模型及描述语

15、言两个主要的构件描述模型:两个主要的构件描述模型:Tracz提出的提出的3C模型:模型:主要用于对构件的可重用信息进行主要用于对构件的可重用信息进行描述,描述, Component=(Concept,Content,Context)REBOOT项目中提出的项目中提出的REBOOT(Reuse Based on Object Oriented Techniques)模型:)模型:主要用于对可重用主要用于对可重用构件进行分类与检索,它与构件检索的关系更为密切。构件进行分类与检索,它与构件检索的关系更为密切。第15章 软件工程新技术2022年3月19日第17页15.2.3 构件模型及描述语言构件模型

16、及描述语言 北京大学北京大学青鸟构件模型青鸟构件模型是一个具有面向对象风格的模型,从是一个具有面向对象风格的模型,从3个不同的、相互正交的视角来看待构件,每个具体的构件都是形态个不同的、相互正交的视角来看待构件,每个具体的构件都是形态、层次和表示构成的三维空间中的一个点。、层次和表示构成的三维空间中的一个点。构件形态构件形态:类、类树、框架、设计模式、体系结构;:类、类树、框架、设计模式、体系结构;构件层次构件层次:分析件、设计件、编码件、测试件:分析件、设计件、编码件、测试件构件的表示与层次有关构件的表示与层次有关,不同层次的构件具有不同的表示媒,不同层次的构件具有不同的表示媒介和手段,如图

17、形、复合文档、正文、伪码、编程语言、目介和手段,如图形、复合文档、正文、伪码、编程语言、目标码等。标码等。青鸟构件模型从青鸟构件模型从9个方面个方面来描述构件,即来描述构件,即概念、操作规约、接口概念、操作规约、接口、类型、实现体、构件复合、类型、实现体、构件复合、 构件性质、构件注释、构件构件性质、构件注释、构件语境。语境。第15章 软件工程新技术2022年3月19日第18页15.2.3 构件模型及描述语言构件模型及描述语言l构件实现模型标准:构件实现模型标准:CORBA、COM/DCOM/COM+、JavaBeans /EJBl基本思想:基本思想:第一,采用将构件的接口和实现相分离的原则;

18、第一,采用将构件的接口和实现相分离的原则;第二,采用黑盒重用的方式,外界仅可以通过构件的接第二,采用黑盒重用的方式,外界仅可以通过构件的接口来访问构件的功能;口来访问构件的功能;第三,在实现方法上都使用接口描述语言(第三,在实现方法上都使用接口描述语言(Interface Description Language,IDL)进行构件接口定义,利)进行构件接口定义,利用相应的中间件作为支持该构件模型的运行时环境,从用相应的中间件作为支持该构件模型的运行时环境,从而达到由不同的编程语言所实现、运行在不同的操作系而达到由不同的编程语言所实现、运行在不同的操作系统环境中及在不同主机上的构件都能相互交互的

19、目的。统环境中及在不同主机上的构件都能相互交互的目的。第15章 软件工程新技术2022年3月19日第19页15.2.3 构件模型及描述语言构件模型及描述语言l主要不同在于技术的提出者及应用背景主要不同在于技术的提出者及应用背景 COM/DCOM是由是由微软公司微软公司提出的,由于提出的,由于Microsoft在在PC软件领域的垄断地位,因此在基于软件领域的垄断地位,因此在基于Microsoft的环境的环境中,使用中,使用COM/DCOM/COM+是一种当然的选择;是一种当然的选择; CORBA是由是由OMG组织组织提出的,它的标准是开放的,并提出的,它的标准是开放的,并且且OMG成员广泛,所以

20、成员广泛,所以CORBA最具普遍性,是异构环最具普遍性,是异构环境中的理想选择;境中的理想选择; 在在Internet 和移动计算(如手机)中,和移动计算(如手机)中,Java是普遍采用是普遍采用的一种技术,因此的一种技术,因此JavaBeans/EJB在这类在这类Internet和移和移动计算应用环境中比较适合动计算应用环境中比较适合。第15章 软件工程新技术2022年3月19日第20页15.2.3 构件模型及描述语言构件模型及描述语言构件描述语言构件描述语言 比较典型的有比较典型的有CORBA规范中的规范中的接口描述语言接口描述语言IDLUML规范中的规范中的对象约束语言对象约束语言OCL

21、北大青鸟构件系统中的北大青鸟构件系统中的青鸟构件描述语言青鸟构件描述语言JBCDL加州理工大学提出的加州理工大学提出的构件描述语言构件描述语言CDL等等第15章 软件工程新技术2022年3月19日第21页15.2.4 构件的检索与组装构件的检索与组装1构件的检索构件的检索W.Frakes从构件表示出发,将现有方法分为从构件表示出发,将现有方法分为人工人工智能方法、超文本方法和信息科学方法智能方法、超文本方法和信息科学方法3类。类。H.Mili则按照复杂度和检索效果的递增,将其分为则按照复杂度和检索效果的递增,将其分为基于正文的、基于词法描述符的、基于规约的分类基于正文的、基于词法描述符的、基于

22、规约的分类和检索和检索3类。类。第15章 软件工程新技术2022年3月19日第22页15.2.4 构件的检索与组装构件的检索与组装W.Fr akes重点讨论了信息科学方法,因为这是实际复用项目重点讨论了信息科学方法,因为这是实际复用项目中,应用较为成功的途径。将信息科学方法分为中,应用较为成功的途径。将信息科学方法分为基于受控词基于受控词汇表和基于不受控词汇表分类汇表和基于不受控词汇表分类两种形式。两种形式。图图15.3 15.3 信息科学的编目方法分类图信息科学的编目方法分类图第15章 软件工程新技术2022年3月19日第23页15.2.4 构件的检索与组装构件的检索与组装l常用分类方式常用

23、分类方式枚举分类枚举分类刻面分类刻面分类属性值分类属性值分类正文检索正文检索关键词分类关键词分类第15章 软件工程新技术2022年3月19日第24页15.2.4 构件的检索与组装构件的检索与组装2构件组装技术构件组装技术l目的:目的:利用现有的构件组装成新的系统利用现有的构件组装成新的系统。l本质:本质:是在是在构件之间建立关联构件之间建立关联,根据这种关联,协调,根据这种关联,协调它们的行为,把它们组织成为一个有机的整体。它们的行为,把它们组织成为一个有机的整体。l构件组装的研究内容包括两部分:构件组装的研究内容包括两部分: 对对复合构件形成过程的复合构件形成过程的研究研究 面向面向体系结构

24、(或者组装框架)的体系结构(或者组装框架)的研究研究第15章 软件工程新技术2022年3月19日第25页15.2.4 构件的检索与组装构件的检索与组装3构件组装技术及方法的分类构件组装技术及方法的分类(1)根据组装场景的不同分类)根据组装场景的不同分类不同的组装层次:不同的组装层次:源代码级的组装、运行级组装源代码级的组装、运行级组装不同的组装模式不同的组装模式 静态组装:设计时的组装。静态组装:设计时的组装。 动态组装:运行动态组装:运行时的组装时的组装。(2)按照构件在组装之前需要对构件内部细节了解的)按照构件在组装之前需要对构件内部细节了解的程度及是否需要进行修改、封装程度及是否需要进行

25、修改、封装黑黑盒组装方式、白盒组装方式和灰盒组装盒组装方式、白盒组装方式和灰盒组装方式方式第15章 软件工程新技术2022年3月19日第26页15.2.4 构件的检索与组装构件的检索与组装4构件组装的实现方法构件组装的实现方法(1)以)以框架为基础框架为基础的方法的方法(2)以)以连接件连接件为基础的方法为基础的方法(3)以)以胶合代码胶合代码为基础的方法为基础的方法(4)基于)基于总线总线的方法的方法第15章 软件工程新技术2022年3月19日第27页15.2.5 基于构件的软件工程方法基于构件的软件工程方法l基于构件的软件工程(基于构件的软件工程(Component-Based Softw

26、are Engineering,CBSE):以):以面向对象的方法面向对象的方法为基础,为基础,强调强调软件重用的作用软件重用的作用,在软件体系结构设计的基础上,使用可复,在软件体系结构设计的基础上,使用可复用的软件用的软件“构件构件”来设计和构造基于计算机的系统过程。来设计和构造基于计算机的系统过程。l基于构件的开发(基于构件的开发( CBD, Component-Based Development):是一个与领域活动并行的):是一个与领域活动并行的CBSE活动。为活动。为了实现软件重用,基于构件的软件工程了实现软件重用,基于构件的软件工程强调领域工程与软件强调领域工程与软件工程同步进行工程

27、同步进行。第15章 软件工程新技术2022年3月19日第28页15.2.5 基于构件的软件工程方法基于构件的软件工程方法图图15.4 15.4 一个典型的可重用的过程模型一个典型的可重用的过程模型图图15.4给出了一个典型的可重用的过程模型,描述了领域工给出了一个典型的可重用的过程模型,描述了领域工程与软件工程的关系。程与软件工程的关系。第15章 软件工程新技术2022年3月19日第29页15.2.5 基于构件的软件工程方法基于构件的软件工程方法图图15.5给出了一个基于构件的开发模型。该模型中,建模和构建给出了一个基于构件的开发模型。该模型中,建模和构建活动开始于识别可选构件。这些构件有些设

28、计成通用的软件模块活动开始于识别可选构件。这些构件有些设计成通用的软件模块,有些设计成面向对象的类或软件包。,有些设计成面向对象的类或软件包。图图15.5 15.5 基于构件的开发模型基于构件的开发模型第15章 软件工程新技术2022年3月19日第30页15.2.5 基于构件的软件工程方法基于构件的软件工程方法u基于构件的开发模型可以由以下步骤组成(采用演基于构件的开发模型可以由以下步骤组成(采用演进方法):进方法):(1)对于该问题领域的基于构件的可用产品进)对于该问题领域的基于构件的可用产品进行研究和评估行研究和评估(2)考虑构件集成的问题)考虑构件集成的问题 (3)设计软件架构以容纳这些

29、构件)设计软件架构以容纳这些构件(4)将构件集成到架构中)将构件集成到架构中(5)进行充分的测试以保证功能正常)进行充分的测试以保证功能正常第15章 软件工程新技术2022年3月19日第31页15.2.5 基于构件的软件工程方法基于构件的软件工程方法基于构件的开发模型存在的问题:基于构件的开发模型存在的问题:(1)构件的信赖度问题)构件的信赖度问题(2)构件认证)构件认证(3)自然特性预测)自然特性预测(4)需求折中)需求折中第15章 软件工程新技术2022年3月19日第32页15.2.6 SOA 与与SaaSSOA凭借其松耦合的凭借其松耦合的特性,使得企业可以特性,使得企业可以按照模块化的方

30、式来按照模块化的方式来添加新服务或更新现添加新服务或更新现有服务,以解决新的有服务,以解决新的业务需要,从而可以业务需要,从而可以通过不同的渠道提供通过不同的渠道提供服务,并可以把企业服务,并可以把企业现有的应用作为服务现有的应用作为服务,从而保护了现有的,从而保护了现有的IT基础建设投资。基础建设投资。图图15.6 15.6 面向服务的分析与设计原理示意图面向服务的分析与设计原理示意图第15章 软件工程新技术2022年3月19日第33页15.2.6 SOA 与与SaaSlSOA模型的典型特征:模型的典型特征:松散耦合、粗粒度服务和标准化接口松散耦合、粗粒度服务和标准化接口lSOA的设计实践原

31、则:的设计实践原则:业务驱动服务,服务驱动技术;业务业务驱动服务,服务驱动技术;业务敏捷是基本的业务需求。敏捷是基本的业务需求。lSOA的目标:的目标:最大限度地重用现有服务以提高最大限度地重用现有服务以提高IT 的适应能力的适应能力和利用效率。和利用效率。图图15.7 15.7 一个完整的面向服务的体系结构模型一个完整的面向服务的体系结构模型第15章 软件工程新技术2022年3月19日第34页15.2.6 SOA 与与SaaS图图15.8 15.8 单个服务内部结构单个服务内部结构第15章 软件工程新技术2022年3月19日第35页15.2.6 SOA 与与SaaSuSaaS(Softwar

32、e-as-a-Service,软件即服务),软件即服务),国内通常叫做软件运营服务模式,简称为软营模式国内通常叫做软件运营服务模式,简称为软营模式:是一种通过是一种通过Internet 提供软件的模式,厂商将应提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商订购所需的应用自己实际需求,通过互联网向厂商订购所需的应用软件服务,按订购的服务多少和时间长短向厂商支软件服务,按订购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务付费用,并通过互联网获得厂商提供的服务。第15章 软件工程新技术

33、2022年3月19日第36页15.3 软件过程与标准化软件过程与标准化软件过程:软件过程:软件生存周期中,将用户需求转化为可执软件生存周期中,将用户需求转化为可执行系统的演化过程所进行的软件工程活动的全体,是行系统的演化过程所进行的软件工程活动的全体,是用于用于生产软件产品的工具、方法和实践的集合生产软件产品的工具、方法和实践的集合。软件过程技术的目标:软件过程技术的目标:通过工程化、标准化和形式化通过工程化、标准化和形式化的方法管理软件的开发过程,从而改变目前的软件生的方法管理软件的开发过程,从而改变目前的软件生产方式,实现产方式,实现大规模的软件生产大规模的软件生产。软件过程的研究:软件过

34、程的研究:主要针对软件生产和管理,不仅要主要针对软件生产和管理,不仅要有工程观点,还要有有工程观点,还要有系统观点、管理观点、运行观点系统观点、管理观点、运行观点和用户观点和用户观点。第15章 软件工程新技术2022年3月19日第37页15.3.1 软件过程及其改进软件过程及其改进软件过程改进:软件过程改进:在软件过程活动中,为了更有效地达在软件过程活动中,为了更有效地达到优化软件过程的目的所实施的改善或改变其软件过到优化软件过程的目的所实施的改善或改变其软件过程的系列活动。程的系列活动。软件过程改进主要包括以下几个关键步骤:软件过程改进主要包括以下几个关键步骤: 对比目前的状态和期望达到的状

35、态,找出存在的差距对比目前的状态和期望达到的状态,找出存在的差距 确定要改变哪些差距,需要改变到什么程度确定要改变哪些差距,需要改变到什么程度 制定相应的具体实施计划制定相应的具体实施计划第15章 软件工程新技术2022年3月19日第38页15.3.2 ISO 9000 标准标准ISO 9000是国际标准化组织是国际标准化组织ISO制定的世界上第一套质量管理制定的世界上第一套质量管理和质量保证标准,和质量保证标准,主要目的是为了满足国际贸易中对质量管理主要目的是为了满足国际贸易中对质量管理和质量保证需要有共同语言和共同准则的需要。和质量保证需要有共同语言和共同准则的需要。表表15.3 ISO

36、900015.3 ISO 9000标准体系标准体系第15章 软件工程新技术2022年3月19日第39页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)CMM(Capability Maturity Model)是卡内基梅隆大学软件是卡内基梅隆大学软件工程研究院工程研究院SEI受美国国防部委托制定的软件过程的改良、评受美国国防部委托制定的软件过程的改良、评估模型,也称为估模型,也称为SEI SW-CMM(Software Engineering Institute Software-Capability Maturity Model)。)。该模型于该模型于1991年发布,并发展成为

37、系列标准模型,描述了有年发布,并发展成为系列标准模型,描述了有效的软件过程单元的框架,为软件机构提供了一条从混乱的效的软件过程单元的框架,为软件机构提供了一条从混乱的、不成熟的软件过程向成熟的、有纪律的软件过程改进的途、不成熟的软件过程向成熟的、有纪律的软件过程改进的途径。径。CMM涵盖了有关计划、设计和管理软件开发和维护的实践,涵盖了有关计划、设计和管理软件开发和维护的实践,软件机构只要遵循这些实践,就能够提高该机构的能力,以软件机构只要遵循这些实践,就能够提高该机构的能力,以满足成本、进度计划、功能及产品质量等目标满足成本、进度计划、功能及产品质量等目标。第15章 软件工程新技术2022年

38、3月19日第40页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)1)初始级()初始级(Initial)2)可重复级()可重复级(Repeatable)3)已定义级()已定义级(Defined)4)已管理级()已管理级(Managed)5) 优化级(优化级(Optimizing) 图图15.9 CMM15.9 CMM模型的模型的5 5个成熟级个成熟级1CMM 的内容的内容第15章 软件工程新技术2022年3月19日第41页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)表表15.4 15.4 软件过程的可视性与各成熟度能力模型的比较软件过程的可视性与各成熟度能力模型

39、的比较第15章 软件工程新技术2022年3月19日第42页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)2关键过程域关键过程域(Key Process Area, KPA)一系列相互影响的关键操作活动,这些活动反映一个软一系列相互影响的关键操作活动,这些活动反映一个软件组织改进软件过程时,必须集中力量改进的几个方面件组织改进软件过程时,必须集中力量改进的几个方面第15章 软件工程新技术2022年3月19日第43页15.3.3 软件能力成熟度模型(软件能力成熟度模型(CMM)3CMM 实施中应注意的问题实施中应注意的问题 (1)剪裁的问题)剪裁的问题(2)ISO 9000与与CM

40、M的关系的关系(3)时间和效果的问题)时间和效果的问题CMM只是说明达到某一级别必须做的工作,并未说明如只是说明达到某一级别必须做的工作,并未说明如何实施何实施CMM费用远大于实施费用远大于实施ISO 9000的费用的费用 实际一个管理过程的改进是一步步实现的实际一个管理过程的改进是一步步实现的第15章 软件工程新技术2022年3月19日第44页15.3.4 PSP、TSP 和和CMMI1个体软件过程(个体软件过程(Personal Software Process,PSP)PSP可以为基于个体和小型群组软件过程的优化提供具体而可以为基于个体和小型群组软件过程的优化提供具体而有效的途径,有效的

41、途径,PSP的着眼点在于软件缺陷的预防的着眼点在于软件缺陷的预防2小组软件开发过程(小组软件开发过程(Team Software Process,TSP)TSP实施集体管理与自己管理相结合的原则,最终目的在于实施集体管理与自己管理相结合的原则,最终目的在于指导一切人员如何在最少的时间内,以预定的费用生产出高指导一切人员如何在最少的时间内,以预定的费用生产出高质量的软件产品。质量的软件产品。第15章 软件工程新技术2022年3月19日第45页15.3.4 PSP、TSP 和和CMMI3能力成熟度集成模型(能力成熟度集成模型(Capability MaturityModel Integration

42、,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章 软件工程新技术2022年3月19日第46页15.3.4 PSP、TSP 和和CMMICMMI为企业带来价值主要体现在以下几个方面:为企业带来价值主要体现在以下几个方面:(1)能

43、保证软件开发的质量与进度,能对)能保证软件开发的质量与进度,能对“杂乱无章、无序管杂乱无章、无序管理理”的项目开发过程进行规范的项目开发过程进行规范(2)有利于成本控制)有利于成本控制(3)有助于提高软件开发者的职业素养)有助于提高软件开发者的职业素养(4)能够解决人员流动所带来的问题)能够解决人员流动所带来的问题(5)有利于提升公司和员工绩效管理水平,以持续改进效益)有利于提升公司和员工绩效管理水平,以持续改进效益第15章 软件工程新技术2022年3月19日第47页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念1“敏捷过程敏捷过程”在软件业中的提出在软件业中的提出 2001年年2

44、月,月,17位位“轻量级轻量级”软件开发方法的创始人和专家软件开发方法的创始人和专家(被称为敏捷联盟)共同签署了(被称为敏捷联盟)共同签署了“敏捷软件开发宣言敏捷软件开发宣言”,标志着,标志着敏捷软件开发正式出现。该宣言声明:敏捷软件开发正式出现。该宣言声明:个体和交互个体和交互 胜过胜过 过程和工具过程和工具可工作软件可工作软件 胜过胜过 面面俱到的文档面面俱到的文档客户合作客户合作 胜过胜过 合同谈判合同谈判响应变化响应变化 胜过胜过 遵循计划遵循计划第15章 软件工程新技术2022年3月19日第48页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念2敏捷的概念敏捷的概念l敏捷软

45、件过程很容易适应变化并迅速做出自我调整,在保证敏捷软件过程很容易适应变化并迅速做出自我调整,在保证质量的前提下,做到文档、度量适度,适用于各类中小型软质量的前提下,做到文档、度量适度,适用于各类中小型软件企业应用。件企业应用。l敏捷过程的适用范围包括以下要求:敏捷过程的适用范围包括以下要求: 软件需求经常变化或者需求变化比较大软件需求经常变化或者需求变化比较大 项目团队与用户之间进行沟通比较容易项目团队与用户之间进行沟通比较容易 项目的开发风险比较高项目的开发风险比较高 规模比较小,一般项目组成员在规模比较小,一般项目组成员在50人之内人之内 项目团队的成员能力比较强,而且具有责任感项目团队的

46、成员能力比较强,而且具有责任感 项目的可测试性比较好项目的可测试性比较好第15章 软件工程新技术2022年3月19日第49页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念3敏捷宣言所遵循的敏捷宣言所遵循的 12 条原则条原则 (1)人们最优先要做的是通过尽早地、持续地交付有价值的软)人们最优先要做的是通过尽早地、持续地交付有价值的软件来使客户满意。件来使客户满意。(2) 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。化来为客户创造竞争优势。(3) 经常性的交付可以工作的软件,交付的间隔可以从几个星经常性的

47、交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。期到几个月,交付的时间间隔越短越好。(4) 在整个项目开发期间,业务人员和开发人员必须天天都在在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。一起工作。 (5)围绕被激励起来的个体来构建项目。给它们提供所需的环)围绕被激励起来的个体来构建项目。给它们提供所需的环境和支持,并且信任它们能够完成工作。境和支持,并且信任它们能够完成工作。第15章 软件工程新技术2022年3月19日第50页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念(6)在团队内部,最具有效果并且富有效率的传递信息的方法)在团队内

48、部,最具有效果并且富有效率的传递信息的方法就是面对面的交谈。就是面对面的交谈。(7) 工作的软件是首要的进度度量标准。工作的软件是首要的进度度量标准。(8)敏捷过程提倡可持续的开发进度。责任人、开发者和用户)敏捷过程提倡可持续的开发进度。责任人、开发者和用户应保持一个长期恒定的开发速度。应保持一个长期恒定的开发速度。(9) 不断关注优秀的技能和好的设计会增强敏捷能力。不断关注优秀的技能和好的设计会增强敏捷能力。(10)简单)简单使未完成的工作最大化的艺术使未完成的工作最大化的艺术是根本的。是根本的。(11)最好的构架、需求和设计出自于自组织的团队。)最好的构架、需求和设计出自于自组织的团队。(

49、12)每隔一定时间,团队会在如何才能更有效的工作方面进)每隔一定时间,团队会在如何才能更有效的工作方面进行反省,然后相应地对自己的行为进行调整。行反省,然后相应地对自己的行为进行调整。第15章 软件工程新技术2022年3月19日第51页15.4.1 敏捷及敏捷过程相关概念敏捷及敏捷过程相关概念4敏捷软件过程的特性敏捷软件过程的特性 轻载软件过程(轻载软件过程(Light Weight Software Process) 基于时间基于时间 够用就好(够用就好(Just Enough) 并行并行 基于构件的软件工程基于构件的软件工程敏捷软件过程模型可定义如下:敏捷软件过程模型可定义如下: 敏捷软件

50、过程模型敏捷软件过程模型= 功能模型功能模型+ 合作模型合作模型+ 资源模型资源模型+ 产品模型产品模型第15章 软件工程新技术2022年3月19日第52页15.4.2 典型的敏捷过程模型典型的敏捷过程模型敏捷过程模型:敏捷过程模型: eXtreme Programming(XP,极限编程),极限编程) Scrum、DSDM(动态,系统开发方法)(动态,系统开发方法) 自适应软件开发(自适应软件开发(Adaptive Software Development,ASD) Feature Driven Development(FDD,特性驱动开发),特性驱动开发) Crystal Family第1

51、5章 软件工程新技术2022年3月19日第53页15.4.2 典型的敏捷过程模型典型的敏捷过程模型1极限编程(极限编程(eXtreme Programming,XP) XP的目标:的目标:在规定的时间生产出满足客户需要的软件。在规定的时间生产出满足客户需要的软件。 XP方法主要适用于下述情况:方法主要适用于下述情况: 需求不明确、变化快; 风险较高(在特定时间内,面对一个相当难开发的系统); 人数不超过10个的中小型团队; 开发地点适宜在集中的场合。 XP体现体现4个价值目标:个价值目标:沟通、简化、反馈和勇气沟通、简化、反馈和勇气第15章 软件工程新技术2022年3月19日第54页15.4.

52、2 典型的敏捷过程模型典型的敏捷过程模型图图15.10 XP15.10 XP方法的开发过程方法的开发过程第15章 软件工程新技术2022年3月19日第55页15.4.2 典型的敏捷过程模型典型的敏捷过程模型2Scrum 方法方法 开发软件就像是开发新产品,无法一开始就定义最终产品开发软件就像是开发新产品,无法一开始就定义最终产品的规程的规程 ,过程中需要研发、创意、尝试错误,所以,过程中需要研发、创意、尝试错误,所以没有没有一种固定的流程可以保证项目成功。一种固定的流程可以保证项目成功。 Scrum开发团队通常由开发团队通常由59(72)人组成。)人组成。 Scrum偏重项目管理,偏重项目管理

53、,XP偏重编程实践。偏重编程实践。第15章 软件工程新技术2022年3月19日第56页15.4.2 典型的敏捷过程模型典型的敏捷过程模型3特征驱动开发(特征驱动开发(Feature Driven Development,FDD) 领域对象建模。领域对象建模。 按照特征开发。按照特征开发。 类(代码)拥有权。类(代码)拥有权。 特征小组。特征小组。 审查。审查。 定期构造。定期构造。 配置管理。配置管理。 可视性进度报告。可视性进度报告。 第15章 软件工程新技术2022年3月19日第57页15.4.2 典型的敏捷过程模型典型的敏捷过程模型FDD方法包括方法包括5个过程组成,如图所示。个过程组成

54、,如图所示。 第15章 软件工程新技术2022年3月19日第58页15.5 Web 软件工程软件工程15.5.1 Web 软件工程概述软件工程概述15.5.2 Web 软件的需求分析软件的需求分析15.5.3 Web 软件的设计软件的设计15.5.4 Web 软件的测试软件的测试第15章 软件工程新技术2022年3月19日第59页15.5.1 Web 软件工程概述软件工程概述WebAppWebApp软件几乎具备下述所有属性:软件几乎具备下述所有属性:(1 1)网络密集性()网络密集性(Network IntensiveNetwork Intensive)(2 2)访问并发性()访问并发性(Co

55、ncurrencyConcurrency)(3 3)工作负荷的跳跃性()工作负荷的跳跃性(Unpredictable loadUnpredictable load)(4 4)性能()性能(PerformancePerformance)要求苛刻)要求苛刻(5 5)安全性()安全性(SecuritySecurity)要求苛刻)要求苛刻(6 6)可用性()可用性(AvailabilityAvailability)(7 7)数据驱动()数据驱动(Data drivenData driven):):(8 8)内容敏感性()内容敏感性(Content SensitiveContent Sensitive)

56、(9 9)持续演化()持续演化(Continuous EvolutionContinuous Evolution)(1010)即时性()即时性(ImmediacyImmediacy)(1111)美观性()美观性(AestheticsAesthetics)第15章 软件工程新技术2022年3月19日第60页15.5.1 Web 软件工程概述软件工程概述Web Web 工程过程工程过程 l整个整个WebWeb工程过程的框架工程过程的框架包括包括5 5个部分个部分: :(1 1)客户)客户交流交流阶段阶段(2 2)计划阶段)计划阶段(3 3)建模阶段)建模阶段(4 4)构建)构建阶段阶段(5 5)部

57、署阶段)部署阶段lWebWeb工程方法一般包括工程方法一般包括如下如下4 4种:种:(1 1)交流)交流方法方法:(2 2)需求分析方法)需求分析方法(3 3)设计)设计方法方法:(4 4)测试方法:)测试方法:第15章 软件工程新技术2022年3月19日第61页15.5.2 Web 软件的需求分析软件的需求分析根据根据WebWeb工程的分析特点,工程的分析特点,WebWeb软件的需求分析会有以软件的需求分析会有以下下5 5种主要的模型类型:种主要的模型类型:(1)内容模型)内容模型(2)交互模型)交互模型(3)功能模型)功能模型(4)配置模型)配置模型(5)导航模型)导航模型第15章 软件工

58、程新技术2022年3月19日第62页15.5.3 Web 软件的设计软件的设计WebWeb软件的设计由需求分析阶段所获取的信息驱动,主要可分为软件的设计由需求分析阶段所获取的信息驱动,主要可分为6 6个个步骤:步骤:(1)(1)内容设计利用内容模型作为建立内容对象设计的基础;内容设计利用内容模型作为建立内容对象设计的基础;(2)(2)美学设计建立了最终用户所关注的外观和感觉;美学设计建立了最终用户所关注的外观和感觉;(3)(3)架构设计重点关注所有内容对象和功能的总体超媒体结构;架构设计重点关注所有内容对象和功能的总体超媒体结构;(4)(4)界面设计创建了定义用户界面的总体布局和交互机制;界面

59、设计创建了定义用户界面的总体布局和交互机制;(5)(5)导航设计定义了最终用户对超媒体结构的导航关系;导航设计定义了最终用户对超媒体结构的导航关系;(6)(6)构件设计表示了构件设计表示了WebAppWebApp功能元素的详细内部结构。功能元素的详细内部结构。这这6 6个步骤分别会产生内容、美学外观、体系架构、界个步骤分别会产生内容、美学外观、体系架构、界面、导航和构件,这些都是面、导航和构件,这些都是WebWeb软件设计阶段的成果。软件设计阶段的成果。第15章 软件工程新技术2022年3月19日15.5.3 Web 软件的设计软件的设计WebAppWebApp设计的方法设计的方法1 1Web

60、App WebApp 界面设计界面设计2.2.美学设计美学设计3.3.内容设计内容设计4.4.体系结构设计:体系结构设计:线性、网络和层次线性、网络和层次5.5.导航设计导航设计6.6.构件级设计构件级设计第15章 软件工程新技术2022年3月19日第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

温馨提示

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

评论

0/150

提交评论