类图

UML类图几种关系的总结

谁说胖子不能爱 提交于 2020-01-16 05:05:52
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化( Generalization ) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类 2. 实现( Realization ) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指向】:带三角箭头的虚线,箭头指向接口 3. 关联( Association) 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者 上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 下图为自身关联: 4. 聚合( Aggregation ) 【聚合关系】:是整体与部分的关系

UML类图的几种关系

你离开我真会死。 提交于 2020-01-15 11:48:30
泛化(Generalization) 概念: is a kind of 描述类和类之间的继承关系,是一种特殊-一般关系,主要表现为父类与子类之间的继承。 举例: 如下图所示,员工是父类,工程师和经理是子类,工程师和经理都继承了员工父类的属性和行为。 类似的还有:动物(父类)-猫(子类);汽车(父类)-小轿车(子类) 图形表示: 用带三角箭头的实线表示,箭头指向父类 继承分为单重继承和多重继承 单重继承: 一个子类有且只有一个父类(如下图所示:活期账户和储蓄账户只继承了银行账户这一个父类) 多重继承: :一个类有两个或两个以上的父类(如下图所示:汽车这个父类下面有陆路车和水上车两个子类,他们下面又有一个子类水陆两用车,水陆两用车既继承了陆地车辆的特征,也继承了水上车的特征,这就是多重继承) 实现(Realization) 概念: 类是接口特征和行为的实现 图形表示: 带三角箭头的虚线,箭头指向接口 关联 (Association) 概念: 描述了两个或多个类之间的结构性关系 关联既可以是双向的,也可以是单向的,单向的关联有一个箭头,双向的关联可以有两个箭头也可以没有箭头 多向关联: 一名老师拥有多名学生,一名学生也可以有多名老师,所以老师与学生的关系是多向关联关系,可以带箭头也可以不带箭头 单向关联: 一个学生拥有多门课程,但是课程是抽象概念,不拥有学生,所以课程和学生之间是单向关联

Java集合图谱

人走茶凉 提交于 2020-01-15 04:16:49
Java集合类图 Java List类图 Java Map类图 Java Set类图 来源: CSDN 作者: ゛Smlie。 链接: https://blog.csdn.net/qq_43563538/article/details/103819234

UML类图及技巧

孤者浪人 提交于 2020-01-10 12:23:02
继承关系 继承关系中,子类继承父类的所有功能,父类所具有的属性、方法,子类应该都有。子类中除了与父类一致的信息以外,还包括额外的信息。例如:公交车、出租车和小轿 车都是汽车,他们都有名称,并且都能在路上行驶。其类图如下: 实现关系 接口(包括抽象类)是方法的集合,在实现关系中,类实现了接口,类中的方法实现了接口声明的所有方法。例如:汽车和轮船都是交通工具,而交通工具只是一个可移动 工具的抽象概念,船和车实现了具体移动的功能。 组合关系 组合关系表示类之间整体与部分的关系,整体和部分有一致的生存期。一旦整体对象不存在,部分对象也将不存在,是同生共死的关系。例如:人由头部和身体组成,两者 不可分割,共同存在。 聚合关系 聚合关系也表示类之间整体与部分的关系,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。例如:公交车司机和工衣、工帽是整体与部分的关系, 但是可以分开,工衣、工帽可以穿在别的司机身上,公交司机也可以穿别的工衣、工帽。 关联关系 关联关系是类与类之间最常用的一种关系,表示一类对象与另一类对象之间有联系。组合、聚合也属于关联关系,只是关联关系的类间关系比其他两种要弱。 关联关系有四种:双向关联、单向关联、自关联、多重数关联。例如:汽车和司机,一辆汽车对应特定的司机,一个司机也可以开多辆车。 在多重性关系中,可以直接在关联直线上增加一个数字

UML类图几种关系的总结

拜拜、爱过 提交于 2020-01-09 08:47:07
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化( Generalization ) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。 【箭头指向】:带三角箭头的实线,箭头指向父类     2. 实现( Realization ) 【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指向】:带三角箭头的虚线,箭头指向接口      3. 关联( Association) 【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者      上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 下图为自身关联:     4. 聚合( Aggregation

UML基础与应用之类图和包图

两盒软妹~` 提交于 2020-01-08 20:59:48
一、类图 (一)类 1.定义 :对真实事物的抽象描述 2.包含 :类名;属性;方法 3.类表示 :+表示公有;-代表私有;#代表保护 (二)类的关系 1.关联 (关联类:将两个对象连接看成一个类,叫做关联类;) 1.1 普通关联 (Works in是关联名称;Employee和Employer是关联角色;0…*/1/1…*等体现多重性) 单向关联(导航关联);双向关联 1.2聚合 (“整体/部分”;空心菱形表示) 1.3组合 (实心菱形表示;部分依赖于整体) 2.依赖 (一种使用关系,说明一个事物规格的变化可能影响到使用它的另一个事物;前者依赖于后这,箭头后依赖于箭头后) 3.泛化 (描述的是类之间的继承关系;箭头是父类,尾部是子类) 3.1单重继承 3.2多重继承 (Java中不可以直接实现多重继承,可通过接口实现) 4.实现 (一个类元实现另一个类元的契约;虚线尾部实现箭头处的接口) (三)类图构成 1.类图作用 用于描述系统的静态部分 2.类图构成 classes(类);interfaces(接口);collaborations(协作);relationships(关系);package(包);system(子系统) (四)类图深入讨论 1.可见性(Visiblity) public(name;+)/private(age;-)/protected(salary;#)

工厂方法模式

血红的双手。 提交于 2020-01-08 10:36:03
8.1 女娲造人的故事东汉《风俗通》 记录了一则神话故事: “开天辟地, 未有人民, 女娲搏黄土做人”, 讲述的内容就是大家非常熟悉的女娲造人的故事。 开天辟地之初, 大地上并没有生物, 只有苍茫大地, 纯粹而洁净的自然环境, 寂静而又寂寞, 于是女娲决定创造一个新物种(即人类) 来增加世界的繁荣, 怎么制造呢?别忘了女娲是神仙, 没有办不到的事情, 造人的过程是这样的: 首先, 女娲采集黄土捏成人的形状, 然后放到八卦炉中烧制, 最后放置到大地上生长, 工艺过程是没有错的, 但是意外随时都会发生:第一次烤泥人, 感觉应该熟了, 往大地上一放, 哇, 没烤熟! 于是一个白人诞生了!(这也是缺乏经验的最好证明。 )第二次烤泥人, 上一次没烤熟, 这次多烤一会儿, 放到世间一看, 嘿, 熟过头了, 于是黑人诞生了!第三次烤泥人, 一边烧制一边察看, 直到表皮微黄, 嘿, 刚刚好, 于是黄色人种出现了!这个造人过程是比较有意思的, 是不是可以通过软件开发来实现这个过程呢? 古人云: “三人行, 必有我师焉”, 在面向对象的思维中, 万物皆对象, 是对象我们就可以通过软件设计来实现。 首先对造人过程进行分析, 该过程涉及三个对象: 女娲、 八卦炉、 三种不同肤色的人。 女娲可以使用场景类Client来表示, 八卦炉类似于一个工厂, 负责制造生产产品(即人类) , 三种不同肤色的人,

如何评测软件工程知识技能水平?

纵然是瞬间 提交于 2020-01-06 15:40:22
软件工程师应该具备的基础和能力 具备软件工程课程是软件开发的指导思想,方法体系,这是需要掌握的核心内容: (1)软件工程知识 (2)系统分析基础知识 (3)系统设计基础知识 (4)系统实施基础知识 (5)系统运行和维护基础知识 (6)软件质量管理基础知识 (7)软件过程改进基础知识 具有基本代码实践能力:最拿手的计算机语言之一,代码量多少?(偏web前端,PC/Mobile App) 具有行业洞察力:你最感兴趣的领域是什么?这个领域过去10年经历了哪些创新? 项目管理能力:如何决定项目中各种任务的优先次序,有什么理论来支持你的做法? 团队协作能力:协同工作,提供反馈,说服别人 软件设计能力:架构设计,模块化设计,接口设计 一.单选题,共8题。 1.软件开发的增量模型____。 A.最适用于需求被清晰定义的情况 B.是一种能够快速构造可运行产品的好方法 C.最适合于大规模团队开发的项目 D.是一种不适用于商业产品的创新模型 试题1分析 增量模型是一种非整体开发的模型,该模型具有较大的灵活性,适合于软件需求不明确的一种模型。使用该模型开发产品,一般是尽快构造出可运行的产品,然后在该产品的基础上再增加需要的新的构建,使产品更趋于完善。 试题1答案 B 2.为了有效地捕获系统需求,应采用____。 A.瀑布模型 B.敏捷开发 C.原型模型 D.螺旋模型 试题2分析

如何评测软件工程知识技能水平?

谁说我不能喝 提交于 2020-01-05 19:18:33
一.单选题,共8题。 1.软件开发的增量模型____。 A.最适用于需求被清晰定义的情况 B.是一种能够快速构造可运行产品的好方法 C.最适合于大规模团队开发的项目 D.是一种不适用于商业产品的创新模型 试题1分析 增量模型是一种非整体开发的模型,该模型具有较大的灵活性,适合于软件需求不明确的一种模型。使用该模型开发产品,一般是尽快构造出可运行的产品,然后在该产品的基础上再增加需要的新的构建,使产品更趋于完善。 试题1答案 B 2.为了有效地捕获系统需求,应采用____。 A.瀑布模型 B.敏捷开发 C.原型模型 D.螺旋模型 试题2分析 瀑布模型严格遵循软件生命周期各阶段的固定顺序进行软件开发,其优点是可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审;而其缺点是过于理想化,缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求。 原型模型基于这样一种客观事实:并非所有的需求在系统开发之前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。原型模型适用于需求不够明确的项目,它能有效地捕获系统需求。 螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。 试题2答案 C

UML的五类图(UML笔记)

放肆的年华 提交于 2020-01-04 05:36:23
UML 的内容可以由下列五类图 ( 共 9 种图形 ) 来定义: ·第一类是 用例图 ,从用户角度描述系统功能,并指出各功能的操作者。 ·第二类是 静态图 (Static diagram) ,包括 类图 、 对象图 和 包图 。其中 类图描述系统中类的静态结构 。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构 ( 类的属性和操作 ) 。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于 对象图显示类的多个对象实例,而不是实际的类 。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。 包图用于描述系统的分层结构 。 ·第三类是 行为图 (Behavior diagram) 描述系统的动态模型和组成对象间的交互关系 。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常 状态图 是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而 活动图 描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。 ·第四类是 交互图 (Interactive diagram) 描述对象间的交互关系。其中 顺序图