第11讲软件架构及设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第11讲软件架构及设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 软件 架构 设计 课件
- 资源描述:
-
1、软件架构与设计软件架构与设计架构架构v软件架构软件架构逻辑架构:关注功能(三层架构)逻辑架构:关注功能(三层架构)v系统架构系统架构物理架构:关注系统、网络、服务器物理架构:关注系统、网络、服务器等基础设施等基础设施数据架构:关注的是数据持久化和存数据架构:关注的是数据持久化和存储层面的问题储层面的问题软件架构软件架构v 软件架构是对系统的高层视角,或者是软件架构是对系统的高层视角,或者是对系统的抽象。对系统的抽象。v 简单来说:软件架构就是软件系统的一简单来说:软件架构就是软件系统的一张蓝图。张蓝图。正确理解设计的含义正确理解设计的含义v 架构和设计是两个不同的概念架构和设计是两个不同的概念
2、v 设计主要是指思考和求证的过程设计主要是指思考和求证的过程v 设计指明了如何解决一个个问题,并提设计指明了如何解决一个个问题,并提出方案和计划出方案和计划v 当软件系统的架构确定之后,设计就开当软件系统的架构确定之后,设计就开始了始了正确理解设计的含义正确理解设计的含义v 业务需求是系统架构的决定性因素业务需求是系统架构的决定性因素v 软件设计和开发在架构确定之后开始进软件设计和开发在架构确定之后开始进行行v 开发是在设计的基础上进行的开发是在设计的基础上进行的业务需求业务需求架构架构设计设计开发开发正确理解设计的含义正确理解设计的含义机械工程师机械工程师正确理解设计的含义正确理解设计的含义
3、三层架构三层架构 v表示层(表示层(User Interface layer-UIUser Interface layer-UI)v业务逻辑层业务逻辑层(Business Logic Layer-BLL)(Business Logic Layer-BLL)v数据访问层(数据访问层(Data Access Layer-DALData Access Layer-DAL)架构设计中的重要概念架构设计中的重要概念一、一、TierTier和和LayerLayerv LayerLayer指系统中的逻辑结构,指系统中的逻辑结构,TierTier指系指系统的物理部署结构,不同的统的物理部署结构,不同的Laye
4、rLayer可以可以在同一在同一TierTier上;不同的上;不同的TierTier上面可以有上面可以有相同的相同的LayerLayer。架构设计中的重要概念架构设计中的重要概念常见的分层架构设计常见的分层架构设计常见的常见的5 5层逻辑架构层逻辑架构逻辑上的逻辑上的N N层层架构,优势在架构,优势在于将功能分割于将功能分割成明确的角色成明确的角色和组,提高了和组,提高了清晰度和可维清晰度和可维护性护性常见的分层架构设计常见的分层架构设计一、界面层一、界面层v 界面层通过指的是用户层或表现层。界面层通过指的是用户层或表现层。v 为什么把界面层和界面控制层分开来介绍为什么把界面层和界面控制层分开
5、来介绍(一般把界面层和界面控制层综合在一起,(一般把界面层和界面控制层综合在一起,统称为统称为“显示层显示层”)常见的分层架构设计常见的分层架构设计二、界面控制层二、界面控制层v 该层包含以下功能:决定用户应该看到该层包含以下功能:决定用户应该看到什么,对路径进行导航,以及解释用户什么,对路径进行导航,以及解释用户的输入。的输入。v 在在WindowsWindows窗体的应用程序中,这些逻窗体的应用程序中,这些逻辑指窗体后台的代码;辑指窗体后台的代码;WebWeb窗体的应用窗体的应用程序中,这些逻辑不仅仅指窗体后台的程序中,这些逻辑不仅仅指窗体后台的代码,也包含服务器端控件的代码。代码,也包含
6、服务器端控件的代码。常见的分层架构设计常见的分层架构设计二、界面控制层二、界面控制层v 界面控制层的代码是接受用户的输入,界面控制层的代码是接受用户的输入,然后将其提供给业务层,在那里输入会然后将其提供给业务层,在那里输入会被验证、处理,或者其他的操作。然后,被验证、处理,或者其他的操作。然后,界面控制代码必须对用户的输入做出响界面控制代码必须对用户的输入做出响应,并显示与业务层交互的结果。应,并显示与业务层交互的结果。常见的分层架构设计常见的分层架构设计二、界面控制层二、界面控制层v 控制用户界面和程序数据之间同步根据控制用户界面和程序数据之间同步根据界面操作完成对程序数据更新程序数据界面操
7、作完成对程序数据更新程序数据改变及时反应用户界面。改变及时反应用户界面。常见的分层架构设计常见的分层架构设计三、业务逻辑层三、业务逻辑层(BLL)(BLL)v 业务逻辑层包括所有的业务逻辑,如:业务逻辑层包括所有的业务逻辑,如:数据验证、控制、处理,以及对应用程数据验证、控制、处理,以及对应用程序的授权等。序的授权等。常见的分层架构设计常见的分层架构设计v 可以在浏览器或其他外部客户端中验证可以在浏览器或其他外部客户端中验证逻辑,但不能信任客户端的代码。必须逻辑,但不能信任客户端的代码。必须把业务层的逻辑视为真正的验证逻辑。把业务层的逻辑视为真正的验证逻辑。v 业务层部署到应用服务器上,或者尽
8、可业务层部署到应用服务器上,或者尽可能地与数据库服务器接近,因为业务逻能地与数据库服务器接近,因为业务逻辑需要操作数据库的大量数据。辑需要操作数据库的大量数据。常见的分层架构设计常见的分层架构设计四、数据访问层四、数据访问层(DAL)(DAL)v 数据访问代码常常需要与数据存储和管数据访问代码常常需要与数据存储和管理层进行交互,以便查询、插入、更新理层进行交互,以便查询、插入、更新和删除数据。和删除数据。v 数据访问层并不会真正地管理和存储数数据访问层并不会真正地管理和存储数据,它只是为业务逻辑层和数据库之间据,它只是为业务逻辑层和数据库之间提供接口。提供接口。常见的分层架构设计常见的分层架构
9、设计五、数据存储和管理层五、数据存储和管理层v 数据存储和管理层是真正进行数据存储数据存储和管理层是真正进行数据存储和管理的地方,例如,数据库。和管理的地方,例如,数据库。常见的分层架构设计常见的分层架构设计六、物理部署六、物理部署常见的分层架构设计常见的分层架构设计在两层的物理架构中,除了数据存储的位置在两层的物理架构中,除了数据存储的位置外,其他都与单层的配置一样,主要的工作外,其他都与单层的配置一样,主要的工作是改变一下数据库的连接字符串。是改变一下数据库的连接字符串。常见的分层架构设计常见的分层架构设计v 最佳性能的最佳性能的WebWeb客户端浏览器客户端浏览器WEB服务器服务器数据库
10、服务器数据库服务器MVCMVC框架模式框架模式vMVCMVC是一个框架模式,它强制性的使应用是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用程序的输入、处理和输出分开。使用MVCMVC应用程序被分成三个核心部件:模型、应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任视图、控制器。它们各自处理自己的任务。务。MVCMVC框架模式框架模式v模型层(模型层(ModelModel):模型层是应用程序的):模型层是应用程序的核心部分,主要由核心部分,主要由JavaBeanJavaBean组件来充当组件来充当,可以是一个实体对象或一种业务逻辑,可以是一个实体对象或一种业
11、务逻辑。之所以称之为模型,是因为它在应用。之所以称之为模型,是因为它在应用程序中有更好的重用性、扩展性。程序中有更好的重用性、扩展性。MVCMVC框架模式框架模式v视图层(视图层(ViewView):视图层提供应用程序):视图层提供应用程序与用户之间的交互界面。在与用户之间的交互界面。在MVCMVC模式中,模式中,这一层并不包含任何的业务逻辑,仅仅这一层并不包含任何的业务逻辑,仅仅提供一种与用户相交互的视图,在提供一种与用户相交互的视图,在WebWeb应应用中由用中由JSPJSP、HTMLHTML界面充当。界面充当。MVCMVC框架模式框架模式v控制层(控制层(ControllerContro
12、ller):控制层用于对):控制层用于对程序中的请求进行控制,起到一种宏观程序中的请求进行控制,起到一种宏观调控的作用,它可以通知容器选择什么调控的作用,它可以通知容器选择什么样的视图、什么样的模型组件,在样的视图、什么样的模型组件,在WebWeb应应用中由用中由ServletServlet充当。充当。软件体系结构的概念软件体系结构的概念v软件体系结构和软件架构对应的英文单软件体系结构和软件架构对应的英文单词都是词都是“Software architecture”Software architecture”,即,即它们是意义完全相同的两个中文单词用它们是意义完全相同的两个中文单词用语。在使用它
13、们时往往带有一种习惯上语。在使用它们时往往带有一种习惯上的差异,通常学术上用的差异,通常学术上用“软件体系结构软件体系结构”较多,在软件系统设计上用较多,在软件系统设计上用“软件架构软件架构”较多,如在软件公司里,有较多,如在软件公司里,有“软件架构软件架构师师”的职位,但很难听到的职位,但很难听到“软件体系结软件体系结构师构师”的说法。的说法。 软件架构的概述软件架构的概述v 什么是架构?如果你问五个不同的人,什么是架构?如果你问五个不同的人,可能会得到五种不同的答案可能会得到五种不同的答案 Ivar Jacobson, Ivar Jacobson, AOSDAOSD中文版中文版v 很多人都
14、试图给很多人都试图给“架构架构”下定义,而这下定义,而这些定义本身却很难统一些定义本身却很难统一 Martin Fowler,Martin Fowler,企业应用架构模式企业应用架构模式软件架构的概述软件架构的概述v “架构架构”一词最早来自建筑学,原意为一词最早来自建筑学,原意为建筑物设计和建造的艺术。在软件工程建筑物设计和建造的艺术。在软件工程领域,软件架构不是一个新名词,只是领域,软件架构不是一个新名词,只是在早期的著作中人们将软件架构称为在早期的著作中人们将软件架构称为软软件体系结构件体系结构;架构设计中的重要概念架构设计中的重要概念架构与模式架构与模式v 架构架构设计模式设计模式v
展开阅读全文