欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《体系结构》PPT课件.ppt

    • 资源ID:5462697       资源大小:588.50KB        全文页数:107页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《体系结构》PPT课件.ppt

    软件设计与体系结构Software Design&Architecture,软件设计?,软件设计主要针对需求分析过程得到的软件需求规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。软件设计就可以看作是“对软件将如何被开发出来的一种描述”。如果把设计作为一个动词,那么软件设计就是“得到这种描述的活动或过程”。,软件设计的方法?,(1)面向数据流的软件设计方法(2)面向对象的软件设计方法,“软件体系结构”你可能知道,Client/ServerThree-tier MVC,“建筑体系结构”,“建筑体系结构”-建筑学,软件工程教育的定位,我国软件工程的专业教育与软件人才的链之间的关系可描述为如下图:,软件开发工程师,架构设计师,产品经理,项目管理者,系统分析师,系统设计师,程序员,研究生教育,本科教育,大专教育,中专教育,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。对于软件项目的开发来说,具有清晰的软件体系结构是非常重要的。软件体系结构 在软件需求和设计之间架起了一座桥梁,着重解决软件系统的结构和需求向实现平坦地过渡的问题。,为何要学习软件体系结构?,需求分析,软件设计,软件体系结构,软件体系结构系统地介绍 软件体系结构基本原理、方法和实践 全面反映软件体系结构研究和应用的最新进展 既讨论软件体系结构的基本理论知识,又介绍软件 体系结构的设计及应用实例 强调理论与实践相结合,本课程的详细任务包括:(1)介绍软件体系结构的概念、发展和应用现状;(2)讨论软件体系结构建模,包括视图模型、核心 模型和生命周期模型;(3)介绍软件体系结构的风格(模式);(4)讨论软件体系结构的描述方法,重点介绍软件 体系结构描述语言;(5)讨论基于体系结构的软件开发方法,介绍基于 体系结构的软件过程;(6)讨论软件体系结构评估方法;(7)介绍软件产品线的原理和方法、框架技术,以 及讨论产品线体系结构的设计和演化。,SA(Software Architecture)的定义,体系结构=组件+连接件+约束Architecture=Components+Connectors+Constrains,软件越做越大-现代软件开发方法学-软件体系结构,SA之重要,最早指出SA的重要性的是大师Edsger Dijkstra(1930-2002)“.the larger the project,the more essential the structuring!”(1968),程序=?,程序=算法+数据结构(1960s)程序=子程序+子程序(1970s)对象=算法+数据结构程序=对象+对象(1980s)程序=组件+连接件(1990s)连接构件把体系结构的不同部分组组合连接起来 处理构件负责对数据进行加工 数据构件是被加工的信息,软件体系结构的发展史,“无体系结构”设计阶段,关 于 教 材,出版社:清华大学出版社 作者:张友生,参考书1、软件体系结构理论与实践冯冲等编著 人民邮电出版社 2004年 第1版2、软件体系结构覃征等编著 西安交通大学出版社 2002年 第1版3、希赛网:http:/,课 程 内 容,软件体系结构概论 软件体系结构建模 软件体系结构风格 软件体系结构描述 基于体系结构的软件开发 软件体系结构评估 软件产品线体系结构,软件体系结构的发展 伴随不同的软件开发方法,软件体系结构也经历了4个发展阶段。1、主机/终端体系结构 早期的软件系统采用主机/终端体系结构,如图所示。在大型主机上部署中央CPU和各种应用系统,典型的系统如批处理、联机交易等。这种软件系统的体系结构也称为单层体系结构,所有的功能和操作集中在主机上,终端仅仅是作为输入和输出设备使用。,图1 主机/终端体系结构,2、分层体系结构 随着PC的普及和网络的出现,这种单层的体系结构被逐步淘汰,演变为分层的体系结构。典型的分层体系结构有两种:C/S结构和B/S结构。客户机/服务器(Client/Server,C/S)模式,两层结构,又称为胖客户机模式,其原理如图2所示。,图2 C/S模式原理图,3、C/S结构的特点 基于C/S模式的网络数据库在前端计算机上要安装专门的应用程序来操作后台数据库服务器中的数据,前端应用程序可以完成计算和接收处理数据的工作,后台数据库服务器主要完成数据的管理工作。C/S模式的优点是速度较快、功能完备,缺点:维护升级很不方便,主要是基于行业的数据库应用,如股票接收系统、邮局汇款系统等。由于有多个系统,在每个客户机上就要安装多个前端客户程序,因此这种工作模式也被称为胖客户机模式。,图2 C/S模式原理图,4、浏览器/服务器(Browser/Server,B/S)模式 B/S是3层结构,又称为瘦客户机模式,其原理如图3所示。B/S模式下的客户机只需安装浏览器软件,如Windows XP系统内嵌的IE即可,无须开发前端应用程序,这就是瘦客户机模式中“瘦”的含义;中间层的Web应用服务器,如Microsoft公司的IIS等是连接前端客户机和后台数据库服务器的桥梁,主要的数据计算和应用都在此完成,因此对中间层服务器的要求较高,开发中间层应用的技术人员需要具备一定的编程基础;后台数据库服务器主要完成数据的管理。,图3 B/S模式原理图,B/S结构的特点:基于B/S模式的Web网络数据库应用模式主要用于浏览、查询Internet/Intranet信息。但由于面向的是不特定的用户,客户机无须维护和升级。因此,随着Internet的普及,这种模式逐渐为我们所重视,典型的例子是Internet上购物等使用的数据库系统,这也是目前开展电子商务应用的常用模式。无论是C/S模式还是B/S模式,分层的软件系统体系结构实际上把一个软件系统分解成了3个主要部分。,用户表现层:接受用户的请求和操作,将操作信息最终显示给用户。常见的就是一个IE浏览器中的Web页面,或者是一个标准的Windows窗体程序。业务逻辑层:业务逻辑层完成业务功能和逻辑。比如,Web网站中的IIS服务器就是一个业务逻辑层。数据服务层:指后台数据库系统,也可以是各种能够存储数据的文件。,图3 B/S模式原理图,软件危机的表现,软件成本日益增长 开发进度难以控制 软件质量差 软件维护困难,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的表现,软件成本日益增长 20世纪50年代,软件成本在整个计算机系统成本中所占的比例为10%-20%。到20世纪60年代中期,软件成本在计算机系统中所占的比例已经增长到50%左右。而且,该数字还在不断地递增,下面是一组来自美国空军计算机系统的数据:1955年,软件费用约占总费用的18%,1970年达到60%,1975年达到72%,1980年达到80%,1985年达到85%左右。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的表现,开发进度难以控制 由于软件是逻辑、智力产品,软件的开发需建立庞大的逻辑体系,这是与其他产品的生产不一样的。在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困难。盲目增加软件开发人员并不能成比例地提高软件开发能力。相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理等方面的问题将更为严重。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的表现,软件质量差 软件项目即使能按预定日期完成,结果却不尽人意。1965年至1970年,美国范登堡基地发射火箭多次失败,绝大部分故障是由应用程序错误造成的。在“软件作坊”里,由于缺乏工程化思想的指导,程序员几乎总是习惯性地以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的“一厢情愿”而已,这是造成软件不能令人满意的重要因素。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的表现,软件维护困难 由于在软件设计和开发过程中,没有严格遵循软件开发标准,各种随意性很大,没有完整的真实反映系统状况的记录文档,给软件维护造成了巨大的困难。特别是在软件使用过程中,原来的开发人员可能因各种原因已经离开原来的开发组织,使得软件几乎不可维护。有资料表明,工业界为维护软件支付的费用占全部硬件和软件费用的40%-75%。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,用户需求不明确 缺乏正确的理论指导 软件规模越来越大 软件复杂度越来越高,第1章 软件体系结构概论,1.1 从软件危机谈起,用户需求不明确 在软件开发完成之前,用户不清楚软件的具体需求;用户对软件需求的描述不精确,可能有遗漏、有二义性、甚至有错误;在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求;开发人员对用户需求的理解与用户本来愿望有差异。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,缺乏正确的理论指导 缺乏有力的方法学和工具方面的支持。由于软件不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化,也是发生软件危机的一个重要原因。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,软件规模越来越大 随着软件应用范围的增广,软件规模愈来愈大。大型软件项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,软件复杂度越来越高 软件不仅仅是在规模上快速地发展扩大,而且其复杂性也急剧地增加。软件产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。所谓“复杂问题”的概念是相对的,一旦人们采用先进的组织形式、开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,例:美国IBM公司在1963年1966年开发的IBM360机的操作系统。这一项目花了5千人一年的工作量,最多时有1千人投入开发工作,写出了近100万行源程序。,第1章 软件体系结构概论,1.1 从软件危机谈起,如何克服软件危机,人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败。要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。在技术上,应该采用基于重用的软件生产技术;在管理上,应该采用多维的工程管理模式。,第1章 软件体系结构概论,1.1 从软件危机谈起,构件模型及实现,第1章 软件体系结构概论,1.2 构件与软件重用,构件的定义 构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。,/计算圆的面积及周长class Circle private:float radius;public:Circle(float r);float Circumference();float Area();float Circle:Circumference()return 2*PI*radius;,构件模型及实现,第1章 软件体系结构概论,1.2 构件与软件重用,构件模型的三个主要(main)流派 OMG(Object Management Group,对象管理集团)的CORBA(Common Object Request Broker Architecture,通用对象请求代理结构)Sun的EJB(Enterprise Java Bean)Microsoft的DCOM(Distributed Component Object Model,分布式构件对象模型),构件模型及实现,第1章 软件体系结构概论,1.2 构件与软件重用,青鸟构件模型,构件获取,第1章 软件体系结构概论,1.2 构件与软件重用,从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可重用的构件;(Microsoft MFC、Sun Java类库)通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件;从市场上购买现成的商业构件,即COTS(Commercial Off-The-Shell)构件;如:利用eclipse开发Java Web程序,需安装商业插件Myeclipse,支持struts开发。开发新的符合要求的构件。,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,构件描述 构件分类与组织 人员及权限管理,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,构件描述 构件模型是对构件本质的抽象描述,主要是为构件的制作与构件的重用提供依据;从管理角度出发,也需要对构件进行描述,例如:实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息。,构件的完整描述,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,构件分类与组织 为了查询、利用构件,对置于构件库中的构件进行分类(classify):关键字分类法 刻面分类法 超文本组织方法,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,关键字分类法(keyword classification),将应用领域的概念按照从抽象到具体的顺序逐次分解为树状图,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,刻面分类法(faceted classification)源于图书馆学。该机制中,定义若干用于刻画构件特征的“面(facet)”。刻面的集合称为刻面描述符(facet descriptor)。例如:使用下列构件描述符的模式:function,object type,system type 刻面的典型值可能是:function=copy,from or copy,replace,all,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,超文本组织法(hypertext classification)是一种非线性的网状信息组织方法,以节点为单位,链作为节点之间的联想式关联。例如:Windows环境下的联机帮助系统(如:word文件中help)。,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,人员及权限管理 一般来讲,构件库系统可包括五类用户 即 注册用户 公共用户 构件提交者 一般系统管理员 超级系统管理员,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,检索与提取构件 理解与评价构件 修改构件 构件组装,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,检索与提取构件 基于关键字的检索 方法:用户利用界面树状结构逐级寻找需要的关键字,如:在Visual C+使用MSDN,包括VC+的帮助文件和许多与开发相关的技术文献。,刻面检索法(1)用户提供要查找的构件在每个刻面上的特征,生成构件描述符(构造查询)。(2)利用CASE工具在构件库中,查找相应的构件(检索构件)。(3)对构件进行排序,一般按相似程度排序。超文本检索法 利用给定的关键字,在构件说明中进行匹配,成功后,列出构件说明,利用其中的超文本节点,在不同构件说明文档中跳转,最终选择合适的component。例如:Windows环境下的联机帮助系统(如:word文件中help)其他检索方法,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,理解与评价构件 为了准确理解在库中需要使用的构件,要求构件的开发过程遵循公共软件工程规范,并在component文档中,准确说明以下内容:构件的功能与行为 相关的领域知识 可适应性约束条件与例外情形 可以预见的修改部分及修改方法,对构件可重用的评价,通过收集并分析构建的用户在实际重用该构件的历史过程中各种反馈信息来完成。包括:重用成功的次数,对构件的修改量,性能度量,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,修改构件 理想的情形是对库中的构件不作修改而直接用于新的软件项目。但是,在大多数情况下,必须对构件进行或多或少的修改,以适应新的需求。例如:对函数、运算符重载:为了减少构件修改的工作量,要求开发人员尽量使构件的功能、行为和接口设计更为抽象化、通用化和参数化。,#include template/声明一个形式类属参数Tclass ARRAY T*set;/定义数组元素集合intn;/定义数组元素个数public:ARRAY(T*data,int i)set=data;n=i;ARRAY()void sort();/排序int seek(T key);/检索T sum();/求和;,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,构件组装,基于功能的组装技术 基于数据的组装技术 面向对象的组装技术,将库中的构件经适当修改后相互连接,或者将它们与当前开发项目中的软件元素连接,最终构成新的目标软件。,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,构件组装 基于功能的组装技术它要求库中的构件以子程序/过程/函数的形式出现,并且接口说明必须清晰(如:C中的库函数),基于功能的组装技术采用子程序调用和参数传递的方式将构件组装起来。当使用这种组装技术进行软件开发时,开发人员首先应对目标软件系统进行功能分解,将系统分解为强内聚、松耦合的功能模块。然后根据各模块的功能需求提取构件,对它进行适应性修改后再挂接在上述功能分解框架中。,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,构件组装 基于数据的组装技术 这种组装技术也要求库中构件以子程序形式出现首先根据当前软件问题的核心数据结构设计出一个框架(利用数据结构软件结构),然后根据框架中各结点的需求提取构件并进行适应性修改,再将构件逐个分配至框架中的适当位置。此后,构件的组装方式它所依赖的软件设计方法不再是功能分解,而是面向数据的设计方法,例如Jackson系统开发方法。,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,构件组装 面向对象的组装技术 构造法 在子类中引进基类的对象作为子类的成员变量,然后在子类中通过成员变量重用基类的属性和方法。子类法 将新子类直接说明为库中基类的子类,通过继承和修改基类的属性与行为完成新子类的定义。例如:P 13,软件重用实例,第1章 软件体系结构概论,1.2 构件与软件重用,自学 P15,背景资料,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。,对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要得多。工人-工程师 对软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。,背景资料,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,事实上,软件总是有体系结构的,不存在没有体系结构的软件。模块-类 组件-体系结构 软件体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法,最近几年软件体系结构研究已完全独立于软件工程的研究,成为计算机科学的一个最新的研究方向和独立学科分支。,1970年代中后期,随着结构化软件开发方法的出现与广泛应用,软件开发中出现了概要设计与详细设计,为将来软件体系结构的出现和发展建立了基础;模块,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,到1990年代,面向对象技术已成为软件开发的主流技术,对大型软件系统进行设计、开发和维护的需要促使人们从更高的抽象层次关注软件,软件体系结构也在这一阶段得到广泛关注;类,1990年代后期,基于构件的软件开发逐渐受到重视 和推广,软件体系结构已经作为一个明确的文档和中间产品存在于软件开发过程中;组件,软件体系结构的定义,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,Dewayne Perry和A1exander Wolf 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工 数据构件是被加工的信息 连接构件把体系结构的不同部分组合连接起来。,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,Mary Shaw和David Garlan 软件体系结构是 软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。体系结构问题包括 总体组织和全局控制、通讯协议、同步、数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。软件体系结构处理 算法与数据结构之上关于整体系统结构设计和描述方面的一些问题,如全局组织和全局控制结构、关于通讯、同步与数据存取的协议,设计构件功能定义,物理分布与合成,设计方案的选择、评估与实现等。,软件体系结构的定义,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,Kruchten 软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度 描述系统的主要构件及它们之间的关系;模块角度 包含功能分解与层次结构;运行角度 描述了一个系统的动态结构;代码角度 描述了各种代码和库函数在开发环境中的组织。,软件体系结构的定义,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,Hayes Roth 软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。,软件体系结构的定义,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,David Garlan 和 Dewne Perry 软件体系结构是一个程序系统各构件的结构、它们之间的相互关系以及进行设计的原则和随时间演化的指导方针。,软件体系结构的定义,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,Barry Boehm 软件体系结构包括一个软件和系统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。,软件体系结构的定义,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,Bass,Ctements 和 Kazman 软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。其中,“软件外部的可见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。,软件体系结构的定义,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,我们的定义 软件体系结构 为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。,软件体系结构的定义,Architecture=Components+Connectors+Constrains,例如:基于MVC模式Model(模型):完成维护数据(增、删、改、查)。View(视图):向用户表达数据结果,从用户获得数据。Controller(控制器):连接视图与模型的关系。,关于连接件的概念 把原本分散在系统各个部分的连接成分组成一个单独可见的实体,这是软件体系结构分析的重要成果之一。连接件 是软件体系结构的构造元素:它定义了组件间的交互关系 为组件提供 连接通路 和一组指导交互的 规则/协议 对组件的交互进行管理,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,对象请求代理(ORB)是CORBA(Common Object Request Broker Architecture)规范的基础,ORB主要功能是定位服务对象,分析客户对象的请求,获取服务对象的功能接口,在客户与服务对象间建立通信连接。,举例,软件体系结构的意义(1),第1章 软件体系结构概论,1.3 体系结构的兴起和发展,体系结构是风险承担者进行交流的手段 软件体系结构代表了系统的公共的高层次的抽象。这样,系统的大部分有关人员把它作为建立一个互相理解的基础,形成统一认识,互相交流。体系结构提供了一种共同语言来表达各种关注和协商,进而对软件系统能进行理智的管理。这对项目最终的质量和使用有极大的影响。例如:利用UML进行交流的手段。,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,体系结构是早期设计决策(decision)的体现(1)软件体系结构明确了对系统实现的约束条件 基于软件体系软件开发过程中,软件体系的设计者不必是算法设计者或精通编程语言,而是系统的总体权衡问题;在实现时,要符合体系结构所描述的结构性设计决策。如:采用基于MVC的Struts的软件体系结构,仅采用JSP方式进行开发是不够的。,软件体系结构的意义(2),(2)软件体系结构决定了开发和维护组织的组织结构 通常,大型软件开发,将系统的不同部分交由不同的小组去开发与维护。如:采用何种软件开发模式?(3)软件体系结构制约着系统的质量属性 小型软件系统通常可以通过编程或调试达到质量属性的要求;对于大型软件系统,质量属性更多地由系统结构和功能划分来实现,而不再是算法或数据结构。如:大型建筑的质量由结构决定!,体系结构是早期设计决策(decision)的体现,(4)通过研究软件体系结构可能预测软件的质量 通过软件体系结构的评估技术,可以对按某软件体系结构开发的软件产品的质量做出准确的预测。(5)软件体系结构使推理和控制更改更简单 每个体系结构将更改分3类:局部、非局部、体系结构级;一个优秀的体系结构应该使更改简单易行。如:在OOSD中,对象实现方法的改变,不会影响到其他对象。,体系结构是早期设计决策(decision)的体现,(6)软件体系结构有助于循序渐进的原型设计 确定了体系结构,就可以将其按可执行模型来构造原型。(7)软件体系结构可以作为培训的基础 通过对系统的体系结构的介绍,以及对构件之间如何交互,从而实现系统需求的高层描述,让项目新成员很快进入角色。,体系结构是早期设计决策(decision)的体现,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,软件体系结构是可传递和可重用的模型 软件体系结构级的重用意味着体系结构的决策能在具有相似需求的多个系统中发生影响,这比代码级的重用要有更大的好处。例如:开发用户交互的软件,均可以采用MVC模式。,软件体系结构的意义(3),软件体系结构的发展史,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,“无体系结构”设计阶段,第1章 软件体系结构概论,1.3 体系结构的兴起和发展,Perry和Wolf认为未来的年代是 研究软件体系结构(SA)的时代,软件体系结构的发展史,总结,软件体系结构的应用现状(本教材研究的主要内容),第1章 软件体系结构概论,1.4 体系结构的应用现状,软件体系结构描述语言 体系结构描述构造与表示 体系结构分析、设计与验证 体系结构发现、演化与重用 基于体系结构的软件开发方法 特定领域的体系结构框架 软件体系结构支持工具 软件产品线体系结构 建立评价软件体系结构的方法,第1章 软件体系结构概论,1.4 体系结构的应用现状,软件体系结构描述语言 Architecture Description Language(ADL)ADL提供了具体的语法与刻画体系结构的概念框架。ADL能够很好地描述体系结构,以便与他人交流,能够用提供的工具对许多实例进行分析。如:C2、UML,软件体系结构的应用现状(1)软件体系结构是根植于软件工程发展起来的一门新兴科学。国外软件体系结构的研究是从20世纪90年代开始的。软件体系结构的研究活动,主要包括如下几个方面:,第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构描述构造与表示(1)Kruchten提出的“4+1”模型。(2)Booch从UML的角度给出了一种由 设计视图、过程视图、实现视图和部署视图,再加上一个用例视图 构成的体系结构(Architecture)描述模型。(3)IEEE于1995年成立了体系结构工作组,起草了体系结构描述框架标准IEEE P1471。(4)Rational从资产重用的角度提出了体系结构描述的规格说明框架。,软件体系结构的应用现状(2),第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构分析、设计与验证(1)体系结构分析的内容可分为结构分析、功能分析和非功能分析。例如:Kazman等人提出了一种非功能分析的体系结构分析方法 SAAM(Software Architecture Analysis Method),并运用场景技术,提出了基于场景的体系结构分析方法。,软件体系结构的应用现状(3),第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构分析、设计与验证(2)体系结构设计本质:将系统分解成相应的组成成分(如构件、连接件),并将这些成分重新组装成一个系统。生成一个满足软件需求的体系结构的程。,软件体系结构的应用现状(3),第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构分析、设计与验证(3)体系结构设计有两大类方法:过程驱动方法和问题列表驱动方法。基于过程驱动的体系结构设计方法,如:“4+1”模型方法、面向对象方法等。特点:适用范围广。问题列表驱动法的基本思想是枚举设计空间,以此来选择体系结构的风格。该方法适用于特定领域。如:Allen博士的论文:专门研究用户界面类的量化设计空间,提出了19个功能维,26个结构维。,软件体系结构的应用现状,第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构分析、设计与验证(4)体系结构设计研究的重点内容之一就是体系结构风格或模式。体系结构模式:在本质上反映了一些特定的元素、按照特定的方式组成一个特定的结构。如:B/S、C/S等模式,软件体系结构的应用现状,第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构分析、设计与验证(6)由于测试的抽象层次不同,体系结构测试策略可以分为单元/子系统/集成/验收测试等阶段的测试策略。,软件体系结构的应用现状,第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构的发现、演化与重用(1)体系结构发现属于逆向工程范畴,解决如何从已经存在的系统中提取软件的体系结构。,软件体系结构的应用现状(4),第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构发现、演化与重用(2)软件体系结构演化:由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动。C/SB/S(网上银行),软件体系结构的应用现状,第1章 软件体系结构概论,1.4 体系结构的应用现状,体系结构发现、演化与重用(3)体系结构重用属于设计重用,比代码重用更抽象。由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。体系结构模式(如:C/S风格)就是体系结构重用研究的一个成果。,软件体系结构的应用现状,第1章 软件体系结构概论,1.4 体系结构的应用现状,基于体系结构的软件开发方法(1)回顾:软件工程中的软件开发过程?在引入了体系结构的软件开发之后,应用系统的构造过程变为“问题定义软件需求软件体系结构软件设计软件实现”,可以认为软件体系结构架起了软件需求与软件设计之间的一座桥梁。,软件体系结构的应用现状(5),第1章 软件体系结构概论,1.4 体系结构的应用现状,基于体系结构的软件开发方法(2)目前,常见的软件开发模型大致可分为三种类型:(1)以软件需求完全确定为前提的瀑布模型。(2)在软件开发初始阶段只能提供基本需求时采用的渐进 式开发模型,如螺旋模型等。(3)以形式化开发方法为基础的 变换模型。缺点:这三种类型的软件开发模型都存在不同程度的缺陷,不能很好地支持基于软件体系结构的开发过程。,软件体系结构的应用现状,第1章 软件体系结构概论,1.4 体系结构的应用现状,基于体系结构的软件开发方法(3)在基于构件(Component)和基于体系结构(Architecture)的软件开发逐渐成为主流情况下,已经出现了基于构件的软件工程(CBSE)。,软件体系结构的应用现状,第1章 软件体系结构概论,1.4 体系结构的应用现状,特定领域的体系结构(Domain Specific Software Architecture)框架 特定领域的体系结构是将体系结构理论应用到具体领域的过程。例如:国内学者提出的DSSA有:(1)北京邮电大学周莹新博士提出的电信软件的体系结构,(2)北京航空航天大学金茂忠教授等人提出的测试环境的体系结构等。,软件体系结构的应用现状(6),第1章 软件体系结构概论,1.4 体系结构的应用现状,软件体系结构支持工具 几乎每种体系结构描述语言都有相应的支持工具,例如:C2的支持环境ArchStudio工具等。,软件体系结构的应用现状(7),http:/,第1章 软件体系结构概论,1.4 体系结构的应用现状,软件产品线体系结构(1)产品线代表着一组具有 公共的系统需求集 的软件系统。软件产品线体系结构的设计:基于同一个软件体系结构,可以创建具有不同功能的多个系统。软件产品线是一个十分适合专业的软件开发组织的软件开发方法,能有效地提高软件生产率和质量、缩短开发时间、降低总开发成本。,软件体系结构的应用现状(8),第1章 软件体系结构概论,1.4 体系结构的应用现状,软件产品线体系结构(2)软件体系结构的优点:有利于形成完整的软件产品线。,软件体系结构的应用现状,第1章 软件体系结构概论,1.4 体系结构的应用现状,建立评价软件体系结构的方法 怎样知道选用的体系结构恰当?如何保证选用的体系结构能开发出成功的软件产品呢?目前,常用的三个软件体系结构评估方法是:(1)体系结构权衡分析方法(ATAM方法)(Architecture Tradeoff Analysis Method)(2)软件体系结构分析方法(SAAM方法)(Software Architecture Analysis Method)(3)中间设计的积极评审(ARID方法)(Active Reviews for Intermediate Design),软件体系结构的应用现状(9),第1章 软件体系结构概论,1.4 体系结构的应用现状,结论:目前,越来越多的研究人员正在把注意力投向软件体系结构的研究。关于软件体系结构的研究工作主要在国外展开的,国内到目前为止对于软件体系结构的研究尚处在起步阶段。软件体系结构在国内未引起人们广泛注意的原因主要有两点:(1)软件体系结构从表面上看起来是一个老话题,似乎没有新东西。(2)与国外相比,国内对大型和超大型复杂软件系统开发的经历相对较少,对软件危机的灾难性体会没有国外深刻,因而对软件体系结构研究的重要性和必要性的认识还不很充分。,软件体系结构的应用现状,例:美国IBM公司在1963年至1966年开发的IBM360机的操作系统。这一项目花了5千人一年的工作量,最多时有1千人投入开发工作,写出了近100万行源程序。.据统计,这个操作系统每次发行的新版本(软件维护)都是从前一版本中找出1千个程序错误而修正的结果。.,

    注意事项

    本文(《体系结构》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开