您在编程期间使用了哪些图表技术(而不是工具)?

时间:2009-03-11 20:18:03

标签: modeling diagramming

您在编程时使用了哪些图表技术来帮助您 或其他人了解您的计划或设计。我不是在谈论一个人 最喜欢的工具,虽然一个好的工具可能会帮助一个人 图表。

我在这个问题上的意图是找到简单有用的图表技术 人们实际上使用并找到新的东西来学习。

您使用流程图,数据流图,ER图等吗?

网络上充满了推荐!但真正的程序员,设计师, 和代码维护者实际上在日常工作中使用

感谢您的反馈

13 个答案:

答案 0 :(得分:17)

  • 非常高级别的讨论 - 框图可能代表类,包或子系统的上下文图。
  • 高级设计 - 显示子系统之间接口的序列图,仍然没有直接使用的类,但可能暗示这一点。
  • 详细设计 - 班级的序列图。

如果存在一个棘手的算法,例如将多个数据流关联到新流中,那么我通常会使用流程图来计算算法。

如果解决方案需要了解状态,那么也会使用状态图。

这些是我最常用的。

在进行数据仓库设计时,我绘制了星型模式以确定如何存储数据。在进行事务数据库设计时,我使用实体关系图来处理数据存储。

在设计用户界面时,我只是将其勾画出来。一旦我开始得到用户界面的某些部分,并希望在某些区域进行游戏,我将制作一个模板,打印出一份副本,然后将其作为指导来处理子部分。对于配色方案,使用gimp制作图形可以很方便,并且每个设计都有图层,然后使用每个图层着色以找到正确的平衡。

答案 1 :(得分:12)

我们真正使用什么?也许其他人实际上创建了正式的图表,但在大多数情况下,我只是在一张纸上涂抹气泡,盒子和线条。

答案 2 :(得分:6)

我使用白板进行建模,所以我猜“白板建模语言”将是我的答案。

答案 3 :(得分:3)

我会为我设计的任何比几个类更大的东西做一个UML类图。绘制类图使我抽出时间思考设计而不是直接进入代码并始终产生更好的结果。

对于更大更复杂的架构,我发现序列图是一种很好的通信方式,特别是对于多线程系统。

答案 4 :(得分:2)

我使用图表作为快速理解遗留代码的方法。创建图表需要一些工作,但最终总是付出代价。

通常我会使用类图来获得全局。有时序列图甚至是数据流图,如果一段代码非常难以理解。

在设计阶段,我使用类图,并经常使用状态图。如果类行为与其状态不同,则状态图是完美的。

答案 5 :(得分:2)

我经常使用Sequence Diagrams(纸上绘制)。我发现它们为我提供了一个很好的直观表示,即我们应用程序中各种系统和组件之间的方法调用和信息的逻辑流程。

答案 6 :(得分:1)

我有Flow chart与我合作并开发的主要产品。

我的团队经常在白板上使用UML diagram草图,同时为我们设计新部件以实施。它们在创建设计模式和建模所需类的高级结构时非常有用。这些从不完全成熟的UML虽然......

答案 7 :(得分:1)

白板供讨论。

笔和纸的临时记录较少。

“要阻止的东西”的代码存根。

后代的经测试和工作代码(含有广泛的评论)。

答案 8 :(得分:1)

我在纸张和白板上使用ER和类图来表示任何比shell脚本更大的项目。

流程图,只有当我需要向非程序员解释一个过程时(或者它是一个非常复杂的过程,我需要先了解它)。

我的老板常常说“那个人喜欢画东西。”

答案 9 :(得分:1)

我绘制了UML类,对象和序列图的混合版本。虽然我试图忠实于语法,但我更关心的是表达特定功能背后的主要思想。所以,我会起草一些东西,请一位同事看看,如果看起来很清楚,我们甚至可以扫描它并将其发布在我们的Wiki中。

然后,当碰巧我们实际上有时间处理文档时(而且几乎从不),我将使用BOUML并将涂鸦重绘为适当的图表。

现在,要完全放在上下文中,我正在一个相对较小的团队(5个开发人员)工作,使用Java制作交易和产品配置平台。我们有两种产品,然后根据客户的要求进行定制。作为一个紧密结合的社区,几年来的转变率很低(零),我们主要将这些文档用作我们自己的剩余部分。在这种设置中,上述方法效果很好。

答案 10 :(得分:1)

我在AJAX开发环境中工作,我编写的大多数后端代码都像关系数据库和前端javascript(用户界面)之间的管道。因此,我使用的最常用的“图表”是JSON对象,用于描述数据应如何在数据库和接口之间来回传递。它们是简单,通用且易于理解的数据结构。

示例:

  

{       “id”:row ['id'],               “name”:row ['name'],               “强制”:行['强制'],               “rangeDescription”:“这是范围”,               “globalRate”:row ['global']           }

答案 11 :(得分:1)

我喜欢数据流图。很多。

答案 12 :(得分:0)

我使用通信所需的一切。通常这根本不算什么。有时它是白板。

我不时使用Sparx Enterprise Architect这是一个UML 建模工具,虽然它可以产生不错的diagams。我已将它用于需求,用例,活动,序列,域,甚至是类建模,有时还使用了一些反向工程ER图。无论如何才能明白这一点。