首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UML对业余程序员有用吗?

UML对业余程序员有用吗?
EN

Stack Overflow用户
提问于 2018-03-03 07:57:43
回答 2查看 252关注 0票数 0

我希望我已经解决了这个问题,因为我没有以意见为基础。我并不是在问UML是好是坏,因为我毫不怀疑它对于那些专业地使用它的人是有用的。

我更想知道是否有某种临界量(例如,每周编码小时),对于一个单独的业余程序员来说,UML是有用的。

当然,这假定我在UML方面的失败主要是由于缺乏实践。如果维护实践意味着将我90%的业余时间花在UML上,而没有获得大量的工作代码,那么这就是我认为的“低于临界质量”的例子。

我的业余爱好程序员的意思是:我的项目的典型源代码大小在1MB以下。有时我用手画继承树,但仅此而已。我有35年的编程经验,因此,在没有明确的设计过程(当然,除了通常的OOP设计原则和模式)的情况下,编写代码是我对项目的自然方法,并且工作非常好。

在过去的工作中,我曾与UML (Rhapsody,Enterprise )进行过一些肤浅的接触,这就是而不是,主要是软件开发。例如,有一次有人让我在SYSML中建模一个机械概念。

我知道大多数语言结构,大概也知道它们是什么意思,但老实说,我并不知道如何使用它们来造福我。只是花了这么多时间才觉得没有效率。更重要的是,与编码一些行相比,没有直接的反馈,只需要测试它们。另外,当我尝试使用UML时,我发现自己已经多次陷入这样的情况,在这种情况下,问题似乎变得更加复杂和过度设计,而不是变得更加清晰。就好像使用抽象的语言让我看不出什么是真正必要的和实际相关的。

另一方面,我有时觉得我可能因为不使用UML而错过了一些东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-03 14:13:32

下面是我的故事:多年来,我一直作为UML顾问和建模师在业界工作。项目通常是大型的,需要各种UML语言来对这些项目建模。毫无疑问,UML是有效的,有助于发现用户/客户沟通中的问题以及解决编码问题。我也在业余爱好的基础上编程(例如,我已经建立了一个程序来管理我们的Shotokan俱乐部的会员和付款,并且曾经在AppStore上有过一些程序)。这些程序大约是7.5kloc Swift +- -什么的。所有这些都是从零开始的,没有太多的设计。现在他们都有了一种状态,在这种状态下,没有适当(UML)文档的维护就开始变得棘手。

为什么一开始就不使用UML呢?好吧,和大多数程序员一样,启动一些东西并快速看到ROI是很有趣的。而且,由于您手头有它的工作,您添加了一个又一个功能。过了一段时间,你开始想不出为什么你做事情的方式,以及它是如何运作的。咬牙切齿片刻,喝几杯咖啡后,你会持续一段时间。但再晚一点也没用。在这里,我开始重新记录代码(至少部分)。对于Swift来说,这更加困难,因为没有可用的RE工具,而且我必须手动创建类图。

因此,我只需为复杂的部分做类图,以获得一个概述,并做的部分,我得到更多的细节麻烦。从这一点开始,我通常创建几个SDs来控制这个问题--这真的很有帮助。此外,有时甚至在编码(!)期间,我也会在某些情况下使用状态图。当涉及到解析DSL或诸如此类的东西时,它们非常方便。

我没有为我的爱好项目记录用例。仅仅是因为只有很少的几个,而且你没有一个客户需要处理。

票数 2
EN

Stack Overflow用户

发布于 2018-03-05 07:47:05

这取决于你自己在你的项目中是如何工作的。

撇开可执行模型不说,UML主要用于分析和设计工作,主要用于软件体系结构和工程(您可能知道)。作为一个正式的项目,涉及多个人的项目非常有用,他们都受益于具体表达复杂软件结构的一种通用语言:工程(在任何学科中)依赖于工程师交叉验证彼此的逻辑并发现漏洞的能力,UML是软件工程必须做到的一种语言集合。

UML对于您在破解代码或记录您认为无法在代码中正确注释的想法之前,单独考虑复杂的问题也是有用的。和您一样,我已经编码了一段时间(从80年代开始),并且从1998年开始使用UML。我现在的职业是软件体系结构(因此我大量使用UML ),但我仍然做了很多编码--我经常构建概念的证明--而且我有自己的产品,其中一个是大约25万行代码(为此,我有时使用UML,而在没有根据需要编写模型的其他代码中使用UML)。

您可能更熟悉UML的一件事是软件设计模式。这些通常是使用UML记录的(至少部分如此),因为实现可能因编程语言的不同而不同,而模式、概念和结构是常见的。

有点闲逛,但我希望这对你的探索有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49082022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档