在一切都成为“企业”之前,有一段时间,一切都是“结构化”的。大约20年前,结构化分析和结构化设计(SADT)以及CASE工具承诺为许多IT专业人员提供救助。
虽然当时的炒作 - 就像任何其他炒作一样 - 来了又走了,我惊讶地看到几乎没有SADT的痕迹了。事实上,我认为值得这样的命运并不是 。我特别喜欢它,它强调系统的功能方面,即你将清楚地了解系统产生什么(你不能指定只有SADT的只写系统),这是一个范例,它是在函数式编程中也是无处不在。
我的问题是:
答案 0 :(得分:7)
“几乎看不到SADT的痕迹”:关键字是“虚拟”。我们的“现代”概念,如“凝聚力”和“耦合”主要来自SADT [Edward Yourdon-Larry L.Contantine]。甚至还有来自现代软件文献的有趣参考资料旧的SADT文献。例如,Kent Beck在他的 Implementation Patters 一书的参考书目部分中说:
Edward Yourdan和Larry Constantine,结构设计,......,1979。
本书介绍了软件的物理定律 设计并讨论发展经济学的讨论。[ Kent Beck,实施模式]
在那本书中,雅丹和康斯坦丁说:
结构化设计是设计系统组件的艺术 这些组成部分之间的相互关系是最好的 方式。
Meilir Page-Jones说:
- 结构化设计使用工具,尤其是图形工具,使系统易于理解。 [Meilir Page-Jones-实用指南 结构化系统设计]
今天在软件开发方面,我们的目标仍然是......: - )
为什么世界放弃了SADT?
嗯,我们有比时尚界更多的变化:-)。
我们今天构建的系统和约束条件与二十多年前不同。我认为当我们开始开发更多“面向数据”的系统时,功能复杂性不那么令人担忧,SADT的结构图 - 数据流图这样的实践“失去了”它们对某些系统的效率。然后,面向对象的风格有了它自己的方法论和陈述。
但实体关系(ER)图和数据字典的概念仍然存在。
有关Yourdon的一个有趣观点,请查看他的博客:Watching “agile”...
有趣的是,Yourdon仍在对结构化设计材料进行更新。检查时间: Modern Structured Analysis
什么取代了SADT?
嗯......对于面向对象的系统..
假设我们有责任驱动设计[其中内聚和耦合仍然很重要],以便在我们的系统中找到最佳组件及其互连。 UML通常为我们提供了很好的视觉思维工具,可用于查找这些组件和关系。
现在我们知道软件开发是实验活动。 我们应该根据进化要求进行迭代和渐进式开发。
似乎没有神奇的“方法”,可以像成功的“收据”一样遵循。
一般建模:
图表 - 模型只是思考工具。
用UML或其他方法在纸上设计整个系统是不现实的 实际上,我们的真实模型是“源代码”,可以是 执行和测试。
有一些尝试,如MDA(模型驱动架构)尝试自动从模型生成可执行代码:所以我们只需要对系统建模,然后一切都将自动生成。但我们意识到这也是不现实的。现在,这只是一些工具供应商的梦想。现在我们更关注领域特定语言,这更加实用和现实。
答案 1 :(得分:0)
我使用C ++与SADT合作开发了一个新的气象卫星。我发现它对算法的功能方面(如问题中所述)的描述非常有价值。尝试使用搜索字词:“GOES-R SADT”查找:http://www.goes-r.gov/downloads/GUC-7/poster-sessions/4-06_Ivan_Pathfinder.pdf和https://ams.confex.com/ams/91Annual/webprogram/Manuscript/Paper184496/SADT-UML-Extended-Abstract%28Submitted-20110223%29.pdf