软件工程发展概述
软件工程发展史

软件工程发展史软件工程是指将系统性的、规范的、可量化的方法应用于软件的开发、运行和维护的过程。
软件工程的发展历程可以追溯到20世纪50年代,随着信息技术的快速发展,软件工程也得到了广泛的应用和研究。
本文将从几个关键时期对软件工程发展史进行概述,并介绍其中的重要里程碑和进展。
1. 早期软件工程的起步(1950s-1960s)在计算机起步的年代,软件开发过程并没有得到足够的重视,程序员们主要采用自主、个体的方式编写代码。
然而,随着计算机应用的普及和软件规模的增长,人们开始意识到软件开发需要一种系统和规范的方法。
在此背景下,软件工程的概念开始形成,并开启了软件工程发展的序幕。
2. 结构化编程和软件工程方法(1970s-1980s)20世纪70年代,结构化编程方法的提出带来了软件开发中的重要突破。
结构化编程强调使用顺序、选择、和循环等基本的编程结构来组织代码,以实现模块化和可维护性。
同时,软件工程方法也开始出现,例如软件开发生命周期,需求分析,设计规范等,为软件开发提供了更加系统和规范的方法。
3. 面向对象编程和敏捷开发方法(1990s-2000s)20世纪90年代,面向对象编程(OOP)成为软件开发的主流方法。
OOP强调将现实世界的概念和对象映射到代码中,提高了软件的可重用性和可扩展性。
同时,敏捷开发方法也逐渐崭露头角,强调快速迭代和客户反馈,以更好地满足用户需求并加快软件交付速度。
这些新兴的方法和思想为软件工程发展注入了新的活力。
4. 软件工程的成熟和新兴技术(2010s-至今)进入21世纪,软件工程的发展趋势更加多元化。
随着云计算、大数据、机器学习和人工智能等技术的快速发展,软件工程也与更多的领域交叉融合。
软件开发的过程变得更加自动化和智能化,测试和部署工具的不断进步也大幅提高了开发效率和软件质量。
总结:软件工程的发展经历了多个阶段和重要的里程碑。
从早期的探索和实践,到结构化编程和软件工程方法的兴起,再到面向对象编程和敏捷开发方法的引入,软件工程在不断演进中不断提高了软件开发的质量和效率。
软件工程发展综述

软件工程发展综述在当今数字化的时代,软件工程已经成为了推动科技进步和社会发展的关键力量。
从简单的程序设计到复杂的系统架构,软件工程的发展历程充满了挑战与创新。
软件工程的起源可以追溯到上世纪中期。
当时,计算机刚刚诞生,程序设计主要是由少数科学家和工程师手工完成,代码的编写和调试过程非常繁琐,效率低下。
随着计算机应用的不断拓展,软件的规模和复杂度迅速增加,传统的编程方法已经无法满足需求,软件工程作为一门独立的学科应运而生。
早期的软件工程主要关注软件开发的方法和流程。
结构化编程方法的出现,使得程序的逻辑结构更加清晰,易于理解和维护。
瀑布模型作为一种经典的软件开发流程,将软件开发过程分为明确的阶段,如需求分析、设计、编码、测试和维护等。
这种线性的流程在一定程度上规范了软件开发,但也存在着灵活性不足的问题,一旦在后期发现前期的错误,修改成本非常高。
进入 20 世纪 80 年代,面向对象编程技术逐渐兴起。
这种编程方法将数据和操作封装在对象中,提高了代码的复用性和可维护性。
同时,软件的开发方法也在不断演进,快速原型法、增量模型等新的开发模型出现,以适应不同类型的项目需求。
在软件工程的发展过程中,软件测试技术也日益重要。
从最初的手工测试,到后来的自动化测试,测试的效率和准确性不断提高。
测试工具的不断涌现,如性能测试工具、功能测试工具等,为保障软件质量提供了有力支持。
随着互联网的普及,软件工程迎来了新的机遇和挑战。
分布式计算、云计算等技术的发展,使得软件系统的架构变得更加复杂。
大规模的互联网应用需要处理海量的数据和高并发的访问,这对软件的性能、可扩展性和可靠性提出了极高的要求。
敏捷开发方法在这个时期逐渐受到重视。
与传统的开发方法相比,敏捷开发强调快速迭代、持续集成和客户参与。
通过短周期的迭代开发,及时获取用户反馈,不断优化产品,能够更好地适应快速变化的市场需求。
软件开发工具和平台也在不断发展和完善。
集成开发环境(IDE)的出现,为开发者提供了更加便捷和高效的开发体验。
软件工程概述和发展趋势

软件工程概述和发展趋势软件工程是一门涉及软件开发、维护和管理的学科,旨在提高软件开发的效率和质量,以满足不断增长的软件需求。
本文将从软件工程的定义、发展历程以及当前的发展趋势进行探讨。
一、软件工程的定义和概述软件工程是将工程原理、方法和工具应用于软件开发和维护的学科。
它与传统的工程学科一样,采用系统化和结构化的方法来解决软件开发中的问题。
软件工程主要包括需求分析、设计、编码、测试和维护等阶段,并且强调团队合作和质量控制。
软件工程的发展是为了解决软件危机而起,软件危机指的是在软件开发过程中出现的成本超支、进度延误、质量不达标等问题。
软件工程的目标是通过规范化的过程和工具来提高软件项目的管理和控制,从而降低软件开发的风险。
二、软件工程的发展历程1. 面向过程的软件开发方法早期的软件开发方法主要关注程序编写的技术和算法,忽略了软件开发中的其他环节。
这导致了开发进程的混乱和质量的不稳定。
2. 结构化软件开发方法20世纪70年代,随着软件需求的增长,人们开始寻求更系统化的开发方法。
结构化软件开发方法将软件开发分解为模块化的子任务,有助于降低复杂度并提高可维护性。
3. 面向对象的软件开发方法20世纪80年代,面向对象的软件开发方法逐渐兴起。
它将现实世界中的实体和行为映射到软件模型中,提供了更灵活和可扩展的开发方式。
4. 敏捷开发方法21世纪初,敏捷开发方法成为热点。
敏捷开发强调迭代和自组织团队的工作方式,注重用户反馈和快速响应变化的需求。
三、软件工程的发展趋势1. 人工智能和机器学习的应用人工智能和机器学习的快速发展将在软件工程领域带来新的机遇和挑战。
通过智能算法和模型训练,可以提高软件开发、测试和维护的效率。
2. 软件工程的自动化随着自动化技术的进步,软件工程领域也在寻求自动化解决方案。
例如,自动化测试和持续集成工具的广泛应用,可以降低测试成本并提高交付速度。
3. 云计算和大数据的发展云计算和大数据技术的发展为软件工程提供了更好的资源管理和数据处理能力。
软件工程的发展和应用

软件工程的发展和应用软件工程是一门涉及软件开发、测试、维护和管理的学科。
随着计算机技术的不断进步,软件工程的发展变得越来越重要。
本文将探讨软件工程的发展历程以及其在各个行业中的应用。
一、软件工程的发展历程1.1 早期软件开发早期的软件开发是由单个程序员完成的,他们编写代码、进行测试和维护。
这种方式虽然简单,但随着软件的规模越来越庞大,这种开发方式变得不再适用。
1.2 结构化编程为了解决程序代码复杂性的问题,人们开始使用结构化编程的方法。
结构化编程将代码分解为模块,每个模块只负责特定的任务,提高了代码的可读性和维护性。
这种方法在软件工程的发展中起到了重要的推动作用。
1.3 面向对象编程随着面向对象编程的兴起,软件工程进入了一个新的阶段。
面向对象编程将程序中的各个组件抽象为对象,并通过对象之间的交互来实现功能。
面向对象编程使得软件的开发更加灵活和可扩展。
1.4 敏捷开发方法在敏捷开发中,软件开发过程被分解为若干个迭代周期,每个周期都产出可工作的软件发布版本。
这种方法强调与客户的密切合作和快速反馈,从而更加高效地满足客户需求。
二、软件工程的应用2.1 金融行业在金融行业中,软件工程发挥着重要的作用。
银行、证券公司和保险公司都使用各种软件来处理大量的数据和交易。
软件工程师们设计和开发这些软件,以提高交易处理的效率和安全性。
2.2 医疗保健软件工程在医疗保健行业的应用也越来越广泛。
医疗软件可以帮助医生进行疾病诊断和治疗方案制定。
此外,还有一些健康管理应用程序可以帮助人们保持良好的健康习惯,监测身体指标等。
2.3 交通运输交通运输行业利用软件工程来改善运输和物流管理。
例如,航空公司使用软件来管理机票预订、航班计划和机上服务等。
物流公司则使用软件来优化货物的运输路径和仓储管理。
2.4 教育领域在教育领域,软件工程的应用也变得越来越重要。
学校和教育机构使用各种教学管理系统和在线学习平台来提供便捷的教学服务。
软件工程师们负责开发和维护这些系统,以满足教育需求。
软件工程发展概述

软件工程发展概述软件工程发展概述引言软件工程是指在计算机科学和工程学的基础上,运用系统性的、规范化的、可量化的方法来开发和维护软件的过程。
软件工程的发展可以追溯到20世纪60年代,随着信息技术的迅速发展,软件工程也取得了快速的进展。
本文将从软件工程的起源、发展阶段、主要方法和未来走向等方面对软件工程的发展进行概述。
软件工程的起源软件工程的起源可追溯到20世纪60年代,以应对当时软件项目开发中面临的严重问题。
在那个时期,许多软件项目常常超出预算、延期交付,甚至无法正常运行。
为了解决这些问题,人们开始探索如何将工程管理原则和技术方法应用于软件开发过程中。
软件工程的发展阶段第一阶段:软件危机时期上世纪60年代末到70年代初,被称为“软件危机”时期。
在这个阶段,软件项目普遍面临成本超支、进度延误、质量低下等问题。
软件开发还局限于个人开发者水平,缺乏统一规范和方法。
第二阶段:软件工程的确立20世纪70年代中期,软件工程开始成为研究的热点。
人们开始意识到软件开发需要工程化的管理方法和技术。
在这个阶段,软件工程的概念、方法和理论框架逐渐确立,如结构化设计、模块化开发、成本估算等。
第三阶段:软件工程的成熟期到了20世纪80年代,软件工程进入了一个成熟阶段。
在这个阶段,各种软件开发方法、技术和工具不断发展和完善,包括面向对象设计、迭代开发、敏捷开发等。
同时,软件工程的管理和质量控制也得到了更加系统化和规范化。
第四阶段:软件工程的创新期近年来,随着、云计算等新技术的兴起,软件工程进入了创新期。
在这个阶段,人们开始探索新的软件开发方法和工具,如微服务架构、容器化技术等。
同时,也面临着新的挑战,如复杂系统的集成和大规模分布式系统的开发。
软件工程的主要方法软件工程涵盖了许多方法和技术,以下是其中几种应用广泛的方法:1. 结构化设计:将软件系统划分为模块化的部分,以便更好地进行设计和开发。
2. 面向对象设计:将软件系统抽象成对象的集合,通过定义类和对象之间的关系来实现系统的设计和开发。
软件工程发展概述

软件工程发展概述软件工程发展概述1. 背景2. 软件工程的起源软件工程的起源可以追溯到20世纪60年代,当时软件开发过程中存在着许多挑战和问题。
软件项目往往在预算、进度和质量控制方面面临挑战,导致项目失败率较高。
在这样的背景下,很多学者和工业界人士开始思考如何系统地管理和组织软件开发过程,从而引发了软件工程学科的诞生。
3. 软件工程的发展阶段3.1 第一阶段:初级阶段在软件工程的初级阶段,主要关注软件开发过程的管理和组织。
相关的方法和工具开始出现,结构化分析和设计方法、需求工程等。
这些方法和工具一定程度上解决了软件开发过程中的问题,使软件项目能够更加规范和可控。
3.2 第二阶段:成熟阶段随着软件工程学科的不断发展,软件开发过程开始更加复杂和庞大。
此时,软件工程的焦点逐渐转向了软件质量保证和项目管理。
瀑布模型、敏捷开发等方法被引入,通过迭代和持续集成来提高软件项目的交付质量和效率。
3.3 第三阶段:前沿阶段如今,软件工程正处于前沿阶段。
随着云计算、大数据、等技术的快速发展,软件系统变得更加复杂和智能化。
软件开发的规模和复杂度呈指数级增长,传统的软件工程方法已经无法满足现代软件开发的需求。
许多新的技术和方法,如DevOps、微服务架构等被提出,以应对快速变化的软件开发环境。
4. 软件工程对现代软件开发的意义软件工程在现代软件开发中发挥着至关重要的作用。
软件工程提供了一套科学化、系统化的方法和工具,使开发人员能够更加高效地管理和组织软件开发过程。
软件工程关注软件质量和项目管理,确保软件产品能够按时、按质地交付给客户,并满足客户的需求。
软件工程不断创新和进化,引入新的技术和方法,以应对软件开发日新月异的挑战。
5. 结论软件工程作为一门独立的学科,对现代软件开发有着重要的意义。
它的发展经历了初级阶段、成熟阶段和前沿阶段,不断为软件开发提供新的方法和工具。
软件工程的发展促进了软件开发过程的规范化和效率提升,使得软件项目能够更好地满足客户需求。
软件工程的发展历程和未来趋势

软件工程的发展历程和未来趋势软件工程是一门涉及计算机科学、数学、管理学、工程学等多种学科的综合性学科。
其主要目的是通过系统的方法论来设计、开发、维护以及管理软件系统。
软件工程是计算机科学的一个重要分支领域,也是现代社会发展中必不可少的工具之一。
本文将简要介绍软件工程的发展历程以及未来趋势。
一、软件工程的起源软件工程最初是由一位叫做Fritz Bauer的德国数学家在1968年提出的。
他当时在一篇名为“Software Engineering”的论文中提出了这个概念。
当时的计算机软件行业还没有形成规范的开发模式和管理体系,软件开发过程中的不严谨性和混乱性常常导致软件质量不佳以及项目进度延误。
软件工程的提出便是为了解决这些问题。
二、软件工程的发展软件工程从诞生以来,经历了不断的发展壮大。
其中最重要的里程碑包括:1. 大规模软件工程理论的形成。
20世纪60年代和70年代,计算机行业取得了快速的发展。
随着软件程序的日益复杂和臃肿,人们开始意识到需要更加规范和系统的方法来管理大型软件项目。
2. 软件开发中的标准化。
软件开发过程中涉及的工具和技术繁多,由此而出现的管理流程也非常庞杂。
为此,人们开始定期制定和调整软件开发的标准化规范,如CMMI、ISO 9001等。
3. 面向对象技术的应用。
20世纪80年代末,面向对象技术随着Java语言的兴起开始引领软件开发的潮流,成为软件工程领域的重要发展方向。
面向对象技术具有可重复性强、可扩展性强、可维护性强等优势,使得软件开发的效率和质量得到了极大的提高。
4. 敏捷软件开发方法的兴起。
传统的瀑布式软件开发模式被认为过度注重文档和计划,开发效率低下,敏捷软件开发则强调快速反馈、快速迭代、弹性变更等开发方法。
近年来,敏捷软件开发方法逐渐成为主流,与传统瀑布式开发模式共同推动了软件开发方法和思维的革新。
三、未来趋势未来,软件工程将面临更加复杂和多元化的挑战。
以下是未来软件工程发展的趋势:1. 人工智能的应用。
软件工程的发展历程与趋势

软件工程的发展历程与趋势软件工程作为一门与计算机科学密切相关的学科,随着时代的发展和技术的进步,经历了数十年的演变和发展。
本文将追溯软件工程的历程,探讨了其发展的主要阶段,并展望了未来软件工程的趋势。
1. 软件工程的起源软件工程的概念最早出现在20世纪60年代。
当时,人们开始意识到开发和维护大型软件项目存在的问题,如进度延迟、软件质量难以保证等。
于是,学者们开始思考如何运用工程原理和方法来管理软件开发过程,这就是软件工程诞生的背景。
2. 阶段一:传统软件开发模型在软件工程的早期,传统的瀑布模型被广泛采用。
该模型将软件开发过程分为需求分析、设计、编码、测试和维护等阶段,每个阶段按序进行。
然而,这种线性的开发模型存在一些问题,如无法适应需求变化、测试和维护过程较为困难等。
3. 阶段二:敏捷开发方法为了应对传统模型的不足,敏捷开发方法兴起。
敏捷开发强调快速响应需求变化、紧密合作和持续交付。
它采用迭代和增量的方式来开发软件,将需求细化为用户故事,实现快速迭代和反馈。
由此,敏捷开发方法极大地提高了软件开发的灵活性和客户满意度。
4. 阶段三:软件工程工具和环境的发展随着计算机技术的快速发展,软件工程领域涌现出众多工具和环境,用于辅助软件开发过程。
比如,集成开发环境(IDE)为开发者提供了编码、调试和测试等功能;版本管理工具和自动构建工具提高了团队的协作效率;自动化测试工具和性能分析工具帮助开发者提高软件质量等。
这些工具和环境的出现,使软件工程取得了显著的进步。
5. 阶段四:云计算和大数据随着云计算和大数据技术的崛起,软件工程也面临全新的挑战和机遇。
云计算提供了弹性和可扩展的计算资源,使得软件开发能够更好地应对高并发和大规模的需求。
大数据技术则使软件工程能够处理和分析海量的数据,从中挖掘出有价值的信息。
因此,软件工程师需要适应这些新技术,并掌握相关的开发和管理方法。
6. 未来趋势:人工智能和物联网在未来,软件工程将继续朝着人工智能和物联网方向发展。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程发展概述摘要:本文简单介绍了软件工程。
分别从软件工程的定义、发展历程、现在发展动态以及未来发展趋势做出简单分析,使我对软件工程的过去、现在和未来有了进一步的了解和认识。
关键词:定义;过程;动态;趋势1.引言随着计算机的广泛应用,信息产业悄然兴起,越来越成为经济发展中的先导产业。
目前,信息化已从整体上引导着世界经济和社会发展,信息处理技术已成为现代社会生产力、竞争力的关键,具有十分重要的战略位置。
这一期间,计算机软件以其独特的知识形态,广泛渗透于国名经济建设的各行各业中,对信息采集、信息处理、信息交换以及生产过程、社会生活的变革产生了深远的影响。
计算机软件,尤其是软件工程作为软件产业的依托学科已经成为信息技术的核心之一。
2.软件工程概述软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
工程是将理论和知识应用于实践的科学。
就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。
其中应用了计算机科学、数学和管理科学。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
2.1软件工程定义软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。
概括地说,软件工程是指导计算机软件开发和维护的工程学科。
根据各位学者、组织机构给出的软件工程定义,我简单的将软件工程理解为:软件工程是按照工程学的管理方式,有组织、有计划的在成本限额以内按时完成开发且能在实际机器上可靠有效地运行的软件,并不断对软件进行优化、维护及管理的工作过程。
2.2软件工程方法和技术30多年来, 软件工程的研究和实践取得了长足进展,尽管目前离彻底解决“软件危机”还有相当的差距(对是否能彻底解决目前也存在争议),但软件工程方法对软件产业的发展还是起到了很大的推动作用。
自软件工程兴起以来,陆续出现了结构化程序设计技术、计算机辅助软件工程( CASE )、面向对象语言和方法、软件过程及软件过程改善研究等一系列成果,并应用到实践中。
目前软件工程中主要使用的方法和技术可以分成技术和管理两类。
2.2.1 技术的角度主要包括:软件开发范型、软件设计方法。
软件开发范型是关注软件工程的方向,即如何才是正确的编写满足需求的软件;软件设计方法关注软件工程的“途径”,即研究怎样完成从高层概念模型到低层概念模型的映射。
2.2.2工程管理的角度参考其他成熟工作领域中的做法,软件工程也研究管理学理论在软件工程中的应用。
软件项目管理方法抛弃了以前个人的作坊式开发方式,根据管理科学的理论,结合软件产品开发的实际,保证工程化系统开发方法的顺利实施。
为了使软件项目的能够按照预定的成本、进度、质量顺利完成,软件管理方法对成本、人员、进度、质量、风险、文档等进行分析、管理和控制。
进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的开发能力越高,表明这个企业的软件生产越趋向于成熟,其开发风险也越小。
软件项目管理已经是公认的软件开发企业的核心竞争力之一。
3. 软件工程的发展历程随着人类的发展,计算机作为第三次科技革命的主要代表产品,极大的推动了人类社会发展。
与此同时,软件作为现代计算机的重要支撑部分,伴随着计算机的发展不断发展。
3.1 软件工程的发展历史20世纪六七十年代,计算机硬件技术有了很大的发展,为计算机的广泛应用创造了条件,并要求软件与之相适应。
当时的软件生产具有个体化、作坊式特点,开发工具落后,开发平台单一,程序设计语言功能差。
尤其是软件维护工作,耗费大量的人力、物力和计算机资源,许多程序的个体化特性使得它们无法修改和维护。
有的干脆废弃原有系统不用,从头编写新软件。
与此同时,软件的规模越来越大,结构越来越复杂,软件管理和维护困难,开发费用不断增加。
这种软件开发技术、开发工具和生产方式落后的状况与计算机应用迅速普及和对软件的需求日益增加形成了尖锐的矛盾,由此而产生了“软件危机”。
软件危机的产生使计算机软件专家认识到软件开发必须以新的方法作指导,原有的软件开发方法必须改变,他们决定把工程技术的思想引入软件开发领域,使软件开发走上工程学科的途径,以摆脱日益严重的软件危机。
目前,软件工程经过50多年的发展,已经深入到社会生活的各个层面,可以说,现代社会生活,几乎在每一个方面都涉及到软件工程。
3.2 软件工程的发展过程几十年来软件工程的发展大致如下几个阶段:3.2.1第一阶段——软件危机20世纪60年代,计算机的应用范围得到较大扩展,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。
因此出现了所谓的“软件危机”。
软件危机主要表现在:①软件开发费用和进度失控。
②软件的可靠性差。
③生产出来的软件难以维护。
④软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所提供的巨大潜力。
概括来说,软件危机包含两方面问题:①如何开发软件,以满足不断增长,日趋复杂的需求;②如何维护数量不断膨胀的软件产品。
为解决这个问题,1968年NATO会议上提出把软件开发从“艺术”和“个体行为”向“工程”和“群体协同工作”转化。
其基本思想是应用计算机科学理论和技术以及工程管理原则和方法,按照预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程。
从此也诞生了一门新的学科——软件工程。
3.2.2 第二阶段——传统软件工程为迎接软件危机的挑战,人们进行了不懈的努力。
这些努力大致上是沿着两个方向同时进行的。
一是从管理的角度,希望实现软件开发过程的工程化。
这方面最为著名的成果就是提出了大家都很熟悉的“瀑布式”生命周期模型。
后来,又有人针对该模型的不足,提出了快速原型法、螺旋模型、喷泉模型等对“瀑布式”生命周期模型进行补充。
另外,确定了一些重要文档格式的标准,包括变量、符号的命名规则以及原代码的规范式。
第二个方向,侧重与对软件开发过程中分析、设计的方法的研究。
这方面的重要成果就是在70年代风靡一时的结构化开发方法,即面向过程的开发或结构化方法以及结构化的分析、设计和相应的测试方法。
3.2.3第三阶段——现代软件工程软件不是纯物化的东西,其中包含着人的因素,于是就有很多变动的东西,不可能像理想的物质生产过程,基于物理学等的原理来做。
早期的软件开发仅考虑人的因素,传统的软件工程强调物性的规律,现代软件工程最根本的就是人跟物的关系,就是人和机器(工具、自动化)在不同层次的不断循环发展的关系。
面向对象的分析、设计方法(OOA和OOD)的出现使传统的开发方法发生了翻天覆地的变化。
随之而来的是面向对象建模语言(以UML为代表)、软件复用、基于组件的软件开发等新的方法和领域。
与之相应的是从管理的角度提出的软件过程管理。
即关注于软件生存周期中所实施的一系列活动并通过过程度量、过程评价和过程改进等涉及对所建立的软件过程及其实例进行不断优化的活动使得软件过程循环往复、螺旋上升式地发展。
迄今为之,为了达到最初设定的目标,软件工程界已经提出了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干问题,而软件工程正式从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
4.软件工程的发展现状4.1 软件工程技术现状及发展趋势软件工程自二十世纪六十年代末诞生以来,经历40余年的坎坷,它已经成为计算机科学领域一门综合性和工程性的独立学科。
现在以及未来若干年内,软件工程的研究热点将主要集中在软件重用和软件构件技术、中间件、标准化技术等方面。
4.1.1软件重用和软件构件技术软件重用和软件构件技术是软件工程领域长期研究的一个主要热点问题。
其中,构件是核心和基础,重用是方法和手段。
构件的重用,能使软件开发人员减少甚至摆脱写代码的低效工作,致力于更高层次的搭构件,把更多精力放在问题定义过程,促使问题空间与求解空间尽可能一致。
在构件和构架模型中,有必要把构件与构件间的交互作用相分离,以提高构件的独立性和可重用性。
业界目前关注的问题主要集中在构件和构架的清晰准确地描述、构件库的管理、可重用构件和构架的获取等方面。
目前流行的NET和J2EE采用两种不同的构件模型和技术,NET采用COM/COM+模型,J2EE采用EJB模型。
4.1.2中间件技术软件重用及构件化应用开发和运行需要有不同层次的中间件平台的支撑。
中间件兴起以后,构件技术才逐渐走向现实。
构件必须在中间件平台上才能发挥作用,只有在适当的中间件平台上,软件才有可能被抽象和隔离,最终成为构件。
因此中间件技术近年来成为软件工程关注的焦点和软件业发展的关键。
中间件按功能大致可分为5类:数据库访问、远程过程调用、通信、事务处理和分布对象中间件。
中间件技术将对软件重用和软件构件技术的发展带来深刻的影响。
4.1.3标准化技术标准化既是软件重用和软件构件技术发展的需要,也是其必然结果,同时还是软件产业健康发展的强力支撑。
软件工程标准包括软件标准和软件过程标准。
而软件过程标准的建立是软件工程成熟的重要标志。
最近几年,国际软件工程标准化活动异常活跃,产生了从企业到国际一级的各种各样的标准,对世界软件产业产生了巨大的规范化引导作用。
目前,国际流行两大软件工程标准框架。
一个是国际标准化组织(ISO/IEC)的软件工程和系统工程标准分技术委员会提出的软件工程标准框架。
另一个是美国国防部提出的软件工程标准指南。
4.2 软件产业的发展现状4.2.1国外软件产业发展现状20世纪90年代以来,世界软件产业获得了飞速发展。
据IDC统计,全球软件业的年均增长率一直保持在15%~20%之间。
目前,全球软件业已经开始进入成熟期。
产业分工较为明确,产业成熟度较高,成本已成为企业竞争的首要因素。
发达国家的软件企业从降低成本考虑,逐步集中力量发展核心业务;利用全球的人力资源,将大量非核心业务向发展中国家转移。
国外很多项目的开发都是基于一些图形化的东西来做的,他们的目的是尽量少写代码甚至不写代码。
代码能够通过图形化的方式自动生成,这样的一个好处就是如果用户的需求变化或者业务逻辑发生变化,我们需要做的就是对图形表示的调整,然后重新自动生成代码,这也就是国外开发很注重对项目的概念和逻辑分析的原因。
他们的重点是把业务规则和需求用图形化的方式表现出来,然后通过CASE 工具自动生成代码。
所以当国人还在不停的开发一个又一个的MIS 工具的时候,国外已经把很多精力放到了CASE 工具的制作上。
4.2.2 中国软件产业的发展状况近期国内信息化投资呈现加速趋势,软件产业整体发展较为平稳,得益于持续的政策支持和资金投入,软件服务化进程将不断加快,推动了软件产业结构继续调整优化。