第15章软件工程新技术
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019年9月26日
第15章 软件工程新技术
第3页
教学内容
15.1 软件复用技术 15.2 基于构件的软件工程技术 15.3 软件过程与标准化 15.4 敏捷软件开发过程 15.5 Web 软件工程 15.6 软件产品线技术 15.7 本章小结和习题
2019年9月26日
第15章 软件工程新技术
第4页
常用分类方式
枚举分类 刻面分类 属性值分类 正文检索 关键词分类
2019年9月26日
第15章 软件工程新技术
第23页
15.2.4 构件的检索与组装
2.构件组装技术 目的:利用现有的构件组装成新的系统。 本质:是在构件之间建立关联,根据这种关联,协调
它们的行为,把它们组织成为一个有机的整体。
2019年9月26日
第15章 软件工程新技术
第16页
15.2.3 构件模型及描述语言
北京大学青鸟构件模型是一个具有面向对象风格的模型,从3 个不同的、相互正交的视角来看待构件,每个具体的构件都是形态 、层次和表示构成的三维空间中的一个点。
构件形态:类、类树、框架、设计模式、体系结构; 构件层次:分析件、设计件、编码件、测试件 构件的表示与层次有关,不同层次的构件具有不同的表示媒
第15章 软件工程新技术
第19页
15.2.3 构件模型及描述语言
构件描述语言
比较典型的有CORBA规范中的接口描述语言IDL UML规范中的对象约束语言OCL 北大青鸟构件系统中的青鸟构件描述语言JBCDL 加州理工大学提出的构件描述语言CDL等
2019年9月26日
第15章 软件工程新技术
2019年9月26日
图15.4 一个典型的可重用的过程模型
第15章 软件工程新技术
第28页
15.2.5 基于构件的软件工程方法
第10页
15.2.1 中间件技术
1.中间件要解决的问题
(1)应用的互连和互操作问题 (2)针对不同的应用领域,对中间件又有各种不同的要求
中间件具有以下特点:
满足大量应用的需要; 运行于多种硬件和操作系统平台; 支持分布式计算; 提供跨网络、硬件和操作系统平台的透明性; 支持标准的协议和接口。
从广义上来讲,构件可以是被封装的对象类、类簇、一些功 能模块、构件框架或构架、文档、分析件、设计模式等;
从狭义上来说,一般指对外提供的具有规约化接口、符合一 定标准、可替换的软件系统的程序模块。
2019年9月26日
第15章 软件工程新技术
第14页
15.2.2 构件与构件化
构件技术的基本思想:创建和利用可复用的软件构件来 解决软件开发的问题。
两个主要的构件描述模型: Tracz提出的3C模型:主要用于对构件的可重用信息进行
描述, Component=(Concept,Content,Context)
REBOOT项目中提出的REBOOT(Reuse Based on Object Oriented Techniques)模型:主要用于对可重用 构件进行分类与检索,它与构件检索的关系更为密切。
静态组装:设计时的组装。 动态组装:运行时的组装。
(2)按照构件在组装之前需要对构件内部细节了解的 程度及是否需要进行修改、封装
黑盒组装方式、白盒组装方式和灰盒组装方式
2019年9月26日
第15章 软件工程新技术
第25页
15.2.4 构件的检索与组装
4.构件组装的实现方法
(1)以框架为基础的方法 (2)以连接件为基础的方法 (3)以胶合代码为基础的方法 (4)基于总线的方法
2019年9月26日
第15章 软件工程新技术
第8页
15.2.1 中间件技术
中间件是一种独立的系统软 件或服务程序,分布式应用 软件借助这种软件在不同的 技术之间共享资源;中间件 位于客户机/服务器的操作 系统之上,管理计算资源和 网络通信。
图15.1 中间件概念
2019年9月26日
第15章 软件工程新技术
第9页
15.2.1 中间件技术
中间件的作用:建立分 布式软件模块之间互操 作的机制,屏蔽底层分 布式环境的复杂性和异 构性,为处于自己上层 的应用软件提供运行与 开发环境,帮助用户灵 活、高效地开发和集成 复杂的应用软件。
2019年9月26日
图15.2 中间件在应用系统中的位置
第15章 软件工程新技术
2019年9月26日
第15章 软件工程新技术
第11页
15.2.1 中间件技术
2.中间件的分类 (1)根据中间件具有的功能和所提供的服务
面向对象中间件、消息中间件、容错中间件、反射中间 件
(2)基于IDC分类方法
终端仿真/屏幕转换、数据访问中间件 远程过程调用中间件、消息中间件 交易中间件、 基于对象请求代理(ORB)中间件
第15章 软件工程新技术
本章内容结构
本章引言 学习目标 教学内容 本章小结 思考和练习
2019年9月26日
第15章 软件工程新技术
第1页
本章引言
软件工程领域研究使用的新技术:
迭代开发,以时间换空间,消除市场风险。 敏捷开发或轻量级过程,以不变应万变。 永远的Beta,不断推陈出新,永无止境。 持续集成、持续构建、全程测试。 知识管理,将软件工程纳入知识管理的范畴。 软件即服务(SaaS),面向服务架构(SOA)的开发思想。 用例驱动开发,用户为本思想在软件中的体现。 以顾客为中心的全面质量管理。
2019年9月26日
第15章 软件工程新技术
第5页
15.1.1 软件复用概念及分类
(1)依据复用的对象分类
产品复用、过程复用
(2)依据对可复用信息进行复用的方式分类
黑盒复用、白盒复用
(3)依据复用的组织方式分类
个别的软件复用、系统化的软件复用
(4)根据所应用的领域范围分类
横向复用、纵向复用
2019年9月26日
第15章 软件工程新技术
第12页
15.2.1 中间件技术
3.中间件的发展及认识度
早期的中间件市场中事务中间件与消息中间件占的份额最大 ,近年来随着Web应用的逐渐普及,支持Web服务和应用的 应用服务器中间件的占有量已经居于各类中间件的首位,消 息中间件和事务中间件分别居第二、三名。
基于构件的开发( CBD, Component-Based Development):是一个与领域活动并行的CBSE活动。为 了实现软件重用,基于构件的软件工程强调领域工程与软件 工程同步进行。
2019年9月26日
第15章 软件工程新技术
第27页
15.2.5 基于构件的软件工程方法
图15.4给出了一个典型的可重用的过程模型,描述了领域工 程与软件工程的关系。
2019年9月26日
第15章 软件工程新技术
第18页
15.2.3 构件模型及描述语言
主要不同在于技术的提出者及应用背景
COM/DCOM是由微软公司提出的,由于Microsoft在 PC软件领域的垄断地位,因此在基于Microsoft的环境 中,使用COM/DCOM/COM+是一种当然的选择;
2019年9月26日
第15章 软件工程新技术
第6页
பைடு நூலகம்
15.1.2 软件复用的关键技术和复用粒度
软件复用有3个基本问题:
必须有可以复用的对象 所复用的对象必须是有用的 复用者需要知道如何去使用被复用的对象。
软件复用包括两个相关过程:
可复用软件(构件)的开发 基于可复用软件(构件)应用系统的构造(集成和组装)
可复用构件:具有相对独立功能和可复用价值的构件。
构件化的软件开发方法是一种将一个完整系统看作是若 干个独立部分(构件)组装的软件开发方法,每一部分 是一个可重用的单元,通过替换和重新配置来完成软件 的升级。
2019年9月26日
第15章 软件工程新技术
第15页
15.2.3 构件模型及描述语言
第21页
15.2.4 构件的检索与组装
W.Fr akes重点讨论了信息科学方法,因为这是实际复用项目 中,应用较为成功的途径。将信息科学方法分为基于受控词 汇表和基于不受控词汇表分类两种形式。
2019年9月26日
图15.3 信息科学的编目方法分类图
第15章 软件工程新技术
第22页
15.2.4 构件的检索与组装
表15.1 操作系统、数据库管理系统和中间件的类比
2019年9月26日
第15章 软件工程新技术
第13页
15.2.2 构件与构件化
构件:是一些可执行单元,可以通过独立的开发、购买和配 置组合到一个功能系统中去,是软件系统内被标识、符合某 种标准要求并可复用的软件组成成分,类似于传统工业中的 零部件。
15.1.1 软件复用概念及分类
软件复用:重复使用“为了复用目的而设计的软件 ”的过程。
实施软件复用的目的:要使软件开发工作进行得更 快、更好、更省。
软件复用与共享、软件移植的区别: 共享:是在一个系统中多次使用一个相同的软件成
分 软件移值:对一个软件进行修改, 使它运行于新的
软硬件平台
介和手段,如图形、复合文档、正文、伪码、编程语言、目 标码等。
青鸟构件模型从9个方面来描述构件,即概念、操作规约、接 口、类型、实现体、构件复合、 构件性质、构件注释、构件 语境。
2019年9月26日
第15章 软件工程新技术
第17页
15.2.3 构件模型及描述语言
构件实现模型标准:
CORBA、COM/DCOM/COM+、JavaBeans /EJB
第20页
15.2.4 构件的检索与组装
1.构件的检索
W.Frakes从构件表示出发,将现有方法分为人工 智能方法、超文本方法和信息科学方法3类。
i则按照复杂度和检索效果的递增,将其分为 基于正文的、基于词法描述符的、基于规约的分类 和检索3类。
2019年9月26日
第15章 软件工程新技术
CORBA是由OMG组织提出的,它的标准是开放的,并 且OMG成员广泛,所以CORBA最具普遍性,是异构环 境中的理想选择;
在Internet 和移动计算(如手机)中,Java是普遍采用 的一种技术,因此JavaBeans/EJB在这类Internet和移 动计算应用环境中比较适合。
2019年9月26日
2019年9月26日
第15章 软件工程新技术
第7页
15.1.2 软件复用的关键技术和复用粒度
实现软件复用的关键技术因素:软件构件技术、领 域工程、软件构架技术、软件再工程技术、开放系 统技术、软件过程、CASE技术等。
软件复用的非技术因素:机构组织如何适应复用的 需求;管理方法如何适应复用的需求;开发人员知 识的更新;创造性和工程化的关系;开发人员的心 理障碍;知识产权问题;保守商业秘密的问题;复 用前期投入的经济考虑;标准化问题等。
构件组装的研究内容包括两部分:
– 对复合构件形成过程的研究 – 面向体系结构(或者组装框架)的研究
2019年9月26日
第15章 软件工程新技术
第24页
15.2.4 构件的检索与组装
3.构件组装技术及方法的分类 (1)根据组装场景的不同分类
不同的组装层次:源代码级的组装、运行级组装 不同的组装模式
2019年9月26日
第15章 软件工程新技术
第26页
15.2.5 基于构件的软件工程方法
基于构件的软件工程(Component-Based Software Engineering,CBSE):以面向对象的方法为基础,强调 软件重用的作用,在软件体系结构设计的基础上,使用可复 用的软件“构件”来设计和构造基于计算机的系统过程。
2019年9月26日
第15章 软件工程新技术
第2页
学习目标
掌握软件复用的概念、分类、关键技术及复用粒度 理解基于构件的软件工程技术的相关概念及应用 理解软件过程和标准化的作用及应用 理解敏捷软件开发过程概念及模型 理解Web 软件工程的相关概念和特色 理解软件产品线技术的概念及发展
基本思想:
第一,采用将构件的接口和实现相分离的原则; 第二,采用黑盒重用的方式,外界仅可以通过构件的接
口来访问构件的功能; 第三,在实现方法上都使用接口描述语言(Interface
Description Language,IDL)进行构件接口定义,利 用相应的中间件作为支持该构件模型的运行时环境,从 而达到由不同的编程语言所实现、运行在不同的操作系 统环境中及在不同主机上的构件都能相互交互的目的。