




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 分层软件架构设计及其应用研究 李冶高源摘要:分层软件架构设计是对软件功能予以细化的,实现软件解耦的设计思想,是现代软件设计过程中常用的软件设计思路。分层软件结构在系统的复用度、可扩展性以及开发难度的降低方面有着先天性的优势。该文以软件分层设计为核心题,介绍了其基本概念,从设计优势以及应用方式两个方面予以了简要讨论,为开发人员和软件系统设计人员在分层软件应用技术方面提供参考。关键词:计算机;软件;分层;技术;架构;应用:tp311 :a :1009-3044(2017)13-0089-02 1分层软件架构设计介绍分层软件架构设计是随着软件规模
2、的扩大而逐渐产生的软件设计方面的技术,其核心内容是将软件结构中功能相同的部分集中起来完成特定的功能任务,而将功能差异较大的部分进行分离处理,从而是实现了软件结构的相对隔离,使得软件体系结构层次性更加清晰。在软件工程领域中所说“高内聚、低耦合”就是软件分层技术最为简单的描述,利用分层技术能够实现软件开发和维护的高度灵活性以及功能模块的复用度。在软件层次结构分层架构设计中,最为著名的就是人们所说的mvc模式,其中v是指view视图层,主要是指软件的界面、用户接口,其实现方式既可以是客户端软件形式,还可以是以html为主要表现形式的浏览器形式,其核心功能是进行数据展示和对用户操作的接受、反馈;而m则
3、是model模型的意思,通过获得view層用户数据或者提取持久化层数据构建相应的数据模型,服务于数据操作;而c则是指control控制层,将不同的业务逻辑予以控制,完成数据处理以及视图展现。当然,软件分层是根据项目的实际情况予进行划分的,应在层次划分的复杂度与开发维护成本方面予以综合考量。2分层软件架构设计的优势分析1)提升软件的复用度软件各构建的复用程度是现代计算机软件工程利于研究的重要课题,传统的一体化设计,从视图展示、数据构建、业务处理、到数据持久化过程都在一个软件构建中予以完成,一旦需求发生了变更,软件维护所耗费的精力和修改复杂度是难以估量的,更别说软件的复用程度了。利用软件分层设计,
4、将各个层次予以划分,数据展现层的变更和维护并不涉及到后续数据模型的构建、业务逻辑的处理、以及持久化部分,仅仅需要对相应的视图层予以变更即可完成,如果数据模型相同,后续的持久化模块以及业务逻辑模块便可实现高度软件复用功能,这是传统的一体式设计所不具备的软件架构模式。还有一些中间件的技术,对外提供相应的业务处理接口,只要实现相应接口构建交付于中间件即可实现相应业务的处理,达到了软件复用的效果。2)降低软件开发难度利用分层技术,可以将软件开发的各个模块予以划分,开发人员不必关注其他方面的内容,只需要将所涉及的功能模块予以设计、编码即可完成,有效地降低了软件开发难度,提升开发人员自信心,保障软件开发进
5、度。除此之外,处在不同层次的开发设计人员,可以更加专注于其所涉及的层次,例如视图展现层,甚至可以利用美工人员进行开发;而数据库设计人员更关注于底层持久化的设计,从而实现了开发人员高度协调,降低整个软件项目的开发难度。利用传统的开发模式,这种优势是无法展现出来的。3)提升了软件的扩展性分层技术也为软件的可拓展性提供了天然的便利,要提升软件的扩展性无非是设计相应的接口功能,而软件分层架构正是这种接口设计的实现。下层结构为上层结构提供相应服务,下层结构同时提供相应服务接口,这与计算机网络结构iso分层模型设计思想是极其一致的。因此利用软件分层架构的设计是极其容易实现整个系统拓展功能。这里需要指出的是
6、,如果设计人员对接口加以统一性的设计,那么对于标准化的软件实现也是具有非常重要的意义。由此可见,利用好软件分层能够极大地提升软件的扩展性。3软件分层结构的应用3.1单项业务在软件开发中的应用所谓的单项结构也就是最为传统客户端/服务器模式(这里所说的客户端既可以是专用的客户端软件,也可以是通用的浏览器),将用户业务处理、数据持久化直接在视图层完成,代码相对集中,这种数据处理方式对于用户量极少、服务器要求较低的业务开发是可行的,但是其维护工作量较大,软件的复用度以及系统的拓展性都是较差的。一旦用户数量变多,其系统的性能将变得极其低下,系统的稳定性也是急剧下降,总之,这种单项业务处理开发模式仅仅出现
7、在最初的客户端/服务器交互模式使用过程中,系统的运行速度以及用户体现度相对较差。3.2二、三层技术在计算机软件开发中的应用为了克服单项数据模型的缺陷,二层技术应运而生,主要是将数据展现的视图层与系统结构予以分离,视图层更加清晰、便于设计,但是其性能与系统运行速度同样不容乐观,在此就不进行讨论了。三层技术则是对二层技术进行进一步细分,后台系统结构划分为数据持久化层以及业务逻辑层,至此现代化的软件模型基本形成,分别是视图层、业务处理层、数据持久化层,其中视图层进行单一的数据展示和用户交互功能的实现,其展现方式也更加多元化;业务处理层通过对视图层所传递过来的数据以及从持久化层抽取的数据进行相应的数据
8、处理过程,分别予以交付和存储,实现新视图数据的递交以及变化后持久化数据的完成,使得业务处理逻辑更加清晰;数据持久化层是与后台数据库进行直接交互的层次模型,实现对数据库的增删改查、函数、过程等的调用,完成数据持久化的过程。这种三层软件架构基本上与现代的软件开发模式接近,系统执行效率以及系统的稳定性都有了较大程度的提升,但是业务处理逻辑往往与视图层和持久化层划分清晰度仍存在一定的问题,这就导致了现如今应用更为广泛的四层或者更多层的软件结构。3.3四层技术在计算机软件开发中的应用四层软件分层技术通常是在三层结构上添加数据模型层,全部的数据交互都是以数据模型的方式予以进行的,而不是进行数据的直接传递,
9、从而使得软件层次机构更加清晰,使得业务逻辑层、视图层、持久化层的划分更加明确,克服三层结构划分不清晰的问题。多层结构则是在四层结构上进一步系统,例如构建多层数据模型、其他中间件的利用等等予以实现的。3.4中间件技术分层开发中的应用中间件技术从本质上来讲也是完成相对独立功能、复用度较高的软件构建,用户按照既定的接口参数进行数据传递即可完成相应功能的处理技术,中间件技术往往由第三开发商予以完成,对于降低整个系统的开发难度有着重要的意义。除此之外,利用一些中间件的技术可以在异构系统之间进行数据交互,最为典型的就是webservice技术,通过利用该技术将异构的数据模型通过xml数据转换,实现了异构系统之间的系统接入,对于拓展系统功能,具有极其重要的意义。当然一些中间件技术是收费的,但相对而言这些技术往往在可靠性方面具有一定的积极因素,能够有效缩短开发周期,也是分层技术
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 塔里木大学《数据可视化原理及应用》2023-2024学年第二学期期末试卷
- 重庆工商大学派斯学院《体育教学技能训练》2023-2024学年第二学期期末试卷
- 南京机电职业技术学院《细胞生物学A》2023-2024学年第二学期期末试卷
- 上海城建职业学院《学前儿童家庭教育与社区教育》2023-2024学年第二学期期末试卷
- 四川幼儿师范高等专科学校《种子经营管理学》2023-2024学年第二学期期末试卷
- 陕西青年职业学院《数据结构与算法分析》2023-2024学年第二学期期末试卷
- 湖北师范大学文理学院《电脑辅助设计(1)》2023-2024学年第二学期期末试卷
- 陕西国防工业职业技术学院《第二外语(韩语)1》2023-2024学年第二学期期末试卷
- 贵州民用航空职业学院《混凝土工学概论》2023-2024学年第二学期期末试卷
- 大庆师范学院《建筑设计理论(三)》2023-2024学年第二学期期末试卷
- 智慧教育 云平台建设方案
- 精雕JDPaint快捷键大全
- 灯泡贯流式机组基本知识培训ppt课件
- 小学数学四年级下册培优补差记录
- 人教版三年级下册体育与健康教案(全册教学设计)
- DB61∕T 5006-2021 人民防空工程标识标准
- 土壤学习题与答案
- 产品结构设计(课堂PPT)
- 第九课_静止的生命
- 尖尖的东西我不碰(课堂PPT)
- 工程勘察和设计承揽业务的范围
评论
0/150
提交评论