SE08-第8讲进行体系结构设计课件_第1页
SE08-第8讲进行体系结构设计课件_第2页
SE08-第8讲进行体系结构设计课件_第3页
SE08-第8讲进行体系结构设计课件_第4页
SE08-第8讲进行体系结构设计课件_第5页
已阅读5页,还剩149页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

进行体系结构设计需要回答以下几个问题为什么要进行体系结构设计?体系结构是什么?它有哪些研究领域?如何进行体系结构设计?1进行体系结构设计教材只给出了部分回答需要对教材内容作适度补充推荐阅读《软件体系结构(世界著名计算机教材精选)》,刘振东等译,清华大学出版社,2007.03《设计模式—可复用面向对象软件的基础》,李英军等译,机械工业出版社,2005.06

《企业应用架构模式》,王怀民等译,机械工业出版社,2004.07《Microsoft.NET企业级应用架构设计》,陈黎夫译,人民邮电出版社,2010.06《ExpertOne-on-OneJ2EEDevelopmentwithoutEJB中文版》,JavaEye,电子工业出版社,2005.092进行体系结构设计体系结构综述体系结构风格特定领域体系结构体系结构框架体系结构设计映射数据流到软件体系结构小结31体系结构综述体系结构背景体系结构定义体系结构研究领域41.1体系结构背景随着软件系统规模越来越大、越来越复杂,整个系统的结构和规格说明显得越来越重要。最早指出体系结构重要性的是大师EdsgerDijkstra(1930-2002)

“..thelargertheproject,themoreessentialthestructuring!”(1968)

51.1体系结构背景对于大规模的复杂软件系统来说,对总体的系统结构设计和规格说明要比算法和数据结构的选择重要得多。体系结构是早期设计决策的体现体系结构明确了对系统实现的约束条件体系结构制约着系统的质量属性通过研究体系结构可以预测软件的质量体系结构可以提高软件生产率…….61.1体系结构背景体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法。近年来,体系结构研究独立于软件工程的研究,成为计算机科学的一个新的研究方向和独立学科分支。对体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题,提供新的、最有希望的途径。

71.2体系结构定义目前学术界和工业界对于体系结构的定义尚未形成统一意见,以下介绍几种具有代表性的定义。

Booch&Rumbaugh&Jacobson定义Bass定义Garlan&Shaw定义Soni&Nord&HofmeisterIEEE的定义…….10多种81.2体系结构定义Booch&Rumbaugh&Jacobson定义体系结构={组织,元素,子系统,风格}体系结构是一系列重要决策的集合,这些决策与以下内容相关:软件元素:构成系统的结构元素及其接口。软件的组织:软件元素的选择,以及它们在协作中明确表现出的行为。子系统:软件元素在结构和行为上组合成更大规模的软件元素。体系结构风格:用于引导软件元素的组合。91.2体系结构定义Bass定义(教材采用的定义)Bass等人在《SoftwareArchitectureinPractice》一书中提到,程序或计算系统的体系结构是系统的一个或多个结构,其包括软件构件构件的外部可视属性构件之间的关系101.2体系结构定义Garlan&Shaw定义体系结构={构件,连接件,约束}构件:一组代码,如程序的模块、独立的程序或数据库服务器等。连接件:过程调用、管道、远程过程调用等,用于表示构件之间的相互作用。约束:指明构件连接的势态和条件。例如,上层构件可要求下层构件的服务,反之则不允许。111.2体系结构定义Soni&Nord&Hofmeister定义西门子研究院的Soni等人认为体系结构有4个不同的具体形态,每种形态都从不同的角度来描述系统。概念体系结构:用于描述设计元素和及其相互关系。模块互连体系结构:包含功能分解和分层两个正交的结构。执行体系结构:用于描述系统的动态结构。代码体系结构:用于描述源程序、二进制代码和函数库的组织方式。121.2体系结构定义IEEE的定义体系结构={构件,连接件,环境,原理}体系结构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一系统的基本组织结构以及指导上述内容设计与演化的原理。131.2体系结构定义我们的认识体系结构在较高抽象层次上描述了构成软件系统的元素、元素之间的交互关系、指导元素组合的模式以及相关约束要求,对于软件系统的理解、分析、验证和演化等方面有着十分重要的意义。141体系结构综述体系结构背景体系结构定义体系结构研究领域

151.3体系结构研究领域

体系结构已经取得了长足的发展,受到大多数软件系统设计和研究人员的重视。但它仍处在不断发展之中,下面简介一些关注较多、影响较大的研究领域。体系结构建模体系结构描述语言体系结构设计体系结构分析与验证基于体系结构的软件开发过程特定领域的体系结构框架16体系结构建模体系结构建模是研究如何表示体系结构的问题。根据建模的侧重点的不同,可以将体系结构的模型分为5种:结构模型:用构件、连接件和其他概念刻画体系结构。动态模型:用于描述系统的“大粒度”的行为性质。例如描述系统的重新配置或演化。框架模型:与结构模型类似,但它主要以一些特殊的问题为目标建立只针对和适应该问题的结构。过程模型:研究构造体系结构的步骤和过程。功能模型:研究系统功能构件的层次划分,可以将其视为是一种特殊的框架模型。最为常用17体系结构描述语言体系结构描述语言(ADL)的主要目的是提供一种规范化的体系结构描述。ADL为体系结构的分析和验证提供形式化基础。目前已有近20种ADL,比较有影响力的有C2、UniCon、MetaH、Aesop、SADL、Rapide、Wright等。18体系结构设计

体系结构设计是系统设计的一部分,它凌驾于算法和数据结构设计之上,其包括设计整体组织和全局控制结构,如构件的功能分配、通信协议、物理空间分布等等

体系结构设计方法体系结构风格体系结构设计空间体系结构设计的支撑工具19体系结构分析与验证体系结构分析与验证研究如何将软件的非功能性转化为体系结构需求、如何分析和验证体系结构满足期望的需求属性,以及如何建立评价体系结构的方法。基于场景的体系结构分析方法SAAM体系结构权衡分析方法ATAM

体系结构形式化的验证方法特定领域软件体系结构分析方法…….20基于体系结构的软件开发过程基于体系结构的软件开发过程研究引入体系结构后的软件开发过程、基于体系结构的开发与中间技术集成、基于体系结构的程序框架自动生成技术等。体系结构的开发是大型软件系统开发的重要环节。对软件产品线有重要意义:基于同一个体系结构,可以创建具有不同功能的多个系统。21特定领域的体系结构框架特定领域的体系结构框架研究为一些特定领域的软件产品提供可重用框架。Eclipse的插件体系结构Struts框架、Spring框架和Hibernate框架ASP.NetMVC框架北邮周莹新博士提出的电信软件的体系结构北航金茂忠教授提出的测试环境的体系结构…22进行体系结构设计体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构小结232体系结构风格体系结构风格定义了一个系统家族,其包括一个词汇表和一组约束。一个词汇表包含一些构件和连接件类型,一组约束指出系统是如何将这些构件和连接件组合起来的。242体系结构风格有些学者对体系结构模式和体系结构风格不加区分。体系结构模式(architecturalpattern)表达了软件系统的基本结构组织形式或者结构方案,包含了一组预定义的子系统规定了这些子系统的责任提供了用于组织和管理这些子系统的规则和向导。252体系结构风格体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。对体系结构风格的研究和实践为大粒度的软件复用提供了可能。262体系结构风格典型的体系结构风格数据流风格管道/过滤器风格调用—返回风格仓库风格272.1数据流风格数据流风格的特点当输入数据经过一系列的计算和操作构件的变换形成输出数据时,可以应用这种体系结构。管道/过滤器、批处理序列属于数据流风格。

282.2管道/过滤器风格管道/过滤器风格拥有一组过滤器构件,这些构件通过管道连接管道将数据从一个构件传送到下一个构件。每个过滤器独立于其上游和下游的构件而工作,过滤器的设计要针对某种形式的数据输入,并且产生某种特定形式的数据输出。如果数据流退化成为单线的变换,则称为批处理序列。这种结构接收一批数据,然后应用一系列连续的构件(过滤器)变换它。292.3调用—返回风格调用—返回风格:在此类体系结构中,存在以下3种子风格。主程序/子程序风格302.3调用—返回风格调用—返回风格之面向对象风格系统的构件封装了数据和必须应用到该数据上的操作,构件间通过消息传递进行通信与合作。与主程序/子程序的体系结构相比,面向对象风格中的对象交互会复杂一些。面向对象风格与网络应用的需求在分布性、自治性、协作性、演化性等方面具有内在的一致性。312.3调用—返回风格调用—返回风格之分层风格在这种体系结构中,整个系统被组织成一个分层结构,每一层为上层提供服务,并作为下一层的客户。322.4仓库风格仓库风格:数据仓库(如文件或数据库)位于体系结构的中心,其他构件经常访问该数据仓库,并对仓库中的数据进行增加、修改或删除操作。数据库系统、超文本系统和黑板系统都属于仓库风格。332.4仓库风格仓库风格:中心存储库变换成“黑板”,黑板构件负责协调信息在客户间的传递,当用户感兴趣的数据发生变化时,它将通知客户软件。黑板系统的传统应用是信号处理领域,如语音和模式识别。另一应用是松耦合代理数据共享存取。34进行体系结构设计体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构小结353特定领域体系结构特定的应用还需要特定的体系结构模型。这些体系结构模型称为领域相关的体系结构。有两种领域相关的体系结构模型:类属模型(genericmodel)和参考模型(referencemodel)。363特定领域体系结构类属模型是从许多实际系统中抽象出来的一般模型,它封装了这些系统的主要特征。例如,许多图书馆都开发了自己的图书馆馆藏/流通系统,若把它们的共同功能抽取出来并创建一个让所有图书馆都认可的系统体系结构模型,这就是类属模型。373特定领域体系结构类属模型的一个最著名的例子是编译器模型,由这个模型已开发出了数以千计的编译器。

383特定领域体系结构参考模型源于对应用领域的研究它描述了一个理想化的包含了系统应具有的所有特征的软件体系结构。它是更抽象且是描述一大类系统的模型,并且也是对设计者有关某类系统的一般结构的指导。393特定领域体系结构参考模型的典型例子是开放式系统互联(OSI)参考模型。403特定领域体系结构以上两种不同类型的模型之间并不存在严格的区别,也可以将类属模型视为参考模型。类属模型可以直接在设计中复用,而参考模型一般是用于领域概念间的交流和对可能的体系结构做出比较。类属模型通常是经过“自下而上”地对已有系统的抽象,而参考模型是“由上到下”地产生的。413特定领域体系结构分布式系统结构传统的C/S体系结构三层C/S体系结构分布式对象体系结构

面向服务的体系结构423.1传统的C/S体系结构传统的C/S体系结构中,应用系统被划分为客户机和服务器两部分。433.1传统的C/S体系结构客户/服务器体系结构在基于资源不对等,且为实现共享而提出来的,由服务器、客户机和网络三部分组成。客户机可以通过远程调用来获取服务器提供的服务。客户机必须知道可用的服务器的名字及它们所提供的服务,而服务器不需要知道客户机的身份,也不需要知道有多少台服务器在运行。443.1传统的C/S体系结构客户/服务器体系结构的两种形态瘦客户机模型:数据管理部分和应用逻辑都在服务器上执行,客户机只负责表示部分。主要缺点:它将繁重的处理负荷都放在了服务器和网络上,服务器负责所有的计算,这将增加客户机和服务器之间的网络流量。目前个人计算机所具有的处理能力在瘦客户机模型中用不上。453.1传统的C/S体系结构客户/服务器体系结构的两种形态胖客户机模型:服务器只负责对数据的管理。客户机上的软件实现应用逻辑和与系统用户的交互。主要缺点:开发成本较高。用户界面风格不统一,使用繁杂,不利于推广使用。软件移植困难。软件维护和升级困难463.2三层C/S体系结构三层C/S体系结构:增加了应用服务器,可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在于客户机上。473.2三层C/S体系结构三层C/S体系结构将整个系统分成表示层、应用逻辑层和数据层三个部分,其数据处理流程如下图所示。483.2三层C/S体系结构浏览器/服务器(browser/server,B/S)风格是三层体系结构的一种实现方式,B/S体系结构如下图所示。493.2三层C/S体系结构B/S体系结构表示层:应用系统的用户界面部分,担负着用户与应用程序之间的对话功能。它用于检查用户输入的数据,显示应用程序输出的数据,一般采用图形用户界面。应用逻辑层:应用系统的主体部分,包含具体的业务处理逻辑。通常在功能层中包含有确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能。数据层:数据层主要包括数据的存储及对数据的存取操作,一般选择关系型数据库管理系统(RDBMS)。503.2三层C/S体系结构B/S体系结构结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,节约了开发成本。B/S体系结构具有以下优点:基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网和统一服务的最现实的开放性基础。513.2三层C/S体系结构与C/S体系结构相比,B/S体系结构也有许多不足之处。B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。523.3分布式对象体系结构

分布式对象体系结构分布式对象体系结构为了消除C/S模型中客户机与服务器之间的差别,提高系统的伸缩性以及有效地均衡负载。分布式对象的实质是在分布式异构环境下建立应用系统框架和对象构件,它将应用服务分割成具有完整逻辑含义的独立子模块(称为构件),各个子模块可放在同一台服务器或分布在多台服务器上运行,模块之间通过中间件互相通信。533.3分布式对象体系结构分布式对象体系结构负责模块之间的中间件称为软件总线或对象请求代理,它的作用是在对象之间提供一个无缝接口。543.3分布式对象体系结构分布式对象体系结构在分布式对象技术的基础是构件。构件是一些独立的代码封装体,在分布计算的环境下可以是一个简单的对象,但大多数情况下是一组相关的对象组合体,提供一定的服务。分布式环境下,构件是一些灵活的软件模块,它们可以位置透明、语言独立和平台独立地互相发送消息,实现请求服务。构件之间并不存在客户机与服务器的界限,接受服务者扮演客户机的角色,提供服务者就是服务器。553.3分布式对象体系结构分布式对象体系结构主流的分布式对象技术规范有OMG的CORBA、Microsoft公司的.NET和Sun公司的J2EE。它们都支持服务端构件的开发,都有其各自的特点。563.3分布式对象体系结构1991年,OMG基于面向对象技术,给出了以对象请求代理(ORB)为中心的分布式应用体系结构。573.3分布式对象体系结构在OMG的对象管理结构中,ORB是一个关键的通信机制,它以实现互操作性为主要目标,处理对象之间的消息分布。在ORB之上有4个对象接口:对象服务:定义加入ORB的系统级服务,如安全性、命名和事务处理,它们是与应用领域无关的。公共设施:水平级的服务,定义应用程序级服务。领域接口:面向特定的领域。应用接口:面向指定的现实世界应用。是指供应商或用户借助于ORB、公共对象服务及公共设施而开发的特定产品。583.4面向服务的体系结构面向服务的体系结构(Service-OrientedArchitecture,简记SOA)的概念最早是由Gartner于1996年提出的。由于SOA在系统结构和软件开发中带来了很多的优势,后来IBM、MS、BEA、Oracle在内的全球著名IT公司加入了定义、实现和推广SOA的行列。SOA已经被各种分布式系统开发所采用。593.4面向服务的体系结构60613.4面向服务的体系结构Web服务技术XML、SOAP、WSDL、UDDISOA技术架构SOA中的角色:服务提供者、服务消费者、服务注册库SOA中的操作:发布、发现、绑定与调用SOA中的制品:服务、服务描述61进行体系结构设计体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构小结624体系结构框架体系结构框架概述模型--视图--控制器框架(MVC框架)表示--控制–中介者--实体–基础框架(PCMEF框架)J2EE框架634.1体系结构框架概述体系结构框架是特定应用领域问题的体系结构模式,它在组织形式上是一个待实例化的完整系统。定义了软件系统的构成单元和关系创建了基本的模块定义了涉及功能更改和扩充的插件位置。体系结构框架的重用,使得开发者可以集中精力解决业务逻辑问题。644.1体系结构框架概述典型的体系结构框架例子MVC框架PCMEF框架Struts框架ASP.netMVC框架J2EE框架…….654.2MVC框架MVC框架即模型—视图—控制器(model-view-controller)框架。它强调将用户输入、数据模型和数据表示的方式分开设计。一个交互式应用系统由模型、视图和控制器3个部件组成,分别对应于内部数据、数据表示和输入/输出控制部分。664.2MVC框架MVC框架示意图674.2MVC框架模型对象独立于外在显示内容和显示形式。代表应用领域中的业务实体和业务规则,是整个模型的核心。模型对象的变化通过事件处理通知视图和控制器对象。684.2MVC框架视图对象代表GUI对象,并且以用户需要的格式表示模型状态,是交互系统与外界的接口。可以包含子视图,子视图用于显示模型的不同部分。通常每个视图对象对应一个控制器对象694.2MVC框架控制器对象代表鼠标和键盘事件。它处理用户的输入行为并给模型发送业务事件,将业务事件解析为模型应执行的动作模型的更新与修改也将通过控制器来通知视图,从而保持各个视图与模型的一致性。704.2MVC框架MVC框架的处理请求的过程首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理;然后模型用业务逻辑来处理用户的请求并返回数据;最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。714.2MVC框架MVC框架各部分的职责模型是核心数据和功能,视图只关心显示数据,控制只关心用户输入MVC框架由于将数据和业务规则从表示层分开,因此可以最大化地重用代码。72ASP.NETMVC2Web技术基础ASP.NETMVC2概述案例73Web技术基础Web请求过程:简单的场景

S1.客户机浏览器运用http协议向web服务器进程发送页面请求。

例如:/new/test.htmlS2.web服务器进程接收请求,并查找所请求的html页面例如:在web服务器的虚根目录下new子文件夹下查找到test.html页面。

S3.Web服务器进程运用http协议将test.html页面以文件流的形式发送给客户机浏览器。74Web技术基础Web请求过程:简单的场景

S4.客户浏览器将接收到html文件。例如:<HTML><Head></Head><Body><H1>测试</H1></Body>

</HTML>S5.客户浏览器解释执行收到html文件。例如:75Web技术基础Web请求过程:复杂的场景

S1.客户机浏览器运用http协议向web服务器进程发送页面请求。例如:/new/test.aspx

S2.web服务器进程接收请求,并查找所请求的aspx页面例如:在web服务器的虚根目录下new子文件夹下查找到test.aspx页面。S3.Web服务器进程将test.aspx页面交给asp引擎执行。76Web技术基础Test.aspx页面<htmlxmlns="/1999/xhtml"><headrunat="server"><title></title></head><body>

<h1>test!</h1><formid="form1"runat="server">

<div>

<asp:TextBox

ID="TextBox1“

runat="server">Test</asp:TextBox>

</div></form></body></html>运用集成开发环境,在webForm中每放置一个控件,就在后代码中生成一个form标签asp的服务器端脚本以<%..%>或<asp..></asp>标识77Web技术基础Web请求过程:复杂的场景

S4.asp引擎将执行后的结果(一个html页面),交给web服务器进程。例如:

78执行后结果:一个标准的Html页面<htmlxmlns="/1999/xhtml"><head><title></title></head><body><h1>test!</h1><formname="form1"method="post"action="Default.aspx"id="form1"><div><inputtype="hidden"name="__VIEWSTATE"id="__VIEWSTATE“value="/wEPDwULLTEwMzQyNzk1MzdkZO"/></div><div><inputtype="hidden"name="__EVENTVALIDATION"id="__EVENTVALIDATION"value="/wEWAgK6kazVDwLs0bLrBohTtYTdl6Ezag"/></div><div><inputname="TextBox1"type="text"value="Test"id="TextBox1"/></div></form></body></html>运用html中input标签中的隐藏域来收集文本框的各种属性值,加密存放在_viewStatus中运用html中input标签中的隐藏域来收集文本框的各种事件值,加密存放在_viewStatus中。这样用户再交提交请求后,服务器与原先存放的值进行比较就可获知客户端事件是否发生,如发生则调用事件处理代码。79Web技术基础Web请求过程:复杂的场景

S5.Web服务器进程运用http协议将该结果页面以文件流的形式发送给客户机浏览器。

S6.客户浏览器解释执行收到html文件。80Web技术基础Web应用是一种典型的分布式架构。每一次信息交换都要涉及客户端和服务端两个层面。客户端Web页技术(现代浏览器可直接解释执行)Html、XHTML、JavaApplet、JavaScript、VBScript、CSS、DHTML、Flash服务端Web页技术(在服务端由相应的引擎解释执行,一般输出标准Html页或带客户端脚本的Html页)CGI(早期)、ASP、PHP、JSP和Servlet81ASP.NETMVC2(补充)Web技术基础ASP.NETMVC2概述案例82ASP.NETMVC2概述使用微软VS工具开发Web应用程序两种主要方式AWebForms技术AMVC框架可同时使用WebForm技术和MVC框架,但不推荐83ASP.NETMVC2概述WebForm技术优点模拟windows编程模式事件驱动使用ViewState和Postback解决Http协议无状态的问题丰富的服务器控件,加速开发速度数据绑定技术缺点页面生命周期复杂运用效率不高(客户端请求时,可能需要承载大量的ViewState数据)服务器端控件的大量使用,使得代码冗余较大程序的可测试性、可维性、可扩展性不高84ASP.NETMVC2概述AMVC2框架优点MVC各负其责,代码耦合性更低URL可控易于对界面逻辑进行单元测试易于客户端脚本编程易于前后台编码人员配合ViewEngine、ActionFilter等部件均可替换或定置公开源代码85ASP.NETMVC2概述AMVC2框架缺点使得大量现有控件难以直接使用存在许多约定,不易于初学者理解没有webForm易于使用86ASP.NETMVC2概述ASP.NETMVC2请求响应过程控制器处理请求,并将模型传递给视图视图根据控制器传入的模型渲染界面后交由服务器以响应用户请求模型是控制器和视图之间数据传输的对象87ASP.NETMVC2概述AMVC2框架的URL路由解决URL请求如何映射到控制器中对应的请求处理部分控制器中的Action方法负责处理用户请求通过路由映射表实现URL到控制器Action方法的映射

routes.MapRoute("Default",//Routename"{controller}/{action}/{id}",//URLwithparametersnew{controller=“Home”,action=“Index”,

id=UrlParameter.Optional}//Parameterdefaults)

/Home/Index/001HomeControllerAction方法是index传递给index方法的参数是”001”88ASP.NETMVC2概述AMVC2框架的控制器控制器可包含多个Action方法,用于处理不同请求Action方法的返回类型是ActionResult,其子类有89ASP.NETMVC2概述AMVC2框架的控制器Action方法执行完后,将返回的ActionResult对象交由框架,框架中的ViewEngine负责查找View。View缺省放在Views目录下,且名称与Action的名称相同。控制器传递给View的模型数据放在ViewData中,View可利用其进行界面渲染90ASP.NETMVC2概述AMVC2框架的模型模型可用于控制器与视图之间进行数据传递可创建强类型的View。如View<Student>模型中的属性标注可用于检验,例如模型类Student的Name属性标注[required],则提交表单时,可由框架进行验证,如何该字段为空,则抛出异常。91ASP.NETMVC2概述ASP.NETMVC2的视图视图根据控制器传入的模型数据渲染界面控制器传入的模型数据可以被视图中的子视图(又称部分视图)使用ASP.NETMVC2框架提供了大量的帮助类,易于视图的创建视图可以使用客户端脚本和WebForm控件(但不推荐使用WebForm控件)92ASP.NETMVC2(补充)Web技术基础ASP.NETMVC2概述案例93ASP.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}//Parameter

defaults);}94ASP.NETMVC2概述案例:控制器publicclassAccountController:Controller{publicActionResultRegister(){ViewData["PasswordLength"]=

MembershipService.MinPasswordLength;returnView();}

[HttpPost]publicActionResultRegister(RegisterModelmodel){

…..}}继承框架的控制类加入数据不是第一次访问,而是填写了表单递交的请求传递给控制器的模型数据95ASP.NETMVC2概述案例:模型publicclassRegisterModel{[Required][DisplayName("Username")]publicstringUserName{get;set;}[Required][ValidatePasswordLength][DataType(DataType.Password)][DisplayName("Password")]publicstringPassword{get;set;}

……}标注UserName属性不能为空标注userName属性的显示名称为“UserName”96ASP.NETMVC2概述案例:视图<%using(Html.BeginForm()){%>

……

<fieldset>

<divclass="editor-label">

<%=Html.LabelFor(m=>m.UserName)%></div><divclass="editor-field"><%=Html.TextBoxFor(m=>m.UserName)%><%=Html.ValidationMessageFor(m=>m.UserName)%></div>

<inputtype="submit"value="Register"/>

</fieldset><%}%>RegisterModel中的UserName属性与界面的绑定974体系结构框架体系结构框架概述模型--视图--控制器框架(MVC框架)表示--控制–中介者--实体–基础框架(PCMEF框架)J2EE框架984.3PCMEF框架PCMEF框架PCMEF是表示、控制、中介者、实体和基础的首字母缩写(presentation-control-mediator-entity-foundation,PCMEF)PCMEF是一个垂直层次的分层体系结构框架。每一层是可以包含其他包的包。994.3PCMEF框架PCMEF框架PCMEF框架包含4层表示层控制层领域层:包含实体包和中介者两个预定义包。基础层1004.3PCMEF框架PCMEF框架PCMEF框架中包的依赖性主要是向下依赖性。表示层依赖于控制层控制层依赖于领域层中介者包依赖于实体包和基础层。1014.3PCMEF框架表示层:包含定义GUI对象的类。控制层:处理表示层的请求,负责大多数程序逻辑、算法、主要计算以及为每个用户维持会话状态。领域层:其实体包处理控制请求,中介者包用于创建一个协调实体类和基础类的通信通道。基础层:负责与数据库和Web服务的所有通信。1024.3PCMEF框架七大原则向下依赖性原则向上通知原则相邻通信原则显式关联原则循环消除原则类命名原则相识包原则1034.3PCMEF框架扩展PCMEF框架:PCBMER框架

PCBMER代表着表示、控制器、Bean、中介者、实体、资源(presentation-control-bean-mediator-entity-resource)104PCBMER框架PCBMER框架的层次不是严格线性的,上层可以依赖多个相邻下层。bean层:表示那些预先确定要呈现在用户界面上的数据类和值对象。除了用户输入外,bean数据由实体对象(实体层)创建。表示层:表示屏幕以及呈现bean对象的UI对象。控制器层:表示应用逻辑。实体层:响应控制器和中介者。中介者层:建立了充当实体类和资源类媒介的通信管道。资源层:负责所有与外部持久数据资源(数据库、Web服务等)的通信。1054体系结构框架体系结构框架概述模型--视图--控制器框架(MVC框架)表示--控制–中介者--实体–基础框架(PCMEF框架)J2EE框架1064.4J2EE框架J2EE的核心体系结构在MVC框架的基础上进行扩展得到的。1074.4J2EE框架J2EE框架是分层结构中间3层(表示层,业务层,集成层)包含应用程序构件。客户层和资源层处于应用程序的外围。

1084.4J2EE框架客户层用户通过客户层与系统交互。该层可以是各种类型的客户端。可编程客户端:基于JavaSwing的客户端或applet浏览器客户端:纯Web和WML移动客户端等。

1094.4J2EE框架资源层企业数据库电子商务解决方案中的外部企业系统外部SOA服务数据可以分布在多个服务器上1104.4J2EE框架表示层也称为Web层或服务器端表示层。用户通过表示层来访问应用程序。在基于Web的应用系统中,表示层由用户界面代码和运行于Web服务器或应用服务器上的过程组成。表示层参考了MVC框架,它包括视图构件和控制器构件。1114.4J2EE框架业务层包含表示层中的控制器构件没有实现的一部分应用逻辑。负责确认和执行企业范围内的业务规则和事务管理从资源层加载到应用程序高速缓存中的业务对象。1124.4J2EE框架集成层负责建立和维护与数据源的连接。例如通过JDBC与数据库进行通信并进行池化。利用Java消息服务(JMS)与外部系统联合。113进行体系结构设计体系结构综述体系结构风格特定领域体系结构体系结构框架映射数据流到软件体系结构1145映射数据流到软件体系结构基本概念变换分析事务分析小结1155.1基本概念1165.1基本概念数据流的种类变换流事务流1175.1.1变换流变换流(TransformFlow)118变换流输入流:信息沿着各种将外部数据变换为内部形式的路径进入系统,这些路径被标识为输入流。输出流:输入数据通过“变换中心”,并沿着各种路径流出软件,这些流出数据被称为输出流。变换流:软件系统的数据流动以一种顺序的方式沿着一条或仅仅很少的几条“直线”路径进行5.1.1变换流1195.1.1变换流1205.1.1事务流事务流拥有事务中心,它是发射出很多动作的信息流中心。1211225.2变换分析按照变换分析方法对DFD进行变换,可以得到软件系统的体系结构图。1235.2变换分析变换分析方法1245.2变换分析举例:汽车数字仪表板的设计功能通过模-数转换实现传感器和微处理机接口;在发光二极管面板上显示数据;指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;指示加速或减速;如果车速超过55mph,则发出警告铃声。125汽车数字仪表板的设计第一步:DFD的分界,先分出I、P、O三块126燃料流传感器信号SPS旋转信号读旋转信号收集和求平均确定加/减速转换成转/分计算里程计算mph,超速值产生加/减速显示计算燃料消耗计算gph读和校核产生mpg显示产生mph显示发出铃声产生里程显示SPS

SPS箭头指示燃烧流上箭头水平线下箭头rpmrpmgphmphmpgmph超速值英里显示铃声mph显示mpg显示127汽车数字仪表板的设计完成一级分解128MPIO129汽车数字仪表板的设计映射:每个处理直接对应一个下层模块。P:由边界向回溯,将每个遇到的处理器映成相应的层模块。I:由边界向外推,方法与类似OIADCBMICBDA130汽车数字仪表板的设计未精化的输入结构131汽车数字仪表板的设计未精化的变换结构132汽车数字仪表板的设计未精化的输出结构133汽车数字仪表板的设计数字仪表板控制数据转换控制驱动仪表板接收传感器信号计算gph读燃料流转换成rpm收集sps读旋转信号确定加/减速计算mph计算mpg计算里程加/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示1345映射数据流到软件体系结构基本概念变换分析事务分析小结1355.3事务分析与变换分析的主要区别在于,由DFD生成软件结构的映射方法不同。1361375.4小结映射数据流到软件体系结构的基本步骤138139Q&APractice,Practice,andPractice1401.2体系结构定义体系结构尚处在发展期,对于其定义,目前学术界和工业界尚未形成统一意见,不同学者有不同看法。以下介绍几种具有代表性的定义。

Booch&Rumbaugh&Jacobson定义

Bass定义Shaw定义Garlan&Shaw模型Perry&Wolf模型

Garlan&Perry定义

Soni&Nord&HofmeisterBoehm模型

IEEE软件工程标准词汇中的定义

教材的定义

10种1411.2体系结构定义Booch&Rumbaugh&Jacobson定义体系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论