第9章 软件工程新技术及体系
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9.1 软件开发新技术概述
2. 构件的属性及应用
构件是可独立配置的单元,因此必须自包容。 构件可以在适当的环境中被复合使用,因此构件需要提供清楚的 接口规范,可以与环境交互。构件沿袭了对象的封装特性,但同 时并不局限于一个对象,其内部可以封装一个或多个类、原型对 象甚至过程,结构是灵活的。 对于构件的应用。构件通过其接口特征进行标识,其所提供 的服务与访问方式是接口特征的一部分内容,每个构件都需先注 册才能使用。考虑的因素包括:应用编程接口(API);构件所 需的开发和集成;运行需求,如资源的使用(内存和硬盘),时 间或速度以及网络协议;服务需求,如操作系统的接口,或需要 其他构件的支持等;安全特征,例如访问控制和身份验证协议等; 嵌入式设计假定,有特定的数值/非数值算法使用;异常处理。
第9章 软件工程新技术及体系
教学目标
● 掌握软件开发新技术的概念、特点及应用 ● 掌握能力成熟度集成模型CMMI及评估方法 ● 理解IBM Rational、微软等现代软件工程 体系及形式化方法
9.1 软件开发新技术概述
9.1 软件开发新技术概述
9.1.1 软件构件技术概述
1. 构件技术概念 构件技术是基于面向对象OO技术更高级的抽象。将底层的对 象集合打包,组成功能“插件”。基于构件技术的软件开发就是 将已存在的构件组装(集成)到当前软件系统的框架结构中,从 而开发出新的软件产品,构件技术是软件产业化革命的必然发展 趋势。 OO技术在“数据十算法”基础上,提升了对事物的认识方法。 构件技术则在“对象+算法”的基础上,将认识事物的角度从对 象个体本身提升到个体在群体中的作用,在认识上具有本质差异 同。从抽象程度看,OO技术已达到类级重用(代码重用),以 类为封装的单位。而构件则是对一组类的组合进行封装,可将底 层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封 装到一个系统。
9.1 软件开发新技术概述
9.1.2 软件复用技术概述
1. 软件复用概念及分类 软件复用(Software Reuse)是指在软件研发中重复利用相关软件元素的过 程。是避免重复工作将已有的软件模块、技术和方法等用于建立新软件, 以减少软件开发和维护等费用的过程。软件复用是提高软件研发效率和 质量的一种重要技术。 软件复用的主要思想是:将软件作为由不同功能部分的“组件”所组 成的有机体,每个组件(元素)在设计编写时可被设计成完成同类工作 的通用工具。 按照不同方式,可将软件复用分为: (1)按复用的对象分。可以分为产品复用、过程复用。 (2)按对可复用信息进行复用的方式分。可以将软件复用区分为黑 盒复用和白盒复用。 (3)按复用的组织方式分。将复用区分为系统化的(或有计划的)复 用和个别的复用。 (4)按所应用的领域范围分。可以划分为横向复用和纵向复用。
9.1 软件开发新技术概述
图9-1 J2EE的核心技术
9.1 软件开发新技术概述
2)EJB技术 EJB(Enterprise Java Beans)是为开发和使用基于事务和 分布对象应用的服务器端构件而定义的一种技术规约。其体系结 构相对于CORBA,最大的特点是简单性,可帮助软件开发人员快 速地构建分布式应用系统。 EJB的特点包括: (1)清晰的体系结构。 wenku.baidu.com2)简化的编程模型。 (3)通用的编程模型。 (4)易移植性。 (5)支持事务处理。 (6)可扩展性。 (7)安全性。
轿车 类 汽 车 类
图9-2 建立子类
车辆
汽车
拖拉机
汽车类 拖拉机类
图9-3 调整继承结构
9.1 软件开发新技术概述
图9-3 调整继承结 (3)建立既存类的父类。
三角形类 多边形 边形类
三角形
四边形
八边形
图9-4 建立一般类
9.1 软件开发新技术概述
9.1.3虚拟化与云计算技术概述
1. 虚拟化技术概述 虚拟化是将物理资源转变为逻辑上可以管理的资源,以打破 物理结构间壁垒。可使虚拟世界运行在各种物理平台上,资源的 管理都将按逻辑方式进行,完全实现资源的自动化分配,而虚拟 化技术就是其实现的理想工具。 虚拟化环境需要多种技术的协调配合,服务器和操作系统的 虚拟化、存储虚拟化、以及系统管理、资源管理和软件提交,与 非虚拟化环境一致的应用环境。由于虚拟化技术,企业不再需要 建立耗资巨大的数据中心便可实现异地备份。 虚拟技术主要包括:虚拟现实、虚拟显示、虚拟机、CPU虚 拟化技术、文件虚拟化、桌面虚拟化技术等。
9.1 软件开发新技术概述
3. 实现构件技术必备条件 (1)以标准软件体系结构,保证构件间通信协议统一,实现同步 和异步操作控制,突破本地空间限制,充分利用网络环境。 (2)构件有标准接口,保证系统可分解成多个功能独立的单元, 用构件组装而成。 (3)构件独立于编程语言。 (4)构件提供版本兼容,来实现应用系统的扩展和更新。 4. 软件构件设计 由于软件构件依赖于开发平台环境,设计时特殊要求: (1)以接口为核心,使用开放标准。 (2)构件语义的描述要形式化。 (3)提炼封装构件过程应严格记录。 (4)设计模式也可重用。 (5)利用开发工具。
9.1 软件开发新技术概述
5. J2EE技术概述 Sun公司提出了三个Java平台: (1)J2ME(Java 2 Platform,Micro Edition)。 (2)J2SE(Java 2 Platform,Standard Edition)。 (3)J2EE(Java 2 Platform,Enterprise Edition)。1)J2EE的 核心技术 J2EE的核心技术如图9-1所示。。 RMI-IIOP用于实现Java和CORBA应用之间互操作。 图9-1 J2EE的核心技术
9.1 软件开发新技术概述
4. 多层结构的C/S系统 三层结构的C/S体系结构比二层结构增加一个应用服务器层, 如图9-5所示。客户机上只安装具有用户界面和简单的数据处理功 能的应用程序,负责处理与用户的交互和与应用服务器的交互。将 商业和应用逻辑的处理功能移到中间层——应用服务器上,应用服 务器负责处理商业和应用逻辑,接受客户端应用程序的请求,然后 根据商业和应用逻辑将此请求转化为数据库请求后与数据库服务器 交互,并将与数据库服务器交互的结果传送给客户端应用程序。
9.1 软件开发新技术概述
3.通过复用设计类 1)选择 开发软件库的目的是从既存构件中选取符合需要的构件,也是 设计类最简单的方法。在OO开发环境应提供常用的构件库,大多 数语言环境都带有一个原始构件库,如整数、实数和字符等。表91显示了建立在各层上的特定域的库。
9.1 软件开发新技术概述
表9-1 一个面向对象构件库的层次
9.1 软件开发新技术概述
2. 软件复用关键技术及级别 软件复用是将已有的软件成分(元素)用于构造新的软件系 统。可被复用的软件成分常称为可复用构件,无论对可复用构件 原样使用或作适当修改后再使用,只要是用于构造新软件,则都 可称作复用。软件复用不仅是对程序的复用,还包括对软件生产 过程中任何活动所产生的制成品的复用,如项目计划、可行性报 告、需求定义、分析模型、设计模型、详细说明、源程序、测试 用例等等。 实现软件复用的关键技术主要包括:软件组件技术、领域工 程、软件构架技术、软件再工程技术、开放系统技术、软件过程、 CASE技术等。 可划分的复用级别为:代码复用、设计复用、分析的复用、 软件测试信息的复用、应用程序生成器的使用、软件体系结构的 复用等。影响着软件复用的主要因素包括:技术因素、人为因素、 管理因素、教育培训因素、法律因素等。
特定组的构件
一个小组为他们自己组内所有成员使用而开发
特定项目的构件 特定问题论域的构件 一般构件 特定语言原操作
一个小组为某一个项目而开发 购自某一个特定论域的软件销售商 购自专门提供构件的销售商 购自一个编译器的销售商
9.1 软件开发新技术概述
2)分解 最初标识的“类”常为几个概念的组合。设计时可能发现所 标识的操作属于分散的几个概念中,或发现数据属性被分开放到 模型中拆散概念形成的几个组内。需要将一个类分成几个类,使 新标识的类已存在或易于实现。 3)配置 在设计类时,可能需要由既存类的实例提供类的某些特性。 通过将相应类的实例声明为新类的属性配置新类。如,一种仿真 服务器可能要求用一个计时器跟踪服务时间。设计者不必开发在 此行为中所需的数据和操作,而应找到计时器类,并在服务器类 的定义中进行声明。
9.1 软件开发新技术概述
2.云计算的概念及架构 云计算主要通过互联网以创新的计算模式,使用户随时获得所需的计 算能力和丰富的信息服务,其创新的商业模式可使用户对计算和服务,如 同使用水电一样取用自由、按量付费,目标是通过互联网将各种IT资源以 服务的方式提供给用户,包括计算资源、存储资源、软件开发、系统测试、 系统维护和各种丰富的应用服务。 现在,云计算融合了以虚拟化、服务管理自动化和标准化为代表的 众多创新技术。云计算借助虚拟化技术的抽象表达性、伸缩性和灵活性, 提高了网络资源利用率,简化了资源和服务的管理和维护;利用信息服务 自动化技术,将资源封装为服务交付给用户,减少了数据中心的运营成本; 利用标准化,方便了服务的开发和交付,缩短了客户服务上线时间。云计 算实现复杂的企业环境的各种技术和方法正在不断深入,主要是研发软件 系统的云计算架构。云计算架构的4个层次为:
9.1 软件开发新技术概述
4)演变, 准备开发的新类可能与一个既存类非常类似,但不完全相同。 此时,不适宜采用“选择”操作,但可从一个既存类演变成一个新 类,可利用继承机制来表示一般化—特殊化的关系。特殊化处理可 以选择以下3种方式。 (1)由既存类建立子类。 (2)由既存类建立新类。
9.1 软件开发新技术概述
9.1 软件开发新技术概述
1)显示层2)中间层3)基础设施层4)管理层 管理层主要为横向的三层服务,并提供多种管理和维护技术等,包括6个 方面: (1)帐号管理。 (2)SLA监控。 (3)安全管理。 (4)计费管理。 (5)负载均衡。 (6)运维管理。
9.1 软件开发新技术概述
9.1.4 C/S技术概述
9.1 软件开发新技术概述
2. C/S技术的主要目标 C/S技术的主要目标包括: (1)集成处理资源。 (2)降低开发资源要求。 (3)降低硬件和软件的要求。 (4)降低系统维护成本。 (5)可扩充能力强。
9.1 软件开发新技术概述
3. 两层结构C/S系统 第一层是客户端软件,由应用程序和相应的数据库链接程序 组成,企业的业务处理过程都以客户端应用程序进行。第二层包 括数据库服务器,根据客户端软件的请求进行数据库操作,然后 将结果传送给客户端软件。 两层应用软件的开发工作主要集中在客户端,客户端软件不但要 完成用户界面和数据显示的工作,还要完成一部分对商业和应用 逻辑的处理工作。 两层结构的C/S系统,只能在各自的客户机和数据库服务器 之间使用,分割了界面和数据,需要客户机管理复杂的软件,导 致客户机负载加重变得“肥胖”。 两层 C/S系统不能进行有效的扩展,使这些系统不能支持大量用 户的访问和高容量事务处理的应用。
上海市教育高地暨 特色专业建设配套教材
高等院校计算机与 信息类规划教材
清华大学出版社
第9章 软件工程新技术及体系
目
1
2 3 4 5 6 6 6
录
9.1 软件开发新技术概述
9.2 能力成熟度集成模型
9.3 IBM Rational软件工程体系 9.4 微软软件工程体系 9.5 敏捷软件工程体系 *9.6 形式化方法 *9.7 净室软件工程体系 9.8 本章小结
1. C/S技术的特点
(1)客户机/服务器C/S(Client / Server)技术,是20世纪90年代成熟 起来的技术,C/S系统是基于局域网或广域网的系统。 在C/S体系结构中,应用被分成两部分:客户机(前台)负责完成与用户 交互;服务器则处理低层功能。 (2)C/S系统体系结构特征。主要包括:计算和处理分布在服务器和 客户机之间;数据管理集中在服务器端;软件驻留在服务器和客户机。 (3)C/S应用系统的特征 · 分布数据。 · 分布过程。 · 客户为中心。 · 异构硬件和软件。