1. 软件工程专业的发展过程
1960年代末期,计算机程序在复杂度、规模和应用领域等方面的增长引人注目,这导致上千亿资金花费在软件开发上,许多人的工作和生活依赖于软件开发的成果。软件产品帮助人们获得更高的工作和生产效率,同时也给人们提供一个更加安全、灵活和宽松的工作与生活环境。尽管有很多成功之处,许多软件产品在成本、工期、质量等方面存在严重问题。主要原因是:
软件产品是复杂的人造系统,具有复杂性、不可见性和易变性,难以处理。个人或小组开发小型软件非常有效的编程技术和过程,在开发大型、复杂系统时难以发挥同样的作用。
1968年在德国举行的NATO软件工程会议上,为应对“软件危机”的挑战,提出了“软件工程”的术语。这个时期有代表性的软件工程定义是“为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法”。
1972年IEEE学会的计算机协会第一次出版了《软件工程学报》。此后,“软件工程”这个术语被广泛用于工业、政府和学术界,众多的出版物、团体和组织、专业会议在它们的名称里使用“软件工程”这个术语,很多大学的计算机科学系先后设立软件工程课程。 软件工程早期的发展是理清软件工程过程的各种活动,提出软件生命周期的概念和软件开发的瀑布模型,制定软件生命周期中主要活动的质量标准。
1991年,ACM和IEEE/CS的计算教程CC1991专题组将“软件工程”列为计算学科的九个知识领域之一。
1980年代末到1990年代初,计算机硬件普遍采用大规模集成电路。在单主机计算模式下,基于瀑布模型的软件开发过程和结构式过程语言编程范型占主导地位。软件工程得到巨大的发展。以阶段论看待软件生命周期,给规范和规程的制定、工具研制、预算管理、工程核算、组织质量过程带来极大方便,基于瀑布模型的软件工程的研究在软件需求分析、软件设计、软件测试、软件质量保证、软件过程改进等多个子领域得到深化和扩展,形成了软件工程学科的雏形。 1970年代末期,美国制定研究生教育计划时采纳了IEEE/CS提出的、制定软件工程教程的建议,为软件工程教育打下了基础。
1980年代末和1990年代初,软件工程教育得到卡内基-梅隆大学软件工程研究所(SEI)的培育和支持。他们调查软件工程教育的现状;出版软件工程推荐教程;在卡内基-梅隆大学建立软件工程硕士教育计划;组织和推动软件工程教育者研讨会。
1993年,IEEE-CS和ACM为把软件工程建设成为一个专业,建立了IEEE-CS/ACM联合指导委员会。随后,该指导委员会被软件工程协调委员会(SWECC)替代。SWECC给出了“软件工程职业道德规范”、“本科软件工程教育计划评价标准”和“软件工程知识体”(SWEBOK)。SWEBOK全面描述了软件工程实践所需的知识,为开发本科软件工程教育计划打下了基础。
2004年8月,全世界五百多位来自大学、科研机构和企业界的专家、教授经过多年的努力,推出了软件工程知识体、软件工程教育知识体(SEEK)两个文件的最终版本,标志着软件工程学科在世界范围正式确立,并在本科教育层次上迅速发展。软件工程、计算机科学、计算机工程、信息系统、信息技术并列成为计算学科下的独立学科。 中国的软件工程基础技术研究始于1980年代初。当时,软件开发方法学成为研究热点。1980年在北京召开了中国首届软件工程研讨会,之后,许多高等学校和科研单位陆续开展了软件开发方法学、CASE工具和环境、面向对象技术等软件工程基础技术的研究。“软件工程核心支撑环境”,“软件工程技术、工具和环境的研究与开发(SEP)”等课题列入国家重点科技攻关项目,其科研成果代表了中国软件工程技术研究的水平。与此同时,部分高校面向研究生开设了软件工程课程,开始引进和编写软件工程教材。1984年和1985年,国家科委选择重点高校招收了两批(200人)软件工程硕士,为软件工程教育积累了经验。此后,高等院校开始为本科开设软件工程课程。部分高校从1988年开始试办软件工程专业(后来在学科调整时又归并到计算机科学与技术学科)。
1990年代,软件重用和软件构件技术成为研究热点,面向对象方法和技术成为软件开发的主流技术,软件过程研究及软件企业的过程改善受到广泛重视。随着软件工程技术的发展,高校又增设了面向对象技术,支持面向对象技术的Smalltalk语言、软件过程管理、软件测试技术、软件过程度量等课程,软件工程领域的教学内容不断丰富,教学时数不断增加,教学改革不断深入。
为适应中国经济结构战略性调整,实现软件产业和软件人才培养的跨越式发展,2000年发布了18号文件《国务院关于印发鼓励软件产业和集成电路产业发展的若干政策的通知》,2001年经教育部和国家计委批准,全国成立了35所示范性软件学院。各高校软件学院和计算机学院(系)为培养高层次、实用型、复合型、具有国际竞争力的人才,要求学生在思维创新的基础上,提高技术创新和工程创新能力,提高软件工程实践和软件工程管理能力。这有效地促进了中国软件工程学科的发展,中国软件工程教育开始走向成熟。
2. 软件工程的发展过程
软件是由计算机程序和程序设计的概念发展演化而来的,是在程序和程序设计发展到一定规模并且逐步商品化的过程中形成的。软件开发经历了程序设计阶段、软件设计阶段和软件工程阶段的演变过程。 在Internet平台上进一步整合资源,形成巨型的、高效的、可信的虚拟环境,使所有资源能够高效、可信地为所有用户服务,成为软件技术的研究热点之一。
软件工程领域的主要研究热点是软件复用和软件构件技术,它们被视为是解决“软件危机”的一条现实可行的途径,是软件工业化生产的必由之路。而且软件工程会朝着开放性计算的方向发展,朝着可以确定行业基础框架、指导行业发展和技术融合的“开放计算”。
3. 软件工程的历史与发展趋势
关于软件工程的历史与发展趋势
在学习、工作生活中,许多人都写过论文吧,论文可以推广经验,交流认识。相信很多朋友都对写论文感到非常苦恼吧,以下是我整理的关于软件工程的历史与发展趋势论文,希望能够帮助到大家。在学习、工作生活中,许多人都写过论文吧,论文可以推广经验,交流认识。相信很多朋友都对写论文感到非常苦恼吧,以下是我整理的关于软件工程的历史与发展趋势论文,希望能够帮助到大家。
摘要: 软件是一种特殊的产品,随着其规模和复杂性的提高、使用范围的扩大,需要从技术和管理两方面对软件的开发过程进行控制。从软件工程这门学科和技术出现的背景出发,回顾了软件工程在近40年来理论、方法和实践中的成果。最后结合Internet技术和平台的挑战,初步讨论了软件工程需要面对的新挑战。
关键词: 软件危机;构件;体系结构;软件项目管理;中间件
1、软件工程的出现
1.1软件危机
20世纪中期,计算机刚被从军用领域转向民用领域使用,那时编写程序的工作被视同为艺术家的创作。当时的计算机硬件非常昂贵,编程人员追求的是如何在有限的处理器能力和存储器空间约束下,编写出执行速度快、体积小的程序。程序中充满了各种各样让人迷惑的技巧。这时的软件生产非常依赖于开发人员的聪明才智。
到了20世纪60年代,计算机的应用范围得到较大扩展,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。这就是所谓的“软件危机”。
为解决这个问题,1968年NATO会议上首次提出“软件工程”(SotfwraeEngineeirng)的概念,提出把软件开发从“艺术”和“个体行为”向“工程”和“群体协同工作”转化。其基本思想是应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满用户要求的软件产品的定义、开发、发布和维护的工程。从此也诞生了一门新的学科——软件工程。
迄今为之,为了达到最初设定的目标,软件工程界已经提出了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干问题。但是,由于软件固有的复杂性、易变性和不可见性,软件开发周期长、代价高和质量低的问题依然存在。IEEE在 2002年发表的报告指出,即使是IT产业最发达的美国,在2001年美国本土公司开发的软件产品中平均每1000行代码中有0.37个错误,对于美国之外的其他国家,这个比例更高。
1.2软件与其他产品的差异
软件是一种特殊的产品,人们通常看到的是它的载体,而真正具有意义的是载体上的计算机或信息。
软件既不同于通常的精神产品,也不同于常见的物质产品。作家的作品是一种精神产品,它没有使用价值却可以供人阅读欣赏。若把软件也看成是一种作品,却发现其价值在于供人们使用,无人喜欢读它的源代码。
软件也与传统的工业产品不同。工业产品在设计好之后,主要的成本是原材料成本、生产过程的开销等,但生产任何软件的主要成本是设计、实现软件时的成本,以及软件投入使用后的维护成本,在生产线上制造软件的成本非常低。用户购买某种商品后,就拥有了该商品的所有权和使用权。可是用户买来的软件却只拥有它的有限“使用权”。工业产品会随着使用而磨损、报废,但软件在使用过程不会有任何磨损,在相同的硬件条件下用户1年前使用的软件和5年后使用该软件无任何差别。传统的工业产品在车间里生产,生产过程可见、可触摸,也容易衡量生产过程中的消耗和进展。可是软件的开发过程在人的大脑里,很难度量其进度。
所谓的“软件工程”就是要这种过程“可视化”、“定量化”,把看不见的思维活动变成看得见的“文档”或者其他看得见的东西。
2、软件工程方法和技术
30多年来,软件工程的研究和实践取得了长足的进展,尽管目前离彻底解决“软件危机”还有相当的差距(对是否能彻底解决目前也存在争议),但软件工程的方法对软件产业的发展还是起到了很大的推动作用。从20世纪60年代以来,陆续出现了结构化程序设计技术、计算机辅助软件工程(CASE)、面向对象语言和方法、软件过程及软件过程改善研究等一系列成果,并应用到实践中。目前软件工程中主要使用的方法和技术可以分成技术和管理两类。
2.1技术的角度
主要包括:软件开发范型、软件设计方法。软件开发范型关注软件工程的方向,即如何才是正确的编写满足需求的软件;软件设计方法关注软件工程的“途径”,即研究怎样完成从高层概念模型到低层概念模型的映射。
软件工程理论在实践中应用时重点放在软件复用上。参考目前成熟的工业产品的开发模式,软件复用可以在软件开发中避免重复劳动,它以已有的成果为基础,充分利用过去开发应用系统中积累的知识和经验,将开发的重点集中于新应用的特有构成成分上。通过使用软件复用技术,开发应用系统时可以充分利用已有的开发成果,消除软件生命周期中的许多重复劳动,提高软件开发的效率。同时,复用高质量的已有成果,可以避免重新开发时引入的错误,从而提高软件质量。
实现软件复用的关键技术包括软件构件技术(softwarecomponenttechnology)、领域工程(domainen—gineering)、软件体系结构(softwarearchitecture)等。
软件构件是指应用系统中可以明确辨识的构成成分,可复用构件是指具有相对独立功能和可复用价值的构件。目前,构件的概念即包括源代码,也包括需求、需求规约、系统和软件的体系结构、文档、测试计划、测试用例和数据以及其他对开发活动有用的信息,这些信息都可以称为可复用软件构件。软件构件技术是支持软件复用的核心技术,其主要研究内容包括:如何有目的的进行构件生产和从已有系统中挖掘提取构件;构件的本质特征及构件间的关系是什么样的;如何描述构件;如何对构件进行分类、组织及检索等。
研究实践表明,由于某个特定领域需要的软件具有相似的需求,因此软件复用在特定领域内更容易获得成功,由此出现了领域工程。领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它涵盖了建立可复用软件构件的所有活动。包括美国卡内基·梅隆大学软件工程研究所(CMU/SEI)在内的许多研究机构已经提出了一些领域分析方法。
如果软件复用仅停留在代码阶段,开发人员得到的好处是有限的。软件体系结构技术使软件复用从代码复用发展到设计复用和过程复用。在建筑工程领域人们用体系结构表达建筑的整体结构,软件工程研究中引人体系结构这个术语,其核心内容是软件系统的结构,它包括如下一些实体:构件、构件之间的交互关系、限制、构件和连接件构成的拓扑结构、设计原则与指导方针。
4. 软件工程发展历程有哪些
软件工程是一门普通高等学校本科专业,属计算机类专业,基本修业年限为四年,授予工学学士学位。那么网友们知道软件工程发展历程有哪些吗?下面一起来了解一下吧。
1、 1998年,教育部颁布了《普通高等学校本科专业目录(1998年颁布)》,软件工程专业正式出现在该目录的《经教育部批准同意设置的目录外专业名单》中,专业代码为080611W。
2、 2012年,教育部颁布了《普通高等学校本科专业目录(2012年)》,原软件工程专业(080611W)和计算机软件专业(080619W)合并为软件工程专业,专业代码变更为080902,属计算机类专业。
3、 2020年,教育部颁布了《普通高等学校本科专业目录(2020年版)》,软件工程专业为工学门类专业,专业代码为080902,属计算机类专业,授予工学学士学位。
以上就是对于软件工程发展历程有哪些的相关内容。