UML总结(一)

      在软件开发中,尤其是从事Java开发,核心代码可能很少。但是随着需求的修改,代码变得越来越难以维护。如何让自己的代码变的扩展性更加强呢?先从软件设计入手,拒绝没有设计而开始开发的产品。现在给大家将一个对于需求分析,和软件设计的工具UML。

      软件建模包含两个方面:一是静态方面,一是动态方面。比如静态方面:服务器如何搭建,动态建模:通常是软件的交互。

  三大要素:

      过程:建立模型的过程,只有确切知道建模的过程才能够成功建立一个模型.

      表示法:模型的表示,也就是建模语言,是建立模型的关键,例如UML就是软件的建模语言.

      工具:通过建模工具来方便建立模型.

首先确定问题域,我们要干什么。引出一个开始问题:设计一个石头、剪刀、布游戏

   规则:石头对剪刀,石头赢。石头对布,布赢。剪刀对布,剪刀赢。相同就重新来。

需求分析:通过用例(面向使用者列出的一系列例子)1,系统边界是什么。2,系统原型是什么 3.系统功能有哪些。

领域模型:实现它必须抽象出一些概念,这些概念都是业务上的一些概念。这是面向对象分析的过程。它是对真实世界想象的可视化。跟具体实现软件基础无关。

 如何抽象出来呢?

         第一步找名词。三个概念,一 玩游戏的参与者(隐藏的),二 出的结果(表面可见),三 游戏(表面可见)。

          站在总体的上面看待这个问题。找出数量,is,have关系(静态)、动作交互(动态)。

          动态交互:通过时序图来确定类的协作和职责。

         设计阶段,实现:名称的启示,类接受外部动作,内部的运作。

画图注意什么?

        不要画画的太细,太细不如写代码。

UML图形主要分为三大类:

    对象图形:用来描述对象的

    交互图形:用来描述交互和行为的。

   状态图形:描述状态改变的。

 顺序基本是:用例图->时序图->协作图->状态图->活动图->类图->组件图->部署图->用例图。

用例图:用来描述用户场景的.(交互类)

时序图:描述对象是如何交互的,并且将重点放在消息序列上。也就是说,描述消息是如何在对象间发送和接收的。(交互类)

协作图:强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。(交互类)

状态图:由状态组成,各状态由转移链接在一起。状态是对象执行某项活动或等待某个事件时的条件。转移是两个状态之间的关系,它由某个事件触发,然后执行特定的操作或评估并导致特定的结束状态。(状态类)

活动图:阐明了业务用例实现的工作流程。业务工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作。(行为类)

类图:显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。(对象类)

组件图:组件图中通常包括组件、接口,以及各种关系。组件图显示组件以及它们之间的依赖关系,它可以用来显示程序代码如何分解成模块或组件。(对象类)

部署图:显示系统中软件和硬件的物理架构。从部署图中,您可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。(对象类)

在工作中通常通过三视图来表示一个软件的设计(用例图,类图,时序图【活动图】)

### 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、付费专栏及课程。

余额充值