版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
架构设计作者:毛国红议程Ø
架构的定义架构风格Ø
架构视图Ø
架构开发模式Ø
构架设计方法什么是软件架构自从软件系统首次被分成许多模块,模块之间有相互作用,组合起来有整体的属性,就具有了体系结构解决复杂问题的对策核心思想任何作为复合整体的系统都有架构分而治之关注大局、把握整体架构的定义架构的定义从系统的构造或对系统设计的决策方面进行定义学院派定义
IEEE610.12-1990软件工程标准词汇中是这样定义架构的:架构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理(Principle)。SEI(美国卡内基梅隆大学软件研究所)的定义某个软件或计算机系统的软件架构是该系统的一个或多个结构,每个结构均由软件元素、这些元素的外部可见属性、这些元素之间的关大师对架构的定义构造派Garlan和Shaw的定义Shaw
的定义软件系统的架构将系统描述为计算组件及组件之间的交互(The
architectureofa
software
system
defines
that
system
interms
of
computational
componentsandinteractions
among
those
components.)。这里的计算组件包括我们所说的模块、子系统、类等不同粒度的承担计算任务的软件单元。架构包括组件(Component)、连接件(Connector)和约束(Constrain)三大要素。组件可以是一组代码(例如程序模块),也可以是独立的程序(例如数据库服务器)。连接件可以是过程调用、管道和消息等,用于表示组件之间的相互关系。“约束”一般为组件连接时的条件。Perry和Wolf的定义Perry和Wolf提出:软件架构是一组具有特定形式的架构元素,这些元素分为三类:负责完成数据加工的处理元素(ProcessingElements)、作为被加工信息的数据元素(DataElements)及用于把架构的不同部分组合在一起的连接元素(Connecting
Elements)。Boehm的定义BarryBoehm和他的学生提出:软件架构包括系统组件、连接件和约束的集合,反应不同涉众需求的集合,以及原理(Rationale)的集合。其中的原理,用于说明由组件、连接件和约束所定义的系统在实现时,是如何满足不同涉众需求的。决策派Woods的观点Eoin
Woods是这样认为的:软件架构是一系列设计决策,如果作了不正确的决策,你的项目可能最终会被取消(Software
architectureis
the
set
of
design
decisions
which,ifmade
incorrectly,may
cause
your
projectto
be
cancelled.)Booch、Rumbaugh和Jacobson的定义(RUP)架构是一系列重要决策的集合,这些决策与以下内容有关:软件的组织,构成系统的结构元素及其接口的选择,这些元素在相互协作中明确表现出的行为,这些结构元素和行为元素进一步组合所构成的更大规模的子系统,以及指导这一组织——包括这些元素及其接口、它们的协作和它们的组合——架构风格。总结Ø
架构首先是对系统的抽象Ø它是一个软件系统从整体到部分的最高层次的划分。核心即软件系统的结构、行为、属性的高级抽象,基本要素包括组件、连接件及其约束(连接语义)等各种粒度的计算单元及其交互、任务流,同时还要关注与外界的交互。建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。不同的视角、不同的侧重点。软件架构风格什么是软件架构风格软件架构风格就是指软件架构的模式。什么是模式模式是特定环境(上下文)出现的重复问题的解决方案。因此软件架构风格是描述某一特定应用领域中系统架构的惯用模式。软件架构定义了特定领域的计算模式,反映了领域中众多系统所共有的结构和语义特性,定义了一组指导构建系统的规则。软件架构风格分层系统(OSI模型、TCP协议栈)C2风格客户/服务器风格(C/S风格)浏览器/服务器(B/S风格)公共对象请求代理构架(CORBA)WEB
SERVICE风格SOA
面向服务架构其它风格MVS、虚拟机、管道过滤器、数据流、仓库等其它风格。分层系统Ø
分层设计的要点每一层为上层服务,并作为下一层的客户。内部层只对相邻层可见。层与层之间的接口通过决定层间如何交互的协议来定义拓扑约束。Ø
分层设计的优点支持基于抽象程度递增的系统设计。支持功能增强,每次功能改变最多影响上下两层。支持重用,只要提供的服务接口不变,同一层不同实现可方便的替换。Ø
分层设计的不足效率和系统性能很难找到一个合适的、正确的层次抽象方法。层之间需要定义标准的接口,不同的功能实现依赖与不同的层,不能做到构件独立。分层系统举例
应用层VOD点
STOCK播
股票BROWSER界面业务层SI解析
搜索节目管理数据存储系统抽象层os封装
平台驱动封
启动及初始装
化驱动及OS层STOS20\OS21平台st
LINUX
平台bbroadcom平台客户/服务器风格两层C/S构架特点应用功能分为客户端应用程序和数据库服务器(负责数据管理),两者之间通过网络进行交互。优点实现了应用程序和数据管理的分离。可以开发多样的应用程序,不必对每一个新的应用程序开发独立的数据管理程序。实现分布式计算,系统扩展方便。缺点客户端程序风格不一,不利于推广和维护、移植性差。开发复杂、成本高。客户机负荷太重,性能变坏。3安全性差。客户/服务器风格三层C/S架构风格特点三层C/S架构把整个应用逻辑独立出来,放在应用服务器上,整个应用程序分为客户端的表示层、应用功能层、数据层(3
tier)。中间件的提出一类构件,位于基于客户/服务器的操作系统与应用程序之间,管理计算资源以及负责客户机和服务器或者服务器之间的通信,屏蔽多样的硬件和网络,实现应用程序各个部分的互联和无操作。三层C/S优点逻辑结构清晰。可维护、可扩展性强、具有良好的可升级性和开放性。安全性强。缺点通信效率要求高。三层C/SB/S
风格一种特殊的C/S风格,表示层有浏览器实现,实现了表示层开发的通用性,客户端的零维护。具体结构为:浏览器/WEB
服务器/数据库服务器。是未来的趋势B/S架构提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。B/S
模型C/S、B/S架构的使用机顶盒软件可以把应用程序分为独立的表示层、应用逻辑层、数据接收层,每一层各司其职,
提高软件架构的逻辑清晰度。C/S
、B/S应用三层逻辑界面应用逻辑数据接收和保存C2风格特点通过构件构建软件,形成构件软件开发模型。构件之间只能通过连接件进行异步消息进行通信。连接件可以连接任意数目的构件和其它连接件。构件相对独立,每个构件完成一定的应用功能。容易重用、灵活扩展性强缺点调试复杂C2风格构件构件构件连接件连接件连接件C2风格的使用GUI的设计把每一个控件独立化,之间不存在相互调用关系控件之间通过消息进行通信。公共对象请求代理构架(CORBA)目的建立一种机制,使分布式对象可以透明的通信,建立一个异质的分布式计算环境。特点提供了基于面向对象技术的软件构件构造技术。分布式对象的通信都通过一个公共的对象请求代理中心(中间件)实现同步通信,语言无关的标准的接口调用,ORB还通过服务管理对象、创建对象,实现对象的互操作。提供软总线机制,任何语言开发的符合接口规范的对象均能够集成到系统中。公共对象请求代理构架(CORBA)优点平台、语言无关性,通过提供的语言无关的对象对外的接口对对象进行调用。分布、异构环境下实现对象的可重用、可移植和互操作。实现客户与服务对象的完全分开,实现细节和位置透明。缺点规范复杂SOA
面向服务架构面向服务的架构是一个组件模型,它将应用程序的不同功能单元----服务(service),通过服务间定义良好的接口和契约(contract)联系起来。它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。包含三种角色:服务提供者、服务请求者、服务代理者。特点1一种粗粒度、松耦合、位置透明的服务架构。服务之间通过简单、精确定义的接口(服务契约)进行通讯,不涉及底层编程接口和通讯模型。服务是自治的(Autonomous)、无状态(stateless)功能实体。SOA
面向服务架构优点编码灵活性、系统集成方便。容易维护,得益于采用开放标准及服务之间的松耦合特性。服务访问方便,方便支持多种客户类型。开发和部署上的更高的伸缩性、灵活性和更高的可用性。WEB
SERVICE
架构风格即internet
上部署的应用服务和模块化应用,webservice使通过internet完成软件、服务、客户、供应商、商业流程的互操作、交换和协作成为可能,
web
service
架构是SOA架构的一种具体实现方式。特点模块的大粒度封装,应用软件或模块都以一种web服务的形式进行封装并对外发布,每一个webservice
都实现了一定的计算功能,实现了信息、行为、数据表现和业务流程的封装,软件成为一种服务。松耦合,通过internet进行相互调用和互操作。以xml、soap、WSDL、UDDI等技术为基础,实现服务的动态描述、发现、动态绑定和调用,实现业务流程的灵活修改和动态装配。WEB
SERVICE
模型服务请求者服务提供者绑定服务注册中心查找如何使用SOA及WEB
SERVICE在我们的机顶盒软件设计中,建立软件即服务的思想,把软件实现成提供一定服务功能的黑盒子,并且服务功能的接口以标准开放的形式发布或提供,使用者只要读取到该接口就可以知道服务的功能和位置,并与之交互或调用。MVC
架构
视图(GUI,页面)控制器(事件处理)模型(业务逻辑)三 软件架构视图软件架构视图就是对软件架构的表示和建模。Ø
对架构的不同角度的建模。l
结构模型、动态模型、过程模型、功能模型。l
4+1
视图4+1
视图经典的4+1视图逻辑视图开发视图进程视图物理视图场景其它多视图逻辑视图功能模型,描述系统的功能需求,即系统提供提供给最终用户的服务。在面向对象技术中,可以使用对象模型、类图
来描述逻辑视图,标识类与类之间的相互关系。机顶盒软件可以按功能模块来描述逻辑视图。逻辑视图
NVODEPG节目搜索SI解析结果CACHE管理SI接收开发视图软件模块的组织和管理。开发视图侧重软件开发需求,如软件的重用、扩展性、通用性、可移植性、模块的独立性等需求。开发视图风格通常采用层次结构风格。机顶盒开发视图机顶盒开发视图应用业务逻辑平台抽象层驱动VOD浏览器股票CAEPGSI解析节目搜索FLASHDEMUXE2PDEMODSMARTFLASHPTIVIDAVAUDav播放进程视图系统的运行特性关注非功能性需求,如性能和可用性等质量属性、容错性。机顶盒软件可以用进程视图描述关键进程或线程的执行情况以及之间的通信。进程视图
搜索任务SI
接收切换换台PIPE接收EIT事件解析BOOK任务股票LOADER检测物理视图软件到硬件的映射考虑系统性能、规模以及可靠性。小的独立的嵌入式系统可以没有物理视图,或者只有FLASH规划。物理视图场景系统活动的抽象通过场景把四个视图有机联系。通过构建场景可以帮助分析构架的构件之间的相互关系(内外场景),也可以通过场景来验证特定视图是否满足需求。场景视图数据视图数据库系统开发需要E/R
实体关系图数据分布的七种策略大集中分区独立模式子集复制重组不相容四架构开发过程模型议程两种开发流程概念架构开发过程细化架构开发过程架构开发范式基于架构的软件开发模型需求分析概念架构细化架构构架文档化构架复审构架实现构架演化统一开发过程(RUP)用例驱动用例驱动系统架构,系统架构反过来影响用例的选择。以基本架构为中心基于关键功能和高风险的用例进行架构设计迭代式和增量迭代与一组用例相关,迭代涉及最为重要的风险。概念架构概念架构是大型系统成败的关键重大需求塑造概念架构,概念架构针对重大需求、特色需求、高风险需求给出高层次的解决方案和决策概念结构设计过程过程需求结构化。分析约束影响,约束构成系统的上下文。确定关键质量,质量是系统完善的动力。确定关键功能,功能是发现职责的依据。基于关键功能进行用例开发。系统切分、高层分割。利用目标场景决策表考虑非功能需求。得到概念架构模式。需求结构化约束影响确定关键质量确定关键功能核心功能业务层的接口要反映这些功能,如NVOD、EPG等。必须实现的功能来自客户方的要求。如排序方式。覆盖了系统架构的一些方面。数据格式的改变,造成数据的不兼容,必须实现数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 艺术摄影服务合同
- 定制公司工作服合同
- 合同协议订金合同的合同争议解决
- 购买招标文件关键要点介绍信
- 房地产招标函全解析案例
- 酒店式办公室租赁合同
- 购房合同安全保证函
- 正规不锈钢购销合同
- 合同违约处理律师协助
- 烟煤粉采购合同的采购流程
- 黑龙江裕盛源再生资源利用有限公司年处理10万吨废旧轮胎资源综合利用科技示范项目环境影响报告
- 古扎拉蒂《计量经济学基础》(第5版)笔记和课后习题详解
- 设计更改通知书
- 古建筑修缮工程文明施工措施
- 中小学图书馆管理员业务培训课件
- 医院职工奖惩办法实施细则范本(五篇)
- 职业暴露后处理流程图
- 血透患者的健康宣教ppt
- ul2464电线线径标准
- NB/T 11123-2023煤矿安全双重预防机制规范
- 国开学习网电大数据库应用技术第四次形考作业实验答案
评论
0/150
提交评论