软件的历史
发布时间:2017-01-19 来源: 历史回眸 点击:
软件的历史篇一:软件工程的发展历史
1.世界上第一个计算机程序员
第一个写软件的人是Ada(Augusta Ada Lovelace),在1860年代她尝试为 Babbage(Charles Babbage)的机械式计算机写软件。尽管他们的努力失败了,但他们的名字永远载入了计算机发展的史册。她的父亲就是那个狂热的,不趋炎附势的激进诗人和冒险家拜伦。她本身也是一个光彩照人的人物—数学尖子和某种程度上的赌徒。她最重要的贡献来自于与发明家Charles Babbage的合作,从而设计出世界上首批大型计算机—Difference Engine和Analytical Engine。她甚至认为如果有正确的指令,Babbage的机器可以用来作曲,这是一个多么疯狂的想法,因为当时大多数人只把它看成是一个机械化算盘,而她却有渲染力和感召力来传播她的思想。
2.现代计算机软件的出现
20世纪50年代,软件伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。1960年代美国大学里开始出现授予计算机专业的学位,教人们写软件。
在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。早期当通用硬件成为平常事情的时候,软件的通 用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。早期的软件开发也没有什么系统的方法可以遵循,软件设计是 在某个人的头脑中完成的一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档。
3.软件危机
从60年代中期到70年代中期是计算机系统发展的第二个时期,在这一时期软件开始作为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求写软 件。这一软件开发的方法基本上仍然沿用早期的个体化软件开发方式,但软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高, 而失败的软件开发项目却屡见不鲜。“软件危机”就这样开始了!
“软件危机”使得人们开始对软件及其特性进行更深一步的研究,人们改变了早期对软件的不正确看法。早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧。现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充。
1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了“软件危机”(software crisis)这个名词。 概括来说,软件危机包含两方面问题:一、如何开发软件,以满足不断增长,日趋复杂的需求;二、如何维护数量不断膨胀的软件产品。
4.软件工程的提出
1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念。
软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。软件工程包括两方面内容:软件开发技术和软件项目 管理。软件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。
5.传统软件工程
为迎接软件危机的挑战,人们进行了不懈的努力。这些努力大致上是沿着两个方向同时进行的。
一是从管理的角度,希望实现软件开发过程的工程化。这方面最为著名的成果就是提出了大家都很熟悉的“瀑布式”生命周期模型。它是在60年代末“软件危机”后出现的第一个生命周期模型。如下所示:
分析 → 设计 → 编码 → 测试 → 维护
后来,又有人针对该模型的不足,提出了快速原型法、螺旋模型、喷泉模型等对“瀑布式”生命周期模型进行补充。现在,它们在软件开发的实践中被广泛采用。
这方面的努力,还使人们认识到了文档的标准以及开发者之间、开发者与用户之间的交流方式的重要性。一些重要文档格式的标准被确定下来,包括变量、符号的命名规则以及原代码的规范式。
软件工程发展的第二个方向,侧重与对软件开发过程中分析、设计的方法的研究。这方面的重要成果就是在70年代风靡一时的结构化开发方法,即PO(面向过程的开发或结构化方法)以及结构化的分析、设计和相应的测试方法。
软件工程的目标是研制开发与生产出具有良好的软件质量和费用合算的产品。费用合算是指软件开发运行的整个开销能满足用户要求的程度,软件质量是指该 软件能满足明确的和隐含的需求能力有关特征和特性的总和。软件质量可用六个特性来作评价,即功能性、可靠性、易使用性、效率、维护性、易移植性。
6.现代软件工程
软件不是纯物化的东西,其中包含着人的因素,于是就有很多变动的东西,不可能像理想的物质生产过程,基于物理学等的原理来做。早期的软件开发仅考虑 人的因素,传统的软件工程强调物性的规律,现代软件工程最根本的就是人跟物的关系,就是人和机器(工具、自动化)在不同层次的不断循环发展的关系。
面向对象的分析、设计方法(OOA和OOD)的出现使传统的开发方法发生了翻天覆地的变化。随之而来的是面向对象建模语言(以UML为代表)、软件复用、基于组件的软件开发等新的方法和领域。
与之相应的是从企业管理的角度提出的软件过程管理。即关注于软件生存周期中所实施的一系列活动并通过过程度量、过程评价和过程改进等涉及对所建立的 软件过程及其实例进行不断优化的活动使得软件过程循环往复、螺旋上升式地发展。其中最著名的软件过程成熟度模型是美国卡内基梅隆大学软件工程研究所 (SEI)建立的CMM(Capability Maturity Model),即能力成熟度模型。此模型在建立和发展之初,主要目的是为大型软件项目的招投标活动提供一种全面而客观的评审依据,而发展到后来,又同时被 应用于许多软件机构内部的过程改进活动中。
软件的历史篇二:软件工程的发展史
软件工程发展史
软件工程的发展史还得从它的诞生说起。第一个写软件的人是Ada(Augusta Ada Lovelace),在1860年代她尝试为Babbage(Charles Babbage)的机械式计算机写软件,但失败了。尽管他们的努力失败了,但他们的名字永远载入了计算机发展的史册。她最重要的贡献来自于与发明家Charles Babbage的合作,从而设计出世界上首批大型计算机—Difference Engine和Analytical Engine。她甚至认为如果有正确的指令,Babbage的机器可以用来作曲,这是一个多么疯狂的想法,当时大多数人只把它看成是一个机械化算盘,而她却有渲染力和感召力来传播她的思想。
20世纪50年代,软件伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。那时计算机刚被从军用领域转向民用领域使用,编写程序的工作被是同为艺术家的创作。1960年代美国大学里开始出现授予计算机专业的学位,教人们写软件。在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档。 这个时期计算机硬件从电子管电子计算机发展到晶体管电子计算机,价格昂贵,运算速度低,存储量小。软件通常是规模较小的程序,软件的设计开发者和使用者往往是同一个人。软件设计通常只注意如何节省存储单元、提高运算速度,除了程序清单之外,没有其他任何文档资料。
计算机发展的第二个时期是60年代中期到70年代中期。美国大学开始授予计算机专业的学位,有了软件课程。在这一阶段,软件逐步进化为一种产品被使用,但在此时期,由于软件开发的方法基本上仍然沿用早期的个体化软件开发方式,其数量急剧膨胀,不能及时满足用户要求,维护的难度越来越大,质量得不到保证,“软件危机”也随之而来。
由IBM公司的OS/360系统和美国空军后勤系统,在开发过程中很大的工作量,最后都以失败告终。其中OS/360系统由4000个模块组成,共约100万条指令,花费了5000人的年工作量,经费达数千美元,结果却失败了。
这一重创使人们开始对软件及其特性进行更深一步的研究,人们开始改变了早期对软件的不正确看法。开始往容易被看懂、容易使用、容易修改和扩充方面发展。
1968年北大西洋组织(NATO)的计算机科学家在联邦德国召开国际会议,正式提出了“软件工程”(Software Engineering)的术语。从此一门新兴的工程学科诞生了。
计算机2班 学号:
20世纪70年代到80年代,软件发展的第三个时期。这个时期硬件发展到大规模集成电路计算机,计算机硬件的功能和质量都不断提高。但“软件危机”依然不断增长,面对这种情况,软件工程学把软件作为一种产品批量生产。软件工程运用工程学的基本原理和方法来组织和管理软件生产,以保证软件产品的质量和提高软件生产率。
20世纪80年代至今,计算机系统发展的第四代不单是单台的计算机和计算机系统,而是计算机软件和硬件的综合效果。软件不是纯化的东西,其中包含着人的因素,于是就有很多变动的东西,不可能像理想的物质生产过程,基于物理学等的原理来做。
20世纪末开始流行的Internet给人们提供了一种全球范围的信息基础设施,形成了一个资源丰富的计算平台,未来如何在Internet平台上进一步整合资源,形成巨型的、高效的、可信的虚拟环境,使所有资源能够高效、可信地为所有用户服务,成为软件技术的研究热点。
Internet平台具有一些传统软件平台不具备的特征:分布性、节点的高度自治性、开放性、异构性、不可预测性、连接环境的多样性等。这对软件工程的发展提出了新的问题。软件工程需要新的理论、方法和技术和平台来应对这个问题。目前投入很大精力研究的中间件技术就是这方面的典型代表。
从最早的瀑布模型到现在光为人所知的云计算,软件工程几乎每隔5-10年就会获得一次突破性发展,而且有关软件语言从最早的面向程序结构转向为面向对象,极大的提升了软件编程的效率。目前,软件工程经过50多年的发展,已经深入到社会生活的各个层面,可以说,现代社会生活,几乎在每一个方面都涉及到软件工程。
软件的历史篇三:有限元软件历史
FEA软件的发展历史
有限元方法思想的萌芽可以追溯到18世纪末,欧拉在创立变分法的同时就曾用与现代有限元相似的方法求解轴力杆的平衡问题,但那个时代缺乏强大的运算工具解决其计算量大的困难。Courant(1943)用最小势能原理和现代有限元法中的线性三角元求解st Venant弹性扭转问题,但未能引起足够重视。波音飞机工程师Turner,Clough等人在1956年首次将有限元法用于飞机机翼的结构分析,吹响了有限元的号角,有限元这一名称在1960年正式提出。
有限元方法的理论和程序主要来自各个高校和实验室,早期有限元的主要贡献来自于Berkeley大学。Berkeley的Ed Wilson发布了第一个程序,其他著名的研究成员有J.R.Hughes,Robert Tayor,Juan Simo等人,第一代的程序没有名字,第二代线性程序就是著名的SAP(structural analysis program),非线性程序就是NONSAP。 位于洛杉矶的MSC公司自1963创立并开发了结构分析软件SADSAM,在1966年NASA招标项目中参与了Nastran的开发。1969年NASA推出第一个Nastran版本,MSC对原始的Nastran做了大量的改进并于1971年推出自己的专利版本MSC.Nastran,1983年股票上市并开始了一系列并购重组的活动。
第一批非线性有限元方法的主要贡献者有Argyris(1965),Marcal和King(1967),其中Pedro Marcal毕业于Berkeley大学,任教于Brown大学,于1969年创建了第一家非线性有限元软件公司MARC公司,在1999年被MSC公司收购。
K.J. Bathe是Ed Wilson在Berkeley的学生,后来在MIT任教,期间他在NONSAP的基础上发表了著名的非线性求解器ADINA(Automatic Dynamic Incremental Nonlinear Analysis),其源代码因为长时期广泛流传而容易获得。Bathe的著作丰厚,结合公布的源代码,让后来者获益匪浅,让人敬佩。
David Hibbitt是Pedro Marcal在Brown的博士生,Hibbitt在1972年与Karlsson和Sorensen共同建立HKS公司,推出了Abaqus软件。有人在比较ADINA和Abaqus的时候认为,ADINA的技术更先进求解能力更强大,只是其商业化程度低,前后处理能力差。Abaqus凭借强大的技术、出色的前后处理和可拓展的二次开发功能,稳占高校和研究所的市场,论文发表数量多。
John Swanson博士在Westinghouse公司为核能应用方面发展了一个非线性有限元程序(主要是关注非线性材料),于1970年创建SASI(Swanson Analysis System,Inc)公司,后来重组更名为ANSYS公司,ANSYS是著名的多物理材料非线性有限元软
件,通过并购发展迅速壮大,模块越来越多,商业化程度和市场占有率很高。 Wilkins(1964)在DOE实验室的工作强烈地影响了早期的显式有限元方法,Costantino(1967)在芝加哥的IIT研究院开发了可能是第一个显式有限元程序。 显式有限元技术经过发展和积累迎来了其里程碑式的工作。在美国Lawrence Livermore国家实验室的John Hallquist主持下1975年开始为核武器弹头设计开发分析工具,他吸取了前面许多人的成果,并且与Berkeley的研究员包括Jerry Goundreau,Bob Taybor,Tom Hughes和Juan Simo等紧密交流合作,在他的令人敬畏的编程效率作用下,次年发布DYNA程序。后经过扩充和改进,得到美国能源部的大力资助和ANSYS,MSC,ETA等著名公司的加盟。
在20世纪80年代,DYNA程序首先被法国ESI公司商业化,命名为PAM-CRASH。1988年,John Hallquist创建LSTC(Livermore Software Technology Corporation公司,发行和扩展DYNA程序商业化版本LS-DYNA。同样是1988年,MSC在DYNA3D的框架下开发了MSC.Dyna并于1990年发布第一个版本,另外在1989年收购荷兰的流体软件公司PISCES,将DYNA的Lagrange格式的FEM算法和PISCES的Euler格式的FVM及流体-结构耦合算法充分融合后于1993年发布了以强大的ALE算法而著名的MSC.Dytran。
其后MSC.Dytran一直着力在单元库、数据结构、前后处理等方面是修改使其与MSC.Nastran取得完全一致,其技术领先的地位开始丧失。2003年MSC与LSTC达成全面合作的协议,将LS-DYNA最新版的程序完全集入MSC.Dytran中。MSC在1999年收购Marc之后开始了将Nastran,Marc,Dytran完全融合的工作,并于2006发布多物理平台MD.Nastran,但就目前的情况来看还有很长的路要走。 PAM-CRASH和LS-DYNA在发展和完善了自己的ALE算法之后更引进了先进的无网格技术,PAM-CRASH, LS-DYNA以及AUTODYN(高速瞬态动力分析软件,原为Century Dynamics公司,后被ANSYS收购,已被植入ANSYS11)均包含了SPH算法,其中AUTODYN的SPH算法支持各向异性材料,LS-DYNA另外包含EFG算法。(end)
FEA的发展历程
有限元方法思想的萌芽可以追溯到18世纪末,欧拉在创立变分法的同时就曾用与现代有限元相似的方法求解轴力杆的平衡问题,但那个时代缺乏强大的运算工
具解决其计算量大的困难。Courant(1943)用最小势能原理和现代有限元法中的线性三角元求解st Venant弹性扭转问题,但未能引起足够重视。波音飞机工程师Turner,Clough等人在1956年首次将有限元法用于飞机机翼的结构分析,吹响了有限元的号角,有限元这一名称在1960年正式提出。
有限元方法的理论和程序主要来自各个高校和实验室,早期有限元的主要贡献来自于Berkeley大学。Berkeley的Ed Wilson发布了第一个程序,其他著名的研究成员有J.R.Hughes,Robert Tayor,Juan Simo等人,第一代的程序没有名字,第二代线性程序就是著名的SAP(structural analysis program),非线性程序就是NONSAP。
位于洛杉矶的MSC公司自1963创立并开发了结构分析软件SADSAM,在1966年NASA招标项目中参与了Nastran的开发。1969年NASA推出第一个Nastran版本,MSC对原始的Nastran做了大量的改进并于1971年推出自己的专利版本MSC.Nastran,1983年股票上市并开始了一系列并购重组的活动。
第一批非线性有限元方法的主要贡献者有Argyris(1965),Marcal和King(1967),其中Pedro Marcal毕业于Berkeley大学,任教于Brown大学,于1969年创建了第一家非线性有限元软件公司MARC公司,在1999年被MSC公司收购。
K.J. Bathe是Ed Wilson在Berkeley的学生,后来在MIT任教,期间他在NONSAP的基础上发表了著名的非线性求解器ADINA(Automatic Dynamic Incremental Nonlinear Analysis),其源代码因为长时期广泛流传而容易获得。Bathe的著作丰厚,结合公布的源代码,让后来者获益匪浅,让人敬佩。
David Hibbitt是Pedro Marcal在Brown的博士生,Hibbitt在1972年与Karlsson和Sorensen共同建立HKS公司,推出了Abaqus软件。有人在比较ADINA和Abaqus的时候认为,ADINA的技术更先进求解能力更强大,只是其商业化程度低,前后处理能力差。Abaqus凭借强大的技术、出色的前后处理和可拓展的二次开发功能,稳占高校和研究所的市场,论文发表数量多。
John Swanson博士在Westinghouse公司为核能应用方面发展了一个非线性有限元程序(主要是关注非线性材料),于1970年创建SASI(Swanson Analysis System,Inc)公司,后来重组更名为ANSYS公司,ANSYS是著名的多物理材料非线性有限元软件,通过并购发展迅速壮大,模块越来越多,商业化程度和市场占有率很高。
Wilkins(1964)在DOE实验室的工作强烈地影响了早期的显式有限元方法,
Costantino(1967)在芝加哥的IIT研究院开发了可能是第一个显式有限元程序。显式有限元技术经过发展和积累迎来了其里程碑式的工作。在美国Lawrence Livermore国家实验室的John Hallquist主持下1975年开始为核武器弹头设计开发分析工具,他吸取了前面许多人的成果,并且与Berkeley的研究员包括Jerry Goundreau,Bob Taybor,Tom Hughes和Juan Simo等紧密交流合作,在他的令人敬畏的编程效率作用下,次年发布DYNA程序。后经过扩充和改进,得到美国能源部的大力资助和ANSYS,MSC,ETA等著名公司的加盟。
在20世纪80年代,DYNA程序首先被法国ESI公司商业化,命名为PAM-CRASH。1988年,John Hallquist创建LSTC(Livermore Software Technology Corporation公司,发行和扩展DYNA程序商业化版本LS-DYNA。同样是1988年,MSC在DYNA3D的框架下开发了MSC.Dyna并于1990年发布第一个版本,另外在1989年收购荷兰的流体软件公司PISCES,将DYNA的Lagrange格式的FEM算法和PISCES的Euler格式的FVM及流体-结构耦合算法充分融合后于1993年发布了以强大的ALE算法而著名的MSC.Dytran。
其后MSC.Dytran一直着力在单元库、数据结构、前后处理等方面是修改使其与MSC.Nastran取得完全一致,其技术领先的地位开始丧失。2003年MSC与LSTC达成全面合作的协议,将LS-DYNA最新版的程序完全集入MSC.Dytran中。MSC在1999年收购Marc之后开始了将Nastran,Marc,Dytran完全融合的工作,并于2006发布多物理平台MD.Nastran,但就目前的情况来看还有很长的路要走。PAM-CRASH和LS-DYNA在发展和完善了自己的ALE算法之后更引进了先进的无网格技术,PAM-CRASH, LS-DYNA以及AUTODYN(高速瞬态动力分析软件,原为Century Dynamics公司,后被ANSYS收购,已被植入ANSYS11)均包含了SPH算法,其中AUTODYN的SPH算法支持各向异性材料,LS-DYNA另外包含EFG算法。
有限元分析的发展趋势
近年来随着计算机技术的普及和计算速度的不断提高,有限元分析在工程设计和分析中得到了越来越广泛的重视,已经成为解决复杂的工程分析计算问题的有效途径。 1965年“有限元”这个名词第一次出现,到今天有限元在工程上得
到广泛应用,经历了三十多年的发展历史,理论和算法都已经日趋完善。有限元的核心思想是结构的离散化,就是将实际结构假想地离散为有限数目的规则单元组合体,实际结构的物理性能可以通过对离散体进行分析,得出满足工程精度的
近似结果来替代对实际结构的分析,这样可以解决很多实际工程需要解决而理论分析又无法解决的复杂问题。 近年来随着计算机技术的普及和计算速度的不断提高,有限元分析在工程设计和分析中得到了越来越广泛的重视,已经成为解决复杂的工程分析计算问题的有效途径,现在从汽车到航天飞机几乎所有的设计制造都已离不开有限元分析计算,其在机械制造、材料加工、航空航天、汽车、土木建筑、电子电器,国防军工,船舶,铁道,石化,能源,科学研究等各个领域的广泛使用已使设计水平发生了质的飞跃,主要表现在以下几个方面:增加产品和工程的可靠性;在产品的设计阶段发现潜在的问题
经过分析计算,采用优化设计方案,降低原材料成本
缩短产品投向市场的时间
模拟试验方案,减少试验次数,从而减少试验经费
国际上早在60年代初就开始投入大量的人力和物力开发有限元分析程序,但真正的CAE软件是诞生于70年代初期,而近15年则是CAE软件商品化的发展阶段,CAE开发商为满足市场需求和适应计算机硬、软件技术的迅速发展,在大力推销其软件产品的同时,对软件的功能、性能,用户界面和前、后处理能力,都进行了大幅度的改进与扩充。这就使得目前市场上知名的CAE软件,在功能、性能、易用性﹑可靠性以及对运行环境的适应性方面,基本上满足了用户的当前需求,从而帮助用户解决了成千上万个工程实际问题,同时也为科学技术的发展和工程应用。
做出了不可磨灭的贡献。目前流行的CAE分析软件主要有NASTRAN、 ADINA 、ANSYS、ABAQUS、MARC、MAGSOFT、COSMOS等。MSC-NASTRAN软件因为和NASA的特殊关系,在航空航天领域有着很高的地位,它以最早期的主要用于航空航天方面的线性有限元分析系统为基础,兼并了PDA公司的PATRAN,又在以冲击、接触为特长的DYNA3D的基础上组织开发了DYTRAN。近来又兼并了非线性分析软件MARC,成为目前世界上规模最大的有限元分析系统。ANSYS软件致力于耦合场的分析计算,能够进行结构、流体、热、电磁四种场的计算,已博得了世界上数千家用户的钟爱。ADINA非线性有限元分析软件由著名的有限元专家、
相关热词搜索:历史 软件 财务软件的历史 开源软件的历史与特点
热点文章阅读