Use Case @ Software Development介绍

  简化的酒店系统有顾客屏幕,职员屏幕,订房,入住,离店,订单和房间7个组件,箭头标示了组件间的依赖关系.这是软件开发中用组件化来划分复杂系统,隔离复杂度到各个组件里的标准姿势.

1. 简化的酒店系统

  姑且把系统外对系统的关注点(Concern)称为痛点,下图2显示订房间,登记入住和结单离店3个痛点分别缠绕若干个组件,同时有些组件内部也同时分散着多个痛点的部分.

2. 痛点和组件间的聚散离合

  倘若渴望的目标是清楚地分离各个痛点,从用例,需求,分析,到设计,实现,再到测试都是严格的分开,软件开发要来得容易多了.

3. 痛点与组件(类)矩阵示意

  在痛点与组件实现类之间架一座桥,叫做用例.这里所说的用例是用来对系统行为建模,一个用例的定义是某个系统进行的一系列活动,产出可观测到的结果,并且这个结果对一个或者多个系统相关的人或物是有价值的.

4. 用例作为痛点和组件类之间的桥梁

  用例与类清单如下所示,订房,入住和离店3个用例,顾客屏幕,职员屏幕,订房,入住,离店,订单和房间7个类.

5. 简化酒店系统的用例和类清单

  以类为横坐标,用例作纵坐标,模块化设计系统的可选方式有两种,OO(Object-Oriented)为代表的纵向切割系统,每个组件一个类,另一种是横向切割,AO(Aspect-Oriented)是代表,每一组横向切片打包合称为用例片断(Use Case Slice).

6. 用例-类坐标图

  任何一个用例,如订房,在软件开发过程中用例,分析,设计,实现,测试阶段都分别有对应的用例片断.把一个用例对应的所有用例片断合在一起,称为用例模块(Use Case Module).比如分析建模或设计建模的用例片断会囊括该用例的所有类,一些类里相关的部分成员(变量或方法)称为Aspect,还包括交互图,通讯图和类图这些描述用例实现的协作.

  用例的表示有3个场景:最简洁的是一个椭圆+名字,矩形同时显示用例名和它所含的活动序列(基本序列,备选序列,和子序列),还有一种就是在系统中和其它用例的关系结构.订房用例的图示,在系统关系图中,为订房用例归纳抽象出设施预定的用例,订房用例继承它,同时抽取3个用例共同部分检查房间情况的子用例,然后分别包含,在没有合适的房间时,为订房扩展新的排队列表用例.用例间的关系就这3种:归纳抽象,包含和扩展.

7. 订房用例椭圆简图
8. 订房用例矩形图
9. 订房用例及其所在系统示意

  关于用例间的归纳,包含关系和OO里类间继承,包含类似,扩展的概念不是很好对应,这个主题也内容也比较多,可参阅"Aspect-Oriented Software Development with Use Cases"一书.此文有意回避这部分,可简单粗暴地理解为订房用例把排队完全外包给另一个用例了.

  用例就像硬币,从系统外部看有一个相关方actor连着一个命名的实线椭圆就够了,从系统内部看去,用一个命名的虚线椭圆再连上与它关联的所有类或类的部分,这两个视角分别称为用例和用例的实现.

10. 外部看用例和actor
11. 用例和它的实现示意
12. 订房用例的实现

  描述订房用例实现的交互图,用例片断图,以及用例片断间的抽象归纳,包含和扩展关系.

13. 用例交互图
14. 订房用例片断图
15. 从订房用例归纳抽象出设施预订用例
16. 订房用例包含检查房间情况用例
17. 订房用例与酒店管理用例的扩展关系

  开发过程中用例的迭代建模过程如下:细化用例阶段更新用例模型,分析阶段更新分析模型,设计阶段更新设计模型,实现阶段更新实现模型.而测试设计片段覆盖前3个,测试实现片断覆盖测试设计和用例的实现

18. 软件开发阶段及对应的迭代更新
19. 用例模块和它所含用例片断
20. 用例间关系及其在用例模块图里的表示


21. 用例模块的打包编译配置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • UML概述 UML简介 UML (Unified Modeling Language)为面向对象软件设计提供统一的...
    aron1992阅读 504评论 0 0
  • 本文原创:haorongrong 前言 最近在梳理项目,用到了UML, 对于这个工具可能有的人听过,或者有的人用过...
    jad_design阅读 758评论 0 2
  • 接纳他人的现状(Accepting people where they are) 不论企图改变事丶或改变人,都如同...
    台Jennifer阅读 534评论 2 8
  • 那段只有笑容在彼此脸上的日子,时时在这样清新的日子中向我微笑着! 记得无数次,我们在阳台上相望,举杯,欢笑,在有落...
    安朴阅读 226评论 0 1
  • 我以前觉得,大大咧咧,没心没肺的生活,喜欢着自己喜欢的人就行了,爱自己,爱家人,爱生活,爱一切有趣的东西。 但是现...
    上林仙馆阅读 161评论 0 1