发布于:2021-02-07 17:10:20
0
660
0
开发是一个不断发展的领域,作为开发人员,我们总是在寻找更快更有效的方法来解决问题。这些年来,我们处理和适应问题的方式发生了变化。
敏捷开发过程已经成为一种越来越流行的方法,将软件作为一系列需要解决的迭代问题来处理。敏捷的测试、学习和调整模型产生了更多的边做边学,这减少了像统一建模语言(UML)这样的广泛框架概念的使用。
UML涉及到创建和可视化整个系统的过程,以及它们如何相互作用,被认为是过时的。但是忽视UML这样的基本概念是有其后果的。
在本文中,我将分析UML如何在开发过程中仍然发挥重要作用,以及它如何使我们成为更好的程序员和思想家。然而,在深入研究这些之前,让我们先看看统一建模语言到底是什么。
UML是什么?
UML最初创建于1994年,作为软件设计中标准化不同符号系统的一种方法。它基本上是一种统一的建模语言,由一组集成的图表组成,这些图表被创建来帮助软件和系统开发人员可视化、指定、记录和构建软件系统工件、非软件系统和业务建模。
统一建模语言是在复杂系统建模方面非常成功的工程最佳实践的汇编。
UML确实是开发软件开发过程和面向对象软件的一个组成部分。它主要利用图形符号来表达软件项目设计。使用UML可以帮助项目工作组进行交流,探索潜在的设计,并验证软件的体系结构设计。
UML的用途:不同类型的应用程序
统一建模语言有许多不同的应用程序。您可以使用它来开发图表,并为程序员提供具有表现力且随时可用的建模示例,这些示例基本上描述了系统的结构和行为。
一些UML工具从统一建模语言交付程序代码。您可以使用UML对不依赖于平台语言的特定系统进行建模。
此外,UML吹嘘的应用程序超出了软件开发的范围,比如制造业中的过程流。这解决了敏捷所不能解决的问题,并允许您在整个业务的上下文中看到您的开发需求。这种预先的或“瀑布式”的过程允许您一次想到整个系统,并使您能够灵活地看到不同的系统如何相互作用。
UML的优点
今天使用UML有几个好处,找到方法将其融入到您的开发过程中可以改进您的思维过程并导致更高的组织效率。
让新的开发人员或团队成员快速跟上进度
在开发人员开始编写代码之前,统一建模语言图可以帮助每个从事项目的团队成员都进入同一个众所周知的页面。由于这些图表的简单性,您还可以让新的团队成员非常快速地跟上进度。
此外,通过理解他们试图构建的系统,开发人员可以委派他们的工作,在实际工作开始之前找出潜在的问题,然后朝着一个共同的目标高效地工作。
定制UML图中的元素
使统一建模语言成为软件开发所急需和非常适合的语言是它的高度灵活性。您可以自由地在统一建模语言图中定制您的建模交互和元素,特别是适合您使用的技术或领域。
在编程之前计划好新功能
统一建模语言有助于在任何编程之前规划新特性。这允许您在开发开始前识别问题或潜在的问题区域。这可以降低任何程序实现期间的开销。
此外,统一的建模语言模型图很容易更改,而重新编写某个代码段可能会非常耗时和乏味。
更容易与技术和非技术受众沟通
统一建模语言的一个最大优点是,它可以方便地与技术和非技术受众进行交流。
例如,如果您正在考虑使用UML来解释不同的软件设计模型,那么可以肯定的是,大多数软件专业人员在某种程度上都会熟悉UML图,这样就可以方便地进行来回通信。
此外,您只需了解20%的统一建模语言就可以描述80%的建模需求。您不需要理解或知道完整的符号,就可以借助UML图进行有效的通信。
UML图的类型
UML图甚至可以合并到敏捷开发中。通过更好地理解不同类型的UML图及其用法,您可以开始根据您的特定需求创建自己的UML图。
结构图
这些图显示了建模系统中的事物和元素。更严格地说,它们显示了一个系统的不同对象。
类图是几乎所有面向对象方法的关键,其中也包括UML。类图描述了系统的静态结构。
组件图–这些图描述了物理软件组件组织,包括可执行文件、运行时代码和源代码。
部署图–部署图显示了系统的物理资源,包括组件,节点和连接。
复合结构图–这些图描述了类的内部部分。
对象图–对象图说明了系统在特定时间的静态结构。您可以使用它们来测试类图。
行为图
这些图显示了系统的行为以及与自身和其他实体(用户、其他系统)的交互。它们显示数据如何在系统中移动,对象如何相互通信,时间的流逝如何影响系统,或者什么事件导致系统改变内部状态。
序列图–这些图说明了随着时间的推移,不同类之间在消息交换方面的交互。
这个序列图显示了在ATM机上与客户的交互。它可视化了系统如何交互以及以何种顺序交互,使您能够更好地理解如何以最佳方式设置开发流。
活动图–通过对从一个活动到另一个活动的控制流进行建模来描述系统的动态特性。活动表示某个特定类上导致系统状态更改的操作。通常,可以使用活动图对内部操作和业务流程或工作流进行建模。
用例图–这些图使用用例和参与者来建模系统的功能。
用例图帮助您更好地跟踪和可视化参与者将如何在给定的系统中移动。这是一个很好的低技术的方法来识别潜在的问题和系统可能崩溃的地方。
我们的开发技术需要与时俱进。尽管敏捷在处理和解决问题方面有着不可否认的优势,而且可能更适合当前的软件需求,但重要的是我们不要忘记开发过程中的基本原理。
像UML这样的技术可以改进我们的过程,让我们不仅成为更好的开发人员,而且成为更好的思考者。找到将UML之类的实践合并到当前开发模型中的方法可以让您拥有一个强大的基础框架,同时保持灵活和创新。
作者介绍