Think in UML 阅读笔记(三)

把从现实世界中记录下来的原始需求信息,再换成一种可以知道开发的表达方式。UML通过被称为之概念化的过程来建立适合计算机理解和实现的模型,这个模型被称为分析模型,它介于原始需求和计算机实现之间,是一种过渡模型。绘制分析模型最主要的元模型有:边界类(boundary)、实体类(entity)、控制类(control)。UML采用控制类来表达原始需求中的动态信息,即业务或用例场景中的步骤和活动。除了控制类外,其他类之间都不能直接相互访问,他们需要通过控制类来代理访问要求。这样做的目的是把动作和物体分开。通过一个儿时的小游戏来说明:只要有人、事、物和规则(定语),就能构成一个有意义的结果。

边界类代表了原始需求中的“事”,实体类代表了现实世界的“物”,控制类则体现了现实世界的“规则”,加上由参与者转化而来的系统的“用户”,这样一来,人、事、物、规则都有了。

在设计模式中,概念模型中的边界类可以被转化成操作界面或者系统接口;控制类可以被转化成计算程序或控制程序;实体类可以转化为数据库表、XMML文档或者其他带有持久化特征的类;这些转化可以遵循的规则有:软件架构和框架、编程语言、规范或中间件。

现实世界==》对象世界,Modeling 模型

业务模型==》概念模型,Conceptual 概念

概念模型==》设计模型,Design 设计

整个过程都涉及到了用例驱动;

对于UML统一建模语言,我们在大二的时候已经学习过,对于他的过程和基本概念有了一个基本的了解,而且也已经有过建模的项目,所以对此比较了解;像参与者、用例、边界、包等,像类之间的关系有:关联关系、依赖关系、扩展关系、包含关系、实现关系、泛华关系、聚合关系、组合关系等等;UML中的图有:用例图、类图、包图、活动图、状态图、协作图等;

对于如何确定自己想要做的方法就是软件过程,软件过程明确了软件的生命周期,明确了软件生命周期过程中的成果物和可交付物,同时也就明确了需要什么样的模型,软件过程明确了在软件项目的哪个阶段使用哪些模型;UML使用最多的几个工作流程:

(1)业务建模工作流程

(2)系统建模工作流程

(3)分析设计工作流程

(4)实施建模工作流程;

业务模型(位于统一过程中先启阶段)工作流程:在起步阶段时,评估业务状态,然后业务建模,说明当前业务,确定业务流程,改进业务流程,设计业务流程实现。改进角色和职责,流程自动化研究,开发领域模型,业务模式是以软件模型方式描述企业管理和业务所涉及的对象和要素、以及他们的属性、行为和彼此关系,业务模型强调以体系的方式来理解、设计和架构企业信息系统;

系统模型(需求过程)工作流程:在新系统或现有系统后分析问题理解涉众的需要,对于一些错误的问题,提出可选的解决方案,选出最佳解决方案,如果无法完成所有的工作,我们就需要改下系统的定义,知道需求定义完成;

需求属性是用来管理和追踪每个需求在项目进行过程中的变化情况;Rational专门有一个Rational Request Pro工具来管理需求属性;软件需求规约就是需求规格说明书,它需要将用例模型(包括用例规约、用例试图等)和补充规约、系统界面原型等集中起来;

分析设计模型工作流程:定义备选架构->分析行为->设计实时构件(设计构件),分析行为即分析用例场景,它是使用分析类或者设计类,并结合架构来实现用例场景的过程,对于这个过程,不要过多的关注细节,这样必将导致工作量的急速增加,同时也会产生巨大的信息量,降低人脑处理他们的能力。因为我们需要研究的是系统的行为以及对架构来说比较重要的那些对象,而不要详细到方法和属性。分析设计的目标在于将需求转化为未来系统的设计,逐步开发强壮的系统构架,使设计适合于实施环境,为提高性能而进行设计;

实施建模的目的是建立组件及其所在的实施子系统的集合,实施模型将开发工作分为许多工作包,因而可以协作生产这些工作包,然后组装他们以形成最终系统;

《大象Think in UML》阅读笔记(三)的更多相关文章

  1. 论文阅读笔记三:R2CNN:Rotational Region CNN for Orientation Robust Scene Text Detection(CVPR2017)

    进行文本的检测的学习,开始使用的是ctpn网络,由于ctpn只能检测水平的文字,而对场景图片中倾斜的文本无法进行很好的检测,故将网络换为RRCNN(全称如题).小白一枚,这里就将RRCNN的论文拿来拜 ...

  2. SOA 面向服务架构 阅读笔记(三)

    7 SOA的主要组件 7.1企业服务总线ESB ESB负责SOA组件之间的互相通信;SOA注册中心的资源库包含表示SOA组件的位置的重要的引用信息: 业务流程编排管理器提供人与人,人与流程,以及流程的 ...

  3. HTTP权威指南阅读笔记三:HTTP报文

    报文的组成部分 报文由三部分组成:对报文进行描述的起始行(start line).包含属性的首部(header),以及可选的.包含数据的主体(body)部分. 请求报文格式 <method> ...

  4. Code Complete阅读笔记(三)

    2015-05-26   628   Code-Tuning Techniques    ——Even though a particular technique generally represen ...

  5. Nginx阅读笔记(三)之proxy_pass用法

    在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走,如果没有/,则会把匹配的路径部分也给代理走. 假设访问 ...

  6. 鸟哥的LINUX私房菜基础篇第三版 阅读笔记 三 Linux磁盘与文件系统管理

    一.认识EXT2文件系统:     a.硬盘的组成:转动小马达+存储的磁盘+读写的机械臂     b.磁盘的一些概念              扇区为最小的物理储存单位,每个扇区为512B       ...

  7. 论文阅读笔记三十七:Grid R-CNN(CVPR2018)

    论文源址:https://arxiv.org/abs/1811.12030 开源代码:未公开 摘要 本文提出了目标检测网络Grid R-CNN,其基于网格定位机制实现准确的目标检测.传统方法主要基于回 ...

  8. 论文阅读笔记三十六:Mask R-CNN(CVPR2017)

    论文源址:https://arxiv.org/pdf/1703.06870.pdf 开源代码:https://github.com/matterport/Mask_RCNN 摘要 Mask R-CNN ...

  9. 论文阅读笔记三十二:YOLOv3: An Incremental Improvement

    论文源址:https://pjreddie.com/media/files/papers/YOLOv3.pdf 代码:https://github.com/qqwweee/keras-yolo3 摘要 ...

  10. 论文阅读笔记三十一:YOLO 9000: Better,Faster,Stronger(CVPR2016)

    论文源址:https://arxiv.org/abs/1612.08242 代码:https://github.com/longcw/yolo2-pytorch 摘要 本文提出YOLO9000可以检测 ...

随机推荐

  1. JDK 环境变量 Windows配置

    安装完成JDK后需要配置环境变量,下面是环境变量的配置方法 1.配置环境变量: 对于Java程序开发而言,主要会使用JDK的两个命令:javac.exe.java.exe.路径:C:\Java\jdk ...

  2. 3130: [Sdoi2013]费用流

    Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络流方案 ...

  3. jQuery 实现复选框的全选与反选

    <script> //实现全选与反选 $(".allAndNotAll").click(function () { if ($(this).prop("che ...

  4. ethereumjs/ethereumjs-util

    ethereumjs/ethereumjs-util Most of the string manipulation methods are provided by ethjs-util 更多的字符串 ...

  5. 关于checkbox自动选中

    checkbox是比较常用的,无论是权限管理还是博客的文章的标签类型的勾选,或者是上下级部门及其公司,都会用的到的. 今天主要讲的是checkbox自动根据值选中. 可参考我之前的文章:checkbo ...

  6. stm32 boot0 boot1的启动方式

    STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash. 2)SRAM = 芯片内置的RAM区,就是内存啦. 3)系统存储器 = 芯片内部一块特定的区域, ...

  7. JAVA框架 Mybaits

     注意:我们在resultType中,对于selectlist方法也是projo类.resultType参数的含义是list的泛型的类型. 一:jar包下载: https://github.com/m ...

  8. JavaScript模块化思想之入门篇

    在写正文之前先写一点废话,从我大三下学期正式接触前端到现在,已经六个月了.自己从HTML,CSS,简单的JS验证开始,一点点开始走入前端的世界.越发的感觉前端这一领域散发着无穷的魅力,也许这和我真心喜 ...

  9. 蓝桥杯之大臣的旅费(两次dfs)

    Description 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个 ...

  10. 计算机视觉-sift(2)代码理解

    之前结合不同人的资料理解了sift的原理,这里通过opencv中的代码来加深对sift的实现的理解. 使得能够从原理性理解到源码级的理解.不过该博文还是大量基于<赵春江, opencv2.4.9 ...