软件体系结构与大型软件系统设计课程简介.pptVIP

软件体系结构与大型软件系统设计课程简介.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件体系结构与大型软件系统设计课程简介

授课人:何文海 Email:HeWenhai@126.com 以教材为参考书,理解软件体系结构的原理、方法与实践,理解企业应用的各种模式 课程考核:小组开发实例项目或论文 课程成绩:平时实验+平时表现+实例项目 * * 语言从低级到高级,离机器语言更远,离人类语言更近,因而更容易读写、调试和维护,安全性、通用性和可移植性更强,开发效率更高,更加抽象和宏观;但同时运行速度和效率下降,用法和功能上局限性更大。 * * * * 框架(Framework)就是一组协同工作的类或函数,它们为特定类型的软件构筑了一个可重用的设计。 目标是设计重用;它会为程序员带来约束。 库(Libary)和工具包(toolkit),是一组已经设计实现好的类或函数,供用户选择使用。 目标是代码重用;它为程序员带来自由。 一般软件系统开发,在宏观管理上选取一些框架以控制整体的结构和流程;在微观实现上利用库和工具包来解决具体的细节问题。 框架的意义在于使设计者在特定的整体设计上不必重新发明轮子;库和工具包的意义在于使开发者摆脱底层编码,专注特定问题和业务逻辑。 * 设计模式(Design Pattern)和架构(Architecture)不是软件产品,而是软件思想。 设计模式是软件的战术思想,架构是软件的战略决策。 设计模式是针对某些经常出现的问题而提出的行之有效的设计解决方案,它侧重思想重用,因而比框架更抽象、更普适,但多局限于局部解决方案,没有框架的整体性。 惯用法(Idiom),针对常发问题的解决方案,但偏重实现而非设计,与实现语言密切相关,是一种更底层更具体的编程技巧。 架构,一般指一个软件系统的最高层次的整体结构和规划,一个架构可能包含多个框架,而一个框架可能包含多个设计模式。 * 编程范式(Programming paradigm),指的是计算机编程的基本风格或典范模式。 编程是为了解决问题,而解决问题可以有多种视觉和思路,其中普适而且行之有效的模式被称归结为范式。 如果说每个编程者都在创造虚拟世界,那么编程范式就是他们置身其中自觉不自觉采用的世界观和方法论。 编程范式是抽象的,必须通过具体的编程语言来体现;编程范式所代表的世界观往往体现在语言的核心概念中,代表的方法论往往体现在语言的表达机制中。 一种范式可以在不同的语言中实现,一种语言也可以支持多种范式。 * * 其世界观是:程序是由若干行动指令组成的有序列表。 其方法论是:用变量来存储数据,用语句来执行指令。 机器语言和汇编语言就是典型的命令式的编程语言 使用命令范式写出的代码除了表现出“什么(What)”是你想做的事情之外,更多的代码则表现出实现的细节,也就是“如何(How)”完成工作。 * 过程式编程是指引入了过程(procedure)、函数(function)或子过程(subroutine)的命令式编程。 过程式以过程抽象为主,把要解决的问题抽象为一个过程,再分解为若干子过程分而治之。 结构化编程,是在过程式编程的基础上发展起来的,它是一种编程原则,提倡代码应具有清晰地逻辑结构,以保证程序易于读写、测试、维护和优化。 三种程序结构:顺序结构、分支结构、迭代结构。 * 其世界观是:程序是由若干对象,通过对象的相互作用来体现程序的方方面面。 其方法论是:用对象状态(属性)来存储数据,对象方法表示对数据的操作。 将对象作为问题空间的基本元素,利用对象和对象间的相互作用来设计程序 所谓对象,是实际问题中实体的抽象,具有一定的属性和功能。 其核心特征是:封装性、继承性和多态性。封装体现的是数据抽象,继承体现的是层级抽象,多态是多态抽象。 对象式以数据抽象为主,把要解决的问题映射到类型(对象的蓝图)定义,对象是程序的砖块。 * 过程式编程的模块以函数为单位,其理念以过程为中心,自顶向下、逐步求精。 OOP(Object Oriented Programming)的模块以对象为单位,其理念以数据为中心,自底向上、逐步合并。 对象是现实中具体事务或抽象概念的模拟,这使得编程设计更自然更人性化。 语法表示法更适合人类思维:牛.吃(草);吃(牛,草) 函数是被动的主体;对象是主动的主体。 OOP最适用于大型复杂的、交互式的,尤其是与现实世界密切相关的系统 OOP具有重用性,具有更强的易用性 * 声明式编程由若干规范的声明组成的,即一序列陈述句:“已知这,求解那”,强调“做什么”而非“怎么做” 现在有两种比较重要的成果,一是DSL(Domain Specific Language,领域特定语言),另一个则是函数式编程。 * 并发式编程以资源共享与竞争为主线,并发式重点关注一下几个方面的问题: * * 4 3 2 1

文档评论(0)

hello118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档