热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

道法自然-面向对象实践指南需求分析:追求完美vs.容忍缺陷用例分析:海底总动员vs.云中漫步UML工具表达设计思想交流&沟通剑在我心点到为止能充分表达设计的意图方便团

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

  • 需求分析:追求完美 vs. 容忍缺陷

 

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

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


图示:
o_%E9%81%93%E6%B3%95%E8%87%AA%E7%84%B6-%

分类: 1.首页原创精华.NET区123,读书笔记

本文转自浪子博客园博客,原文链接:http://www.cnblogs.com/walkingboy/archive/2006/04/13/374239.html,如需转载请自行联系原作者



推荐阅读
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了一种解析GRE报文长度的方法,通过分析GRE报文头中的标志位来计算报文长度。具体实现步骤包括获取GRE报文头指针、提取标志位、计算报文长度等。该方法可以帮助用户准确地获取GRE报文的长度信息。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
author-avatar
雲悳蕲黇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有