在一切都变成“企业”之前,有一段时间,一切都是“结构化”的。大约 20 年前,结构化分析和结构化设计 (SADT) 以及 CASE 工具有望拯救许多 IT 专业人员。
虽然当时的炒作 - 就像任何其他炒作一样 - 来来去去,我很惊讶地看到几乎没有 SADT 的痕迹。事实上,我相信值得这样的命运并没有那么糟糕。我特别喜欢的是它强调系统的功能方面,即您将清楚地了解系统产生什么(您不能使用 SADT 指定只写系统),这种范式在函数式编程中也无处不在。
我的问题是:
最佳答案
“几乎看不到 SADT 的痕迹” :关键字是“虚拟”。我们的“现代”概念,如“ 内聚”和“ 耦合”主要来自SADT [Edward Yourdon-Larry L.Contantine]。甚至从现代软件文献到旧的有趣的引用文献SADT 文献。例如,肯特贝克在他的实现模式书的引用书目部分说:
Edward Yourdan and Larry Constantine,Structured Design,...,1979 .
This books presents the equivalent of the laws of physics for software design and grounds the discussion on the economics of development.[ Kent Beck, Implementation Patterns]
尤尔丹和康斯坦丁在那本书中说:
Structured design is the art of designing the components of a system and interrelationship between those components in the best possible way.
梅利尔·佩奇-琼斯说:
- Structured Design uses tools, especially graphic ones, to render systems readily understandable. [ Meilir Page-Jones- Practical Guide to Structured Systems Design]
今天在软件开发中,我们的目标仍然相同...... :-)
为什么世界放弃了SADT?
好吧,我们比时尚行业有更多的变化:-)。
我们今天构建的系统和约束与二十多年前不同。我认为当我们开始开发更多“面向数据”的系统时,功能复杂性不太受关注,结构图 - 数据流图等 SADT 实践“失去”了某些系统的效率......然后面向对象风格有了自己的方法论和表示法。
但是实体关系(ER)图和数据字典的概念仍然存在。
有关 Yourdon 的有趣观点,请查看他的博客:Watching “agile”...
有趣的是,Yourdon 仍在更新结构化设计 Material 。检查:
Modern Structured Analysis
什么取代了 SADT?
嗯...对于面向对象的系统...
假设我们有责任驱动设计[其中凝聚力和耦合仍然很重要],以便在我们的系统中找到最佳组件及其互连。
而 UML 通常为我们提供了很好的可视化思维工具来查找这些组件和关系。
现在我们明白软件开发是实验事件。
我们应该随着进化的需求进行迭代和增量开发。
似乎没有什么神奇的“方法”可以像成功的“收据”一样被遵循。
一般建模:
图表模型只是思考工具。
It is not realistic to design whole system on paper with UML or other notations.Actually our real models are "source code" which can be executed and tested.
有一些尝试,如 MDA(模型驱动架构),它试图自动从模型中生成可执行代码:所以我们只需要对系统进行建模,然后一切都会自动生成。但我们意识到这也不现实。目前这只是一些工具供应商出售的梦想。现在我们更多地关注领域特定语言,它更加实用和现实。
关于architecture - 什么取代了 SADT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16316399/