软件体系结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南民族大学硕士研究生《软件体系结构》2015—2016学年第一学期
课程论文(实践报告)
课程名称:软件体系结构的研究与发展
学院:计算机科学学院
专业:计算机技术
学号:2015120268
姓名:徐国强
软件体系结构的研究与发展
学号:2015120268;姓名:徐国强;专业:计算机技术
摘要
近年来,软件体系结构逐渐成为软件工程领域的研究热点以及大型软件系统与软件产品线开发中的关键技术之一,归纳了软件体系结构技术发展过程及其主要研究方向,在分析了典型的软件体系结构概念之后,给出了软件体系结构的定义,通过总结软件体系结构领域的若干研究活动,提出了软件体系结构研究的思路,并介绍了软件体系结构研究进展,探讨了软件体系结构研究中的不足之处,并分析其原因,作为总结,给出了软件体系结构领域最有前途的发展趋势。
1.什么是软件体系结构
从不同角度出发,研究者对体系结构的定义不同,没有形成标准、一致的认识。概括不同观点会发现,他们都支持这样的观点:即:软件体系结构包括系统总体组织、全局控制、通信协议、同步、数据存取、设计元素的功能、设计元素的组织、规模、性能、设计方案选择等。目前对软件体系结构在如下几个方面有较统一的认识:(1)体系结构是关于软件的系统级层次上的组成和行为的,是设计过程中不可缺少的一个阶段,对复杂软件的后期设计活动起着重要的决定作用。(2)体系结构是由软部件和部件之间的联系组成,软部件又有它自身的体系结构。(3)部件的描述有3个方面:计算功能、结构特性、其他特性。(4)目前没有哪个关于软件体系结构的描述可以说是完整的。关于什么是部件、什么是部件之间的联系并没有明确界定。软部件可以是对象、库、产品、组件、数据库或其他更加广泛的概念。
2.软件体系结构的发展史
与最初的大型中央主机相适应,最初的软件结构体系也是Mainframe结构,该结构下客户、数据和程序被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐在应用中被淘汰。在80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户(PC 机)和服务器(Mainframe或Server)之间分担;请求通常被关系型数据库处理,PC机在接受到被处理的数据后实现显示和业务逻辑;系统支持模块化开发,通常有GUI界面。Client/Server结构因为其灵活性得到了极其广泛的应用。但对
于大型软件系统而言,这种结构在系统的部署和扩展性方面还是存在着不足。
Internet的发展给传统应用软件的开发带来了深刻的影响。基于Internet 和Web的软件和应用系统无疑需要更为开放和灵活的体系结构。随着越来越多的商业系统被搬Internet,一种新的、更具生命力的体系结构被广泛采用,这就是为我们所知的“三层/多层计算”。客户层(client tier)用户接口和用户请求的发出地,典型应用是网络浏览器和胖客户(如Java程序),服务器层(server tier)典型应用是Web服务器和运行业务代码的应用程序服务器,数据层(data tier)典型应用是关系型数据库和其他后端(back-end)数据资源, 如 Oracle和SAP、 R/3等。六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。软件危机的程度日益加剧,现有的软件工程方法对此显得力不从心。对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明比起对计算的算法和数据结构的选择已经变得明显重要得多。在此种背景下,人们认识到软件体系结构的重要性,并认为对软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的最有希望的途径。
软件体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法,最近几年软件体系结构研究已完全独立于软件工程的研究,成为计算机科学的一个最新的研究方向和独立学科分支。软件体系结构研究的主要内容涉及软件体系结构描述、软件体系结构风格、软件体系结构评价和软件体系结构的形式化方法等。解决好软件的重用、质量和维护问题,是研究软件体系结构的根本目的。
3.软件体系结构的现状
从目前看仍处于非形式化水平自20世纪90年代后期以来,软件体系结构的研究成为一个热点。广大软件工作者已经认识到软件体系结构研究的重大意义和它对软件系统设计开发的重要性,开展了很多研究和实践工作。从软件体系结构研究的现状来看,当前的研究和对软件体系结构的描述,在很大程度上来说还停留在非形式化的基础上。软件构架师仍然缺乏必要的工具,这种工具应该是显式描述的、有独立性的形式化工具。在目前通用的软件开发方法中,其描述通常是用非形式化的图和文本,不能描述系统期望的存在于构件之间的接口,不能描述不同的组成系统的组合关系的意义。难以被开发人员理解,更不能用来分析其一致性和完整性等特性。
4.什么是软件危机
落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
5.对软件危机的看法以及对现今软件行业发展的影响
软件危机的产生主要有这几个原因:(1)软件自身特点(2)开发人员的弱点(3)用户需求不明(4)缺乏正确理论指导(5)开发规模越来越大(6)开发复杂度越来越高。
可以通过软件生命周期的模型和软件工具的使用来缓解危机,通过程序自动化和软件工业化生产的方法实现软件标准化的目标,进一步缓解软件危机带来的影响。软件危机有利有弊,除了带来许多麻烦,也给我们带来许多挑战,克服危机的过程,我们在技术上和创新上都有了一个提升,也算是间接为软件产业的发展做了贡献。
20世纪60年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上,然而随着软件系统规模越来越大,对总体的系统结构设计和规格说明变得异常重要。随着软件危机程度的加剧,软件体系结构(software architecture)这一概念应运而生。(软件体系结构是针对解决软件危机而产生的学科)
自从提出软件工程概念后,软件工程已经提出了一系列理论方法解决软件开发过程中的一些问题。但是,固有的复杂性、易变性和不可见性,使得软件开发的周期长、代价高和质量低的问题依然存在。软件体系结构的出现为提高软件需求和软件设计的质量提供了需求分析工程技术和软件建模技术,而且解决了需求和设计之间的鸿沟,在软件需求和设计之间架起一座桥梁。软件体系结构技术的研究,使软件复用从代码复用发展到设计复用和过程复用。
软件体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享与复用、基于软件体系结构的软件开发提供了有力的支持。
参考文献
[1] 张友生.软件体系结构的描述方法.程序员,2002(11):44-46.
[2] 于卫,杨万海,蔡希尧.软件体系结构的描述方法研究.计算机研究与发展,2000(10): 1185-1191.
[3] 孙志勇,刘宗田,袁兆山.软件体系结构描述语言ADL及其研究发展.计算机科学,2000(1):36-39.
[4] 孙昌爱,金茂忠.软件体系结构描述研究与进展.计算机科学,2003(2):136-139.