系统分析与设计
上QQ阅读APP看书,第一时间看更新

1.7 系统分析与设计工具

随着系统分析与设计技术的不断发展,支持系统开发自动化的工具也得到了迅速的发展。为了帮助系统分析员更好地进行系统建模,业界开发了称为计算机辅助软件工程(Computer-Aided Software Engineering,CASE)的自动化工具。同其他的计算机辅助设计技术(Computer Aided Design,CAD)一样,CASE软件是用来分析、设计和构造信息系统的强有力工具。

1.7.1 CASE工具的发展

在系统分析与设计活动中,系统分析人员按照工程管理的方法和原则,借助于计算机及其软件工具的帮助,开发、维护和管理软件产品的过程,称为计算机辅助软件工程(CASE)。CASE的实质是为系统开发提供一组优化集成的,且节省大量人力的软件开发工具,其目的是实现软件在系统开发的各生存周期、各环节的自动化,并使之成为一个整体。

CASE工具的发展经历了两个阶段。

第一阶段是依赖于系统开发生存周期各阶段的分散工具。这时的CASE工具只能支持系统开发某个阶段的工作,而不能支持整个软件生存周期。例如,美国Hughes飞机公司开发的概要设计工具系统AIDES(Automated Interative Design and Evaluation Systen),只提供对结构化设计SD (Structured Design)阶段的模块图的绘制和文档管理功能。

第二阶段称为软件开发环境(Software Development Environment,SDE)或软件工程环境,CASE工具的发展逐渐形成了能够支持系统生存周期所有阶段的工具,是包括方法、工具和管理等多种技术在内的综合系统。好的软件开发环境能够帮助简化系统开发过程,提高系统开发的质量。

1.7.2 支持系统开发的CASE工具

按照系统开发的不同阶段,CASE一般分为上层CASE和下层CASE产品。上层(或前端)CASE工具自动进行应用的计划、设计和分析,帮助用户定义需求,产生需求说明,并可完成与应用开发相关的所有计划工作。下层(或后端)CASE工具自动进行应用系统的编程、测试和维护工作,为实施提供支持。若下层CASE和上层CASE工具的供应商没有提供统一界面,则用户必须重新编写或将所有信息从上层CASE工具转换到下层CASE工具。那些为整个生存周期提供支持的CASE工具称为集成CASE,或ICASE工具。

一些CASE工具被设计得尽可能灵活,从而允许分析员使用任何想要的系统开发方法。CASE工具包含一个关于模型信息的数据库,称为CASE工具库。CASE工具的主要功能包括画图工具,报告生成工具,数据词典,数据库管理系统和规格说明检查工具,代码生成工具和文档资料生成工具等。目前CASE的标准是UML(Unified Medeling Language),最常见的CASE工具有Rational Rose、Sybase PowerDesigner、Microsoft Visio、Microsoft Project、Enterprise Architect、MetaCase、ModelMaker、Visual Paradigm等。这些工具集成在统一的CASE环境中,就可以通过一个公共接口,实现工具之间数据的传递,连接系统开发和维护过程中各个步骤,最后在统一的软、硬件平台上实现系统的全部开发工作。

1.7.3 统一建模语言UML

UML是软件系统开发行业的第一个统一的建模语言,目前已成为国际软件界广泛承认的标准,应用领域非常广泛,可用于多种类型软件系统开发建模的各个阶段。它是一种通用建模语言,具有创建系统的静态结构和动态行为等多种结构模型的能力,具有可扩展性和通用性,适合于多种结构系统的建模。

1. UML的发展历程

面向对象的方法论自1986年由Booch率先提出后,面向对象的建模语言迅速增加到50多种,于是爆发了一场语言大战。其中,3个最流行的面向对象方法是OMT方法(由James Rumbaugh提出)、Booch方法(由Grady Booch提出)和OOSE方法(由Ivar Jacobson提出),且每个方法都有自己的价值重点。OMT方法的强项是分析,弱项是设计;Booch91方法的强项是设计,弱项是分析;Jacobson擅长行为分析,在其他方面表现较弱。

在众多的建模语言中,每种语言都有自己的符号表示方法、过程和CASE工具,甚至各种语言所用的术语也不尽相同,各有自己的特点。系统开发人员经常为了选择何种面向对象建模语言而争论不休,很难找到一个最佳答案,这极大地妨碍了用户之间的交流。于是整合这些面向对象方法论的要求越来越迫切。为此,Grady Booch、James Rumbaugh和Ivar Jacobson3人提出了统一建模语言。

1994年10月,Booch和Rumbaugh开始着手建立统一建模语言的工作,他们首先将Booch93和OMT2统一起来,并于1995年10月发布了第一个公开版本,称为统一方法(Unified Method)UM 0.8。

1995年秋,OOSE方法的创始人Jacobson加入了他们的工作,经过共同努力,他们于1996年6月和10月分别发布了两个新的版本,即UML 0.9和UML 0.91,并重新将Unified Method(UM)命名为Unified Modeling Language(UML)。UML在美国得到工业界、科技界和应用界的广泛支持,有700多家公司采用了该语言。同时,这3位杰出的方法学家被称为“三友(Three Amigos)”。

1996年,一些机构将UML作为其商业策略的趋势已日趋明显,UML的开发者得到来自公众的正面反应,并倡导成立了UML成员协会,一个由建模专家组成的国际性队伍“UML伙伴组织”开始同“三友”一起工作,以完善、加强和促进UML的定义工作。1997年1月,UML 1.0正式公布,一并提交给OMG(Object Management Group,对象管理组织),作为软件建模语言标准候选。

其后的半年多时间里,一些重要的软件开发商和系统集成商都成为“UML伙伴”,如IBM、Microsoft、HP等。1997年7月,在征求了合作伙伴的意见之后,“UML伙伴”公布了UML1.1版本。自此,UML已经基本上完成了标准化的工作。

1997年11月,OMG采纳UML 1.1作为面向对象技术的标准建模语言,并视其为可视化建模语言事实上的工业标准。此时UML已稳占面向对象技术市场85%的份额。此后,相继推出了UML 1.2~1.5版本,目前广泛使用的是OMG推出的UML 2.0。

2. UML的内容

UML融合了Booch、OMT和OOSE方法中的基本概念,吸收许多其他面向对象开发技术中的先进思想,通过丰富的科学实践提炼而成。作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。

①UML语义:描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。

②UML表示法:定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法提供标准。这些图形符号和文字所表达的是应用级的模型,在语义上是UML元模型的实例。

UML建模语言的重要内容是构建和定义下列5类模型图:用例图、静态图(包括类图、对象图、包图)、行为图(包括状态图、活动图)、交互图(包括顺序图、通信图)和实现图(包括构件图、部署图),关于这些图形的应用将在后面的章节中做详细的介绍。

3. UML的应用领域

UML的价值在于它综合体现了国际上各种面向对象方法实践的最好经验,支持用例驱动,以体系结构为中心,以增量和迭代的方式进行软件开发。目前,UML已经成为软件建模领域事实上的标准,它被成功地应用于许多领域,表达了众多不同的概念,例如,程序语言实现的可视化表示、直接可执行的模型、与实现语言无关的软件规格说明、高层架构和框架描述、过程工程和重组、网站结构、工作流详述、业务建模等。

UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。