Studio-Class Diagram
UML Design Via Visual Studio-Class Diagram
用过几个建模设计工具,小的有staruml,大的有rational rose,EA。最后发现还是Visual Studio建模比较舒服(个人观点,不要争论)。
打算对自己经常用的几个建模图做一个介绍,类图(Class Diagram),时序图(sequence diagram),用例图(use case giagram),组件图(component diagram),分层图(layer diagram)。
本文主要介绍在Visual Studio中设计类图,主要包含一下内容:
- VS Modeling Project介绍
- 类图创建
- 类之间关系说明
- 根据类图自动生成代码
VS Modeling Project介绍
想使用Visual Studio进行建模,首先得创建一个Modeling Project。
创建后Project如下:
接下来所有在VS下面的建模都可以在这个Project中进行了。在Project中右键=》Add new item, 就可以创建所有VS支持的模型了。
在上图中选择 UML Class diagram就可以创建类图画布进行类设计了。
类图创建
可以通过左侧的tool box进行类图的创建,上图演示了,接口,类,类的关系:继承,依赖,聚合,组合。Enum就不再演示,package是分包设计类图,把类图设计在package里面,个人觉得用处不大,如果需要分包就新建个类图文件吧。屏幕大小有限,把整个系统的类图按包放到一个画板是不现实的,也不再演示。
类之间关系说明
上面的类图展示了“继承(inheritance),依赖(dependence),聚合(aggregation),组合(composition)”这三类关系,其实还有一个关联(association)(people to country),这是类之间非常弱的关系,仅仅从视觉上告诉人,类之间有关联。继承都了解,下面着重介绍另外三个。
依赖:A类依赖B,是指在A类中有方法的参数、方法体内或者方法的返回值用到了B。上图中Person依赖Mail
聚合:A类和B类聚合,是只A类是B类的一个属性,但是B类可以单独存在,上图中Person和Book,Book是person的属性,但是Book可以单独存在
组合:组合类似于聚合也是整体部分的关系,上图中Person和Hand的关系,hand作为Person的属性存在,区别在于Person和Hand的生命周期一样。
聚合和组合在程序结构上本身是一样的,但是分开来从图上可以搞清楚的理解设计,以及对象的生命周期。
根据类图自动生成代码
在VS下面完全可以根据上面的类图生成代码,画板上右键:
生成代码如下(类的生成目录自己是可以选择的):
可以看到如类图所示Book,Hand,Country都作为Person的属性而存在。
以上就是我对VS下面创建类图的一些总结,这个非常有用,便于team沟通。最终版一键生成代码,生产力也上去了。
另外一些修改属性,比如是否是abstract、public等这些就不再演示了。
Studio-Class Diagram的更多相关文章
- Chapter 20: Diagnostics
WHAT'S IN THIS CHAPTER?n Code contractsn Tracingn Event loggingn Performance monitoringWROX.COM CODE ...
- Problem to create "New Database Diagram" in Microsoft SQL Server Management Studio for SQL Server 2012
Error: when click "New Database Diagram", a error popped up and said "Attempted to re ...
- Visual Studio 2013 Ultimate的可视化代码功能
可视化和了解代码综合了如何使用visual studio可视化代码来帮助理解代码: 理解代码和代码之间的关系:(1)Code Map(2)Dependency Graphs 理解代码交互:Sequen ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言(二)
本文为<在Visual Studio 2012中使用VMSDK开发领域特定语言>专题文章的第二部分,在这部分内容中,将以实际应用为例,介绍开发DSL的主要步骤,包括设计.定制.调试.发布以 ...
- 在Visual Studio 2012中使用VMSDK开发领域特定语言(一)
前言 本专题主要介绍在Visual Studio 2012中使用Visualization & Modeling SDK进行领域特定语言(DSL)的开发,包括两个部分的内容.在第一部分中,将对 ...
- 如何在Visual Studio中开发自己的代码生成器插件
Visual Studio是美国微软公司开发的一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具.代码管控工具.集成开发环境(IDE)等等,且所写的目标代码适用于微 ...
- Visual Studio 2010初学者的调试指南:Mastering Debugging in Visual Studio 2010 - A Beginner's Guide
Introduction In the software development life cycle, testing and defect fixing take more time than a ...
- Working with Data » Getting started with ASP.NET Core and Entity Framework Core using Visual Studio » 创建复杂数据模型
Creating a complex data model 创建复杂数据模型 8 of 9 people found this helpful The Contoso University sampl ...
- How to distribute your own Android library through jCenter and Maven Central from Android Studio
In Android Studio, if you wish to include any library to your application. You could just simply add ...
随机推荐
- 白板编程浅谈——Why, What, How(转)
原文链接:http://lucida.me/blog/whiteboard-coding-demystified/ 这篇文章节选自我正在撰写的一本关于应届生面试求职的书籍,欢迎在评论或微博(@peng ...
- iframe滚动条问题:显示/隐藏滚动条
iframe 问题2008-01-22 16:37****** 显示 iframe 内容 XHTML 1.0 Transitional 标准不能显示 <!DOCTYPE html PUBLI ...
- Webuploader 大文件分片上传
百度Webuploader 大文件分片上传(.net接收) 前阵子要做个大文件上传的功能,找来找去发现Webuploader还不错,关于她的介绍我就不再赘述. 动手前,在园子里找到了一篇不错的分片 ...
- 编hadoop-1.X源代码
满足需要在不久的将来windows调试Linux下一个hadoop问题,Linux检查时需要的文件权限.和windows在没有必要,因此,有必要修改hadoop源代码,再次编译,过程例如以下: (1) ...
- 十天学会php第五天
学习目标:学会读取数据 先看两个函数: 1.mysql_query 送出一个 query 字符串. 语法 : int mysql_query(string query, int ...
- Android Property Animation 物业动画
效果图: Property Animation介绍: 出生在sdk3.0,是利用了View所拥有的属性,进行一系列的操作. 比方一个View有什么样的setAbc的属性,那么理论上就能够设置它. ...
- c# 16进制显示转化
非原创. 接收16进制数据,在TextBox委托显示: private void readPortandShow() { char[] HexChar = { '0', '1', '2', '3', ...
- 数据你把它的金额-JAVA分页
数据量你造吗-JAVA分页 原创地址: http://www.cnblogs.com/Alandre/ (泥沙砖瓦浆木匠),须要转载的,保留下! Thanks 学习的心态第一,解行要对应. 事实 ...
- hdu2665-Kth number
Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- HDU 1596 find the safest road (最短路)
find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...






