【UML学习】用例图 —— Use Case Diagram

来源:互联网 发布:linux内核入门书籍 编辑:程序博客网 时间:2024/06/07 18:50

前言

       UML学习中,图占了很大一部分比重,UML中的各种图是UML模型的重要组成部分。

    画好用例图是由软件需求到最终实现的第一步,在UML中用例图用于对系统,子系统或类的行为的可视化,以便使系统的用户更容易理解这些元素的用途,便利软件开发人员最值最终实现这些元素。

内容

    概述

     实际中,当软件的用户开始定制某软件产品时,最先考虑的一定是该软件产品功能的合理性,使用的方便程度和软件的用户界面等特性。

     软件产品的价值通过这些外部特性动态的体现给客户,而客户对如何实现系统并不关心。而UML的用例视图就是软件产品外部特性描述的视图。用例视图从用户的角度而不是开发者的的角度来描述对软件产品的需求,分析产品的所需的功能和动态行为。

     因此对于整个软件开发过程而言,用例图是至关重要的,它的正确与否直接影响到用户对于产品的满意程度。

     用例图描述了一组用例,参与者以及他们之间的关系。描述了系统静态使用情况。

     用例包括三方面的内容。

     1.用例 (UseCase):对一个系统或应用的一种单一的使用方式所做的描述。

     2.参与者(Actor):系统外部的一个实体,可以是任何事物或人,以某种方式参与用例的执行过程。

     3.关系:参与者之间的关系,泛化关系,包含关系,扩展关系等。

     下图的小人就是参与者,椭圆代表用例。

    

      举个栗子

      

     图外音: 

     1.小人用户和ATM是参与者。

     2.椭圆形状的插入卡,输入密码,打印票据,验证密码,以及出款是用例。

    

 

      用例间的关系

             用例除了与其参与者发生关联关系外,还可以具有系统中的多个关系,这些关系包括泛化关系,包含关系和扩充关系。

         1.泛化关系(Generalization)

          一个用例可以被特别列举为一个或多个子用例,这被称为用例泛化。用例间的泛化和类之间的泛化类似。在用例泛化汇总,子用例标书父用例的特殊形式。子用例从父用例出继承行为和属性,还可以添加行为或覆盖,改变已继承的行为。

         泛化关系用空心箭头表示,由子用例指向父用例。

         如下图,用户actor 来 search person。两个子用例search teacher 和search student继承了父用例search person的行为,并添加了自己的行为,他们在查找过程中属于自己的查询范围。

         

        2.包含关系(Include)

        一个用例可以简单的包含其他用例具有的行为,并把它所包含的用例行为作为自身行为的一部分,这被称作包含关系。

        包含关系把几个用例的公共步骤分离成一个单独的被包含用例。用例间的包含关系允许包含提供者用例的行为到用户用例的事件中。把包含用例称为客户用例,被包含用例称为提供者用例,包含用例提供功能给客户用例。

        下图中,用户user想要系统帮他修改,查看,删除个人信息,都要涉及找到某个人。如果每次想查这些内容,都要编写时间序列,那么用例就太复杂了。search person被用例change person details,view person details,delete person details包含,这样就能避免重复的动作,更加简便。

        

        3.扩展关系(Extend)

        一个用例也可以被定义为基础用例的增量扩展,这称作扩展关系。扩展关系是把新行为插入到已有用例的方法。

    基础用例提供了一组插入点(Extension points),在这些插入点中可以,添加新的行为,而扩展用例提供了一组插入片段,这些片段能偶被插入到基础用例中的扩展点。

        扩展关系为处理异常或构建灵活系统框架提供了一种有效的方法。

        下图,是图书馆信息系统用例图的部分内容。我们可以知道,基础用例是return book。如果一切顺利,书可以被归还。

        但是,如果超出借书期限,就要按照规定缴纳罚金。这时,系统就不鞥执行用例提供的常规动作。那么,我们该怎么做呢?

        你会想,可以更改return book啊,但是一旦更改,就会增加系统的复杂性。所以,给return book添加扩展点,特定条件是overduebook。如果满足此条件,就会执行扩展用例 issue fine,缴纳罚金。这样系统就可以很好被理解啦。

    

 

      使用Rational Rose绘制用例图

             1.在Rose树形列表中UseCase包的图标单击右键,在快捷菜单中选择【New】,新建Use Case Diagram。

         

 

 

 

        2.新建用例图后,可以右击选择 Rename 修改名称。双击就可以打开此图。

        

        3.用例图相应的工具条,一开始只给出了常用的一些,可以右击工具条,选择Customize,添加自定义添加自己所需的工具。

                   

 

              4.属性的更改和查看,只需右击,选择Open Specification。

            其他图的画法都差不多,可以依据以上参考,开始探索画出自己的图。

 

小结

           用例图在对于系统行为组织和建模方面是相当重要的。对于Rational Rose,我们需要自己多去思考一些元素之间的关系,多动手去点点,一幅小图也能给你满满的幸福感。用例图总结到此,下次再见~~

       

 

     
1 0
原创粉丝点击