11 第十一章 集成化CASE环境
软件工具是用于辅助软件的开发、运行、维护、管理和支持等活动的软件系统。其目的是为了降低软件开发和维护的成本,提高软件生产效率,改进软件产品的质量。 借助于计算机及其软件工具的帮助,开发、维护、管理软件产品的过程,称为计算机辅助软件工程(Computer-Aided Software Engineering,简称CASE)。
11.1 软件工具 目前有两种层次的软件开发工具,一种是孤立的单个软件开发工具,用于支持软件开发过程中的某一项特定活动。 另一种是集成化的CASE环境,它将在软件开发过程的不同阶段使用的工具进行集成,使其有着一致的用户界面和可以共享的信息数据库。 按软件活动的各阶段,可把软件工具分为: 软件开发工具 软件维护工具 管理与支持工具
11.1.1软件开发工具 软件开发工具可分为:分析工具、设计工具、编码工具和调试工具。 1.分析工具 辅助软件开发人员完成软件系统需求分析活动的软件工具。 典型的有Rational公司的Analyst Studio,用于应用问题分析和系统定义的一组相对完备的工具集,适合于团队联合开发使用。包括以下内容: ⑴ Rational Requisite Pro; ⑵ Rational Rose Data Modeler Edition; ⑶ Rational Clear Quest; ⑷ Rational SoDA for Word ⑸ Rational Unified Process;
编码工具主要包括:编辑程序、汇编程序、编译程序和调试程序等。典型的集成程序开发环境有: 2.设计工具 软件设计工具主要包括三种类型:基于图形描述、语言描述的设计工具;基于形式化描述的设计工具;面向对象的设计工具。 典型的有Enterprise Architect,是一个基于UML的Visual CASE工具,主要用于设计、编写、构建和管理以目标为为导向的软件系统。 3.编码工具 编码工具主要包括:编辑程序、汇编程序、编译程序和调试程序等。典型的集成程序开发环境有: MicroSoft公司的Visual C++、Visual Basic和Borland公司的Delphi、C++ Builder
4.调试工具 也称为排错工具,在程序编码过程中,及时发现和排除程序代码中的错误和缺陷。 分为:源代码调试程序和调试程序生成程序两类。 ⑴源代码调试程序 帮助程序开发人员了解程序的执行状态,查询相关数据信息,发现和排除程序代码中存在的错误和缺陷。 ⑵调试程序生成程序 是一种通用的调试工具,能够针对给定的程序设计语言,生成一个相应的源代码调试程序。
5.软件开发工具的评价与选择 根据以下几个标准来评价一个软件开发工具的优劣程度 : ⑴功能 开发工具应具有完备的开发功能。 ⑵硬件要求 硬件要求较低的工具可以节省相应的硬件开销和开发成本。 ⑶性能 软件开发工具的运行速度等性能指标将直接影响工具的使用效果。 ⑷方便性 软件开发工具应该具有十分友好的用户界面。 ⑸服务和支持 软件开发工具需要不断的进行升级和改进。提供有效及时的技术服务和支持。
11.1.2 软件维护工具 重要的软件维护工具包括:版本控制工具、文档管理工具、开发信息库工具、逆向工程工具、再工程工具。 ⑴ 版本控制工具 版本控制工具用于帮助软件维护人员实现对软件版本的存储、更新、恢复和管理。典型代表是UNIX操作系统的SCCS(源代码控制系统)。 ⑵文档管理工具 对软件开发过程中产生的文档进行分析、组织、维护和管理。 ⑶开发信息库工具 记录每个对象的开发与修改信息;维护对象和与之相关信息间的关系。
⑷逆向工程工具 软件的逆向工程是指对已有的程序进行分析,以获得比源代码更高级的表现形式,是一个设计恢复的过程。 现在的逆向工程工具能够分析高级程序设计语言的源程序,恢复出程序的控制结构、流程图、PAD图等更高级的抽象信息。 ⑸再工程工具 再工程是在获得软件设计信息的同时,利用这些信息修改或重构软件系统的工作。 根据用户的需求,软件开发人员可利用再工程重新实现已有的软件系统,同时增加新的功能和改进性能。
11.1.3 软件管理与支持工具 软件管理与支持工具中,比较重要的包括:项目管理工具、配置管理工具、软件评价工具、风险分析工具。 ⑴软件评价工具 帮助软件产品的管理与支持人员对 软件产品的质量加以保证。如ISO软件质量度量模 型、McCall软件度量模型等。 ⑵软件配置管理工具 对软件修改进行标示、组织和 控制的技术,用来协调和控制软件开发的整个过程。 是软件质量保证的重要环节。
⑶软件项目管理工具 主要任务是制定软件开发计划,跟踪、监督和 协调软件开发的进度,以保证软件产品能够按时保 质完成。 ⑷风险分析工具 标示潜在的风险并设计相应的计划去缓解、监 控和管理风险,这对于一个大型项目是极为重要 的。风险分析工具可以通过提供对风险标示和分析 的详细指南,使得项目管理者能够有效地对在软件 项目开发过程出现的风险进行控制和规避。
11.2 集成化CASE环境 分散的软件开发工具都只在软件产品的某个开发阶段起作用,它们有着不同的用户界面、不同的数据存储格式,不能够有效的进行相互通信和数据共享,这些缺陷极大地限制了其最大效能的发挥。 为克服以上缺陷,将多个CASE工具结合起来构成集成化的CASE环境,使得各种软件开发信息能够在不同CASE工具之间、不同开发阶段以及不同开发人员之间顺畅的传递。
集成化的CASE环境大致划分为以下几种层次: 具有信息传递的软件工具集 环境中工具之间完全独立,它们之间有着不同的用 户界面和信息的存储格式。借助操作系统的文件服务和 数据交换服务, 实现不同工具之间的数据交换和共享。 集成度非常低。 工具B 信息转换器 工具A 专有开发 信息 具有信息传递的软件工具集
提供了一致的公共用户界面和操作方式,但软件 工具之间的数据交换仍然沿用了在不同格式的文件导 入/导出的方式,这严重的影响了彼此之间数据交换的 (2) 具有公共界面的软件工具集 提供了一致的公共用户界面和操作方式,但软件 工具之间的数据交换仍然沿用了在不同格式的文件导 入/导出的方式,这严重的影响了彼此之间数据交换的 效率和数据的完全性与完整性。 工具B 信息转换器 工具A 专有开发 信息 公共用户界面 具有公共界面的软件工具集
工具之间不仅具有一致的用户界面和操作方式而 且对不同工具的开发信息进行统一的存储和管理。从 根本上解决了在不同的软件工具之间进行信息交换的 ⑶信息共享的软件工具集 工具之间不仅具有一致的用户界面和操作方式而 且对不同工具的开发信息进行统一的存储和管理。从 根本上解决了在不同的软件工具之间进行信息交换的 问题,提高了工具之间的继承度。 工具B 信息转换器 工具A 专有开发 信息 公共用户界面 共享的软件工程信息库 信息共享的软件工具集
为实现运行在不同计算机硬件和操作系统平台上的CASE工具间的互操作和数据共享,基于平台的集成就成为急需解决的问题。 1.平台的集成 为实现运行在不同计算机硬件和操作系统平台上的CASE工具间的互操作和数据共享,基于平台的集成就成为急需解决的问题。 2.界面的集成 指集成化的CASE环境中的各种软件开发工具都采用统一的用户交互界面和方式 。 3.数据的集成 为实现不同的CASE工具之间的数据交换与共享,数据的集成是需要解决的一个核心问题。
CASE开发环境体系结构 用 户 界 面 层 对 象 管 理 层 软 件 工 程 信 息 库 工 具 集 成 层 工具A 工具N 工具B ………………… 集成化的CASE开发环境的体系结构
1.用户界面层 由一个标准化的统一的界面工具箱和各个CASE工具所共同遵守的界面协议所组成。 2.工具集成层 工具集成层主要完成对构成集成CASE开发环境的所有工具的管理和协调任务。 3.对象管理层 主要完成在集成CASE开发环境中对软件开发信息的管理和集成,实现CASE工具与信息的集成以及信息与信息的集成。 4.软件工程信息库 在整个集成CASE开发环境中,软件工程信息库处于一个核心地位,是其他层次模块的基础。
11.3 软件开发工具Rational Rose Rational Rose是Rational公司出品的基于UML的功能强大的可视化建模工具,与多种开发环境无缝集成并支持多种开发语言,包括:Visual Basic、Java、PowerBuilder、C++、Ada、Smalltalk、XML DTD等。 可以运行Rational Rose的系统平台包括了目前大多数的主流操作系统,如:Windows 9X、Windows 2000、Solaris、AIX和HP-UX等。 Rose支持面向对象开发方法所有阶段的建模,已成为建立软件系统模型最有力的工具。
Rose的用户界面 Rose的用户界面 框图工具栏 框图窗口 文档窗口 浏览窗口 菜单条 标准工具栏
Rose的用户界面包括以下几个部分: ⑴菜单条:包含了所有的Rose命令和操作; ⑵标准工具栏:快速访问Rose中常用命令和操作; ⑶浏览窗口:采用树型的层次结构,用于在Rose模型中进行浏览,访问Rose模型中的各个模型元素; ⑷文档窗口:为模型元素建立说明文档; ⑸框图工具栏:根据打开的UML模型图的类型,在模型图中添加各种模型元素。 ⑹框图窗口:用于显示和编辑Rose模型中的各种UML模型图。当增删、修改框图窗口中的模型元素时,Rose会自动更新浏览窗口中的内容;
在业务用例图中包括以下几类模型元素: ⑴业务用例 表示机构中的一组业务的执行和工作流程。 ⑵业务执行者 表示处于机构之外与机构进行交互的实体。 ⑶业务工人 表示处于机构之内参与了业务执行流程的角色。 ⑷业务实体 机构业务流程中可能使用的物理实体,如资金帐目、客户定单、客户资料等等。 ⑸机构单元 业务工人、业务实体和其他相关模型元素的集合,是组织业务模型的机制。
业务用例图中模型元素之间存在以下两种关系: ⑴关联关系:描述执行者或业务工人与用例之间的通信和联系。 ⑵泛化关系:描述模型元素之间抽象与具体、一般与特殊的关系。 业务用例图中的关联关系
11.3.2 用例图 用例图(Use Case Diagram)用于描述一个软件系统需要完成什么样的功能。模型元素之间的几种关系: 1.包含关系 用例图中的包含关系
2.扩展关系 用例图中的扩展关系
3. 泛化关系 用例图中的泛化关系
11.3.3 类 图 类图创建菜单在浏览窗口的逻辑视图(Logic View)下面,逻辑视图中一般已有一个自动创建的名为“Main”的类图。也可通过右键菜单选择“New►Class Diagram”创建新的类图。 “Book”类的属性设置 选择类图右侧的工具栏中的“类”(Class)按钮,可以在类图中创建一个新的类。并为其指定类名,增加相应的属性和行为。
类图中的多个类之间存在着彼此的相互关系,Rose中可在类之间定义关联、聚集、泛化、依赖关系。 1.聚集关系 定义类之间的关系 类图中的多个类之间存在着彼此的相互关系,Rose中可在类之间定义关联、聚集、泛化、依赖关系。 1.聚集关系 类之间的聚集关系
表示类之间“一般与特殊”、“抽象与具体”的关系即不同类之间的继承关系。 2.泛化关系 表示类之间“一般与特殊”、“抽象与具体”的关系即不同类之间的继承关系。 类之间的泛化关系
11.3.4 协作图与时序图 1.创建协作图 通过菜单“New►Collaboration Diagram” 在逻辑 视图(Logic View)中创建了一个协作图,并在其中 增加对象,为新增的对象设置规范:包括对象的名称、 对应的类名、说明文档等。 在对象之间建立链接,对象之间的链接使用实线 表示。同一个对象之上也可以建立特殊的“反身链接” (Link to Self)。 链接上添加消息,表示对象之间传送的信息的内 容。
图中,描述两个对象之间的链接,及在它们之间传送的3个消息,并把消息映射为对象的操作。 协作图
2 .创建协作图 通过菜单“New ► Sequence Diagram”,可以在Rose的逻辑视图(Logic View)中创建时序图。 在时序图中增加对象,为该对象设置所在的类、对象的持续性等属性。 按照时间顺序,在时序图中从上到下,在对象之间添加消息。 也可以为对象之间的消息指定其映射的对象操作。方法是在消息上点击鼠标右健,从弹出菜单中选择该消息所映射的操作或者输入一个新操作。
时序图
11.3.5 活动图 在浏览窗口中使用菜单项“New ► Activity Diagram”可以创建新的活动图。可以增加“泳道”(SwimLane),并在相应的“泳道”中添加相应的活动,在活动之间设置转换和转换发生需要具备的条件, 增加开始和结束状态。 活动图
11.3.7 状态图 在浏览窗口中使用菜单项“New ► Statechart Diagram”可以创建新的状态图。状态图中可以加入对象的各种不同状态,包括 “初始状态”和“结束状态”。 增加状态
图书销售管理系统中“Book”类对象状态图 状态设置完成以后,需要在状态之间增加状态迁移。 图书销售管理系统中“Book”类对象状态图
11.3.8 构件图和部署图 构件图 在浏览窗口中的“Component View”项目上使用菜单项“New► Component Diagram”可以创建新的构件图。构件图由构件和构件之间依赖关系组成。 构件图
描述在软件系统运行时进行计算处理的节点和在节点上活动的构件的配置情况,它描述了处理器、设备和软件构件运行时的体系结构。 2. 部署图 描述在软件系统运行时进行计算处理的节点和在节点上活动的构件的配置情况,它描述了处理器、设备和软件构件运行时的体系结构。 部署图