第 九 章第九章 软件工具与集成化环境
9.1 软件开发工具
9.2 集成化 CASE环境
9.3 软件开发工具 Rational Rose
9
9.1 软件开发工具在软件工程学中,方法与工具是同一个问题的两个方面,方法是工具研究的先导,工具是方法的实在体现 。
为支持软件开发,维护,管理而研制的计算机程序系统称为软件工具 。
例如,操作系统,正文编辑器,编译程序系统,静态分析,动态跟踪,需求分析,设计分析,测试,模拟和图形交互等 。
软件工具通常由工具,工具接口和工具用户接口 3部分构成 。 工具通过工具接口与其它工具,操作系统或网络操作系统以及通信接口,环境信息库接口等进行交互作用,当工具需要与用户进行交互作用时,则通过工具的用户接口来进行 。
但是,孤立的软件工具只能支持软件工程的某以项活动 。 各种软件工具的数据结构不统一,程序界面不标准,软件工程引用和加工的数据需要进行格式转换,相关的软件工具因设计标准不一致很难集成为一个软件系统,严重影响软件开发和维护的效率 。
9.1 软件开发工具
9.1.1 常见的软件开发工具大家最熟悉的软件工具末过于微软的 Office系列工具:如 word
它是常用的文本编辑和正文格式处理工具,其界面如图 9.1所示 。
9.1.1常见的 软件开发工具图 9.1 WORD 界面软件开发工具现在比较流行的代码编写工具有 VB和 VC等,尤以 VC最常用,其可以让用户真正感受到面向对象的编程思想,其运行界面如下:
图 9.2 VC++ 界面
9.1.1 常见的软件开发工具在软件工程活动中,软件工程师和管理员按照软件工程的方法和原则,
借助于计算机及其软件工具的帮助,开发、维护、管理软件产品的过程,
称为 计算机辅助软件工程 CASE ( Computer-Aided Software
Engineering,)。
计算机辅助软件工程 CASE已经历了两个发展阶段:
1、依赖与于软件内生命周期各阶段的分散工具。
2、集成的软件工程环境 SEE( Software Engineering Environment)
典型的软件工程环境具有 核心级,基本级和应用级 三级结构 。
软件工具是软件工程环境中最主要的组成部分,软件工程环境的主要目标是提高软件开发的生产率,提高软件产品的质量,降低软件成本。为此,必须依赖于软件工具的广泛使用。
9.1.2 CASE的基本概念
9.1.2 CASE的基本概念
9.1.3 软件开发环境
9.1.3 软件开发环境软件开发环境 SDE( Software Development Environment),也称为软件工程环境 SEE( Software Engineering Environment),是指在计算机基本软件的基础上,为了支持软件开发而提供的一组软件工具的集合,
它是包括方法,工具和管理等多种技术在内的综合系统,好的软件开发环境能够简化软件开发过程,提高软件开发质量 。
一,软件开发环境的定义
IEEE和 ACM支持的国际工作小组提出:,软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成 。,
美 国 国 防 部 在 STARES ( Software Technology for Adaptalle
Reliable System) 计划中定义为:,软件工程环境是一组方法,过程及计算机程序的整体化构件,它支持从需求定义,程序生成直到维护的整个软件生存期 。,
上述定义强调:
1,软件开发环境是一组相关工具的集合 。
2,相关工具是按一定的开发方法或一定开发处理模型组织起来的 。
3,这些相关工具支持整个软件生存期的各阶段或部分阶段 。
二、对软件开发环境的要求软件开发环境的目标是提高软件生产率和软件产品质量,对它的基本要求是:
1、软件开发环境应是高度集成的一体化环境。
2、软件开发环境应具有高度的通用性。
3、软件开发环境应具有高度的适应性和灵活性,即易于定制、剪裁或扩充,以适应用户要求。
4、软件开发环境不但可应用性好,还要易于使用,经济高效。
三、软件开发环境的分类
1、按解决的问题分类如程序设计环境、系统设计环境、项目管理环境等。
2、按软件开发环境的演变趋向分以语言为中心的环境( InterLisp语言,SmallTalk语言,Ada环境等)、
工具箱环境其特点是由一整套工具组成,供程序设计选择之用。典型的有 Windows、
UNIX,SPSE等。
3、还可以按照集成度来分等。
9.1.3 软件开发环境开发环境
9.2 CASE技术软件工程要求人们采用,工程化,的原则,方法和技术来开发,维护,管理软件 。
CASE技术是软件工具和软件开发方法的结合,CASE是多年来在软件开发管理,软件开发方法,软件开发环境和软件工具等方面研究和发展的产物 。
CASE把软件开发技术,软件工具和软件开发方法集成到一个统一的框架中,并且吸收了 CAD,软件工程,操作系统,数据库,网络和其他许多计算机领域的原理和技术 。 它不同于以前的软件技术,它强调了解决整个软件开发过程的效率问题,而不是解决个别阶段的问题,由于它跨越了软件生存周期各个阶段,着眼于软件分析和设计以及实现和维护的自动化,因而解决了软件生存周期的生产率问题 。
CASE的目的是实现软件生存周期各环节的自动化并使之成为一个整体 。 引入 CASE时,必须有意识的进行管理与维护,让开发人员认识到
CASE系统的优势所在 。
9.2 CASE技术
9.2.1 CASE技术分类
CASE系统所涉及到的技术有两类:
一类是支持软件开发过程本身的技术,如支持规约,设计,实现及测试等。
另一类是支持软件开发过程管理的技术,如支持建模,过程管理等。
从 CASE系统的生产方式来看,还有一种特殊的 CASE技术,
即元 — CASE技术 。 它是生成 CASE系统的生成器所采用的技术 。
该生成器可用来创建支持软件开发过程活动及过程管理的 CASE系统 。
9.2.1 CASE技术分类
9.2.1 CASE技术分类
9.2.2 CASE工具分类软件工具使用于辅助计算机软件的开发,运行,维护和管理等活动的一类软件 。 人们一般不区别的使用 CASE工具和软件工具两个概念 。
随着 CASE的发展,出现了各种各样的 CASE工具 。 对 CASE工具分类的标准可分为:
( 1) 功能,是对软件进行分类的最常用的标准 。
( 2) 支持的过程,根据支持的过程,工具可分为设计工具,编程工具及维护工具等 。
( 3) 支持范围,根据支持范围,可分为笮支持,较宽支持和一般支持工具 。
9.2.2 CASE 工具分类
9.2.2 CASE工具分类
CASE工具分类
1993年,Fuggetta根据 CASE系统对软件过程的支持范围,提出
CASE系统可分为如下 3类 ( 如图 9.3 ),
A 工具,支持过程单个任务 。
B 工作台,支持某一过程所有活动或某些活动 。
C 环境,支持软件过程所有活动或至少大部分 。
CASE系统 工作台环境工具编辑器编译器文件比较器分析与设计编程以过程为中心的环境集成化环境测试多方法工作台单方法工作台多语言工作台单语言工作台图 9.3 CASE系统的分类
9.2.2 CASE工具分类一个组织中的 CASE系统遵循从初始需求到完全放弃这一生存周期,CASE生存期各步骤如下:
( 1) CASE需求,根据要开发的软件类型选择一个合适的 CASE系统 。
( 2) CASE剪裁,调整一个 CASE系统,使之适应一特定的组织或一类项目 。
( 3) CASE引入,使用该 CASE系统 。
( 4) CASE操作,指每天都使用 CASE进行软件开发 。
( 5) CASE演化,是一个在 CASE系统生存周期中的一个持续活动 。
( 6) CASE放弃,使该 CASE系统在这一阶段不再起作用,必须保证使用该系统开发的软件被所在组织机构所支持 。
9.2.3 CASE生存期
9.2.3 CASE生存期
9.3 集成化 CASE环境以一种集成的方式工作的 CASE工具可获得更多收益,因为集成方式组装特定工具以提供对过程活动更广泛的支持 。
集成方式分:
1)平台集成,即工具运行在相同的硬件 /操作系统平台上。
,平台,或是一个单一的计算机,或操作系统或是一个网络系统,目前大多数 CASE工具运行在 UNIX系统上,或 PC上的 Microsoft Windows之上,
当一个组织机构使用异构网络,网络中不同的计算机运行不同的操作系统时,要实现平台集成很困难 。
2) 数据集成,即工具使用共享数据模型来操作 。 一个工具的结果能做为另一工具的输入,有许多不同级别的数据集成,
最简单的数据集成形式是基于一个共享文件集的集成 。 UNIX系统就是这样 。 UNIX有一个简单的文件模型,即非结构化字符流 。 任何工具都能把信息写入文件中,也能读其他工具生成的文件 。
3) 表示集成,工具提供相同的用户界面 。 以及采用共同的用户交互标准集 。 有如下三种 3种不同级别:
9.3 集成化 CASE环境集成化 CASE环境窗口系统集成,工具使用相同的基本窗口系统,窗口有共同的外观,
操作窗口的命令也很相似,如每个窗口都有窗口移动,改变大小及图标化等命令 。
命令集成,工具对相似的功能使用相同格式的命令 。 如果使用菜单和图标的图形界面,相似的命令就会有相同的名字 。
交互集成,时针对那些带有一个直接操纵界面的系统,通过该界面,
用户可以直接与一个实体的图形或文件视口进行交互 。 所有子系统提供相同的直接操作 。
CASE工作台是封闭系统时,通常都有良好的用户界面集成 。 工作台的不同工具能遵从一定约定和标准 。 用户能从一个工具无缝地移植到另一个工具 。
4) 控制集成,工具激活后能控制其他工具的操作 。
控制集成支持工作台或环境中一个工具对系统中其他工具的访问 。
5) 过程集成,工具在一个过程模型和,过程机,的指导下使用 。
过程集成意指 CASE系统嵌入了关于过程活动,阶段,约束和支持这些活动所需的工具的知识 。
9.3 集成化 CASE环境
9.4 软件开发工具 Rational Rose
9.4 软件开发工具 Rational Rose
Rational Rose是美国 Rational 软件公司研制的面向对象的 建模工具,是目前国际上最为流行的先进的可视化开发工具之一 。 利用这个工具,我们可以建立用 UML描述的软件系统的模型,而且可以自动生成和维护 C++,Java,VB,Oracle等语言和系统的代码 。
Rational Rose是图形化的 OOCASE工具,集中体现了当代软件开发的先进思想,把面向对象的建模与上升式的开发过程相结合,
支持团队开发,并综合了其它开发技术,对软件系统的开发提供了强有力的支持,为控制系统的复杂性,提高软件开发效率创造了必要条件 。
现在,Rational Rose已经发展为一整套的软件开发工具,构成了 Rational Rose家蛛族,它包括系统建模 ( 面向对象的系统分析与设计 ),模型集成,源代码生成,软件系统测试,软件文档的生成,
逆向工程,软件开发项目管理,团队开发管理,以及 Internet Web发布等工具,形成了一个强大的软件开发集成环境 。
9.4.1Rational Rose简介提起建模,每一位软件开发人员都不会陌生,但我们还是要给它一个明确的定义:建模是人类对客观世界和抽象事物之间联系的具体描述 。
在过去的软件开发中,程序员利用手工建模,既耗费了大量的时间和精力又无法对整个复杂系统全面准确的描述,以至于直接影响应用系统的开发质量和速度 。 而今,我们不再为建模苦恼 。
Rational公司曾以 Ada语言享誉世界,今天又以面向对象的可视化建模工具 Rational ROSE博得了业界一片好评 。 正如在美国,应用程序开发战略,Yourdou教授所评价的:,Rational Rose将对面向对象应用程序开发技术产生巨大影响;使大型开发项目的分析,建模,设计规范化了,…… Rational公司已成为 OO CASE( 面向对象 ) 界的 Microsoft。,
Rational ROSE包括了一体化建模语言 ( UML),BOOCH及 OMT。
其中一体化建模语言 ( UML) 由 Rational公司三位世界级面向对象技术专家 Grady Booch,Ivar Jacobson和 Jim Rumbaugh通过对早期面向对象研究和设计方法的进一步扩展而得来的,为可视化建模软件奠定了坚实的理论基础 。
9.4.1 Rational Rose简介
Rational Rose简介
Rational Rose是分析和设计面向对象软件系统的的强大工具,
可以帮助先建模系统再编写代码,从而一开始就保证系统结构的合理,利用模型可以更方便地捕获设计缺陷,从而以较低的成本修正缺陷 。
Rational Rose有助于系统分析,可以先设计使用案例和 Use
CASE框图,显示系统的功能,可以用 Interaction框图显示对象如何配合,提供所需功能 。 类和 Class框图可以显示系统中的对象及其相互关系 。 Component框图可以演示类如何映射到实现组件 。 最后,
Deployment框图可以显示系统的网络设计 。 Rose模型是系统的的图形,包括所有 UML 框图,角色,使用案例,对象,类等 。 它详细描述系统的内容和工作方法,开发人员可以采用如下的过程:
要求 代码对象模型
9.4 计算机辅助软件工程9.4.1 Rational Rose简介图 9.4
9.4.2 Rational Rose的功能
9.4.2 Rational Rose的功能
9.4.2 Rational Rose的功能
Rational Rose的主要功能为;
1、对面向对象的模型的支持支持模型对象的系统分析与与设计模型,对面向对象的类、对象、称赞状态等主要概念及其联系的支持。 Rational Rose将这些模型成分组成 4类系统视图:
Use Case 视图、逻辑视图、组件视图和配置视图此外,还可以创建包图(子系统)、类图和对象图、交互图、状态图、
活动图、组件图、对象消息图、消息踪迹图、过程图、模块图等。
Rose 支持 UML语言的扩展功能,允许用户自定义构造型( Stereotype),
增强表达模型语义的能力。
2、对螺旋上升式开发过程的支持所谓螺旋上升式开发过程是指系统开发的各阶段都进行多次循环,每次循环产生一个原型,每次循环建立在前一次循环的基础上,是前一原型的深化。
3、对往返工程的支持
Rose提供了一套支持往返工程的工具,通过代码生成、逆向工程、区分模型差异、设计修改等机制。
4、对团队开发的支持
Rose支持由领域分析员、系统分析员、程序员等组成的开发队伍进行团队的受控迭代式开发。
5、对工具的支持
Rational Rose支持当今广泛使用的软件开发工具,可以通过它的
Add-Ins管理器,把外部软件与 Rational Rose集成在一起,协同工作。
如,Rational Rose支持程序设计语言C ++,Visual C++,Visual
Basic,Ada,Java,Smalltalk等,可以从模型直接相应的源代码,也可以从这些语言模型中抽象出模型。
支持数据库系统 Oracle 8,Sybase Anyware等。软件版本控制方面支持 Microsoft Visual Source Soft。
9.4.2 Rational Rose的功能
Rose模型由视图和说明组成,四个视图是 Use Case视图,Logical
视图,Component视图和 Deployment视图 。 每个视图针对不同对象,具有不同用途 。 Use Case视图包括系统中的所有角色,案例和 Use Case图,
还包括一些 Sequence图和 Collaboration图 。
图9,5 Use Case视图 图 9.6 Logical视图
9.4.3 Rose模型
9.4.3 Rose模型
Logical视图关注系统如何实现使用案例中提到的功能 。 它提供系统的详细图形,描述组件间如何关联 。 除其它内容之外,Logical视图还包括需要的特定类,
Class 图和 State
Transition 图 。 利用这些细节元素,开发人员可以构造系统的详细设计 。
9.4.3 Rose模型
Component视图包括模型代码库、执行库和其它组件的信息。组件是代码的实际模块。 Component视图的主要用户是负责控制代码和编译部署应用程序的人。有些组件是代码库,有些组件是运行组件,
如执行文件或动态链接库( DLL)文件。
Collaboration图关注系统的部署,可能与系统的逻辑结构不同。
整个小组都用 Collaboration图了解系统部署,但用户是发布应用程序的人员。
Rose模型由九种图构成根据它们在不同架构视图的应用,可以把 9种图分成:
用户模型视图:用例图结构模型视图:类图、对象图行为模型视图:序列图、协作图、状态图、活动图(动态图)
实现模型视图:组件图环境模型视图:配置图
Rose的九种图
1、用例图 ( use case diagram) 描述系统功能。
2,类 图 ( class diagram) 描述系统的静态结构,
3,对象图 ( object diagram) 描述系统在某个时刻的静态结构,
4,序列图 ( sequence diagram) 按时间顺序描述系统元素间的交互,
5,协作图 ( Collaboration diagram) 按照时间和空间顺序描述系统元素间的交互和它们之间的关系,
6,状态图 ( state diagram) 描述了系统元素的状态条件和响应,
7,活动图 ( activity diagram) 描述了系统元素的活动,
8,组件图 ( component diagram) 描述了实现系统的元素的组织,
9,配置图 ( deployment diagram) 描述了环境元素的配置,并把实现系统的元素映射到配置上。
9.4.3 Rose模型
ROSE是个菜单驱动应用程序,用工具栏帮助使用常用特性。它的界面分为三个部分 --Browser窗口,Diagram窗口和 Document窗口。
Browser窗口用来浏览、创建、删除和修改模型中的模型元素;
Diagram窗口用来显示和创作模型的各种图;而 Document窗口则是用来显示和书写各个模型元素的文档注释。
9.4.4 Rational Rose的使用
9.4.4 Rational Rose的使用 9.4.4 Rational Rose的使用图 9.7 Rose的界面
Rational Rose的使用
Rose整个项目组使用的工具,是每个小组成员可以收集所要信息的范围和设计信息的仓库,它还可以帮助开发人员产生代码,利用
RoseScript可以扩展 Rose,这是 Rose随代的编程语言 。 利用 RoseScript可以编写代码自动改变模型,生成报表,完成 Rose模型的其它任务,Rose的运行界面如图 9.8所示 。
图 9.8 Rose的运行界面
9.4.4 Rational Rose的使用
Rational Rose 生成代码简介:
( 1) 检查模型,ROSE包括了独立的模型检查特性,可以在生成代码之前保证模型的一致性;
( 2) 生成组件:首先打开 Component框图,然后用框图工具栏中的
Component图标将新组件加进框图中 。
( 3) 将类映射组件:在浏览器 Logical视图中找到所要类 。 将类拖动到在 Component视图中的相应组件 。 组件名在
Logical视图的类名后面括号中显示 。
4) 设置代码生成属性要浏览代码生成属性,
选择 TOOLS>Options,然后选择相应语言标签,
如图 9.9所示 。
图 9.9 Rose 生成代码
Rational Rose的使用9.4.4 Rational Rose的使用
( 5) 选择类,组件或包
( 6) 生成代码代码生成的菜单选项如图 9.7所示 。
Rational Rose的使用图 9.10 Rose代码生成菜单
9.4.4 Rational Rose的使用用 Rational ROSE实现建模创建模型是帮助设计者实现任何复杂的工程项目的有力工具,在软件工程中,它能够把模型与实际应用紧密地联系起来。通过模型与代码之间的映射,可以直接为不同的程序开发环境生成系统结构的框架,通过建立模型和代码间的映射,可以确保代码改进时模型也随之更新了,而且通过模型与代码间的自动连接,Raional ROSE建模工具可以确保良好的设计实施。
Raional ROSE对大型复杂项目的支持、
Rational ROSE能够与主要的 CMVC工具集成,包括 Rational
Summit/CM,Microsoft SourceSafe,PVCS,ClearCase,SCCS以及
CVS/RCS,Rational ROSE也可以支持企业级数据库,同时支持
Unisys的通用的存储库( UREP)和 Microsoft的存储库。
Rational ROSE在支持框架结构的同时,还支持可重用类组件部分,
将可重用基类放入公控单元,整个团队或其他工作组就可以使用它们了。
小 结小 结