代码之家  ›  专栏  ›  技术社区  ›  Nick

您为ASP.NET应用程序创建了什么UML图?

  •  10
  • Nick  · 技术社区  · 6 年前

    我在一家中型公司担任高级开发人员,并致力于开发规模相当大的项目(至少1年)。这里的大多数架构师都认为创建UML图并不能证明所涉及的时间是合理的(尽管我们总是有一个ERD和一些非正式的流程图,类似于所有项目的流程图)。

    我希望至少为我所从事的项目创建UML图。根据我的快速研究,似乎有以下几点:

    1. 用于创建逻辑模型-对象角色模型(ORM
    2. 用于创建物理模型-组件、类、序列、活动
    3. 对于数据库模型-erd

    问题:

    1. 您在公司中创建了什么UML图?
    2. MS Visio是否能够创建上述所有图表?
    3. 是否根据应用程序的类型选择UML图? 发达的?
    4 回复  |  直到 15 年前
        1
  •  7
  •   Brandon E Taylor    15 年前

    #1您在公司中创建了什么UML图?

    我们使用由UML定义的整个图表集。我们特别大量地使用用例图、类图、序列图和状态机图。

    #2 MS Visio是否能够创建上述所有图表?

    确实如此,但我们通常不使用Visio,因为有许多工具更适合该工作。就我个人而言,我喜欢那些能让我很快地创建图表的工具,而不需要太多的繁琐和繁琐。那些强制遵循UML规范的工具(或者更糟的是,工具供应商对规范的解释)让我恼火。我发现其中一个特别有用的工具是PaceStar的 UML Diagrammer .

    #3.是否根据正在开发的应用程序类型选择UML图?

    UML可以用来描述任何应用程序的各个方面。然而,应用程序的性质将影响您选择使用的图表的类型和数量。

    这里的大多数架构师都认为创建UML图并不能证明所涉及的时间是合理的。

    UML图不需要花费太多时间来创建。关键是通过开发“刚好足够好”的模型来满足您的需求,从而避免降低回报。正如我上面提到的,我将我的建模工作集中在捕获系统的显著方面,而不是严格遵守UML规范。此外,我毫不犹豫地使用非UML图(或简单的文本)来建模系统的方面,如果这样做,我可以更好地交流感兴趣的系统方面。

        2
  •  4
  •   Jimbo    15 年前

    自从90年代发明UML以来,我就一直使用它,并且在大公司和小公司中都使用它来实现各种各样的目的。我将UML用于两个基本目的:作为 思考的记事本 (有时我不知道我的想法,直到我看到我画的东西;)作为一个 记录和交流设计的方式 . 这里是我如何使用它和一些经验法则。

    我使用UML 其他工具不足时 用于可视化/建模。因此,如果您使用的是SQLServer数据库,则可以使用内置的设计图,并将其打印并粘贴到文档中。这里不需要UML。

    在考虑设计问题时,我经常从一个墙到墙的白板开始,一旦设计明确了,我就转到UML图(或者从监视器到墙来回移动)。

    JavaScript和Ajax开发 . 工具和可视化支持很弱。我使用UML来思考和展示复杂JavaScript应用程序的高级设计。(如果您正在研究Java应用程序,您可以使用构建在大多数Java IDE中的工具来可视化代码。另一方面,如果您正在开发一个javascript应用程序或拥有糟糕的工具,这就很难做到,因此UML可以填补空白。)

    基于Web的应用程序的信息架构和导航 . 我使用UML在网页上显示网页、它们的关系和信息组件。同样的情况也适用于任何类型的GUI中的屏幕(它以前被称为用户体验模型)。我在基于Web的应用程序中使用REST URL。所以我注释页面对象以显示实际的REST URL。这样,我在整理页面的同时,也在思考其他部分。根据我的经验,这是最有用和使用不足的图表类型之一,可能是因为它不标准。它捕获了信息架构(您的域模型作为页面/屏幕集合的体验)和作为一组可导航视图的应用程序概念。通常,最接近用户的模型与应用程序域模型或数据库模型不匹配。有了这个模型,问题就迎刃而解了。我曾经在每个人都有自己的应用程序模型的项目上工作过:可用性人员、开发人员、数据库人员、企业架构师。但是没有人有正确的模型,用户体验模型充实了他们没有看到的东西。

    基于代码的模型 . 我用Java和逆向工程的代码库和创建图表来记录设计。但是,因为Java工具是如此成熟,所以我很少需要逆向工程来理解代码。我使用的是便宜的企业架构师,它允许您对新代码进行反向工程,并将其与基于旧代码的UML图同步。

    我把所有这些不同的图表放在一个项目中,它描述了 将系统设计为一组视图 . 我还将我的UML项目导出到XML,并将它们存储在我的版本控制系统中。图表发布在内部网上并插入到文档中。

    组件图,从不。 如果我想描述组件,我只需要使用一个类图,并用一个模板对其进行注释:页面、视图、表——来表示我所描述的对象的类型。这对我来说很简单。我用 刻板印象严重 . 它们允许我基本上创建自己的图表类型,但仍然坚持使用大部分类图。

    我用 序列图和活动图很少 但是他们可以 不可或缺、强大 有时。在设计阶段处理对象交互时的序列图。交互越复杂,就越需要序列图。(当序列图太复杂时,这个事实可能表明您需要简化您的设计。)我发现序列图在对我继承的新项目进行反向工程时最有用,并且需要快速跟上进度。我发现它们能给我在理解系统方面带来竞争优势。

    最后,我倾向于 准物理模型 . 基于要编写的实际代码或实际系统的模型,但出于通信目的进行了一定程度的抽象和调整。在建筑宇航员和复杂的基于代码的模型之间的某个地方,这些模型比您的IDE的大纲视图有太多的细节和价值。

    所以总结一下。当需要更好的可视化和其他工具出现问题时,我使用UML来思考和记录和交流设计。

        3
  •  2
  •   Keith Adler    15 年前

    序言

    我认为UML用例图对于映射应用程序的整体用户和功能区域非常有用。从技术上讲,这是一个业务分析师的工作,但是,如果一个不存在或不存在这种详细程度,这是一个花费很少时间来完成的练习,并且具有巨大的价值,可以让您对解决方案有一个大致的了解。

    序列图在ASP.NET开发中也非常有用。它使得用例图中高层视图的组件易于分解和实现。

    1.您在公司中创建了什么UML图?

    一个也没有。UML不是BAS、开发团队等了解我目前工作的地方。然而,考虑到我们所做的开发类型:快速和中等规模的战术解决方案,价值确实不存在。

    2.MS Visio是否能够创建上述所有图表?

    对。 http://softwarestencils.com/uml/index.html

    我建议您考虑一个允许UML->代码生成的工具 http://www.visual-paradigm.com/

    3.是否根据正在开发的应用程序类型选择UML图?

    这是一种混合。UML是一组工具,可以以适合用户的任何方式使用。不同的图表类型(行为、结构和交互)及其子类型具有不同的用途。经过多年的UML处理(从90年代后期开始),我几乎只看到类、用例和序列图中的值。除此之外,它只是语义过载,在我参与的项目中几乎没有价值。

        4
  •  2
  •   Chris Van Opstal    15 年前

    在对象模型图之后,我发现 use case 图表是最有用的。