版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 从本质上讲,软件与硬件的设计和实现是 相通的,是可以相互转换的。Software ArchitectureBy 王备战 (O) 海韵园行政楼A座207Chapter One 概述体系结构是指整个系统构成的基本和主体形态。体系结构成为建立和考察系统的总体指导或基本出发点体系结构对一个应用系统的生命周期有着非常重要的影响软件的复杂性打破了以往硬件与软件的平衡,SA被提出了软件体系结构是软件在设计构成上的基本、可供设计选择的形态和总体结构。软件设计中可供选择的结构形态每个结构概念都传达了一些信息有关领域愈是成熟和发展,人们对结构的认识也就愈加深刻SA概念的提出和应用,说明了软件设计技术在高层次上的
2、发展并走向成熟Chapter One 概述Contents:1.1 软件体系结构1.2 当前的软件设计1.3 软件设计的层次1.4 体系结构与软件的工程设计1.5 软件体系结构的知识体系Chapter One 概述1.1 软件体系结构Chapter One 概述1.1 软件体系结构SA发展1980s使用非正式的框图依靠专家的特定经验不规范、多样地使用体系结构模式和风格1990s认识到了体系结构的价值开发过程中要求体系结构文档,并开始体系结构评审产品化、商业化的体系结构标准和组件集成框架开始出现规范化体系结构设计中的词汇、符号和工具软件体系结构的书籍和课程2000s?Chapter One 概述
3、1.1 软件体系结构软件体系结构软件体系结构定义了软件的局部和总体计算部件的构成,以及这些部件之间的相互作用关系。总的来看,体系结构是由结构和功能各异、相互作用的部件集合,按照层次构成的。体系结构的各组成部分应该易于被重用以组成更大的或者新的系统层次的规范性便于进行系统功能和非功能性分析There is no standard, universally-accepted definition of the term, for software architecture is a field in its infancy, although its roots run deep in softw
4、are engineering. Garlan and Shaw对SA的定义可精简为:体系结构 = 组件 + 连接件 + 约束Architecture = Components + Connectors + ConstrainsChapter One 概述1.1 软件体系结构体系结构的类别概略型需求型设计型体系结构的重要性好的软件体系结构,是好的软件的必要条件。“Good architectural design has always been a major factor in determining the success of a software system.”项目规划、需求分析、设
5、计、实施、评估、维护升级SA对SE的贡献体系结构的重要性SA对SE的贡献开发团队的组织结构捕获需求设计方案的选择分析和描述复杂系统的高层属性人员交流技术进步开发团队的组织结构按体系结构设计出的组件,划分开发小组构建新的类似系统时,每个小组贡献自己的组件捕获需求通过对相似系统的总结、吸收,更利于理解新的相似系统的需求用户在旧系统基础上提出新需求设计方案的选择有众多已有体系结构供参考通过对体系结构的度量,可知哪种体系结构最有效分析和描述复杂系统的高层属性方便人员交流知道了采用的体系结构,也就知道了此系统有何优缺点对体系结构的命名,使交流变得简单技术进步每个新的体系结构的诞生,都给技术的进步带来深远
6、影响WWW三层结构CORBAJ2EE.NETSE的目标是什么?软件质量软件质量运行时质量非运行时质量商业质量体系结构质量通过观察可以得知的质量它是否在做你所期望的事情?它用起来方便吗?计算结果正确吗?算了多久?非法用户能侵入它吗?它多久崩溃或者停止工作一次?通过观察不能得知的质量这个系统开发了多久?被测试了多久?被集成了多久?它的成本是多少?很容易修改吗?软件质量了解了一个方面的质量,并不能对你了解其他方面的质量有多大帮助但是,如果改变结构从而提高一个质量,经常会影响其它质量体系结构的选择极大地影响软件质量,但并不能影响所有的质量体系结构只为获得某个质量创造条件,但并不能保证肯定获得影响软件质
7、量的因素CorrectnessFunctionalityPerformanceSecurity RobustnessAvailabilityUsabilityEase of useModifiability PortabilityReusability Integrability Testability CompatibilityEconomyCorrectness/Functionality功能正确定义:做该做的事情,并且作得对难的是有的时候不知道什么是该做的软件只能被证明有错,不能被证明无错正确性与体系结构无关两个同样功能的软件体系结构必须相同吗?Performance性能定义:系统的响应
8、时间,硬件资源的占用率“Make it right before you make it fast”Architect的手段:分而制之监测与调节简单的资源申请与释放机制Security 安全定义:在对合法用户提供服务的同时,阻止未授权用户的使用企图。Architect的手段:入侵监测防火墙加密与解密提供最少的入口安全核心和外壳Robustness/Availability鲁棒性、可信性、健壮性定义:能长时间正确运行并快速从错误状态恢复到正确状态没有绝对的健壮Robustness/Availability鲁棒性、可信性、健壮性Architect的手段:广泛适用的错误恢复策略提防不可靠的传送冗余关
9、键部件和通讯线路现场切换能力监测活跃状态和错误报告错误产生、捕获和传播的模板快速恢复或启动策略Usability/Ease of use易用性定义:最终用户容易使用和学习Dont pretend you know the user; you dont.Architect的手段:仿照现有的工具和环境统一的界面外观和工具统一风格的帮助Modifiability适应性定义:系统很容易被修改从而适应新的需求或采用新的算法、数据结构的能力改一个组件比改多个组件要容易 但改变一个体系结构则难得多组件由体系结构定义,所以体系结构对此影响很大Modifiability适应性Architect的手段:稳定的功能
10、分解与分配信息隐藏和抽象分层退耦Portability移植性定义:软件可以很简单地在平台间移植Architect的手段:为平台/网络独立分层建立接口标准Reusability 重用性定义:在新系统中应用已有的组件Architect的手段:规则和小型的模式建立应用框架建立产品线体系结构Integrability 集成性定义:让分别开发的组件在一起正确的工作Architect的手段:最小化接口的复杂度限制交互机制和协议的数量建立产品线体系结构统一的命名规范Testability可测性定义:让软件容易被证明是错的Architect的手段:自检、捕获、回放、故障注入和报告一致的错误处理方式Compat
11、ibility兼容性定义:易于把软件元素和其他软件结合文件格式、数据结构、用户界面Architect的手段:中间件Economy 经济效益定义:开发成本、开发时间和对市场的适应能力Architect的手段:正确的选择体系结构组件重用Modifiability关于质量的教训先对要达到的质量做好计划,把它们设计到体系结构中去理解各种体系结构的质量表现很重要,注意折衷控制好实现环节,不要让体系结构的贡献被糟糕的实现消灭怎样提高质量?我们能做的是,使体系结构易于理解可度量可复用可文档化易于交流和执行好的体系结构与大多数好的设计一样是一系列相容的原理和技术的产物,在项目的各个阶段保持一致在各种变化面前表
12、现出弹性在产品的整个生命周期中充当向导重用成熟的工程知识体系结构的设计选择对于软件的长远成功是至关重要的体系结构描述的不规范性习惯势力传统的软件设计是开始于总体概念和代码的体系结构的理论和工具解决软件复杂性和工程设计的必由之路Chapter One 概述1.2 当前的软件设计Chapter One 概述1.3 软件设计的层次层次划分是人们考虑并解决问题的方式方法。网络层次、硬件层次、系统层次 etc.每个层次的设计可单独进行低层次级为了高层次级服务每个层次都包括:构成系统的部件部件合成系统的规则软件设计的层次结构级代码级执行级Chapter One 概述1.4 体系结构与软件的工程设计什么是“
13、工程”?定义有很多,通常来说:用最少的代价解决问题 . 目的是处理实际的难题 . 以科学知识为手段 . 建造工具 . 服务于人类目标:使普通人能做以前只有专家圣手才能做的事情工程的进化Chapter One 概述1.4 体系结构与软件的工程设计实现体系结构指导下的软件工程设计,关键就是要建立软件结构的分析和构造方法。软件复用技术是范例部件的抽取识别部件之工作环境软件复用就是具有特定性能的模式或部件在不同应用中的多次频繁使用。部件模式体系结构对于软件具有宏观的视角,但体系结构设计的问题包含了软件结构的各个层次。 软件体系结构风格为大粒度的软件重用提供了机会。SA在SE中的地位Guide to the Software Engineering Body of Knowledge (SWEBOK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026下半年下半年初中物理教资面试热学真题
- 2026下半年高中生物教资面试生理专项题及解析
- 2026下半年小学数学教资面试计算真题演练试卷
- 2025-2026学年安全自护说课稿
- 2025-2026学年古诗村居幼儿说课稿
- 二年级角的初步认识
- 保险客户沟通技巧
- 四川省南充市嘉陵第一中学2026-2027学年高二上学期第一次月考英语试卷
- 人教版高一必修1《诗三首》课件
- arm嵌入式系统基础教程
- (2026年)支气管哮喘病人的护理课件
- 《食品理化检验技术》课程标准
- 中核集团校招面试题及答案(2026版)
- 中小学学生校服采购项目方案投标文件(技术方案)
- 小鹏定金购车合同范本
- 广州市财政投资信息化工程(建设类)方案编写指南
- 珍珠1024中文控台说明书
- 2025至2030全球及中国计算流体动力学仿真软件行业项目调研及市场前景预测评估报告
- 2024年合肥新站高新技术产业开发区招聘社区工作者40人笔试备考试题及参考答案详解1套
- 2025年国家基本公共卫生服务项目培训试题(附答案)
- DB61∕T 1880-2024 科技成果评估机构服务规范
评论
0/150
提交评论