那个qingrun是不是很厉害阿??

解决方案 »

  1.   

    前言: 提起建模,每一位软件开发人员都不会陌生,但我们还是要给它一个明确的定义:建模是人类对客观世界和抽象事物之间联系的具体描述。在过去的软件开发中,程序员利用手工建模,既耗费了大量的时间和精力又无法对整个复杂系统全面准确的描述,以至于直接影响应用系统的开发质量和速度。而今,我们不再为建模苦恼。 Rational公司曾以Ada语言享誉世界,今天又以面向对象的可视化建模工具Rational ROSE博得了业界一片好评。正如美国《应用程序开发战略》Yourdou教授所评价的:“Rational Rose将对面向对象应用程序开发技术产生巨大影响;使大型开发项目的分析,建模、设计规范化了,……Rational公司已成为OO CASE(面向对象)界的Microsoft。” Rational ROSE包括了一体化建模语言(UML),OOSE及OMT。其中一体化建模语言(UML)由Rational公司三位世界级面向对象技术专家Grady Booch,Ivar Jacobson和Jim Rumbaugh通过对早期面向对象研究和设计方法的进一步扩展而得来的,为可视化建模软件奠定了坚实的理论基础。 今天,Rational Rose作为Rational公司的又一个旗舰产品,由太平洋技术软件(中国)有限公司和美国Rational Software公司连手引入中国,通过共同建立的Rational(中国)有限公司向中国广大用户推荐,我们希望它能为提高中国计算机应用水平作出应有的贡献! 一、可视化:设计的关键所在 计算机技术的飞速发展创造了人类历史上新的奇迹,但是,随着现代软件工程的复杂程度不断提高,项目失败的可能性也相应的增加了。信息系统的专家们发现当他们面对越来越多的源代码的时候,脑海中系统模型及其内部的联系也越发混沌和模糊了。面对现代社会庞大而繁杂的信息事务,专家们渴望使信息变得简单易懂。 无论何种复杂程度的工程项目,设计都是从建模开始的,设计者通过创建模型和设计蓝图来描述系统的结构。比如说,电子工程设计人员使用惯用标记和示意图进行复杂的系统的最初设计,会计总是在表格上规划公司的财务蓝图,而行政管理人员则常使用组织流图这种可视化的方式来描述所管理的部门。 正是因为感到无法对整个复杂的系统全面地把握,所以我们需要建模。人对复杂性的认识是有局限性的,对程序员来说,仅仅几行源代码是不能对整个开发项目提供一个全面认识的,而模型则可以使设计者从全局上把握系统及其内部的联系,而不至于陷入每个模块的细节之中。 建模的意义重大,“分而治之”,这是一个古老而有效的概念。可以想象,当我们把特别复杂而困难的问题细化分解之后,一次只是设法解决其中一个的时候,事情就容易解决多了。模型的作用就是使复杂的信息关联简单易懂,它使我们容易洞察复杂堆砌而成的原始数据背后的规律,并能有效地使我们将系统需求映射到软件结构上去。 1.1设计的三层结构 客户机/服务器体系结构的广泛使用预示了系统复杂化的发展趋势,为了解决这一问题,与之相应的三层结构方案(three-tiered)越来越得到了广泛的应用。 传统的两层结构不是“胖客户机”就是“胖服务器”,胖客户机结构将事务处理原则在用户端处理,胖服务器则将之与集成在数据库中,大量的数据流动为维护和编程带来了极大的困难,而且,其中包含的事务处理原则不能与其它应用共享。 三层结构方案是指由用户接口层、事务处理原则层和数据层的应用模型。与传统的两层结构相比,它有着更多的优点: 对应用结构任意一层做出修改时,只对其它层产生极小的影响。 
    固有的可塑性,三层既可共存于单机之中,也可根据需要相互分开。 
    公用代码数据库使事务处理规则在系统中共享。 
    1.2 新的挑战 
    新的解决方案也相应带来了新的挑战: 开发者必须采用新的思维方式划分和实现应用系统。 
    可重用的对象必须能被辨识和精炼。 
    必须决定如何把对象分配给组件和组件在网络(包括Internet)上如何分布。 
    应用程序必须不断地跟上业务需求的变化。 
    开发团体必须紧密配合开发应用程序。 
    基于组件的开发方式正在改变着应用项目的特性。 
    随着应用系统的开发变得不断复杂,即便是小的应用系统也包括多个分系统和多种组件,如何处理好复杂性的问题是关系到是否能够正确建立系统的关键。 
    好的软件结构和流程能够帮助开发者正确地解决这一问题,一个完好的结构可使开发过程飒爽流畅,并方便地随着需求的变化而改变。 二、什么是建模? 建模是使你逐层深入解决问题的方法: 确认应用系统的功能需求并为事务处理原则建模  
    对抽象的对象映射需求,辨认和提供设计模版并创建惯用的模版  
    分辨和设计对象或划分三层模型的服务  
    对软件的组成部分映射成对象并设计组件在网络上如何分布 
    以上工作写入白版文档,建模允许处理发生变化,通过建立抽象概念,设计者就可以有效地处理大型工程和复杂结构。建模建立起应用程序的客户和编程人员之间生动的联系。 
    三、用Rational ROSE实现建模 创建模型是帮助设计者实现任何复杂的工程项目的有力工具,在软件工程中,它能够把模型与实际应用紧密地联系起来。通过模型与代码之间的映射,可以直接为不同的程序开发环境生成系统结构的框架,通过建立模型和代码间的映射,可以确保代码改进时模型也随之更新了,而且通过模型与代码间的自动连接,建模工具可以确保良好的设计实施。 3.1 何时需要建模? 在应用开发的任何阶段进入建模工作都是有意义的,无可否认的是, 在设计最初阶段,应将精力主要用于处理有关应用系统用途、为实现用途应采用何种编程环境,而不是考虑程序的细节,如在屏幕上的什么位置放置按钮等。 在项目开发的中期引入建模也是非常有意义的,Rational Rose既支持正向建模,同时也支持反向建模。Rose通过建立模型使开发人员把握程序开发的方向,准确完成需求分析中所要求的任务。 3.2 Rational ROSE的解决方案 Rational Rose产品为大型软件工程提供了可塑性和柔韧性极强的解决方案: 强有力的浏览器,用于查看模型和查找可重用的组件;  
    可定制的目标库或编码指南的代码生成机制;  
    既支持目标语言中的标准类型又支持用户自定义的数据类型;  
    保证模型与代码之间转化的一致性;  
    通过OLE连接,Rational Rose图表可动态连接到Microsoft Word中; 
    能够与Rational Visual Test、SQA Suite和SoDA文档工具无缝集成,完成软件生命周期中的全部辅助软件工程工作; 
    强有力的正/反向建模工作;  
    缩短开发周期; 
    降低维护成本 
    3.3 一体化建模语言 
    如果没有一个被普遍认可的国际标准,事情就会陷入混乱之中。Rational ROSE提供对工业标准标记的独家支持,其中包括一体化建模语言(UML),这一即将在工业界成为标准的面向对象建模语言。一体化建模语言(UML)正是为了适应企业级复杂开发中对重用、结构和扩展能力的严格要求而设计的建模语言。 一体化建模语言(UML)是早期面对对象研究和设计方法的进一步扩展,由世界级面向对象技术知名专家Grady Booch,Ivar Jacobson和Jim Rumbaugh对Booch标记、OOSE标记和OMT标记理论的研究基础上提出的,为可视化建模软件奠定了坚实的理论基础。一体化建模语言对建模语言提供了以下支持: 使用事件模型 
    类和对象模型 
    组件模型 
    分布处理模型 
    Rational Rose产品在支持UML的同时,也支持OOSE及OMT。 
    3.4 Raional ROSE对大型复杂项目的支持 Rational Rose支持绝大多数软件工程师常见的个人/公共工作平台。直至所编制软件共享之前,软件工程师都可以在个人工作平台修改自己的源代码和已建立的模型。  在公共平台,通过在配置管理和版本控制系统(CMVC),模型改变可以共享,换句话说,其他开发者可以观察和利用这些改变。  Rational ROSE能够与主要的CMVC工具集成,包括Rational Summit/CM,Microsoft SourceSafe,PVCS,ClearCase,SCCS以及CVS/RCS.  Rational ROSE也可以支持企业级数据库,同时支持Unisys的通用的存储库(UREP)和Microsoft的存储库。 Rational ROSE在支持框架结构的同时,还支持可重用类组件部分,将可重用基类放入公控单元整个团队或其他工作组就可以使用它们了。   四、Rational Rose系列产品 Rational Rose可视化开发工具与多种开发环境无缝集成,目前所支持的开发语言包括:Visual Basic、Java、PowerBuilder、C++、Ada、Smalltalk、Fort等。 Rational Rose的所有产品支持关系型数据库逻辑模型的生成,包括:Oracle 7、Sybase、SQL Server、Watcom SQL和ANSI SQL,其结果可用于数据库建模工具生成逻辑模型和概念模型,如:LogicWorks Erwin和Powersoft的S-Designor。  Rational Rose系列产品可以支持: 工业级的功用分析 
    存储库和个人工作平台 
    CORBA-2/IDL的正向工程 
    用户自由选择Booch’93,OMT和UML标记 
    扩充的接口允许Rational ROSE既充当OLE服务器又充当OLE控制器。  
    ROSE脚本是一种与VBA兼容的脚本语言并且兼容Rose API,允许你创建GUI,功能单元和全定制的报告以及控制其他应用。 
    支持的平台Windows 95、NT、Alpha NT、SGI、Solaris、AIX、Digital UNIX和HP-UX  
    五、一体化建模语言(UML) 一体化建模语言(Unified Modeling Language)是Rational软件公司世界级知名专家Grady Booch、Ivar Jacobson和Jim Rumbaugh三人联合开发成功的。开发过程中,得到了其他一些学术领先的方法论学者、软件厂商及众多用户的帮助和支持。在Booch标记法、OMT标记法及OOSE/Jacobson标记法得到广泛应用的基础上,UML将面向对象的分析设计技术又向前推进了一大步。  UML为应用程序建模语言提供了以下支持: 使用事件模型 使用事件模型已成为工业领域首选的分析技术。使用事件确定了商业运行过程中的商业规则和任务,特别是解释了这些任务是怎样由一个应用程序系统来支持的。  
    使用事件技术满足了系统的功能要求,使用户能够将这些要求映射到对象模型中。 
    使用对象技术有效的架起了系统分析人员、用户及应用程序开发人员之间交流沟通的桥梁。 
    类和对象模型类和对象模型  
    商业对象确定了应用程序的结构基础,用户可以在应用领域里重复使用商业对象,也可以将商业对象从使用事件或应用领域中直接识别并提取出来。 
    UML既支持基类和对象模型,也支持高级的类和对象模型。通 过一体化建模语言,用户可以用类模型来确定商业对象和应用程序结构,可以建立对象,作为类的实例来显示类是怎样活跃地交互作用并提供使用事件和应用行为的。对象模型确定各种各样的类所要求的行为,以确保使用事件和商业规则能得到正确的支持。 
    类模型确定商业对象和应用对象的结构细节,类奠定了代码生成和数据库定义生成的基础。 
    类的定义及其相互关系被集中在程序包中,以确定应用程序的结构。程序可能是成套的,其相互间的关系决定了应用程序的独立性及程序结构的易变性。 
    组件模型 
    组件模型是源代码的实际单元,也就是组成应用程序的可执行单元。类被分配到组件中,以提供可重复使用的应用程序结构部件。这些组件将为即插即用的应用程序结构奠定基础。 
    一体化建模语言中的重复使用在前期编译阶段和后期编译阶段都的到支持。前期的支持有可重复使用的类或架构,后期则有组件装配。 
    分布处理模型 
    处理模型可以模拟演示应用程序是如何被映射到一个分布处理结构中的。 
    各种网络拓扑结构都可以模拟出来,包括客户/服务器、三层结构、Internet/Intranet以及广域交流网络中拓扑结构的节点,以及这些节点是怎样相互连接、应用程序在网络中是怎样分布的。 
      

  2.   

    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必将在更广泛的领域发挥作用,成为提升软件设计与开发效率的利器。 
      

  3.   

    http://www.aka.org.cn/SoftEng/index.html 还是找一本书看看吧~~呵呵~~
      

  4.   

    老千,同路
    偶在那网页上看到:建摸后可以自动生成代码
    真有这么神奇吗?
    rose支持delphi吗
      

  5.   

    对了,老千
    在偶的印象中
    power design,erwin也是建莫的
    对吗?
    偶似乎还见过power design的书
    另外,刚才那个网战是哪里的?
      

  6.   

    我也没有用过rose
    盗版买不到
    下载太大下不了

    真想用阿
      

  7.   

    老鱼,rose哪里有?多大?
    老千,visio 也是健莫的吧,偶在软件工程里刚见到
    偶去买盗版,试试运气
    一起学呀
      

  8.   

    hellion(恶人)~~一起学习阿??等有一天~~咱们学会了?一起杀向软件工程版??呵呵~~
      

  9.   

    老恶你的妹儿
    我想和你联系
    [email protected]
    rose在www.umlchina.com
      

  10.   

    一不小心下载了一个鸟版!
    TO:老鱼
      专业版好还是企业版好?
    Sql Server好象是企业版的功能最全
      

  11.   

    Rational Suites Enterprise v2001A.04.00版(462M)
    or
    Rational EnterpriseSuite 2001?
    几百M都下了还管它。
      

  12.   

    哪里有rose可下载?俺这边是宽带