版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构1整理ppt第1章软件体系结构概论从软件危机谈起◎软件本钱日益增长◎开发进度难以控制◎软件质量差◎软件维护困难2整理ppt软件本钱日益增长20世纪50年代,软件本钱在整个计算机系统本钱中所占的比例为10%-20%。到20世纪60年代中期,软件本钱在计算机系统中所占的比例已经增长到50%左右。而且,该数字还在不断地递增,下面是一组来自美国空军计算机系统的数据:1955年,软件费用约占总费用的18%,1970年到达60%,1975年到达72%,1980年到达80%,1985年到达85%左右。3整理ppt开发进度难以控制由于软件是逻辑、智力产品,软件的开发需建立庞大的逻辑体系,这是与其他产品的生产不一样的。在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的方案实现,给工程方案和论证工作带来了很大的困难。盲目增加软件开发人员并不能成比例地提高软件开发能力。相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理等方面的问题将更为严重。4整理ppt软件质量差软件工程即使能按预定日期完成,结果却不尽人意。1965年至1970年,美国范登堡基地发射火箭屡次失败,绝大局部故障是由应用程序错误造成的。在“软件作坊〞里,由于缺乏工程化思想的指导,程序员几乎总是习惯性地以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的“一厢情愿〞而已,这是造成软件不能令人满意的重要因素。5整理ppt软件维护困难由于在软件设计和开发过程中,没有严格遵循软件开发标准,各种随意性很大,没有完整的真实反映系统状况的记录文档,给软件维护造成了巨大的困难。特别是在软件使用过程中,原来的开发人员可能因各种原因已经离开原来的开发组织,使得软件几乎不可维护。有资料说明,工业界为维护软件支付的费用占全部硬件和软件费用的40%-75%。6整理ppt软件危机的原因
用户需求不明确缺乏正确的理论指导软件规模越来越大软件复杂度越来越高7整理ppt用户需求不明确在软件开发完成之前,用户不清楚软件的具体需求;用户对软件需求的描述不精确,可能有遗漏、有二义性、甚至有错误;在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求;开发人员对用户需求的理解与用户本来愿望有差异。8整理ppt缺乏正确的理论指导缺乏有力的方法学和工具方面的支持。由于软件不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化,也是发生软件危机的一个重要原因。9整理ppt软件规模越来越大随着软件应用范围的增广,软件规模愈来愈大。大型软件工程需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。软件工程开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。10整理ppt软件复杂度越来越高软件不仅仅是在规模上快速地开展扩大,而且其复杂性也急剧地增加。软件产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题〞。所谓“复杂问题〞的概念是相对的,一旦人们采用先进的组织形式、开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前。11整理ppt如何克服软件危机人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败。要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。在技术上,应该采用基于重用的软件生产技术;在管理上,应该采用多维的工程管理模式。12整理ppt“建筑体系结构〞13整理ppt前言体系结构简称架构或构架。构:本义架木造屋,引申为构造构架:建筑的结构结:用绳、线、皮条等绾成的疙瘩;关键点;被联结状态结构:组成整体的各局部的搭配和安排对住房的功能需求:能够居住。对住房的质量需求:平安性:能防止地震、台风、暴雨等各种自然灾害。居住者在建筑内的健康性,舒适性。美观性:有亲和感,社会文化的表达。不同住房具有相同的功能,但其架构不同,所满足的居住质量也不相同。14整理ppt人类最早的居住方式:巢居和穴居炎热或高海拔地区的穴居方式,可获得相对稳定的室内热环境,顶部的天窗既可采光又可排烟。15整理ppt爱斯基摩雪屋的外观和室内布置
用干雪沏成,厚度500mm的墙体可以提供较好的保温性能。当室外平均温度-30℃时可维持室内温度-5℃以上。16整理ppt大陆气候的中国民居土窑洞借助土壤大热惯性,到达冬暖夏凉的目的。17整理ppt利用太阳高度角的特点,仅在北方出现。四合院建筑冬季有效地利用了太阳能采暖和抵御北风侵袭,屋顶设计防止了夏季室内过热。中国四合院:座北朝南的典范18整理ppt湿热地区的中国民居云南干阑竹楼:防雨,防湿和防热。19整理ppt地球环境还可持续开展吗?
遍布全球的玻璃和钢筋盒子建筑空调的普及使人们不再关心建筑的冷暖,但高能耗又使环境受到影响。20整理ppt为什么研究软件架构?思想有多远,我们就能走多远高度决定思路,思路决定出路系统的建立是为了满足组织的需求〔包括功能和质量〕,质量需求决定了系统必须到达的特征,包括性能,可靠性,互操作性以及生命周期等。随着软件系统的日益复杂,涉众对软件的要求已不局限于功能上的满足,而是更加注重质量。很少有人注意到组织〔开发组织、客户等〕在系统设计和系统成败上扮演的角色。系统的质量特征受到软件架构的限制,或者说构架设计的选择受到要到达的质量特征的影响。
21整理ppt本课程的目的:对软件体系结构的产生、演化做通俗介绍,减少对软件体系结构认识的神秘感,对软件体系结构设计提供实用的指导。22整理ppt第1局部:软件构架的根底第2局部:构架的创立第3局部:构架的分析与评审23整理ppt课程形式理论课、专题课、作业成绩评定作业、考勤、考试作业+考勤30%、考试70%24整理ppt软件架构的概念控制处理(CP)特征损失模型回声模型噪音模型25整理ppt软件架构—在一定的设计原那么根底上,从不同角度对组成系统的各局部进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件、组件的外部可见属性及相互关系。外部可见属性—指其它组件可对该组件所做的假设,如该组件提供的效劳、具备的性能特征、错误处理、共享资源的使用。为什么设计原那么是架构的一局部?做事先做人很多人不懂或不遵守走路的规那么,结果丢掉性命很多人不遵守开车的规那么,结果造成严重交通事故同样,不遵循架构设计的原那么,架构也容易失败。软件架构的定义26整理ppt架构定义可以从下面六个方面来理解:架构应建立在一定的设计原那么之上,否那么很容易失败。系统可能由多个结构组成,其中任何一个结构都不能与构架等同。每个软件系统都有自己的架构。软件架构决定了各个组件。只要某个组件的行为可以从其它组件的角度观察到或区别开,这样的行为就是软件架构的内容。软件架构是抽象的,它不考虑实现、算法和数据表示的细节,而集中研究“黑盒〞组件的行为和交互,是设计第一步。27整理ppt其它观点观点1软件架构是高层次的设计观点2软件架构是软件系统的总体结构观点3IEEE的定义:软件架构是一个程序或系统的组件结构、组件之间的相互联系及支配组件设计和进化的指导原那么观点4Perry和Wo1f提出:软件架构是具有一定形式的结构化元素,包括处理元素、数据元素和连接元素。处理元素负责对数据进行加工,数据元素是被加工的信息,连接元素把架构的不同局部组合连接起来。28整理ppt观点5MaryShaw和DavidGarlan认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括总体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。软件体系结构处理算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。观点6Kruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。29整理ppt这些角度形成了一个“4+1〞的视角模型。“4+1〞模型从5个不同的视角包括逻辑视角、过程视角、物理视角、开发视角和场景视角来描述软件体系结构。每一个视角只关心系统的一个侧面,5个视角结合在一起才能够反映系统的软件体系结构的全部内容。“4+1〞模型如下图:30整理ppt观点7HayesRoth那么认为软件架构是一个抽象的系统标准,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。观点8BarryBoehm提出,软件架构包括系统构件,互联及约束的集合;系统需求说明的集合;一个根本原理用以说明这一构件,互联和约束能够满足系统需求。观点9软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的根本原理。31整理ppt设计仅是系统功能需求分析的产物?功能需求设计系统开发?否也!!!2021年1月3号广州火车站16万张票同时出闸致系统瘫痪。911中是世界贸易大厦的倒塌。2007年1月18日,招商证券的客户发现,在公司进行网络交易时,公司网站竟然无法登陆。一局部客户转向效劳寻求帮助,却发现线路出现同样的阻塞。行情转瞬即逝。拥堵是由于交易量激增,原有系统容量缺乏引起的。奥运门票销售系统的失败软件架构的产生?32整理ppt软件体系结构研究的问题结构性问题系统的组织,由哪些组件构成全局性的控制结构通讯,同步或访问的协议将功能分配到不同的系统组成局部设计元素的组成系统的物理分布可扩展性,性能33整理ppt主要内容包括A对系统组成元素的描述B这些元素相互之间的交互C系统组成的模式D模式的约束所以在软件构架中,系统以组件和组件之间的交互进行定义当前的系统同时可以作为更高层设计的一个系统组件34整理ppt软件设计的层次软件设计可以在多个不同的层次,在每一层我们都会发现相应的组件以及由这些组件组成更大的组件的组合机制.二进制执行文件层位模式代码层编程语言的原语,操作符;
记录,数组,过程;构架层模块35整理ppt软件体系结构的意义体系结构是风险承担者进行交流的手段软件体系结构代表了系统的公共的高层次的抽象。这样,系统的大局部有关人员〔即使不是全部〕能把它作为建立一个互相理解的根底,形成统一认识,互相交流。体系结构提供了一种共同语言来表达各种关注和协商,进而对大型复杂系统能进行理智的管理。这对工程最终的质量和使用有极大的影响。36整理ppt体系结构是早期设计决策的表达软件体系结构明确了对系统实现的约束条件软件体系结构决定了开发和维护组织的组织结构软件体系结构制约着系统的质量属性通过研究软件体系结构可能预测软件的质量软件体系结构使推理和控制更改更简单软件体系结构有助于循序渐进的原型设计软件体系结构可以作为培训的根底37整理ppt软件体系结构是可传递和可重用的模型
软件体系结构级的重用意味着体系结构的决策能在具有相似需求的多个系统中发生影响,这比代码级的重用要有更大的好处。38整理ppt软件体系结构的开展史“无体系结构〞设计阶段萌芽阶段以汇编语言进行小规模应用程序开发为特征以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构模型与传统软件结构的界限,该阶段以Kruchten提出的“4+1”模型为标志出现了从不同侧面描述系统的结构模型,以UML为典型代表。出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征高级阶段初期阶段39整理pptPerry和Wolf认为未来的年代是研究软件体系结构的时代40整理ppt软件体系结构的应用现状
软件体系结构描述语言体系结构描述构造与表示体系结构分析、设计与验证体系结构发现、演化与重用基于体系结构的软件开发方法特定领域的体系结构框架软件体系结构支持工具软件产品线体系结构建立评价软件体系结构的方法41整理ppt我们的目标在软件开发过程中使用软件体系结构成为系统架构师42整理ppt系统架构师系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个工程,使设计的工程尽量效率高,开发容易,维护方便,升级简单等。系统构架师是近几年来在国内外迅速成长并开展良好的一个职位。比尔•盖茨〔首席软件架构师〕;丁磊〔首席架构师〕43整理ppt系统架构师的职责l、领导与协调整个工程中的技术活动〔分析、设计和实施等〕2、推动主要的技术决策,并最终表达为软件构架3、确定和文档化系统的相对构架而言意义重大的方面,包括系统的需求、设计、实施和部署等“视图〞4、确定设计元素的分组以及这些主要分组之间的接口5、为技术决策提供规那么,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻6、理解、评价并接收系统需求7、评价和确认软件架构的实现44整理ppt某集团公司要开发一个网络财务程序,使各地员工能在互联网络上进行财务处理和报销。在设计该财务程序的体系结构时,工程组产生了分歧:
张工程师认为应该采用客户机/效劳器〔C/S〕结构。各分公司财务部要安装一个软件客户端,通过这个客户端连接到总公司财务部主机。如果员工在外地出差,需要报销帐务的,也需要安装这个客户端才能进行。李工程师认为应该采用浏览器/效劳器〔BS〕结构,各分公司及出差员工直接通过Windows操作系统自带的IE浏览器就可以连接到总公司的财务部主机。45整理ppt架构受系统风险承担者的影响风险承担者—对构建软件系统感兴趣的人或组织,包括合同中的客户、系统最终用户、开发人员、开发组织、系统维护人员等,他们所关注的问题各不相同,但都要求系统在他们所关注的方面提供保证或优化。事物有主要矛盾和次要矛盾之分。开发系统时,首先要确定其软件构架。借助于构架,设计师可以分析众多风险承担者所提出的各种要求的优先级,并将这些要求转化为系统的各个特性,再针对它们在系统结构上做折衷,从而得到和谐的架构。46整理ppt开发组织所关心的问题不同于客户,它对软件构架的影响分为3类:·直接影响如希望向产品线开展·长远影响如行业布局·组织结构的影响如软件外包·开发团队的经验对设计师的影响47整理ppt架构受设计师的素质和经验的影响1熟悉.NET的设计师在设计时会考虑.NET的框架和技术。2熟悉J2EE的设计师在设计时会考虑J2EE的框架和技术。3设计师具有数据库方向的背景,系统会被认为是数据库的应用。4设计师具有网络平安的背景,系统的平安会被放在很突出的位置。48整理ppt构架受技术环境的影响
现在B/S样式很流行,设计师在设计时往往首先考虑系统能否在互联网环境下运行。49整理ppt需求(质量属性)设计师(小组)构架系统客户和最终用户开发组织技术环境设计师的经验、沟通能力架构所受的影响50整理ppt需求(质量属性)设计师(小组)构架系统客户和最终用户开发组织技术环境设计师的经验
软件的架构不是静止的51整理ppt软件在开发过程中或交付使用后,都可能会发生修改,这些修改往往涉及到架构的变更。因此软件版本的演进也是软件架构的演进。软件架构影响设计师的经验。软件架构影响开发组织的内部结构和经营目标。软件架构可能会影响客户对下个系统的需求有些系统甚至会影响并实际改变软件工程的开展,以及开发人员学习和实践的技术环境,如互联网、嵌入式、等。52整理ppt架构商业周期—架构是软件开发的必经之路和必要手段,它受到来自客户和开发组织的影响,也受到设计师的素质和经验以及技术环境的影响;反过来,构架也影响着被开发的系统,对客户、开发组织、构架和技术环境也都有影响,还影响着客户及其开发组织的未来目标。围绕着构架的这些影响和反响循环构成构架商业周期。事物是静止的,也是运动、开展和变化的,软件架构也不例外。软件的架构是运动、开展和变化的。53整理ppt构件与软件重用构件模型及实现构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。54整理ppt在大多数工程学科中,系统是通过组合现有构件进行设计的,这些构件已经在其它系统上使用过。软件工程一直以来注重于原始开发,现在已经认识到要更快、更低本钱的获得更好的软件,我们需要采取一种基于系统化软件复用〔systematicsoftwarereuse〕的设计过程。55整理ppt在软件演化的过程中,重复使用的行为可能发生在三个维上:1. 时间维:使用以前的软件版本作为新版本的根底,参加新功能,适应新需求,即软件维护。2. 平台维:以某平台上的软件为根底,修改其和运行平台相关的局部,使其运行于新平台,即软件移植。3. 应用维:将某软件(或其中构件)用于其他应用系统中,新系统具有不同功能和用途,即真正的软件复用。56整理ppt促进从手工作坊式的软件开发向工业化开发开展:核心的就是软件构件技术。工业化的软件生产,应该有一个工业化的软件生产线,软件生产应该做成什么样,应该有不同的车间,有的车间专门是做构架的,就是框架。有的车间做构件,零件。57整理ppt复用的好处增强可靠性〔Increasedreliability〕复用构件在工作系统上试用过,应该比新软件更可靠。失误已经在初始使用中暴露和解决,复用软件的失效数目应比较低。减少过程风险〔Reducedprocessrisk〕有现成的软件,本钱比重新开发低。同时降低了工程本钱估算的不确定性。在大型系统中,如果子系统是复用的,效果最明显。符合标准〔Standardscompliance〕有些象用户界面这样的标准,,就可以制成一组可复用的标准构件。例如,如果把用户界面中的菜单〔Menu〕做成可复用的构件,并让所有的应用都采用相同的菜单格式展现给用户。使用这样的标准用户界面就使系统的可信度得到改善,因为用户在相似的界面下更不容易出错。加速开发〔Accelerateddevelopment〕尽快地把一个系统投入市场有时候比它的总开发本钱更重要。因为减少了开发和确认的时间,复用软件能够加速系统生产。58整理ppt构件模型的三个主要流派OMG〔ObjectManagementGroup,对象管理集团〕的CORBA〔CommonObjectRequestBrokerArchitecture,通用对象请求代理结构〕Sun的EJB〔EnterpriseJavaBean〕Microsoft的DCOM〔DistributedComponentObjectModel,分布式构件对象模型〕。59整理ppt“九五〞期间,青鸟工程研究软件的工业化生产技术,开发软件工业化生产系统——青鸟软件生产线系统,即基于构件—构架模式的软件开发技术及系统,为软件开发提供整体解决方案,推行软件工业化生产模式,促进软件产业规模的形成。60整理ppt61整理ppt青鸟构件模型62整理ppt构件获取从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可重用的构件;通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件;从市场上购置现成的商业构件,即COTS〔CommercialOff-The-Shell〕构件;开发新的符合要求的构件。63整理ppt64整理ppt构件管理构件描述构件分类与组织人员及权限管理65整理ppt构件描述构件模型是对构件本质的抽象描述,主要是为构件的制作与构件的重用提供依据;从管理角度出发,也需要对构件进行描述,例如:实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息,它们与构件模型共同组成了对构件的完整描述。66整理ppt67整理ppt构件分类与组织关键字分类法刻面分类法超文本组织方法68整理ppt关键字分类法69整理ppt刻面分类法使用环境
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 循环泵产品供应链分析
- 保险承保行业经营分析报告
- 印制的日程表产品供应链分析
- 电动指甲锉细分市场深度研究报告
- 制塑料桶罐设备产业链招商引资的调研报告
- 电报线产品供应链分析
- 与企业并购相关的法律研究行业经营分析报告
- 提高学生拼音学习效果的教学策略-探索多种形式的练习和巩固
- 测振仪产品供应链分析
- 导演广告片行业营销策略方案
- DB11T 583-2022 扣件式和碗扣式钢管脚手架安全选用技术规程
- 地基土浅层平板载荷试验方案
- 烟花爆竹事故分析
- 2024-2025学年初中信息技术(信息科技)七年级上册赣科版教学设计合集
- 2022部编版五年级上册道德与法治期中测试卷满分必刷
- 第四单元检测卷(单元测试)-2024-2025学年三年级上册语文统编版
- 2024年公司股权转让中介的协议范本
- 第七单元测试卷-2024-2025学年语文四年级上册(统编版)
- 2024年不稳定因素排查工作制度范例(二篇)
- 部编2024版历史七年级上册第三单元《第14课 丝绸之路的开通与经营西域》教案
- 2024中国旅游集团限公司校园招聘高频难、易错点500题模拟试题附带答案详解
评论
0/150
提交评论