P3 软件危机的表现与成因
表现:
- 软件成本日益增长
- 开发进度难以控制
- 软件质量差
- 软件维护困难
成因:
- 用户需求不明确
- 缺乏正确的理论指导
- 软件规模越来越大
- 软件复杂度越来越高
P20 软件体系结构的意义
- 体系结构是风险承担者进行交流的手段
- 软件体系结构明确了对系统实现的约束条件
- 软件体系结构决定了开发和维护组织的组织结构
- 软件体系结构制约着系统的质量属性
- 通过研究软件体系结构可能预测软件的质量
- 软件体系结构使推理和控制更改更简单
- 软件体系结构有助于循序渐进的原型设计
- 软件体系结构可以作为培训的基础
- 软件体系结构是可传递和可重用的模型
4+1视图模型
P37 软件体系结构的核心模型
体系结构的核心模型由5种元素组成:构件、连接件、配置、端口和角色
- 构件是具有某种功能的可重用的软件模板单元,表示系统中主要的计算元素和数据存储
- 连接件表示构件之间的交互
- 配置表示构件和连接件的拓扑逻辑和约束
P57 三层C/S结构风格
- 二层C/S结构是单一服务器且以局域网为中心的,所以难以扩大至整个企业的局域网或者Internet
- 软、硬件的组合与集成能力有限
- 客户机负荷太重,难以管理大量客户机,系统的性能容易变坏
- 数据安全性不好
- 允许合理地规划三层的结构与功能,使之在逻辑上表示相对独立性;
- 允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上,处理特性上分别适应于结构清晰的三层;
- 三层C/S结构中,应用的各层可以并行开发,各层也可以选用各自最适合的开发语言;
- 允许充分利用功能层有效地隔开表示层与数据层,未授权的用户难以绕过功能层非法访问数据层。
- 该三层分别为表示层(输出的数据),功能层(程序中具体的业务逻辑)和数据层(数据库管理系统),其一般处理流程如下图:
?
- 表示层:表示层是应用的用户接口部分,担负着用户与应用间的对话功能
- 功能层:功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中
- 数据层:数据层就是数据库管理系统,负责管理对数据库数据的读写
P73 基于层次消息总线的体系结构风格
- 构件模型
- 构件接口
- 消息登记
- 消息分派和传递
- 消息过滤
- 构件静态结构
- 构件动态行为
- 运行时刻的系统演化
P79 异构结构风格
为什么要使用异构结构
从根本上来说,不同结构具有不同的处理能力的强项和弱点,一个系统的体系结构应该根据实际情况做出相应的选择。关于软件包,框架,通信以及其他体系结构上的问题,目前存在多种标准。实际工作中,我们总会遇到一些遗留下来的代码,它们仍有效用,但是却与新系统在某种程度上不协调。即使在某一单位中,规定了共享共同的软件包或相互关系的一些标准,仍会存在解释或表示习惯的不同。
异构结构的实例
- 优点:外部用户不直接访问数据库服务器,能保证企业数据库的相关安全。企业内部用户的交互性较强,数据查询和修改的响应速度较快。
- 缺点:企业外部用户修改或维护数据时,速度较慢,较繁琐,数据的动态交互性不强。
- 优点:体现了B/S和C/S的共同优点,便于维护,数据动态交互性强
- 缺点:外部用户能直接通过Internet连接到数据库服务器,企业内部数据容易暴露给外部用户,给企业数据安全造成一定的威胁。
P109 C2
特点:
- 构件之间不能直接相连
- 构件、连接件都有顶部与底部
- 构件顶部或底部只能与连接件底部或顶部相连
- 连接件相互之间可通过顶部及底部连接
- 构件可以感知上一层构件但是不感知下一层构件
- 构件之间通过连接件的异步消息机制交互
?
P123 软件体系结构与UML
- 用例图
- 类图
- 对象图
- 顺序图
- 协作图
- 状态图
- 活动图
- 构件图
- 部署图
P153 软件体系结构动态模型
基于构件的动态系统结构模型
该模型分为三层,分别是应用层、中间层和体系结构层
- 应用层处于最底层,包括构件连接、构件接口和执行
- 中间层包括连接件配置、构件配置、构件描述及执行
- 体系结构层位于最上层,控制和管理整个体系结构,包括体系结构配置、体系结构描述和执行
P171 Web服务体系结构
一个Web服务分为五个逻辑层,分别为数据层、 数据访问层、业务层、业务面和监听者
P173 Web服务体系结构模型
- Web服务模型
- 构建:构建阶段包括开发和测试Web服务的实现,定义服务接口描述和定义服务实现描述
- 部署:部署阶段包括向服务请求者或服务注册中心发布服务接口和服务实现的定义,以及把Web服务的可执行文件部署到执行环境中。
- 运行:在运行阶段,可以调用Web服务
- 管理:管理阶段包括持续的管理和经营Web服务应用程序
- 发现服务层:UDDI、DUSCI
- 描述服务层:WSDL、XML、Schema
- 消息格式层:SOAP
- 编码格式层:XML
- 传输协议层:HTTP、TCP/IP、SMTP
- 高度的通用性和易用性
- 完全的平台、语言独立性
- 高度的集成性
- 容易部署和发布
软件体系结构
原文:https://www.cnblogs.com/cc99/p/13267979.html