zoukankan      html  css  js  c++  java
  • 《大象-Think In UML》读书笔记2

    什么是UML?

    UML本身并没有包含软件方法,而仅仅是一种语言,一种建模用的语言,而所有的语言都是基本词汇和语法两部分构成的,UML也不例外。UML中定义了一些建立模型所需要的、表达某种特定含义的基本元素:这些元素称为元模型,相当于语言中的基本词汇,例如用例、类等。另外,UML还定义了这些元模型互相之间关系的规则,以及如何用这些元素和规则绘制图形以建立模型来映射实现世界;这些规则和图形称为表示法或视图,相当于语言中的语法。UML语言与其他自然语言和编程语言在原理上并无多大差别,无非是UML这种语言是用来写说明文的,用自然世界和计算机逻辑都能够理解的表达方法来说明现实世界。

    如果以写文章来类比的话,学习UML只是学会了一门语言,而要写出一篇精彩的文章,却要依靠写作人对生活的感悟和升华,这两者缺一不可。

    为什么要统一语言?

    软件开发工作中将角色细分,将职责明确的做法,在提高专业化和资源效率的同时也带来了严重的沟通问题。加入承包商采用一种自己的方法来做需求,设计团队由于不熟悉这种方法,在理解需求文档的过程中就会产生误解;如果编码团队也不熟悉设计师的设计文档,很容易再次产生信息歧义。文档从一个角色传向另一个角色,从一个组织传向另一个组织的过程中如何保证信息被准确的传达和准确的理解呢?一种好办法就是大家都使用统一的或者说标准化的语言。UML统一建模雨颜的意义也正在于此,它试图用统一的语言来覆盖整个软件过程,让不同的团队操着同一个口音顺畅地沟通。

    统一语言的另一个意义是要让人和机器都能读懂。

    谈到UML就不能不谈到统一过程,即RUP。UML和RUP师出同门,尽管目前任有许多其他的建模方法,不过RUP任然是其中对UML使用最为全面的,同时也是最为复杂的。

    什么是RUP?

    严格来说UML并不是一个方法,而是一种语言,UML定义了基本元素,定义了语法,但是如果要做一个软件项目,还需要有方法的知道,正如写文章有文法,有五言律,有七言律一样,UML也需要有方法的知道来完成一个软件项目。RUP无疑是目前与UML集成和应用最好,最完整的软件方法。

    RUP译为统一过程。统一过程并非是因为UML才诞生,也不是最近才出来的软件方法,而是有着很长时间的发展,有着很深的根源。统一过程归纳和整理了很多在实践中总结出来的软件工程的最佳实践。是一个采用了面向对象思想,使用UML作为软件分析设计语言,并且结合了项目管理、质量保证等许多软件工程知识综合而成的一个非常完整和庞大的软件方法。统一过程经过了三十多年发展,和统一过程本身所推崇的迭代方法一样,统一过程这个产品本身也经历了很多次的迭代和演进,才最终退出了现在这个版本。

    统一过程归纳和集成了软件开发活动中的最佳实践,它定义了软件开发过程中最重要的阶段和工作(四个阶段和九个核心工作流),定义了参与软件开发过程的各种角色和他们的职责,还定义了软件生产过程中产生的工作,并提供了模板。最后,采用演进式软件生命周期(迭代)将工作、角色和成果物串在一起,形成了统一过程。

    如果说一曲美妙的乐章是作曲家根据音乐理论进行创作最后用标准的五线谱记录下来,相信不会有什么疑问。实际上RUP和UML的关系正类似音乐理论和五线谱的关系。

    从本质上来说,统一过程和UML是不同的两个领域。UML是一种语言,用来描述软件生产过程中要产生的文档,统一过程则是知道如何产生这些文档以及这些文档要讲述什么的方法。虽然现在统一过程是指导UML的方法中最著名、应用最广、可能也是最成功的一个,但这两者却不是完全不可以分开的。

    对软件项目来说,面向对象也好,面向过程也好,UML也好,UC矩阵也好,这些都不是最重要的,软件项目真正的灵魂是软件过程,软件过程的需要才是这些工具和语言诞生的原因。

  • 相关阅读:
    分布式事务基本概念
    rocketmq源码分析3-consumer消息获取
    Mac下的Eclipse不能记住工作空间问题
    rocketmq源码分析2-broker的消息接收
    rocketmq源码分析1-benchmark学习
    metrics
    slf4j与logback对接是如何将日志写到控制台的
    Spring AOP
    hibernate数据库连接池,常用配置
    动态代理
  • 原文地址:https://www.cnblogs.com/SanShaoS/p/4978702.html
Copyright © 2011-2022 走看看