UML中的结构和行为

UML中的结构和行为,uml,project-structure,behavior,Uml,Project Structure,Behavior,我对使用UML的模型的结构和行为以及两者之间的关系有一些疑问: 您是否发现UML在结构和行为之间的关系的规范或理解方面存在任何限制? 我想知道你对如何使用UML优化结构和行为之间的关系有何实际想法。 你知道有什么UML工具可以帮助你更好地理解这种关系或者更容易地表达它吗? 谢谢 是的: 序列图在高层次上是可读的,它显示了一个事务如何涉及几个组件;但是它不好,不能在详细的层次上阅读,它展示了一个事务如何涉及几十个方法方法a调用方法B,方法B从方法D和E获取数据,然后调用方法F,等等 查看类图,您可

我对使用UML的模型的结构和行为以及两者之间的关系有一些疑问:

您是否发现UML在结构和行为之间的关系的规范或理解方面存在任何限制? 我想知道你对如何使用UML优化结构和行为之间的关系有何实际想法。 你知道有什么UML工具可以帮助你更好地理解这种关系或者更容易地表达它吗? 谢谢

是的:

序列图在高层次上是可读的,它显示了一个事务如何涉及几个组件;但是它不好,不能在详细的层次上阅读,它展示了一个事务如何涉及几十个方法方法a调用方法B,方法B从方法D和E获取数据,然后调用方法F,等等

查看类图,您可能会看到一个包含多个子类的基于类;这几乎没有告诉你类的行为,它只告诉你它们可能有一些共同的行为,或者至少有一个共同的API,加上每个子类特有的一些单独的行为

这是个大问题。一个简单的答案是,在对象上附加文本注释:没有描述性文本,图表是不够的

不,我真的不知道;UML工具可以帮助您创建UML图并从图中生成代码,但是如何使用它取决于您。在1994这本书中有一个简洁的产品,它是一个可执行的模型,也就是说,模型本身有行为,但是我知道没有一个UML工具是这样的。据我所知,最接近的是能够在模型和代码之间往返,即从模型生成代码,从代码生成模型


UML允许您指定方法的签名,并将方法分组到类中,但它完全没有说明您使用什么代码作为实现。如果这就是你所说的行为,我认为UML根本没有在类级别解决它

在UI级别更糟糕。我对UML的印象是,它不足以指定UI

我认为将所有内容嵌入UML所需的努力大于或等于对应用程序进行编码,UML工具的额外负担是糟糕的IDE,并且无法以单元测试的方式证明UML的正确性


UML是超卖的,IMO。我认为它是开发者之间非正式交流的一种方便的符号。它从来没有也永远不会是面向对象的工程图。

听起来像是一个家庭作业问题。我可以告诉你关于UML的一切

UML的局限性与任何形式的通信相同。你的语言越简单,你能交流的东西就越少,你的交流就会越清晰。方形或圆形表示结构,直线表示关系,箭头表示移动或流动。您可以通过定义其他属性(如方向、粗体、颜色、数字计数、不同形状)的含义来增强这一点。您可以合并多媒体层,如音频或视频、运动、工具提示,但现在我们不再讨论UML


我最喜欢的UML工具是白板和一些干擦除标记。

关于UML对Melcoletz的有用性,我认为事情已经改变了

在VisualStudio2010中,我可以定义一个关联关系,它将生成复合类。我可以指定多重性和类限定符。我还可以从模型生成类。 目前,我正试图可视化地建模系统的各个阶段,以便可视化地定义状态机对象的方法。这就是我整合结构和行为的尝试。查看我的博客,看看我进展如何。 类分析器直观地表示类对象的行为。取消了限制

我认为答案是将您的开发方法转向MDA。您将生成更多的类,但回报是在可管理性和可重用性方面,在模板化您的工作

我仍在研究我的模型,但我发现VS2010有望成为管理开发过程的好工具。我还没有调查用户界面建模,但已经听到了谣言。我可能完全错了,但我认为,通过使用Lightswitch,我也可以对UI建模


在某些环境中,例如医疗设备,您可能需要记录所需功能是如何实现的。在这种情况下,UML可能是需求和代码之间有用的文档工具,往返UML是确保模型与实际代码同步的好方法。是的,但这仍然不能将方法的内容放入UML中。您只需要更新类和方法签名。事后往返只是一种文档辅助。真正的工作是编写和调试软件。我仍然没有看到UML为您完成了什么
是的,我还没有发现UML对编写方法实现有用:将方法实现作为源代码编写更快、更紧凑。尽管如此,UML还是很好地将细节层次可视化:例如,在源代码中,我通常一次最多只能看到一个类,因此UML在显示体系结构和类之间的各种相互关系方面可能比源代码更好。我同意,但我认为它是小规模的东西,可能有十几个类,您可以轻松地安装在8.5x11纸张上。一张纸或白板,没有工具和所有花哨的东西,也可以。谁真正使用序列图?状态图?对活动图?是的,有游泳道。但除此之外,你将很难说服我。你可以有十几个类,而不是只有十几个类,你可以有十几个程序集或组件,每个程序集或组件都有十几个类:因此,是多层次的,能够深入到图上的任何一个对象,以查看该对象的子图中的更多细节。我认为它很有用,接近人们思考和交流的方式有很多类型的图表,其中至少有一种能够表达你想要表达的东西,尽管人们有这样的设计思想,但人们通常不会费心将它们作为可维护的UML捕获到永久性文档中。谢谢,我熟悉UML,并在我的项目中使用它。事实上,我希望看到从其他人的经验中得出的一些实际限制,而不仅仅是wiki提供的理论