前言  

            本人菜鸟一枚,前不久在进行一个项目文档编写的时候需要用到用例图。对于我来说软件开发

     中文档的规范编写确实不怎么能理解,只是按照网上的模板进行编写。遇到用例图这块之后不甚明

     了查查资料之后现对其做下简单的总结。

   用例图概念

             定义:有参与者(Actor)、用例(Use Case)以及他们之间的的关系构成的用于描述系统功能的动

     态视图称为用例图。

             用例图是外部用户(参与者)所能观察到的系统功能的模型图,显示了系统中用例与角色的相互关

      系,主要是用于对系统、子系统的功能行为进行建模。

             用例图展示了用例之间以及同用例Actor之间是怎样相互联系的。对系统、子系统的行为进行了

      可视化,是用户可以立即如何使用系统模块,且给开发者的实现提供一个引导。

             Tips:用例图是通过Actor从系统的外部看系统功能的,因此并不描述系统的内部具体实现。

    用例图构成

           参与者(Actor)

               这里的Actor并不特指人,它指的是在系统以外,在使用系统或则与系统进行交互的时候所扮演的

       角色。其可视化的模型如下:

                                 

               说道这儿,当我们进行用例图的设计的时候如何识别出Actor呢?

                     ●  谁向系统提供信息

                     ●  谁向系统获取信息

                     ●  谁操作系统

           用例

                   简单来说用例是参与者期望系统做的事。对于用例的名字一般是描述性的,并带有动作性的词

              用例的可视化模型如下:

                             

                 实际设计中用例又是如何识别的呢?

                      ●   Actor希望系统执行什么任务

                      ●   Actor访问哪些信息(储存,修改,删除等)

           系统边界

                  表示正在建模的系统的边界 ,边界内表示系统的组成部分,边界外表示系统的外部。系统边界

             是一种较为模糊的概念 ,其作用不是特别的明显,一般用例图中可以略去。  

            箭头  

                    箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。尾部表示启动交互

              一方,头部表示被启动的一方。用例总是需要Actor来启动。

     用例图作用

           说了那么多,用例图到底有什么作用呢?

                    ▼  获取需求

                         通过用例图确定系统需求,简单功能需求

                    ▼ 指导测试

                         对于系统测试有借鉴作用。

                    ▼  指导工作流

              我们知道用例图是一些关系的可视化,那么其具体的关系又是如何的呢?

               元素之间的关系

                        用例图包含了元用例之间的关系,角色之间的关系,用例和角色之间的关系。

               角色之间的关系

                        角色也就是实体类,所以他拥有与类相同的关系描述。对于角色行为的提取

                    是按照其共同的行为提取出来作为通用行为的。

               用例之间的关系

                            包含关系

                               基于用例的行为包含了另一个用例的行为。

                            泛化关系

                              代表通用与特殊的关系,类的is-a关系。子用例可以增加新的行为、覆盖父用例的

                              行为

                             扩展关系

                               扩展关系和泛化关系类似,不过扩展的用例有更多的规则限制,子用例可以增加新

                                的行为,但是不能进行覆盖。

        用例图实例

                 说了那么多,到底用例图应该如何设计呢?以一个实例来看吧。主要是针对一块阅读器

             设计的用例图,可支持PDF,DOC,TXT,XLS。

                   

                   小生第一次做用例图,有些不明白和错误的地方希望指正!