1

我的项目同时变得越来越大。现在,我发现自己迷失在我的代码中,甚至改变了我脑海中已经固定的概念。这太可怕了,因为随着我的代码行数增加,我的工作效率就会下降。我只想实现我的生产力保持不变。现在我想把我的申请写在纸上,以便在我再次迷路的情况下找回概述,并拥有一些我可以坚持的东西。但我不知道如何正确建模。我试图在状态图中对其进行完整建模,但是例如,如果代码只是逐行执行没有状态的事情,则不适用。在这种情况下,流程图会很好。但我不知道如何混合它,以便整体有意义。

我应该如何开始在纸上写东西?为更大的应用程序建模的常见做法是什么?我什么时候使用哪个图表?

4

4 回答 4

2

要了解程序的流程,您可以使用活动图。要了解对象之间的交互,您可以使用序列图。要了解这些模块,您可以使用类图,也可以将相关的类放入一个包中。然后,您可以在模块之间绘制高级依赖关系。这将为您提供有关您的项目的高级和详细级别的信息。

于 2012-12-05T15:19:35.893 回答
0

为了解决一大堆混乱,我首先要确定应用程序的不同主题是什么。例如,在无人驾驶汽车中,您可能有图像处理、异物检测与避让、道路获取与跟踪、速度调节、导航等。如果您在同一个模块中混合您的主题,您就有麻烦了。这些主题中的每一个都可以是一个名称空间。然后,将您的类/模块划分为适当的名称空间。弄清楚您的类如何处理各种用例,并根据需要添加/删除类。然后遵循“清洁代码”一书的规则并保持您的方法简单。

架构中的 4+1 视图表明没有描述整个系统的单一视图。4+1 讨论使用逻辑、开发、过程、物理和场景视图。所有这些都有 UML 对应物。

于 2013-04-25T20:43:20.853 回答
0

模型驱动开发允许您为您的软件带来质量保证。首先,无论多么昂贵或耗时,都应该针对所有项目进行,尤其是在项目规模扩大时。我对我们自己的项目也有同样的问题,该项目首先在没有任何模型的情况下开发。所以要有耐心。

实现系统实现的第一步,就是描述系统应该做什么,什么是可观察的,如何与用户和其他系统交互。用例图是您回答这些问题的方法。

然后你可能会考虑你可能需要多少个课程。在您的情况下,由于您已经编写了某些部分,因此考虑如何将主要功能解耦为许多小类并建立它们之间的关系。那里你需要类图。

这两个是最常见的符号,您至少必须对您的整体结构有一个概述。

如果你现在有很多类,那么系统的行为如何?数据和工作流程的顺序或顺序如何?在您最重要的场景中,应该按哪个顺序执行什么样的调用才能完成任务?这就是您需要序列图或协作图的原因。

我会说从这些开始,然后继续使用更多模型

于 2013-04-24T07:33:31.797 回答
0

作为对评论“但是你将如何向某人说明应用程序整体如何工作?”的回答:对于大型应用程序,你不能。MsWord 总体上是如何工作的?

为了展示应用程序中的各个部分是如何工作的,您可以使用用例。从那时起,您可以根据需要使用类图(结构)、序列图(程序流)和状态图(状态)来展示每个用例的设计。您的代码应反映这些图表

于 2012-12-05T15:50:51.850 回答