软件工程概述
- 格式:ppt
- 大小:122.50 KB
- 文档页数:26


软件工程发展概述
计算机工业发达国家在发展软件的过程中曾经走过不少弯路,受过许多的挫折,至今仍然经受着“软件危机”的困扰。人们开发幼稚软件的能力大大落后于计算机硬件日新月异的进展和社会对计算机软件不断增长的需求,这种状况已经严重妨碍了计算机技术的进步。
为了摆脱软件危机,一门新的学科产生并发展起来—软件工程,几十年来软件工程的发展大致如下几个阶段。
第一阶段—软件危机。
20世纪中期,计算机刚被从军用领域转向民用领域使用,那时编写程序的工作被视同为艺术家的创作。当时的计算机硬件非常昂贵,编程人员追求的是如何在有限的处理器能力和存储器空间约束下,编写出执行速度快、体积小的程序。程序中充满了各种各样让人迷惑的技巧。这时的软件生产非常依赖于开发人员的聪明才智。
到了20世纪60年代,计算机的应用范围得到较大扩展,对软件系统的需求和软件自身的复杂度急剧上升,传统的开发方法无法适应用户在质量、效率等方面对软件的需求。这就是所谓的“软件危机”。
早期出现的软件危机主要表现在:
① 软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。
②软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。
③生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。进入80年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。
软件危机不仅没有消失,还有加剧之势。主要表现在:
①软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。然而软件开发需要大量人力,软件成本随着软件规模和数量的剧增而持续上升。从美、日两国的统计数字表明,1985年度软件成本大约占总成本的90%。
1
软件工程发展概述
摘要:本文简单介绍了软件工程。分别从软件工程的定义、发展历程、现在发展动态以及未来发展趋势做出简单分析,使我对软件工程的过去、现在和未来有了进一步的了解和认识。
关键词:定义;过程;动态;趋势
1.引言
随着计算机的广泛应用,信息产业悄然兴起,越来越成为经济发展中的先导产业。目前,信息化已从整体上引导着世界经济和社会发展,信息处理技术已成为现代社会生产力、竞争力的关键,具有十分重要的战略位置。这一期间,计算机软件以其独特的知识形态,广泛渗透于国名经济建设的各行各业中,对信息采集、信息处理、信息交换以及生产过程、社会生活的变革产生了深远的影响。计算机软件,尤其是软件工程作为软件产业的依托学科已经成为信息技术的核心之一。
2.软件工程概述
软件工程(Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。工程是将理论和知识应用于实践的科学。就软件工程而言,它借鉴了传统工程的原则和方法,以求高效地开发高质量软件。其中应用了计算机科学、数学和管理科学。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
2.1软件工程定义
软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义。概括地说,软件工程是指导计算机软件开发和维护的工程学科。
根据各位学者、组织机构给出的软件工程定义,我简单的将软件工程理解为:软件工程是按照工程学的管理方式,有组织、有计划的在成本限额以内按时完成开发且能在实际机器上可靠有效地运行的软件,并不断对软件进行优化、维护及管理的工作过程。
2.2软件工程方法和技术 2
30多年来, 软件工程的研究和实践取得了长足进展,尽管目前离彻底解决“软件危机”还有相当的差距(对是否能彻底解决目前也存在争议),但软件工程方法对软件产业的发展还是起到了很大的推动作用。自软件工程兴起以来,陆续出现了结构化程序设计技术、计算机辅助软件工程 ( CASE )、面向对象语言和方法、软件过程及软件过程改善研究等一系列成果,并应用到实践中。目前软件工程中主要使用的方法和技术可以分成技术和管理两类。
本栏目责任编辑:谢媛媛软件设计开发ComputerKnowledgeandTechnology电脑知识与技术第6卷第21期(2010年7月)
软件工程与UML关系概述
刘小海
(北京航空技术研究中心,北京100076)
摘要:随着计算机技术的发展,软件工程技术已经进入了一个新的阶段。人们开始使用面向对象的技术,同时UML融合了多种面向
对象建模方法以及多种软件工程方法,成为软件系统设计建模的主要工具。该文从软件工程概述、UML概述以及UML在软件工程
的应用为基础,对软件工程与UML管理进行概述。
关键词:软件工程;UML;建模;关系
中图分类号:TP312文献标识码:A文章编号:1009-3044(2010)21-5774-02
OverviewofRelationshipbetweenSoftwareEngineeringandUML
LIUXiao-hai
(BeijingUniversityofAeronauticsTechnologyResearchCenter,Beijing100076,China)
Abstract:Withthedevelopmentofcomputertechnology,softwareengineeringtechnologyhasenteredanewstage.Peoplebegantouseofobject-orientedtechnology,andavarietyoffusionUMLmodelingmethodofobject-orientedsoftwareengineeringmethodsandsoft-waresystem,themaintooldesignmodeling.Thisoverviewofsoftwareengineering,UMLoverviewandUMLinsoftwareengineering,basedontheapplicationofsoftwareengineeringandUMLmanagementaresummarized.
1 软件工程概述 软件工程是研究软件开发技术和软件项目管理的一门工程学科,从工程化的角度来指导软件开发、测试和项目管理等活动。 本章主要讲授软件工程的基本概念和知识,内容包括软件的概念和特点、软件危机、软件工程的概念及原理、软件生存周期及其模型等,本章的内容是学习以后各章的基础。 1.1 软件的概念和特点 1.1.1 计算机系统的构成及实现 计算机系统由硬件系统及软件系统构成,硬件系统的实现靠硬件工程,软件系统的实现靠软件工程,如图1-1所示。 图1-1 计算机系统的构成及实现 1.1.2 软件的概念 软件(Software)是计算机系统中与硬件相互依存的另一部分,它包括程序、数据及其相1 计算机系统 硬件系统 软件系统 硬件工程 软件工程 软件工程概论 2 1 Chapter 关文档的完整集合。 软件=程序+数据+文档 程序是为实现软件的功能和性能要求而编写的指令序列。 数据是指使程序能够正常操纵信息的数据结构。 文档是与程序开发、维护和使用有关的图文资料。 1.1.3 软件的特点 与计算机硬件相比,计算机软件具有如下特点: (1)软件是一种逻辑实体而非物理实体,因而软件具有抽象性。 (2)软件的开发是人智力的高度发挥,而不是传统意义上的硬件制造。 (3)软件可能被废弃,但不会用坏,不存在磨损、消耗问题。 (4)软件的开发和运行常常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。 (5)软件的开发至今尚未完全摆脱手工艺的开发方式,使软件的开发效率受到很大限制。 (6)软件开发是一个复杂的过程。主要表现在实际问题的复杂性和程序逻辑结构的复杂性两个方面。 (7)软件成本非常高昂。 1.1.4 计算机软件的分类 计算机软件一般分为系统软件和应用软件两大类。 1.系统软件 系统软件为计算机使用提供最基本的功能,可分为操作系统和支撑软件,其中操作系统是最基本的软件。系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。 操作系统是用来管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。 支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境(SDE)。它主要包括环境数据库、各种接口软件和工具组;包括一系列基本的工具,比如编译器、数据库管理、存储器格式化、文件系统管理、用户身份验证、驱动管理、网络连接等方面的工具。著名的软件开发环境有IBM公司的Web Sphere、微软公司的等。 2.应用软件 系统软件并不针对某一特定应用领域,而应用软件则相反,不同的应用软件根据用户和软件工程概述 第1章