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