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
26、all)等网络服务。2)控制层:以远端控制器为主,并搭配SDN控制软件以及网络L4到L7的解决方法。3)基础设备层:交换机、路由器及网络芯片。9.5.2 软件导致信息化社会的安全危机 影响信息安全的最大因素是基础软件。第一类基础软件必须安装在计算机系统上运行。其中如果有缺陷、漏洞或恶意的后门程序,自然会对一个国家的信息空间安全造成威胁。在Windows 8之后不再向中国政府开发源代码的情况下,不仅仅是产业安全,已经上升为信息安全的层面。特别是对于像银行、金融、交通、电力等这样的经济民生设施和网络系统安全存在巨大的风险。2017年春,勒索病毒通过微软的操作系统对全球造成威胁,并可能引发全球网路军
27、备竞赛。第二类是支撑一个国家软件产业的基础工具和设备,就像制造业的数控机床一样。这些工具和平台能够极大地提高开发效率。进一步,由于软件开发环境的编译和链接程序会自动链接工具厂商提供的运行库。这些运行库也是应用程序的一部分,因此这类基础工具软件也存在安全风险。第三类软件的用户量众多办公软件。9.5.3 软件导致制造业的危机 2015年,在第十九届中国国际软件博览会开幕式上,工业和信息化部提出了“软件定义世界,两化深度融合”,表达了对软件产业在未来工业化和信息化社会的期待。制造业类的软件也主要被美国、欧洲、日本等发达国家垄断。中国工业界不仅需要花费大成本购买这些软件支撑企业的产品设计、生产管理和制
28、造。最关键是,这些软件本身又隐含了工业设计的标准和知识的运用,中国工程师就必须遵循软件输出国的工业标准(从简单的测量标准、到产品标准件的复用)。软件输出国在输出工业软件的同时,也在输出科学和教育体系。我们的理工科学生的教育也就只能沿用这些软件表达的模型、计算方法和设计思想。例如,电子类工科学生用MatLab做教学,机械系使用AutoCAD等。自然,从理工科的教育上就形成了跟随发达国家的工业体系趋势。目录 9.1 软件与产业 9.2 软件企业过程能力的改进 9.3 产业生态、联盟、开放与开源 9.4软件危机:永恒的话题 9.5 中国软件危机 9.6 软件产业人才 9.7 软件工程与新工科9.6
29、软件产业人才 9.6.1 软件工厂型人才 9.6.2 软件工程型人才 9.6.3复合型人才 9.6.4创新创业思维 9.6.5国际化视野 9.6.6软件商业奇才 9.6.6 软件工程与新工科人才9.6.1 软件工厂型人才支持员工编程专家测试工程师系统工程专家A B C 系统工程经理D设计编程年06914职业高中毕业大学毕业硕士毕业博士毕业abdc单个人力成本高低单个教育成本高低80年代,日本提出的软件工厂型人才与培养 软件工厂型的人力资源培养模式很容易导致把软件人员作为普通的蓝领工人,抹杀软件产业的创新性。软件产业是一个人力密集的脑力劳动产业。脑力劳动的根本在于其个体的创新思维。从产业角度看。
30、则要求产业大军能够有序地、有组织地、以及定量地进行大规模的群体的脑力劳动。从人才培养的角度看,必须要求每个人具备:个体劳动的创新性,以及集体劳动过程的有组织性和纪律性。9.6.2 软件工程型人才 工程型人才:体现把软件的开发作为工程任务,而不仅仅是理论学习和研究,重视工程过程和中间产品质量,交付满足客户需求的软件产品和系统。以此为导向,学习相关的理论知识,在各种实践课程体系中,体会和悟道软件工程师的责任。软件工程的根本是把知识转为计算机上可以执行的程序,从而形成人与计算机、网络通信网,相互协调有序工作的系统,从而或者替代人的智力和体力劳动,或者作出人类难以完成的工作。软件人才 1)需求分析师:
31、懂得领域知识,并能将领域知识表达为的系统或软件需方的人。他们工作的重点是建立一个领域的工作知识参考模型或理论,并将其用需求语言(例如,UML图形化的建模语言,自然语言等),表达为软件设计者能读懂的文档。2)软件产品和体系结构的设计者:这类人才的主要能力体现在:能依据上述人才表达的客户的需求、市场情况、以及当前与未来的技术趋势,前瞻性地设计出软件产品和系统,这些系统或产品是可变的,能适应客户需求、市场和技术的变化,规划出软件产品生产线或产品的升级维护计划。设计者,能够将系统分解为相关的模块,合理地分配给开发小组,或外包其他的公司。自然要给出相应的模块验收标准,保证不同小组的模块能够很好地集成到一
32、起。3)首席程序员和高级程序员:培养难 4)一般程序员,即,码农,相对比较容易培养的。需要的是遵循代码的编程规范和良好的算法训练。5)高级测试人员。测试人员的目的是寻找出错误,验证和确认系统是否得到设计和需求的要求。一般的测试人员很容易培养,但是优秀的测试人员很难培养出来,他们必须回答系统中存在多少缺陷?是否可以停止测试?等问题。6)高层质量控制人员。工作范围比测试人员更为广泛,不仅仅关心测试,还要审查需求、设计、代码和测试工作,并分析整个项目的工作过程,建立起最终产品质量和开发过程活动之间的(统计学)关系。为过程的改进提供依据。7)产品和开发过程配置管理人员。这类人员的主要职责是保证软件产品
33、开发过程中的工作是完整的,最终出货的产品也是完整的。9.6.3复合型人才 复合型:意味着,不仅是“码农”或一般意义上的技术脑力劳动者,更重要的是具有国际化的商业头脑,且能够跟随IT技术的新趋势,甚至要有敢于引力IT发展趋势的精神,培养其理论、技术、工程管理、商业视野等,为其奠定在未来国际竞争中,成为全方位的人才。这类人才是公司的领头人。表面上,这些人好像不会写代码、不懂软件开发,但是,他们懂金融和财政、懂市场、懂领域的客户需求,具有前瞻性,或者能够很好地建立起企业的组织结构、产品开发流程、销售与服务流程、质量保证体系等。复合型人才 1)企业(未来的)CEO:其特点是对软件产品市场有很好的的理解
34、,能全面地分析竞争对手的情况,产品是否符合趋势。懂得如何进行融资。2)企业(未来的)CTO和产品总裁:软件的特殊性,不同于传统技术产品。能把控全面的技术趋势,而不仅仅是某个方面的专业知识。3)企业(未来的)销售和服务运营主管:软件企业运营,不同于一般的商业服务和制造业。需要建立,特别是创新软件的销售和服务模式。从原先的版权和许可证、到后来的云服务,在改变者着软件企业的商业思路。未来是是什么研究的商业模式,需要不断地创新。4)软件过程改进者:软件越来越复杂,再好的思想或需求,都要通过复杂的软件表现出来。需要组织大量人员进行软件开发。而开发过程需要标准化,那么,啥样的开发流程适合于企业?如何不断改
35、进过程?节约成本、工期和资源,并保证质量。需要专业人员从系统工程的角度进行研究,并结合企业的实践活动,改进过程。5)除上述特征之外,复合型人才必须了解领域知识,或者能够组织领域的专业人才,分析这些领域的软件产品需求,规划出某个领域的产品线结构和产品线。9.6.4创新创业思维 软件是产品,需要继承前人的成果和工作,不断地维护完善、修改,提升原有的产品 另一方面,软件产品必须创新。软件人才也必须具有创新的精神,敢于从产品商业模式和技术模式上进行创新。抄袭或模仿他人产品的做法只能帮助他人进一步垄断市场。创新型人才必须通过创新和创业实践,探索新的软件应用和商业模式,实现技术和业务模式创新。仅仅有技术创
36、新是不够的,必须强调软件商业模式的创新,这就需要创业实践。创业实践不一定要办大的企业和公司,其重点是探讨软件商业模型,例如,许可证的定义、服务方式等。创业实践包括了商业创新,是商业模式创新的进一步探讨和实践。只有通过创业实践,才能在市场经济中,验证软件产品商业模式创新的可行性和现实性。摩尔定律的存在,导致今天看上是先进的产品,两年以后可能就会落后,或被大企业垄断。一个好的技术和产品,不是鉴定的专家们说了算,市场是独一无二的检验标准。因此,软件人才必须具有创新创业的思维观念。9.6.5国际化视野 软件的可复制性,决定了软件产品必须创新 也决定力软件市场自然具有国际性,技术是国际通用的,不存在特定
37、地域的技术。特定地域的商业保护长远地看会降低产品的竞争力。因此,过多地强调“本地化”或“国产化”,是对产品和技术的自我封锁。软件人才必须具有国际化的视野,必须国际市场作为自己的市场,能够评估、判断出国际先进技术的发展趋势。然而,也必须承认欧美的大学和产业界的目前具有领先优势。如果忘记了中国面临的软件危机,只是跟踪和模仿国际先进技术,我们就只能在后面爬行。国际化视野在于能看到他人的长处,自己的不足,判断哪些市场和技术处于同样的起跑线是可以超越,哪些落后的要不要跟踪,会不会在跟踪一项未来会被淘汰的技术市场。9.6.6软件商业奇才 9.6.6.1 微软与比尔盖茨 9.6.6.2 谷歌与网页9.6.6
38、.1 微软与比尔盖茨 13岁时,Gates对BASIC编程产生了浓厚的兴趣,开发了一个游戏程序。1973年中心毕业时,获得National Merit Scholar奖,进入Harvard College。大学二年级,用组合方法开发了煎饼分拣的算法,与整理后发表。在大学里,除了正常的课程,Gates花大量的时间在学校的计算上。1970年暑假进入Honeywell公司实习。那个年代,刚出现Intel8080CPU。1970年,大学三年级的Gates和Paul Allen 成立了微软公司(Microsoft),Gates作为CEO直到2000年。Gates多年位居福布斯富人榜首位。盖茨阅读了197
39、5年1月Popular Electronics杂志,得知微型仪器和遥测系统公司(MITS)将推出Altair 8800微型计算机,他联系了这家公司,得知有人正在为他们做一个BASIC语言的解释器。实际上,当时盖茨和艾伦并没有Altair,也没有编写BASIC代码经验,他们只是想只是对MITS有的兴趣。MITS总裁Ed Roberts同意与他们见面看他们的演示,并期望在几周内开发了一台运行在微机上的额Altair仿真器,然后开发BASIC解释器。表演非常成功,MITS同意随机销售Altair BASIC解释器。艾伦也被MITS雇佣,1975年11月Gates也随同到MITS工作。这俩个人把他两个
40、合作关系称为“Micro-Soft”,1976年注册了商标。微软的Altair BASIC受到计算机爱好者的欢迎,盖茨发现市场上的副本已泄露到社区中,并被广泛复制和分发。1976年2月,盖茨在MITS时事通讯中向业余爱好者写了一封公开信,声称微软Altair BASIC超过90的用户没有向微软支付费用,这对于Altair的“业余爱好市场”是非常不利的。这封信不受计算机爱好者的欢迎,但盖茨坚持认为软件开发者应该能够要求付款。微软于1976年底从于MITS分离出来,并继续为各种系统开发编程语言软件。DOS成功的商业模式 1980年7月,IBM与微软就其即将推出的个人电脑IBM PC的操作系统进行了
41、接洽。IBM首先提议微软编写BASIC解释器。当IBM的代表提到他们需要一个操作系统时,盖茨将他们推荐给数字研究公司(DRI-Digital Research),DRI公司有当时广泛使用的CP/M操作系统。IBM与Digital Research的讨论进展不顺利,没有达成许可协议。IBM代表Jack Sams在随后与盖茨的会谈中提到了许可证的困难,并告诉他要获得一个可接受的操作系统。几周后,盖茨提议使用86-DOS(QDOS),这是一种类似于CP/M的操作系统,是西雅图计算机产品公司(SCP-Seattle Computer Products)的蒂姆帕特森(Tim Paterson)为类似于P
42、C的计算机研制的。微软与SCP达成协议,成为独家授权代理商,后来成为86-DOS的全部所有者。在为PC调整操作系统后,Microsoft将其作为PC DOS交付给IBM,以换取50,000美元的一次性费用。DOS成功的商业模式 盖茨没有转让操作系统的版权,他认为其他硬件供应商会克隆IBM的系统。因此,应当保护版权,只销售MS-DOS软件的许可(使用)权。MS-DOS的销售使微软成为业界的主要参与者,尽管在操作系统上有IBM的名字,但媒体很快发现微软对这台新电脑非常有影响力。PC Magazine杂志询问盖茨是否是“机器背后的男人?”。InfoWorld引用了一位专家的话说“它是盖茨的计算机”。
43、从此,操作系统成为PC机的代名词,而不是PC机的硬件系统。1981年6月25日,盖茨监督了微软公司的重组,该公司重组了华盛顿州的公司,并使盖茨成为微软公司总裁兼董事会主席。Windows的神话 微软于1985年11月20日推出了第一个零售版Microsoft Windows。第二年8月,该公司与IBM达成协议,开发一个名为OS/2的独立操作系统。虽然两家公司成功开发了新系统的第一个版本,但由于创意差异的加剧,合作关系恶化。OS/2没有再走下去。在微软早期的历史中,盖茨是一位活跃的软件开发人员,尤其是公司的编程语言产品,但他在公司历史的大部分时间里的基本角色主要是担任经理和执行官。从Window
44、s1.0版本到今天,Windows独霸了PC机市场33年!Bill Gates 就像他的名字一样,向全球收了40几十年的账单(bill)9.6.5.2 谷歌与网页 说起谷歌,发源于网页搜索。其创始人之一的名字也许就是为此而起的Larry Page(拉里佩奇)。佩奇的父亲 Carl Victor Page,在密歇根大学获得计算机科学博士学位,研究人工智能,BBC记者Will Smale称他为“计算机科学和人工智能的先驱”。Page,让我们从翻阅传统的书页,变成今天翻阅网页!拉里佩奇在斯坦福大学注册计算机科学博士课程后,要寻找论文的主题,它打算探索万维网的数学属性,将其链接结构理解为一个巨大的图形
45、。他的导师Terry Winograd鼓励他深入探讨,佩奇在2008年回忆说这是他收到的最好的建议。因为那个时候,他还考虑过在此期间对远程呈现和自动驾驶汽车进行研究。佩奇侧重于找出链接到给定页面的网页的问题,将此类反向链接的数量和性质视为该页面的有价值信息。博士生谢尔盖布林(Sergey Brin,外号“BackRub”)很快就会加入佩奇的研究项目。他们共同撰写了一篇名为“大型超文本网络搜索引擎剖析”的研究论文,当时互联网历史上下载次数最多的科学文献。他们开始利用佩奇的宿舍作为实验室,并用便宜的计算机,创建一个他们用来连接新生的搜索引擎和斯坦福宽带校园网络的设备。之后,他们又将布林的宿舍转变为
46、办公室和编程中心,在网上测试了他们的新搜索引擎设计。他们项目的快速发展导致斯坦福大学的计算基础设施出现问题。他们使用基本HTML编程技巧为用户设置一个简单的搜索页面,因为没有网页开发人员来创建任何视觉上精心设计的东西。还开始使用他们可以找到的任何计算机部件来组装必要的计算能力来处理多个用户的搜索。随着他们的搜索引擎在斯坦福用户中越来越受欢迎,它需要额外的服务器来处理查询。1996年8月,仍然在斯坦福大学网站上的谷歌的初始版本可供互联网用户使用。1998年,两人创立了Google,Inc,初始域名为“Googol”,源自一个后跟一百个零的数字,表示搜索引擎要探索的大量数据。佩奇任命自己为首席执行
47、官,而布林担任总裁。在得到硅谷两个最著名的投资者投资之前,Kleiner Perkins CaufieldByers和红杉资本已同意在Google上投资总额5000万美元,他们提出佩奇辞去CEO的职务,以便更有经验的领导者建立一个“世界”级管理团队。“访问了苹果的史蒂夫乔布斯和英特尔的安德鲁格罗夫和其他技术CEO后,同意辞去CEO,改任产品总裁。2001年3月,原Novell首席执行官的埃里克施密特被聘为谷歌董事长。目录 9.1 软件与产业 9.2 软件企业过程能力的改进 9.3 产业生态、联盟、开放与开源 9.4软件危机:永恒的话题 9.5 中国软件危机 9.6 软件产业人才 9.7 软件工
48、程与新工科9.7 软件工程与新工科 9.7.1软件工程的就业 9.7.2美国-欧洲-中国软件产业对比 9.7.3软件与其它产业500强的对比 9.7.4 新工科战略 9.7.5 软件工程与新工科的融合9.7.1计算机与软件工程的就业随着云计算、大数据、5G应用的发展,社会与互联网和物联网密切相关。这就导致了计算机和软件工程以及相关学科对人才的高速增长的要求。美国劳动局预测从2016到2026的计算机和信息技术就业岗位每年的增长率是13%,源于大于其他所有的行业。职位职位教育程度教育程度2017年平均年平均年薪年薪计算和信息研究科学家Computer and Information Resear
49、ch Scientists硕士114520 计算网络体系结构师Computer Network Architects学士104650计算机程序员Computer Programmers学士82240计算机支持者Computer Support Specialists学士、或associate学位或postsecondary classes52810计算系统分析师Computer Systems Analysts学士88270数据库管理者(DBA)Database Administrators学士87020信息安全分析师Information Security Analysts学士95,510N
50、etwork and Computer Systems Administrators 81,100软件开发者Software Developers学士103560Web开发者Web DevelopersAssociate 学位67990注释:Associate学位-美国大学修满二年课程的肄业证书,或辅修学位2017年统计,美国软件工程师的就业平均年薪84580美元,远高于其它行业的37690美元。中国国家统计局发布的2017年规模以上企业就业人员分岗位年平均工资情况,把行业的岗位分为四类:中层及以上管理人员、专业技术人员、办事人员和有关人员、社会生产服务和生活服务人员。这四类岗位平均工资最高的