软件工程方法与实践第十章软件工程高级课程_第1页
软件工程方法与实践第十章软件工程高级课程_第2页
软件工程方法与实践第十章软件工程高级课程_第3页
软件工程方法与实践第十章软件工程高级课程_第4页
软件工程方法与实践第十章软件工程高级课程_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

软件工程方法与实践

第10章软件工程高级课题

第10章软件工程高级课题

O10.1软件复用

O10.2新型的软件工程

。10.3计算机辅助软件工程

Q10.4小结

10.1.1软件复用概述

软件复用(Reuse),即由软(构)件集成软件,是借鉴

硬件集成而提出的,体现“从货架上直接拿”的现代软件

工程理念的一种技术、一种方法,也是一个过程。

软件复用的重要性体现在:能更快、更好、成本更低地生

产软件(产品)。

软件复用定义:在构造新的软件系统的过程中,对已存在

的软件人工制品的再次使用技术。定义可概括为:“开发

伴随复用”,“开发为了复用”。

10.1.1软件复用概述

实现复用的关键要素是软件构件技术。可复用的构件可以

包括软件的技术表示、各种文档、测试用例,以及与过程

相关的任务等。

软件复用的层次从低到高有:

⑴源代码复用

⑵软件体系结构复用

⑶应用程序生成器

(4)领域特定的软件体系结构的复用

10.1.1软件复用概述

软件复用主要涉及到制造构件技术和使用构件技术。

制造构件技术是指独立于单个软件系统开发的,可服务

于整个应用领域的构件生产技术。

使用构件的技术是指在软件系统开发中,使用已有构件

的方法和技术。

提高软件复用质量和集成化程度的关键环节是,构件的

参量化和可复用性能,以及完善的集成环境。

10.1.2软件复用过程

软件复用过程,即基于构件的软件工程

(CBSE)包含两个并发的子过程:

领域工程(DE)

基于构件的软件开发(CBSD)

10.1.2软件复用过程

领域

A领域分析》结构开发»构件开发

知识源X.______________

AA

可复用

领域模型结构模型

领域工程构件库

图10.1基于构件的软件工程(CBSE)的过程模型

10.1.3领域工程

领域工程(DE)是构件的一系列开发工程,

是在特定的应用领域中,以构件库形式标识、

构造、分类和传播一组软件制品——软件构

件。

根据复用活动所应用的领域范围,可划分为横

向复用和纵向复用两种复用形式。

纵向复用领域工程的活动

⑴实施领域分析(步骤)

I①选择特定的领域,定义应用领域;

I②从中抽取具有可重复模式(结构的、数据的、行

为的)的功能分类;

I③收集应用领域中有代表性的应用样本,标识/描述

可复用的功能类;

I④建立领域分析模型;

I⑤定义需求规约,得出由需求规约构件和若干连接

子配置构成的领域模型。

纵向复用领域工程的活动

⑵开发可复用构件

♦开发的构件应该具有通用性、可变性、易组装性和可

理解性描述等特性。

♦设计构件必须考虑领域的应用特征,主要设计构件的

标准数据、标准接口协议和程序模板。

♦采用流行的构件实现标准。例如,组件对象模型

(COM)技术,对象链接与嵌入(OLE)结构标准,

公共对象请求代理体系结构(CORBA)标准,

OpenDoc开放式文档接口标准等。

纵向复用领域工程的活动

⑶建立可复用构件库

领域构件库具有类似于数据库管理系统的、基

于科学分类的构件描述、检索和管理的一系列

机制。

10.1.4基于构件的软件开发

构件集成模型就是一个软件复用过程的基于构件的软件

开发(CBSD)模型。

1014基于构件的软件开发

2.构件的集成活动

第一,对一个构件的匹配过程,包括构件对象参数的提

取和相互匹配,以及根据需要进行构件对象功能的删减、

变换,使之匹配;

第二,对构件的集成(连接)过程,即设计和实现应用

系统与构件的互连功能,这也可以看做是把构件对象融

合到应用系统中。

10.1.4基于构件的软件开发

3.应用系统工程

CBSD支持的特定应用系统的软件工程,称为应用系统

工程(ASE)。ASE过程是从一个或多个构件系统中选

择构件进行特化,装配到某个特定应用系统中。

①收集信息,制定应用系统的用例模型。

②把用例模型作为输入,组装和特化分析构件。

③把分析模型作为输入,组装和特化设计构件。

④把设计模型作为输入,组装和特化实现构件。

⑤组装和特化测试构件,测试应用系统。n

⑥应用系统打包,提供给运用制造商、安装者或用户L

10.2.1形式化方法

形式化软件开发方法是一种基于形式化的、数学的规约

技术。

形式化软件开发方法与传统开发方法相比:

①形式化方法提供了规约环境的基础。软件需求描述被

精炼成一个用数学符号表达的、详细的、形式化描述的

分析模型。这样生成的模型更完整、一致和无二义性。

②设计、实现和单元测试等过程被一个形式化的转换过

程所替代。转换由比较小的一系列步骤组成,每次转换

之间的距离小于描述和程序之间的距离,因而能更好地

跟踪。

形式化软件开发过程

形式化开发方法是将软件系统的需求描述,采用某种规

约的形式化方式,转换成一个可执行程序。

在转换过程中,形式化描述被逐步求精地转换成有严格

数学方法保证其正确的一系列系统表示,直到形式化描

述被转换成一个对等的可执行程序。

需求定义f形式化描述一形式化转换f集成和系统验证

图10.2形式化的软件开发过程

形式化方法的特点

①提供了规约环境的基础——形式化描述的分

析模型。

②设计、实现和单元测试等过程被一个形式化

的、逐步求精的、正确性得到保证的转换过程

所替代。

③形式化方法特别适合对安全性、可靠性、保

密性要求极高的系统开发。

形式化的转换模型

转换模型是结合形式化软件开发方法和程序自动生成技术

的一种软件开发模型。

实施转换模型开发的常用技术有:

①基于模型的规格说明及其变换技术;

②基于代数结构的规格说明及其变换结构;

③基于时序逻辑的规格说明和验证技术;

④基于可视形式化的技术,等等。

转换模型开发过程

转换模型的软件开发过程中,程序变换系统由一系列程序

变换语言、相应的编译系统、分析和验证工具、变换控制

工具,以及变换规则集等组成。

系统需求

图10.3软件转换模型

形式化的净室模型

“净室”开发理念是通过严格的检查(复审),在分析、

设计等开发单元(室)消除错误,力求在无(零)缺陷或

超洁净的状态(净室)下实现软件的开发。

净室模型是一种基于增量式的、形式化的软件开发模型。

净室开发模型把软件看成一系列逐步求精的增量开发,每

个增量就是一个形式化表示的“盒”,对每个“盒”都采

用形式化方法验证正确性。净室模型的这种盒结构是在一

个特定的抽象层次上对系统(或系统某些方面)的一次封

净室模型开发过程

需求盒结构规约形式化设计正确性验证代码检查统计性

增量1:认证

收集测试

测试计划

需求盒结构规约形式化设计正确性验证代码检查统计性

增量2:认证

收集测试

测试计划

需求盒结构规约形式化设计正确性验证代码检查统计性

增量/7认证

收集测试

测试计划

图10.4净室模型增量(盒)的开发过程

净室模型的特性

①一般采用状态转换模型形式化描述激励及其响应。

②软件被分解成一个个增量开发,对每个增量单独采用净

室过程进行有效性验证。

③采用结构化的、逐步精化的程序设计,保证从描述到程

序代码的转换是正确的。

④制定详尽的测试计划,通过严格的检查过程对软件进行

静态测试。

⑤对完成的软件增量进行统计性测试,测定它的可靠性。

⑥增量移交给系统时,还要进行系统集成测试,这又得到

一次有效性验证。

10.2.2软件再工程

软件再工程(SR)是使用新的、现代方法和技

术,修改和/或重建软件系统的过程,以达到过

程的改善和软件质量的提高,所以,应称为软

件过程再工程。

软件再工程是一项针对软件工程的业务过程和

管理过程的技术革命。

软件再工程过程模型

软件再工程的各项活动,形成了一个循环过程,每个活动

都可能重复,对于一个特定的过程可以在任意一个活动之

后结束。

图10.5软件再工程的过程模型

逆向工程

软件的逆向工程是

指从源代码出发,

重新恢复设计文档

和需求规格文档的

过程。

"72R*口目

图10.6逆向工程过程

软件重构和正向工程

软件重构是应用最新的设计和实现技术对老软

件系统的源代码和数据进行修改。软件重构分为

代码重构和数据重构两种。

如果对一个软件(产品)版本进行结构化翻新的

重新开发(可看做是一种预防性维护),就应实

施软件再工程的正向工程。

10.2.3客户/服务器软件工程

客户-服务器(c/s)系统是一种基于分布式计算

机体系结构的、对数据采用分布式管理的、特殊

的计算机体系结构。

C/S系统的演化是与可视化桌面功能、新的存储

技术、增强的数据库技术,以及先进的网络通信

等各个方面的进展紧密联系的O

C/S系统结构示例

图10.7客户-服务器体系结构示例

C/S系统的软件构件

♦C/S系统有各种特定的请求和服务。C/S系统的软件构件

主要有用户交互/表示构件、数据库管理构件、应用构件和

中间件(包括网络操作、支持数据库特定应用、对象请求

代理、组件技术、通信管理等特殊应用的软件元素)等,

它们分布在客户端或服务器端,或者同时分布在两端。

♦连接C/S系统各种构件的机制有管道(Pipe)、远程过

程调用、客户■服务器SQL交互和面向对象连接标准

(CORBA)等。这些连接机制都被结合到网络管理和操

作系统中。

C/S系统的软件工程

C/S系统开发工程,主要是从一组业务需求演化到一组

被确认的、在客户和服务器上实现的软件构件。

⑴C/S系统的分析建模。

⑵C/S系统的设计,根据所采用的计算机体系结构,考

虑特定的构造环境,进行定制设计。

⑶C/S系统的测试,针对它的分布特性,主要在应用功

能、服务器、数据库、事务、网络通信等方面进行。—

10.3.1软件工程环境

♦现代软件开发,无论技术活动还是管理活动,都离

不开软件工程环境(SEE)的支持。

♦SEE是实现软件生产工程化的重要基础。它建立在先

进软件开发方法的基础上,正影响和改变着软件生产

方式,反过来又进一步促进了软件方法的推广与流行。

♦SEE包括“生产一个软件系统所需要的过程、方法和

自动化的集合”。建立一个开发环境首先要确定一种

开发过程模型,提出成套的、有效的开发方法,然后

在这一基础上利用各种软件工具实现开发活动的自动

化。

10.3.1软件工程环境

♦SEE有一套包括数据集成、控制集成和界面集成的集成

机制,让各个工具使用统一的规范存取环境信息库,采

用统一的用户界面,同时为各个工具或开发活动之间的

通信、切换、调度和协同工作提供支持。

♦SEE用于辅助软件开发、运行、维护和管理等各种活

动的软件(程序),是一个软件工具集(或工具包)。

这不仅意味着SEE支持开发功能的扩大,也反映了工具集

成化程度的提高。

10.3.2CASE环境

I计算机辅助软件工程(CASE)是通过一组集成

化的工具,辅助软件开发者实现各项活动的全部

自动化,使软件产品在整个生存周期中,开发和

维护生产率得到提高,质量得到保证。

CASE环境、CASE工具、集成化CASE(I-

CASE)等,实际是一切现代化软件开发环境

(SEE)的代名词。

CASE环境

软件工

程信息。

②每一个信息项的改变,可以追踪到其他相关信息项。

③对所有软件工程信息提供版本控制和配置管理。

④对环境中任何工具,可进行直接的、非顺序的访问。

⑤在标准的分解结构中提供工具和数据的自动支持。

⑥使每个工具的用户,共享人机界面所有的功能。

⑦收集能够改善过程和产品的各项度量指标。

⑧支持软件工程师们之间的通信。

CASE环境的组成构件

CASE工具

1.集成化工具层

集成化框架

为可移植性服务的机构,可移植服务层

操作系统n、

硬件平台I环境基础层

环境体系结构

1

图10.8CASE环境的组成构件

CASE的工具及其分类

II

过程/阶段

编辑工具字处理器、文本编辑器、图表编辑器软件开发全过程

编写文档工具页面输出程序、图像编辑器软件开发全过程

规划与估算工具PERT工具、估算工具、电子表格工具软件开发全过程

变更管埋工具需求跟踪工具、变更控制系统软件开发全过程

方法支持工具设计编辑器、数据字典、代码生成器描述、设计

原型建立工具高端语言、用户界面生成器描述、测试、有效性验证

语言处理工具编译器、解释器设计、实现

配置管理工具版本管理系统、细节建立工具设计、实现

程序分析工具交叉索引生成器、静态/动态分析器实现、测试、有效性验证

测试工具测试数据生成器、文件比较器实现、测试、有效性验证

调试工具交互式调试系统实现、测试、有效性验证

再工程工具交叉索引系统、程序重构系统实现

集成化CASE的框架结构

用户界面层

界面工具箱

表示协议

工且层

三具管理服务

CASECASECASECASECASE

工具工具

温馨提示

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

评论

0/150

提交评论