UML总结

面试被问了几次什么是UML,什么鬼哭,软件工程的东西,没有学过。

查一下资料,总结一下。

百度百科:

Unified Modeling Language (UML)又称统一建模语言或 标准建模语言,是始于1997年一个 OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮, UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的 标准建模语言
Grady Booch的描述对象集合和它们之间的关系的方法。James Rumbaugh的对象建模技术(OMT)。Ivar Jacobson的包括用例方法的方式。还有其他一些想法也对UML起到了作用,UML是Booch, Rumbaugh, Jacobson。UML已经被对象管理组织(OMG)接受为标准,这个组织还制定了通用对象请求代理体系结构(CORBA),是分布式对象编程行业的领头羊。计算机辅助软件工程(CASE)产品的供应商也支持UML,并且它基本上已经被所有的软件开发产品制造商所认可,这其中包括IBM和微软(用于它的VB环境)。
UML规范用来描述建模的概念有,类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。 [1]  

UML的应用场景:

这家伙干嘛用的??

对于一些不了解UML的程序员来说一听到 UML? 恩 听说过 不过没有详细研究过.....等。 但是随着现在对于项目的要求也越来越高,使用图的方式来更明确、清晰的表达项目中的架设思想、项目结构、执行顺序等 一些逻辑思维 是越来越重要和不可缺少的一部分了。

既然叫统一建模语言,关键词,统一的好处:

好处:帮助开发团队以一种可视化的方式理解系统的功能需求。
1,UML统一了各种方法对不同类型的系统、不同开发阶段以及不同内部概念的不同观点,从而有效的消除了各种建模语言之间不必要的差异。
2,UML建模能力比其它面向对象建模方法更强。它不仅适合于一般系统的开发,而且对并行、分布式系统的建模尤为适宜。
3,使用UML使硬件组件和软件组件之间将会有更大的透明度。便携性和综合效率将会增加。

UML支持从需求分析开始的软件开发的全过程。UML通过三类图形建立系统模型:用例(Use Case)图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图),这些图可以从不同的抽象角度实现系统的可视化。

浅谈UML的概念和模型之UML九种图

   点击打开链接


总结面试中关于UML的问题:

1、什么是UML?具体包括哪些内容?

   答:标准建模语言UML。包括用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图和合作图)和实现图。

2、UML中最重要的几个图

有三种图最为重要,分别是:用例图(用来捕获需求,描述系统的功能,通过该图可以迅速的了解系统的功能模块及其关系)、类图(描述类以及类与类之间的关系,通过该图可以快速了解系统)、时序图(描述执行特定任务时对象之间的交互关系以及执行顺序,通过该图可以了解对象能接收的消息也就是说对象能够向外界提供的服务)。

用例图:用来捕获需求,描述系统的功能,通过该图可以迅速的了解系统的功能模块及其关系



类图:描述类以及类与类之间的关系,通过该图可以快速了解系统


  在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

具体细节见连接:点击打开链接



时序图:描述执行特定任务时对象之间的交互关系以及执行顺序,通过该图可以了解对象能接收的消息也就是说对象能够向外界提供的服务


3. 类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。(选择1项)

A.正确

B.不正确

解答:B

类图是对系统静态结构的描述。

4、为什么我们要使用UML?

我们了解一下软件开发的历史,才明白为什么要使用UML。

软件历史分为3个阶段:

  • 程序设计阶段【1946年~1955年 对硬件进行开发,规模很小,程序设计追求节省空间和编程技巧】
  • 软件设计阶段 【在1956年~1970年,硬件增长速度快,性价比越来越高,软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,导致了“软件危机”
  • 软件工程阶段【1970年~至今,大量需求被提出,采用工程化的思想来管理软件

软件工程的目标:利用工程化的方法.在给定成本、进度的前提下,开发出具有可维护性、正确性、可移植性的软件. 提高软件产品的质量和开发效率,减少维护的困难

随着软件工程地进展,IT界想用一种语言来描述它们完成的需求,设计,但是不同的公司开发了自己的产品。

于是乎,为了统一起来,就有了OMG组织【ObjectManagementGroup对象管理组织】,这个组织让这种描述需求、设计的语言统一了,就称作是UML了。

也就是说,UML用来给我们设计,需求分析

5、使用IBM Rational

我是写不出这么好的,用前人的轮子走: 点击打开链接



### UML 图类型及其应用场合总结 | 序号 | UML图名称 | 特点描述 | 主要用途 | |------|--------------|--------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| | 1 | 类图 | 描述系统的静态结构,展示类之间的关系以及属性和操作 | 设计阶段用于定义系统中的类、接口和其他实体的关系;帮助理解系统的架构[^3] | | 2 | 对象图 | 表现特定时刻的对象实例及其链接 | 展示具体场景下的对象状态,辅助理解和验证类图的设计合理性 | | 3 | 组件图 | 显示程序组件间的依赖关系 | 软件开发过程中用来规划和管理不同模块或子系统的交互 | | 4 | 部署图 | 描述硬件节点上运行的软件构件 | 系统部署时配置服务器或其他计算资源 | | 5 | 包图 | 将模型元素分组到逻辑单元内 | 大型项目的组织工具,有助于简化复杂性的处理 | | 6 | 用例图 | 定义外部参与者与系统功能之间的互动 | 收集并记录用户需求,作为沟通桥梁连接开发者和技术人员 | | 7 | 状态机图(状态图)| 描述一个实体基于事件影响的状态变化过程 | 分析和设计有限状态自动机,特别适用于实时控制系统 | | 8 | 活动图 | 流程控制流的表现形式 | 工作流程建模,强调并发性和决策路径 | | 9 | 顺序图 (序列图) | 记录消息传递的时间顺序 | 动态行为建模,特别是对于涉及时间因素的关键算法 | | 10 | 协作图 (通信图)| 强调参与交互的对象角色 | 清晰展现各对象间的信息交换模式 | | 11 | 时间图 (定时图)| 关注于随时间推移而发生的动作 | 实时系统中精确描绘事件发生时机 | 此表格综合了多种类型的UML图表,并指出了每种图表最适合的应用环境。通过这种方式可以帮助读者更好地掌握何时应该选用哪种UML图表来进行有效的需求分析、设计文档编写等工作。 ```python # 示例代码:创建简单的Python字典模拟上述表格数据结构 uml_diagrams = { 'class': {'description': '描述系统的静态结构...', 'use_case': '设计阶段...'}, # ...其他条目... } print(uml_diagrams['class']) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值