『壹』 软件工程是什么,发展如何
是个性价比很高的专业
和计算机做个对比,如果你硬件软件都喜欢搞一点,没事喜欢玩专玩开发板,对于涉及属汇编的底层软件没有发自内心的抵制,做事喜欢刨梗问底然后融会贯通,那么可以考虑计算机,将来的发展道路是在某一个细分领域做到极致,而且相对来说不容易遇到颠覆式的行业变革,一招鲜吃遍天的机会更大
如果是对科研没有一毛钱的兴趣,讨厌一切看上去猴年马月才能变现的理论知识,希望一毕业就在互联网公司挣大钱,同时有点极客精神,喜欢主动学习,尝试新鲜事物,一但业界有个什么新工具新新架构就要迫不及待的follow,同时也想摆脱码农不接地气的身份,那么软工可能很适合你
『贰』 请问你知道应用程序的发展史吗
第一个写软件的人是Ada( Ada Lovelace),在1860年代她尝试为 Babbage(Charles Babbage)的机械式计算机写软件。尽管他们的努力失败了,但他们的名字永远载入了计算机发展的史册。她的父亲就是那个狂热的,不趋炎附势的激进诗人和冒险家拜伦。她本身也是一个光彩照人的人物—数学尖子和某种程度上的赌徒。她最重要的贡献来自于与发明家Charles Babbage的合作,从而设计出世界上首批大型计算机—Difference Engine和Analytical Engine。她甚至认为如果有正确的指令,Babbage的机器可以用来作曲,这是一个多么疯狂的想法,因为当时大多数人只把它看成是一个机械化算盘,而她却有渲染力和感召力来传播她的思想。
20世纪50年代,软件伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。1960年代美国大学里开始出现授予计算机专业的学位,教人们写软件。
在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档。
从60年代中期到70年代中期是计算机系统发展的第二个时期,在这一时期软件开始作为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求写软件。这一软件开发的方法基本上仍然沿用早期的个体化软件开发方式,但软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜。“软件危机”就这样开始了!
“软件危机”使得人们开始对软件及其特性进行更深一步的研究,人们改变了早期对软件的不正确看法。早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧。现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充。
1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了“软件危机”(software crisis)这个名词。 概括来说,软件危机包含两方面问题:一、如何开发软件,以满足不断增长,日趋复杂的需求;二、如何维护数量不断膨胀的软件产品。
1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(software engineering)这个概念。
软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。软件工程包括两方面内容:软件开发技术和软件项目管理。软件开发技术包括软件开发方法学、软件工具和软件工程环境。软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。
为迎接软件危机的挑战,人们进行了不懈的努力。这些努力大致上是沿着两个方向同时进行的。
一是从管理的角度,希望实现软件开发过程的工程化。这方面最为著名的成果就是提出了大家都很熟悉的“瀑布式”生命周期模型。它是在60年代末“软件危机”后出现的第一个生命周期模型。如下所示:
分析 → 设计 → 编码 → 测试 → 维护
后来,又有人针对该模型的不足,提出了快速原型法、螺旋模型、喷泉模型等对“瀑布式”生命周期模型进行补充。现在,它们在软件开发的实践中被广泛采用。
这方面的努力,还使人们认识到了文档的标准以及开发者之间、开发者与用户之间的交流方式的重要性。一些重要文档格式的标准被确定下来,包括变量、符号的命名规则以及原代码的规范式。
软件工程发展的第二个方向,侧重与对软件开发过程中分析、设计的方法的研究。这方面的重要成果就是在70年代风靡一时的结构化开发方法,即PO(面向过程的开发或结构化方法)以及结构化的分析、设计和相应的测试方法。
软件工程的目标是研制开发与生产出具有良好的软件质量和费用合算的产品。费用合算是指软件开发运行的整个开销能满足用户要求的程度,软件质量是指该软件能满足明确的和隐含的需求能力有关特征和特性的总和。软件质量可用六个特性来作评价,即功能性、可靠性、易使用性、效率、维护性、易移植性。
软件不是纯物化的东西,其中包含着人的因素,于是就有很多变动的东西,不可能像理想的物质生产过程,基于物理学等的原理来做。早期的软件开发仅考虑人的因素,传统的软件工程强调物性的规律,现代软件工程最根本的就是人跟物的关系,就是人和机器(工具、自动化)在不同层次的不断循环发展的关系。
面向对象的分析、设计方法(OOA和OOD)的出现使传统的开发方法发生了翻天覆地的变化。随之而来的是面向对象建模语言(以UML为代表)、软件复用、基于组件的软件开发等新的方法和领域。
与之相应的是从企业管理的角度提出的软件过程管理。即关注于软件生存周期中所实施的一系列活动并通过过程度量、过程评价和过程改进等涉及对所建立的软件过程及其实例进行不断优化的活动使得软件过程循环往复、螺旋上升式地发展。其中最著名的软件过程成熟度模型是美国卡内基梅隆大学软件工程研究所(SEI)建立的CMM(Capability Maturity Model),即能力成熟度模型。此模型在建立和发展之初,主要目的是为大型软件项目的招投标活动提供一种全面而客观的评审依据,而发展到后来,又同时被应用于许多软件机构内部的过程改进活动中
『叁』 简述软件的发展过程
软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。
程序设计阶段
程序设计阶段出现在1946年~1955年。此阶段的特点是:尚无软件的概念,程序设计主要围绕硬件进行开发,规模很小,工具简单,无明确分工(开发者和用户),程序设计追求节省空间和编程技巧,无文档资料(除程序清单外),主要用于科学计算。 [2]
软件设计阶段
软件设计阶段出现在1956年~1970年。此阶段的特点是:硬件环境相对稳定,出现了“软件作坊”的开发组
软件工程
织形式。开始广泛使用产品软件(可购买),从而建立了软件的概念。随着计算机技术的发展和计算机应用的日益普及,软件系统的规模越来越庞大,高级编程语言层出不穷,应用领域不断拓宽,开发者和用户有了明确的分工,社会对软件的需求量剧增。但软件开发技术没有重大突破,软件产品的质量不高,生产效率低下,从而导致了“软件危机”的产生。
『肆』 计算机软件的发展经历了哪些历程,各阶段有何特征、理论体系、优势与不足
软件的发展大致经历了如下三个阶段:
⑴第一阶段(20世纪40年代中期到50年代中期)。从第一台计算机上的第一个程序开始到实用的高级程序设计语言出现以前是计算机软件发展初期。这个阶段计算机应用领域的比较窄,主要是科学与工程计算,处理对象为数值数据,以个体方式使用机器(或汇编)语言编制程序。第一阶段只要研究科学计算程序与工程计算程序、服务性程序和程序库,人们对与程序有关的文档的重要性认识不足,重点考虑程序本身。
⑵第二阶段(20世纪50年代中期到60年代后期)。从高级程序设计语言出现到软件工程提出以前是软件发展的第二阶段。这个阶段研究对象增加了并发程序,并着重研究高级程序设计语言、编译程序、操作系统以及各种支撑软件和应用软件。随着计算机系统的处理能力得到加强,设计和编制程序的工作方式逐渐走向合作方式。
⑶第三阶段(20世纪60年代后期软件工程提出以来)。由于大型软件的开发是一项工程性的任务,采用个体或合作方式不仅效率低、可靠性差、而且很难完成任务,只有采用工程方法才能适应高效率高质量编制软件的需求,因而在1968年的大西洋公约组织的学术会议上提出的软件工程的概念。40多年来,软件领域的工作呈现出了许多新的特点。
『伍』 软件的发展历史简介
软件业的历史要追溯到50年前,它有半个世纪的发展。
第一代:早期专业服务公司,1949——1959。第一批独立于卖主的软件公司是为个人客户开发定制解决方案的专业软件服务公司。
在美国,这个发展过程是由几个大软件项目推进的,这些项目先是由美国政府,后来是由几家美国大公司认购的。这些巨型项目为第一批独立的美国软件公司提供了重要的学习机会,并使美国在软件业中成了早期的主角。
第二代:早期软件产品公司,1959——1969。在第一批独立软件服务公司成立10年后,第一批软件产品出现了。它们被专门开发出来重复销售给一个以上的客户。一种新型的软件公司诞生了,这是一种要求不同管理技术的公司。
第三代:强大的企业解决方案提供商的出现,1969——1981 。
IBM给软件与硬件分别定价的决定再次证实了软件业的独立性。在随后的岁月里,越来越多的独立软件公司破土而出,为所有不同规模的企业提供新产品——可以看出它们超越了硬件厂商所提供的产品。最终,客户开始从硬件公司以外的卖主那儿寻找它们的软件来源并确定为其付钱。
第四代:客户大众市场软件,1981——1994 。个人计算机的出现建立了一种全新的软件:基于个人计算机的大众市场提交了它们的产品。这呼唤着极其不同的营销和销售方法。
PARC为今日的PC确立了技术基础:由施乐1969年创立的帕洛阿尔托研究中心(PARC),用突破性的革新,诸如黑白屏幕、位映射显示、按钮、激光打印机、字处理器和网络(最值得一提的是以太网),为个人计算机革命奠定了基础。
在PARC工作的科学家有些后来为苹果公司及微软工作,或者创立了他们自己的公司。
(5)软件工程的了历史发展扩展阅读:
80年代和90年代的平台:在80年代和90年代,许多企业解决方案提供商从大型计算机专有的操作系统平台转向诸如Unix(1973年)、IBM OS/2和微软NT等新的平台。这个转变通常使这些公司从使用它们自己所有的软件中赢得了暴利。
Peoplesoft,一个新的未继承遗产的企业解决方案公司:朝向更新的操作系统平台的转变允许其他的公司进入这个市场。其中之一是Peoplesoft,由杜菲尔德(Dave Duffield)和莫里斯(Ken Morris)成立于1987年。
他们是Integral系统公司出来的两个软件工程师,看到了基于个人计算机的人力资源管理系统(HRMS)软件的潜力。 Peoplesoft能够在HRMS之下通过收购开发许多垂直功能市场(诸如健康保健和财务服务),使自己成了传统企业解决方案提供商的一个值得认真对待的竞争者。
辅助合作者:大多数EPR公司严重依赖于合作者们以辅助和改制它们的产品。这些合作者们通常在一个大的系统安装中获得2至6倍于EPR卖家的收入。这样,两边都从90年代初以来的巨大市场增长中有所获益。
在EPR合作者的阵营里,特别是大会计公司,一种相当活跃的合并——集中化在80年代和90年代里发生了。1987年KPMG的合并,以及更近的1998年普华/永道合并,似乎是全球范围专业软件服务工业化的一个信号。
『陆』 软件工程的发展过程
软件是由计算机程序和程序设计的概念发展演化而来的,是在程序回和程序设计发展到一定规模并答且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。 在Internet平台上进一步整合资源,形成巨型的、高效的、可信的虚拟环境,使所有资源能够高效、可信地为所有用户服务,成为软件技术的研究热点之一。
软件工程领域的主要研究热点是软件复用和软件构件技术,它们被视为是解决“软件危机”的一条现实可行的途径,是软件工业化生产的必由之路。而且软件工程会朝着开放性计算的方向发展,朝着可以确定行业基础框架、指导行业发展和技术融合的“开放计算”。
『柒』 软件工程将来会怎样发展
这个问题很复杂,恕在下自不量力说几句。
软件工程的目标是最小的成本、最高的质量、最短的开发时间开发软件产品。眼下流行的各种软件工程方法对这个目标的实现都差强人意。以RUP为代表的重量方法用来做计划、准备的时间太多,真正用在开发的精力却很少,以为只要企业保证软件过程的实施,其他的事情都好办,这种极端压抑人性的方法不会取得很好效果。轻量方法要好一些,毕竟绝大部分注意力都在开发上,大家都很喜欢,可是仅依靠少数几个人,对付不了大型项目。当然,大家都在改进各自的缺点,吸收对方的优点。
G.Booch说过,自动化不足是软件开发过程中大量问题存在的重要原因,在下深以为然,并且认为是最小的成本、最高的质量、最短的开发时间之目标难以实现的根本原因。因此,将来的软件工程必然要发展到以软件自动化技术为核心的阶段——4GL时代。
为什么4GL时代还没有来临,这是因为软件自动化太困难,眼下所取得的成果局限在某些很窄的领域内,达不到实际项目要求,而且这种技术太难理解,需要对理论的深入学习,一般的开发人员难以接受。软件自动化技术没有大发展的重要愿意是目前描述动作语义的技术都很低级,因此即便用形式化方法作设计也是很费时间的,虽然可以提高一定的效率,但是还是远远不够的。
为了解决这个问题,只有从利用以前的成果入手了,也就是复用构件,但不是用今天的构件技术。将来,实现了机器检索的大型构件库,这是计算机实现对构件的查找、转配等自动化的构件库,不是今天的手工构件库。但这样的构件库为什么没有出现,还是老问题,我们还没有一个很理想的描述动作语义的方法,计算机无法判定两个构件或规约和构件之间是否等价,或者有等价的成分,当然也就无法进行自动检索了。
虽然有很多困难,但我相信将来软件工程的发展方向必将是高度自动化的构件式开发方法。
上面说的,完全是个人观点,也许不足采信。
『捌』 电脑软件的发展史
电脑软件的发展史
第一代软件(1946-1953)
第一代软件是用机器语言编写的,机器语言是内置在计算机电路中的指令,由0和1组成。
第二代软件(1954-1964)
当硬件变得更强大时,就需要更强大的软件工具使计算机得到更有效地使用。汇编语言向正确的方向前进了一大步,但是程序员还是必须记住很多汇编指令。
第三代软件(1965-1970)
在这个时期,由于用集成电路取代了晶体管,处理器的运算速度得到了大幅度的提高,处理器在等待运算器准备下一个作业时,无所事事。因此需要编写一种程序,使所有计算机资源处于计算机的控制中,这种程序就是操作系统。
第四代软件(1971-1989)
20世纪70年代出现了结构化程序设计技术,Pascal语言和Mola-2语言都是采用结构化程序设计规则制定的,Basic这种为第三代计算机设计的语言也被升级为具有结构化的版本,此外,还出现了灵活且功能强大的C语言。
第五代软件(1990-至今)
第五代软件中有三个著名事件:在计算机软件业具有主导地位的Microsoft公司的崛起、面向对象的程序设计方法的出现以及万维网(World Wide Web)的普及。
(8)软件工程的了历史发展扩展阅读
依据许可方式的不同,大致可将软件区分为几类:
1、专属软件:
此类授权通常不允许用户随意的复制、研究、修改或散布该软件。违反此类授权通常会有严重的法律责任。传统的商业软件公司会采用此类授权,例如微软的Windows和办公软件。专属软件的源码通常被公司视为私有财产而予以严密的保护。
2、自由软件:
此类授权正好与专属软件相反,赋予用户复制、研究、修改和散布该软件的权利,并提供源码供用户自由使用,仅给予些许的其它限制。以Linux、Firefox 和OpenOffice 可做为此类软件的代表。
3、共享软件:
通常可免费的取得并使用其试用版,但在功能或使用期间上受到限制。开发者会鼓励用户付费以取得功能完整的商业版本。根据共享软件作者的授权,用户可以从各种渠道免费得到它的拷贝,也可以自由传播它。
4、免费软件:
可免费取得和转载,但并不提供源码,也无法修改。
5、公共软件:
原作者已放弃权利,著作权过期,或作者已经不可考究的软件。使用上无任何限制。
『玖』 软件工程分为那几个阶段
软件工程是用工程方法研制和维护软件的过程和有关技术。软件研制内的四个阶段包括需求分析、容设计、实现和测试;软件维护指的是使用过程中对已有软件的修改和完善。软件工程的主要对象是大型软件,它覆盖了软件开发技术、软件工程环境、软件经济学、软件心理学,以及软件工程管理等多方面的内容。它研究的问题主要有:质量保证和质量评价,研制和维护的方法、软件工具系统、文件、用户界面的设计,软件管理等。软件工程的最终目的是,摆脱手工生产软件的状况,实现软件研制和维护的自动化。
『拾』 软件测试的历史发展阶段
软件测试的发展历史(转). 20世纪60年代(软件工程建立前),为表明程序正确而进行测试。. 1972年在北卡罗来纳大学举行了首届软件测试正式会议。. 1975年John Good Enough和Susan Gerhart在IEEE上发表了《测试数据选择的原理》的文章,软件测试被确定为一种研究方向。. 1979年,Glenford Myers的《软件测试艺术》,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。. 20世纪80年代早期,“质量”的号角开始吹响。软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。制定了各类标准。. 1983年,Bill Hetzel在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。. 20世纪90年代,测试工具盛行起来。. 1996年提出的测试能力成熟度TCMM(Testing Capability Maturity Model)、测试支持度TSM(Testability Support Model)、测试成熟度TMM(Testing Maturity Model)。. 到了2002年,Rick和Stefan在《系统的软件测试》一书中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程。 www.ltesting.cn中国软件测试培训网