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 ...
随机推荐
- Hibernate学习笔记(1)Hibernate构造
一 准备工作 首先,我们将创建一个简单的基于控制台(console-based)Hibernate应用. 我们所做的第一件事就是创建我们的开发文件夹.并把所有需要用到的Java件放进去.解压缩从Hib ...
- 你的第一个AngularJS应用--教程二:基架、建立和測试的工具
介绍 有非常多可用的工具能够帮助你开发AngularJS 应用,那些非常复杂的框架不在我的讨论范围之中,这也是我開始这系列教程的原因. 在第一部分,我们掌握了AngularJS框架的基本结构,开发了第 ...
- REPLICAT RORA_1保持 ABENDED状态,无法启动问题处理
REPLICAT RORA_1保持 ABENDED状态,无法启动问题 环境: Item Source System Target System Platform Red Hat Enterprise ...
- 说说PHP的autoLoad自动加载机制
__autoload的使用方法1: 最经常使用的就是这种方法,根据类名,找出类文件,然后require_one 复制代码 代码如下:function __autoload($class_name) { ...
- 轻松搭建Windows8云平台开发环境
原文:轻松搭建Windows8云平台开发环境 Windows Store应用是基于Windows 8操作系统的新一代Windows应用程序,其开发平台以及运行模式和以往传统平台略有不同.为了帮助更多开 ...
- 文章13称号 Add Two Numbers
You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...
- Java重写round()方法
题目:完毕这种方法的代码实现 public static String round (String arg1, int arg2) 參数 arg1:表示等待被处理的数据:如:"100.286 ...
- Servlet上传文件
Servlet上传文件 1.准备工作 (1)利用FileUpload组件上传文件,须要到apache上下载commons-fileupload-1.3.1.jar 下载地址:http://common ...
- Java Web整合开发(16) -- Struts 2.x 概述
Struts2与Spring的整合 •Struts2框架为配合与Spring3框架进行整合,提供了相应的拦截器. •该组件名为StrutsSpringObjectFactory,位于struts2-s ...
- DDD领域驱动设计仓储Repository
DDD领域驱动设计初探(二):仓储Repository(上) 前言:上篇介绍了DDD设计Demo里面的聚合划分以及实体和聚合根的设计,这章继续来说说DDD里面最具争议的话题之一的仓储Repositor ...






