我最近一直在创建越来越多的系统,并且我发现在开始项目之前我所做的计划和准备工作越来越多。
我确定我将使用哪些库或框架、哪些语言、网站如何流动的基本架构等。
我还听说过其他设计过程,例如悬挂聚苯乙烯泡沫塑料球以显示课程的位置以及它们之间的关系,这是我从未听说过的过程,也不知道它是如何工作的。
是否有任何软件可以帮助完成此过程?在设计新项目时,是否有任何指导方针或步骤,或者您是否有一组推荐的步骤或指导方针?
我最近一直在创建越来越多的系统,并且我发现在开始项目之前我所做的计划和准备工作越来越多。
我确定我将使用哪些库或框架、哪些语言、网站如何流动的基本架构等。
我还听说过其他设计过程,例如悬挂聚苯乙烯泡沫塑料球以显示课程的位置以及它们之间的关系,这是我从未听说过的过程,也不知道它是如何工作的。
是否有任何软件可以帮助完成此过程?在设计新项目时,是否有任何指导方针或步骤,或者您是否有一组推荐的步骤或指导方针?
所以你基本上是在做解决方案架构。没有任何我知道的方法论——至少没有一个在四页或更短的时间内简洁地描述(我有兴趣提出的东西)。
要回答您的问题:
1 - 了解约束
显而易见的是了解您要解决的问题和上下文。
你可能自由自在,或者你可能受到现有标准的限制——在我工作的地方(在政府机构中),我们有很多不同的技术和系统,当我们在看其他东西时有一个优先顺序;我们喜欢的技术和我们试图从中成长的技术。
Zachman 是一个企业架构框架;你可能会觉得它很有趣,但我怀疑它在解决方案层面会有很大的相关性,特别是。TOGAF 是另一个。
2 - 视图
关于 TOGAF(和 Zachman)的事情是它具有不同“视图”的概念,例如:
您首先要仔细考虑哪些视图与您正在规划/架构的系统相关。随着项目/系统的发展,您需要牢记这些;他们将帮助指导重大决策。我也喜欢这种方法/思维方式,因为它的工作原理是“分而治之”——把一个大的谜题分成更小的谜题。
3 - 建模
我以前没有听说过使用泡沫塑料球,但是以触觉方式建模关系的想法听起来很吸引人——尽管如果它是一个大系统,你可能需要一个非常大的房间:)
白板是我最喜欢探索类如何关联(以及任何东西,真的)的方式。我强烈建议随身携带数码相机或内置相机的手机;我使用后者,根据需要拍摄白板照片,然后在会议结束后将它们与我的计算机同步,并将副本通过电子邮件发送给与会者。捕获信息非常容易,并且使您看起来也很专业。
UML 非常有用,但您可能需要根据您的受众选择使用其中的哪些部分——这取决于您希望以多正式的方式看待事物。
在建模工具中对系统进行形式化建模(并使用形式化的 UML,而不是仅仅使用图表,比如 Visio)也非常有用。如果你不熟悉这样做,你会发现你必须经历一个痛苦的门槛,但在以下情况下通常是值得的:
4 - 项目方法
我是敏捷 / SCRUM 的忠实粉丝。我正在研究将敏捷原则应用于 sln 架构的方法——但我还没有任何东西。
去年我参加了 Tech-Ed 的一个很好的会议(ARC202 与 Kevin Francis 一起挑战建筑师的角色)——我在这里写了一篇文章。
这是一场精彩的会议——这是我第一次看到有人解释(解决方案?)架构师应该如何参与一个项目——无论采用何种方法。Kevins 是敏捷的倡导者——他的演讲集中在这一点上,这使得它变得两倍好:如何适应架构和敏捷。
有些人喜欢看板。
其他人发现UML很有用。
架构专家使用Zachmann 框架。
我认为大多数人使用这些技术的组合。灵活很重要——每个项目都是不同的。不断提高您的管理技能和流程,您会发现最适合您的大多数项目的工作流程。