关于uml类图使用与软件架构的一些想法

Posted 燕山雷震子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于uml类图使用与软件架构的一些想法相关的知识,希望对你有一定的参考价值。


关于类关系的记忆辅助



箭头的方向:从子类指向父类

    ·定义子类需要通过 extends 关键字指定父类

    ·子类一定是知道父类定义的,但父类并不知道子类的定义

    ·只有知道对方信息时才能指向对方

    ·箭头的方向是从子类指向父类


继承/实现用线条连接两个类,空心三角箭头表示继承或实现

    ·实线表示继承,是is-a的关系,表示扩展,不虚,很结实

    ·虚线表示实现,虚线代表“虚”无实体


关联/依赖用线条连接两个类,普通箭头表示关联或依赖

    ·虚线表示依赖关系:临时用一下,若即若离,虚无缥缈,若有若无

    ·表示一种使用关系,一个类需要借助另一个类来实现功能

    ·一般一个类将另一个类作为参数使用,或作为返回值

    ·实线表示关联关系:关系稳定,实打实的关系

    ·表示一个类对象和另一个类对象有关联

    ·通常一个类中有另一个类对象作为属性


组合/聚合:用菱形表示:像一个盛东西的器皿

    ·聚合:空心菱形,代表空器皿里可以放很多相同的东西,聚集在一起(箭头方向所指的类)

    ·整体和局部的关系,两者有独立的生命周期,是 has-a 的关系

    ·弱关系,消极的词:弱-空

    ·组合:实心菱形,代表器皿里已经有实体结构的存在,生死与共

    ·整体与局部的关系,和聚合关系对比,关系更加强烈,两者具有相同的生命周期,contains-a 的关系

    ·强关系,积极的词;强-满


辅助记忆的图形实例:


关于软件架构


代码复用

扩展性

需求变化是程序员生命中唯一不变的事情。

  • 你创建了一个使用方形按钮的 GUI 框架,但几个月后开始流行原型按钮。


    首先,在完成了第一版的程序后,我们就应该做好了从头开始优化重写代码的准备,因为现在你已经能在很多方面更好的理解问题了,同时在专业水平上也有所提高,所以之前的代码现在看上去可能会显得很糟糕。

    其次,可能是在你掌控之外的某些事情发生了变化,这也是导致许多开发团队转变最初想法的原因。比如,每位在网络应用中使用 Flash 的开发者都必须重新开发或移植代码,因为不断地有浏览器停止对 Flash 格式地支持。

    最后,可能是需求的改变,之前你的客户对当前版本的程序感到满意,但是现在希望对程序进行 11 个“小小”的改动,使其可完成原始计划阶段中完全没有提到的功能,新增或改变功能。

    当然这也有好的一面,如果有人要求你对程序进行修改,至少说明还有人关心它。因此在设计程序架构时,有经验的开发者都会尽量选择支持未来任何可能变更的方式。


结语



    今天的分享就到这里,我是雷记,专注于分享关于开发编程相关的技术干货,如果今日的分享对您有帮助的话,还望不吝关注点赞,这对我很重要!如果各位在开发过程中遇到棘手问题,可以扫描下图二维码加入,和雷记与其他小伙伴一起探讨解决,让我们努力让每一个问题都得到解决!

    


以上是关于关于uml类图使用与软件架构的一些想法的主要内容,如果未能解决你的问题,请参考以下文章

软件设计UML类图怎么看

通往架构师之路-软件工程-UML建模-类图-事物与解释?

关于新光源建设的一些想法

关于新光源束测工作的一些想法

对初学软件工程的一些想法

关于软件开发的一些想法