初级认识UML
语言基础概论:
自我理解通过UML能够更好的描述开发软件系统;以便于保证软件能够保质保量高效的被开发出来。谈起统一建模语言(UML),我想我们脑海中浮现的应该是Why do we use it?;What is it?;What can it bring to us ?
--------------------------------------------------------------
相信我们之前了解过面向过程和面向对象;其实两者从本质上讲都是一种软件技术;不过只是适用的范围和阶段不一样罢了。纵观来看,面向对象技术发展比较迅速,解决了之前存留在面向过程设计方法中等等难题;再加上现在设计的软件系统需要保证随需应变等等适应性能力;面向对象脱颖而出。
但是面向对象也有其困难的地方:对象是如何抽象出来的?为什么要这样抽象对象?如何组合抽象出来的对象正好可以满足需求?抽象出来的对象又是如何表达需求的?等等一系类问题;同样都是难题。
这也造成了无法在设计阶段判断出设计出来的对象或类能否满足客户的需求等等;往往都是在不断地测试和返工之前往返;一直到最后阴差阳错的满足用户的需求后才停止这个重复化的动作。---因此设计模式和需求之间根本不挂钩,相互联系不上,那又如何谈编码设计后的产品能够满足客户的需求呢?
--------------------------------------------------------------
因此为了应对以上的问题,面向对象分析方法UML便逐渐走上了大家的视野;同样也是被软件界所公认。所以UML便是为了能过保证从需求分析--->设计阶段两者之间顺利过渡;进而保证软件系统符合用户的需求。
这里还需要顺带提及统一过程,扩展些知识面。既然存在建模语言,那么建模方法怎么能够缺少呢?RUP即是和UML相互配合的搭档。
UML描述软件生产过程中需要产生的文档;RUP则指导如何产生这些文档以及这些文档讲述什么的方法。
尽管RUP和UML配合的如此天衣无缝;但是针对不同的想要也要选择合适的软件开发方法。
UML建模基础:
谈及UML建模。除此外便是何为模?如何建模?
从抽象的角度确定的目标需要由静态的事物+特定条件下产生的特定的场景来完成整个的过程称作模型;
决定抽象的角度(即目的是做什么),然后分析此过程中涉及到多少参与者和每个参与者的目标是什么;此过程即是建模的过程。---其实更好的还是依靠一幅图来简单说明;
--------------------------------------------------------------------------
在了解建模基础后,也就是宏观把握整个建模过程,然后又把UML语言细分为词汇+语法;本篇博客围绕“词汇”来讲解。
------------------------------------------------
用例划分:
---------------------------------------------------------------
类图以及对象等UMl核心因素之间的关系:
总体分为四大类:即关联(聚合+组合)、依赖、泛化(继承)、实现;然后细分扩展增添:包含、精化、扩展等三类。
相比于关联中聚合和组合之间的联系:
聚合:强调两者之间只是临时关系,某一方不存在时都不会影响另外一方;
组合:强调两者之间具有强相互关系,即母体和子体之间的联系;子体必须依赖于母体存在。
扩展:则是在实现某一目标的前提下+外来因素=多种选择方式。
包含:多目标复用同一用例;
精华:一个基本用例精化为更小的关键精化用例。
以上便是了解以及扩充的三种用例之间的关系。
----------------------------------------------------------------------
在结尾中我问大家一个问题---在接触事物后,我们先想到的是结构(外形)--->功能--->使用等等过程;还是首先想到的是使用--->功能--->结构呢。这里就列举了两种描述事物的方式,当然这里也适合于不同的方面;前者更适合于相对比较熟悉的事物;而后者更适合于陌生和未知的事物。读者先自行体会其中的区别,稍后下篇博客咱们一块聊聊。
下篇博客会继续浅谈UML语言中语法的部分--即核心元素。