您好,欢迎访问三七文档
UML基础与RationalRose建模二、UML建模基础内容安排一、UML建模基础UML概述UML的组成与体系结构建模UML的建模过程UML概述软件开发过程开发过程解析目前现实是什么?--业务建模在这个现实下,开发系统是为了达到什么目标?--愿景为了达到目标,系统对外提供什么样的功能和性能?--需求找到问题为了提供功能,系统内部应该有什么样的业务核心机制?--分析为了满足性能,系统的核心机制如何在选定架构上实现?--设计解决问题软件开发和维护过程中出现的问题软件开发成本估计不准,开发成本超出预算开发进度不能保证,交付时间一再拖延开发出来的产品不符合用户的需求软件产品质量无法保证软件的可维护程度低软件开发生产率的发展跟不上硬件的发展速度和人们需求的增长问题的根本方法的演变-没有方法方法的演变-功能分解法方法的演变-数据流法方法的演变-信息建模法方法的演变-面向对象法面向对象方法90年代初,有一定影响的OOAD方法有50多种UML的统一一个“剑”字居然有二十多种写法UML的统一没有统一的公式符号,很难想像数学的发展。UML的统一没有五线谱,作曲家如何能精确表达自己的灵感?UML的统一HPFusion操作描述和消息编号Embley单类和超级视图Meyer上下文语义Harel状态图Gamma,etal框架和模式Wirfs-Brock职责Odell分类Shlaer-Mellor对象生命周期RumbaughOMT方法BoochBooch方法JacobsonOOSE方法“三友”JimRumbaughGradyBoochIvarJacobsonUML应用在各种领域UML主要应用在软件密集型系统。在以下领域中已经有效地应用了UML:制造业银行和金融服务军事医疗卫生国防/航天游戏UMLUML(统一建模语言)UnifiedModelingLanguage.什么是模型模型就是现实的简单化。为什么要建模建模是为了了解某件事物是否能够正常工作。建模是为了能够更好地理解我们正在开发的系统。软件模型软件模型:通过一定的形式和方法用来描述软件的模型。软件建模:建立软件模型的过程被称为软件建模。软件建模业务模型需求模型逻辑模型设计模型实现模型测试模型UML定义UML——UML是一种绘制软件蓝图的标准语言,可以使用UML对软件密集型系统的制品进行以下工作:可视化(visualizing)详述(specifying)构造(constructing)文档化(documenting)UML定义UML是可视化语言UML是图形化语言图形便于交流UML是一种可以详细描述的语言所建的模型是精确的,无歧义和完整的UML是用于构造系统或理解系统的语言UML不是一种可视化的编程语言,但用UML描述的模型可与各种编程语言直接关联UML是文档化语言UML可以为系统的体系结构以及系统的所有细节建立文档UML的特点统一标准:已成为面向对象的标准化的统一的建模语言面向对象可视化、表示能力强大独立于过程,但最好运用于以用例驱动的、以体系结构为中心、迭代和增量的过程。概念明确,建模表示法简洁,图形结构清晰,容易掌握使用UML的发展历史UML的9种图测试模型业务用例图,活动图,状态图,实体图;UML扩展机制用例图,活动图,状态图等类图,交互图,活动图,状态图等类图,交互图,活动图,状态图等构件图等用例图,类图,交互图等实现模型设计模型逻辑模型需求模型业务模型UML工具UML和代码的关系用Java,C++等programminglanguage是用编码实现一个系统。用UML是对一个系统建立模型。一些CASE工具可以根据UML所建立的系统模型来产生Java,C++或其它程序设计语言代码框架。UML的组成UML的组成UML构造块公共机制规则事物关系图规格说明修饰公共分类扩展机制命名范围可见性完整性执行结构事物行为事物分组事物注解事物关联依赖泛化实现类图顺序图对象图协作图用例图状态图构件图活动图部署图UML的组成构造块buildingblocks事物things关系relationships图diagrams事物是对模型中最有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物。事物事物things结构事物行为事物分组事物注释事物结构事物:UML模型中的名词,是模型中的静态部分,如类、接口、协作、用例、活动类、组件、节点;行为事物:UML模型中的动词,是模型的动态部分,如交互、状态机、活动;分组事物:包,用于把模型分解成“盒子”;注释事物:用来描述、说明和标注模型的任何元素。关系关系relationships关联association依赖dependency泛化generalization实现realization描述对象之间的一组链接事物的改变引起依赖事物的语义改变一个元素是另一个元素的特化,而且它可以取代更一般的元素类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约图图diagrams顺序图Sequencediagrams协作图collaborationdiagrams用例图usecasediagrams状态图statechartdiagrams活动图activitydiagrams类图classdiagrams对象图objectdiagrams构件图componentdiagrams部署图deploymentdiagrams静态模型(系统结构)动态模型(系统行为)规则UML有自己的语法和语义规则,用于:命名为事物、关系和图起的名字范围使名字具有特定含义的语境可见性这些名字如何让其他成分看见和使用完整性事物如何正确、一致地相互联系执行运行或模拟动态模型的含义是什么公共机制在UML中有4种贯穿整个语言且一致应用的公共机制,因此使得UML变得较为简单,这4种机制分别是:详述修饰通用划分扩展机制公共机制规格说明UML对每一个元素都有确定的图形表示符号,但对该图形符号还有语法、语义的文字说明。例如:Actor:参与者,UML表示为:公共机制修饰图形符号表示一个元素的主要特征,此外,可以加上修饰,表示该元素的特征。例如:矩形框表示一个类,有类名,属性,操作等。但也可增加“可视性”等修饰。公共机制对应划分①抽象-实例例如,类-对象,用例-具体用例②接口-实现接口表示约定,实现表示对约定的实施公共机制扩展机制①版型(构造型)用来扩展UML的词汇,增加语言元素;或者划分某一种元素的不同类型。例1,把“包”构造为“子系统”类型。公共机制②标记-值标记-值用来规定模型元素的特性。通常把标记与值用等号相连,放在花括号中,放在模型元素后面。例如,{location=client}指出类student驻留在客户机结点上。公共机制③约束约束规定所约束的模型元素的某个条件或命题必须为真,否则模型无效。约束也用{}描述。例如,{subset}指出领导属于成员的子集。体系结构建模体系结构可视化、详述、构造和文档化一个软件密集型系统,要求从几个角度去观察系统。体系结构建模设计视图实现视图交互视图部署视图用例视图词汇功能行为性能可伸缩性吞吐量系统装配配置管理系统拓扑结构分布交付安装“4+1”视图用例视图(usecaseview)用例视图由描述可被最终用户、分析人员和测试人员看到的系统行为的用例组成。用例视图实际上没有描述软件系统的组织,而是描述了形成系统体系结构的动力。在UML中,该视图的静态方面由用例图表现;动态方面由交互图、状态图和活动图表现.设计视图(designview)设计视图包含了类、接口和协作,它们形成了问题及其解决方案的词汇。这种视图主要支持系统的功能需求,即系统应该给最终用户的服务。在UML中,该视图的静态方面由类图、对象图表现;动态方面由交互图、状态图和活动图表现。交互视图(interactionview)交互视图展示了系统的不同部分之间的控制流,包括可能的并发和同步机制。该视图主要针对性能、可伸缩性、系统的吞吐量。在UML中,对该视图的静态方面和动态方面的表现与设计视图相同,但着重于控制系统的主动类和它们之间流动的消息。实现视图(implementationview)实现视图包含了用于装配与发布物理系统的制品。这种视图主要针对系统发布的配置管理,它由一些独立的文件组成;这些文件可以用各种方法装配,以产生运行系统。它也关于从逻辑的类和构件到物理制品的映射。在UML中,该视图的静态方面由构件图表现,动态方面由交互图、状态图和活动图表现。部署视图(deploymentview)部署视图包含了形成系统硬件拓扑结构的结点(系统在其上运行)。这种视图主要描述组成物理系统的部件的分布、交付、安装。在UML中,该视图的静态方面由部署图表现,动态方面由交互图、状态图和活动图表现。HelloWorld——一个UML的例子源代码importjava.awt.Graphics;publicclassHelloWorldextendsjava.applet.Applet{publicvoidpaint(Graphicsg){g.drawString(“世界,你好!,10,10);}}世界,你好(一个UML的例子)关键抽象:在Web浏览器中,打印“世界,你好!”的Javaapplet程序:importjava.awt.Graphics;publicclassHelloWorldextendsjava.applet.Applet{publicvoidpaint(Graphicsg){g.drawString(“世界,你好!,10,10);}}在UML中,对这种应用的建模如下图所示,类HelloWorld用一个矩形表示。类HelloWorld中给出了paint操作,在一个附属的注解中说明了该操作的实现。与HelloWorld直接相关的类这个类图反映出了“世界,你好!”这个应用的基本部分,但还遗漏一些事物。按上述代码的描述,这个应用还涉及其他两个类,即Applet和Graphics,而且二者的使用方式不同。类Applet是类HelloWorld的父类,类Graphics则是在类HelloWorld的一个操作paint的特征标记和实现中被使用。可以在类图中表示这些类及其他们与类HelloWorld的不同关系,HelloWorld的继承层次如果针对Applet和Graphics研究Java库,将会发现这两个类是一个更大的类层次的一部分。跟踪类Applet扩展和实现的那些类,能够产成另一个类图,如下图所示。HelloWorld的包为了管理大规模的类层次图,可以用包来组织类,如下图所示:HelloWorld依赖包Java.applet,java.applet依赖包java.awtPainting机制可以使用顺序图对事件的顺序建模,展示了对象的协作。HelloWorld的构件“世界,你好!”是一个程序,不能单独运行,通常是嵌入在Web页中。下面是HelloWorld的构件图:
本文标题:1UML建模基础
链接地址:https://www.777doc.com/doc-3024821 .html