UML和Rose

在面向对象的软件开发中,如果软件
由近百个或更多对象构成,单凭简单的分析是很难理清的。同时为了利于大中型软件的维护和再使用,在具体写代码之前进行软件结构分析也是很有必要的。这就需要有一个CASE(Computer Aided Software Engineering)工具来辅助分析。而当今国际CASE工具集成了新的面向对象的设计分析方法—UML。所谓UML即统一模型语言(Unified Modeling Language)的缩写。它是运用统一的、标准化了的标记和定义来实现面向对象的软件分析和设计的一种方法。它综合了Rambaugh所提出的“对象模型技术”(Object Modeling Technique,OMT),Booch和Jacobson提出的“面向对象软件工程”(Object Oriented Software Engineering,OOSE)等设计分析方法,并由Object Management Group(OMG)于1997年底标准化了的一种新的面向对象的软件设计方法。它主要由不同定义的图表(Diagram)和关系(Relationship)构成,适用于软件分析、设计的各个方面;同时也对商务过程的管理与分析提供帮助。
这里首先得给出UML不同的标记(图表和关系)的定义。

UML的图表和关系
UML的图表可以从动态、静态和实现(Implementation)三个角度来观察、分析和表达一个模型。
1. 动态的角度是由应用图(UseCase Diagram)、顺序图(Sequence Diagram)、协作图(Collaboration Diagram)、状态图(State Diagram)和行为图(Activity Diagram)构成。应用图反映客户与系统之间的关系,比如说客户的要求,系统的响应等,它是从客户的层次来反映模型;顺序图和协作图描绘了对象执行的过程。顺序图是以时间为坐标来描绘这个过程。协作图则是按对象之间的关系来联接,并标注出这一个过程;状态图表现的着重点是对象的状态变化,比如说状态变化时需要什么条件;行为图是一种特殊的状态图,它的状态、状态变化都是发生于一个过程的内部,对于一般的状态图,更常用于表现外部(异步)触发的的状态变化。
2.类图(ClassDiagramm)是属于静态的角度。它是由类、类的属性(Attribute)、类的方法(Method)、及类与类之间的关系来反映一个模型。
3.组件图(Component Diagram)和开发图(Deployment Diagram)属于实现的角度。组件图表达了如何把类、对象集成在实际软件模块中。例如一个类,特定的数据是在执行文件中还是在动态库里。开发图从物理层次指出了系统模块之间的联系。
4.UML里的四个常用的关系(Relationship)是:
实现(Realization):代表一个类是一个新类型(stereo type)类的实现这种关系。所谓新类型即是不同于一般的UML元素,它是有自己特殊的属性和结构的元素,用于UML模型的扩展。例如Java中的Interface类是UML中未定义的,则可用stereo type来扩充。
集合(Aggregation):代表一个类是另一个类的一部份这种关系。
协作(Association):代表两个类之间的操作关系。即类与类之间可以通过句柄对对方的属性,方法进行操作。它也可连接在同一个类上。
概括(Generalization):代表一个类是其他一个(多个)类的子类。

基于UML的软件分析与设计
软件开发正常情况下按照如下步骤进行。首先是了解系统(客户)需求,其次是系统分析,再次是代码编写,最后是代码的维护和扩展。
1.系统(用户)需求
它是问题提出的过程,软件大体要实现什么功能,有什么参与者。而应用图(Use Case Diagram)所表达的正是参与者(Actor)与软件应用(Use Case),应用和系统响应之间的关系。
在了解系统需求的过程中,就可以给应用图添加上相应的Actor与Use Case。在了解系统需求的后期,则可以把不同Actor与Use Case间的关系用相应的连线连接和对连线的定义使之清晰。之后可对Use Case的系统响应进行分析,即把系统执行顺序画出来,这已经进入系统分析阶段。
2.系统分析
在这一阶段,需要把软件的功能细节化,同时考虑数据间的关系(层次),然后建立与之对应的对象,接着分析对象间的关系(即软件结构)并定义对象的属性(Attribute)和方法(Method)。常用的分析方法有流程图、泡泡图和由上到下等,但都只能反映系统的某一个方面,要把它们综合起来,即是UML的分析方法。
首先当然是对Use Case的分析,可按时间顺序,把一个个过程标注出来,并分析哪一些过程属于哪一个对象,这是顺序图。同时UseCase中还可以使用协作图和状态图。协作图是按对象之间的关系来联接,适用于时间顺序不严格的过程变化。状态图的分析重点在于状态,即数据的变化,常用于观察过程的参数和数据的变化,它在类图分析中也使用。其次是把上一步分析的过程和数据整理成对象的方法(Method)和属性(Attribute),并在类图中画出来,
每一个类即代表一个对象。对于类中的操作(Operation),还可用状态图来分析运行过程。完成类的绘制后,要把相近的类划归在一起,形成一个包(Package),接着把这些类用相应的关系(继承、接口等)连接起来。类与类之间的关系在不同的面向对象的语言中有着各自的特殊之处,但都可用UML的关系(实现、集合、协作、概括)表达出来。
最后是在基于操作系统和特定语言的基础上分析整个系统需要哪些模块,对应于什么文件(比如在Windows中exe、dll、vxd等文件),这可在组件图中标记出来。如果设计的系统模块处于不同物理层次,比如一个网络系统,有多个Server(Database server、Web server等)和多个Client,而软件模块分布在不同的Server里运行,这时需要使用开发图,分析系统在实际环境运行时模块的分布和运行条件。
3.代码编写
这一过程是把抽象的软件模型转变为具体的代码。使用CASE工具建立了相应的模型,或者说建立起一个多视角的相关数据库系统(RDMS)之后,则可使用软件直接产生基于此模型的对应代码框架(比如Java代码,见表1)。至此一个具有清晰结构的软件系统就已经有了雏形。往后的阶段只需要把某一种具体代码往框架里填充。
4.代码的维护和扩展
面向对象的程序设计方法,主要目的就是为了让程序更容易维护,扩展。为了改动和添加代码,一般情况下就得通读源代码和注释,然后才明白程序的结构和完成的功能,进而修改。但对于UML设计出来的软件,先看其模型中不同视角的图表就可以把软件结构清晰的表达出来了。
同时在建立模型时所写的文档,也会加入源代码中。另外,有的CASE工具还提供COM接口,也就是说,可以通过编程把这些工具建立的模型进行分析,输出相应的报表、文档。以上3点都说明了用UML建立模型利于软件的维护和扩展。

Rational Rose
Rational公司推出的Rational Rose 98i是目前最好的基于UML的CASE工具。它把UML和谐地集成进面向对象的软件开发过程中。不论是在系统需求阶段,还是在对象的分析与设计、软件的实现与测试阶段,它都提供了清晰的UML表达方法和完善的工具,方便建立起相应的软件模型。它有良好的界面,可通过编辑*.MNU纯文本文件,修改和定义主菜单,添加运行模块。它可生成各种代码和数据框架,如C++、Java、Visual Basic,IDL(Interface Design Language)、DDL(Data Definition Language)等。
它有Rose Script,类似Office中的VBA(Visual Basic for Application),直接调用Rose模型的对象。对于模型中需要有特定数据结构,生成Rose不直接支持的代码的程序员,可考虑用其进行模型的扩展,直接在模型中加入特定数据结构。值得补充的是,因为Rose的接口是按照Microsoft COM(Compent Object Model)的标准制定的接口,所以也可以在VB或VC++环境中编程,对模型进行数据添加。它有Add-In Manager,可把编写好的RoseScript和COM组件在Rational Rose中添加或卸出。
UML是一个普遍的、抽象的分析方法,因而并不是每个CASE工具都可能,或都需要把100%的UML集成到各自的环境中。Rational Rose中就没有行为图(Activity Diagram)。

微软的Repository
按UML来设计模型,用于生成代码只是UML的用途之一。Microsoft公司的Repository也是以UML为基础设计的一个模型(与Rose模型类似)。UML在Repository中得到充分的实际运用,在这模型上可以把不同平台、不同程序的数据交换紧密连接起来。它由四个部分组成。
1.Open Information Model(OIM):它实际上是一组元数据(Meta Data),描述了不同数据的结构和它们之间的关系,它是Repository的基础;
2.Repository Engine:以SQL Server为基础的对象管理系统,提供COM接口和SQL的API;
3.SDK和Visual Modeling Enviroment:在此环境下可以创建一个与实际开发环境相联系的模型并用此模型开发程序,Microsoft公司已经把它集成于Visual Studio 6.0中;
4.XML Interchange Format:XML是新的、将要替代HTML的下一代标示语言(Markup Lanuage),在网络里,不同Repository数据库间的数据可以变成XML的格式来交换数据,新出的Repository 2.0允许直接用XML语句来改动模型(OIM)的数据。
随着更多软件厂商对UML的关注,UML必将在更广泛的领域发挥作用,成为提升软件设计与开发效率的利器。 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验一 实验名称:业务建模 一、实验目的 1.熟悉业务建模内容。 2.掌握如何使用建模工具rational rose绘制业务模型图。 3.学习使用Microsoft Project对题目进行进度安排。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据图书管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。 要求: 1、创建业务用例模型。(参与者--用例)。 2、用活动图来描述系统核心业务过程。 3、创建业务对象模型。 四、实验步骤 1. 系统当前业务描述 …………………………… 2. 系统业务用例模型 ………………………….. 3. 核心业务用例的活动图 …………………………. 4. 系统业务对象模型 ………………………… 五、 实验心得 实验二 用例建模 一、 实验目的: 通过学生对提供的案例进行用例建模,熟练掌握用例建模技术。 二、主要实验仪器设备及环境 1. 计算机:安装有:操作系统为windows 2000,WindowsXP Professional; 2. 软件:National rose 三、实验内容: 1. 认真阅读案例的需求,根据其内容建立相应的用例模型; 2. 选择主要用例进行事件流分析,并把分析结果作为说明文档附在用例模型中; 四、实验步骤: 1. 系统参与者 2. 系统用例 3. 系统用例模型 4. 用例文档(主要用例) 五、实验心得 (对用例模型、用例的粒度、关系的理解) 实验三 顺序图 一、实验目的 1.理解顺序图的基本概念。 2. 掌握在Rational Rose中绘制交互图的操作方法。 3. 细化用例文档中的事件流,绘制顺序图。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 通过对系统动态模型部分的学习,根据用例建模阶段的用例图和用例文档,对对应的用例实现用顺序图来描述系统的动态特性。完成如下任务: 对选定系统中的主要用例进行动态建模(顺序图)。 四、实验步骤 1.在logic view中创建“分析模型”包,在该包中添加“用例实现”包,在“用例实现”包中添加跟踪关系图(类图),在跟踪关系图中描述用例与用例实现的关系。为系统中主要的用例实现添加顺序图。 如下图: 2.在logic view中分别添加三个包(构造型:layer):边界层、控制层、实体层。主要根据用例文档来识别分析类(边界类、控制类、实体类)。如下图: 3.对主要的用例实现,根据细化用例文档中的主要事件流。 ……………………………………… 4.结合用例实现中识别出来的分析类,绘制顺序图。如下图: ……………………………………… 五:实验心得: 实验四 系统分析类图 一、实验目的 1.识别分析类之间的关系、类的属性和操作。 2.使用ROSE软件构建系统的分析类图。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据***系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行分析,识别出分析类,识别类的属性和方法,构建每个用例的VOPC图,综合所有用例的VOPC图,构建系统的分析类图 要求: 1、针对每个用例实现构建其VOPC图 2、综合所有VOPC图,构建系统的分析类图 四、实验步骤 1. 对每个用例实现识别分析类,根据需求、常识识别类的属性,根据交互图识别类的方法,在每个用例实现下创建一个类图,命名为 **用例的VOPC图(借书用例VOPC) 2. 综合所有VOPC图,在系统分析包中创建一个类图,命名为系统分析类图 3. 通过用例实现顺序图中的消息映射出分析类的操作(如下图)。 ……………………………………. 4. 根据用用例文档映射出类的属性(如下图)。 ……………………………………….. 五、实验总结 实验五 实验名称:子系统和接口 一、实验目的 1.基于分析阶段的BCE架构,抽取子系统。 2.根据包设计原则,对系统组织结构进行设计 。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据指定系统的开发进度,已经完成对系统用例分析,应用BCE架构构建了系统的组织结构。本次实验主要根据抽取子系统的方法设计子系统、子系统接口,然后根据打包原则重构系统组织结构 要求: 1、抽取子系统,设计相应接口 2、利用包图设计系统架构 四、实验步骤 1. 抽取子系统 子系统是一种特殊的包,采用构造型《subsystem》扩展包的寓意,子系统内部是完全封装的,子系统提供接口对外服务。  你抽取子系统是依据什么角度(从那几个方面收取子系统?教材P263) ………文字描述子系统及抽取角度…………………… 2. 接口设计 接口是子系统对外提供的服务。接口采用构造型《interface》通过对类进行扩展表示 ……………子系统和接口的关系及几口中的操作,如P262 8-11图…….. 3. 更新软件架构 …………系统架构更新后的包图,如图8-17………………. 五、 实验心得 实验四 (系统静态模型)分析类图 一、实验目的 1.识别分析类、关系、类的属性和操作。 2.使用UML工具软件构建系统的分析类图。 二、实验器材 1.计算机一台。 2.Rational Rose 工具软件。 三、实验内容 根据***系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行分析,识别出分析类,识别类的属性和方法,构建每个用例的VOPC图,综合所有用例的VOPC图,构建系统的分析类图 要求: 1、针对每个用例实现构建其VOPC图 2、综合所有VOPC图,构建系统的分析类图 3、根据顺序图为类添加操作 4、根据需求和用例文档为类添加属性 四、实验步骤 1. 对每个用例实现识别分析类,根据需求、常识识别类的属性,根据交互图识别类的方法,在每个用例实现下创建一个类图,命名为 **用例的VOPC图(借书用例VOPC) 1) 添加VOPC图 2) 打开vopc图,把该用例中的边界类、控制类、实体类拖入其中,并建立关系 2. 通过用例实现顺序图中的消息映射出分析类的操作(如下图)。 把每个类收到的消息映射为该类的一个操作。下面以申请边界类为例: 3. 根据用用例文档映射出类的属性(如下图)。 1) 打开某个类的规格说明,选择“属性”选项卡,在编辑窗口中点击鼠标右键,在菜单中“Insert”,可以为类添加属性 . 2) 例: 4. 综合所有的VOPC图,创建完整的系统分析类图 1) 在分析模型包下添加一个类图:命名为系统分析类图 2) 打开系统分析类图,把边界类包、控制类包、实体类包中的所有类拖入系统分析类图中,由于类的属性和操作、类之间的关系已经在每个类图中已经描述,所以在系统分析类图中会自然体现出来。 五、实验总结

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值