Readings 移植需求与概要设计 - 天津大学软件学院.ppt

上传人:本田雅阁 文档编号:2106558 上传时间:2019-02-14 格式:PPT 页数:72 大小:4.16MB
返回 下载 相关 举报
Readings 移植需求与概要设计 - 天津大学软件学院.ppt_第1页
第1页 / 共72页
Readings 移植需求与概要设计 - 天津大学软件学院.ppt_第2页
第2页 / 共72页
Readings 移植需求与概要设计 - 天津大学软件学院.ppt_第3页
第3页 / 共72页
亲,该文档总共72页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Readings 移植需求与概要设计 - 天津大学软件学院.ppt》由会员分享,可在线阅读,更多相关《Readings 移植需求与概要设计 - 天津大学软件学院.ppt(72页珍藏版)》请在三一文库上搜索。

1、软件工程新技术 对软件产业发展的影响,乔布斯的贡献 定义了PC产业的轨迹 实践了人文科技产业(科技与文化的融合),乔布斯精神内涵: 让科技简化生活,让产品美化生活,让人文与科技融合,让人生追求卓越,让世界与众不同。,乔布斯堪比成就电核时代的爱因斯坦+爱迪生 因为在他定义了PC产业轨迹的同时,也让计算资源化,让科技回归了人文。,目 录,一、软件与软件工程 二、软件工程技术 1. 对象与建模 2. 改进与成熟度 3. 构件和软件重用 4. 模式与架构 5. 中间件,三、产业趋势与技术影响 云与云端:虚拟技术 开源与协作共享 组织化、媒体化、生态化 四、结论,临界的工科,陶瓷:千年,硅片:40年,丝

2、绸:千年,好莱坞 与:80年 迪士尼、功夫熊猫,历史变迁,承载当代文化的 软件载体,一、软件与软件工程,软件,在计算机与网络环境中,受逻辑、工程和使用目的约束的、可借助计算机进行处理的逻辑化、代码化文学艺术作品。,客观世界中问题空间与解空间的具体描述,它追求的是表达能力强、更符合人类思维模式,具有构造性和易演化性的计算模型。,软件工程,软件工程是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则Bauer 1972。 软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题CMU/SEI-90-TR-003。 软件工程是将系统性的、规范化的、可

3、定量的方法应用于软件的开发、运行和维护IEEE 1990。,一、软件与软件工程,一、软件与软件工程,IEEE-CS/ACM,二、产业与软件产业,2011年GDP 30万亿 2010年电子信息7.8万亿 软件1万亿,产业与软件产业,软件,美国 硬件:软件=3:7 中国 硬件:软件=88:12,产业与软件产业,中国软件规模(2010年超过1万亿人民币) IBM(800亿美金)+微软(600亿美金) 美国软件:中国软件=10:1 中国2万家(180万人) IBM/微软是几万和几十万人,产业与软件产业,IT:物质,软件:精神,便捷能源化 传统科技,抽象化、泛艺术化 人文化科技典范,文化,产业与软件产业

4、,二、软件工程技术:面向对象与统一建模语言,四十年代 Assembly 五十年代 Fortran(计算) 六十年代 Cobol (商业) 七十年代 C (系统) 八十年代 C+ (任务) 九十年代 Java (分布) 面向对象(Object-Oriented)方法形成最初是从面向对象程序设计语言开始的。 第一个OO语言是20世纪60年代末挪威奥斯陆大学和挪威计算中心共同研制的Simula。 到20世纪80年代中期,OO语言达数十种之多。,二、软件工程技术:面向对象与统一建模语言, 面向对象(Object-Oriented)方法形成最初是从面向对象程序设计语言开始的。 第一个OO语言是20世纪6

5、0年代末挪威奥斯陆大学和挪威计算中心共同研制的Simula。 到20世纪80年代中期,OO语言达数十种之多。, 一些专家按照OO思想,对系统分析和设计工作的步骤、方法、图形工具等进行了详细的研究,提出了许多不同的实施方案。 比较著名和流行的有Coad/Yourdon方法、Booch方法和Rumbaugh的OMT方法。 OMT方法把分析时收集的信息构造在三类模型中,即对象模型、功能模型和动态模型。,二、软件工程技术:面向对象与统一建模语言,对象模型是三个模型中最关键的一个模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。,二、软件工程技术:面向对象与

6、统一建模语言,动态模型由多个状态图组成。,二、软件工程技术:面向对象与统一建模语言,功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个的数据流情况。,二、软件工程技术:面向对象与统一建模语言, UML( Unified Modeling Language)是下面这些最好的建模方法中最好部分的集成: 数据建模的概念(E-R模型) 商务流程模型(Work Flow) 对象建模方法 软构件建模思想 UML是一种用可视化方法对软件系统进行描述、实施和说明的标准语言。 支持用不同实现技术进行的软件开发全过程。,二、软件工程技术:面向对象与统一建模语言,UML的历史,

7、二、软件工程技术:面向对象与统一建模语言,二、软件工程技术:软件过程改进与 能力成熟度模型, 软件过程(Software Process)是人们建立、维护和进化软件产品整个过程中所有技术活动和管理活动的集合。 从1984年起每年有软件过程国际研讨会(ISPW),从1991年起开始召开软件过程国际会议(ICSP),每个国家几乎都有自己的软件过程改进网络(SPIN)。 主要研究方向:软件过程分析和建模、软件过程支持、软件过程评估和改进。, RUP软件过程 XP软件过程 敏捷软件过程 CMM软件过程 PSP个体软件过程 TSP群组软件过程,二、软件工程技术:软件过程改进与 能力成熟度模型, Rati

8、onal Unified Process(RUP)是Rational公司的一个软件过程产品,其初始版本为5.0,先后经历了5.1、5.1.1、5.5等版本直到最新的Rational Unified Process 2000版本。 RUP将项目管理、商业建模、分析与设计等统一起来,贯穿整个开发过程。 RUP采用Internet技术,可以增强团队的开发效率,并为所有成员提供最佳的软件实现方案。,基于RUP的软件过程,二、软件工程技术:软件过程改进与 能力成熟度模型,基于RUP的软件过程,二、软件工程技术:软件过程改进与 能力成熟度模型,基于XP的软件过程, Kent Beck于1997年在Extr

9、eme Programming Explained Embrace Change中提出 一种高度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化 强调有效测试和演化设计,二、软件工程技术:软件过程改进与 能力成熟度模型,基于XP的软件过程,什么时候需要XP? 需求不明确、变化快 高风险:在特定的时间内,面对一个相当难开发的系统 中小型团队(人数不超过10 个),二、软件工程技术:软件过程改进与 能力成熟度模型,基于XP的软件过程,XP的计划反馈循环,二、软件工程技术:软件过程改进与 能力成熟度模型,敏捷软件过程, 敏捷(agility)软件过程是Aoyama在1998年提出来的。 基于

10、时间的、并行的、分布的、演化的快速软件开发过程。,二、软件工程技术:软件过程改进与 能力成熟度模型,软件能力成熟度模型(SW-CMM), 80年代,在美国国防部资助下,由卡内基梅隆大学软件工程研究所(CMU/SEI)建立,用于评价软件开发组织的软件过程能力成熟度。1991年,CMM1.0版;1993年,CMM 1.1版 软件过程能力:遵循一个软件过程后能够得到的预期结果的界限范围。该指标是对能力的一种衡量,用它可以预测一个组织在承接下一个软件项目时,所能期望得到的最可能的结果。,二、软件工程技术:软件过程改进与 能力成熟度模型,软件能力成熟度模型(SW-CMM),二、软件工程技术:软件过程改进

11、与 能力成熟度模型,软件能力成熟度模型(SW-CMM),二、软件工程技术:软件过程改进与 能力成熟度模型,个体软件过程(PSP), PSP是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。 PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。,二、软件工程技术:软件过程改进与 能力成熟度模型,群组软件过程(TSP), 指导项目组中的成员如何有效地规划和管理所面临的项目开发任务。 告诉管理人员如何指导软件开发队伍始终以最佳状态来完成工作。 TSP实施集体管理与自已管理自己相结合的原则,

12、最终目的在于指导一切人员如何在最少的时间内,以预定的费用生产出高质量的软件产品。,二、软件工程技术:软件过程改进与 能力成熟度模型,CMM/PSP/TSP,二、软件工程技术:软件过程改进与 能力成熟度模型,集成化过程改进(CMMI), 工程系统越来越复杂 执行工程的方式发生了变化 各种模型之间的不协调,二、软件工程技术:软件过程改进与 能力成熟度模型,集成化过程改进(CMMI), CMMI是由美国产业界、政府和CMU/SEI共同主持的项目,于1998年启动,2002年1月11日正式发布CMMI 1.1版。 CMMI参照CMM模型,也是分成五个等级。,二、软件工程技术:软件过程改进与 能力成熟度

13、模型, 软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需要分析文档甚至领域知识。通常将这些软件元素称为软构件。 简单地说,构件是具有一定的功能,能够独立工作或能同其它构件装配起来协调工作的程序体,构件的使用同他的开发、生产无关。,二、软件工程技术:构件与软件重用,二、软件工程技术:构件与软件重用, 横向重用是指重用不同应用领域中的软件元素,例如数据结构、分类算法、人机界面构件等。标准函数库是一种典型的、原始的横向重用机制。 纵向重用是指在一类具有较多公共性的应用领域之间进行软部件重用。, 降低费用、提高复用性、

14、提高可定制性和适应性、提高可维护性。 至今, 构件技术已形成三个流派:Sun的Java平台、Microsoft的COM+、IBM的CORBA。,二、软件工程技术:构件与软件重用,二、软件工程技术:构件与软件重用,二、软件工程技术:模式与构架, 软件体系结构(Software architecture)的定义: 1997年,Bass,Clements etc.使用软件体系结构:一个程序或计算机系统的软件体系结构包括一个或一组软件部件、软件部件的外部的可见特性及其相互关系。 定义了软件部件;一个系统可以包括多于一个结构;系统可看作是由软件部件及其相互关系组成;每一部件的行为都是体系结构的一部分;基

15、本单位是部件。,客户机/服务器模式, Client/Server (客户机/服务器)结构,是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术。 C/S结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。 C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。,二、软件工程技术:模式与构架,客户机/服务器模式, 开发成本较高。C/S 体系结构对客户端软硬件配置要求较高,增加了整个系统的成本。 客户端程序设计复杂。大部分工作量放在客户端的程序设计上,客户端显得十分庞大。 软件移植困难。采用不同开发工具或平台开发的

16、软件,一般互不兼容,不能或很难移植到其它平台上运行。 软件维护和升级困难。对软件的一个小小改动,每一个客户端都必须更新。,二、软件工程技术:模式与构架,浏览器/服务器模式, Browser/Server(浏览器/服务器)结构是随着Internet技术的兴起,对C/S体系结构的一种变化或者改进的结构。 在B/S体系结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。 节约了开发成本,系统安装、修改和维护全在服务器端解决。真正达到了“零客户端”的功能,很容易在运行时自动升级。,二、软件工程技术:模式与构架,浏览器/服务器模式, B/S体系结构缺乏对动

17、态页面的支持能力,没有集成有效的数据库处理功能。 B/S体系结构的系统扩展能力差,安全性难以控制。 在数据查询等响应速度上,要远远地低于C/S体系结构。 数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。,二、软件工程技术:模式与构架,C/S与B/S混合模式,内外有别,二、软件工程技术:模式与构架,C/S与B/S混合模式,查改有别,二、软件工程技术:模式与构架,三层结构模式,二、软件工程技术:模式与构架,三层结构模式, 允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。 允许更灵活

18、有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。,二、软件工程技术:模式与构架,三层结构模式, 应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。使之能并行地而且是高效地进行开发,达到较高的性能价格比;对每一层的处理逻辑的开发和维护也会更容易些。 允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础;整个系统的管理层次也更加合理和可控制。,二、软件工程技术:模式与构架,中间件是继操作系

19、统和数据库系统之后,随 着网络的兴起和发展而新兴的又一基础软件 软件工程的目标 缩短和简化从问题空间到解空间的映射过程,消除和缓解软件危机的进一步加剧 基础软件的任务 在硬件基础上建立比计算机裸机层次更高的软件运行平台、开发平台和管理平台,为应用软件开发者提供更靠近问题空间的解空间,二、软件工程技术:中间件,应 用 软 件,中 间 件,数 据 库 系 统,操 作 系 统,裸机,问题空间,由中间件提供的解空间,由数据库系统提供的解空间,由操作系统提供的解空间,由计算机裸机提供的解空间,二、软件工程技术:中间件,计算机已进入以网络为中心的发展时期 中间件是介于操作系统与网络应用之间的一层起承上启下

20、作用的支撑软件 中间件提供的解空间更靠近网络应用所面临的问题空间,是快速构建网络应用的利器!,二、软件工程技术:中间件,国外中间件发展现状,标准体系 OMG CORBA Sun J2EE Microsoft .Net Web Service 主流厂家 IBM,BEA,Microsoft,Sun, Iona, Tibco,webMethod,云计算,云端计算,普适计算,计算模式 种类,三、产业技术趋势,普适计算内涵思考,机器控制人,人控制机器,确定部件构成确定系统,非确定部件构成确定系统,确定系统控制非确定对象,?,?,三、产业技术趋势:普适计算,三、产业技术趋势:云计算,终端设备,CLOUD,

21、三、产业技术趋势:云端计算,iOS层次架构,Cocoa Touch层,媒体服务层,核心服务层,核心OS层,Cocoa Touch,Media Services,Core Service,Core OS,Hardware,三、产业技术趋势:云端计算,Android 体系结构,三、产业技术趋势:云端计算,Meego 体系结构,三、产业技术趋势:云端计算,最新稳定版本:2.6.38.5 发布时间 2011-5-2 由Linus Torvalds维护 最新开发版本:2.6.39-rc6 发布时间 2011-5-4 长期维护版本:2.6.35.13 发布时间 2011-4-28 2.4.37.11 发布时间 2011-4-30,三、产业技术趋势:开源,三、产业技术趋势:开源,Linux的代码量,三、产业技术趋势:开源,App Store商业调查,2008年3月6日,苹果对外发布了针对iPhone的应用开发包(SDK),供免费下载,以便第三方应用开发人员开发针对iPhone及Touch的应用软件,Android Market 商业调查,Android Market每个月新应用的数量统计(截止到2011年3月10日),1.人机交互:多击、双击、单击,四、结论,2.计算模式:云、云端、普适(移动互联),3.形态:组织、媒体、生态化(封闭开放),4.本质:工程、管理、人文艺术(人文科技),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1