zoukankan      html  css  js  c++  java
  • 2.2 UML用例模型

    参与者(Actor)

    参与者(注:有另一种翻译“执行者”)
      代表位于系统之外并和系统进行交互的一类事物(人、物、其他软件子系统等)
      通过它,可以对软件系统与外界发生的交互进行分析和描述
      通过它,可以了解客户希望软件系统提供哪些功能
    Actor的图形表示
      参与者是人,用“小人图”
      参与者是某个系统时用方框图,构造型 《actor》

    根据下面的问题来寻找系统的参与者
      ① 谁使用系统?Who or what uses the system
      ② 谁安装系统、维护系统?Who installs the system? Who maintains the system
      ③ 谁启动系统、关闭系统?Who starts and stops the system
      ④ 谁从系统中获取信息,谁提供信息给系统?Who gets and provides information to the system
      ⑤ 在系统交互中,谁扮演了什么角色?What roles do they play in the interaction
      ⑥ 系统会与哪些其他系统相关联?What other systems interact with this system
      ⑺ 内/外部定时器 Does anything happen at a fixed time?
    对每一类参与者要有简短描述
      如, 学生:需要参加培养计划规定的课程,并通过考核

    例子

    手机软件系统的Actor有

      用户

      网络
      SIM卡
    学院管理系统的Actor有
      用户/学生/教师/系统管理员
      数据库
      如果有子系统
      其它系统可以作为一个Actor
      有时数据库可以作为一个Actor
    银行ATM机的Actor有
      用户/管理员
      网络 / 数据库

    用例
      系统为响应参与者引发的一个事件而执行的一系列的处理/动作,而这些处理应该为参与者产生一种有价值的结果
      这些动作
        不但应包含正常情况的各种动作序列
        而且应包含对非正常情况时软件系统的动作序列的描述,Exception / Alternate
    用例图
      边界
      参与者
      用例
      关系

    寻找用例

      可以根据下面的一些问题来识别用例
        ①参与者希望系统提供什么功能 Start with actors, then identify what they want to do What functions will the actor want from the system ?
        ②系统是否存储和检索信息
        ③当系统改变状态时,是否通知参与者 Are any actors notified when the system changes ?
        ④是否存在影响系统的外部事件,是哪个参与者通知系统这些外部事件 Are there external events that notify the system ?
        ⑤哪个参与者触发了活动?Which actors trigger activity ?
      每个用例都有一个名称
        短小精悍的“动名词”
        例如ATM系统,经典的用例有“取钱” “存钱”“修改密码”等

    用例图中的关系
      1)参与者与用例之间
        关联关系: 用实线表示
      2)参与者/参与者之间的关系
        泛化关系:实线+空心箭头
      3)用例之间的关系
        泛化关系 例如、发出订单 - 网上发出订单
        含关系《include》
        扩展关系《extend》

     用例描述UseCase description

      仅有用例图还不够,还需要详尽的文字描述!

        主事件流:一切正常时的动作序列
        异常事件或者可选事件流:主事件流的每一步都有可能出现异常,此处描述异常情况的处理

    用例模型 Usecase Model
      用例模型包括
        系统边界
        参与者
        用例
        用例图
        用例描述
      用例模型是系统分析的结果、是系统设计的输入

    案例

    用例描述

      用例:处理销售

      Summary : 完成一笔日常销售业务的处理
      Actor List : 顾客、收银员、财务子系统、税金计算器
      Pre-Cond : 收银员必须经过确认和认证
      Description :
        1)顾客携带所购商品或服务到收银台通过POS机付款
        2)收银员开始一次新的销售交易
        3)收银员输入商品条码
        4)系统记录出售的商品,显示品名、价格、数量
        重复第3~4步,直到输入结束
        5)系统显示应付总额
        6)顾客付钱,系统处理支付
        7)系统记录完整的销售信息,打印票据
        8)顾客携带商品和票据离开,销售结束
      Exception :
        3a : 无效商品ID,收银员手工输入,或者取消该商品
        3b : 顾客要求删除某项已经输入的商品,需要经理授权,并删除商品
        6a : 顾客信用卡不足部分,需要现金支付,请经理授权,并接受现金
      …….
      PostCond :

        系统完整记录该笔销售业务的信息
        系统正确协同其他子系统,确保数据一致性

    用例模型小结
      用例模型
        是软件开发人员分析客户业务流程的结果
        是面向对象分析的结果
          不一定完全是面向对象分析的结果
        是面向对象设计的输入
        是开发部门与顾客之间的合同
        是软件设计部门与软件工程师之间的合同
        是开发部门领导、非直接开发人员,了解系统的主要信息来源

  • 相关阅读:
    [GEF]实现模板功能
    一篇WTP文章
    写代码的代码:JET
    投票选择eclipse.org的新界面
    在SWT里显示AWT对象
    Plugin.xml > Manifest.mf
    关于本体编程的实现
    一个用OWLS组装Web服务的例子
    感受Ruby on Rails
    通过OCP考试
  • 原文地址:https://www.cnblogs.com/mayZhou/p/10367930.html
Copyright © 2011-2022 走看看