UML之构件图
构件图,英文名曰:Component Diagrams用于描述一组构件之间的组织和依赖关系,用于建模系统的静态实现视图,构件可以是可执行程序、库、表、文件和文档等,她包含了逻辑类或者逻辑类的实现信息,因此结构模型视图和实现之间存在映射关系。
构件图中也可以包括或子系统,她们都用于将模型元素组织较大的组块。构件是系统中逻辑的并且可替代的部分,她遵循并提供对一组接口的实现,好的构件用定义良好的接口来定义灵活的抽象。例如,可以为逻辑模型中的一个类定义一个接口,而这同一个接口将延续到一些实现她的设计构件。接下来,我们一起来学习一下构件图,她在UML中发挥着怎样的作用,又是如何成为我们的得力助手呢?首先,我们来看一下这一章知识的总体蓝图:
接着,我们开始来了解构件图的一些基本知识:
基础知识有利于我们对构件图的理解,可以促进我们对构件图进一步研究,接下来,我们来看看构件图的接口,关系以及有着怎样的要求:
基础知识的掌握,以及接口、关系等的认识,还有重要的一点就是,我们该如何绘制我们的构件图:
纸上得来终觉浅,绝知此事要躬行,理论与实践相结合,方能让知识在尘埃中开出花朵,以学生管理系统选课为例,看看我们的构件图是如何被应用的完美无瑕:
再以我们的机房收费系统为例,我们的构件图:
构件图在我们的生活中也有着广泛的应用,比如当我们建造一所房屋的时候,可能会选择安装一套家庭娱乐系统,这个时候,我们可以购买一个单件套,包括显示器,电视机、DVD、VCR播放器、扬声器等,如果这些满足了我们的要求,当然再好不过,可是理想很丰满,现实很骨感,有时候买一个单件套不够灵活,在购置这一套系统之前,我们还需要把厂商提供的各种特征综合起来考虑。
这个时候,一个比较灵活的办法是把娱乐系统分成单独的部件,每个部件着重一种功能,显示器显示画面,扬声器播放音乐,并且可以放在屋子中能听到声音的任何地方,DVD和VCR都是独立的个体,她们的性能可以根据我们的实际需求来考虑,我们可以把她们放在想放的地方并用电线把她们连接起来,而不是以一种固定的方式把他们锁定在一起,每根线都有适合一个部件的特定插头,因此不会把扬声器的线插到视频的输出端。
我们的软件也是一样,我们可以把应用程序做成一个单一的大单元,但是当需求改变时,她太僵化并很难修改,此外,也无法利用一些现有的功能,即使一个现存的系统有很多我们需要的功能,当然软件不可能完美无瑕,也存在着我们不想要的功能,并且不可能被剔除,这个时候,我们需要把程序做成可灵活连接起来,定义良好的构件,当需求发生变化时,这些构件可以单独被替换,做到真正的以人为本,UML之旅,未完待续......
UML之构件图的更多相关文章
- 【UML】构件图Component diagram(实现图)(转)
http://blog.csdn.net/sds15732622190/article/details/49048887 前言 下面要介绍UML中的构建图,它属于实现图的一种,五种静态图之一. 定义 ...
- UML,构件图与部署图
一.构件图概述 1.概念 用来显示一组构件之间的组织及其依赖关系 2.基本元素 (1)构件:定义了良好接口的物理实现单元. ● 配置构件:形成可执行文件的基础,如:动态链接库(DLL).ActiveX ...
- UML的概念模型
为 了理解UML,需要形成该语言的概念模型,这要求学习建模的3个要素:UML的基本构造块.支配这些构造块如何放在一起的规则和一些运用于整个UML的公 共机制.如果掌握了这些思想,就能够读懂UML模型, ...
- uml系列(八)——部署图与构件图
之前说了uml的设计图,现在说一下uml的最后两种图:构件图.部署图.这两种图之所以放在一起是因为它们都是软件的实现图. 构件图 构件图是描述一组构件之间的组织与依赖关系的模型.那 ...
- ****** 五十 ******、软设笔记【UML分析和意义】-类图、对象图、状态图、活动图、顺序图、协作图、构件图、部署图,动静态模式
一.类图(Class Diagram) 描述一组类.接口.协作已经它们之间的图,用来显示系统中各个类的静态结构图. 类之间的关系(relationship) *依赖(dependency) *泛化(g ...
- 构件图(Component Diagram)—UML图(八)
构件图是显示代码自身结构的实现级别的图表.构件图由诸如源码文件.二进制代码文件.可运行文件或动态链接库 (DLL) 这种构件构成,并通过依赖关系相连接 以下这张图介绍了构件图的基本内容: 以下这张图是 ...
- UML——构件图
宏观导图: 细节探究: 一.What 构件:是一个应用很广的名词,在建筑工程.机械工程.软件工程中等都有该概念.其实,说道底表达的都是一个意思.就像是标准化生产出来的零部件一样,具有可替换性.同质性, ...
- UML课程复习重点
第一章 一.UML图示建模工具 二.UML--统一建模语言,以图形符号为基础,描述软件模型既简洁又清晰.它不是开发方法,是独立于任何开发方法之外的语言.它用于描述软件系统分析.设计和实施中的各种模型. ...
- 浅谈UML的概念和模型之UML九种图
1.用例图(use case diagrams) [概念]描述用户需求,从用户的角度描述系统的功能 [描述方式]椭圆表示某个用例:人形符号表示角色 [目的]帮组开发团队以一种可视化的方式理解系统的功能 ...
随机推荐
- pdflush进程详解
一.简介 由于页高速缓存的缓存作用,写操作实际上会被延迟.当页高速缓存中的数据比后台存储的数据更新时,那么该数据就被称做脏数据.在内存中累积起来的脏页最终必须被写回磁盘.在以下两种情况发生时, ...
- python模块:网络协议和支持
python模块:网络协议和支持 webbrowser 调用浏览器显示html文件 webbrowser.open('map.html') [webbrowser - Convenient Web-b ...
- Linux下文件和文件夹操作命令详解
花了两个小时的时间,把文件和文件夹相关的常用命令:创建.删除.移动.复制.查找.重命名在linux上测试了一把,总结下来.文件夹的这些基本操作是要多注意的,一不小心就达不到你想要的效果. 文件夹操作: ...
- Dynamics CRM2013 6.1.1.1143版本插件注册器的一个bug
最近在做的项目客户用的是CRM2013sp1版本,所以插件注册器使用的也是与之对应的6.1.1.1143,悲剧的事情也因此而开始. 在插件中注册step时,工具里有个run in user's con ...
- 设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
我们做 iOS 程序开发时经常用遇到 EXC_BAD_ACCESS 错误导致 Crash,出现这种错误时一般 Xcode 不会给我们太多的信息来定位错误来源,只是在应用 Delegate 上留下像 T ...
- PhysicsJoint
1 PhysicsJoint的使用 T09Join.h #ifndef__T09Joint_H__ #define__T09Joint_H__ #include"T32.h" cl ...
- introduction of velocity
一.velocity 简介 基于java 的模板引擎,apache 旗下的开源软件项目. 目的在于隔离 表示层和业务逻辑层,当然现在做的不仅仅是这些. 二.应用场景 web 应用程序:创建html页面 ...
- 创建银行API
DECLARE lc_output VARCHAR2(3000); lc_msg_dummy VARCHAR2(3000); lc_return_status VARCHAR2(3000); lc_m ...
- 安卓Eclipse如何快速修改工程名及包名
修改工程名/包名,也是我们在开发中经常遇到的问题,比如我们在开发过程中突然觉得项目名不合适,或者根包名不合适想修改一下怎么办? 如上图所示工程,我想改变一下我的项目名,如把zzz改成xxx,把我的根包 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(八):为动画建立属性列表
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...