




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件构件与中间件北京大学软件工程研究所内内 容容 一、软件一、软件二、运行环境二、运行环境三、开发方法三、开发方法四、服务化软件的质量四、服务化软件的质量一、软件一、软件计算机软件一般指计算机软件一般指计算机系统中的计算机系统中的程序程序及及 文档文档程序程序 是是以计算机语言表达的软件系统以计算机语言表达的软件系统文档文档 是是以人类语言表达的软件系统以人类语言表达的软件系统二者互相配合二者互相配合 共同构成了完整的软件系统共同构成了完整的软件系统人类抽象的经验、知识正逐步由软件予以精确地体现人类抽象的经验、知识正逐步由软件予以精确地体现老老 子子: 道德经道德经: 第十一章:第十一章: 三
2、十辐共一毂三十辐共一毂(g) ,当其无,有车之用。,当其无,有车之用。 埏埏(shn)埴埴(zh)以为器,当其无,有器之用。以为器,当其无,有器之用。 凿户牖凿户牖(yu )以为室,当其无,有室之用。以为室,当其无,有室之用。 故有之以为利,无之以为用。故有之以为利,无之以为用。软件软件是脑力劳动的产物是脑力劳动的产物是系统逻辑的体现是系统逻辑的体现 必须依附于一定的载体必须依附于一定的载体例如:纸张、软盘、硬盘、光盘等例如:纸张、软盘、硬盘、光盘等其它的物品呢?不需要载体?其它的物品呢?不需要载体?软件到底有什么奥妙?软件到底有什么奥妙?人类自身的感官不能直接确定它的存在:人类自身的感官不能
3、直接确定它的存在:分子、原子分子、原子 等对于人们总有一定的神秘性:感官距离很等对于人们总有一定的神秘性:感官距离很“遥远遥远”软件:软件:通常通常 存在于纸带、磁带、光盘等之中存在于纸带、磁带、光盘等之中运行起来运行起来 靠:靠:集成电路集成电路 发挥作用发挥作用显示器显示器 显示状态显示状态竟然还可以在竟然还可以在 不同的载体不同的载体 之间十分方便地跳跃!之间十分方便地跳跃!显示出来后离我们又这么显示出来后离我们又这么“近近”!如此有用如此有用!软件作为逻辑产品的特点:软件作为逻辑产品的特点:劣势:劣势:不易被理解不易被理解容易出错容易出错找错、排错困难找错、排错困难优势:优势:易于变化
4、,适应性强易于变化,适应性强复制成本低,适合规模经济复制成本低,适合规模经济给我们的生活、学习等带来了巨大的变化给我们的生活、学习等带来了巨大的变化软件运行环境软件运行环境 :硬件:硬件 从从 单机环境单机环境 发展到发展到 网络环境网络环境 又扩展到又扩展到 移动环境移动环境二、运行环境二、运行环境计算机 源于对计算自动化 的追求程序 源于对硬件通用化 的追求:让计算机方便地增加功能单机环境单机环境共性的提取同样一组硬件,完成不同功能(通用 vs 专用)如何实现:修改配置(插拔连线 与 信息控制 产生bug!)后来软件的发展一直在延续这个思路!开发成本(效率) 与 执行效率 用途:计算用途:
5、计算 数据处理数据处理 网络环境网络环境 用途:服务用途:服务 = =云计算云计算用途:计算用途:计算 = =网格网格l本义:为他人提供帮助或者做事情的活动l软件服务:不用在本地安装、维护,就可以使用软件l造不如买,买不如租l软件与服务l越来越多的软件表现为服务l越来越多的服务借助于软件完成l软件发展影响因素l运行平台(计算机软件?网络、手机、传感器、)l应用模式(科学计算,获取信息,多人协作,)l软件运行环境的发展,互联网发展的衍生品lIBM: 1950 年代建立计算学科,202X年代建立服务学科服务是运行在网络上的软件服务是运行在网络上的软件l数据库服务器: MySQLl应用服务器: We
6、blogiclWeb Server: Tomcatl文件服务器: Hadoopl版本服务器: Githubl邮件服务器: Coremailll“云”是隐喻基于互联网提供的服务l支持 大量的、数目变化的用户l基于 自由伸缩的物理架构l积累 大量的、多种类型的数据l实现细节(位置)对用户透明l物联网:后端是云云是集中着的软件服务云是集中着的软件服务IaaS: EC2, S3,PaaS: Fore , GAE, Heroku, SaaS: Salesforce,Zoho,Live Office动因不同:动因不同:如何处理剩余资源?如何处理剩余资源?让用户更方便地使用软件让用户更方便地使用软件SaaS
7、SaaS发展的必然结果发展的必然结果Microsoft: AzureIBM: Blue Cloud移动环境移动环境 三、开发方法三、开发方法1、软件工程目标、软件工程目标2、软件开发模型、软件开发模型3、如何理解软件开发的困难、如何理解软件开发的困难1、软件工程目标、软件工程目标最终用户认为最终用户认为“好好”怎么叫怎么叫“好好”?正确、健壮、快速、安全、?正确、健壮、快速、安全、怎么才能好?怎么才能好?编程人员开发编程人员开发“快快”“好好”前提下的前提下的“快快”,二者是一对对立体,二者是一对对立体怎么才能快?怎么才能快? 复用?复用?开发运行成本开发运行成本“省省”时间成本、人力成本、硬
8、件资源成本、能耗、时间成本、人力成本、硬件资源成本、能耗、好好快快省省开发效率开发效率产品质量产品质量l软件开发是一个充满软件开发是一个充满“创新创新”活动的过程活动的过程一款好的软件对于程序员编程水平的依赖非常强,这非常类一款好的软件对于程序员编程水平的依赖非常强,这非常类似于一部好的电影对于演员演技的依赖非常大似于一部好的电影对于演员演技的依赖非常大有种观点甚至将程序设计看作是一种有种观点甚至将程序设计看作是一种“艺术艺术”(Knuth: The art of programming)l与艺术创造相类似,开发出与某个已经存在软件完全与艺术创造相类似,开发出与某个已经存在软件完全相同的另一个
9、软件没有任何意义相同的另一个软件没有任何意义这个过程非常不同于一般实物产品的生产过程,例如:这个过程非常不同于一般实物产品的生产过程,例如:汽车、手机、计算机硬件的制造过程等汽车、手机、计算机硬件的制造过程等实际上,软件开发过程是与传统实物产品的设计环节在一个层实际上,软件开发过程是与传统实物产品的设计环节在一个层次上。次上。 l软件给我们的工作、学习、生活带来的好处巨大软件给我们的工作、学习、生活带来的好处巨大因此社会对软件产品的需求非常迫切因此社会对软件产品的需求非常迫切l但如果从但如果从“产品产品”的角度看软件的话的角度看软件的话软件开发的软件开发的“预算预算”、“进度进度”、“质量质量
10、”控制非常困难控制非常困难这就是这就是“软件危机软件危机”“软件危机软件危机” 一直没有缓解过一直没有缓解过l在工程管理领域,人们经过数百年的探索在工程管理领域,人们经过数百年的探索总结了一些列的原则与方法,总结了一些列的原则与方法,有效地控制了许多项目的有效地控制了许多项目的“预算预算”、“进度进度”、“质量质量”等等一个自然的想法是一个自然的想法是在软件开发过程中引入在软件开发过程中引入“工程管理工程管理”的原则与方法的原则与方法来应对来应对“软件危机软件危机”软件工程四十年:软件工程四十年:软件工程、构件、中间件软件工程、构件、中间件l软件开发所具有的内在“艺术”特征,与社会对于软件开发
11、的外部“工程”需求,存在着许多冲突l这些冲突有些可以解决,有些可以缓解,有些则长期存在l这就决定了,在“软件工程”领域,尽管在不断取得一些显著的进展,但是走的是一条挑战不断的曲折道路瀑布模型瀑布模型 (waterfall model)螺旋模型螺旋模型 (spiral model)喷泉模型喷泉模型 (fountain model) 演化模型演化模型 (evolutionary model)经典模型:经典模型:2、软件开发新模型、软件开发新模型开发活动处于一个受控的、相对封闭的过程中l敏捷开发方法(敏捷开发方法(XP) 人和(人与人的)交互人和(人与人的)交互 优先于过程和工具优先于过程和工具l基
12、于构件基于构件/框架的软件开发(框架的软件开发(SSH) 通过复用提高效率通过复用提高效率l基于群体的软件开发(基于群体的软件开发(Crowd Sourcing, 众包)众包) 城市模型:城市模型:Metropolis Model软件开发新模型软件开发新模型1)不同类型的软件差异非常大,对应的开发方法也非常不同不同类型的软件差异非常大,对应的开发方法也非常不同2)互联网时代的软件,应用范围更广,服务方式更多互联网时代的软件,应用范围更广,服务方式更多,对应的软件开,对应的软件开发方法会更多!发方法会更多!哪类方法适合我呢?哪类方法适合我呢?哪个方法好呢(同类)?哪个方法好呢(同类)?怎样比较不
13、同的开发方法?怎样比较不同的开发方法?20XX20XX年信息科学学科发展战略研究(咨询汇报稿)信息科学学科发展战略研究组二九年十月3.2 计算机科学与技术3.2.1 艾级高性能计算机技术 针对普惠、绿色、两化融合的战略需求,研究高效易用的高性能计算机(尤其是数据中心计算机)的新原理和核心技术,并研制原理样机。支持科学工程计算与互联网服务(云计算服务)两类应用负载,科学工程计算性能达到艾级(即每秒10*18次运算),系统功耗控制在10 MW之内,系统软件复杂度控制在1000万行源码,原理样机实际速度达到每秒百万亿次(1014次)运算。3.2.2 面向网络计算的软件方法与技术 针对新型网络化基础平
14、台、新型泛在化与网络化应用模式,以及大规模和融合化的应用系统对软件方法与技术,研究软件模型、编程语言、系统软件、使用模式、开发方法、支撑工具等,实现核心模型基本属性的高可信与适应性、使用模式的服务化与自然化、基础方法的主体化与协同化、开发模型的自治性与成长式、开发方式的复用化与自动化,建立一套新型的面向网络计算的软件方法与技术体系,发展面向网络的中文信息处理和中文数据资源建设技术。3.2.3 未来互联网与安全 研究:()可信可管可扩展的泛在未来网络原理、协议、体系结构;()试验平台、基准服务、测试数据,用于研究和检验功能、质量、安全隐私保障、能耗指标;()能够为数亿用户服务的统一的通用计算账号
15、,独立于任何客户端设备、任何网络、任何资源、任何地点、任何厂商;()支持上亿用户,平均用户实际上网速度超过100 Mbps;()发展智能网络与语义网络技术,提升网络服务的效率与易用性。1 1)实验数据获取困难)实验数据获取困难 “ “测试测试”到到“代码分析代码分析”:获取数据相对容易:获取数据相对容易 过程过程”、“设计设计”与与“需求获取需求获取”:量化难:量化难2 2)涉及人的因素太多)涉及人的因素太多 评估的客观性(尤其是开发过程)评估的客观性(尤其是开发过程) 3 3)应用领域过于广泛)应用领域过于广泛 不同的方法适用于不同的领域(对比困难)不同的方法适用于不同的领域(对比困难)4
16、4)软件开发)软件开发 的特殊性的特殊性 软件开发软件开发 相当于传统行业相当于传统行业( (例如例如 制造制造) )的设计?的设计?3、如何理解软件开发的困难、如何理解软件开发的困难软件开发的软件开发的 艺术艺术 与与 工程工程 ( 1968)艺术艺术Donald Knuth: The art of computer programming“软件危机软件危机”软件开发的软件开发的 “质量质量”、 “进度进度”、“预算预算”控制都非常困难控制都非常困难工程工程Peter Naur & Brian Randll: Software Engineering视野的不同视野的不同软件软件 Vs
17、 建筑建筑l写小说?写小说?l生产生产PC?搭积木?搭积木?l演节目?演节目?l拍电影拍电影/电视?!电视?!软件开发兼有局部上的艺术性与总体上的工程性这使得软件开发的 “质量”、 “进度”“预算”控制都非常困难由此导致的“软件危机”至今仍然没有得到很好的缓解l前期:剧本创作、投资前期:剧本创作、投资l拍摄:场地、演员、道具拍摄:场地、演员、道具l后期:剪接、音效后期:剪接、音效l分析:需求、用户分析:需求、用户l设计实现:结构、编码设计实现:结构、编码l测试:减少缺陷测试:减少缺陷其他共性:拷贝、版本、版权;美国、印度其他共性:拷贝、版本、版权;美国、印度不同:维护、交互不同:维护、交互工程
18、?工程?四、服务化软件的质量四、服务化软件的质量l高可用:网络特点l功能:正确、不少、不多l可靠性(容错):高l安全性(机密性、完整性):高l响应时间(从输入到输出):小l维护费用(监测、演化):小ll共享性共享性l开放性开放性l可伸缩性可伸缩性l容错性容错性l海量数据海量数据网络环境的特点(好的一面):网络环境的特点(好的一面):(1) 共享性共享性一旦授权,可以访问环境中的任何资源:一旦授权,可以访问环境中的任何资源:硬件、软件、数据硬件、软件、数据资源管理器控制资源的访问资源管理器控制资源的访问 提供命名机制提供命名机制 并并 控制并发访问控制并发访问使得:使得: 不同组织之间的软件可以灵活的交互不同组织之间的软件可以灵活的交互SOA(2) 开放性开放性环境扩展与改进的需要环境扩展与改进的需要导致:导致:软件开发社区软件开发社区社区开发方法社区开发方法开放源代码开放源代码开源软件的开发开源软件的开发(3) 可伸缩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 菊花种苗购销合同
- 特许经营合同
- 电商运营合作合同协议书
- 车辆过户协议合同
- 建筑施工分包合同书
- 职场装修合同规定
- Unit 6 A Day in the Life Section A 1a-Pronunciation教学设计2024-2025学年人教版英语七年级上册
- 2《丁香结》教学设计2024-2025学年统编版语文六年级上册
- 陕西电子信息职业技术学院《寒区水力计算》2023-2024学年第二学期期末试卷
- 山东司法警官职业学院《纪录片创作与欣赏》2023-2024学年第二学期期末试卷
- 人教版(PEP)英语四年级下册-Unit 1My school A Lets spell 课件
- 现代控制理论课件-矩阵复习
- 苹果主要病虫害防治课件
- 中小学心理健康教育教师技能培训专题方案
- 高速公路隧道管理站专业知识竞赛试题与答案
- 中国传媒大学《广播节目播音主持》课件
- 2015 年全国高校俄语专业四级水平测试试卷
- T∕CCCMHPIE 1.3-2016 植物提取物 橙皮苷
- 土石坝设计毕业设计
- 一季责任制整体护理持续改进实例
- 清华抬头信纸
评论
0/150
提交评论