您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 西安工业大学《软件工程》第四章-软件体系结构基础
计算机科学与工程学院软件工程(SoftwareEngineer)第四章软件体系结构基础软件体系结构的开发是大型软件系统开发的关键环节。体系结构在软件生产线的开发中具有至关重要的作用,在这种开发生产中,基于同一个软件体系结构,可以创建具有不同功能的多个系统。在软件产品族之间共享体系结构和一组可重用的构件,可以增加软件工程和降低开发和维护成本。计算机科学与工程学院软件工程(SoftwareEngineer)4.1软件体系结构的概念从软件危机谈起构件与软件重用什么是软件体系结构软件体系结构设计原则软件体系结构的现状及发展方向计算机科学与工程学院软件工程(SoftwareEngineer)4.1.1从软件危机谈起1.软件危机的表现软件成本日益增长开发进度难以控制软件质量差软件维护困难计算机科学与工程学院软件工程(SoftwareEngineer)4.1.1从软件危机谈起2.软件危机的原因用户需求不明确缺乏正确的理论指导软件规模越来越大软件复杂度越来越高计算机科学与工程学院软件工程(SoftwareEngineer)4.1.1从软件危机谈起3.如何克服软件危机软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。软件工程包括三个要素:(1)方法。软件工程方法为软件开发提供了如何做的技术,是完成软件工程项目的技术手段;(2)工具。软件工具是人类在开发软件的活动中智力和体力的扩展和延伸,为软件工程方法提供了自动的或半自动的软件支撑环境;(3)过程。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。计算机科学与工程学院软件工程(SoftwareEngineer)4.1.2构件与软件重用1.软件重用软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。使用软件重用技术可以减少软件开发活动中大量的重复性工作,这样就能提高软件生产率,降低开发成本,缩短开发周期。同时,由于软构件大都经过严格的质量认证,并在实际运行环境中得到校验,因此,重用软构件有助于改善软件质量。此外,大量使用软构件,软件的灵活性和标准化程度也可望得到提高。计算机科学与工程学院软件工程(SoftwareEngineer)4.1.2构件与软件重用2.构件一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辩识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。近年来,构件技术发展迅速,已形成三个主要流派,分别是IBM的CORBA、Sun的Java平台和Microsoft的COM+。构成一个系统的构件可分为5类:•独立而成熟的构件•有限制的构件•适应性构件•装配的构件•可修改的构件计算机科学与工程学院软件工程(SoftwareEngineer)4.1.3什么是软件体系结构1.软件体系结构的兴起六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要得多。在此种背景下,人们认识到软件体系结构的重要性,并认为对软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。计算机科学与工程学院软件工程(SoftwareEngineer)4.1.3什么是软件体系结构2.软件体系结构的定义DewaynePerry和A1exWo1f曾这样定义:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。MaryShaw和DavidGarlan认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。Kruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。HayesRoth则认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。DavidGarlan和DewnePerry于1995年在IEEE软件工程学报上又采用如下的定义:软件体系结构是一个程序/系统各构件的结构、它们之间的相互关系以及进行设计的原则和随时间进化的指导方针。BarryBoehm和他的学生提出,一个软件体系结构包括一个软件和系统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。计算机科学与工程学院软件工程(SoftwareEngineer)4.1.3什么是软件体系结构总之,软件体系结构的研究正在发展,软件体系结构的定义也必然随之完善。在以后的文章里,如果不特别指出,我们将使用软件体系结构的下列定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原则。计算机科学与工程学院软件工程(SoftwareEngineer)4.1.4软件体系结构设计原则抽象的原则分而治之的原则封装和信息隐蔽原则模块化原则高内聚和低耦合关注点分离原则策略和实现的分离原则接口和实现分离原则计算机科学与工程学院软件工程(SoftwareEngineer)4.1.5软件体系结构的现状及发展方向1.应用现状形成研究热点,仍处于非形式化水平软件体系结构的形式化方法研究软件体系结构的建模研究发展基于体系结构的软件开发模型软件产品线体系结构的研究计算机科学与工程学院软件工程(SoftwareEngineer)4.1.5软件体系结构的现状及发展方向2.研究热点提供新的软件体系结构描述语言对软件体系结构的专门知识的整理提供特定领域的体系结构框架提供软件体系结构的形式化基础建立评价软件体系结构的方法计算机科学与工程学院软件工程(SoftwareEngineer)4.1.5软件体系结构的现状及发展方向3.发展方向各种ADLs之间的信息互换设计工具和环境体系结构再工程计算机科学与工程学院软件工程(SoftwareEngineer)4.2通用的软件体系结构主机/终端结构两层结构——客户/服务器体系结构浏览器/服务器结构三层C/S结构三层C/S结构应用实例计算机科学与工程学院软件工程(SoftwareEngineer)4.2.1主机/终端结构早期计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。即所谓的主机分时系统。连接的终端完全没有事务处理的能力,只是输入和显示信息。所有的事务处理功能完全放在主机进行。因此主机的负载很重,整个系统的事务处理能力全部取决于主机。目前,主机终端模式已逐步被淘汰。计算机科学与工程学院软件工程(SoftwareEngineer)4.2.2两层结构——客户/服务器体系结构用户1用户2用户3用户4用户5PrintServerLink/RxLPT1LPT2COMPower/TXPWROKWIC0ACT/CH0ACT/CH1WIC0ACT/CH0ACT/CH1ETHACTCOL其他公用设备打印机调制解调器InternetIntranet数据库服务器1.两层C/S结构计算机科学与工程学院软件工程(SoftwareEngineer)4.2.2两层结构——客户/服务器体系结构2.C/S结构的一般处理流程输入数据输出数据请求按钮表示层业务处理开始SQL请求结束SQL请求开始业务处理结束数据存取请求业务处理程序业务处理请求和业务处理所需的全部输入数据全部处理结束DBMS执行SQL数据层业务处理开始数据存取请求业务处理结束数据存取程序数据登录/更新/读取的请求数据登录/更新/读取的结果计算机科学与工程学院软件工程(SoftwareEngineer)4.2.3浏览器/服务器结构B/S本质上也是一种C/S结构,它是传统的两层C/S结构在Web上的发展。相对于C/S结构而言,B/S结构是把原来在客户机一侧的应用程序模块与显示功能分开,将应用程序模块单独作为一层放在Web服务器上,客户端只需要安装浏览器就可以了,这样将系统的业务处理部分统一放在Web服务器上,客户端只起到与用户交互的作用。数据库服务器数据库客户端浏览器客户端浏览器Web服务器计算机科学与工程学院软件工程(SoftwareEngineer)4.2.4三层C/S结构B/S结构即“瘦客户机”结构,并没有根本解决C/S的问题,一旦客户端增加,服务器的负担就会加重。而传统的C/S即“胖客户机”结构,虽然网络传输负担减轻了,事务处理大多在客户机进行,但是软件修改困难,因为它需要修改客户机的程序和配置,系统管理不便。为了解决上述问题,就产生了三层结构。用户1用户2...用户nInternetIntranet数据库服务器1数据库服务器2应用服务器...计算机科学与工程学院软件工程(SoftwareEngineer)4.2.4三层C/S结构三层C/S结构的一般处理流程:输入数据输出数据请求按钮表示层业务处理开始SQL请求结束SQL请求开始业务处理结束数据存取请求业务处理程序业务处理请求和业务处理所需的全部输入数据全部处理结束DBMS执行SQL数据层业务处理开始数据存取请求业务处理结束数据存取程序数据登录/更新/读取的请求数据登录/更新/读取的结果功能层计算机科学与工程学院软件工程(SoftwareEngineer)4.2.5三层C/S结构应用实例见教材计算机科学与工程学院软件工程(SoftwareEngineer)习题用构件的思想描述软件的定义,并说明基于构件软件开发方法的优点。什么是软件体系结构,简述软件体系结构的核心模型。Kruchten“4+1”模型包括哪5个视图,简单介绍各功能。软件体系结构的设计原则是什么?c/s,b/s体系结构描述及优缺点对比。结合你的经验和工作实例,任选一种体系结构,举例分析它的特点。
本文标题:西安工业大学《软件工程》第四章-软件体系结构基础
链接地址:https://www.777doc.com/doc-6217731 .html