《软件设计模式与体系结构》课程概览主讲教师:陈星助教:曾雪娥、刘艳萍等福州大学数学与计算机科学学院福建省网络计算与智能信息处理重点实验室软件设计模式与体系结构课程概览:课程定位2计算机系统结构操作系统程序设计实习&编程语言数据库数据结构与算法面向对象的分析与设计软件工程&软件体系结构系统软件编程方法工程方法课程概览:跟谁学?3陈星博士讲师曾雪娥硕士生一年级刘艳萍硕士生二年级课程概览:学什么•本门课程学什么?4引言5狗窝、架构和建模的故事…我们在用建狗窝的方法建设软件的摩天大楼狗窝的架构设计一个人就能搭建需要:•设计方案(构思)在建造者的脑子里•简单的过程:边建造边构思•简单的工具别墅的架构设计由一个团队,必须有效且高效地建造,需要•有设计,要建模•良好定义的过程•强大的工具楼群的架构设计怎么建设?要点2:建模和实现故事寓意:重视架构的设计讨论:盖房子和编程序哪个更难?课程概览:学什么•我们是否应该像盖房子那样写程序呢?•盖房子需要“蓝图”,房子建成不仅意味不会塌倒,还意味达到了业主的要求的。那么,软件开发呢?•盖房子有常见的“设计问题及其解决方法”。那么,软件开发呢?11例子:教学系统12例子:微软e-Gov架构13例子:MVC软件体系结构14课程概览:学什么•软件设计模式–由来:设计模式为软件设计经常遇到的问题提供了易于复用且可维护的高级解决方案。–概念:软件设计模式是对软件设计经验的总结,是对软件设计中反复出现的设计问题的成功解决方案的描述。软件设计模式通常包含4个基本要素:模式名称、问题、解决方案以及效果。–意义:设计模式可以使设计者更加方便地借鉴或直接使用已经过证实的成功设计方案,而不必花费时间进行重复设计。15课程概览:学什么•创建型软件设计模式(掌握)–工厂模式–生成器模式–单例模式•结构型软件设计模式(掌握)–组合模式–适配器模式–外观模式–桥接模式•行为型软件设计模式(掌握)–迭代器模式–访问者模式–命令模式–中介者模式–策略模式–状态模式16课程概览:学什么•软件体系结构–概念:软件体系结构是系统的基本组织结构,包括系统构成要素、这些构成要素相互之间以及与运行环境之间的关系,还包括系统设计及演化时应遵循的原则。–意义:•软件体系结构是软件相关人员之间进行交流的手段。•软件体系结构是一种高层次的设计复用手段。•软件体系结构是早期关键设计决策的体现。17课程概览:学什么•经典软件体系结构(掌握)–调用-返回风格软件体系结构–数据流风格软件体系结构–事件系统软件体系结构–层次软件体系结构–MVC软件体系结构•基于网络的软件体系结构(了解)–客户端-服务器软件体系结构–P2P软件体系结构–网格计算软件体系结构–SOA软件体系结构与WebService–云计算软件体系结构18课程概览:怎么学•授课方式–课堂讲授–案例分析•考核方式–30%平时成绩–70%期末成绩•教材及参考书–孙玉山等著,《软件设计模式与体系结构》,高等教育出版社,2013.–ErichGamma等著,李英军等译,《设计模式》,机械工业出版社,2007.–张友生等著,《软件体系结构》(第2版),清华大学出版社,2014.19云计算发展与应用200320072009云计算由来云计算由来2008云计算由来为中小商家提供网站托管服务2008云计算由来2008200320072009云计算由来云计算定义云计算是一种把能够动态伸缩的虚拟化资源通过互联网以服务的方式提供给用户的计算模式。用户不需要知道如何管理那些支持云计算的基础设施。维基百科云计算是一种通过网络连接起来获取软件和服务的计算模式,云计算使得用户可以获得超级计算机的体验,用户通过笔记本电脑与手机上的瘦客户端接入云中获取需要的资源。信息技术术语库云计算是一种共享的网络交付信息服务的模式。云服务的使用者看到的只有服务本身,而不用关心基础设施的具体实现。IBM云计算定义基本特点服务模型部署模型NISTdefinitionofcloudcomputing.P.MellandT.GranceNationalInstituteofStandardsandTechnology云计算定义•定义–云计算是一种能够通过网络以便利的、按需付费的方式获取计算资源(包括网络、服务器、存储、应用和服务等)的范型,这些资源来自一个共享的、可配置的资源池,并能够以最省力和无人干预的方式获取和释放。•基本特点–按需自助服务:用户可以随时获得包括计算、存储、带宽等在内的计算资源,而不需要云服务提供者的人工参与。–不受限的网络访问:云服务可以通过各类型的远程访问机制和客户端来获取(例如,移动电话、笔记本电脑或掌上电脑等)。–资源池:服务提供者将计算资源汇集到资源池中,通过多租户模式共享给多个消费者,根据消费者的需求对不同的物理资源和虚拟资源进行动态分配或重分配。。–快速灵活:云服务可以快速提供、扩展和释放。对于用户来说,云服务是取之不尽的,并且在任意时间均可以使用。–可计量的服务:云系统通过不同层次的计量功能自动化地管理和优化资源使用。云服务的使用情况会被监测、控制和汇报,而这一过程对用户和提供者来说都是透明的。云计算定义•服务模型–基础设施即服务(IaaS):该模式的云服务,提供处理器、存储、网络和其他基本计算资源的租用服务,允许消费者在其上部署、运行任意软件。–平台即服务(PaaS):该模式的云服务,提供指定类型应用的托管服务,消费者可以把用指定语言编写的程序创建和部署在云上。–软件即服务(SaaS):该模式的云服务,提供在云基础设施上运行的、由提供者创建的应用服务。这些应用可以被不同客户端设备访问、配置和使用,而应用的用户则不直接管理或控制包括网络、服务器、操作系统和存储等在内的底层云基础设施。云计算应用SalesforceSoftwareasaServiceGoogleAppEnginePlatformasaServiceAmazonElasticComputeCloudInfrastructureasaService云计算应用云计算应用云计算应用研究工作:基于运行时模型的云计算系统管理技术CloudStackHyperic37多样化的受管资源和不断变化的管理需求使得云管理面临很大的难度和复杂度。为了能够根据管理需求快速定制、集成、扩展已有的管理软件,我们提出一种基于运行时模型的云计算系统管理技术;同时,在CloudStack与Hyperic两款独立管理软件的基础上,使用上述方法构造了基于运行时模型的虚拟化基础设施软硬件资源协同管理系统。阶段性成果:1.国家自然科学基金青年创新项目2.基于运行时模型的多样化运资源管理方法.软件学报.3.Architecture-basedIntegratedManagementofDiverseCloudResources.JournalofCloudComputing:Advances,SystemsandApplications.研究工作:基于运行时模型的无线传感网管理技术模型层关系描述系统访问模型系统元模型物联网设备无线传感网是物联网的核心,主要解决物联网中的信息感知问题,通过散布在特定区域的成千上万的传感器节点,采集环境中各种信息并连接到互联网上。为了快速定制和开发物联网系统,我们提出一种基于模型的无线传感网管理框架,使得能够面向应用场景进行物联网系统的开发。同时,我们还实现了基于模型的智慧办公系统原型,并对框架的可行性和有效性进行了验证。阶段性成果:1.国家创新项目(本科生):智慧办公室.2.国家创新项目(本科生):校园一点通.3.基于运行时模型的无线传感网管理方法.软件学报.本周任务39•准备教材《软件设计模式与体系结构》•回顾类图的相关概念及知识•熟悉JAVA语言基本语法,能够读懂简单程序