一:

需求中提到的各种业务概念、人物等,经过抽象后都可以视之为类。

平时遇到的人、物,我们将遇到的都是具体的人、物,也就如程序中的对象,是一个实实在在的东西。

当我们分析需求的时候,设计模型的时候,我们就需要将之抽象,也就是最关键的一步——提炼

提炼出这个东西,我们所需要的部分。

比如,在教室,主要存在两类人,学生和教师。

当我们做的项目为:人员管理系统

在如上的环境中,我们需要的是学生和教师的姓名和年龄、学号(工号)等这些利于了解基本信息的数据。那么,我们进行模型设计的时候,类图就应该主要包含这些东西。

当我们做的项目为:培训管理系统

我们需要的是学生的知识水平和接受能力,老师的知识水平、表达能力和讲课经验。这些才利于培训的分配和安排,那么设计的类图就应该包含这些东西

上面两个简单例子,就是区分在需求分析的时候,我们考虑的对象,在我们所做的项目下,我们需要从中真正需要的是什么,也是使用我们的软件的客户,真正看到的、使用到的是什么,要让其存在意义。

二:

类之间也存在关系

一切从直线开始,表示它们之间存在某种关联关系

“导航”关系,例如通过请假单可以找到请假者

“包含”关系,空心菱形是“弱”包含,实则为聚合,实心菱形是“强”包含,实则为组合,两者的区别主要是强烈程度不同。

“继承关系”,学生、讲师都“继承”了员工,它们具备员工的属性,也有自己的特有的属性。实则为 泛化

“依赖”关系,但依赖程度是相对而言的,不一定是A没有B就不能“生存”了,对于某个事情,A需要B来协助才能完成,这也为一种依赖。好比烟鬼和香烟

三:

利用类图来描述一些架构,如公司的组织架构。

比如某公司由一个一个的部门组成,类图表达其组织结构可能如下:

但这样没有显示出类图的优势,没有发挥抽象和提炼的优势。进一步改进如下:

这就更加形象了,有助于我们在项目进行中,分类和分层,更加清晰地看见其内部结构,成果思路也更有层次。

《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大战需求分析阅读笔记1

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

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

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

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

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

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

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

  10. 《UML大战需求分析阅读笔记》05

    在需求分析的阶段,非功能需求也是十分重要的一个阶段.部署图和构件图就能很好的描述非功能需求. 部署图从硬件的角度.物理层次上进行系统的整体规划,包括当前的IT架构以及改造后的IT构架,包括:Node: ...

随机推荐

  1. Linux 基础命令

    man      帮助命令   命令 --help   命令的简单帮助 help      命令的帮助(bash的内置命令) mkdir    创建目录  如makdir /data mkdir   ...

  2. 搭建Apache Web服务器

    1.下载Apache服务器的安装包 地址:http://httpd.apache.org/download.cgi 从http://archive.apache.org/dist/httpd/bina ...

  3. Thinkphp 3.2.2 验证码check_verify方法,只能验证一次

    问题: Thinkphp 3.2.2 验证码check_verify方法,只能验证一次. function check_verify($code, $id = ''){ $verify = \Thin ...

  4. maven实战(04)_在pom中使用properties

    使用常量不仅让代码变得简洁,更重要的是可以避免重复,在需要更改的时候,只需要修改一处,降低了错误发生的概率. <project> <modelVersion>4.0.0< ...

  5. qt添加cef库嵌入web [转]

    qt cef嵌入web 原文http://blog.sina.com.cn/s/blog_9e59cf590102vnfc.html 最近项目需要,研究了下libcef库. Cef(Chromium ...

  6. docker版wordpress

    拉取wordpress镜像 docker pull wordpress:latest 创建mysql 容器docker run --name wordpress-mysql -e MYSQL_ROOT ...

  7. git: fatal: Not a git repository (or any of the parent directories): .git

    在看书 FlaskWeb开发:基于Python的Web应用开发实战 时,下载完源码后 git clone https://github.com/miguelgrinberg/flasky.git 试着 ...

  8. 解决ssh localhost中root@localhost:要求输入密码问题(已经进行了无密码设置登录)

    首先删除~/.ssh目录下的3个文件,如下 id_rsa authorized_keys id_rsa.pub 然后 exit # 退出刚才的 ssh localhostcd ~/.ssh/ # 若没 ...

  9. js创建命名空间

    CreateNameSpace: function () { var nameSpaceObjec = arguments[0].split('.'); var currentNameSpaceNam ...

  10. dreamweaver cs6 mac破解版

    http://www.sdifenzhou.com/dreamweaver-cs6-mac.html