architecture - 什么取代了 SADT?

标签 architecture analysis case-tools

在一切都变成“企业”之前,有一段时间,一切都是“结构化”的。大约 20 年前,结构化分析和结构化设计 (SADT) 以及 CASE 工具有望拯救许多 IT 专业人员。

虽然当时的炒作 - 就像任何其他炒作一样 - 来来去去,我很惊讶地看到几乎没有 SADT 的痕迹。事实上,我相信值得这样的命运并没有那么糟糕。我特别喜欢的是它强调系统的功能方面,即您将清楚地了解系统产生什么(您不能使用 SADT 指定只写系统),这种范式在函数式编程中也无处不在。

我的问题是:

  • SADT 的现代等价物是什么?
  • 是否有 UML 绘图风格(上下文图除外)提供类似的抽象级别和可比的细化可能性。
  • 你知道为什么世界放弃了SADT吗?
  • 您是否知道任何允许执行 SADT 的 CASE 工具,这些工具不仅仅是绘图工具,例如允许带有一致性检查的分层图
  • 最佳答案

    “几乎看不到 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/

    相关文章:

    database - 在 Hibernate 中记录测试数据

    iOS客户端服务器方法

    java - 是否有任何工具可以检测代码中的架构和设计模式?

    algorithm - 循环迭代分析第 2 部分

    c++ - 如何修复采用类成员相对顺序的奇怪 C++ 代码

    agile - 用于收集与设计重叠的快速而肮脏的需求的工具和技术

    java - 辩论 - 从数据库层还是Java层调用Web服务?

    algorithm - 分析递归算法

    python - 通过超几何分析对 p 值进行 Bonferroni 校正