文档详情

软件设计与体系结构第1讲资料.ppt

发布:2017-08-19约5.65千字共30页下载文档
文本预览下载声明
模式与软件体系结构的关系 架构和模式应该是一个属于相互涵盖的过程,但是总体来说Architecture更加关注的是所谓的High-Level Design,而模式关注的重点在于通过经验提取的“准则或指导方案”在设计中的应用,因此在不同层面考虑问题的时候就形成了不同问题域上的Pattern。 希望通过定义的方式来区分架构和模式是不太可能的,因为本来就是交互交叉和提供服务的,比如著名的MVC(Model-View-Controller)就是一个例子,在设计模式中是一个非常经典的模式,在架构中同样适用。对于熟悉架构设计的系统架构师而言,似乎可以用如下来解释架构和模式之间的关系:架构是High-Level Design,着眼于不同业务中共性的解决方案,而模式是General Principle(通用原理)。 一些基本概念 模式是一个经验提取的“准则”,并且在一次一次的实践中得到验证,在不同的层次有不同的模式,小到语言实现(如Singleton)大到架构。在不同的层面上,模式提供不同层面的指导,比如架构设计方面,三层应用程序,分布式应用程序等等这些技术架构模式为架构设计提供了理论的参考,而在程序设计领域,设计模式则是提供了描述各个元素(在面向对象领域,更多的是指Class)之间的关系,GOF95的《设计模式---可复用面向对象软件的基础 》就是这个层次上的经典巨作,而在语言的实现过程中,也出现了同样的实现模式,如.NET中的delegate(委托)的Observer(观察者)模式实现。 模式与软件体系结构的关系(续1) 一些基本概念 体系结构从更高的层面去考虑问题,所以关注的问题就体现在“不变”因素上,比如系统部署中,更加关心应用程序的分层分级设计,而在这个基础之上提出的部署方案,才是架构考虑的重点。体系结构关心应用程序模式,更加体现在通过技术去解决这些业务差异带来的影响,关心是否是分布式应用程序,关心系统分层是如何设计,也关心性能和安全,因此在这样的情况之下,会考虑集群,负载平衡,故障迁移等等一系列技术。 模式与软件体系结构的关系(续2) 一些基本概念 什么是软件框架 面向某领域(包括业务领域,如ERP,和计算领域,如GUI)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供一系列定义良好的可变点以保证灵活性和可扩展性。可以说,软件框架是领域分析结果的软件化,是领域内最终应用系统的模板。 1、一系列完成计算的模块,在此称为构件。 软件框架的组成部分 3、一系列可变点(也称热点,Hot-spots,或调整点)。 2、构件之间的关系与交互机制。 4、可变点的行为调整机制 一些基本概念 框架和模式的关系 设计模式和框架在软件设计中是两个不同的研究领域。设计模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体,虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。 一些基本概念 框架和架构的关系 框架不是架构(即软件体系机构)。体系结构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体。更偏重于技术。确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现。 一些基本概念 什么是软件平台 软件平台是指用来构建与支撑应用软件的独立软件系统,它是开发与运行应用软件的基础,是任何一个应用软件得以实现与应用的条件。 软件平台的层次 1、操作系统平台 3、业务基础平台 2、基础架构平台 一些基本概念 模式、框架、架构、平台之间的区别 模式是代码级复用 框架式模块级复用 架构是系统级复用 平台是企业应用级复用 模式 框架 架构 平台 一些基本概念 为什么要用模式、框架、架构和平台? 想一想 因为软件越来越复杂 一些基本概念 软件设计与体系结构 Thanks 软件设计与体系结构 胡桂银 2015-09-07 课前说明 课前说明 对于这门课,大家最关心的问题是…… A、课难不难学 B、如何学好这门课 C、这门课学了有什么用 D、考试能不能过 课前说明 其实,我知道你们最关心的是: D、考试能不能过 课前说明 那些年,这门课的考试情况 2009级考试成绩 考试(考查)成绩统计: 90分以上(优秀) 3人 4.05% 80-89分(良好) 31人 41.89% 70-79分(中等) 30人 40.54% 60-69分(及格) 10人 13.51% 不及格(不及格) 0人 0.00% 合计 74人 100.00% 缓考0人
显示全部
相似文档