本节向大家介绍一下C#UML基础,主要包括系统设计流程,用例图和序列图等内容,详细通过本节的学习你对C#UML基础一定会有初步的认识。下面就让我们一起来看一下详细介绍吧。
C#UML基础
面向对象编程方法学是C#编程的指导思想。进行C#编程的***步是利用对象建模技术(ObjectModelingTechnique,OMT)来分析目标问题,抽象出相关对象的共性,对它们进行分类,并分析各类之间的关系,再用类来描述同一类对象,归纳出类之间的关系。Coad和Yourdon在对象建模技术、面向对象编程和知识库系统的基础之上设计了一整套面向对象的方法,分为面向对象分析(Object-OrientedAnalysis,OOA)和面向对象设计(Object-OrientedDesign,OOD)。对象建模技术、面向对象分析和面向对象设计共同构成了系统设计的过程,如图6-1所示。这是编写代码的基础。
系统设计流程
在进行对象建模、面向对象分析和设计的过程中,需要使用建模语言来描述分析的过程和结果。统一建模语言(UnifiedModelingLanguage,UML)是为了这个目标而设计的一种标准通用的设计语言。任何想要真正理解面向对象编程思想的人,都需要具备一定的UML知识。
C#UML基础中UML不是一种方法学,而是一种描述语言,它提供了多种类型的模型描述图(diagram),当在某种给定的方法学中使用这些图时,人们就能更容易理解和交流设计思想。UML的图可划分为如下三种类型。
—静态图(staticdiagram):描述了那些不发生变化的软件元素的逻辑结构,描绘了类、对象、数据结构及其存在于它们之间的关系。
—动态图(dynamicdiagram):展示了在运行期间的软件实体的变化,描绘了执行流程、实体改变状态的方式。
—物理图(physicaldiagram):显示了软件实体的不变化的物理结构,描绘库文件、字节文件、数据文件等,以及存在于它们之间的关系。
用例图
C#UML基础中的用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式来理解系统的功能需求,包括基于基本流程的“角色”之间的关系,以及系统内用例之间的关系。用例图一般用于表示用例的组织关系,要么是整个系统的全部用例,要么是完成具有功能(例如,所有安全管理相关的用例)的一组用例。
用例(usecase)指的是系统的功能,它是系统某个功能的所有执行动作的集合。用例是从一个用户的观点来描述的。这个用户告诉系统去做一些特定的事情。一个用例捕获一个事件的可视化序列,这个事件是一个系统对单个用户的激励(stimulus)的响应过程。
动作者(actor)表示系统用户能扮演的角色(role)。这些用户可能是人,也可能是其他的计算机、一些硬件,或者甚至是其他的软件系统。对用例的***要求是,它们必须位于用例描述的系统部分之外,它们必须能刺激系统部分,并接收返回。
用例描述了当动作者之一给系统特定的刺激时的系统活动。这些活动用文本来描述。它描述了触发用例的刺激的本质,输入和输出到其他活动者,以及从输入到输出的活动。用例文本通常也描述每一个活动可能的错误和系统应采取的补救措施。
在用例图中,用椭圆来表示用例,并将用例的名称放在椭圆的中心或椭圆下面的中间位置。人形符号用来表示角色(用户)。角色和用例之间的关系使用简单的线段来描述,表示角色可以操作此用例。
在用例图中,用一个方框来表示系统的边界。所有系统用例都放在框内,所有动作者都位于框外。动作者和用例之间用直线相连。方框内的每一件事物都是系统的一部分,方框外的每一件事物都是系统的外部。用例图也可以表示方框内的系统用例之间的关系,最常见的是“使用关系”,用带箭头的直线来表示,箭头指向被使用的用例。还有一种关系是扩展关系,用来表示继承。
序列图
C#UML基础中的序列图显示具体用例(或用例的一部分)的详细流程。它几乎是自描述的,并且显示了流程中不同对象之间的交互关系,同时还可以很详细地显示对不同对象的各种调用。
序列图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示对象实例之间的交互。
对象之间的交互包括:
—调用(call):一个对象调用另一个对象(或者自己)的方法。
—返回(return):返回一个值作为方法调用的结果。
—发送(send):一个对象给另一个对象(或者自己)异步发送一个消息。
—创建(create):一个对象实例化另一个对象。
—销毁(destroy):一个对象销毁另一个对象(或者自己)。
序列图的绘制非常简单。图的顶部的框表示类的实例(对象)。在框中,类实例名称和类名称之间用空格/冒号/空格来分隔(例如,gen:ReportGenerator)。如果某个类实例向另一个类实例发送一条消息,则绘制一条具有指向接收类实例的开箭头的连线,并把消息/方法的名称放在连线上面。对于某些特别重要的消息,可以绘制一条具有指向发起类实例的开箭头的虚线,将返回值标注在虚线上。包括返回值的虚线,有助于序列图的阅读。
阅读序列图也非常简单。从左上角启动序列的“驱动”类实例开始,然后顺着每条消息往下阅读。
【编辑推荐】