《体系结构》PPT课件.ppt
《《体系结构》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《体系结构》PPT课件.ppt(107页珍藏版)》请在三一办公上搜索。
1、软件设计与体系结构Software Design&Architecture,软件设计?,软件设计主要针对需求分析过程得到的软件需求规格说明,综合考虑各种制约因素,探求切实可行的软件解决方案并最终给出方案的逻辑表示,包括文档、模型等。软件设计就可以看作是“对软件将如何被开发出来的一种描述”。如果把设计作为一个动词,那么软件设计就是“得到这种描述的活动或过程”。,软件设计的方法?,(1)面向数据流的软件设计方法(2)面向对象的软件设计方法,“软件体系结构”你可能知道,Client/ServerThree-tier MVC,“建筑体系结构”,“建筑体系结构”-建筑学,软件工程教育的定位,我国软件工程
2、的专业教育与软件人才的链之间的关系可描述为如下图:,软件开发工程师,架构设计师,产品经理,项目管理者,系统分析师,系统设计师,程序员,研究生教育,本科教育,大专教育,中专教育,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。对于软件项目的开发来说,具有清晰的软件体系结构是非常重要的。软件体系结构 在软件需求和设计之间架起了一座桥梁,着重解决软件系统的结构和需求向实现平坦地过渡的问题。,为何要学习软件体系结构?,需求分析,软件设计,软件体系结构,软件体系结构系统地介绍 软件体系结构基本原理、方法和实践 全面反映软件体系结构研究和应用的最新进展 既讨论软件体系结构的基
3、本理论知识,又介绍软件 体系结构的设计及应用实例 强调理论与实践相结合,本课程的详细任务包括:(1)介绍软件体系结构的概念、发展和应用现状;(2)讨论软件体系结构建模,包括视图模型、核心 模型和生命周期模型;(3)介绍软件体系结构的风格(模式);(4)讨论软件体系结构的描述方法,重点介绍软件 体系结构描述语言;(5)讨论基于体系结构的软件开发方法,介绍基于 体系结构的软件过程;(6)讨论软件体系结构评估方法;(7)介绍软件产品线的原理和方法、框架技术,以 及讨论产品线体系结构的设计和演化。,SA(Software Architecture)的定义,体系结构=组件+连接件+约束Architect
4、ure=Components+Connectors+Constrains,软件越做越大-现代软件开发方法学-软件体系结构,SA之重要,最早指出SA的重要性的是大师Edsger Dijkstra(1930-2002)“.the larger the project,the more essential the structuring!”(1968),程序=?,程序=算法+数据结构(1960s)程序=子程序+子程序(1970s)对象=算法+数据结构程序=对象+对象(1980s)程序=组件+连接件(1990s)连接构件把体系结构的不同部分组组合连接起来 处理构件负责对数据进行加工 数据构件是被加工的
5、信息,软件体系结构的发展史,“无体系结构”设计阶段,关 于 教 材,出版社:清华大学出版社 作者:张友生,参考书1、软件体系结构理论与实践冯冲等编著 人民邮电出版社 2004年 第1版2、软件体系结构覃征等编著 西安交通大学出版社 2002年 第1版3、希赛网:http:/,课 程 内 容,软件体系结构概论 软件体系结构建模 软件体系结构风格 软件体系结构描述 基于体系结构的软件开发 软件体系结构评估 软件产品线体系结构,软件体系结构的发展 伴随不同的软件开发方法,软件体系结构也经历了4个发展阶段。1、主机/终端体系结构 早期的软件系统采用主机/终端体系结构,如图所示。在大型主机上部署中央CP
6、U和各种应用系统,典型的系统如批处理、联机交易等。这种软件系统的体系结构也称为单层体系结构,所有的功能和操作集中在主机上,终端仅仅是作为输入和输出设备使用。,图1 主机/终端体系结构,2、分层体系结构 随着PC的普及和网络的出现,这种单层的体系结构被逐步淘汰,演变为分层的体系结构。典型的分层体系结构有两种:C/S结构和B/S结构。客户机/服务器(Client/Server,C/S)模式,两层结构,又称为胖客户机模式,其原理如图2所示。,图2 C/S模式原理图,3、C/S结构的特点 基于C/S模式的网络数据库在前端计算机上要安装专门的应用程序来操作后台数据库服务器中的数据,前端应用程序可以完成计
7、算和接收处理数据的工作,后台数据库服务器主要完成数据的管理工作。C/S模式的优点是速度较快、功能完备,缺点:维护升级很不方便,主要是基于行业的数据库应用,如股票接收系统、邮局汇款系统等。由于有多个系统,在每个客户机上就要安装多个前端客户程序,因此这种工作模式也被称为胖客户机模式。,图2 C/S模式原理图,4、浏览器/服务器(Browser/Server,B/S)模式 B/S是3层结构,又称为瘦客户机模式,其原理如图3所示。B/S模式下的客户机只需安装浏览器软件,如Windows XP系统内嵌的IE即可,无须开发前端应用程序,这就是瘦客户机模式中“瘦”的含义;中间层的Web应用服务器,如Micr
8、osoft公司的IIS等是连接前端客户机和后台数据库服务器的桥梁,主要的数据计算和应用都在此完成,因此对中间层服务器的要求较高,开发中间层应用的技术人员需要具备一定的编程基础;后台数据库服务器主要完成数据的管理。,图3 B/S模式原理图,B/S结构的特点:基于B/S模式的Web网络数据库应用模式主要用于浏览、查询Internet/Intranet信息。但由于面向的是不特定的用户,客户机无须维护和升级。因此,随着Internet的普及,这种模式逐渐为我们所重视,典型的例子是Internet上购物等使用的数据库系统,这也是目前开展电子商务应用的常用模式。无论是C/S模式还是B/S模式,分层的软件系
9、统体系结构实际上把一个软件系统分解成了3个主要部分。,用户表现层:接受用户的请求和操作,将操作信息最终显示给用户。常见的就是一个IE浏览器中的Web页面,或者是一个标准的Windows窗体程序。业务逻辑层:业务逻辑层完成业务功能和逻辑。比如,Web网站中的IIS服务器就是一个业务逻辑层。数据服务层:指后台数据库系统,也可以是各种能够存储数据的文件。,图3 B/S模式原理图,软件危机的表现,软件成本日益增长 开发进度难以控制 软件质量差 软件维护困难,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的表现,软件成本日益增长 20世纪50年代,软件成本在整个计算机系统成本中所占的比例为1
10、0%-20%。到20世纪60年代中期,软件成本在计算机系统中所占的比例已经增长到50%左右。而且,该数字还在不断地递增,下面是一组来自美国空军计算机系统的数据:1955年,软件费用约占总费用的18%,1970年达到60%,1975年达到72%,1980年达到80%,1985年达到85%左右。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的表现,开发进度难以控制 由于软件是逻辑、智力产品,软件的开发需建立庞大的逻辑体系,这是与其他产品的生产不一样的。在软件开发过程中,用户需求变化等各种意想不到的情况层出不穷,令软件开发过程很难保证按预定的计划实现,给项目计划和论证工作带来了很大的困
11、难。盲目增加软件开发人员并不能成比例地提高软件开发能力。相反,随着人员数量的增加,人员的组织、协调、通信、培训和管理等方面的问题将更为严重。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的表现,软件质量差 软件项目即使能按预定日期完成,结果却不尽人意。1965年至1970年,美国范登堡基地发射火箭多次失败,绝大部分故障是由应用程序错误造成的。在“软件作坊”里,由于缺乏工程化思想的指导,程序员几乎总是习惯性地以自己的想法去代替用户对软件的需求,软件设计带有随意性,很多功能只是程序员的“一厢情愿”而已,这是造成软件不能令人满意的重要因素。,第1章 软件体系结构概论,1.1 从软件危机
12、谈起,软件危机的表现,软件维护困难 由于在软件设计和开发过程中,没有严格遵循软件开发标准,各种随意性很大,没有完整的真实反映系统状况的记录文档,给软件维护造成了巨大的困难。特别是在软件使用过程中,原来的开发人员可能因各种原因已经离开原来的开发组织,使得软件几乎不可维护。有资料表明,工业界为维护软件支付的费用占全部硬件和软件费用的40%-75%。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,用户需求不明确 缺乏正确的理论指导 软件规模越来越大 软件复杂度越来越高,第1章 软件体系结构概论,1.1 从软件危机谈起,用户需求不明确 在软件开发完成之前,用户不清楚软件的具体需求;
13、用户对软件需求的描述不精确,可能有遗漏、有二义性、甚至有错误;在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求;开发人员对用户需求的理解与用户本来愿望有差异。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,缺乏正确的理论指导 缺乏有力的方法学和工具方面的支持。由于软件不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化,也是发生软件危机的一个重要原因。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,软件规模
14、越来越大 随着软件应用范围的增广,软件规模愈来愈大。大型软件项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,软件复杂度越来越高 软件不仅仅是在规模上快速地发展扩大,而且其复杂性也急剧地增加。软件产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。所谓“复杂问题”的概念是相对的,一旦人们采用先进的组织形式、开
15、发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前。,第1章 软件体系结构概论,1.1 从软件危机谈起,软件危机的原因,例:美国IBM公司在1963年1966年开发的IBM360机的操作系统。这一项目花了5千人一年的工作量,最多时有1千人投入开发工作,写出了近100万行源程序。,第1章 软件体系结构概论,1.1 从软件危机谈起,如何克服软件危机,人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败。要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。在技术上,应该采用基于重用的软件生产技术;在管理上,应该采用多维的工程管
16、理模式。,第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章
17、 软件体系结构概论,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 构件与软件重用,从现有构件
18、中获得符合要求的构件,直接使用或作适应性修改,得到可重用的构件;(Microsoft MFC、Sun Java类库)通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件;从市场上购买现成的商业构件,即COTS(Commercial Off-The-Shell)构件;如:利用eclipse开发Java Web程序,需安装商业插件Myeclipse,支持struts开发。开发新的符合要求的构件。,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,构件描述 构件分类与组织 人员及权限管理,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,构件描述 构件模型是对构件本质
19、的抽象描述,主要是为构件的制作与构件的重用提供依据;从管理角度出发,也需要对构件进行描述,例如:实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息。,构件的完整描述,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,构件分类与组织 为了查询、利用构件,对置于构件库中的构件进行分类(classify):关键字分类法 刻面分类法 超文本组织方法,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,关键字分类法(keyword classification),将应用领域的概念按照从抽象到具体的顺序逐次分解为树状图,构件管理,第1章 软件体系结构概论,1.2
20、构件与软件重用,刻面分类法(faceted classification)源于图书馆学。该机制中,定义若干用于刻画构件特征的“面(facet)”。刻面的集合称为刻面描述符(facet descriptor)。例如:使用下列构件描述符的模式:function,object type,system type 刻面的典型值可能是:function=copy,from or copy,replace,all,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,超文本组织法(hypertext classification)是一种非线性的网状信息组织方法,以节点为单位,链作为节点之间的联想式关联
21、。例如:Windows环境下的联机帮助系统(如:word文件中help)。,构件管理,第1章 软件体系结构概论,1.2 构件与软件重用,人员及权限管理 一般来讲,构件库系统可包括五类用户 即 注册用户 公共用户 构件提交者 一般系统管理员 超级系统管理员,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,检索与提取构件 理解与评价构件 修改构件 构件组装,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,检索与提取构件 基于关键字的检索 方法:用户利用界面树状结构逐级寻找需要的关键字,如:在Visual C+使用MSDN,包括VC+的帮助文件和许多与开发相关的技术文献。,刻
22、面检索法(1)用户提供要查找的构件在每个刻面上的特征,生成构件描述符(构造查询)。(2)利用CASE工具在构件库中,查找相应的构件(检索构件)。(3)对构件进行排序,一般按相似程度排序。超文本检索法 利用给定的关键字,在构件说明中进行匹配,成功后,列出构件说明,利用其中的超文本节点,在不同构件说明文档中跳转,最终选择合适的component。例如:Windows环境下的联机帮助系统(如:word文件中help)其他检索方法,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,理解与评价构件 为了准确理解在库中需要使用的构件,要求构件的开发过程遵循公共软件工程规范,并在component
23、文档中,准确说明以下内容:构件的功能与行为 相关的领域知识 可适应性约束条件与例外情形 可以预见的修改部分及修改方法,对构件可重用的评价,通过收集并分析构建的用户在实际重用该构件的历史过程中各种反馈信息来完成。包括:重用成功的次数,对构件的修改量,性能度量,构件重用,第1章 软件体系结构概论,1.2 构件与软件重用,修改构件 理想的情形是对库中的构件不作修改而直接用于新的软件项目。但是,在大多数情况下,必须对构件进行或多或少的修改,以适应新的需求。例如:对函数、运算符重载:为了减少构件修改的工作量,要求开发人员尽量使构件的功能、行为和接口设计更为抽象化、通用化和参数化。,#include te
24、mplate/声明一个形式类属参数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 构件与软件重用,构件组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 体系结构 PPT 课件

链接地址:https://www.31ppt.com/p-5462697.html