software Architecture(1)
一.软件体系结构概论。
1.SA定义:Architecture=Components+Connectors+Topology+Constraints+Performance
(软件体系结构=构建+连接件+拓扑结构+约束+质量)
2.构件(component)
广义上讲,构件时具有某种功能的可复用的软件结构单元,是为组装服务的,是组成软件系统的计算单元或数据存储单元;严格意义上讲,构件时一种可部署单元,它具有规范的接口规约和显式的语境依赖,而接口功能由构件内部封装的服务来实现。
3.接口(interface)与服务(service)
构件作为一个封装实体,只能通过其接口与外部环境交互,表示了构件与外部环境的交互点。内部结构则被隐藏起来(black-box),一个构件至少有一个接口,一个构件可以提供多重接口,构件接口与其内部实现应严格分开。构件内部所实现的功能以服务的形式体现出来,并通过接口向外发布,进而产生与其他构件之间的关联。
4连接(connection)
连接:构件间建立和维护行为关联与信息传递的途径;需要两方面的支持:连接发生和维持的机制,和连接能够准确、无二义、无冲突惊醒的保证——连接正确有效的进行信息交换的规则(连接的协议),即机制(mechanism)和协议(protocol).
3.用例视图(Use Case View)
用例视图用来捕获最终用户所需求的功能性,即“系统应该做什么”;The use case view includes use case diagrams and typically uses several interaction diagarams to show use case details.
4.开发视图(Development View)
主要侧重于软件模块的组织和管理。系统-子系统-模块(构件、文件、资源等)并组成层次结构,另一个焦点是描述各模块之间的依存关系——What components depend on what,what source files implement what classes,etc.实现视图要考虑软件内部的实现需求,如软件开发的容易性、软件的复用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。在UML中,开发视图通常使用以下的图形表达形式-component diagrams(构件图)-package diagrams(包图)
5.进程视图(Process View)
进程视图侧重于系统的动态运行特性,主要关注一些非功能的需求:
——并发性、分布性、系统集成性和容错能力
——逻辑视图中的各个抽象概念如何在进程中被执行
——逻辑视图中各个类操作具体在进程中那个线程被执行
在UML中进程视图通常使用Activity diagrams(活动图)和Sequence diagrams(次序图)来描述一个系统的运行时行为
6.物理视图(Physical View)
物理视图主要考虑如何把软件部署到硬件上,它通常要考虑系统性能、规模、可靠性等,结局软件系统设置、安装、系统部署后的物理拓扑结构、系统执行过程中的通讯问题等。在UML只能怪通常为部署图(Deployment diagrams)
三. 架构设计案例
1.系统需求说明
4.逻辑视图的UML表示-类图
5.逻辑视图的UML表示-活动图
6.逻辑视图的UML表示-状态图
7.实现视图的UML表示-构件图
8.实现视图的UML表示-包图
9.进程视图的UML表示-顺序图
10.物理视图的UML表示-部署图
以上均摘自 刘旭东
刘旭东 软件体系结构课件cameran@hit.edu.cn