西安工业大学《软件工程》第四章软件体系结构基础ppt课件.ppt

上传人:小飞机 文档编号:1431815 上传时间:2022-11-23 格式:PPT 页数:23 大小:542.50KB
返回 下载 相关 举报
西安工业大学《软件工程》第四章软件体系结构基础ppt课件.ppt_第1页
第1页 / 共23页
西安工业大学《软件工程》第四章软件体系结构基础ppt课件.ppt_第2页
第2页 / 共23页
西安工业大学《软件工程》第四章软件体系结构基础ppt课件.ppt_第3页
第3页 / 共23页
西安工业大学《软件工程》第四章软件体系结构基础ppt课件.ppt_第4页
第4页 / 共23页
西安工业大学《软件工程》第四章软件体系结构基础ppt课件.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《西安工业大学《软件工程》第四章软件体系结构基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《西安工业大学《软件工程》第四章软件体系结构基础ppt课件.ppt(23页珍藏版)》请在三一办公上搜索。

1、第四章 软件体系结构基础,软件体系结构的开发是大型软件系统开发的关键环节。体系结构在软件生产线的开发中具有至关重要的作用,在这种开发生产中,基于同一个软件体系结构,可以创建具有不同功能的多个系统。在软件产品族之间共享体系结构和一组可重用的构件,可以增加软件工程和降低开发和维护成本。,计算机科学与工程学院,软件工程(Software Engineer),4.1软件体系结构的概念,从软件危机谈起 构件与软件重用 什么是软件体系结构 软件体系结构设计原则 软件体系结构的现状及发展方向,计算机科学与工程学院,软件工程(Software Engineer),4.1.1 从软件危机谈起,1软件危机的表现软

2、件成本日益增长 开发进度难以控制 软件质量差 软件维护困难,计算机科学与工程学院,软件工程(Software Engineer),4.1.1 从软件危机谈起,2软件危机的原因用户需求不明确缺乏正确的理论指导 软件规模越来越大 软件复杂度越来越高,计算机科学与工程学院,软件工程(Software Engineer),4.1.1 从软件危机谈起,3如何克服软件危机软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。软件工程包括三个要素:(1)方法。软件工程方法为软件开发提供了如何做的技术,是完成软件工程项目的技术手段;(2)工具。软件工具是人类在开发软件的活动中智力和

3、体力的扩展和延伸,为软件工程方法提供了自动的或半自动的软件支撑环境;(3)过程。软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。,计算机科学与工程学院,软件工程(Software Engineer),4.1.2 构件与软件重用,1软件重用 软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。 使用软件重用技术可以减少软件开发活动中大量的重复性工作,这样就能提高软件生产率,降低开发成本,缩短开发周期。同时,由于软构件大都经过严格的质量认证,并在实际运行环境中得到校验,因此,重用软构件有助于改善软件质量。此外,大量使用软构件,软

4、件的灵活性和标准化程度也可望得到提高。,计算机科学与工程学院,软件工程(Software Engineer),4.1.2 构件与软件重用,2. 构件一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辩识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。近年来,构件技术发展迅速,已形成三个主要流派,分别是IBM的CORBA 、Sun的Java平台和Microsoft的COM+。 构成一个系统的构件可分为5类: 独立而成熟的构件 有限制的构件 适应性构件 装配的构件 可修改的构件,计算机科学与工程学院,软件工程(Software Engineer),4.

5、1.3 什么是软件体系结构,1软件体系结构的兴起六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要得多。在此种背景下,人们认识到软件体系结构的重要性,并认为对软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。,计算机科学与工程学院,软件工程(Software

6、 Engineer),4.1.3 什么是软件体系结构,2软件体系结构的定义Dewayne Perry和A1ex Wo1f曾这样定义:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。Mary Shaw和David Garlan认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计。 Kruchten指出,软件体系结构有四个角度,它们从不同方面对系统进行描述:概念角度描述系统的主要构件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述了一个系统的动态结构;代码角度描述了各种代码和库函数在开发环境中的组织。Hay

7、es Roth则认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。David Garlan和Dewne Perry于1995年在IEEE软件工程学报上又采用如下的定义:软件体系结构是一个程序系统各构件的结构、它们之间的相互关系以及进行设计的原则和随时间进化的指导方针。Barry Boehm和他的学生提出,一个软件体系结构包括一个软件和系统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。,计算机科学与工程学院,软件工程(Software Engineer),4.1.3 什么是软件体系结

8、构,总之,软件体系结构的研究正在发展,软件体系结构的定义也必然随之完善。在以后的文章里,如果不特别指出,我们将使用软件体系结构的下列定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原则。,计算机科学与工程学院,软件工程(Software Engineer),4.1.4 软件体系结构设计原则,抽象的原则分而治之的原则封装和信息隐蔽原则模块化原则高内聚和低耦合关注点分离原则策

9、略和实现的分离原则接口和实现分离原则,计算机科学与工程学院,软件工程(Software Engineer),4.1.5 软件体系结构的现状及发展方向,应用现状形成研究热点,仍处于非形式化水平软件体系结构的形式化方法研究 软件体系结构的建模研究 发展基于体系结构的软件开发模型 软件产品线体系结构的研究,计算机科学与工程学院,软件工程(Software Engineer),4.1.5 软件体系结构的现状及发展方向,2. 研究热点提供新的软件体系结构描述语言对软件体系结构的专门知识的整理 提供特定领域的体系结构框架 提供软件体系结构的形式化基础 建立评价软件体系结构的方法,计算机科学与工程学院,软件

10、工程(Software Engineer),4.1.5 软件体系结构的现状及发展方向,3. 发展方向各种ADLs之间的信息互换 设计工具和环境 体系结构再工程,计算机科学与工程学院,软件工程(Software Engineer),4.2 通用的软件体系结构,主机/终端结构 两层结构客户/服务器体系结构 浏览器/服务器结构 三层C/S结构 三层C/S结构应用实例,计算机科学与工程学院,软件工程(Software Engineer),4.2.1 主机/终端结构,早期计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。即所谓的主机分时系统。连接的终端完全没有事务处理的能力,只是输

11、入和显示信息。所有的事务处理功能完全放在主机进行。因此主机的负载很重,整个系统的事务处理能力全部取决于主机。目前,主机终端模式已逐步被淘汰。,计算机科学与工程学院,软件工程(Software Engineer),4.2.2 两层结构客户/服务器体系结构,1.两层C/S结构,计算机科学与工程学院,软件工程(Software Engineer),4.2.2 两层结构客户/服务器体系结构,2. C/S结构的一般处理流程,计算机科学与工程学院,软件工程(Software Engineer),4.2.3 浏览器/服务器结构,B/S本质上也是一种C/S结构,它是传统的两层C/S结构在Web上的发展。相对于

12、C/S结构而言,B/S结构是把原来在客户机一侧的应用程序模块与显示功能分开,将应用程序模块单独作为一层放在Web服务器上,客户端只需要安装浏览器就可以了,这样将系统的业务处理部分统一放在Web服务器上,客户端只起到与用户交互的作用。,计算机科学与工程学院,软件工程(Software Engineer),4.2.4 三层C/S结构,B/S结构即“瘦客户机”结构,并没有根本解决C/S的问题,一旦客户端增加,服务器的负担就会加重。而传统的C/S即“胖客户机”结构,虽然网络传输负担减轻了,事务处理大多在客户机进行,但是软件修改困难,因为它需要修改客户机的程序和配置,系统管理不便。为了解决上述问题,就产

13、生了三层结构。,计算机科学与工程学院,软件工程(Software Engineer),4.2.4 三层C/S结构,三层C/S结构的一般处理流程:,计算机科学与工程学院,软件工程(Software Engineer),4.2.5三层C/S结构应用实例,见教材,计算机科学与工程学院,软件工程(Software Engineer),习题,用构件的思想描述软件的定义,并说明基于构件软件开发方法的优点。什么是软件体系结构,简述软件体系结构的核心模型。Kruchten“4+1”模型包括哪5个视图,简单介绍各功能。软件体系结构的设计原则是什么?c/s,b/s体系结构描述及优缺点对比。结合你的经验和工作实例,任选一种体系结构,举例分析它的特点。,计算机科学与工程学院,软件工程(Software Engineer),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号