在刚学习软件开发的课程时,首先学习了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. Codeforces Round #337 (Div. 2)

    水 A - Pasha and Stick #include <bits/stdc++.h> using namespace std; typedef long long ll; cons ...

  2. HowTo:使用数据流读写消息

      本文主要演示使用TPL 数据流库从数据流块(dataflow block)读写消息. 提供了同步方法和异步方法. 主要使用BufferBlock,其既能作为message source,有能作为m ...

  3. POJ2976 Dropping tests(01分数规划)

    题目大概说给n个二元组Ai和Bi,要去掉k个,求余下的100*∑Ai/∑Bi的最大值. 假设要的最大的值是ans,令Di=Ai-ans*∑Bi,对Di排序取最大的n-k个,如果∑Ai-ans*∑Bi& ...

  4. ural 1142. Relations

    1142. Relations Time limit: 1.0 secondMemory limit: 64 MB Background Consider a specific set of comp ...

  5. Educational Codeforces Round 15 [111110]

    注意一个词:连续 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<bits/ ...

  6. Iterable(迭代器)的用法

    一.前言 在开发中,经常使用的还是for-each循环来遍历来Collection,不经常使用Iterable(迭代器)的,下面记录一下terable是一般用法: 二.说明 迭代器是一种设计模式,它是 ...

  7. ajax与HTML5 history pushState/replaceState实例

    一.本文就是个实例展示 三点: 我就TM想找个例子,知道如何个使用,使用语法什么的滚粗 跟搜索引擎搞基 自己备忘 精力总是有限的,昨天一冲动,在上海浦东外环之外订了个90米的房子,要借钱筹首付.贷款和 ...

  8. 【NOI2016】区间 题解

    题目大意: 有n个区间,当有m个区间有公共部分时,求m个区间长度的最大值与最小值之差的最小值. 思路: 按区间的长度从小到大排序,可知连续的几个区间最优,则用两个指针指其头尾,线性扫描,再用线段树区间 ...

  9. ACM 奋斗的小蜗牛

    奋斗的小蜗牛 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 传说中能站在金字塔顶的只有两种动物,一种是鹰,一种是蜗牛.一只小蜗牛听了这个传说后,大受鼓舞,立志要爬上 ...

  10. ACM: A Simple Problem with Integers 解题报告-线段树

    A Simple Problem with Integers Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:%lld & %l ...