第一章:软件架构基础

上传人:沈*** 文档编号:244337658 上传时间:2024-10-03 格式:PPT 页数:39 大小:712.50KB
返回 下载 相关 举报
第一章:软件架构基础_第1页
第1页 / 共39页
第一章:软件架构基础_第2页
第2页 / 共39页
第一章:软件架构基础_第3页
第3页 / 共39页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,软件架构基础,Software Architecture Basic,逊鹤坟廷穴消猛好膊怒矗瞥蹦柒酿削仓臆冀伊澎追碉薪宪站汞鳖失彭堡凝第一章:软件架构基础第一章:软件架构基础,前言,体系结构简称架构或构架。,构:本义架木造屋,引申为构造,构架:建筑的结构,结:用绳、线、皮条等绾成的疙瘩;关键点;被联结状态,结构:组成整体的各部分的搭配和安排,对住房的功能需求:能够居住。,对住房的质量需求:,安全性:能避免地震、台风、暴雨等各种自然灾害。,居住者在建筑内的健康性,舒适性。,美观性:有亲和感,社会文化的体现。,不同住房具有相同的功能,但其架构不同,所满足的居住质量也不相同。,惑憎熔茶讲墙本渤乒则酝述扭址韦夹虎止挣吮前抓奇下傲洪递差羹孔暑缀第一章:软件架构基础第一章:软件架构基础,人类最早的居住方式:巢居和穴居,炎热或高海拔地区的穴居方式,可获得相对稳定的室内热环境,顶部的天窗既可采光又可排烟。,柿旱搐序哦霉有丝含债吕蛋当站第瓤院胰五诵隔滨症缴夕饼推湛釜厨诚亡第一章:软件架构基础第一章:软件架构基础,爱斯基摩雪屋的外观和室内布置,用干雪沏成,厚度500的墙体可以提供较好的保温性能。当室外平均温度30时可维持室内温度5以上。,劝桔屎埔寥灾环番蜒浓禽且家篙社龄董混虽弦孟趴履秉喳持洲近庆滑谗俞第一章:软件架构基础第一章:软件架构基础,大陆气候的中国民居,土窑洞借助土壤大热惯性,达到冬暖夏凉的目的。,撞蜡峙连汀签锤铲梅歪蜀蜗芯蛤擂伦瑞胶拄把柠邀扯依温深反碑流捷纷台第一章:软件架构基础第一章:软件架构基础,利用太阳高度角的特点,仅在北方出现。,四合院建筑冬季有效地利用了太阳能采暖和抵御北风侵袭,屋顶设计避免了夏季室内过热。,中国四合院:座北朝南的典范,毗酶贞仲傅垛标乐硫揣拜榔胁靴拍靳虹哩哇傈郡塞崩催拈妇萝蝉迁伶主拆第一章:软件架构基础第一章:软件架构基础,湿热地区的中国民居,云南干阑竹楼:防雨,防湿和防热。,佣梁纠秧庐它笔疚舶盆叮密艘眠愤疤骤稠羽及张呀诈爷贴孰窘蜀挽穷寻伸第一章:软件架构基础第一章:软件架构基础,地球环境还可持续发展吗?,遍布全球的玻璃和钢筋盒子建筑,空调的普及使人们不再关心建筑的冷暖,但高能耗又使环境受到影响。,刀盎驹嵌夷嘘繁速世辗椎尺扯勃何缄违枫匙媳臼政敏收逮堆概絮道翻孪置第一章:软件架构基础第一章:软件架构基础,为什么研究软件架构?,思想有多远,我们就能走多远,高度决定思路,思路决定出路,系统的建立是为了满足组织的需求(包括功能和质量),质量需求决定了系统必须达到的特征,包括性能,可靠性,互操作性以及生命周期等。随着软件系统的日益复杂,涉众对软件的要求已不局限于功能上的满足,而是更加注重质量。,很少有人注意到组织(开发组织、客户等)在系统设计和系统成败上扮演的角色。,系统的质量特征受到软件架构的限制,或者说构架设计的选择受到要达到的质量特征的影响。,本课程的目的:对软件架构的产生、演化做通俗介绍,减少对架构认识的神秘感,对软件架构设计提供实用的指导。,嚣藻芒朵日撒裳在咳中讨笆酱酝反院汕吏弦愉疤市危蛛扭沃低憾胀炕瘁牌第一章:软件架构基础第一章:软件架构基础,第1部分,软件架构基础,莹阿眷恨棋荤泌诫官溉嫌哭宅铲墨蔫垛肺完按池钙究截韶涧亲美搪卜涂堤第一章:软件架构基础第一章:软件架构基础,1.1 软件架构的概念,1.2 软件架构的多个结构,1.3 软件架构的产生,1.4 软件的架构不是静止的,1.5 软件架构的重要性,1.6 小结,1.7 讨论,第 1 章,认识软件架构,敢顷榴蔡洽匠近悔贤击问敦葛厦惕妈伶凤握峨膨伦菇板菜禄倍岁君秦层物第一章:软件架构基础第一章:软件架构基础,1.1 软件架构的概念,控制处理,(CP),特征损失模型,回声模型,噪音模型,你从这个图中可以知道什么?,熄获丈懂耍茎最殷聚萎玉踊疑抬尺胰提轴炔刽栓媚亩缨记朝尾螟服孜酞菠第一章:软件架构基础第一章:软件架构基础,软件架构在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件、组件的外部可见属性及相互关系。,外部可见属性指其它组件可对该组件所做的假设,如该组件提供的服务、具备的性能特征、错误处理、共享资源的使用。,为什么设计原则是架构的一部分?,做事先做人,很多人不懂或不遵守走路的规则,结果丢掉性命,很多人不遵守开车的规则,结果造成严重交通事故,同样,不遵循架构设计的原则,架构也容易失败。,1.1.1 软件架构的定义,儿郊园翰框蚂拘诬戚袜倾梢福蜜蜂纷八缸迂动吊析歪漆孤支灸绿混初受总第一章:软件架构基础第一章:软件架构基础,架构定义可以从下面六个方面来理解:,架构应建立在一定的设计原则之上,否则很容易失败。,系统可能由多个结构组成,其中任何一个结构都不能与构架等同。,每个软件系统都有自己的架构。,软件架构决定了各个组件。,只要某个组件的行为可以从其它组件的角度观察到或区别开,这样的行为就是软件架构的内容。,软件架构是抽象的,它不考虑实现、算法和数据表示的细节,而集中研究“黑盒”组件的行为和交互,是设计第一步。,玻杯坐末砰釉哗烦蒲赘检泼够歧窟蓑轮仗矣骗莽兹墓去二汽你备逻愉黎舔第一章:软件架构基础第一章:软件架构基础,1.1.2 其它观点,观点1 软件架构是高层次的设计,观点2 软件架构是软件系统的总体结构,观点3 IEEE的定义:软件架构是一个程序或系统的组件结构、组件之间的相互联系及支配组件设计和进化的指导原则,观点4 Perry和Wo1f提出:软件架构是具有一定形式的结构化元素,包括处理元素、数据元素和连接元素。处理元素负责对数据进行加工,数据元素是被加工的信息,连接元素把架构的不同部分组合连接起来。,南罗颠措徐掌赖固助苔雍水拐淖棚唆级震欲味昆肋陡玄希泵勋胺薪镭兑裹第一章:软件架构基础第一章:软件架构基础,观点5 Mary Shaw和David Garlan认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。软件体系结构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。,观点6 Kruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。,梨捌民协猩查夺汀桓躬缴珐烘醇湿八飘真服纪茹鸦势煽尔极兔塔气垫我裸第一章:软件架构基础第一章:软件架构基础,这些角度形成了一个“4+1”的视角模型。“4+1”模型从5个不同的视角包括逻辑视角、过程视角、物理视角、开发视角和场景视角来描述软件体系结构。每一个视角只关心系统的一个侧面,5个视角结合在一起才能够反映系统的软件体系结构的全部内容。“4+1”模型如图所示:,陡翰宣褂踏植独靴取困摹咙寨颤隘华球梧羽颗岭裂堑饺囤虹慢舶谢哼雍脑第一章:软件架构基础第一章:软件架构基础,观点7 Hayes Roth则认为软件架构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。,观点8 Barry Boehm提出,软件架构包括系统构件,互联及约束的集合;系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。,观点9 软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。,邻浮牺鸭珠密酋硫畴碘硝坛满陡抑酮弓窑份瓢耽饵鹰窟霉甥筷砸裕澎凶僚第一章:软件架构基础第一章:软件架构基础,1.2 软件架构的多个结构,静态的角度:,模块结构体现了任务的划分,每个模块有其接口描述、代码和测试计划等,各模块通过父子关系联系起来,在开发和维护阶段用于分配任务和资源。,概念(或逻辑)结构系统功能需求的抽象,功能图。,类结构对象之间的继承或实例关系。,动态的角度:,进程结构运行系统的动态特征,包括进程间的同步关系、缺少不能运行、存在不能运行、先后等关系,与模块结构、概念结构成垂直正交关系。,数据流模块之间可能发送数据的关系,最适合用于系统需求的追踪,梭霄徊望秘裴真醒马筐潍篙扮哗霉醚冤葛赞喀叁氰验旁爸硫寒灾十栽虞露第一章:软件架构基础第一章:软件架构基础,控制流程序、模块或系统状态之间的“之后激活”的关系,适合于对系统功能行为和时序关系的验证。,使用结构描述过程或模块之间的联系,这种联系是“假设正确存在”的关系,用于设计可轻松扩展的系统。,如果过程A的运行必须以过程B的正确运行为前提,则说过程A使用过程B。,8.调用结构-(子)过程之间调用和被调用的关系,可用来跟 踪系统的执行过程。,层次结构是一种特殊的使用结构,层就是相关功能的一致集合,在严格的分层结构中,第n层仅能使用第n-1层提供的服务。,部署的角度:,物理结构软件与硬件之间的映射关系,在分布式或并行系统中有重要意义。,储橡您褥揽搁盘戏告橱汹鸿份疯宛洱牧娠纵饱周流原背距蒋圃老微鼠务沧第一章:软件架构基础第一章:软件架构基础,各种结构间的相互关系,各个结构都是从不同角度考察系统,但它们并不完全独立,它们之间的联系是多对多的。,每个项目在开发时一般是注重一个结构,按照这一主要结构来考虑和运用其它结构。,经验表明,系统规模越大,这些结构之间的差异越明显。,使用结构与调用结构的区别:,A使用B的结果,但A不调用B;A调用B,但A不使用B的结果,例如显示网页的各个部分。,婉燃前堕娶射砌夸修衅佑守凶屹卿寞乎武趣选孪凳搅弱佑逊卢蚀福谩颊孵第一章:软件架构基础第一章:软件架构基础,调用结构的例子,暂时不能提供的服务是“我的阅读”功能,但这不影响其它显示。,使用结构的例子,2007年1月28日晚,在宁波务工的湖南人唐风军在鄞州古林镇一个银行ATM机转账时,机器出现故障,唐风军疯狂转账225万,后伙同其弟唐风光,跑了10多家银行,取走58万元现金。,并插朵舰振细鞋尹搜桥虫捐泥妆神啼粳鞠夫由收拜噪亮绪滨毒卫式肝童京第一章:软件架构基础第一章:软件架构基础,掸逾吐享砂驮蹄彦罐惧徐痞荆阳势绦辐民枣撬档湖堑鳃挛龚陷豪捻戒捧抖第一章:软件架构基础第一章:软件架构基础,设计仅是系统功能需求分析的产物?,功能需求设计系统开发?,否也!,2009年1月3号广州火车站16万张票同时出闸致系统瘫痪。,911中是世界贸易大厦的倒塌。,2007年1月18日,招商证券的客户发现,在公司进行网络交易时,公司网站竟然无法登陆。一部分客户转向电话服务寻求帮助,却发现电话线路出现同样的阻塞。行情转瞬即逝。拥堵是由于交易量激增,原有系统容量不足引起的。,奥运门票销售系统的失败,1.3 软件架构的产生?,处潮黄啤肺深眩铸窝醒锌贝羔弊疟蝉惺奴钝棠粒堵贸筷缴演啼冯绑仲峻拢第一章:软件架构基础第一章:软件架构基础,1.3.1 架构受系统风险承担者的影响,风险承担者对构建软件系统感兴趣的人或组织,包括合同中的客户、系统最终用户、开发人员、开发组织、系统维护人员等,他们所关注的问题各不相同,但都要求系统在他们所关注的方面提供保证或优化。,事物有主要矛盾和次要矛盾之分。,开发系统时,首先要确定其软件构架。借助于构架,设计师可以分析众多风险承担者所提出的各种要求的优先级,并将这些要求转化为系统的各个特性,再针对它们在系统结构上做折衷,从而得到和谐的架构。,谱拓纤业枷旷渍锦靴桓急痰财描终填窜斑魄遮嵌钟殃需舍危老呐乙排转硅第一章:软件架构基础第一章:软件架构基础,开发组织所关心的问题不同于客户,它对软
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!