架构设计及应用_第1页
架构设计及应用_第2页
架构设计及应用_第3页
架构设计及应用_第4页
架构设计及应用_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

架构

设计

作者:毛国红议程架构的定义架构风格架构视图架构开发模式构架设计方法什么是软件架构自从软件系统首次被分成许多模块,

模块之间有相互作用,组合起来有整体的属性,就具有了体系结构解决复杂问题的对策核心思想

任何作为复合整体的系统都有架构分而治之关注大局、把握整体架构的定义架构的定义从系统的构造或对系统设计的决策方面进行定义学院派定义

IEEE610.12-1990软件工程标准词汇中是这样定义架构的:架构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理(Principle)。SEI(美国卡内基梅隆大学软件研究所)的定义

某个软件或计算机系统的软件架构是该系统的一个或多个结构,每个结构均由软件元素、这些元素的外部可见属性、这些元素之间的关系组成大师对架构的定义构造派Garlan和Shaw的定义

Shaw

的定义软件系统的架构将系统描述为计算组件及组件之间的交互(Thearchitectureofasoftwaresystemdefinesthatsystemintermsofcomputationalcomponentsandinteractionsamongthosecomponents.)。这里的计算组件包括我们所说的模块、子系统、类等不同粒度的承担计算任务的软件单元。 架构包括组件(Component)、连接件(Connector)和约束(Constrain)三大要素。组件可以是一组代码(例如程序模块),也可以是独立的程序(例如数据库服务器)。连接件可以是过程调用、管道和消息等,用于表示组件之间的相互关系。“约束”一般为组件连接时的条件。

Perry和Wolf的定义

Perry和Wolf提出:软件架构是一组具有特定形式的架构元素,这些元素分为三类:负责完成数据加工的处理元素(ProcessingElements)、作为被加工信息的数据元素(DataElements)及用于把架构的不同部分组合在一起的连接元素(ConnectingElements)。Boehm的定义

BarryBoehm和他的学生提出:软件架构包括系统组件、连接件和约束的集合,反应不同涉众需求的集合,以及原理(Rationale)的集合。其中的原理,用于说明由组件、连接件和约束所定义的系统在实现时,是如何满足不同涉众需求的。决策派Woods的观点

EoinWoods是这样认为的:软件架构是一系列设计决策,如果作了不正确的决策,你的项目可能最终会被取消(Softwarearchitectureisthesetofdesigndecisionswhich,ifmadeincorrectly,maycauseyourprojecttobecancelled.)Booch、Rumbaugh和Jacobson的定义(RUP)架构是一系列重要决策的集合,这些决策与以下内容有关:软件的组织,构成系统的结构元素及其接口的选择,这些元素在相互协作中明确表现出的行为,这些结构元素和行为元素进一步组合所构成的更大规模的子系统,以及指导这一组织——包括这些元素及其接口、它们的协作和它们的组合——架构风格。

总结架构首先是对系统的抽象它是一个软件系统从整体到部分的最高层次的划分。

核心即软件系统的结构、行为、属性的高级抽象,基本要素包括组件、连接件及其约束(连接语义)等各种粒度的计算单元及其交互、任务流,同时还要关注与外界的交互。建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。不同的视角、不同的侧重点。软件架构风格什么是软件架构风格 软件架构风格就是指软件架构的模式。什么是模式 模式是特定环境(上下文)出现的重复问题的解决方案。因此软件架构风格是描述某一特定应用领域中系统架构的惯用模式。软件架构定义了特定领域的计算模式,反映了领域中众多系统所共有的结构和语义特性,定义了一组指导构建系统的规则。软件架构风格分层系统(OSI模型、TCP协议栈)C2风格客户/服务器风格(C/S风格)浏览器/服务器(B/S风格)公共对象请求代理构架(CORBA)WEBSERVICE风格SOA面向服务架构其它风格

MVS、虚拟机、管道过滤器、数据流、仓库等其它风格。分层系统分层设计的要点

1每一层为上层服务,并作为下一层的客户。

2内部层只对相邻层可见。

3层与层之间的接口通过决定层间如何交互的协议来定义拓扑约束。分层设计的优点

1支持基于抽象程度递增的系统设计。

2支持功能增强,每次功能改变最多影响上下两层。

3支持重用,只要提供的服务接口不变,同一层不同实现可方便的替换。分层设计的不足

1效率和系统性能

2很难找到一个合适的、正确的层次抽象方法。

3层之间需要定义标准的接口,

4不同的功能实现依赖与不同的层,不能做到构件独立。

分层系统举例

应用层业务层系统抽象层驱动及OS层VOD点播STOCK股票BROWSER界面SI解析搜索节目管理数据存储os封装平台驱动封装启动及初始化STOS20\OS21平台stLINUX平台bbroadcom平台客户/服务器风格两层C/S构架特点应用功能分为客户端应用程序和数据库服务器(负责数据管理),两者之间通过网络进行交互。优点

1实现了应用程序和数据管理的分离。

2可以开发多样的应用程序,不必对每一个新的应用程序开发独立的数据管理程序。

3实现分布式计算,系统扩展方便。缺点

1客户端程序风格不一,不利于推广和维护、移植性差。

2开发复杂、成本高。

3客户机负荷太重,性能变坏。

3安全性差。客户/服务器风格三层C/S架构风格特点三层C/S架构把整个应用逻辑独立出来,放在应用服务器上,整个应用程序分为客户端的表示层、应用功能层、数据层(3tier)。中间件的提出 一类构件,位于基于客户/服务器的操作系统与应用程序之间,管理计算资源以及负责客户机和服务器或者服务器之间的通信,屏蔽多样的硬件和网络,实现应用程序各个部分的互联和无操作。

三层C/S优点

1逻辑结构清晰。

2可维护、可扩展性强、具有良好的可升级性和开放性。

3安全性强。缺点 通信效率要求高。

三层C/S B/S风格一种特殊的C/S风格,表示层有浏览器实现,实现了表示层开发的通用性,客户端的零维护。具体结构为:浏览器/WEB服务器/数据库服务器。是未来的趋势

B/S架构提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。 B/S模型 C/S、B/S架构的使用机顶盒软件可以把应用程序分为独立的表示层、应用逻辑层、数据接收层,每一层各司其职,提高软件架构的逻辑清晰度。 C/S、B/S应用三层逻辑界面应用逻辑数据接收和保存 C2风格特点

1通过构件构建软件,形成构件软件开发模型。

2构件之间只能通过连接件进行异步消息进行通信。

3连接件可以连接任意数目的构件和其它连接件。

4构件相对独立,每个构件完成一定的应用功能。

5容易重用、灵活扩展性强缺点

1调试复杂 C2风格

构件构件构件连接件连接件连接件C2风格的使用GUI的设计

1把每一个控件独立化,之间不存在相互调用关系

2控件之间通过消息进行通信。公共对象请求代理构架(CORBA)目的建立一种机制,使分布式对象可以透明的通信,建立一个异质的分布式计算环境。特点

1提供了基于面向对象技术的软件构件构造技术。

2分布式对象的通信都通过一个公共的对象请求代理中心(中间件)实现同步通信,语言无关的标准的接口调用,ORB还通过服务管理对象、创建对象,实现对象的互操作。

3提供软总线机制,任何语言开发的符合接口规范的对象均能够集成到系统中。公共对象请求代理构架(CORBA)优点

1平台、语言无关性,通过提供的语言无关的对象对外的接口对对象进行调用。

2分布、异构环境下实现对象的可重用、可移植和互操作。

3实现客户与服务对象的完全分开,实现细节和位置透明。缺点

1规范复杂 SOA面向服务架构面向服务的架构是一个组件模型,它将应用程序的不同功能单元----服务(service),通过服务间定义良好的接口和契约(contract)联系起来。它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。包含三种角色:服务提供者、服务请求者、服务代理者。特点

1一种粗粒度、松耦合、位置透明的服务架构。

2服务之间通过简单、精确定义的接口(服务契约)进行通讯,不涉及底层编程接口和通讯模型。

3服务是自治的(Autonomous)、无状态(stateless)功能实体。 SOA面向服务架构优点

1

编码灵活性、系统集成方便。

2容易维护,得益于采用开放标准及服务之间的松耦合特性。

3服务访问方便,方便支持多种客户类型。

4开发和部署上的更高的伸缩性、灵活性和更高的可用性。 WEBSERVICE架构风格即internet上部署的应用服务和模块化应用,webservice使通过internet完成软件、服务、客户、供应商、商业流程的互操作、交换和协作成为可能,webservice架构是SOA架构的一种具体实现方式。特点

1模块的大粒度封装,应用软件或模块都以一种web服务的形式进行封装并对外发布,每一个webservice都实现了一定的计算功能,实现了信息、行为、数据表现和业务流程的封装,软件成为一种服务。

2松耦合,通过internet进行相互调用和互操作。

3以xml、soap、WSDL、UDDI等技术为基础,实现服务的动态描述、发现、动态绑定和调用,实现业务流程的灵活修改和动态装配。 WEBSERVICE模型服务注册中心服务请求者服务提供者绑定查找如何使用SOA及WEBSERVICE在我们的机顶盒软件设计中,建立软件即服务的思想,把软件实现成提供一定服务功能的黑盒子,并且服务功能的接口以标准开放的形式发布或提供,使用者只要读取到该接口就可以知道服务的功能和位置,并与之交互或调用。 MVC架构

视图(GUI,页面)控制器(事件处理)模型(业务逻辑)

三软件架构视图软件架构视图就是对软件架构的表示和建模。对架构的不同角度的建模。 结构模型、动态模型、过程模型、功能模型。4+1视图 4+1视图经典的4+1视图逻辑视图开发视图进程视图物理视图场景

其它多视图

逻辑视图功能模型,描述系统的功能需求,即系统提供提供给最终用户的服务。在面向对象技术中,可以使用对象模型、类图来描述逻辑视图,标识类与类之间的相互关系。机顶盒软件可以按功能模块来描述逻辑视图。

逻辑视图

NVODEPG节目搜索SI解析结果CACHE管理SI接收

开发视图软件模块的组织和管理。开发视图侧重软件开发需求,如软件的重用、扩展性、通用性、可移植性、模块的独立性等需求。开发视图风格通常采用层次结构风格。

机顶盒开发视图机顶盒开发视图应用业务逻辑平台抽象层驱动VOD浏览器股票CAEPGSI解析节目搜索FLASHDEMUXE2PDEMODSMARTFLASHPTIVIDAVAUDav播放

进程视图系统的运行特性关注非功能性需求,如性能和可用性等质量属性、容错性。机顶盒软件可以用进程视图描述关键进程或线程的执行情况以及之间的通信。

进程视图

搜索任务SI接收切换换台PIPE接收EIT事件解析BOOK任务股票LOADER检测

物理视图软件到硬件的映射考虑系统性能、规模以及可靠性。小的独立的嵌入式系统可以没有物理视图,或者只有FLASH规划。

物理视图

场景系统活动的抽象通过场景把四个视图有机联系。通过构建场景可以帮助分析构架的构件之间的相互关系(内外场景),也可以通过场景来验证特定视图是否满足需求。

场景视图

数据视图数据库系统开发需要E/R实体关系图数据分布的七种策略

1大集中

2分区

3独立模式

4子集

5复制

6重组

7不相容

四架构开发过程模型议程两种开发流程概念架构开发过程细化架构开发过程

架构开发范式基于架构的软件开发模型需求分析概念架构细化架构构架文档化构架复审构架实现构架演化

统一开发过程(RUP)用例驱动 用例驱动系统架构,系统架构反过来影响用例的选择。以基本架构为中心 基于关键功能和高风险的用例进行架构设计迭代式和增量迭代与一组用例相关,迭代涉及最为重要的风险。

概念架构

概念架构是大型系统成败的关键重大需求塑造概念架构,概念架构针对重大需求、特色需求、高风险需求给出高层次的解决方案和决策

概念结构设计过程过程

1需求结构化。

2分析约束影响,约束构成系统的上下文。

3确定关键质量,质量是系统完善的动力。

4确定关键功能,功能是发现职责的依据。

5基于关键功能进行用例开发。

6系统切分、高层分割。

7利用目标场景决策表考虑非功能需求。

8得到概念架构模式。

需求结构化

约束影响

确定关键质量

确定关键功能核心功能业务层的接口要反映这些功能,如NVOD、EPG等。必须实现的功能 来自客户方的要求。如排序方式。覆盖了系统架构的一些方面。 数据格式的改变,造成数据的不兼容,必

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论