《UML面向对象需求分析与建模教程》期末知识点总结复习(搬运)

帖子还带有自己要用的一些东西。。。


前言: UML面向对象需求分析与建模知识点总结,仅仅为了期末考试。带*不重要了解一下即可。

UML几种常用图


首先先区分uml常用的几种图。
如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。
静态图分为:用例图,类图,对象图,包图,构件图,部署图。
动态图分为:状态图,活动图,协作图,序列图。

在这里插入图片描述


1、用例图(UseCase Diagrams):

用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。
在这里插入图片描述

2、类图(Class Diagrams):

用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
在这里插入图片描述

各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

2.1.泛化

【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
在这里插入图片描述

2.2.实现

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
在这里插入图片描述

2.3.关联

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

      【代码体现】:成员变量

在这里插入图片描述

2.4.聚合

【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

      聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

      【代码体现】:成员变量

在这里插入图片描述

2.5.组合

【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

     组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体
在这里插入图片描述

2.6.依赖

【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

    【代码表现】:局部变量、方法的参数或者对静态方法的调用

    【箭头及指向】:带箭头的虚线,指向被使用者

在这里插入图片描述



  3、对象图(Object Diagrams):

描述的是参与交互的各个对象在交互过程中某一时刻的状态。对象图可以被看作是类图在某一时刻的实例。
在这里插入图片描述

4、状态图(Statechart Diagrams):

是一种由状态、变迁、事件和活动组成的状态机,用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。
在这里插入图片描述
在这里插入图片描述

5、活动图(Activity Diagrams):

是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。

交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流。

活动图是一种表述过程基理、业务过程以及工作流的技术。

它可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模。
在这里插入图片描述

5.1 带泳道的活动图

泳道表明每个活动是由哪些人或哪些部门负责完成。
在这里插入图片描述

5.2 带对象流的活动图

用活动图描述某个对象时,可以把涉及到的对象放置在活动图中,并用一个依赖将其连接到进行创建、修改和撤销的动作状态或者活动状态上,对象的这种使用方法就构成了对象流。对象流用带有箭头的虚线表示。
在这里插入图片描述

6、序列图-顺序图(Sequence Diagrams):

交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。

序列图的主要用途是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。同时序列图更有效地描述如何分配各个类的职责以及各类具有相应职责的原因。
在这里插入图片描述

消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。

序列图中涉及的元素:

6.1 生命线

生命线名称可带下划线。当使用下划线时,意味着序列图中的生命线代表一个类的特定实例。
在这里插入图片描述

6.2 同步消息

同步等待消息
在这里插入图片描述

6.3 异步消息

异步发送消息,不需等待
在这里插入图片描述

6.4 注释
在这里插入图片描述

6.5 约束
在这里插入图片描述

6.6 组合

组合片段用来解决交互执行的条件及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。常用的组合片段有:抉择、选项、循环、并行。

7、协作图(Collaboration Diagrams):

交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系。时序图按照时间顺序布图,而写作图按照空间结构布图
在这里插入图片描述
在这里插入图片描述

8、组件图(Component Diagrams):

构件图是用来表示系统中构件与构件之间,类或接口与构件之间的关系图。其中,构建图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
在这里插入图片描述

9、部署图(Deployment Diagrams):

描述了系统运行时进行处理的结点以及在结点上活动的构件的配置。强调了物理设备以及之间的连接关系。
在这里插入图片描述

部署模型的目的:

描述一个具体应用的主要部署结构,通过对各种硬件,在硬件中的软件以及各种连接协议的显示,可以很好的描述系统是如何部署的;平衡系统运行时的计算资源分布;可以通过连接描述组织的硬件网络结构或者是嵌入式系统等具有多种硬件和软件相关的系统运行模型。

二、图的差异比较
  1.序列图(顺序图)VS协作图

   序列图和协作图都是交互图。二者在语义上等价,可以相互转化。但是侧重点不同:序列图侧重时间顺序,协作图侧重对象间的关系。

共同点:时序图与协作图均显示了对象间的交互。

不同点:时序图强调交互的时间次序。

       协作图强调交互的空间结构。

2.状态图VS活动图

  状态图和活动图都是行为图。状态图侧重从行为的结果来描述,活动图侧重从行为的动作来描述。状态图描述了一个具体对象的可能状态以及他们之间的转换。在实际的项目中,活动图并不是必须的,需要满足以下条件:1、出现并行过程&行为;2、描述算法;3、跨越多个用例的活动图。

3.活动图VS交互图

二者都涉及到对象和他们之间传递的关系。区别在于交互图观察的是传送消息的对象,而活动图观察的是对象之间传递的消息。看似语义相同,但是他们是从不同的角度来观察整个系统的。

三、UML与软件工程
  UML图是软件工程的组成部分,软件工程从宏观的角度保证了软件开发的各个过程的质量。而UML作为一种建模语言,更加有效的实现了软件工程的要求。

如下图,在软件的各个开发阶段需要的UML图。
在这里插入图片描述

下表是UML使用人员图示:
在这里插入图片描述


转载自此帖

第一章绪论

*日程生活中的应用:UML的目标是以面向对象各种相关图的方式来描述任何类型的系统的。最常用的是建立软件系统的模型,也可描述非计算机软件的系统或商业机构或过程。常见应用(信息系统、技术系统、嵌入式实时系统、分布式系统、系统软件及商业系统)

第二章面向对象方法

面向对象方法是一种把面向对象的思想应用于软件开发工程中,指导开发活动的系统方法,是建立在“对象”概念基础方法上的方法学。

面向对象的概念
对象是要研究的任何事物。类是对象的模板。消息是对象之间进行通信的一种规格说明(由三部分组成:接收消息的对象 消息名 实际变元)
面向对象的特征
封装
封装是一种信息隐蔽技术,使数据和加工数据的方法(函数)封装为一个整体 ,以实现独立性很强的模块,使数据更安全。通过封装提高内聚度,降低耦合度
继承
继承性是子类自动共享父类数据的和方法的机制,由类的派生功能体现;继承具有传递性;提高系统的可重用性。
多态
指同一消息为不同的对象接收时可产生完全不同的行动,这种现象称为多态。基于继承的层次关系实现
面向对象的要素:抽象,封装,共享

面向对象的软件开发过程
软件开发过程

面向对象方法用于系统开发有以下优越性

强调从现实世界中客观存在的事务触发来认识问题域和构造系统,这就使系统开发者大大减少了对问题域的理解难度,从而使系统能更准确的反应问题域。
运用人类日常的思维方法(体现于面向对象方法的抽象、分类、继承、消息通信等)进行系统开发,有益于发挥人类的思维能力,并有效控制系统的复杂性。
对象的概念始终贯穿于整个开发过程,使各个开发阶段的系统成分具有良好的对应关系,从而显著提高系统的开发效率和质量,并大大降低了系统维护的难度。
对象概念的一致性,是参与系统开发的各类人员在开发的各个阶段具有相同的语言,有效改善了人员间的交流和协作。
对象的相对稳定性和对易变因素的隔离,增强了系统的应变能力
对象类之间的继承关系和对象的相对独立,为软件复用提供了有力支持
面向对象下一步发展方向:组件化,形式化,智能化

第三章 统一建模语言

UML图(UML是一种半形式化的建模语言)

UML动态图
在这里插入图片描述

UML静态图
在这里插入图片描述

UML图(百度脑图绘制)
在这里插入图片描述

第四章 RUP统一过程

软件开发模型(详细介绍见软件工程导论)
线性:瀑布模型,原型模型等
迭代:螺旋模型,喷泉模型,进化树模型,迭代增量模型等
RUP三大特点
软件开发是一个迭代过程
软件开发由用例驱动
软件开发是以架构设计为中心
迭代过程的优点
降低了在一个增量上的开支风险
降低了产品无法按既定进度进入市场的风险
加快了整个开发工作的进度
RUP开发过程
初始阶段:目标是为系统建立商业案例并确定项目的边界
细化阶段:目标是分析问题领域
构造阶段:所有构件和应用程序功能被开发完毕并集成为产品
交付阶段:确保软件对最终用户是可用的
RUP核心工作流(前6个为核心过程工作流, 后3个为核心支持工作流)
①业务建模:深入了解使用目标系统的机构及商务运作评估目标系统对使用它的机构的影响
②需求:捕获客户的需求并且使开发人员和用户达成对需求描述的共识
③分析与设计:把需求分析的结果转化为分析模型和设计模型
④实现:把设计模型转化为实现结果
⑤测试:检查各子系统的交互与集成,验证所有需求是否都被正确实现,识别,确认缺陷并确保在软件部署之前消除缺陷
⑥部署:成功生成目标系统的可运行版本,并将软件移交给用户
⑦配置与变更管理:跟踪并维护在软件过程中产生的所有制品的完整性和一致性
⑧项目管理:提供项目管理框架,为软件开发制定计划,人员配备,执行和监控等方面的使用准则,并为风险管理提供框架
⑨环境:向软件开发机构提供软件开发环境,包括过程管理和工具支持

第五章 UML建模工具

使用IBM 的 Ration Rose软件使用说明:参考上机实验

第六章 UML的进一步讨论

用例图细节
泛化关系:当多个用例共同拥有一种类似的结构和行为时,可以将它们的共性抽象为父用例,其他用例作为子用例
包含关系:即多个用例的公共用例。《include》
扩展关系:太复杂,简单说就是继承,扩展父用例。《extend》
请假用例图(很重要)
在这里插入图片描述

类图细节
关联(包含聚合和合成):对象与对象间关系
关联
在这里插入图片描述

聚合
在这里插入图片描述

合成
在这里插入图片描述

一般化关系(也称泛化关系):父类与子类间,(Java中extends关键字实现)
泛化关系
在这里插入图片描述

实现:模型与模型之间(如接口与类,Java中implements关键字实现)
实现
在这里插入图片描述

依赖:类与类,且单向
依赖
在这里插入图片描述

第七章 UML需求分析与建模的过程

软件需求获取获取困难的原因
客户描述不清楚
需求自身经常变动
分析人员或客户理解有误
需求工程的过程
需求获取:确定和收集与软软件系统相关的、来自不同来源和对象用户的需求信息
需求分析:对获得的用户需求信息进行分析和综合建立软件系统的逻辑模型
需求描述:使用适当的语言,按标准格式描述软件系统的需求,并产生规格说明及相关文档
需求验证: 审查和验证需求规格说明是否正确和完整表达了用户对软件系统的需求
需求获取的方法
现场调查:When、Where、Who、What、Why
网络调查
复杂网络和数据挖掘

第八章 需求分析

UML描述方法
RUP过程中建议使用以架构为中心的UML描述方法
UML视图(PPT绘制)
在这里插入图片描述

面向对象分析(OOA)方法基本步骤
OOA是在一个系统开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题

确定系统的逻辑模型:①确定对象和类②确定结构
确定系统的过程模型:状态图、活动图、顺序图、协作图
分析人事管理系统案例——请假模块
员工顺序图.jpg
在这里插入图片描述

领导顺序图.jpg
在这里插入图片描述

状态图.jpg
在这里插入图片描述

第九章 设计

面向对象设计的准则
模块化
抽象
信息隐藏
低耦合度
高内聚
面向对象设计的启发规则
设计结果应该清晰易懂
一般-具体 结构的深度应适当
设计简单类
使用简单协议
使用简单操作
把设计变动减至最少

第十章 实现

选择面向对象语言
采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生产率。选择语言时应考虑的因素:对用户学习面向对象分析、设计和编码技术所能提供的培训操作;在使用该面向对象语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台,对机器性能和内存的需求;继承已有软件的容易程度

第十一章 测试

面向对象的单元测试
数据成员是否满足数据封装的要求
类是否实现了要求的功能
面向对象的集成测试
通常在整个程序编译完成后进行,黑盒测试。
静态测试主要针对程序的结构
动态测试步骤如下:
选定检测的类
确定覆盖标准
利用类图确定待测类的所有关联
根据程序中类的对象构造测试用例。确定使用什么输入激发类的状态,使用类的服务和期望产生什么行为等
面向对象的系统测试 :测试内容包含以下七点
功能测试
强度测试
性能测试
安全测试
恢复测试
可用性测试
安装/卸载测试


搬运自该帖子
此贴为贴图加强与扩展版。。。(๑‾ ꇴ ‾๑)

  • 8
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第1章课程定位与教学案例综述. 1.1职业岗位能力需求分析 1.2课程设置和课程定位分析 1.3WebShop电子商城介绍 1.3.1电子商城需求分析 1.3.2电子商城系统设计 1.3.3电子商城数据库设计 1.4LibraryMIS图书管理系统介绍 1.4.1图书管理系统需求分析 1.4.2图书管理系统系统设计 1.4.3图书管理系统数据库设计 习题 第2章面向对象技术和建模基础 2.1面向对象方法 2.1.1面向对象方法的基本思想 2.1.2面向对象方法的发展 2.2面向对象的基本概念与特征 2.2.1面向对象的基本概念 2.2.2面向对象的主要特征 2.3面向对象分析 .2.3.1处理复杂问题的原则 2.3.200A方法的基本步骤 2.4面向对象设计 2.5面向对象实现 2.6面向对象方法的内涵 2.7软件建模概述 2.7.1软件建模的概念 2.7.2软件建模的用途 2.7.3软件建模的优点 习题 第3章UML简介 3.1UML的发展 3.1.1UML的发展历程 3.1.2理解UML建模 3.2UML的特点 3.3UML的结构 3.3.1UML的事物 3.3.2UML的关系 3.4UML的视图 3.4.1用例视图 3.4.2逻辑视图 3.4.3并发视图 3.4.4组件视图 3.4.5部署视图 3.5UML图形符号 3.5.1用例图 3.5.2类图 3.5.3对象图 3.5.4状态图 3.5.5活动图 3.5.6顺序图 3.5.7协作图 3.5.8组件图 3.5.9部署图 3.5.10UML 2.0新特性 3.6UML建模基本流程 习题 第4章UML建模工具简介 4.1常用UML建模工具 4.1.1 Rational Rose 4.1.2Enterprise Architect 4.1.3Together 4.1.4PowerDesigner 4.1.5 Visi0 4.1.6Tnffun Plat0 4.2Rational Rose安装与配置 4.2.1Rational Rose的运行环境 4.2.2Rational Rose的安装 4.2.3Rational Rose的配置 4.3使用Rational Rose建模 4.3.1Rational Rose主菜单 4.3.2Rational Rose的视图 4.3.3 Rational Rose建模的基本过程 习题 第5章需求建模 5.1用例模型概述 5.2用例图组成 5.2.1参与者 5.2.2系统 5.2.3用例 5.3识别和描述用例.. 5.3.1识别用例 5.3.2绘制WebShop电子商城用例图 5.3.3通过包对用例进行合理规划 5.3.4WebShop电子商城用例图(不含关系) 5.3.5用例描述 5.4用例间的关系 5.4.1泛化关系 5.4.2使用关系 5.4.3包含关系 5.4.4扩展关系 5.4.5关系小结 5.4.6WebShop电子商城用例图(含关系) 习题 第6章静态建模 6.1静态建模概述 6.2类图概述 6.3类图的基本组成 6.3.1类的概述 6.3.2绘制带属性的实体类 6.3.3绘制带操作的实体类 6.3.4绘制边界类图 6.3.5绘制控制类图 6.3.6UML中的类与语言中的类 6.4类之间的关系 6.4.1关联关系 6.4.2聚合关系 6.4.3组合关系 6.4.4泛化关系 6.4.5实现关系 6.4.6依赖关系 6.5对象图 6.5.1对象图概述 6.5.2对象图组成 6.5.3类图和对象图的比较 习题 第7章数据库建模 7.1PowerDesigner简介 7.2PowerDesigner安装和启动 7.2.1PowerDesigner的安装 7.2.2PowerDesigner的启动 7.3PowerDesigner概念数据模型 7.3.1概念数据模型概述 7.3.2PowerDesigner概念数据模型概述 7.4 PowerDesigner物理数据模型 习题 第8章动态建模 8.1动态建模概述 8.2状态图 8.2.1状态图概述 8.2.2状态图组成 8.2.3绘制员工下班回家状态图 8.3活动图 8.3.1活动图概述 8.3.2活动图组成 8.3.3绘制WebShop电子商城活动图 8.4活动图拾遗 8.4.1活动图与流程图的比较 8.4.2活动图与状态图的比较 8.5顺序图 8.5.1顺序图概述 8.5.2顺序图组成 8.5.3绘制WebShop电子商城顺序图 8.6协作图 8.6.1协作图概述 8.6.2协作图组成 8.6.3绘制WebShop电子商城协作图 8.7 顺序图拾遗 8.7.1 顺序图与协作图的比较 8.7.2 顺序图与协作图的互换 习题 第9章物理建模 9.1物理建模概述 9.1.1硬件 9.1.2软件 9.2组件图 9.2.1组件图概述 9.2.2组件图组成 9.2.3绘制WebShop电子商城组件图 9.3部署图 9.3.1部署图概述 9.3.2部署图组成 9.3.3绘制WebShop电子商城部署图 习题 第10章双向工程 10.1双向工程简介 10.2正向工程(生成Java代码) 10.3逆向工程 习题 第11章统一软件过程RUP 11.1RUP简介 11.2RUPT作流程 11.2.1业务建模 11.2.2需求 11.2.3分析设计 11.2.4实施 11.2.5测试 11.2.6部署 11.2.7配置与变更管理 11.2.8项目管理 11.2.9环境 11.3RUP迭代过程 11.3.1初始 11.3.2细化 11.3.3构造 11.3.4移交 11.3.5迭代计划示例(构造阶段) 习题 附录A综合实训 附录B Rational Rose2003主菜单 参考文献...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值