《软件工程导论》课件ch09-软件产业与人才.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件工程导论》课件ch09-软件产业与人才.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程导论 软件工程 导论 课件 ch09 软件产业 人才
- 资源描述:
-
1、第9章 软件产业与人才创新型、复合型、国际化产业人目录 9.1 软件与产业 9.2 软件企业过程能力的改进 9.3 产业生态、联盟、开放与开源 9.4软件危机:永恒的话题 9.5 中国软件危机 9.6 软件产业人才 9.7 软件工程与新工科9.1 软件与产业 9.1.1 软件与程序 9.1.2 软件作为商品:版权与许可证 9.1.3 云计算:一切作为服务9.1.1 软件与程序1)软件的件(ware)体现了程序作为商品的价值和权力;正像一个硬件(hardware)一样,出卖硬件产品,总是要对该产品进行包装,给用户一个说明书,告诉用户如何使用,等等。软件也必须有软件的使用说明和操作手册,以及出现问
2、题是如何处理等说明,日常如何诊断软件系统是否有问题等说明。从这个角度看:软件软件=程序程序+运行运行文档。文档。2)软件时可以很容易被复制的。这不同于硬件,硬件的复制是很麻烦的事情,成本可能高于原厂生产的成本。软件的易复制性,导致了软件的产权很难得到尊重和保护。因此,必须定义软件的知识产权。从这个角度上看:软件软件=程序程序+程序的知识产权保护权力。程序的知识产权保护权力。9.1.2 软件作为商品:版权与许可证 软件版权(Copyright)是对软件产权的保护法律。软件许可证(License)是一个法律协议,规定了专有的或无偿使用许可形式,也是软件生产者和软件用户之间的合同备忘录。最终用户许可
3、协议(EULA-End User License Agreement)指定生产者授予给用户的软件时间限制和权限。宽容的软件许可证(Permissive software license),指是制造生产者愿意公开源代码,并允许用户在开源基础上进行而开发的许可权,例如,BSD等,当然,这些许可证也会要求以此为基础开发的软件一般也要开源。更自由一些的许可证,称为Copyleft,,区别于完全免费的和有一定限制的许可要求(如,宽容的软件许可证)。License free(免许可证)基本上是用户完全可以自由使用、不考虑版权要求的许可。这类人认为软件就应当公开,让更多的人使用。9.1.3 云计算:一切作为
4、服务 云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。NIST 在云计算环境下,硬件是一种按时间和空间使用情况收取费用的资源,网络是按流量或占用时间收取费用的资源,软件是一种服务,表述为SAAS(Software As a Service),例如,Web Servers、Database Servers。或者,软件也可以是在线下载这样的简单应用,如苹果的在线商店中的应用软件,等。云服务端云客户端(Cloud Clie
5、nts)Web 浏览器,移动App,终端仿真器,SaaSCRM(客户关系管理),Email,虚拟机器个人机,通信,游戏软件,PaaS运行库,数据库服务器,Web 服务器,开发环境和工具,IaaS虚拟机器,服务器,存储器,负载平衡器,网络,云客户端(Cloud Clients)Web 浏览器,移动App,终端仿真器,把基础设施作为服务(IaaS-Infrastructure as a service);平台作为服务(PaaS-Platform as a service);软件作为软件作为服务服务(SaaS-Software as a service);把移动后端作为服务(MBaaS Mobile
6、 backend as a service);以及,功能作为服务(FaaS-Function as a service)。目录 9.1 软件与产业 9.2 软件企业过程能力的改进 9.3 产业生态、联盟、开放与开源 9.4软件危机:永恒的话题 9.5 中国软件危机 9.6 软件产业人才 9.7 软件工程与新工科9.2 软件企业过程能力 9.2.1 软件工厂模式 9.2.2 软件过程与改进 9.2.3 SEI和汉弗莱的贡献 9.2.4 CMM/CMMI模型9.2.1软件工厂 项目项目B项目管理中心(项目办公室:测量和分析项目绩效)进度监控部门(项目计划、跟踪与监督)项目项目A 项目估计、订单需求
7、定义设计测试产品审查发货质量保证部门(SQA):检查产品质量和过程执行的一致性管理层编码开发库与配置管理小组(管理需求的变更,提高复用率)需求(变更)管理9.2.2软件过程与改进 软件的产生是一个劳动过程 过程是把人、劳动工具和方法组织起来,提高团队的工作效率。例如,瀑布式过程:需求分析、设计、编程、集成测试、交付。大规模的软件生产 Windows有几千万行的代码,需要上千个工程是有效地组织起来 从宏观的角度看,软件开发也是一个流水线需求、设计、编程、集成、测试、发布时间顺序上就是一个典型的流水线。这样,就可以借用传统工业的统计学方法,观察软件劳动的每种岗位和流程所花费的成本(花费的时间和成本
8、)、质量(例如,每编写1000行代码有多少个缺陷,等)的统计数据,然后,研究这些岗位的先后次序、相互间的质量影响、以及,对最终产品质量的影响。之后,改机软件开发过程、企业的组织过程、项目的组织过程、以及个体人干事情的过程。9.2.3 SEI和汉弗莱的贡献 福特汽车生产线,开启了现代工业的流水线生产。20世纪70年代,IBM 的麦克范刚(Mike Fagan)建立了软件审查方法,为IBM节约了大量成本。瓦茨.汉弗莱(Watts S.Humphrey)认为在“范刚评审”的基础上,改变项目的工作过程,可能会改善项目组的性能。2003年,时任美国总统小布什(George Walker Bush)为瓦茨
9、.汉弗莱颁发美国国家技术奖。表彰其在“软件开发程序化方面”为美国软件产业发展做出的贡献。9.2.4 CMM/CMMI模型瓦茨.汉弗莱等给出成熟度框架模型,建议把组织的能力改进可以分为5个等级逐步实施:从等级1到等级2,需要先解决:项目管理、管理监督、产品保证、更改控制四个主要矛盾。从等级2到等级3,需要解决:过程小组、过程体系结构、软件工程方法。从等级3到等级4,需要解决:过程测量、过程数据库、过程分析、以及产品质量。从等级4到等级5,需要解决:数据收集的自动化支持、过程优化目录 9.1 软件与产业 9.2 软件企业过程能力的改进 9.3 产业生态、联盟、开放与开源 9.4软件危机:永恒的话题
10、 9.5 中国软件危机 9.6 软件产业人才 9.7 软件工程与新工科9.3 产业生态、联盟、开放与开源 9.3.1 软件产业生态 9.3.2 产业联盟 9.3.3 企业间的并购 9.3.4 开放策略 9.3.5 开源策略9.3.1 软件产业生态与制造业一样,软件产业是一个生态,不仅需要成为软件产业大国,更需要成为软件产业强国-引导国际软件潮流硬件(Hardware)应用软件开发、服务类企业。典型企业:谷歌、百度、腾讯、阿里、京东等产业基础类软件开发、销售企业,典型企业:微软、Oracel、红帽硬件及计算机设备制造商,典型企业:Intel1,IBM,惠普、联想服务(Service)应用软件(A
11、pplication Software)中间件服务(Middleware Service)系统软件(System Software)9.3.2 产业联盟 多个软件开发商、多个用户等,又需要建立联盟或协会组织。联盟:首先,寻求软件需求表达的通用性,让软件需求尽可能代表各方的利益。其次,产业联盟可以形成统一的或标准化的软件体系结构,并依据此结构为基础,明确和规定各个子系统和部件的要求。这样,价值链上的系统开发者、部件开发者、系统集成商、测试人员等都可以分享与共有一个体系结构和API。第三,定义了统一的API,开发者可以给出不同的代码实现,并进行相互竞争。由于采取相同的API或接口,即使没有这些源代
12、码,部件或子系统也可以做到互用和互操作。第四,能够给出统一的系统测试方案,包括测试用例、测试过程和评价标准。从而保证整个软件系统的互通、互用、互操作和互测试。第五,在运行和维护阶段,标准的体系结构下的同样功能的部件或子系统可以相互替换,从而避免某一个部件的生产厂商垮掉时,该部件能够被其它厂商的部件替换、运行和升级,避免整个价值链的中断。9.3.3 企业间的并购 一些巨型企业,像IBM、谷歌等,总是期望形成自己独有的或以自己为中心的联盟企业组成的整个生态。一旦,发现有些企业的技术或产品能够在这个产业链中起到突出作业,就会不惜代价兼并这些企业。典型的并购案例典型的并购案例1:2018年10月29日
13、,IBM 以334 亿美元收购红帽公司(Red Hat),因为IBM需要Linux操作系统,开展云计算的的产业。IBM公司董事长、总裁兼首席执行官Ginni Rometty表示,“如今,大多数公司租用计算能力来削减成本,它们的云计算之路仅走到20%”,而“接下来的80%是关于释放实际业务价值和推动增长的,这才是云的未来。它需要将业务应用程序转移到混合云中,提取更多数据并优化从供应链到销售业务的每个部分。”典型的并购案例典型的并购案例2:谷歌公司,更是不惜余力地通过并购,不断建立和完善自己的产品生态。谷歌在网页搜索领域占领脚跟后,立刻意识到需要开拓移动终端的市场。此前,NOKIA的Symbian
14、操作系统占据智能手机70%的市场。2005年,谷歌花费4千万美元购买了AndyRubin创立的Android(安卓)公司,并向客户免费开源,短时间击垮了NOKIA公司的手机领域的霸主地位。2006年,17亿美元收购YouTube,当时的YouTube员工数还不到100。发展了视频通信市场。2007年,谷歌以31亿美元收购DoubleClick,扩充广告应用软件和服务产业。2012年,以125亿美元收购摩托罗拉移动,拓展移动终端业务。2013年,收购(11.5亿美元)一家总部位于以色列的地图服务初创公司Waze,它给谷歌带来了社交流量数据,帮助谷歌改进谷歌地图功能,例如准确预测旅行时间和推荐导航
15、路线。2014年,谷歌收购Nest Lab(32亿美元,)互联恒温器和烟雾探测器的生产商,标志着谷歌向物联网的进军。2014年,DeepMind(6.5亿美元)。这家总部位于伦敦的公司成立于2010年,收购时员工人数不足100人。2016年3月,DeepMind 的AlphaGo 程序以4:1击败韩国围棋冠军李世石(Lee Se-dol),成为近年来人工智能领域少有的里程碑事件。2017年,收购HTC-Pixel 智能手机部门(11亿美元),谷歌向硬件方面进军。9.3.4 开放策略 产业联盟的形成,自然导致联盟要开放自己的各种技术标准。对于软件,往往是以开放API(Open API)的形式,为
16、成员间或外部用户提供其产品。API的标准是统一的。产业联盟也会建立统一的需求描述、可参考的软件架构(或体系结构)、或实现方法说明、甚至是该产品或实现的基本框架和关键代码,以及标准的测试用例。产业联盟的形成往往采用会员制,像联合国的形式一样,以及成员的贡献、交纳的会费、等行使不同的投票、表决等权利。产业联盟会收集成员的专利、其它知识产权等,形成所谓的专利或知识产权池,以此作为向用户或非联盟成员收取知识产权费用的依据。逐步在某个领域形成垄断。9.3.5 开源策略 传统的软件销售提供给用户的是版权和使用许可证(参见9.1节),而不包括源代码,称其为闭源软件(Closed Source Softwar
17、e),只有开发方具有源代码。用户不能随意安装、修改和反跟踪可执行的代码。这种措施限制了用户的权利,很容易形成市场的垄断行为。有些情况下,用户会要求开发方提供源代码,但是用户不能向外传播、发布、修改源代码,这些源代码仍然是闭源的。除开发方之外,其他人并充分使用、修改和重新发布代码的权利。为避免上述的限制,人们提出自由(Free)软件和开源(open)软件,解决闭源系统的限制。开源软件开发(OSS-Open Source Software development)是当今常用的方法。开源原则,提出了如下10条基本要求:1)支持自由重新发布(Free Redistribution);2)提供源代码和编
18、译后的代码一起发布;3)允许衍生新作品(Derived Works);4)保持作者源代码的完整性;5)不能歧视任何个人和团体;6)不能歧视新领域;7)许可证与代码一起分发;8)许可证不能针对某一个产品;9)许可证不能限制其他软件;10)许可证必须保持技术中立。这些要求是最小原则,每个团体可以依据这些基本原则定义出自己的开源许可要求。常见的MIT、BSD、GPL和LGPL等协议与这些原则是基本一致的。目录 9.1 软件与产业 9.2 软件企业过程能力的改进 9.3 产业生态、联盟、开放与开源 9.4软件危机:永恒的话题 9.5 中国软件危机 9.6 软件产业人才 9.7 软件工程与新工科9.4软
19、件危机:永恒的话题 9.4.1国防工业软件的指数级增长 9.4.2制造业软件成本的急速增长 9.4.3超大规模软件系统 9.4.4 软件生产率严重不足9.4.1国防工业软件的指数级增长时间1000源代码行(KSLOC)Milstar IP/L+S/C遗 留 系 统:100kSLOC100020030040050060070080090010001988199219962000200420082012GPS IIRP/L+S/CMilstar IIP/L+S/CWGSS/CSBIRS High HEO P/LS/CGPS IIF P/L+S/CGPS III P/L+S/C系统未来:在1亿行之上
20、SBIRS High GEO P/LS/CNPOESS1 P/L+S/CAEHFP/L+S/CSRP/L+S/C注释:P/L(payload 有效载荷),S/C(Spacecraft空间飞行器),AEHF(Advanced Extreme High Frequency-先进极高频卫星),GEO(Geosynchronous Earth Orbit GPS地球同步轨道GPS),GPS(Global Positioning System全球定位系统),HEO(High Ellipical Orbit高轨道地球卫星),NPOESS(National Polar-Orbiting Operationa
21、l Environment国家极轨业务环境),STSS(Space Training and Survellance System空间训练与生存系统),WGS(Wideband Global Satcom宽带全球卫星通信)。9.4.2制造业软件成本的急速增长27.5兆源代码行是转折线,因为这个规模,按COCOMOII模型估算,软件开发成本将超过$100亿美元。发生在2010到2020年之间。直线拟合波音公司空客公司不可负担的插值斜率:0.1778,截距:-338.5曲线表明每4年代码行翻一番COCOMO II(Constructive Cost Model,构造成本模型)携带的源代码(对数)年
22、9.4.3超大规模软件系统安迪和比尔的定律:安迪和比尔的定律:What Andy giveth,Bill taketh away(安迪所赐,比尔拿走)。Andy Grove IntelCEO;Bill Gates 微软CEO1990年代每当Andy推出一款新的芯片,Bill就会升级其软件,吃光新芯片的空间。SoS:随着软件系统复杂性的增加,单纯的为满足某一个特定任务的软件已经不能满足客户的需求。人们期望的不再是庞大的业务单调的(monolithic)系统,而是能够相互协作的、异构的和自治化运行系统。这些系统将已有的、新建的系统集成在一起,形成的比原先的系统具有更好的功能和性能,而不仅仅是原系统
23、的简单叠加,将这种建立在多个系统上的系统称为多系统的系统多系统的系统(SoSsystem of systems)。2006年SEI提出超大规模(ULSUltra Large Scale)软件系统,进一步表达具有10亿行以上代码的软件系统工程期望。ULS是SoS系统的一种特殊形式,即,由多个独立的动态团体构成的系统,团体之间会相互竞争资源,且具有相互冲突的目标。这就需要建立规则和策略有效地使用资源,实现主要目标。9.4.4 软件生产率严重不足软件生产率 个体的软件生产率(单位时间编写的代码行)基本很难增加 集体的软件生产率,也几乎没有增加 编程语言和工具的发明,可以提高生产率。但是,提高的也不够
24、。需要新的软件工程方法和技术,提高生产率目录 9.1 软件与产业 9.2 软件企业过程能力的改进 9.3 产业生态、联盟、开放与开源 9.4软件危机:永恒的话题 9.5 中国软件危机 9.6 软件产业人才 9.7 软件工程与新工科9.5 中国的软件危机 9.5.1 软件导致通信与网络系统的危机 9.5.2 软件导致信息化社会的安全危机 9.5.3 软件导致制造业的危机谷歌停止华为谷歌停止华为合作(合作(2019年年5月):月):谷歌公司停止与华为部分合作,这就意味着华为正在失去Android操作系统的更新,同时也意味着华为中国以外推出的手机将无法使用Gmail和谷歌Play等应用程序和服务。9
25、.5.1 软件导致通信与网络系统危机通信与网络包括,传统的电话电信系统、移动通信系统、卫星通信系统、互联网系统等支撑国家信息化的基础网络运行和管理的系统。这些系统可能是专业的网络运营,建立、维护、并向客户提供服务,例如,中国移动集团的移动通信网、国家教育网;也可能是自己建立和运行的系统,例如,国家电网的通信和SCADA(计算机控制的输变电)系统、高速公路管理的网络和通信系统等等。通信和网络系统的基础逐步软件化,包括,交换机、路由器、光纤线路的转发器等。SDN从如下层面影响网络:1)应用层:包含提供管理及云端虚拟化等服务,主要功能为提供SLA、QoE、安全(Security)与防火墙(Firew
展开阅读全文