软件架构及设计培训课件.ppt

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 软件系统的组织 • 选择组成系统的结构元素和他们之间的接口,以及当这些元素相互协作时所 体现的行为 • 如何组合这些元素,使他们逐渐合成更大的子系统 • 用户知道这个系统组织的架构风格:这些元素以及他们的接口、协作和组合

– 软件架构并不仅仅注重软件本身的结构和行为,还注重其他特性:使用、 功能性、性能、弹性、重用、可理解性、经济和技术的限制和权衡,以 及美学 – Rational统一过程
什么是软件架构视图
• 一个架构视图是对于从某一视角或某一点上看到 的系统所做的简化描述,描述中涵盖了系统的某 一特定方面,而省略了于此方面无关的实体。
• 也就是说,架构要涵盖的内容和决策太多了,超 过了人脑"一蹴而就"的能力范围,因此采用"分而 治之"的办法从不同视角分别设计;同时,也为软 件架构的理解、交流和归档提供了方便。
RUP的4+1视图体系结构
“无体系结构”设计阶段
以汇编语言进行小规模应用 程序开发为特征 出现了程序结构设计主题, 以控制流图和数据流图构成 软件结构为特征 出现了从不同侧面描述系统 的结构模型,以UML为典型 代表。 以描述系统的高层抽象结构为 中心,不关心具体的建模细节, 划分了架构模型与传统软件结 构的界限,该阶段以 Kruchten提出的“4+1”模型
萌芽阶段
初期阶段 高级阶段
RUP的4+1视图体系结构
• Philippe Kruchten提出的4+1视图方法
RUP的4+1视图体系结构
• 运用4+1视图方法针对不同需求进行架构设计
RUP的4+1视图体系结构
• 4+1视图视图模型一览表
设备调试系统案例概述
• 设备调试员通过使用该系统,可以察看设备状态(设备的状态信息由专用的 数据采集器实时采集)、发送调试命令。该系统的用例图(场景)如图所示
典型项目案例介绍
一、架构分析方法 • 面向服务设计模式(SOAD) 二、架构视图 • RUP的4+1视图体系结构 三、软件架构国际标准 • 服务相关的标准:SOAP
面向服务设计模式(SOAD)
• 应用软件开发方法的演变过程:
• • • •
������ ������ ������ ������
面向过程; 面向对象; 面向组件; 面向服务。
怎样进行架构设计?
高层架构设计过程设计流程
设计 准备
确定 约束 因素
确定 设计 策略
系统 分解 设计
撰写 文档
设计 评审
怎样进行架构设计?
• 在分析阶段,我们建立模型表示真实的世界,以便理解业务过程以及 这个过程中所要用到的信息。 • 基本上说,分析首先是分解,把复杂信息需求的综合问题,分解成易 于理解的多个小问题。 • 然后通过建立需求模型来对问题领域进行组织、构造并且编制文档。 • 分析建模过程必须要用户参与,并且需要用户解释需求,并且验证建 立的模型是否正确。 • 设计也称之为架构设计,实际上也是个建模过程,它把分析阶段得出 的信息也就是需求模型,转换为称之为解决方案的模型。
我们能得到什么?
• 1、知道架构的3W1H • 2、掌握架构的流程和管理
• 3、理解架构的设计和评审
• 4、知道如何评估软件架构质量
软件架构设计概述
• • • • • 软件设计、软件架构概念 软件架构与软件过程 面向服务设计模式(SOAD) RUP的4+1视图体系结构 软件架构国际标准
什么是架构?
• 工具:为方法提供的自动或者半自动的软件支撑环境 • 过程:将软件工程的方法和工具综合起来以达到合理、及 时地进行计算机软件开发地目的
软件架构在软件工程中的作用?
• 软件架构是一个软件系统的设计图
• ¡ 解决复杂性问题 • ¡ 提高复用和构件市场的潜力
什么时候进行架构设计?
软件架构
详细设计 架构视图 概要设计
设备调试系统案例概述
• 设备调试系统的需求
逻辑视图:设计满足功能需求的架构
首先根据功能需求进行初步设计,进行大粒度的职责划 分。如图所示。 • 应用层负责设备状态的显示,并提供模拟控制台供 用户发送调试命令。 应用层使用通讯层和嵌入层进行交互,但应用层不 知道通讯的细节。 通讯层负责在RS232协议之上实现一套专用的"应用 协议"。 当应用层发送来包含调试指令的协议包,由通讯层 负责按RS232协议将之传递给嵌入层。 当嵌入层发送来原始数据,由通讯层将之解释成应 用协议包发送给应用层。 嵌入层负责对调试设备的具体控制,以及高频度地 从数据采集器读取设备状态数据。 设备控制指令的物理规格被封装在嵌入层内部,读 取数采器的具体细节也被封装在嵌入层内部
• SOA 可以通过很多方式来实现,但最常用的SOA 是用Web Service 来实现,这主要应为WebService 的独立于平台的特性和其它特性更 符合SOA 的规则。
构建SOA架构时应该注意的问题
• 当架构师基于SOA 来构建一个企业级的系统架构的时候, 一定要注意对原有系统架构中的集成需求进行细致的分析 和整理。基于SOA 的企业系统架构通常都是在现有系统 架构投资的基础上发展起来的,我们并不需要彻底重新开 发全部的子系统。 • SOA 可以通过利用当前系统已有的资源(开发人员、软件 语言、硬件平台、数据库和应用程序)来重复利用系统中 现有的系统和资源。SOA 是一种可适应的、灵活的体系 结构类型,基于SOA构建的系统架构可以在系统的开发和 维护中缩短产品上市时间,因而可以降低企业系统开发的 成本和风险。
案例:电源销售服务系统高层架构
• 这里只列出了初步的顶层架构。
案例:电源销售服务系统高层架构
• • • • • • • • 设计中注意了几个问题: 1,对于管理层和客户,主要从使用方便性考虑,采用浏览器。 2,对于工作人员,因为要处理的内容比较复杂,采用应用程序,但是一个免维护的瘦客户端。 3,瘦客户段并不是指代码越少越好或者功能越少越好,而是把易变的、需要配置的、需要集中处 理的内容转向应用程序服务器。事实上,客户端的功能越强,越能缓解服务器的压力。 4,某些特殊的专业通讯联系(比如信用卡授权机构),可以由客户段直接完成,并不一定一切都 通过服务器,但需要向服务器提交必要的信息。 5,对于集中处理的部分,采用大粒度设计,以缓解网络压力。 6,由于服务方采用无状态模式,所以要严格控制客户调用信息的时间,对于需要长时间传输的信 息,可以采用其它通道完成。 7,对于客户应用程序,某些不是十分大的,变化频度不是十分高的,调用频度比较高的数据,可 以在客户端建立缓存,并且可以建立关联的映像表,这样就可以对避免对最主要的数据处理的挤压, 提高数据库的应用效率,但要考虑修改数据时候的并发策略。
面向服务设计模式(SOAD)
什么是面向服务的体系架构? • 一个组件模型
• ������ 将应用程序的不同功能单元(服务)通过这些服务之间 定 义良好的接口和契约联系起来。接口是采用中立的方 式进行定义的,它应该独立于实现服务的硬件平台、操作 系统和编程语言。
• ������ 构建在各种这样的系统中的服务可以以一种统一和通 用的方式进行交互。
SOA的特性
• • • • • • • • • SOA 有以下特性: ������ 服务具有明确的接口(合约)与策略。 ������ 服务通常代表业务功能或者领域。 ������ 服务拥有模块化的设计。 ������ 服务被松散的耦合在一起。 ������ 服务是可以被发现的。 ������ 服务的位置对客户是透明的。 ������ 服务是独立于传输层的。 ������ 服务是独立于平台的。
• 组成派 – 软件系统的架构将系统描述为计算组件及组件之间的交互(The architecture of a software system defines the system in terms of computational components and interactions among those components) – Mary Shaw《软件体系结构:一门初露端倪学科的展望》 决策派 – 软件架构包含了关于一下问题的重要决策
什么时候进行架构设计?
• 架构设计过程分为两个阶段:高层设计阶段和详细设计阶段
怎样进行架构设计?
• 在高层设计阶段,主要工作是分析与设计软件的 体系结构。通过系统分解,确定子系统的功能和 子系统之间的关系,以及模块的功能和模块之间 的关系,产生《体系结构设计报告》。 • 这个阶段是系统架构师发挥作用的主要位置,高 层架构设计过程设计流程如下。
http://www.skycn.com/soft/appid/16287.html
软件架构及设计
中科信软培训中心 www.info-soft.cn
• 语言不是可伸缩性的关键,架构才是关键
ຫໍສະໝຸດ Baidu们的疑问?
• 1、什么是架构? • 2、为什么要架构? • 3、什么时候进行架构设计? • 4、怎样进行架构设计?
三个核心思维
• 一个是架构设计的源泉来自于需求分析 • 第二个是,架构设计重心和特点来自于质 量需求(非功能性需求) • 第三个观点是,架构整体特征应该考虑项 目管理特征
为什么要架构?-- 从软件危机谈起
• 软件危机是指在计算机软件的开发和维护 过程中遇到的一系列严重问题
• 在1968年国际软件工程会议提出,并被人 们广泛认识
服务粒度的控制
• 当SOA 架构师构建一个企业级的SOA 系统架构 的时候,关于系统中最重要的元素,也就是SOA 系统中的服务的构建有一点需要特别注意的地方, 就是对于服务粒度的控制。 • 服务粒度的控制SOA 系统中的服务粒度的控制是 一项十分重要的设计任务。通常来说,对于将暴 露在整个系统外部的服务推荐使用粗粒度的接口, 而相对较细粒度的服务接口通常用于企业系统架 构的内部。
什么是架构?
• 架构的组成与决策是架构设计的两个基本 概念,这两个概念并不矛盾 • 在架构设计中,往往是同时体现这两个概 念,确保架构满足产品要求。由这两个概 念出发,我们自然会提出:
• 软件架构的核心思维到底是什么呢?
什么是架构?
• 首先,任何软件系统都是以满足需求作为目的。 所以,好的架构设计必须以全面深入的需求分析 作为基础,根据需求来组织合理的产品架构。 • 其次,一个软件系统的质量,很大程度上是由架 构设计的质量决定的,所以架构师的眼光一般都 专注于质量属性上,应该根据产品质量属性的要 求提出合理的架构决策。 • 另一方面,任何架构思想的实现,必须与具体的 项目组织相匹配才能发挥作用。
SOA的优点
• SOA 框架的特点是以服务为中心,它把应用程序划分成具有明确定义接口 的模块,从而得到服务和应用程序之间相当松散的耦合。
• 在SOA 中,服务供应商和消费者是两个独立的实体。
• • • • • 面向服务的架构的优点主要体现在以下几个方面: ������ 降低应用开发费用。 ������ 降低维护费用。 ������ 增长的公司敏捷性。 ������ 生成对应用程序和设备的故障、中断更具免疫力的系统,提高整体的 可靠性。 • ������ 提供了一条应用系统的升级途径,对比使用单一的应用程序的时候, 需要替换整个应用系统的标准升级方法,显然更为经济,更不容易失败。
面向服务设计模式(SOAD)
service-oriented Architecture
• ������ SOA(service-oriented Architecture,也叫面向服务的体系 结构或面向服务架构)是指为了解决在Internet环境下业务集成的需 要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架 构。 • ������ SOA是一个组件模型,它将应用程序的不同功能单元(称为服 务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用 中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系 统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统 一和通用的方式进行交互。
软件危机的表现
• ¡ 软件成本日益增长 • ¡ 开发进度难以控制
• ¡ 软件质量差
• ¡ 软件维护困难
软件危机的原因
• ¡ 用户需求不明确
• ¡ 缺乏正确的理论指导
• ¡ 软件规模越来越大 • ¡ 软件复杂度越来越高
如何克服软件危机
• 人们面临的不光是技术问题,更重要的是管理问 题。管理不善必然导致失败 。
• 要提高软件开发效率,提高软件产品质量,必须 采用工程化的开发方法与工业化的生产技术。 • 在技术上,应该采用基于复用的软件生产技术;
• 在管理上,应该采用多维的工程管理模式。
诞生了软件工程
• 用工程、科学和数学的原则和方法研制、维护计算机软件 的有关技术及管理方法
• 方法:“如何做”的技术手段
相关文档
最新文档