<十一>面向对象分析之UML核心元素之组件
组件
一:概念
--->组件是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口。
--->组件代表系统中的一部分物理实施。包括软件代码(源代码,二进制代码或可执行代码)或其等价物(如脚本或命令文件)
--->在UML的定义中,组件之间唯一的关系就是依赖。在Rose中,组件视图中允许的唯一链接也是依赖关系,而依赖意味着一个组件的修改会导致依赖于它的其他组件的修改。
--->在笔者看来,一个组件应当是一个独立的业务模块,具有完备的功能,可独立部署,一个组建可以看成一个完备的服务。从SOA架构的观点来看,一个SOA服务与其他服务是没有依赖关系的,服务与服务之间仅仅保持着松耦合的通信关系。
二:组建的特点(笔者和UML官方有出入,按笔者建议学习)
--->完备性
(1)一个组件应当能够完成一项或一组特定的业务目标(或说功能)
--->独立性
(1)独立性是说,组件应当可以独立部署的,与其他组件无依赖关系,最多保持关联关系。
--->逻辑性
(1)逻辑性是说,组件是从软件构件设计的观点来定义的。并非从需求中可以直接导出来。组件建立在系统分析和设计的基础上,对已经实现的功能进行逻辑划分。
--->透明性
(1)透明性,组件的修改应当只涉及组件的定义以及组件中所包含的类的重新指定,而不应该导致类的修改。
二:组建的使用
--->分布式应用
--->应用集成
--->第三方系统
--->SOA服务
(1)SOA(Service Oriented Architecture)面向服务的架构是目前新兴的软件架构,有人说SOA是下一代软件发展的趋势。它将系统结构划分为粗粒度的服务组件SCA,每个服务组件都遵循一系列标准和规范,通过标准的通信协议与其他服务交互,服务和服务之间是松耦合的。
(2)在SOA中,系统分析,设计,开发都以服务为主,每个服务都具有上述组件的所有特点。
(3)组件一般都是在较高的抽象层次定义的。