标签: uml

你是如何学习UML的?

我将开始学习和使用UML.

我需要知道你对我的建议是什么?你认为有效学习的最佳方法是什么?

谢谢

uml

21
推荐指数
3
解决办法
1万
查看次数

2010年3月的最佳Eclipse CDT(C++)体验

我是下个季度将使用C++的学生.我非常喜欢使用Eclipse的Galileo版本和Java,我想继续使用Eclipse进行C++开发.

我现在正在试验Eclipse上的C++开发.我正在运行带有CDT 6.02的Eclipse 3.5 SR2.我的操作系统是Windows 7,我安装了MinGW-5.1.6.安装了GDB 6.3版.

我有它编译和单步执行代码.然而,我怀疑我只是在爬行并且尚未"将汽车从一档换出".我花了大约一个星期的时间在网上闲聊,以了解构成什么和"最佳"的C++ Eclipse体验.特别是,我对UML和单元测试的往返感兴趣.

我对网络的探索成了一个考古挖掘.我发现了2003年的方法文章,替代MinGW发行版,插件参考,死链接,插件的更多参考,关于gdb错误的热情讨论,以及对插件的更多参考.

我不再知道什么可能构成最佳的C++ Eclipse环境.社区成员是否愿意权衡他们认为当前使用Eclipse进行C++开发的最佳体验?

c++ eclipse uml unit-testing eclipse-cdt

20
推荐指数
1
解决办法
3362
查看次数

UML图实际上很漂亮吗?

我正在寻找一种可以产生漂亮外观的图表软件.它不需要支持UML的所有(甚至更多),不需要具有代码工程功能或任何东西,它只需要产生视觉上有趣的输出.

以下是我认为丑陋/不够好的几个产品样本:具有默认UML模板的Visio(没有找到更好看的模板),Enterprise Architect,Dia,ArgoUML和许多其他"专业"UML工具.

我考虑过几个视觉上引人注目的工具(但发现问题):

  • Visual Studio类图 - 仅适用于.NET类,但输出比UML工具通常产生的要好几英里
  • NClass - 类似于VS的类图,但我无法在任何地方找到"漂亮"的蓝色皮肤
  • yuml.me - 非常好但缺少一些高级布局选项.我不得不说,我发现他们的风格几乎是高级图表的理想选择 - 它们看起来很粗略,这很好.
  • Balsamiq - 我认为Joel将此用于hginit.com并且我喜欢它.但是,它不适合创建软件图表,因此我可以想象这将是相当多的工作
  • MS Word实际上有相当不错的图形引擎,但我宁愿把它留作最后的选择

我会感激任何好的提示.

uml diagramming

20
推荐指数
4
解决办法
8102
查看次数

如何快速了解任何产品的设计和代码流程?

我已经切换到一家新公司,我正在开发一个拥有巨大代码库但没有文档的产品.我想快速熟悉产品的设计和代码流程,以便尽快成为高效的会员

慢慢地,稳定地了解代码,但应该是最好和最聪明的方法应该接近代码库,以便他能够快速理解代码并开始交付?

注意:我尝试使用Star UML,并尝试对类图进行逆向工程,以便我可能对产品内部设计有一个大概的想法,但却失败了.

编辑:问题不在于了解产品的作用,而是如何设计内部结构.

使用断点修复错误和调试确实提供了实现此目的的一种方法,但我在寻找是否有更快的方法来实现这一点

在凯斯的话中:

这可能适用于某些代码库,但总的来说,我认为这是一个坏主意.你往往过于专注于细节,而一开始你想要了解大局:类是什么,通信模式是什么,等等.另外,如果你有一个分布式应用程序(客户端 - 服务器,n层)等等,或者需要很长时间才能运行它的代码可能不适合通过调试器运行它

c++ uml

20
推荐指数
3
解决办法
6210
查看次数

UML关联与组合和细节级别

实际上,做一些业余的UML问题!在创建UML图来模拟某些域概念时,您遇到了一个"保存"某个有关另一个概念的信息的域概念,是否更好地保存对该实体的戳记/引用或将整个实体保存在模型本身中?请记住,这与创建一个简单的高级模型有关 - 我确信在实现阶段,事情会略有不同.

例如,下面两个模型中的哪一个实际上是正确的?第一个有一个组合关系,FlightBooking持有整个Flight.在第二个中,FlightBooking只是对Flight的引用.

http://imageshack.us/m/96/2227/flightiu.png

其次,在创建高级UML图建模领域概念时,您真正想要了解多少细节?例如,在下图中,航班可以将有关原点/目的地的详细信息保存为字符串,或者我可以为这些概念建模单独的类并创建组合关系.哪两个是可取的?

http://imageshack.us/m/23/3395/flight2s.png

另外,另外一件事,当上面的模型将飞行"保持"原始/目的地作为另一个类而不是字符串时,这两种方式中的哪一种是正确的建模方法?我很困惑什么时候展示assosciation和什么时候显示组成.

uml composition relationship

20
推荐指数
1
解决办法
2万
查看次数

用于Qt应用程序的UML工具

有谁知道一个可靠的UML工具,用于从Qt应用程序生成类图?

qt uml class-diagram tool-uml

20
推荐指数
2
解决办法
2万
查看次数

用例概括与扩展

UML用例图允许两种看似等效的方式来表明给定的用例可能以几种不同的方式实现,即用例概括而不是用例扩展.我已经看到以下基本示例使用相同频率的任一方法建模,有时在单个源中.

用例泛化图像

用例扩展图像

在我看来,扩展是一种比一般化更弱的关系,因为基本情况的专用用例的直接替换必须是概括的,但不一定是扩展.

在我看来,泛化意味着需要多态实现,而扩展意味着要使用一些分支结构.

void makePayment(const PaymentDetails* pd)
{
   pd->pay();
}
Run Code Online (Sandbox Code Playgroud)

而不是

void makePayment(const PaymentDetails* pd)
{
   switch(pd->type)
   {
       case EFT:
                payViaEFT(pd); 
                break;
       case PAYPAL:
                payViaPayPal(pd); 
                break;
       case CREDITCARD:
                payViaCreditCard(pd); 
                break;
   }
}
Run Code Online (Sandbox Code Playgroud)

针对此类实现特定问题的建模是否过早的用例阶段?有更合适的UML图表.关于两者中的哪一个使用是否存在硬性规定?如果是,那么它是什么?

uml use-case

20
推荐指数
3
解决办法
2万
查看次数

使用区域循环UML活动图

我在UML活动图中建模循环.它适用于简单的条件节点(图1),但我正在寻找一种更具表现力的方式来强调循环语义.所以我来到这里那里展示的"地区"或"可中断地区" ,但我找不到很多令人满意的例子.

我的例子是一个处理给定列表的消息的函数.一旦找到第一个有效消息,循环就会中止,然后处理消息并且函数返回true.否则,它返回false(请不要对意义或废话进行评论,这只是为了样本).

图1:使用一个好的旧活动图条件节点.顺便说一句,遵循箭头的控制流更容易,但没有"循环",只有"如果".

图2:

  • 使用中断边缘(正)退出条件是否正确?没错,它可能是循环的[test]部分和迭代器的一部分.
  • BTW:for循环的迭代特性如何用UML表达最好?
  • 循环体内的活动最终节点是否正确(即当条件"消息有效?"产生"否"时)?在这里使用最终节点感觉不对,但我怎么能表达一个循环的控制流?

两个图的功能应该是等效的:

循环与条件节点

循环与区域


编辑:另一个实现Steph建议的图表:

  • 循环体内的初始和最终节点
  • "进一步处理"现在位于循环体内.嗯......好在这里,但可能还有其他循环,我宁愿把它放在外面.然后我可能会改变设计......
  • "下一个消息"也可以被看作是迭代器对象本身而不是作用 "(提供)下一个消息"从原始图.
  • 两个对象流箭头可能有点矫枉过正,但我​​认为它们是正确的.

在此输入图像描述

uml loops android-activity

20
推荐指数
1
解决办法
4万
查看次数

如何*真正*写UML基数?

我想一劳永逸地知道如何编写UML基数,因为我经常不得不对它们进行辩论(因此非常欢迎证明和来源:)

如果我想解释一个Mother可以有几个Child人,一个Child只有一个Mother,我应该写:

Mother * ---------- 1 Child
Run Code Online (Sandbox Code Playgroud)

要么

Mother 1 ---------- * Child
Run Code Online (Sandbox Code Playgroud)

oop uml data-modeling cardinality

20
推荐指数
2
解决办法
1万
查看次数

使用Eclipse中的Papyrus Software Designer进行Java逆向工程版本:Neon.3(4.6.3)

我想逆向工程我的工作区的注册包,所以我去模型浏览器,点击鼠标右键,我应该看到一个带有选项导入的菜单,菜单选项:

  • 导入注册档案
  • 导入注册包
  • 从用户模型导入包

在此输入图像描述

但这就是我所看到的:

在此输入图像描述

这是纸莎草纸的版本

在此输入图像描述

我还试图将包从包浏览器中反向设计的包拖放到类图中,但它没有用完..

在此输入图像描述

java eclipse uml reverse-engineering papyrus

19
推荐指数
1
解决办法
3129
查看次数