一.概述

  

二.核心概念

  1.用例图

    1.包含关系

      当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示他们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。

      使用include表示,箭头指向抽象用例!

    2.扩展关系

      如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例。

      使用extend表示,箭头指向基本用例!

    3.泛化关系

      当多个用例共同拥有一个类似的结构和行为时,可以将它们的共性抽象成为父用例,其它的用例作为泛化关系的子用例。

      三角箭头指向父用例!

  2.类图与对象图

    1.依赖关系

      有两个元素X,Y,如果修改元素X的定义可能会引起另一个元素Y定义的修改,则称元素Y依赖元素X。

      使用带实心箭头的虚线表示。

    2.泛化关系

      泛化关系是继承关系的反关系。

      使用带空心箭头的实线表示泛化,箭头指向父类。

    3.关联关系(包括聚合和组合)

      使用一条实线表示关联关系。

    4.聚合关系

      聚合表示类之间是整体和部分的关系。部分可以独立于整体。

      使用带空心菱形的实线表示。

    5.组合关系

      组合表示类之间是整体和部分的关系,部分完全依赖整体,不能单独存在。

      使用带实心菱形的实线表示。

    6.实现关系

      实现关系是用来规定接口和实现接口的类或组件之间的关系。

      使用带空心箭头的虚线表示。

三.设计模式

  

  

  

  

  

  创建型模式:工厂方法,抽象工厂,单例模式,构建模式,原型模式。

  结构型模式:适配器模式,合成模式,装饰者模式,代理模式,享元模式,门面模式,桥接模式。

  行为型模式:

    策略模式,模板方法,迭代器,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,解释器模式,调停者模式,观察者模式。

  1.简单工厂

    简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建出哪个产品类的实例。

    优点:能够使客户端独立于产品的创建过程,并且在系统中引入新产品时无需对客户端进行修改。

    缺点:当有新产品加入到系统中时,必须修改工厂类,以加入必要的处理逻辑。

  2.工厂模式

    工厂模式可以很好地解决简单工厂模式的缺点。

  3.抽象工厂模式

    工厂模式针对的是一个产品的等级结构,而抽象工厂模式则针对的是多个产品等级结构。

  4.单例模式

    某个类只能有一个实例,必须自己创建这个实例,且必须自行向整个系统提供这个实例。

  5.构建模式

    构建模式把一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。构建模式是一步步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节。

  6.原型模式

    原型模式指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再创建可定制的对象,根本无需指定任何创建的细节。

  7.适配器模式

    适配器模式将一个接口转换成为客户想要的另一个接口,适配器模式使接口不兼容的那些类可以一起正常工作。

  8.合成模式

    合成模式组合多个对象形成树型结构以表示整体-部分的结构关系。合成模式对单个对象和合成对象的使用具有一致性。

  9.装饰者模式

    装饰者模式动态地给一个对象增加其它职责,就增加对象来说,装饰者模式比生成子类更为灵活。

  10.代理模式

    代理模式为其他对象提供一个代理或地方以控制对这个对象的访问。当客户向代理对象第一次提出请求时,将实例化为真实的对象,并将请求传给它,以后所有的客户请求都经过proxy传给封装了的真实对象。

  11.享元模式

    享元模式运用共享技术有效地支持大量细粒度的对象。系统只使用少量的对象,而这些对象都相近,状态变化很小,对象使用的次数较多。

  12.门面模式

    门面模式也称为外观模式,提供一个统一的接口去访问多个子系统的多个不同的接口。门面模式定义了一个高层次的接口,使得子系统更容易被使用。

  13.桥接模式

    桥接模式将抽象部分与实现部分分离,使得它们两部分可以独立变化。

  14.策略模式

    策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。

  15.模板方法模式

    模板方法模式定义一个操作中算法的骨架,已将一些步骤延缓到子类中实现。模板方法让子类重新定义一个算法的某些步骤而无需改变算法的结构。

  16.迭代器模式

    迭代器模式提供一种方法可以访问聚合对象,而不用暴露这个对象的内部表示。

  17.责任链模式

    责任链模式能避免请求发送者和接受者耦合在一起,让多个对象都有可能接受请求,将这些对象连接在一起形成一条链,并且沿着这条链传递请求,直到有对象处理为止。

  18.命令模式

    命令模式将一个请求封装成一个对象,因此可以参数化多个客户的不同请求,将请求排队,记录请求日志,并且支持撤销操作。

  19.备忘录模式

    备忘录模式在不破坏封装的前提下,捕获并且保存一个对象的内部状态,这样可以将对象恢复到原先保存的状态。

  20.状态模式

    状态模式能够使一个对象的内在状态改变时允许改变其行为,使这个对象看起来像是改变了类。

  21.访问者模式

    访问者模式说明一个操作执行于一个对象结构的成员中。访问者模式让你定义一个类的新操作而无需改变它操作的这些成员类。

  22.解释器模式

    给出一种语言,定义这种语言的文法的一种表示,定义一个解释器,用来解释使用这种语言的句子,这就是解释器模式。

  23.调停者模式

    调停者模式定义一个对象封装一系列多个对象如何相互作用。使得对象之间不需要显式地相互引用,从而使其耦合更加松散。

  24.观察者模式

    观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。

四.类图

  1.依赖

    

  2.关联

    

  3.聚合、组合

    

  4.泛化

    

  5.实现

    

软件设计师【UML】的更多相关文章

  1. 职位-IT:软件设计师

    ylbtech-职位-IT:软件设计师 软件设计师是指能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档的实用性人才.还能够组织和指导程 ...

  2. 2、软件设计师要阅读的书籍 - IT软件人员书籍系列文章

    软件设计师在项目组中的地位比软件工程师相对要高一些.但是他们所要阅读的书籍差别还是比较大的.同样的,软件设计师也要阅读比较多的书籍,以能够完成项目的任务为目的,同时还要提高自身在项目组中的竞争地位,而 ...

  3. 软件设计师.NET认证考试测试卷(试题及答案)

    软件设计师.NET认证考试测试卷 注意事项:用蓝.黑色钢笔答题.保持卷面整洁. 得分 阅卷人 一.单项选择(40分,每小题1分) 1.以下标识符中不全是关键字的是(D  ) A.case for in ...

  4. 软件设计师真题试题&&答案

    软件设计师2013上半年上午试题及答案详解 下午试题 2013下半年上午答案 试题 下午答案 试题 2014上半年上午答案 2015上半年上午答案 2016上半年上午试题

  5. 《软件设计师》——UML

    包含和扩展的区别,在于是否“必须”,如果是必须则是包含,如果不是必须则是扩展. 粗横线表示产生多个并行的任务.

  6. [设计语言][统一建模语言][软件开发方法学][UML] UML

    背景介绍 UML是一种统计建模语言. WIKI: https://en.wikipedia.org/wiki/Unified_Modeling_Language UML是OMG (object man ...

  7. 软件设计师14-UML建模

    UML图 用例图 用例图:参与者.用例 用例之间的关系:包含关系.扩展关系.泛化关系. 用例的包含关系:查询数据外借信息包含用户登录. 用例的扩展关系:修改之前要先查询,则修改信息包含查询信息用例 类 ...

  8. 软考网络工程师、软件设计师等官方指定教材pdf文件

    软考计算机网络工程师教材pdf 链接:https://pan.baidu.com/s/1-UXeNye414UWYxYRC6bHuA 提取码:5z9w 软考计算机软件设计师第五版pdf 链接:http ...

  9. 软件设计师考试计算机系统知识——CPU

    第一章: 计算机系统知识 1.1.1计算机系统硬件的基本组成 运算器.控制器.存储器.输入设备.输出设备 1.1.2 中央处理器 ①CPU的功能: a.程序控制:CPU通过执行指令来控制程序执行的顺序 ...

随机推荐

  1. 【转】使用AllureReport生成测试报告

    Allure简介 Allure是一个report框架,可以基于一些测试框架生成测试报告,比较常用的一般是Junit/Testng框架:Allure 生成的报告样式简洁美观,同时又支持中文:Allure ...

  2. Freemarke

    本文介绍了freemarker的集成.FTL指令.内建函数.运算符等常用操作. 1.为什么要使用网页静态化技术 网页静态化解决方案在实际开发中运用比较多,例如新闻网站,门户网站中的新闻频道或者是文章类 ...

  3. Spring cloud微服务安全实战-7-3prometheus环境搭建

    Prmetheus 主要用来做来Metrics的监控和报警,这张图是官方的架构图. 这是他的核心 它的作用是根据我们的配置去完成数据的采集.服务的发现,以及数据的存储. 这是服务的发现,通过Servi ...

  4. oracle plsql 异常

      set serveroutput on DECLARE pename emp.ename%type; begin '; exception when no_data_found then dbms ...

  5. BDC里的 BDC_OKCODE

      BDC OKCODE其实都是function code,对于处理一些BDC问题 非常有用,   列出一些知道的 OKCODE BDC_OKCODE 功能描述 =/00.  Enter = /8   ...

  6. 如何基于EasyDSS流媒体RTMP、HLS(m3u8)、HTTP-FLV、RTSP服务器体系的全套SDK完成各种场景下的视频应用需求

    需求背景 回顾EasyDSS的发展过程,基本上保持的是先局部后系统.先组件后平台的发展方式,一步一步夯实每一个细节功能点,从最基础.最兼容的音视频数据的拉流获取,到高效的.全兼容的数据推流,再到流媒体 ...

  7. linux:vim中全选复制

    全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v : 是进入V ...

  8. 算法练习之二叉树的最大深度,二叉树的层次遍历 II

    1.二叉树的最大深度 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,n ...

  9. Docker创建镜像 并推拉Harbor

    创建镜像 一.根据dockerfile创建镜像 文件详解 1.mkdir dockerfile/lib/centos7base/ 创建目录 2.创建Dockerfile vim Dockerfile ...

  10. python学习-63 组合

    组合 1.什么是组合? 定义一个类,由数据属性构成,这几个属性又可以是通过一个类实例化的对象,这就是组合. 举例: class School: def __init__(self,name,addre ...