




已阅读5页,还剩149页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CopyrightFujianNormalUniversity 1 进行体系结构设计 需要回答以下几个问题为什么要进行体系结构设计 体系结构是什么 它有哪些研究领域 如何进行体系结构设计 进行体系结构设计 教材只给出了部分回答需要对教材内容作适度补充推荐阅读 软件体系结构 世界著名计算机教材精选 刘振东等译 清华大学出版社 2007 03 设计模式 可复用面向对象软件的基础 李英军等译 机械工业出版社 2005 06 企业应用架构模式 王怀民等译 机械工业出版社 2004 07 Microsoft NET企业级应用架构设计 陈黎夫译 人民邮电出版社 2010 06 ExpertOne on OneJ2EEDevelopmentwithoutEJB中文版 JavaEye 电子工业出版社 2005 09 CopyrightFujianNormalUniversity 3 进行体系结构设计 体系结构综述体系结构风格特定领域体系结构体系结构框架体系结构设计映射数据流到软件体系结构小结 CopyrightFujianNormalUniversity 4 1体系结构综述 体系结构背景体系结构定义体系结构研究领域 CopyrightFujianNormalUniversity 5 1 1体系结构背景 随着软件系统规模越来越大 越来越复杂 整个系统的结构和规格说明显得越来越重要 最早指出体系结构重要性的是大师EdsgerDijkstra 1930 2002 thelargertheproject themoreessentialthestructuring 1968 CopyrightFujianNormalUniversity 6 1 1体系结构背景 对于大规模的复杂软件系统来说 对总体的系统结构设计和规格说明要比算法和数据结构的选择重要得多 体系结构是早期设计决策的体现体系结构明确了对系统实现的约束条件体系结构制约着系统的质量属性通过研究体系结构可以预测软件的质量体系结构可以提高软件生产率 CopyrightFujianNormalUniversity 7 1 1体系结构背景 体系结构虽脱胎于软件工程 但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法 近年来 体系结构研究独立于软件工程的研究 成为计算机科学的一个新的研究方向和独立学科分支 对体系结构的系统 深入的研究将会成为提高软件生产率和解决软件维护问题 提供新的 最有希望的途径 CopyrightFujianNormalUniversity 8 1 2体系结构定义 目前学术界和工业界对于体系结构的定义尚未形成统一意见 以下介绍几种具有代表性的定义 Booch Rumbaugh Jacobson定义Bass定义Garlan Shaw定义Soni Nord HofmeisterIEEE的定义 10多种 CopyrightFujianNormalUniversity 9 1 2体系结构定义 Booch Rumbaugh Jacobson定义体系结构 组织 元素 子系统 风格 体系结构是一系列重要决策的集合 这些决策与以下内容相关 软件元素 构成系统的结构元素及其接口 软件的组织 软件元素的选择 以及它们在协作中明确表现出的行为 子系统 软件元素在结构和行为上组合成更大规模的软件元素 体系结构风格 用于引导软件元素的组合 CopyrightFujianNormalUniversity 10 1 2体系结构定义 Bass定义 教材采用的定义 Bass等人在 SoftwareArchitectureinPractice 一书中提到 程序或计算系统的体系结构是系统的一个或多个结构 其包括软件构件构件的外部可视属性构件之间的关系 CopyrightFujianNormalUniversity 11 1 2体系结构定义 Garlan Shaw定义体系结构 构件 连接件 约束 构件 一组代码 如程序的模块 独立的程序或数据库服务器等 连接件 过程调用 管道 远程过程调用等 用于表示构件之间的相互作用 约束 指明构件连接的势态和条件 例如 上层构件可要求下层构件的服务 反之则不允许 CopyrightFujianNormalUniversity 12 1 2体系结构定义 Soni Nord Hofmeister定义西门子研究院的Soni等人认为体系结构有4个不同的具体形态 每种形态都从不同的角度来描述系统 概念体系结构 用于描述设计元素和及其相互关系 模块互连体系结构 包含功能分解和分层两个正交的结构 执行体系结构 用于描述系统的动态结构 代码体系结构 用于描述源程序 二进制代码和函数库的组织方式 CopyrightFujianNormalUniversity 13 1 2体系结构定义 IEEE的定义体系结构 构件 连接件 环境 原理 体系结构是以构件 构件之间的关系 构件与环境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理 CopyrightFujianNormalUniversity 14 1 2体系结构定义 我们的认识体系结构在较高抽象层次上描述了构成软件系统的元素 元素之间的交互关系 指导元素组合的模式以及相关约束要求 对于软件系统的理解 分析 验证和演化等方面有着十分重要的意义 CopyrightFujianNormalUniversity 15 1体系结构综述 体系结构背景体系结构定义体系结构研究领域 CopyrightFujianNormalUniversity 16 1 3体系结构研究领域 体系结构已经取得了长足的发展 受到大多数软件系统设计和研究人员的重视 但它仍处在不断发展之中 下面简介一些关注较多 影响较大的研究领域 体系结构建模体系结构描述语言体系结构设计体系结构分析与验证基于体系结构的软件开发过程特定领域的体系结构框架 CopyrightFujianNormalUniversity 17 体系结构建模 体系结构建模是研究如何表示体系结构的问题 根据建模的侧重点的不同 可以将体系结构的模型分为5种 结构模型 用构件 连接件和其他概念刻画体系结构 动态模型 用于描述系统的 大粒度 的行为性质 例如描述系统的重新配置或演化 框架模型 与结构模型类似 但它主要以一些特殊的问题为目标建立只针对和适应该问题的结构 过程模型 研究构造体系结构的步骤和过程 功能模型 研究系统功能构件的层次划分 可以将其视为是一种特殊的框架模型 CopyrightFujianNormalUniversity 18 体系结构描述语言 体系结构描述语言 ADL 的主要目的是提供一种规范化的体系结构描述 ADL为体系结构的分析和验证提供形式化基础 目前已有近20种ADL 比较有影响力的有C2 UniCon MetaH Aesop SADL Rapide Wright等 CopyrightFujianNormalUniversity 19 体系结构设计 体系结构设计是系统设计的一部分 它凌驾于算法和数据结构设计之上 其包括设计整体组织和全局控制结构 如构件的功能分配 通信协议 物理空间分布等等体系结构设计方法体系结构风格体系结构设计空间体系结构设计的支撑工具 CopyrightFujianNormalUniversity 20 体系结构分析与验证 体系结构分析与验证研究如何将软件的非功能性转化为体系结构需求 如何分析和验证体系结构满足期望的需求属性 以及如何建立评价体系结构的方法 基于场景的体系结构分析方法SAAM体系结构权衡分析方法ATAM体系结构形式化的验证方法特定领域软件体系结构分析方法 CopyrightFujianNormalUniversity 21 基于体系结构的软件开发过程 基于体系结构的软件开发过程研究引入体系结构后的软件开发过程 基于体系结构的开发与中间技术集成 基于体系结构的程序框架自动生成技术等 体系结构的开发是大型软件系统开发的重要环节 对软件产品线有重要意义 基于同一个体系结构 可以创建具有不同功能的多个系统 CopyrightFujianNormalUniversity 22 特定领域的体系结构框架 特定领域的体系结构框架研究为一些特定领域的软件产品提供可重用框架 Eclipse的插件体系结构Struts框架 Spring框架和Hibernate框架ASP NetMVC框架北邮周莹新博士提出的电信软件的体系结构北航金茂忠教授提出的测试环境的体系结构 CopyrightFujianNormalUniversity 23 进行体系结构设计 体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构小结 CopyrightFujianNormalUniversity 24 2体系结构风格 体系结构风格定义了一个系统家族 其包括一个词汇表和一组约束 一个词汇表包含一些构件和连接件类型 一组约束指出系统是如何将这些构件和连接件组合起来的 CopyrightFujianNormalUniversity 25 2体系结构风格 有些学者对体系结构模式和体系结构风格不加区分 体系结构模式 architecturalpattern 表达了软件系统的基本结构组织形式或者结构方案 包含了一组预定义的子系统规定了这些子系统的责任提供了用于组织和管理这些子系统的规则和向导 CopyrightFujianNormalUniversity 26 2体系结构风格 体系结构风格反映了领域中众多系统所共有的结构和语义特性 并指导如何将各个模块和子系统有效地组织成一个完整的系统 对体系结构风格的研究和实践为大粒度的软件复用提供了可能 CopyrightFujianNormalUniversity 27 2体系结构风格 典型的体系结构风格数据流风格管道 过滤器风格调用 返回风格仓库风格 CopyrightFujianNormalUniversity 28 2 1数据流风格 数据流风格的特点当输入数据经过一系列的计算和操作构件的变换形成输出数据时 可以应用这种体系结构 管道 过滤器 批处理序列属于数据流风格 CopyrightFujianNormalUniversity 29 2 2管道 过滤器风格 管道 过滤器风格拥有一组过滤器构件 这些构件通过管道连接管道将数据从一个构件传送到下一个构件 每个过滤器独立于其上游和下游的构件而工作 过滤器的设计要针对某种形式的数据输入 并且产生某种特定形式的数据输出 如果数据流退化成为单线的变换 则称为批处理序列 这种结构接收一批数据 然后应用一系列连续的构件 过滤器 变换它 CopyrightFujianNormalUniversity 30 2 3调用 返回风格 调用 返回风格 在此类体系结构中 存在以下3种子风格 主程序 子程序风格 CopyrightFujianNormalUniversity 31 2 3调用 返回风格 调用 返回风格之面向对象风格系统的构件封装了数据和必须应用到该数据上的操作 构件间通过消息传递进行通信与合作 与主程序 子程序的体系结构相比 面向对象风格中的对象交互会复杂一些 面向对象风格与网络应用的需求在分布性 自治性 协作性 演化性等方面具有内在的一致性 CopyrightFujianNormalUniversity 32 2 3调用 返回风格 调用 返回风格之分层风格在这种体系结构中 整个系统被组织成一个分层结构 每一层为上层提供服务 并作为下一层的客户 CopyrightFujianNormalUniversity 33 2 4仓库风格 仓库风格 数据仓库 如文件或数据库 位于体系结构的中心 其他构件经常访问该数据仓库 并对仓库中的数据进行增加 修改或删除操作 数据库系统 超文本系统和黑板系统都属于仓库风格 CopyrightFujianNormalUniversity 34 2 4仓库风格 仓库风格 中心存储库变换成 黑板 黑板构件负责协调信息在客户间的传递 当用户感兴趣的数据发生变化时 它将通知客户软件 黑板系统的传统应用是信号处理领域 如语音和模式识别 另一应用是松耦合代理数据共享存取 CopyrightFujianNormalUniversity 35 进行体系结构设计 体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构小结 CopyrightFujianNormalUniversity 36 3特定领域体系结构 特定的应用还需要特定的体系结构模型 这些体系结构模型称为领域相关的体系结构 有两种领域相关的体系结构模型 类属模型 genericmodel 和参考模型 referencemodel CopyrightFujianNormalUniversity 37 3特定领域体系结构 类属模型是从许多实际系统中抽象出来的一般模型 它封装了这些系统的主要特征 例如 许多图书馆都开发了自己的图书馆馆藏 流通系统 若把它们的共同功能抽取出来并创建一个让所有图书馆都认可的系统体系结构模型 这就是类属模型 CopyrightFujianNormalUniversity 38 3特定领域体系结构 类属模型的一个最著名的例子是编译器模型 由这个模型已开发出了数以千计的编译器 CopyrightFujianNormalUniversity 39 3特定领域体系结构 参考模型源于对应用领域的研究它描述了一个理想化的包含了系统应具有的所有特征的软件体系结构 它是更抽象且是描述一大类系统的模型 并且也是对设计者有关某类系统的一般结构的指导 CopyrightFujianNormalUniversity 40 3特定领域体系结构 参考模型的典型例子是开放式系统互联 OSI 参考模型 CopyrightFujianNormalUniversity 41 3特定领域体系结构 以上两种不同类型的模型之间并不存在严格的区别 也可以将类属模型视为参考模型 类属模型可以直接在设计中复用 而参考模型一般是用于领域概念间的交流和对可能的体系结构做出比较 类属模型通常是经过 自下而上 地对已有系统的抽象 而参考模型是 由上到下 地产生的 CopyrightFujianNormalUniversity 42 3特定领域体系结构 分布式系统结构传统的C S体系结构三层C S体系结构分布式对象体系结构面向服务的体系结构 CopyrightFujianNormalUniversity 43 3 1传统的C S体系结构 传统的C S体系结构中 应用系统被划分为客户机和服务器两部分 CopyrightFujianNormalUniversity 44 3 1传统的C S体系结构 客户 服务器体系结构在基于资源不对等 且为实现共享而提出来的 由服务器 客户机和网络三部分组成 客户机可以通过远程调用来获取服务器提供的服务 客户机必须知道可用的服务器的名字及它们所提供的服务 而服务器不需要知道客户机的身份 也不需要知道有多少台服务器在运行 CopyrightFujianNormalUniversity 45 3 1传统的C S体系结构 客户 服务器体系结构的两种形态瘦客户机模型 数据管理部分和应用逻辑都在服务器上执行 客户机只负责表示部分 主要缺点 它将繁重的处理负荷都放在了服务器和网络上 服务器负责所有的计算 这将增加客户机和服务器之间的网络流量 目前个人计算机所具有的处理能力在瘦客户机模型中用不上 CopyrightFujianNormalUniversity 46 3 1传统的C S体系结构 客户 服务器体系结构的两种形态胖客户机模型 服务器只负责对数据的管理 客户机上的软件实现应用逻辑和与系统用户的交互 主要缺点 开发成本较高 用户界面风格不统一 使用繁杂 不利于推广使用 软件移植困难 软件维护和升级困难 CopyrightFujianNormalUniversity 47 3 2三层C S体系结构 三层C S体系结构 增加了应用服务器 可以将整个应用逻辑驻留在应用服务器上 而只有表示层存在于客户机上 CopyrightFujianNormalUniversity 48 3 2三层C S体系结构 三层C S体系结构将整个系统分成表示层 应用逻辑层和数据层三个部分 其数据处理流程如下图所示 CopyrightFujianNormalUniversity 49 3 2三层C S体系结构 浏览器 服务器 browser server B S 风格是三层体系结构的一种实现方式 B S体系结构如下图所示 CopyrightFujianNormalUniversity 50 3 2三层C S体系结构 B S体系结构表示层 应用系统的用户界面部分 担负着用户与应用程序之间的对话功能 它用于检查用户输入的数据 显示应用程序输出的数据 一般采用图形用户界面 应用逻辑层 应用系统的主体部分 包含具体的业务处理逻辑 通常在功能层中包含有确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能 数据层 数据层主要包括数据的存储及对数据的存取操作 一般选择关系型数据库管理系统 RDBMS CopyrightFujianNormalUniversity 51 3 2三层C S体系结构 B S体系结构结合浏览器的多种脚本语言 用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能 节约了开发成本 B S体系结构具有以下优点 基于B S体系结构的软件 系统安装 修改和维护全在服务器端解决 B S体系结构还提供了异种机 异种网 异种应用服务的联机 联网和统一服务的最现实的开放性基础 CopyrightFujianNormalUniversity 52 3 2三层C S体系结构 与C S体系结构相比 B S体系结构也有许多不足之处 B S体系结构缺乏对动态页面的支持能力 没有集成有效的数据库处理功能 采用B S体系结构的应用系统 在数据查询等响应速度上 要远远地低于C S体系结构 B S体系结构的数据提交一般以页面为单位 数据的动态交互性不强 不利于在线事务处理 OLTP 应用 CopyrightFujianNormalUniversity 53 3 3分布式对象体系结构 分布式对象体系结构分布式对象体系结构为了消除C S模型中客户机与服务器之间的差别 提高系统的伸缩性以及有效地均衡负载 分布式对象的实质是在分布式异构环境下建立应用系统框架和对象构件 它将应用服务分割成具有完整逻辑含义的独立子模块 称为构件 各个子模块可放在同一台服务器或分布在多台服务器上运行 模块之间通过中间件互相通信 CopyrightFujianNormalUniversity 54 3 3分布式对象体系结构 分布式对象体系结构负责模块之间的中间件称为软件总线或对象请求代理 它的作用是在对象之间提供一个无缝接口 CopyrightFujianNormalUniversity 55 3 3分布式对象体系结构 分布式对象体系结构在分布式对象技术的基础是构件 构件是一些独立的代码封装体 在分布计算的环境下可以是一个简单的对象 但大多数情况下是一组相关的对象组合体 提供一定的服务 分布式环境下 构件是一些灵活的软件模块 它们可以位置透明 语言独立和平台独立地互相发送消息 实现请求服务 构件之间并不存在客户机与服务器的界限 接受服务者扮演客户机的角色 提供服务者就是服务器 CopyrightFujianNormalUniversity 56 3 3分布式对象体系结构 分布式对象体系结构主流的分布式对象技术规范有OMG的CORBA Microsoft公司的 NET和Sun公司的J2EE 它们都支持服务端构件的开发 都有其各自的特点 CopyrightFujianNormalUniversity 57 3 3分布式对象体系结构 1991年 OMG基于面向对象技术 给出了以对象请求代理 ORB 为中心的分布式应用体系结构 CopyrightFujianNormalUniversity 58 3 3分布式对象体系结构 在OMG的对象管理结构中 ORB是一个关键的通信机制 它以实现互操作性为主要目标 处理对象之间的消息分布 在ORB之上有4个对象接口 对象服务 定义加入ORB的系统级服务 如安全性 命名和事务处理 它们是与应用领域无关的 公共设施 水平级的服务 定义应用程序级服务 领域接口 面向特定的领域 应用接口 面向指定的现实世界应用 是指供应商或用户借助于ORB 公共对象服务及公共设施而开发的特定产品 CopyrightFujianNormalUniversity 59 3 4面向服务的体系结构 面向服务的体系结构 Service OrientedArchitecture 简记SOA 的概念最早是由Gartner于1996年提出的 由于SOA在系统结构和软件开发中带来了很多的优势 后来IBM MS BEA Oracle在内的全球著名IT公司加入了定义 实现和推广SOA的行列 SOA已经被各种分布式系统开发所采用 CopyrightFujianNormalUniversity 60 3 4面向服务的体系结构 CopyrightFujianNormalUniversity 61 61 3 4面向服务的体系结构 Web服务技术XML SOAP WSDL UDDISOA技术架构SOA中的角色 服务提供者 服务消费者 服务注册库SOA中的操作 发布 发现 绑定与调用SOA中的制品 服务 服务描述 CopyrightFujianNormalUniversity 62 进行体系结构设计 体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构小结 CopyrightFujianNormalUniversity 63 4体系结构框架 体系结构框架概述模型 视图 控制器框架 MVC框架 表示 控制 中介者 实体 基础框架 PCMEF框架 J2EE框架 CopyrightFujianNormalUniversity 64 4 1体系结构框架概述 体系结构框架是特定应用领域问题的体系结构模式 它在组织形式上是一个待实例化的完整系统 定义了软件系统的构成单元和关系创建了基本的模块定义了涉及功能更改和扩充的插件位置 体系结构框架的重用 使得开发者可以集中精力解决业务逻辑问题 CopyrightFujianNormalUniversity 65 4 1体系结构框架概述 典型的体系结构框架例子MVC框架PCMEF框架Struts框架ASP netMVC框架J2EE框架 CopyrightFujianNormalUniversity 66 4 2MVC框架 MVC框架即模型 视图 控制器 model view controller 框架 它强调将用户输入 数据模型和数据表示的方式分开设计 一个交互式应用系统由模型 视图和控制器3个部件组成 分别对应于内部数据 数据表示和输入 输出控制部分 CopyrightFujianNormalUniversity 67 4 2MVC框架 MVC框架示意图 CopyrightFujianNormalUniversity 68 4 2MVC框架 模型对象独立于外在显示内容和显示形式 代表应用领域中的业务实体和业务规则 是整个模型的核心 模型对象的变化通过事件处理通知视图和控制器对象 CopyrightFujianNormalUniversity 69 4 2MVC框架 视图对象代表GUI对象 并且以用户需要的格式表示模型状态 是交互系统与外界的接口 可以包含子视图 子视图用于显示模型的不同部分 通常每个视图对象对应一个控制器对象 CopyrightFujianNormalUniversity 70 4 2MVC框架 控制器对象代表鼠标和键盘事件 它处理用户的输入行为并给模型发送业务事件 将业务事件解析为模型应执行的动作模型的更新与修改也将通过控制器来通知视图 从而保持各个视图与模型的一致性 CopyrightFujianNormalUniversity 71 4 2MVC框架 MVC框架的处理请求的过程首先控制器接收用户的请求 并决定应该调用哪个模型来进行处理 然后模型用业务逻辑来处理用户的请求并返回数据 最后控制器用相应的视图格式化模型返回的数据 并通过表示层呈现给用户 CopyrightFujianNormalUniversity 72 4 2MVC框架 MVC框架各部分的职责模型是核心数据和功能 视图只关心显示数据 控制只关心用户输入MVC框架由于将数据和业务规则从表示层分开 因此可以最大化地重用代码 CopyrightFujianNormalUniversity 73 ASP NETMVC2 Web技术基础ASP NETMVC2概述案例 CopyrightFujianNormalUniversity 74 Web技术基础 Web请求过程 简单的场景S1 客户机浏览器运用http协议向web服务器进程发送页面请求 例如 CopyrightFujianNormalUniversity 75 Web技术基础 Web请求过程 简单的场景S4 客户浏览器将接收到html文件 例如 测试S5 客户浏览器解释执行收到html文件 例如 CopyrightFujianNormalUniversity 76 Web技术基础 Web请求过程 复杂的场景S1 客户机浏览器运用http协议向web服务器进程发送页面请求 例如 CopyrightFujianNormalUniversity 77 Web技术基础 Test aspx页面test Test CopyrightFujianNormalUniversity 78 Web技术基础 Web请求过程 复杂的场景S4 asp引擎将执行后的结果 一个html页面 交给web服务器进程 例如 CopyrightFujianNormalUniversity 79 执行后结果 一个标准的Html页面test CopyrightFujianNormalUniversity 80 Web技术基础 Web请求过程 复杂的场景S5 Web服务器进程运用http协议将该结果页面以文件流的形式发送给客户机浏览器 S6 客户浏览器解释执行收到html文件 CopyrightFujianNormalUniversity 81 Web技术基础 Web应用是一种典型的分布式架构 每一次信息交换都要涉及客户端和服务端两个层面 客户端Web页技术 现代浏览器可直接解释执行 Html XHTML JavaApplet JavaScript VBScript CSS DHTML Flash服务端Web页技术 在服务端由相应的引擎解释执行 一般输出标准Html页或带客户端脚本的Html页 CGI 早期 ASP PHP JSP和Servlet CopyrightFujianNormalUniversity 82 ASP NETMVC2 补充 Web技术基础ASP NETMVC2概述案例 CopyrightFujianNormalUniversity 83 ASP NETMVC2概述 使用微软VS工具开发Web应用程序两种主要方式AWebForms技术AMVC框架 可同时使用WebForm技术和MVC框架 但不推荐 CopyrightFujianNormalUniversity 84 ASP NETMVC2概述 WebForm技术优点模拟windows编程模式事件驱动使用ViewState和Postback解决Http协议无状态的问题丰富的服务器控件 加速开发速度数据绑定技术缺点页面生命周期复杂运用效率不高 客户端请求时 可能需要承载大量的ViewState数据 服务器端控件的大量使用 使得代码冗余较大程序的可测试性 可维性 可扩展性不高 CopyrightFujianNormalUniversity 85 ASP NETMVC2概述 AMVC2框架优点MVC各负其责 代码耦合性更低URL可控易于对界面逻辑进行单元测试易于客户端脚本编程易于前后台编码人员配合ViewEngine ActionFilter等部件均可替换或定置公开源代码 CopyrightFujianNormalUniversity 86 ASP NETMVC2概述 AMVC2框架缺点使得大量现有控件难以直接使用存在许多约定 不易于初学者理解没有webForm易于使用 CopyrightFujianNormalUniversity 87 ASP NETMVC2概述 ASP NETMVC2请求响应过程 CopyrightFujianNormalUniversity 88 ASP NETMVC2概述 AMVC2框架的URL路由解决URL请求如何映射到控制器中对应的请求处理部分控制器中的Action方法负责处理用户请求通过路由映射表实现URL到控制器Action方法的映射routes MapRoute Default Routename controller action id URLwithparametersnew controller Home action Index id UrlParameter Optional Parameterdefaults CopyrightFujianNormalUniversity 89 ASP NETMVC2概述 AMVC2框架的控制器控制器可包含多个Action方法 用于处理不同请求Action方法的返回类型是ActionResult 其子类有 CopyrightFujianNormalUniversity 90 ASP NETMVC2概述 AMVC2框架的控制器Action方法执行完后 将返回的ActionResult对象交由框架 框架中的ViewEngine负责查找View View缺省放在Views目录下 且名称与Action的名称相同 控制器传递给View的模型数据放在ViewData中 View可利用其进行界面渲染 CopyrightFujianNormalUniversity 91 ASP NETMVC2概述 AMVC2框架的模型模型可用于控制器与视图之间进行数据传递可创建强类型的View 如View模型中的属性标注可用于检验 例如模型类Student的Name属性标注 required 则提交表单时 可由框架进行验证 如何该字段为空 则抛出异常 CopyrightFujianNormalUniversity 92 ASP NETMVC2概述 ASP NETMVC2的视图视图根据控制器传入的模型数据渲染界面控制器传入的模型数据可以被视图中的子视图 又称部分视图 使用ASP NETMVC2框架提供了大量的帮助类 易于视图的创建视图可以使用客户端脚本和WebForm控件 但不推荐使用WebForm控件 CopyrightFujianNormalUniversity 93 ASP NETMVC2 补充 Web技术基础ASP NETMVC2概述案例 CopyrightFujianNormalUniversity 94 ASP NETMVC2概述 案例 路由配置 Glob asax publicstaticvoidRegisterRoutes RouteCollectionroutes routes IgnoreRoute resource axd pathInfo routes MapRoute Default Routename controller action id URLwithparametersnew controller Home action Index id UrlParameter Optional Parameterdefaults CopyrightFujianNormalUniversity 95 ASP NETMVC2概述 案例 控制器 publicclassAccountController Controller publicActionResultRegister ViewData PasswordLength MembershipService MinPasswordLength returnView HttpPost publicActionResultRegister RegisterModelmodel CopyrightFujianNormalUniversity 96 ASP NETMVC2概述 案例 模型 publicclassRegisterModel Required DisplayName Username publicstringUserName get set Required ValidatePasswordLength DataType DataType Password DisplayName Password publicstringPassword get set CopyrightFujianNormalUniversity 97 ASP NETMVC2概述 案例 视图 m UserName m UserName m UserName CopyrightFujianNormalUniversity 98 4体系结构框架 体系结构框架概述模型 视图 控制器框架 MVC框架 表示 控制 中介者 实体 基础框架 PCMEF框架 J2EE框架 CopyrightFujianNormalUniversity 99 4 3PCMEF框架 PCMEF框架PCMEF是表示 控制 中介者 实体和基础的首字母缩写 presentation control mediator entity foundation PCMEF PCMEF是一个垂直层次的分层体系结构框架 每一层是可以包含其他包的包 CopyrightFujianNormalUniversity 100 4 3PCMEF框架 PCMEF框架PCMEF框架包含4层表示层控制层领域层 包含实体包和中介者两个预定义包 基础层 CopyrightFujianNormalUniversity 101 4 3PCMEF框架 PCMEF框架PCMEF框架中包的依赖性主要是向下依赖性 表示层依赖于控制层控制层依赖于领域层中介者包依赖于实体包和基础层 CopyrightFujianNormalUniversity 102 4 3PCMEF框架 表示层 包含定义GUI对象的类 控制层 处理表示层的请求 负责大多数程序逻辑 算法 主要计算以及为每个用户维持会话状态 领域层 其实体包处理控制请求 中介者包用于创建一个协调实体类和基础类的通信通道 基础层 负责与数据库和Web服务的所有通信 CopyrightFujianNormalUniversity 103 4 3PCMEF框架 七大原则向下依赖性原则向上通知原则相邻通信原则显式关联原则循环消除原则类命名原则相识包原则 CopyrightFujianNormalUniversity 104 4 3PCMEF框架 扩展PCMEF框架 PCBMER框架PCBMER代表着表示 控制器 Bean 中介者 实体 资源 presentation control bean mediator entity resource CopyrightFujianNormalUniversity 105 PCBMER框架 PCBMER框架的层次不是严格线性的 上层可以依赖多个相邻下层 bean层 表示那些预先确定要呈现在用户界面上的数据类和值对象 除了用户输入外 bean数据由实体对象 实体层 创建 表示层 表示屏幕以及呈现bean对象的UI对象 控制器层 表示应用逻辑 实体层 响应控制器和中介者 中介者层 建立了充当实体类和资源类媒介的通信管道 资源层 负责所有与外部持久数据资源 数据库 Web服务等 的通信 CopyrightFujianNormalUniversity 106 4体系结构框架 体系结构框架概述模型 视图 控制器框架 MVC框架 表示 控制 中介者 实体 基础框架 PCMEF框架 J2EE框架 CopyrightFujianNormalUniversity 107 4 4J2EE框架 J2EE的核心体系结构在MVC框架的基础上进行扩展得到的 CopyrightFujianNormalUniversity 108 4 4J2EE框架 J2EE框架是分层结构中间3层 表示层 业务层 集成层 包含应用程序构件 客户层和资源层处于应用程序的外围 CopyrightFujianNormalUniversity 109 4 4J2EE框架 客户层用户通过客户层与系统交互 该层可以是各种类型的客户端 可编程客户端 基于JavaSwing的客户端或applet浏览器客户端 纯Web和WML移动客户端等 CopyrightFujianNormalUniversity 110 4 4J2EE框架 资源层企业数据库电子商务解决方案中的外部企业系统外部SOA服务数据可以分布在多个服务器上 CopyrightFujianNormalUniversity 111 4 4J2EE框架 表示层也称为Web层或服务器端表示层 用户通过表示层来访问应用程序 在基于Web的应用系统中 表示层由用户界面代码和运行于Web服务器或应用服务器上的过程组成 表示层参考了MVC框架 它包括视图构件和控制器构件 CopyrightFujianNormalUniversity 112 4 4J2EE框架 业务层包含表示层中的控制器构件没有实现的一部分应用逻辑 负责确认和执行企业范围内的业务规则和事务管理从资源层加载到应用程序高速缓存中的业务对象 CopyrightFujianNormalUniversity 113 4 4J2EE框架 集成层负责建立和维护与数据源的连接 例如通过JDBC与数据库进行通信并进行池化 利用Java消息服务 JMS 与外部系统联合 CopyrightFujianNormalUniversity 114 进行体系结构设计 体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构 CopyrightFujianNormalUniversity 115 5映射数据流到软件体系结构 基本概念变换分析事务分析小结 CopyrightFujianNormalUniversity 116 5 1基本概念 CopyrightFujianNormalUniversity 117 5 1基本概念 数据流的种类变换流事务流 CopyrightFujianNormalUniversity 118 5 1 1变换流 变换流 TransformFlow CopyrightFujianNormalUniversity 119 变换流输入流 信息沿着各种将外部数据变换为内部形式的路径进入系统 这些路径被标识为输入流 输出流 输入数据通过 变换中心 并沿着各种路径流出软件 这些流出数据被称为输出流 变换流 软件系统的数据流动以一种顺序的方式沿着一条或仅仅很少的几条 直线 路径进行 5 1 1变换流 CopyrightFujianNormalUniversity 120 5 1 1变换流 CopyrightFujianNormalUniversity 121 5 1 1事务流 事务流拥有事务中心 它是发射出很多动作的信息流中心 CopyrightFujianNormalUniversity 122 CopyrightFujianNormalUniversity 123 5 2变换分析 按照变换分析方法对DFD进行变换 可以得到软件系统的体系结构图 CopyrightFujianNormalUniversity 124 5 2变换分析 变换分析方法 CopyrightFujianNormalUniversity 125 5 2变换分析 举例 汽车数字仪表板的设计功能通过模 数转换实现传感器和微处理机接口 在发光二极管面板上显示数据 指示每小时英里数 mph 行驶的里程 每加仑油行驶的英里数 mpg 等等 指示加速或减速 如果车速超过55mph 则发出警告铃声 CopyrightFujianNormalUniversity 126 汽车数字仪表板的设计 第一步 DFD的分界 先分出I P O三块 CopyrightFujianNormalUniversity 127 CopyrightFujianNormalUniversity 128 汽车数字仪表板的设计 完成一级分解 CopyrightFujianNormalUniversity 129 汽车数字仪表板的设计 映射 CopyrightFujianNormalUniversity 131 汽车数字仪表板的设计 未精化的输入结构 CopyrightFujianNormalUniversity 132 汽车数字仪表板的设计 未精化的变换结构 汽车数字仪表板的设计 未精化的输出结构 汽车数字仪表板的设计 CopyrightFujianNormalUniversity 135 5映射数据流到软件体系结构 基本概念变换分析事务分析小结 5 3事务分析 与变换分析的主要区别在于 由DFD生成软件结构的映射方法不同 CopyrightFujianNormalUniversity 137 CopyrightFujianNormalUniversity 138 5 4小结 映射数据流到软件体系结构的基本步骤 CopyrightFujianNormalUniversity 140 Q A Practice Practice andPractice CopyrightFujianNormalUniversity 141 1 2体系结构定义 体系结构尚处在发展期 对于其定义 目前学术界和工业界尚未形成统一意见 不同学者有不同看法 以下介绍几种具有代表性的定义 Booch Rumbaugh Jacobson定义Bass定义Shaw定义Garlan Shaw模型Perry Wolf模型Garlan Perry定义Soni Nord HofmeisterBoehm模型IEEE软件工程标准词汇中的定义教材的定义 10种 CopyrightFujianNormalUniversity 142 1 2体系结构定义 Booch Rumbaugh Jacobson定义体系结构 组织 元素 子系统 风格 体系结构是一系列重要决策的集合 这些决策与以下内容相关 软件的组织 构成系统的结构元素及其接口的选择 这些元素在相互协作中明确表现出的行为 这些结构元素和行为元素进一步组合构成的更大规模的子系统 和引导这一组织 包括这些元素及其接口 它们的组合 体系结构风格 CopyrightFujianNormalUniversity 143 1 2体系结构定义 Bass定义Bass等人在 SoftwareArchitecturei
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- XX年会主题活动策划方案
- 水利新质生产力的概念及内涵
- 2025年全科护理学院校全科护理常规操作规范试卷答案及解析
- 2025年康复医学功能评定操作技能答案及解析
- 2025年检验医学检验技术规范操作考核测试卷答案及解析
- 2025年精神科心理疗法应用与病例讨论答案及解析
- 2025年血液科学科再生障碍性贫血诊断标准模拟测试答案及解析
- 2025年免疫学自身免疫病诊疗策略模拟测试卷答案及解析
- 民族团结班级课件
- 新质生产力的马克思主义原理
- 高考语文复习-引号的作用 课件37张
- 农业模型PPT讲稿课件
- 国家开放大学电大专科《政治经济学》网络课机考网考形考单项选择题题库及答案
- 2019版外研社高中英语选择性必修三单词默写表
- 核质保监查员考试复习题(答案)
- Q∕GDW 10356-2020 三相智能电能表型式规范
- 电工电子技术基础教学大纲
- 医学统计学SPSS
- 制钵机的设计(机械CAD图纸)
- 艾草深加工项目可行性研究报告写作范文
- 《第七章:幼儿游戏》PPT课件
评论
0/150
提交评论