《软件构件与中间件精品文稿.ppt》由会员分享,可在线阅读,更多相关《软件构件与中间件精品文稿.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件构件与中间件第1页,本讲稿共37页软件的复杂性软件的复杂性是其自身所固有的是其自身所固有的抽象、分治、分类等思想将在抽象、分治、分类等思想将在其中发挥极为关键的作用其中发挥极为关键的作用第2页,本讲稿共37页内内 容容一、软件一、软件二、软件开发二、软件开发三、网络环境带来的影响三、网络环境带来的影响第3页,本讲稿共37页一、软件一、软件1、什么是软件、什么是软件2、软件的发展现状、软件的发展现状3、软件的发展特点、软件的发展特点4、软件的本质特性、软件的本质特性5、软件的发展趋势、软件的发展趋势第4页,本讲稿共37页1、什么是软件、什么是软件计算机软件一般指计算机软件一般指计算机系统中的
2、计算机系统中的程序程序及及 文档文档程序程序 是是以计算机语言表达的软件系统以计算机语言表达的软件系统文档文档 是是以人类语言表达的软件系统以人类语言表达的软件系统二者互相配合二者互相配合 共同构成了完整的软件系统共同构成了完整的软件系统人类抽象的经验、知识正逐步由软件予以精确地体现人类抽象的经验、知识正逐步由软件予以精确地体现第5页,本讲稿共37页老老子子:道德经道德经:第十一章:第十一章:三十辐共一毂三十辐共一毂(g),当其无,有车之用。,当其无,有车之用。埏埏(shn)埴埴(zh)以为器,当其无,有器之用。以为器,当其无,有器之用。凿户牖凿户牖(yu)以为室,当其无,有室之用。以为室,当
3、其无,有室之用。故有之以为利,无之以为用。故有之以为利,无之以为用。解读的力量!解读的力量!鲜花与饲料鲜花与饲料软件软件是脑力劳动的产物是脑力劳动的产物是系统是系统逻辑逻辑的体现的体现必须依附于一定的载体必须依附于一定的载体例如:纸张、软盘、硬盘、光盘等例如:纸张、软盘、硬盘、光盘等其它的物品呢?不需要载体?其它的物品呢?不需要载体?第6页,本讲稿共37页软件到底有什么奥妙?软件到底有什么奥妙?人类自身的人类自身的感官感官不能直接确定它的存在:不能直接确定它的存在:分子、原子分子、原子等对于人们总有一定的神秘性:感官距离很等对于人们总有一定的神秘性:感官距离很“遥远遥远”软件:软件:通常通常存
4、在于纸带、磁带、光盘等之中存在于纸带、磁带、光盘等之中运行起来运行起来靠:靠:集成电路集成电路发挥作用发挥作用显示器显示器显示状态显示状态竟然还可以在竟然还可以在不同的载体不同的载体之间十分方便地跳跃!之间十分方便地跳跃!显示出来后离我们又这么显示出来后离我们又这么“近近”!如此有用如此有用!第7页,本讲稿共37页万物皆数?我们可以对认识的任何一种东西进行编码我们可以对认识的任何一种东西进行编码以产生它的一个具体以产生它的一个具体“实例实例”数据与代码:从歌德尔定理到图灵不停机问题 静态代码分析!第8页,本讲稿共37页软件作为逻辑产品的特点:软件作为逻辑产品的特点:劣势:劣势:不易被理解不易被
5、理解容易出错容易出错找错、排错困难找错、排错困难优势:优势:易于变化,适应性强易于变化,适应性强复制成本低,适合规模经济复制成本低,适合规模经济给我们的生活、学习等带来了巨大的变化给我们的生活、学习等带来了巨大的变化第9页,本讲稿共37页(1)已经存在大量正在运行的软件)已经存在大量正在运行的软件金融、电信、航空航天等金融、电信、航空航天等(2)软件的应用范围不断扩大)软件的应用范围不断扩大商务、交通、家电等,商务、交通、家电等,“计算机软件计算机软件?”(3)软件的规模与复杂性持续增加)软件的规模与复杂性持续增加越来越多的知识正在由软件进行显式表达越来越多的知识正在由软件进行显式表达(4)出
6、现了大量与软件相关的标准)出现了大量与软件相关的标准(3)的需求)的需求(5)软件危机仍然存在(软件脱节)软件危机仍然存在(软件脱节)1968-2008四十年四十年!2、软件的发展现状、软件的发展现状第10页,本讲稿共37页软件工程四十年:软件工程、构件、中间件软件工程四十年:软件工程、构件、中间件第11页,本讲稿共37页3、软件的发展特点、软件的发展特点(1)软件应用范围将继续扩大,成为信息社会的物理设施)软件应用范围将继续扩大,成为信息社会的物理设施(2)遗留软件将继续发挥作用)遗留软件将继续发挥作用(3)软件的可靠性与安全性日趋重要)软件的可靠性与安全性日趋重要(4)网络化软件将是发展重
7、点)网络化软件将是发展重点第12页,本讲稿共37页构造性构造性演化性演化性其它特点:其它特点:知识密集、逻辑产物知识密集、逻辑产物 4、软件的本质特性、软件的本质特性第13页,本讲稿共37页软件的构造性软件的构造性软件软件 是是 典型的知识产品典型的知识产品 是是 客观世界中客观世界中 问题空间的具体描述问题空间的具体描述 软件软件 是有结构的是有结构的 构造性构造性 是软件的本质特性是软件的本质特性传统的软件开发传统的软件开发 是是 个体作坊式的个体作坊式的只只 解决功能问题解决功能问题未未 考虑结构问题考虑结构问题造成造成 软件软件 复杂度复杂度高高 维护难度维护难度大大第14页,本讲稿共
8、37页软件软件 是是 客观事物的一种反映客观事物的一种反映 是是 知识的提炼知识的提炼 知识的体现知识的体现知识的固化知识的固化软件的演化性软件的演化性客观世界客观世界不断发展不断发展不断发生变化不断发生变化软件系统软件系统不可能一成不变不可能一成不变 新需求、新技术不断出现新需求、新技术不断出现 软件系统要不断升级软件系统要不断升级第15页,本讲稿共37页软件运行平台正在软件运行平台正在 从从 单机环境单机环境 发展到发展到 网络环境网络环境这这 将导致软件在将导致软件在 反映对象反映对象 开发基础开发基础 关注内容关注内容运行方式运行方式 提交形式提交形式 开销比重开销比重等等 方面的重要
9、发展方面的重要发展5、软件的发展趋势、软件的发展趋势第16页,本讲稿共37页软件反映对象的发展人们的合作过程是丰富多样的、不断调整的人们的合作过程是丰富多样的、不断调整的 因此,网络环境下的软件因此,网络环境下的软件 更加更加 复杂、易变复杂、易变 构造性、演化性构造性、演化性 更加突出更加突出例如:例如:电子商务电子商务 电子政务电子政务 电子服务电子服务 虚拟企业虚拟企业 从从 以以 个体计算过程个体计算过程 为反映对象为反映对象向向 以以 群体合作过程群体合作过程 为反映对象为反映对象的发展的发展第17页,本讲稿共37页软件开发基础的发展例如:业务流程重组例如:业务流程重组(BPR:Bu
10、siness Process Reengineering)企业应用集成企业应用集成(EAI:Enterprise Application Integration)等等都需要开发组织具有都需要开发组织具有“继往开来继往开来”的能力的能力在这样的背景下在这样的背景下符合标准规范的软件将更加受欢迎符合标准规范的软件将更加受欢迎从从 以单个软件开发为主以单个软件开发为主向向 以集成式开发为主以集成式开发为主 的发展的发展第18页,本讲稿共37页软件关注重点的发展从 以正面功能为核心以正面功能为核心向 兼顾侧面约束兼顾侧面约束 的发展近期出现的近期出现的 面向面向 侧面侧面 的编程的编程(AOP:Asp
11、ect Oriented Programming)特征交互(特征交互(FI:Feature Interaction)等等与经典的与经典的 问题分离(问题分离(SOC:Separation Of Concerns)等相呼应等相呼应 有效地处理有效地处理 交叉(交叉(cross cutting)特征)特征 例如:例如:安全性、可靠性、安全性、可靠性、同步性同步性 等等 这一发展这一发展 将使将使 软件工程师容易地开发、维护应用系统软件工程师容易地开发、维护应用系统第19页,本讲稿共37页软件运行方式的发展从 纯被动式的纯被动式的方式向 部分主动式部分主动式的方式 发展主动对象主动对象(Active
12、 Object)类真体(类真体(Agent)等具有的等具有的 独立性、自治性和自适应性独立性、自治性和自适应性 能够很好地适应能够很好地适应从从 封闭、静态、稳定的单机环境封闭、静态、稳定的单机环境 到到 开放、动态、多变的网络环境开放、动态、多变的网络环境 的转变的转变这一发展这一发展 将将 有利于有利于 减轻人的负担减轻人的负担 促进促进 人机和谐环境的人机和谐环境的 建立建立第20页,本讲稿共37页软件提交形式的发展从 以 产品产品 为中心向 以 服务服务 为中心 的发展例如:应用服务提供商例如:应用服务提供商 (ASP:Application Service Provider)“Web
13、服务服务”(Web Services)等等 皆体现了软件向服务发展的趋势皆体现了软件向服务发展的趋势 SAAS,Grid Computing,Cloud Computing 这一发展这一发展 将使将使 软件在软件在 方便使用、安全可靠方便使用、安全可靠 等方面等方面更加人性化更加人性化第21页,本讲稿共37页软件开销比重的发展从从 开发为主要开销开发为主要开销向向 开发、演化开销并重开发、演化开销并重 的发展的发展最近一段时间最近一段时间延长软件生命延长软件生命维护、演化软件维护、演化软件等问题等问题同时受到了同时受到了学术界与产业界的双重关注学术界与产业界的双重关注诸如诸如 柔性结构技术、远
14、程维护技术、自适应技术柔性结构技术、远程维护技术、自适应技术 等等 将得到重视将得到重视第22页,本讲稿共37页二、软件开发二、软件开发1、软件开发特点、软件开发特点2、软件开发模型、软件开发模型3、开发过程新进展、开发过程新进展4、如何理解软件开发的困难、如何理解软件开发的困难第23页,本讲稿共37页 软件开发是典型的知识密集型活动软件开发是典型的知识密集型活动复杂度高复杂度高开发周期长开发周期长可靠性保证难可靠性保证难 随着随着 软件应用范围的快速扩大软件应用范围的快速扩大 以及软件运行平台从单机向网络的转变以及软件运行平台从单机向网络的转变软件的软件的规模规模越来越大越来越大复杂度复杂度
15、越来越高越来越高 软件开发的软件开发的 高、高、长、长、难难 愈益突出愈益突出1、软件开发特点、软件开发特点第24页,本讲稿共37页瀑布模型瀑布模型(waterfall model)螺旋模型螺旋模型(spiral model)喷泉模型喷泉模型(fountain model)演化模型演化模型(evolutionary model)2、软件开发模型、软件开发模型各自特点回顾:画图说明!各自特点回顾:画图说明!第25页,本讲稿共37页RUP敏捷开发方法(敏捷开发方法(XP)从从CMM到到CMMI基于构件的软件开发基于构件的软件开发基于侧面的软件开发基于侧面的软件开发测试驱动的软件开发测试驱动的软件开
16、发用例驱动的软件开发用例驱动的软件开发3、开发过程新进展、开发过程新进展第26页,本讲稿共37页软件开发就象软件开发就象l写小说?写小说?l生产生产PC?搭积木?搭积木?l演节目?演节目?l拍电影拍电影/电视?!电视?!4、如何理解软件开发的困难、如何理解软件开发的困难第27页,本讲稿共37页拍电影拍电影l前期:剧本创作、投资前期:剧本创作、投资l拍摄:场地、演员、道具拍摄:场地、演员、道具l后期:剪接、音效后期:剪接、音效开发软件开发软件l分析:需求、用户分析:需求、用户l设计实现:结构、编码设计实现:结构、编码l测试:减少缺陷测试:减少缺陷其他共性:拷贝、版本、版权;美国、印度其他共性:拷
17、贝、版本、版权;美国、印度第28页,本讲稿共37页三、网络环境带来的影响三、网络环境带来的影响共享性共享性开放性开放性并发性并发性可伸缩性可伸缩性容错性容错性透明性透明性网络环境的特点:网络环境的特点:第29页,本讲稿共37页(1)共享性共享性一旦授权,可以访问环境中的任何资源:一旦授权,可以访问环境中的任何资源:硬件、软件、数据硬件、软件、数据资源管理器控制资源的访问资源管理器控制资源的访问提供命名机制提供命名机制并并控制并发访问控制并发访问使得:使得:不同组织之间的软件可以灵活的交互不同组织之间的软件可以灵活的交互SOA第30页,本讲稿共37页(2)开放性开放性环境扩展与改进的需要环境扩展
18、与改进的需要导致:导致:软件开发社区软件开发社区社区开发方法社区开发方法开放源代码开放源代码开源软件的开发开源软件的开发第31页,本讲稿共37页(3)可伸缩性可伸缩性利用网络环境可以:利用网络环境可以:为更多的用户服务为更多的用户服务响应更快响应更快通常通过增加通常通过增加更多更多/更快的处理机更快的处理机更可靠、更完善的服务实现更可靠、更完善的服务实现典型例子:典型例子:GOOGLE:4-5万台万台PCQQ:上万台:上万台PC第32页,本讲稿共37页(4)容错性容错性硬件、软件、网络发生错误的不可避免性硬件、软件、网络发生错误的不可避免性网络环境必须维护可用性网络环境必须维护可用性容错的实现
19、途径:容错的实现途径:恢复(恢复(recovery)冗余(冗余(redundancy)“911”的启示的启示第33页,本讲稿共37页(5)海量数据海量数据大量大量页面页面大量大量代码代码大量大量业务数据业务数据大量大量视频视频大量大量推动了:推动了:搜索、挖掘、收集等技术的发展搜索、挖掘、收集等技术的发展以量促质!以量促质!第34页,本讲稿共37页面临的挑战性问题:面临的挑战性问题:通信问题通信问题异构问题异构问题定位问题定位问题可靠性问题可靠性问题安全问题安全问题管理问题管理问题维护问题维护问题质量?质量?可信?可信?第35页,本讲稿共37页硬件环境硬件环境硬件环境硬件环境ApplicationApplication总结:硬件环境、基础软件、应用软件与用户(环境)总结:硬件环境、基础软件、应用软件与用户(环境)第36页,本讲稿共37页问问题题软件作为逻辑制品的劣势与优势是什么?软件作为逻辑制品的劣势与优势是什么?从单机环境到网络环境,软件发生了什么变化?从单机环境到网络环境,软件发生了什么变化?网络环境出现后,软件开发发生了什么变化?网络环境出现后,软件开发发生了什么变化?第37页,本讲稿共37页