zoukankan      html  css  js  c++  java
  • think in UML(一)

         从一开始上课老师就讲面向对象设计面向对象设计,然而对于什么是面向对象是什么没有什么具体的概念,相较于面向对象设计,面向对象又有什么什么优势。《大象》从一开始就交代了我最基础的知识欠缺,在书的第一部分就将两个概念形象的展现在我面前。

         面向过程方法认为我们的世界是由一个个相互关联的小系统组成的,面向过程方法还认为每个小系统都有着明确的开始和明确的结束,开始和结束之间有着严谨的因果关系,只要我们将这个小系统的每一个步骤和影响这个小系统走向的所有因素都分析出来,我们就能定义这个系统的行为。

         面向对象方法将世界看作是一个个相互独立的对象,相互之间并无因果关系,他们平时是“鸡犬之声相闻,老死不相往来”的。只有在某个外部力量的驱动下,对象之间才会依据某种规律相互传递信息。这些交互构成了这个生动世界的一个“过程”。在没有外力的情况下,对象则保持着“静止”的状态。这些独立的对象有着一系列奇妙的特性。例如:封装,聚合,继承,接口,多态,依赖,耦合,方法。又用汽车组装的例子形象的揭示了面向对象的另一个非常重要的特性:抽象层次。

         当面向对象方法解决面向过程方法出现的问题时,自己本身也会存在一些困难。实际上,想要跨越这道鸿沟,我们需要:(1)一种把现实世界映射到对象世界的方法。(2)一种从对象世界描述现实世界的方法。(3)一种验证对象世界行为是否反映了现实世界的方法。

         在实践中,人们很快发现了问题:编程序需要的对象不但不能够从设计中自然而然地推导出来,而且强调连续性和过程话的结构化设计与时间驱动型的离散对象结构之间有着难以调和的矛盾。为了解决这些困难,一些面向对象的设计方法开始出现。

         UML是一种建模用的语言,用自然世界和计算机逻辑都能够理解的表达方法来说明现实世界。除了对语言的掌握功力之外更重要的是思想和理念。语言如果不能用于沟通,那语言就没有意义!最好的方法就是创造一种打架都认可的统一语言。UML统一建模预言帝额意义也正在于此,UML采用了“可视化”的图形方式来定义语言。

         首先,由现实世界到业务模型,再从业务模型到概念模型,最后再到概念模型。

         UML是一种语言,用来描述软件产生过程中要产生的文档,统一过程则是知道如何产生这些文档以及这些文档要讲述什么方法。虽然同意过程是知道UML的方法中最追命、应用最广、也可能最成功的一个,但是两者却不是完全不可以分开的。

         实施统一过程一方面出于提高软件成熟度的需要;另一方面是出于提高软件科技水平和质量的需要;再一方面,统一过程适用于开发稳定的架构。

    问题领域=抽象角度1+抽象角度2+......抽象角度n

    抽象角度=问题领域边界之外的参与者的业务目标=业务用例

    业务用例=特定场景1+特定场景2+......特定场景n

    特定场景=静态事物+特定的条件+特定的动作

    (或者:特定场景=静态事物+特定的规则+特定的行为)

         用例驱动:用例视图,逻辑视图,进程视图,实施视图,部署试图。

         抽象层次是面向对象方法中极其重要的。抽象有两种方法:一种是自顶向下,适用于让人们从头开始认识事物;一种是自底向上,适用于在实践中改进和提高认识。对象分析方法:一切都是对象,对象都是独立的,对象都具有原子性,对象都是可抽象的,对象都有层次性。

         RUPUML是可以分离的,采用哪种方法其实并不妨碍试用UML来做软件的分析和设计。

        无论是面向对象还是UML统一建模语言,都是辅助我们最终达到更好的设计出性能良好的软件的工具,理论终是纸上谈兵,重在实践,考虑什么方面,采用什么样的结构,怎样封装类,有时说不出原因单凭经验。

  • 相关阅读:
    hdu 5936 2016ccpc 杭州
    bzoj 1218: [HNOI2003]激光炸弹
    bzoj 1296: [SCOI2009]粉刷匠
    桃子到底有多少
    计算x的n次方
    计算x的n次方
    菲波拉契数列
    菲波拉契数列
    八皇后(N皇后)问题算法程序(回溯法)
    八皇后(N皇后)问题算法程序(回溯法)
  • 原文地址:https://www.cnblogs.com/xiangwo/p/4868434.html
Copyright © 2011-2022 走看看