有哪些方法、流程和工具可用于设计和建模非面向对象的应用程序?
我非常熟悉用于建模面向对象应用程序的 UML。 然而,我不熟悉任何专门为设计和/或建模程序、功能或任何其他范例而设计的东西。 如何设计或建模用非面向对象语言编写的应用程序?
I'm quite familiar with UML for modeling object-oriented applications. However, I'm not familiar with anything specifically designed for designing and/or modeling procedural, functional, or any other paradigm. How do you design or model applications written in a non-object-oriented language?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
哦,天哪,过去的爆炸。
我们曾经使用流程图,伪代码,数据流程图、结构图、Hierarchy-IPO,“衣架图”(实际上是流程图的变体),Nassi-Schneiderman 图。 除其他外。
哦,SADT 是另一种。
Oh golly, there's a blast from the past.
We used to use flowcharts, pseudocode, data flow diagrams, structure charts, Hierarchy-IPO, "coathanger charts" (which are really a variant of flowcharts), Nassi-Schneiderman diagrams. Among others.
Oh, SADT is another one.
SSADM - 我想我的认证仍然在某个地方的盒子里......
SSADM - I think I've still got my certification in a box somewhere...
UML 也可用于对非 OO 语言进行建模。 我使用 UML 来对任何事物进行建模。 公平地说,UML 的核心是面向对象的,但许多行为、实例级别和不太常见的结构类型适用于非面向对象语言。 然而,UML 用于 OO 中的设计而不是实现,您的构建块/对象只是不同的、模块或诸如此类的。
Charlie Martin 提到的许多图表类型都有类似的 UML 表示。 更好的是,它是一个模型,而不仅仅是一个图表/视图。
示例:LISP 不是基于 OO 的。 因此,为函数类创建一个关键字或立体类型。 属性是参数,因为它没有状态。 这并不完美,但却是最平易近人的。
示例:COBOL/JCL 不是基于 OO 的。 让每个 PACBASE 包成为一个组件,并具有结构组件作为您的 COBOL。 工件可以是您的 JCL。
事实上,UML 是广泛且松散定义的,以便您受益并重新调整 UML 部分的用途。 您始终可以使用 UML 配置文件将其形式化。 在我工作的地方,这个问题已经成为讨论的焦点有一段时间了。 大型机程序员并不认为 OO 设计和 OO-UML 相关,但这只是部分正确,因为核心或大多数人对其的了解程度只是针对类/结构内容和用例,而这些都是以 OO 为中心的。
UML can be used for modeling non-OO languages as well. I use UML for modeling just about anything. To be fair the core of UML is OO focused, but much of the behavior, instance level, and less common structural types work for non-OO languages. However, UML is for design in OO not implementation, your building blocks/objects are just different, modules, or whatnot.
Many of the diagram types mentioned by Charlie Martin have analogous UML representations. Even better it is a model not just a diagram/view.
Example: LISP is not OO based. So create a keyword or stereo type for classes that is function. The attributes are the arguments as it has no state. This is not perfect, but it is the most approachable.
Example: COBOL/JCL is not OO based. Have each PACBASE package be a component and have structural components as your COBOL. Artifacts can be your JCL.
Let fact that UML is broad and loosely defined to your benefit and re-purpose UML parts. You can always formalize it with a UML profile. Where I work this has been a point of discussion for some time. Mainframe programmers do not see OO design and OO-UML as relevant, but it is only partially true in that the core or how far most people go with it is just to the class/structural stuff and use cases, which is OO focused.