------------恢复内容开始------------

软件产品开发流程是需求、分析、设计、实现。

面向对象三大特征:继承性,封装性、多态性

模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这六个阶段,自上而下、相互衔接的固定次序。

统一过程的五个核心工作流分别是需求流、分析流、设计流、实现流和测试流四个阶段分别是开始阶段、细化阶段、构建阶段和转换阶段。

需求分析阶段:

使用活动图描述业务过程。

用用例图描述整个系统的功能范围。

如果某个需求的流程比较复杂,则使用活动图描述。

设计阶段:

使用类图说明类之间的静态结构关系。

使用顺序图说明类之间的动态调用时序。

使用状态图描述对象的状态变化

使用活动图描述某种算法。

用例图

UML定义:UML(Unified Modeling Language,统一建模语言),是一种面向对象的建模语言。

用例图主要用来图示化系统的主事件流程,它主要用来描述客户的需求,即用户希望系统具备的完成一定功能的动作,通俗地理解用例就是软件的功能模块,所以是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系

包含关系:基用例必须和包含用例一起使用才够完整,包含用例也必然被执行。包含关系在用例图中使用带箭头的虚线表示(在线上标注<<include>>),箭头从基用例指向包含用例。

扩展关系:扩展用例是对基用例的扩展,即使没有扩展用例的参与,也可以完成一个完整的功能。扩展在用例图中使用带箭头的虚线表示(在线上标注<<extend>>),箭头从扩展用例指向基用例。

泛化关系:是一种继承关系,泛化关系在用例图中用实线+空心三角形表示,空心三角形指向父参与者,子参与者可以继承父参与者所有的行为。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的,子用例中的特殊行为都可以作为父用例中的备选流存在。

关系

说明
参与者与用例之间的关系 关联

表示该用例是该参与者发起的,表示参与者可以行使系统中的这个功能

用例之间的关系 包含

基用例必须和包含用例一起使用才够完整,包含用例也必然被执行。包含关系在用例图中使用带箭头的虚线表示(在线上标注<<include>>),箭头从基用例指向包含用例。

  扩展

扩展用例是对基用例的扩展,即使没有扩展用例的参与,也可以完成一个完整的功能。扩展在用例图中使用带箭头的虚线表示(在线上标注<<extend>>),箭头从扩展用例指向基用例。

  泛化

子用例指向父用例,父用例一般是抽象用例

参与者之间的关系 泛化  是一种继承关系,泛化关系在用例图中用实线+空心三角形表示,空心三角形指向父参与者,子参与者可以继承父参与者所有的行为。

类图

类(Class):使用三层矩形框表示。

第一层显示类的名称,如果是抽象类,则就用斜体显示。

第二层是字段和属性。

第三层是类的方法。

注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。

UML类图符号之接口:使用两层矩形框表示,与类图的区别主要是顶端有<<interface>>显示。

第一行是接口名称。

第二行是接口方法。

UML类图符号之继承类(extends):用空心三角形+实线来表示。

UML类图符号之实现接口

结,它使一个类知道另一个类的属性和方法。

  1. UML类图符号之聚合(Aggregation):用空心的菱形+实线箭头来表示

    聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:公司和员工
  2. 组合(Composition):用实心的菱形+实线箭头来表示

    (implements):用空心三角形+虚线来表示
  3. UML类图符号之关联(Association):用实线箭头来表示,例如:燕子与气
  4. 关联关系是类与类之间的联组合:部分和整体的关系,并且生命周期是相同的。例如:人与手
  5. UML类图符号之依赖(Dependency):用虚线箭头来表示,例如:动物与氧气
  6. 依赖关系也是类与类之间的联结

  依赖总是单向的。(#add 注意,要避免双向依赖。一般来说,不应该存在双向依赖。)

依赖关系在Java或 C++ 语言中体现为局部变量、方法的参数或者对静态方法的调用。实现(Realization):空心箭头和虚线表示

   7.实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,B realize A。这个关系最常用于接口。uml中用空心箭头和虚线表示,箭头指向定义约定的元素实现关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。

UML类图符号之基数:连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就用‘n’来表示。关联、聚合、组合是有基数的。

单一职责原则

类(Class)是面向对象的重要组成部分,每个类都具有一定的职责,职责指的是类要完成什么样的功能(单一职责)

参考:https://blog.csdn.net/shang_0122/article/details/106637782

  在UML中,聚合关系用带空心菱形+实箭头表示,空心菱形指向整体,实箭头指向部分.单一职责原则定义

—  单一职责原则(Single Responsibility Principle, SRP)定义如下:

—  在软件系统中,一个类只负责一个功能领域中的相应职责。

—  另一种定义方式如下:

—  就一个类而言,应该仅有一个引起它变化的原因。

lsp:如果子类不能完整地实现父类的方法,或者父类的某些方法在子类中已经发生“畸变”,则建议断开父子继承关系

成员对象与整体对象之间具有共生共灭的关系。在UML中,组合关系用实心菱形+实箭头表示,实心菱形指向整体,箭头指向部分。

在使用里氏代换原则时需要注意如下几个问题:

为了保证系统的扩展性,在程序中尽量使用父类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。所以子类的所有方法必须在父类中声明如果一个方法只存在子类中,在父类中不提供相应的声明,则无法在以父类定义的对象中使用该方法。

尽量把父类设计为抽象类或者接口,运行时,子类实例替换父类实例,我们可以很方便地扩展系统的功能,同时无须修改原有子类的代码,增加新的功能可以通过增加一个新的子类来实现。里氏代换原则是开闭原则的具体实现手段之一。

------------恢复内容结束------------

UML软件工程复习——用例图和类图的更多相关文章

  1. UML九种图 之 用例图和类图

    前言     近期写UML文档,看视频的时候感觉掌握的还能够,当真正写文档的时候才发现不是一件easy的事.写文档自己又翻开自己的笔记看了一遍又一遍. 以下就给大家介绍一下我画的几张图: 用例图   ...

  2. Pownerdesigner画用例图_类图_时序图

    1. 问题描述 软件过程中,设计阶段有几个常用的工具:Rational Rose.Visio.Pownerdesigner,一般用Rose用例图/类图/时序图,Visio画流程图,Pownerdesi ...

  3. [emacs] Drawing uml under emacs org-mode using plantUML - 类图

    [emacs] Drawing uml under emacs org-mode using plantUML - 类图 // */ // ]]>   [emacs] Drawing uml u ...

  4. 【UML】-NO.41.EBook.5.UML.1.001-【UML 大战需求分析】- 类图(Class Diagram)

    1.0.0 Summary Tittle:[UML]-NO.41.EBook.1.UML.1.001-[UML 大战需求分析]- 类图 Style:DesignPattern Series:Desig ...

  5. (转)UML实践----用例图、类图、对象图、顺序图、协作图、状态图、活动图、组件图、配置图

    面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML ...

  6. 2.设计模式常用的UML图分析(用例图、类图与时序图)

    1-用例图 概述 展现了一组用例.参与者以及他们之间的关系. 用例图从用户角度描述系统的静态使用情况,用于建立需求模型. 用例特征 保证用例能够正确捕捉功能性需求,判断用例是否准确的依据. 用例是动宾 ...

  7. StarUML 系列,静态图与动态图,用例图,类图【ps:熟悉一下starUML】

    大部分:   静态图部分,即静态不动的图 1.用例图, Use case diagram 1.展示系统核心功能及与其交互的用户ACTOR 表示:椭圆

  8. 《UML精粹》第三章 -类图的基本概念

    第三章 类图:基本概念 类图可用来描写叙述系统中各种对象的类型.也可描绘出对象间各种各样的静态关系.此外.类图中也能够秀出类的性质(property)与操作(operation),以及可应用到对象间连 ...

  9. StarUML 系列,静态图与动态图,用例图,类图

    大部分:   静态图部分,即静态不动的图 1.用例图, Use case diagram 1.展示系统核心功能及与其交互的用户ACTOR 表示:椭圆

随机推荐

  1. Day2 【Scrum 冲刺博客】

    每日会议总结 昨天已完成的工作 方晓莹(PIPIYing) 新增人员管理页面的开发 静态页面的进一步完善 方子茵(Laa-L) 完成车辆查询接口 黄芯悦(Sheaxx) 新增社区通知页面 新增社区活动 ...

  2. 【SPOJ QTREE4】Query on a tree IV(树链剖分)

    Description 给出一棵边带权(\(c\))的节点数量为 \(n\) 的树,初始树上所有节点都是白色.有两种操作: C x,改变节点 \(x\) 的颜色,即白变黑,黑变白. A,询问树中最远的 ...

  3. Java集合源码分析(五)——HashMap

    简介 HashMap 是一个散列表,存储的内容是键值对映射. HashMap 继承于AbstractMap,实现了Map.Cloneable.java.io.Serializable接口. HashM ...

  4. ps查看完整程序执行路径

    在linux下查看进程大家都会想到用 ps -ef|grep ***可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep jav ...

  5. 传输层-Transport Layer(上):传输层的功能、三次握手与四次握手、最大-最小公平、AIMD加法递增乘法递减

    第六章 传输层-Transport Layer(上) 6.1传输层概述 在之前的几章内容中,我们自底向上的描述了计算机网络的各个层次,还描述了一些处于不同层次下的经典网络协议(如以太网.无线局域网.或 ...

  6. 如何写好PPT,什么样的PPT容易被人理解记住

    PPT一般是用于讲解性的行为而存在,那如果写好PPT呢?如果写好,这个完全要取决于你所面向的目标读者,是用于学术行为呢?还是用于商业行为.面对不同的目标群体,有不同的策略.但是无论面向群体是谁我们都有 ...

  7. github内的一些操作

    github远程仓库的克隆操作 1,找到你想要克隆的地址,复制下来 2,切入到git所在目录下,输入 git clone 复制的地址 设置过滤文件不纳入git管理 1,在git目录下创建一个.giti ...

  8. JavaSE05-数组

    1.概念 同一种类型数据的集合.其实数组就是一个容器. 2.优点 可以自动给数组中的元素从0开始编号,方便操作这些元素. 3.格式 1 元素类型[] 数组名 = new 元素类型[元素个数或数组长度] ...

  9. Python的基本介绍

    我认为Python打破了传统语言的各种细节,让我对编程语音有了全新认识 Python的优势: 可移植性高,解释性更加简单,这两点在编程语言发展到现在已经成为不可或缺的一部分,而很多种编程语言能做到这几 ...

  10. OpenShift添加应用健康检查功能

    什么是健康检查? 对于部署成功的应用来说,通过访问接口.执行特定命令等方式判断应用是否存活.正常的方式称为健康检查. 在 OpenShift 或 Kubernetes 中,健康检查都有两个探针,分别是 ...