![软件架构设计实践- 基于SSM框架 课件 第3章 认识软件架构_第1页](http://file4.renrendoc.com/view4/M00/0D/27/wKhkGGaOTP6ABBpcAAC2w22tKsA570.jpg)
![软件架构设计实践- 基于SSM框架 课件 第3章 认识软件架构_第2页](http://file4.renrendoc.com/view4/M00/0D/27/wKhkGGaOTP6ABBpcAAC2w22tKsA5702.jpg)
![软件架构设计实践- 基于SSM框架 课件 第3章 认识软件架构_第3页](http://file4.renrendoc.com/view4/M00/0D/27/wKhkGGaOTP6ABBpcAAC2w22tKsA5703.jpg)
![软件架构设计实践- 基于SSM框架 课件 第3章 认识软件架构_第4页](http://file4.renrendoc.com/view4/M00/0D/27/wKhkGGaOTP6ABBpcAAC2w22tKsA5704.jpg)
![软件架构设计实践- 基于SSM框架 课件 第3章 认识软件架构_第5页](http://file4.renrendoc.com/view4/M00/0D/27/wKhkGGaOTP6ABBpcAAC2w22tKsA5705.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件架构设计实战——基于SSM框架Software
Architecture
Design
Practice
Based
on
SSM
Framework第3章认识软件架构123软件架构概述感受身边的架构存在软件架构的表示4软件架构的作用5常见的软件架构模式6软件架构与软件框架软件架构概述软件架构描述的是一个系统应该怎么构建,是针对特定的软件系统进行的一种抽象,能够为大型软件系统的设计、实现提供相应的指导,是相对而言比较具体的;而软件体系结构是比较宽泛的,当然也是对软件项目设计的整体描述,但是面对的抽象层次更高一些。1软件架构概述随着软件规模的不断扩大和软件复杂性的不断提高,使软件系统架构的复杂性逐步攀升,直接导致了软件实现、软件维护、软件服务、软件项目管理等也越来越困难。现代软件工程的核心,正在软件架构领域,以软件架构和软件构件为核心的软件开发方法,使软件生产走向工业化和自动化,极大的提高了软件开发的生产效率。11.1软件架构产生的背景随着组件化软件开发方式的发展,如何在设计阶段对软件系统进行抽象,获取系统蓝图以支持系统开发中的决策成为迫切而现实的问题。主要包括以下3个方面:1.软件复杂、易变,其行为特性难以预见,软件开发过程中需求和设计之间缺乏有效的转换,导致软件开发过程困难和不可控。2.随着软件系统规模越来越大,整个系统的结构和规格说明显得越来越重要。同时软件的各个模块之间有各种显性或隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长。3.对于大规模的复杂软件系统,相较于对计算算法和数据结构的选择,总体的系统结构设计和规格说明已经变得更加重要了。1.1软件架构产生的背景20世纪90年代,研究人员展开了关于软件架构的基础研究,主要集中于架构风格(模式)、架构描述语言、架构文档和形式化方法等方面。软件架构在高层次上对软件进行描述,便于软件开发过程中各个视角(如:用户、业务和系统)的统一,能够及早发现开发中的问题并支持各种解决方案的评估和预测。1.1软件架构产生的背景在软件项目生命周期的各个阶段都需要使用到软件架构。在需求分析阶段,需要使用软件架构模式(风格)对软件规约进行完善,支持从需求模型向架构模型转换;在软件设计阶段,通过软件架构借助形式化或多角度抽象描述,建立系统的架构模型、功能模型等,为进一步细化奠定基础;在软件项目的实现和维护阶段,软件架构能够帮助实现和维护人员理解软件项目的整体结构、功能划分等,更好的实现项目功能,尽早的发现和修复问题。因此良好的软件架构设计是软件项目得以顺利实现的重要保障。1.2软件架构的定义软件架构是由结构和功能各异、相互作用的构件集合,按照一定的结构方式构成的系统。它包含系统的基础构成单元,它们之间的作用关系,在构成系统时它们的集成方法以及对集成约束的描述等。1.2软件架构的定义从软件系统的角度理解架构定义,可以看到:软件架构是关于软件系统如何被组织起来的定义,即软件系统是由以下三个要素构成的。1.组成系统的结构元素或构件2.构件与构件之间的连接以及特定的连接关系3.系统集成的方法和约束1.2软件架构的定义为了便于理解架构,不妨将软件构架的定义浓缩为以下三个要素:(1)组成架构的元素:构件。(2)构件的相互联系:连接。(3)构件之间的相互联系关系:连接关系。架构是一个或多个结构(子架构、可不断细分)的抽象,是由抽象的构件来表示的,构件之间相互具有联系,相互之间的联系具有某些行为特征(连接关系)。1.3软件架构的应用软件架构是软件生命周期中的重要产物,它影响软件开发的各个阶段。需求阶段设计阶段实现阶段维护阶段1.4软件架构的一般特性软件架构能够服务于软件项目生命周期的全过程,主要具有以下5个方面的特性。1.注重可重用性2.利益相关者较多3.关注点分离4.质量驱动5.概念完整性感受身边的架构存在在我们的身边有很多架构的存在,我们也能时刻感受架构的作用,例如人体的骨骼结构,正是由于颈椎骨骼的存在才能支撑我们抬头、摇头;一条鱼能够在水中快速的游动,也借助的是全身骨骼的支撑;一所高校能够维持正常的运行,也依赖的是学校的组织架构(结构)。22.1交通信号灯控制系统的架构构件(实体部分):电源、信号灯、电线、开关;构件的相互联系(连接):连接电路使信号灯能够点亮与熄灭;构件之间的关系(逻辑关系):亮灯的顺序、时长以及循环等。2.2智能手机充电接口的架构主要的构件(实体部分)包括:电线、接口、智能手机、PC机(或其他设备);构件的相互联系(连接):智能手机与PC机(这里以PC机为例)通过USB连接;构件之间的关系(逻辑关系):PC、智能手机支持USBType-C协议,并遵守该协议进行数据传递。软件架构的表示软件架构最主要的功能就是描述系统将如何实现指派给它的软件功能,这个描述就是架构视图。33.1软件架构的描述手机应用的界面设计草图架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,它涵盖了系统的某一特定方面,而省略了与此方面无关的实体。3.2基于UML软件架构视图软件架构是软件开发的基础,也是产品迭代的纽带,通过架构能够理解软件设计的思路和目标。UML架构视图及其作用3.2基于UML软件架构视图1.逻辑视图3.2基于UML软件架构视图2.开发视图3.2基于UML软件架构视图3.进程视图3.2基于UML软件架构视图4.物理视图3.2基于UML软件架构视图5.场景视图场景视图,一般是用来描述需求的,从某种意义上来讲,是最重要的需求抽象,该视图是其他视图的冗余,同时其他视图也都要与场景视图发生交互。软件架构的作用软件架构在软件项目的开发过程中主要具有以下四个方面的作用。1.作为沟通媒介2.为系统的功能实现提供支撑和约束3.是软件过程管理的基础4.是软件迭代开发的框架4常见的软件架构模式架构模式是一个通用的解决方案,用于解决在给定上下文中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更广泛的应用范围。这里简要介绍5种常用的软件架构模式,请读者注意体会与软件设计模式的区别,并在后面框架篇中结合具体的Spring、SpringMVC、MyBatis框架进行深入理解。55.1分层模式分成模式是一种最为常见的架构模式,也称为多层体系架构模式。它用来构造可以分解为子任务组的软件系统,每个子任务都处于一个特定的抽象级别。每个层都为上一层提供支撑服务,并依赖于下一层的服务。5.2客户端-服务器模式客户端-服务器(Client/Server,简称C/S)模式由两部分组成:一个服务器和多个客户端。服务器组件将为多个客户端组件提供服务,客户端从服务器请求服务,服务器为这些客户端提供相关服务5.3浏览器-服务器模式浏览器-服务器模型(Brower-Server,简称B/S)是一种对C/S模型的演变和改进,在这种模型中,用户界面完全通过WEB浏览器实现,一部分事务逻辑由浏览器实现,大部分事务逻辑在服务器中实现,它是一种特殊的客户端-服务器模型,这种模型的客户端是某种浏览器,采用HTTP协议通信。5.4管道过滤器模式管道-过滤器模式是一种面向数据流的软件架构,主要由管道和过滤器组成,过滤器为一个具体的处理模块,接受输入数据然后进行一定的处理,最后进行输出;管道是传输数据的组件,用于将数据从一个过滤器的输出接口传送到下一个过滤器的输入接口。5.5微服务模式微服务架构指的是将大型复杂系统按功能或者业务需求,垂直切分成更小的子系统,这些子系统以独立部署的子服务存在,它们之间通过轻量级的、跨语言的同步或者异步(消息)网络调用进行通信。5.5微服务模式每个微服务仅关注于完成一个业务域的事情,微服务模式特点:1.系统是由多个服务构成;2.每个服务可以独立部署;3.每个服务之间是松耦合的,服务内部是高内聚的。5.5微服务模式微服务模式的主要优点为:1.使大型的复杂应用程序可以持续交付和持续部署。2.每个服务都相对较小并容易维护。3.服务可以独立部署和独立扩展,系统迭代容易。4.微服务架构可以实现团队的自治,团队协作容易,每个服务团队可以独立于其他团队开发、部署和扩展。开发速度相对单体应用更快。5.每个微服务都可以有独立的存储和服务器,从而整个系统的吞吐能力更强。5.5微服务模式微服务模式的主要缺点为:1.运维成本过高,部署数量较多,需要协调更多的开发团队;2.接口需要与多个微服务对接,因此需要兼容多版本;3.分布式系统带来更高的复杂性,需要处理分布式事务,需要有更好的发布平台和分布式跟踪平台等。软件架构与软件框架软件框架要从两个方面来理解:一方面它是一个框——指其约束,即在特定领域内使用该框架应该遵守的规则和规范;另一方面它是一个架——指其支撑性,即在特定领域内对系统功能实现的基础性支撑。6软件架构与软件框架软件架构是一个系统的草图,软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。框架就是可复用的代码,而架构不是,它是关于软件如何设计的策略。引入软件架构之后,整个开发过程变成了“两步走”,先做架构设计,再进行框架开发,架构决策会体现在框架开发之中。6软件架构与软件框架框架和架构的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”策略,先大局后局部,就出现了架构,先通用后专用,就出现了框架。下图就描述了软件架构与软件框架的关系,架构是抽象解决方案,关注大局而忽略细节,而框架是通用半成品,关注于细节,但是还必须根据具体需求进一步定制开发才能成为应用系统。6软件架构与软件框架在软件架构与软件框架的关系中,起点为特定领域的复杂软件工程问题(一般指待开发的软件系统),先进行抽象,提取软件系统要解决主要问题,形成软件架构,即软件系统的抽象解决方案,在这里忽略软件系统实现的细节问题;由于特定领域软件系统的共性问题,可以抽取出其共性问题的解决方案,这里指软件代码,例如在WEB应用中都涉及到数据类型的转换、数据校验等,可以剥离软件系统中的特定业务逻辑,形成具有较好通用性的软件代码,这就是软件框架,基于框架的软件开发可以减少后继软件开发的工作量;把软件架构和软件框架有效结合,能够充分发挥两者的优势,通过框架能够更好的理解架构的设计意图,通过架构能够更好的理解框架的基础支撑。6课程思政我国的根本政治制度是人民民主专政,是在中国共产党的领导下,以工农联盟为基础,实行人民民主和人民专政的国家政权。我国最高国家权力机关是中华人民共和国全国人民代表大会,它的常设机关是全国人民代表大会常务委员会。我国的最高国家行政机关是中华人民共和国国务院,也是最高国家权利机关的执行机关,下设外交部、国防部、教育部等组成部门。在我国这种总体架构的设计下,我们全面建成了小康社会,实现了民族进步和国家富强。在习近平新时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南京师大苏州实验学校2025届高三第五次模拟考试生物试卷含解析
- 2025届四川省泸州市泸县第四中学高三第二次模拟考试生物试卷含解析
- 工商银行转让协议书范本
- 宾馆员工定薪协议书范本
- 陕西省商洛重点中学2021-2022学年中考数学猜题卷含解析
- 山东省威海市荣成第十四中学2022年中考数学模拟试题含解析
- 糖果业批发新纪元
- 预防校园欺凌安全教育主题班会
- 江苏省连云港市赣榆区(2024年-2025年小学一年级语文)部编版课后作业(复习)试卷(含答案)
- 初中新生入学教育班会
- 外研版(2019) 选择性必修第二册 Unit 2 Improving Yourself Developing ideas课件
- 2023十八项医疗核心制度考试题库及参考答案
- 2023光伏工程施工队合同书正规范本(通用版)
- 医院师带徒协议书
- 火灾的应急处置流程
- 静电的防止与利用(课件)(人教版2019必修第三册)
- EPC项目提供后续设计服务的保证措施
- 作物“源、流、库”理论及其应用
- 粤教版综合实践活动三年级上册第四单元第一课时《玩具总动员》课件
- 2024届高三高考美术艺考素描速写色彩备考指导课件
- 留校住宿申请表
评论
0/150
提交评论