L-第四章_软件体系结构基础分解.ppt

软件体系结构的开发是大型软件系统开发的关键环节。体系结构在软件生产线的开发中具有至关重要的作用。 在这种开发生产中,基于同一个软件体系结构,可以创建具有不同功能的多个系统。 在软件产品族之间共享体系结构和一组可重用的构件,可以增加软件工程和降低开发和维护成本。 4.1.4 软件体系结构设计原则 抽象的原则 分而治之的原则 封装和信息隐蔽原则 模块化原则 高内聚和低耦合 关注点分离原则 策略和实现的分离原则 接口和实现分离原则 4.1.5 软件体系结构的现状及发展方向 应用现状 形成研究热点,仍处于非形式化水平 软件体系结构的形式化方法研究 软件体系结构的建模研究 发展基于体系结构的软件开发模型 软件产品线体系结构的研究 4.1.5 软件体系结构的现状及发展方向 2. 研究热点 提供新的软件体系结构描述语言 对软件体系结构的专门知识的整理 提供特定领域的体系结构框架 提供软件体系结构的形式化基础 建立评价软件体系结构的方法 4.1.5 软件体系结构的现状及发展方向 3. 发展方向 各种ADLs之间的信息互换 设计工具和环境 体系结构再工程 4.2 通用的软件体系结构 主机/终端结构 两层结构——客户/服务器体系结构 浏览器/服务器结构 三层C/S结构 三层C/S结构应用实例 4.2.1 主机/终端结构 早期计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。即所谓的主机分时系统。 连接的终端完全没有事务处理的能力,只是输入和显示信息。 所有的事务处理功能完全放在主机进行。因此主机的负载很重,整个系统的事务处理能力全部取决于主机。 目前,主机终端模式已逐步被淘汰。 4.2.2 两层结构——客户/服务器体系结构 4.2.2 两层结构——客户/服务器体系结构 2. C/S结构的一般处理流程 4.2.3 浏览器/服务器结构 B/S本质上也是一种C/S结构,它是传统的两层C/S结构在Web上的发展。相对于C/S结构而言,B/S结构是把原来在客户机一侧的应用程序模块与显示功能分开,将应用程序模块单独作为一层放在Web服务器上,客户端只需要安装浏览器就可以了,这样将系统的业务处理部分统一放在Web服务器上,客户端只起到与用户交互的作用。 4.2.4 三层C/S结构 B/S结构即“瘦客户机”结构,并没有根本解决C/S的问题,一旦客户端增加,服务器的负担就会加重。而传统的C/S即“胖客户机”结构,虽然网络传输负担减轻了,事务处理大多在客户机进行,但是软件修改困难,因为它需要修改客户机的程序和配置,系统管理不便。为了解决上述问题,就产生了三层结构。 4.2.4 三层C/S结构 三层C/S结构的一般处理流程: 4.2.5三层C/S结构应用实例 图书查询系统 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 发展现状(1) 真正现在意义上的软件体系结构的研究始于, Dewayne Perry和Alexander Wolf [PW1992], and David Garlan和Mary Shaw [GS1993]的奠基性工作, and 其他人对体系结构风格的分类和评价 [KBA+1994], and 特定领域软件体系结构 (DSSAs)的研究和应用 [DSSA1992] 应用现状 体系结构的设计是建立在直觉和经验、而非坚实的工程原则之上的 体系结构的描述是非形式化的和随意的,经常采用框线图(box-and-line diagram)加文字注释的方法 发展现状(2) 应用后果 体系结构设计只是被开发人员含糊地理解 难以对体系结构设计作出一致性或完整性的分析 随着系统的演化,难以保持同系统原有体系结构的一致,并且 难以开发有效的工具,辅助人们进行体系结构的设计、性质分析和验证 发展现状(3) 在“软件复用的展望和策略” [DoD1992]报告中,美国国防部强调了“以体系结构为中心的复用”在整个软件生存周期中,对于软件开发和支持的重要性。 以下是一些同体系结构相关的研究项目, STARS, DOD CARDS, DOD PRISM, DOD RAPIDE , Stanford Uni. C2 style and ADL, California Uni. Able (Architecture Based Languages and Environments), CMU ACME Architecture Interchange Language, CMU Vitruvius, CMU 发展现状(4) 鉴于是否有一个稳定的软件体系结构,对软件的质量和成本影响很大,因此如何获得一个

文档评论(0)

1亿VIP精品文档

相关文档