我只是想知道你们在开始一个新项目时遵循的步骤是什么?您是否曾经创建过 UML 图、SRS 或任何设计文档?我正在开始一个新项目,并希望就所有这些做法获得一些专家建议。我知道编码,但我从未尝试过 UML 和其他东西。
任何帮助都会很棒
通常,我的进程运行如下:
我不认为在逻辑阶段“过度设计”有太多意义,因为从业务和技术/设计的角度来看,需求会随着项目的进展而变化,而这种变化是你无法总是提前预料到的。
您可能希望在项目生命周期的早期考虑的一件事是创建领域模型。作为一名程序员,你会说计算机术语很舒服,但你可能不会说客户的专业术语。领域模型是您学习如何与客户交谈的一种方式,以便他们了解您并且您也了解他们。它可以采用 UML 类图的形式,也可以是 Word 文档中的词汇表,只要您觉得合适就行。
在概念阶段之后,我喜欢创建的第一件事是定义列表。这将通知我的变量、类和函数名称,并让我能够谈论它们。如果可以选择,我通常会选择 psudocode 类而不是 UML,因为在您编写时更容易调整。另一个我喜欢尽快做的想法是创建一个界面模型。这可能是一个 GUI、CLI 或 API,具体取决于项目,但让我对我的代码需要达到的水平有一个明确的认识。
我从来没有真正关心过 UML(反正不是“真正的”UML)。当我开始一个项目时,我对一些事情感兴趣:
对于 1,您可以使用 UML 用例图。我通常使用自己的伪用例图。从中您可以确定谁将使用您的软件以及以何种方式使用您的软件。不同的用户会以不同的方式使用该软件。这很有用,因为它 a) 帮助您确定目标用户是谁,b) 帮助您确定 2 所需的功能。此外,如果您知道谁将使用您的软件以及如何使用,您可以专门为这些用户调整它。
对于 2,我通常只是列出一个大清单。有时将列表拆分为类别和/或优先级很有用。这通常会成为我的“TODO”列表。
对于 3,我画了一些类似于 UML 类图的东西,除了没有 UML 注释。基本上每个类/模块/组件都有自己的盒子,它们用线条链接在一起。这向我展示了系统中将存在哪些组件以及它们如何相关/通信等。我可能会为每个项目绘制不同的内容,并且有些会比其他项目获得更多细节,这取决于我当时觉得我需要什么。
在此之后,我喜欢通过编写简单的一次性模型/原型来原型化核心概念。这会给我一些关于它如何工作,如何实现它以及如何不实现它的想法(我经常以“错误的方式”做原型,如果我没有写一个我不会知道) . 这里重要的是代码没有在真实版本中使用。