在刚学习软件开发的课程时,首先学习了UML设计,但只是学习了基本的语法,虽然在学期通过课堂练习进行了实践,但并没有真正理解其中作用。为了进一步的理解UML的用法,我阅读了《UML大战需求分析》这本书,希望可以详尽的掌握UML语言。

首先我阅读了第一章,学习了什么时候使用什么图,并从整体的角度对各类图进行了认识。UML是一种语言,UML语言用于软件需求中更能直观的进行交流,易于理解。UML大体可以分为两类图:结构型的和行为型的。结构型的图描述的是某种结构在某段时间内具有固有的结构,是静态的;而行为型的图描述的是某种行为,是动态的。例如:在软件开发前期的需求分析阶段,各种业务的内容既是静态的使用结构图描述的,相反业务之间的流程、过程是动态的,这就需要行为图进行描述。

(1)结构型图

包括了类图,类图是分析业务概念的首选,是使用效率最高的一种图。它可以直观的显示类的属性和操作。对象图,在软件开发中会使用,对象是类的实例化,至于在需要描述复杂算法才使用,但它在需求分析工作中并不常用。构件图,描述软件内部物理组成的一种图,一般与结构部署图一起使用。部署图,顾名思义就是用来描述系统如何部署、本系统与其他系统是什么关系的一种图。在软件系统需要基于当前的IT基础环境来规划时,我们需要使用部署图来做这个规划。包图,主要用途是打包类图。包图是避免类图庞大,造成不利于阅读,将某些类放入“包”中的图,组织类图。

(2)行为型图

活动图、状态机图、顺序图从不同的角度描述流程。活动图,表达一个顺序流程,还可以表达分支结构。状态机图,是从某个物品的状态是如何变化的角度来展示流程。顺序图,能够清楚地表达整个过程所参与的角色和角色与角色之间的关系以及角色的交互。通信图,就是我们学过的协作图,和顺序图相似表达角色之间的关系和交互,但是协作图强调的是相互之间的关系,而顺序图更强调先后顺序。用例图,表达啥角色通过软件系统做什么,系统的表达系统的绝大部分要求。时序图,表达的是某东西的状态随时间的变化的图,一般不使用。相比于其他的行为图活动图最接近我们的思维习惯。

在以前学习UML语言这门课程中,我只是认为UML只是画画图,并没有实际的作用。通过第一章的阅读我学到熟练的掌握UML语言有机会成为软件需求高手。它在真正的软件开发过程中,UML能直观、形象、严谨的地描述出 业务概念、业物流程、客户的期望和需求。UML对提升软件需求分析能力有很大的帮助。

《UML大战需求分析》阅读笔记01的更多相关文章

  1. Java并发编程阅读笔记-Java监视器模式示例

    1.前言 书中在解释Java监视器模式的时候使用了一个车辆追踪器例子,根据不同的使用场景给出了不同的实现和优化. 2.监视器模式示例 实现一个调度车辆的"车辆追踪器",每台车使用一 ...

  2. uml大战需求分析阅读笔记01

    <<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...

  3. 《java与模式》阅读笔记01

    这次我读了前两章的内容,就如书名所言,这本书主要将的就是java中的模式,在书中的序言就把所有的模式都介绍了一下,主要有, 1.创建模式:简单工厂模式,工厂方法模式,抽象工厂模式,建造模式 2.行为模 ...

  4. Spring源码阅读笔记01:源码阅读环境准备

    1. 写在前面 对于做Java开发的同学来说,Spring就像是一条绕不过去的路,但是大多数也只是停留在对Spring的简单使用层面上,对于其背后的原理所知不多也不愿深究,关于这个问题,我在平时的生活 ...

  5. <精通JavaScript>---阅读笔记01

    下面是阅读精通JavaScript书做的相关笔记. JS中的函数重载 函数重载必须依赖两件事情:判断传入参数数量的能力和判断传入参数类型的能力,在js中每个函数都带有一个仅在这个函数范围内作用的变量, ...

  6. Java与模式读书笔记

    >设计目标:可扩展性,灵活性,可插入性. >设计原则 ● Open Closed Principle 开闭原则 对扩展开放,对修改关闭. 对面向对象的语言来说,不可以更改的是系统的抽象层, ...

  7. java web开发阅读笔记:第一章

    学习该书前所用推荐书籍<名师讲坛—java开发实战经典> 一web开发前奏 1.1网页发展 首先搞懂. 1.HTTP:超级文本传输协议,是一种通讯协议. 通过这个网络协议WW浏览器与WWW ...

  8. 深入理解Java虚拟机一 阅读笔记

    xl_echo编辑整理.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! --- > 以下内容摘抄自 ...

  9. 深入理解Java虚拟机二 阅读笔记

    xl_echo编辑整理.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!! --- > 以下内容摘抄自 ...

  10. UML大战需求分析--阅读笔记01

    本次阅读的书籍是<UML大战需求分析>,看了前两章的内容:1 大话UML,2绞尽脑汁的需求分析.这两章内容关联不大,分开描述. 第一章:大话UML 本章主要概述UML是什么,有什么内容.U ...

随机推荐

  1. uva-465(overflow)

    这道题很奇葩啊,WA了4发...妈的,用c++也不至于,输出竟然要原样输出... 例如: 0000000000000000006 * 000000000000001 输出是 0000000000000 ...

  2. jquery ajax 提交信息后等待返回的提示信息

    最简单的方法: http://bbs.csdn.net/topics/390584283?page=1 $('#click').click(function){ $('#data').html('&l ...

  3. Codeforces Round #215 (Div. 2) A. Sereja and Coat Rack

    #include <iostream> #include <vector> #include <algorithm> using namespace std; in ...

  4. 【CodeVS】p1079 回家

    题目描述 Description 现在是晚餐时间,而母牛们在外面分散的牧场中. 农民约翰按响了电铃,所以她们开始向谷仓走去. 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一 ...

  5. Hibernate条件查询

    设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装.现在对 Hibernate的Criteria 的用法进行总结:Hibernate 设计了 CriteriaSpecificat ...

  6. lua日期与时间操作

    os.date("%Y%m%d%H%M%S", os.time()) <== 20160405141211 yyyyMMddHHmmss os.time()          ...

  7. 如何将maven项目导入MyEclipse

    一.安装maven第一步:下载一个免安装版的apache-maven-3.0.3.zip解压后,配置环境变量 新建M2_HOME:   在path后面添加  %M2_HOME%\bin;   第二步: ...

  8. Java语言基础

    Java 语言是面向对象的程序设计语言,Java 程序的基本组成单元是类,类体中又包括属性与方法两部分.每一个应用程序都必须包含一个main()方法,含有main()方法的类成为主类. 一.Java ...

  9. android中的ActionBar和ToolBar

    一.ToolBar 1.概述 Google在2015的IO大会上发布了系列的Material Design风格的控件.其中ToolBar是替代ActionBar的控件.由于ActionBar在各个安卓 ...

  10. Map 映射

    package lis0924; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import j ...