[浪子学编程][读书笔记]-道法自然之用例分析

简介:

道法自然-面向对象实践指南

 

  • 用例分析:海底总动员 vs. 云中漫步
    • UML
      • 工具
        • 表达设计思想
        • 交流&沟通
      • 剑在我心
        • 点到为止
        • 能充分表达设计的意图
        • 方便团队成员间正确的交流&沟通
      • 误入歧途
        • 太过强调UML的用处
        • 花费很多力气去维护非常完整、细致的UML版本
    • 用例模型
      • 用例(User Case)
        • 要素
          • 只描述单一的任务
            • 类似于:一个类最好只背负一个责任
          • 描述用户一个完整的意图
            • 含一系列连贯的步骤
              • 如:达到成功场景的一系列步骤
              • 如:达到失败场景的一系列步骤
          • 反馈有意义的结果
            • 与系统发生交互的参与者
              • 最终用户
              • 外围系统
            • 体现软件的功能性需求
        • 场景
          • 用例中某单一系列动作产生的结果
        • 意义
          • 精确表达软件需求,减少交流&沟通中产生的歧义
          • 利于合理划分软件开发周期
            • 确定用例的优先级
            • 确定每个迭代周期的用例个数
          • 驱动不断细化软件的分析&设计
            • 根据不断完善的用例改进系统设计
            • 指导编码的重构
          • 为测试用例提供明确的测试对象
      • 用例建模
        • 确定系统边界
        • 确定参与者
        • 罗列所有的用例
        • 确定每个用例的级别
          • 高层用例
          • 用户目标级用例
            • 描述用户要实现的功能
              • 业务逻辑层
              • 排除界面层
            • 项目组和开发人员之间的契约
          • 子功能用例
            • 目标级别用例的扩展&细化
            • 细化
              • 类似多态性:不同具体类实现抽象类的各种操作
            • 扩展
              • 调用另一用例进行特殊场景的扩展处理
        • 撰写用例的文字描述
          • 严谨的语言
          • 例如
            • 高层用例
              • 用例名称:借书
                系统范围:图书馆
                描述:读者提交借书凭证&书名:系统确认该书存在,并且未被借出,即可办理借阅手续
            • 用户目标级别用例
              • 用例名称:归还图书
                系统范围:整个软、硬系统
                用户目标:归还上次借阅的图书
                前置条件:借阅卡上记载了书目信息
                执行过程:
                      1、输入书目信息
                      2、验证该次借阅是否逾期
                      3、修改数据库信息
                扩展:
                      1、如果该次借阅逾期
                      2、启动逾期罚款用例
                后置条件:无

        • 画出以整个系统为对象的顺序图
          • 为主要用例画一张顺序图
          • 站在用户角度在线操作流程
            • 把整个系统当成一个黑盒,完全不关心具体如何实现
            • 观察系统的所有信息的顺序&流程
    • 浪子读后感
      • 通过用例(User Case)体现整个系统的功能性需求
      • 通过顺序图描述系统的实际操作流程状况


图示:


本文转自浪子博客园博客,原文链接:http://www.cnblogs.com/walkingboy/archive/2006/04/13/374239.html,如需转载请自行联系原作者
目录
相关文章
|
存储 算法 C++
C++初阶之一篇文章教会你list(模拟实现)(上)
这个表中列出了C++标准库中list容器的一些成员类型定义。这些类型定义是为了使list能够与C++标准库的其他组件协同工作,并提供一些通用的标准接口。每个成员类型
|
6月前
【错题集-编程题】春游(模拟 - 分情况讨论)
【错题集-编程题】春游(模拟 - 分情况讨论)
[学习][记录] c++语言:从放弃到入门 <二>多态
[学习][记录] c++语言:从放弃到入门 <二>多态
|
存储 安全 C++
C++初阶之一篇文章教会你list(模拟实现)(下)
4.swap void swap(list<T>& x) { std::swap(_head, x._head); // 交换两个链表的头结点指针 } 这是 list 类的成员函数 swap,它用于交换两个链表的内容。
|
机器学习/深度学习 人工智能 算法
Barrels (codeforces 1430B )(拆分思想和模拟控制)
Barrels (codeforces 1430B )(拆分思想和模拟控制)
52 0
|
前端开发 测试技术 数据处理
如果在准备面试,请务必看看这道题,前端编码题中的集大成者,异步sum/add
如果在准备面试,请务必看看这道题,前端编码题中的集大成者,异步sum/add
98 0
|
算法 C++
算法基础系列第三章——一文详解DFS(全排列演示带入)
算法基础系列第三章——一文详解DFS(全排列演示带入)
298 0
算法基础系列第三章——一文详解DFS(全排列演示带入)
|
算法 Java Python
【每日算法】简单线性 DP 与简单拓展|Python 主题月
【每日算法】简单线性 DP 与简单拓展|Python 主题月