只供参考,喜欢请支持正版图书

一个用例可能有多个用例实现,每个用例实现都是设想的一种实现方式。虽然实现方式和过程不同,但目的是相同的,同样要达到用例所规定的系统目标。为了表示出用例实现与它所实现的用例之间的关系,我们可以用图11.13来表示。这幅图表明了实现到需求之间的追溯关系

11.3.2 现在行动:实现用例

在5.6.3分析模型的意义一节中作者介绍过,分析模型是采用MVC模式,将用例场景中描述的业务分解为边界(操作界面和展示界面)、控制(业务逻辑)和实体(业务数据),用这三个元素建立实现用例场景的对象模型。于是边界类对象、控制类对象和实体类对象就成为我们用来实现用例的关键对象

要为用例实现建模,我们需要经过以下三个步骤

第一步,我们需要在用例场景当中发现和定义实体对象。这些实体对象代表了我们将要操作的业务数据。发现和定义实体对象的方法很简单,在这个用例场景当中,每一个活动都是由动词+名词构成的,这些名词就是我们要寻找的实体。

第二步,我们需要用控制对象来操作和处理实体对象中的数据。在初步实现用例的时候,我们可以简单地为每一个实体对象加上一个控制对象。每个控制对象操作一个实体对象,它默认地包含所有对该实体对象的处理逻辑。

第三步,我们需要用边界对象来构建接收外部指令的界面。边界对象负责接收来自系统外部的指令,并将指令传达给控制对象,控制对象根据指令执行相应的逻辑程序,然后将结果返回给边界对象。最后再由边界对象将结果展示给外部。
图11.16 批量申请登记用例实现场景
图11.17 sur_批量申请登记用例实现

至此,两个用例实现场景绘制完毕。在绘制过程中,我们得到了一些关键对象以及这些关键对象的方法。接下来我们把这些关键对象集中在一个图里,定义它们的关系,就得到了分析类图,如图11.18所示
图11.18 申请登记分析类图

11.3.3 进一步讨论

为什么用分析类而不是设计类来实现用例场景

分析类是从业务需求向系统设计转化过程中最为主要的元素,它们在高层次抽象出系统实现业务需求的原型,业务需求通过分析类被逻辑化,成为可以被计算机理解的语义。分析类的抽象层次高于设计实现,高于语言实现,也高于实现方式

可以看到,由于分析类的抽象层次较高,基本上停留在“概念”阶段,相对于设计实现、语言实现、实现方式这些较低抽象层次的工作来说,需要考虑的信息量要少得多,而能够让分析工作专注在实现需求上。相对于设计模式、编程风格这些因素来说,忠实地实现需求才是第一位的。另外,也由于分析类的抽象层次较高,概括能力就很强,也就比设计和实现要稳定。在一个演进式的软件生命周期里,维护稳定的分析类比维护易变的设计类要投入更少的精力,更容易获得一个稳定架构来指导整个软件的开发

11.4 软件架构和框架

11.4.2 什么是软件架构

软件架构是一种思想,一个系统蓝图,对软件结构组成的规划和职责设定

11.4.3 什么是软件框架

软件框架是软件架构的一种实现,是一个半成品

11.4.4 软件架构的基本构成

只供参考,喜欢请支持正版图书

《大象:thinking in uml 》(第二版) 11章 系统分析 3-4节 用例实现、软件架构和框架相关推荐

  1. 《大象:thinking in uml 》(第二版) 11章 系统分析 1-2节 确定系统用例、分析业务规则

    只供参考,喜欢请支持正版图书 11.1 确定系统用例 具体说来,这些方法包括: ■ 映射 映射是最简单最直接的方法,例如值机人员办理登机手续这个备选用例就可以不加修饰地直接被采纳为系统用例. ■ 抽象 ...

  2. 《大象--Thinking in UML 第二版》已于近日在当当首发,同时邀请各位加入新浪微博[大象-thinkinginUml群]:http://q.weibo.com/1483929

    <大象--Thinking in UML 第二版>已于近日在当当首发,感兴趣的朋友可以去看看http://product.dangdang.com/product.aspx?product ...

  3. 《大象:thinking in uml 》(第二版) 9章 获取需求 5-8节 领域建模、提炼业务规则、获取非功能性需求、主要成果物

    只供参考,喜欢请支持正版图书 9.5.2 现在行动:建立领域模型 建立领域模型首先要确定领域,才能为之建模.何为领域?所谓领域就是我们分析问题时将整体分解以后的相对独立的部分 在实际工作中,并不需要把 ...

  4. 《大象:thinking in uml 》(第二版) 9章 获取需求 1-2节 定义边界、发现主角

    只供参考,喜欢请支持正版图书 9.1 定义边界 边界定义的不同会带来不同的结果,因为视角会因边界而变动.那么有没有一种方法能帮助我们定义边界呢?有,通过前景文档当中的业务目标来定义边界会是一个好办法, ...

  5. 数据结构(C语言)第二版 第一章课后答案

    数据结构(C语言)第二版 第一章课后答案 这本书,我以后也会用,所以趁着考完试做个整理,顺便分享出来.电子资源发不出来,放评论区吧,有需要自取. 1. 简述下列概念:数据.数据元素.数据项.数据对象. ...

  6. 《大象:thinking in uml 》(第二版) 5章 UML核心模型

    只供参考,喜欢请支持正版图书 5.1 用例模型概述 用例模型的好坏将决定整个开发过程的好坏. 用例模型是系统既定功能及系统环境的模型,它可以作为客户和开发人员之间的契约.用例是贯穿整个系统开发的一条主 ...

  7. 《大象:thinking in uml 》(第二版) 3章 UML核心元素 3节 用例

    只供参考,喜欢请支持正版图书 3.3 用例 用例在UML建模中是最最重要的一个元素.之所以说它重要,是因为UML是面向对象的,除用例之外,所有其他元素都是"封装"的."独 ...

  8. 《大象:thinking in uml 》(第二版) 3章 UML核心元素 1-2节 版型、参与者

    只供参考,喜欢请支持正版图书 3.1 版型 在UML里有一个概念叫版型(stereotype),有些书里也称为类型.构造型.这个概念是对一个UML元素基础定义的扩展,在同一个元素基础定义的基础上赋予特 ...

  9. 《大象:thinking in uml 》(第二版) 3章 UML核心元素 8-11节 设计类、关系、组件、节点

    3.8 设计类 只供参考,喜欢请支持正版图书 设计类是系统实施中一个或多个对象的抽象:设计类所对应的对象取决于实施语言.设计类用于设计模型中,它直接使用与编程语言相同的语言来描述. 凡是使用过面向对象 ...

最新文章

  1. 如何从零开始设计与开发一款通用模型预测调度系统 | 干货分享
  2. Domino URL Command 详解
  3. linux中 用户管理命令,Linux中的常用用户和用户组管理命令
  4. thymeleaf 学习笔记
  5. XX System Test Plan
  6. Mongodb和redis书籍调研
  7. mysql跨服务器查询插入_Oracle跨服务器查询插入数据
  8. 【算法】QuickSort
  9. 【thinking in java】学习笔记 三 初始化及权限控制
  10. linux设置自动清除内存碎片
  11. 「需求广场」需求词更新明细(六)
  12. Zynq系列--Uboot移植
  13. Hexo | yilia主题美化
  14. Scratch——创建exe可执行文件
  15. shell怎样循环遍历字符串数组
  16. html2canvas长截图不全,底部内容空白
  17. windows资源保护无法启动修复服务器,win10专业版sfc/scannow修复系统提示windows资源保护没法启动修复服务?...
  18. selenium+requests实现自动连接校园网并验证!
  19. ITiM v2.0 功能框架
  20. BZOJ4920: [Lydsy1706月赛]薄饼切割

热门文章

  1. Android音乐播放器-热门榜单
  2. Redis BitMap结构实现签到、连续签到统计
  3. #navigation
  4. 华为手机坏了数据怎么导出_苹果手机的语音备忘录怎么导出来?
  5. JDK中java.exe,javadoc.exe,jdb.exe,javaprof.exe分别是什么,有什么作用?
  6. 入坑数据分析的几个问题——学习、面试、作报告
  7. 软件测试 | 测试开发 | 双非院校,从外包到外企涨薪85%,他的涨薪秘籍全公开
  8. 在我的世界里玩我的世界是一种怎样的体验?
  9. HyperLynx(二十三)DDR(六)DDRx总线批量仿真
  10. Oracle高级数据库复习