国内更全面
解决程序疑难杂症

UML(一)——用例图,类图,对象图

UML学习了较长的时间,虽然画完图了,但是对九种图还是一知半解,所以总结一下,整理一下自己的思路.

(一).用例图

在传统的软件开发方法和早期的面向对象开发方法中,都是用自然语言来描述,系统的功能需求,这样的做法缺乏形式化,随意性较大,容易产生理解上的含糊和不准确,UML中的用例图就很好的解决了这个问题.

        用例图说明的是谁要使用系统以及该系统可以做些什么,强调谁在使用系统,以及系统完成的功能

    用例图的作用:(1)用来描述待开发系统的功能需求和系统使用场景,

(2)作为开发过程的基础,驱动各阶段的开发工作

(3)用于验证和确认系统需求

          

  


                               

执行者:在图中actor就是该用例图的执行者,它表示了谁要使用这个系统.

用例:在图中的椭圆,它代表着系统的功能.

包含(include):表示一个用例在执行过程中使用到了另一个用例的行为或功能,比如在机房收费系统的"导出为excel"用例中,就包含(include)了"打印"这个用例.(也可以理解为"打印"是"导出为excel"的一个流程.)

扩展(extend):一个用例描述了一项基本功能,而另一个用例则描述了该基本功能的特殊情况.这就是一种扩展.在机房收费系统中有一个"查询"用例,但这只是一个抽象的用例描述,所以"打印"和"屏幕显示"就是对"查询"的扩展(e xtend).可以和C#中的继承类比一下."打印"和"屏幕显示"就可以看做是"查询"的实例化.

(二)类图

类是具有相似结构、行为和关系的一组对象的描述符。类是面向对象系统中最重要的构造块。类图显示了一组类、接口、协作以及他们之间的关系。在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统。类加上他们之间的关系就构成了类图,类图是由若干类关联在一起的,反映系统或者子系统组成结构的静态图,

从用例中识别类:用例图实质上是一种系统描述的形式,自然可以根据用例描述来识别类。针对各个用例,可以提如下的问题辅助识别:(1)用例描述中出现了那些实体?(2)用例的完成需要哪些实体合作?(3)用例执行过程中会产生并存储哪些信息?(4)用例要求与之关联的每个角色的输入是什么?(5)用例反馈与之关联的每个角色的输出是什么?(6)用例需要操作哪些硬设备?

                                                                            

关联:是类之间的一种很弱的联系。关联可以有方向,可以是单向关联,也可以是双向关联。可以给关联加上关联名来描述关联的作用。关联两端的类也可以以某种角色参与关联.关联包含聚集和组合两种特殊的形式

聚集与组合:这两个关系常常混淆,这两个关系都表示了整体和部分的关系,但是组合的部分和整体有统一的生存期,一旦删除了组合对象,部分对象也就不存在了,在图中就好像大雁和翅膀的关系一样,如果没有了大雁,那也就没有了翅膀。而聚合表示的关系就像雁群和大雁一样,没有了雁群,大雁还是可以存在的。

依赖:描述的是一个类使用了另一个类,也就是说一个类的实现需要另一个类的协助,大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。在图中动物是依赖空气的,也可以理解说动物需要空气的协助.

泛化:描述了用于描述父类与子类之间的关系,在图中动物泛化出鸭子,大雁和企鹅

(三)对象图

就好像对类实例化一样,对象图也是类图实例化的结果。对象图表达的是特定时间被建模系统在结构上的部分或是全部视图。同一个类图所对应的对象图可以有多个,多个对象图合在一起共同展示了随着时间的推移,在不同时间点系统的对象状态。与类图的抽象性相比,对象图是具体的,其通常用来提供所对应类图的结构示例,或者作为所对应类图的测试用例。应当说每一幅对象图都有其侧重点,因而,每一幅对象图应当只侧重表达其所侧重内容

其作用有(1)捕获实例和连接(2)在分析和设计阶段创建(3)捕获交互的静态部分(4)举例说明数据、对象的结构(5)描述瞬态图

企业站定制,我们更专业!

联系我们