• UML笔记(2):用例图、User Case View


    产生背景:需求分析是软件开发的第一步,如果走的不好,那后果不堪设想,但要做好这一步,其实是很难得,因为需求分析往往是两个互不相干领域的人沟通的产物,由于领域不同,他们很少有“共同语言”。对于开发人员来说,如何清晰的获取用户的需求,从而避免以后的返工(和加班),是个难题。同时,对于大的项目来说,定义各期的开发边界,从而避免开发费用纠纷,也是个难题。对于用户来说,按时获得自己想要的东西也是个难题。

    这些难题的根本原因是:开发人员和最终用户处于两种“语系”中,他们无法很好的沟通,开发人员总是会先想到如何去实现,实现是否困难;而最终用户往往先想到的是我想要什么东西,要花多少钱,可见,他们的沟通往往是没有什么基础可循的,牛头不对马嘴,这就为以后的加班和费用纠纷埋下了伏笔。

    为了解决这些问题,用例图应运而生,它生来就是开发人员和最终用户的“共同语言”,双方都能够用它来表达意愿,而且对方都可以很容易的理解。

    发展历程:

    1986年,Ivar Jacobson博士在一篇文章中提到了用例的概念,之后Alistair Cockburn写了一本书:《编写有效用例》,该书是定义用例和书写用例最重要、最有影响力也是最全面的书籍。

    概念:

    用例图是这样一种视图,它清晰的描述了用户的各种需求,向用户展示了其所需要的系统的整体结构及其边界。

    要素说明:

    用例图包含三个要素:活动者、用例、关系。

    活动者:

    活动者是指向软件系统发出请求,或享受系统服务的事物。

    活动者可以是人,也可以是外部系统。

    活动者的标记:

    用例:

    用例是指系统的一个功能模块。

    用例的命名一般用动宾结构的词。

    用例的标记是:

    关系:

    用例图中的关系有四种:关联、泛化、包含、扩展

    关联:

    关联用于描述活动者与用例之间的交互。

    关联的标记如下:

    例如:

    泛化:

    泛化用于表达父类与子类的关系,与编程中的继承含义一致。

    泛化的标记如下:

    例如:

    包含:

    包含是指一个用例的执行必须要用到另一个用例。

    包含的标号如下:

    例如:

    扩展:

    扩展用于描述功能的可选功能。

    扩展的标记如下:

    例如:

    画用例图的一般步骤:

    1.      确定系统边界,找出所有的活动者。

    2.      从抽象到具体,对系统进行细化,确定各个功能点

    3.      对功能点进行优化,提前共通功能点和扩展功能点,

    4.      确认活动者与功能点的关系。

     

    作用:

    1.      便于用户与开发人员沟通

    2.      便于对系统复杂度、开发周期等的评估。

    3.      便于新员工对系统整体结构的了解。

    4.      便于测试人员开展ST

    注意事项:

    用例图中要尽量避免使用编程相关的技术术语,而应该使用最终用户或领域专家的语言。

    用例图应该有最终用户和开发人员共同完成。(或者至少需要经过双方确认。)

     

  • 相关阅读:
    DataGrid( 数据表格) 组件[2]
    DataGrid( 数据表格) 组件[1]
    Form( 表单) 组件
    Slider( 滑动条) 组件
    内存管理-常见内存泄露-(5)
    Android 内存管理分析(四)
    Android 之 内存管理-查看内存泄露(三)
    Android 内存管理(二)
    正确认识Android的内存管理机制,合理关闭进程 (一)
    谈谈Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
  • 原文地址:https://www.cnblogs.com/xueyuangudiao/p/2182736.html
Copyright © 2020-2023  润新知