UML虽然是一种新的工具,但同时也代表了一种新的先进的思考方法,所以学习UML的关键不在于学习语法,而是要改变思维习惯。所以我觉得我还需要系统地培养几方面的能力,如书面表达能力,归纳总结能力,“面向对象”的思维能力和抽象能力。

我们现在也正在学习需求分析这门课,需求分析是我们做软件的第一步,可见其重要性。客户基本不懂计算机,但是我们却需要了解到客户的真正的需求,这是难点所在。而UML通过建模活动可以帮助我们更好地认识客户的业务和做好业务流程再造的工作。要想UML在需求分析中真正发挥作用,我还需要了解更多UML图的使用,活用UML进行结构建模和行为建模。

类图,我们都比较熟悉,也是用得最多的一种UML图。虽然我们画图的时候,觉得类图很简单,但是实际上要做到活用类图还需要很久的时间。说通俗的话,类图是帮助我们理清人、物品、事情并理清关系的用途。我们在需求分析中用到的各种业务概念、人物,抽象之后可以看作类。而构建类图,我们首先要找到类,类的属性,然后找出类之间的关系。即类图的类名、属性、操作三部分。虽然类图的基本语法很简单,但是识别类,表示类之间的关系就没那么简单了,也是我们使用类图的关键。类之间的关系主要有三大部分,直线关系、包含关系、继承关系。直线关系中我们通过一对一关系、一对多关系等分辨;包含关系中通过强烈程度来分辨;比如,如果部门没有了,员工也可以继续存在,所以是弱包含,反而如果员工也没有了,则是强包含。继承关系中有泛化关系和依赖关系,比如由A导出B,我们可称为泛化,A需要B协助来完成,但是依赖程度不一定就是依赖关系;我认为这也是类图中很重要的一部分。虽然学习了很多类和类之间的关系,但是我在这本书中真正认识到的两种类之间的关系其实是递归关系和三角关系。比如,对于文件夹和文件的关系,文件里面可以有文件夹,文件夹里面也可以有文件,是一种无穷无尽的递归状态,但是将包含关系指向文件夹本身时,这个问题就得到了完美解决。三角关系,比如公司、雇员和劳动合同,这里教给了我们一个画图的解决方法就是如果觉得两个类之间有关系的话,先画直线,如果觉得有关系却不会画,那我们可以首先找到他们的关联类,构成三角关系。要做真正的系统,我们可能要使用上百个上千个类图,所以一定要规划好类图。

我们可以通过画类图来训练我们的面向对象分析的逻辑思维,思想。我想用好类图,让它在需求分析中发挥作用,只是练习次数的问题。

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

  1. <<UML大战需求分析>>阅读笔记(2)

    <<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...

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

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

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

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

  4. UML大战需求分析——阅读笔记04

    读<UML大战需求分析>有感04 开发某系统的重要前提是: 这个系统有谁在用? 这些人通过这个系统能做什么事? 一般搞清楚这件事,再画个业务流程图,就能条例清楚的表达系统的需求了.作为一个 ...

  5. UML大战需求分析——阅读笔记03

    读<UML大战需求分析>有感03 状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图 ...

  6. UML大战需求分析阅读笔记2

    全面深入理解客户的业务,才能帮助我们准确的把握客户的需要.而在理解客户业务的同时,我们往往需要做业务流程再造(BPR:Business Process Reengineering)的工作.BPR简单说 ...

  7. UML大战需求分析阅读笔记1

    UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言.你可能会问:这明明是一种图形,为什么说是语言呢?伟大的汉字还不是 ...

  8. UML大战需求分析--阅读笔记02

    这次阅读了第三章--类图.本章主要讲解了类图的基本使用规则和一些使用的例子.类图是UML中非常重要的一部分,作用很大. 类图之间有五种关系:关联关系,聚合关系,组合关系,泛化关系,依赖关系.关联关系有 ...

  9. UML大战需求分析——阅读笔记02

    类图是理解面向对象思想的强有力工具,也是业务概念模型分析中最常用的一种UML图.对开发人员来说,并不是对每一个业务流程都很熟练,在客户那里传达过来的需求资料中,有很多术语会把思绪搞晕,他们之间错综复杂 ...

  10. UML大战需求分析——阅读笔记06

    状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图主要用于建立对象类或对象的动态行为模型,描述系 ...

随机推荐

  1. poj 3669 bfs(这道题隐藏着一个大坑)

    题意 在x,y坐标系,有流星会落下来,给出每颗流星落下来的坐标和时间,问你能否从(0,0)这个点到一个安全的位置.所谓的安全位置就是不会有流星落下的位置. 题解: 广搜,但是这里有一个深坑,就是搜索的 ...

  2. kernel 3.10内核源码分析--hung task机制

    kernel 3.10内核源码分析--hung task机制 一.相关知识: 长期以来,处于D状态(TASK_UNINTERRUPTIBLE状态)的进程 都是让人比较烦恼的问题,处于D状态的进程不能接 ...

  3. 如何在sublime上运行php

    这个问题虽然随便一搜都能有很多答案,但是我当时都没有顺利解决我会详细地写出较为容易理解和操作的步骤第一步,配置PHP环境变量如图一所示1.找到 我的电脑 -属性2.高级系统设置3.环境变量4.找到“系 ...

  4. Flask-SQLAlchemy中解决数据库连接1366报错

    报错信息:Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'V ...

  5. js生产随机数

    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_le ...

  6. python简单post信息

    最近学了点关于python的网络爬虫的知识,简单记录一下,这里主要用到了requests库和BeautifulSoup库 Requests is an elegant and simple HTTP ...

  7. 作为深度学习最强框架的TensorFlow如何进行时序预测!(转)

    作为深度学习最强框架的TensorFlow如何进行时序预测! BigQuant 2 个月前 摘要: 2017年深度学习框架关注度排名tensorflow以绝对的优势占领榜首,本文通过一个小例子介绍了T ...

  8. WEB服务器(Tomcat)

    在小型的应用系统或有特殊需要的系统中,也可以使用一个免费的Web服务器: Tomcat,该服务器支持全部的JSP以及Servlet 规范, 下载 Tom 查看计算机上被占用端口号的情况: 使用Fpor ...

  9. query ajax总是进入error回调函数

    query ajax总是进入error回调函数今天纠结了1小时,ajax总是进入了error函数中.平时使用从来没有出现过这种现象,纠结了半小时. 最后稍微总结出了点: 1.以前使用都是服务器端输出S ...

  10. 0111mysql如何选择Join的顺序

    本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分"测试环境".这里主要介绍MySQL优化器的主要执行流程,而不是介绍一个优化器的各 ...