<十一>面向对象分析之UML核心元素之组件
组件一:概念
--->组件是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口。
--->组件代表系统中的一部分物理实施。包括软件代码(源代码,二进制代码或可执行代码)或其等价物(如脚本或命令文件)
--->在UML的定义中,组件之间唯一的关系就是依赖。在Rose中,组件视图中允许的唯一链接也是依赖关系,而依赖意味着一个组件的修改会导致依赖于它的其他组件的修改。
--->在笔者看来,一个组件应当是一个独立的业务模块,具有完备的功能,可独立部署,一个组建可以看成一个完备的服务。从SOA架构的观点来看,一个SOA服务与其他服务是没有依赖关系的,服务与服务之间仅仅保持着松耦合的通信关系。
二:组建的特点(笔者和UML官方有出入,按笔者建议学习)
--->完备性
(1)一个组件应当能够完成一项或一组特定的业务目标(或说功能)
--->独立性
(1)独立性是说,组件应当可以独立部署的,与其他组件无依赖关系,最多保持关联关系。
--->逻辑性
(1)逻辑性是说,组件是从软件构件设计的观点来定义的。并非从需求中可以直接导出来。组件建立在系统分析和设计的基础上,对已经实现的功能进行逻辑划分。
--->透明性
(1)透明性,组件的修改应当只涉及组件的定义以及组件中所包含的类的重新指定,而不应该导致类的修改。
二:组建的使用
--->分布式应用
--->应用集成
--->第三方系统 --->SOA服务
(1)SOA(Service Oriented Architecture)面向服务的架构是目前新兴的软件架构,有人说SOA是下一代软件发展的趋势。它将系统结构划分为粗粒度的服务组件SCA,每个服务组件都遵循一系列标准和规范,通过标准的通信协议与其他服务交互,服务和服务之间是松耦合的。
(2)在SOA中,系统分析,设计,开发都以服务为主,每个服务都具有上述组件的所有特点。
(3)组件一般都是在较高的抽象层次定义的。
<十一>面向对象分析之UML核心元素之组件的更多相关文章
- <四>面向对象分析之UML核心元素之用例
一:基本概念 --->用例定义了一组用例实例,其中每个实例都是系统所执行一系列操作,这些操作生成特定主角可以观测的值. --->所谓用例,就是一件事情,要完成这 ...
- <九>面向对象分析之UML核心元素之设计类,类,属性,方法,可见性
设计类
- <五>面向对象分析之UML核心元素之边界
一:基本概念
- <十>面向对象分析之UML核心元素之关系
关系 --->在UML中关系是非常重要的语义,它抽象出对象之间的联系,让对象构成特定的结构. 一,关联关系(association)
- <八>面向对象分析之UML核心元素之分析类
一:基本概念 ---->在那大数项目中,分析类是被忽视的一种非常有用的元素. ---->分析类用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处 ...
- <三>面向对象分析之UML核心元素之参与者
一:版型 --->在UML里有一个概念叫版型.有些书里也称类型,构造型. --->这个概念是对一个UML元素基础定义的扩展.在同一个元素基础定义的基础上赋予特别 ...
- <十二>面向对象分析之UML核心元素之节点和设备
节点,设备
- <七>面向对象分析之UML核心元素之包
一:基本概念
- <六>面向对象分析之UML核心元素之业务实体
一:基本概念
随机推荐
- Java Servlet Filter(转)
做web开发的人对于Filter应该不会陌生,一直在很简单的使用,但是一直没有系统的总结一下,随着年纪的慢慢长大,喜欢总结一些事情,下面说说我对Filter的理解,官方给出的Filter的定义是在请求 ...
- 【WCF--初入江湖】06 WCF契约服务行为和异常处理
06 WCF契约服务行为和异常处理 一.WCF契约服务行为 [1] 服务行为可以修改和控制WCF服务的运行特性. 在实现了WCF服务契约后,可以修改服务的很多执行特性. 这些行为(或者特性)是通过配置 ...
- uva 11489
简单博弈 #include <cstdio> #include <cstdlib> #include <cmath> #include <map> #i ...
- 关于in与exists的效率讨论
关于in与exists的效率讨论1).select * from A where id in (select id from B)以上查询使用了in语句,in只执行一次,他查出B表的所有id字段并缓存 ...
- 【PHP高效搜索专题(2)】sphinx&coreseek在PHP程序中的应用实例
PHP可以通过三种途径来调用sphinx 通过Sphinx官方提供的API接口(接口有Python,Java,Php三种版本) 通过安装SphinxSE,然后创建一个中介sphinxSE类型的表,再通 ...
- 什么是hibernate?
一.什么是hibernate框架?1.通过数据库保存java运行时产生的对象和恢复对象,其实就是实现java对象与关系数据库记录的映射关系称为ORM(Object Relation Mapping), ...
- Go语言的优点(oschina讨论)
Go语言的优点:并发/网络/性能/工具(fmt/pprof/test)/标准库(http/json/log/flags/atomic)/GoogleGo语言垃圾回收器真正致命的缺陷是,会导致整个进程不 ...
- Qt学习记录--Qt::CaseSensitive
Qt::CaseSensitivity 为枚举类型, 可取值Qt::CaseSensitive 和 Qt::CaseInsensitive, 表示匹配的灵敏度. 比较字符串的时候 Qt::CaseSe ...
- 解决Cygwin中vim的backspace不能正常使用(转)
转载于:http://blog.chinaunix.net/uid-20614631-id-1914849.html 亲测可用 先把Cygwin下载下来,想在linux下编程的话一定要安装vim,g ...
- 转:linux下面/usr/local和opt目录有何区别
/usr/local下一般是你安装软件的目录,这个目录就相当于在windows下的programefiles这个目录 /opt这个目录是一些大型软件的安装目录,或者是一些服务程序的安装目录 /opt ...