`
实学实战
  • 浏览: 16004 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

什么是软件工程?

 
阅读更多

今天将“软件测试和质量专栏”改为“软件工程专栏”,意味着自己的博客将扩展到一个更广的范围,虽然核心还围绕测试和质量,但包括软件需求工程、系统设计和项目管理等。所以特写一篇文章,作为开头和备忘。


什么是软件工程?

从上世纪90年代初起,计算学科(Computing)的发展远远超越了计算机科学的边界,形成了计算机科学、计算机工程、软件工程、信息系统与信息技术等若干独立学科。计算机工程从电子工程学科中分离出来,旨在研究计算机硬件的相关工程问题,而软件工程从计算机科学中的一个学科方向发展成为与之并重的一门独立学科,重点研究如何以系统的、可控的、高效的方式开发和维护高质量软件的问题。

1.软件工程的定义

软件工程学科诞生后,人们为软件工程给出了不同的定义,例如最早的定义是由F.L. Bauer给出的,即“软件工程是为了经济地获得能够在实际机器上高效运行的、可靠的软件而建立和应用一系列坚实的软件工程原则”。而美国梅隆卡耐基大学软件工程研究所(SEI)给出的定义则是软件工程是以工程的形式应用计算机科学和数学原理,从而经济有效地解决软件问题。但目前普遍使用的软件工程定义是由IEEE给出的,即软件工程是将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护。

软件工程概念实际存在两层含义,从狭义概念看,软件工程着重体现在软件过程中所采用的工程方法和管理体系,例如,引入成本核算、质量管理和项目管理等,即将软件产品开发看作是一项工程项目所需要的系统工程学和管理学。从广义概念看,软件工程涵盖了软件生命周期中所有的工程方法、技术和工具,包括需求工程、设计、编程、测试和维护的全部内容,即完成一个软件产品所必备的思想、理论、方法、技术和工具。

2.软件工程的内涵

软件工程学科包含为完成软件需求、设计、构建、测试和维护所需的知识、方法和工具。软件工程不局限在理论之上,更重要在实践上,能够帮助软件组织协调团队、运用有限的资源,遵守已定义的软件工程规范,通过一系列可复用的、有效的方法,在规定的时间内达到预先设定的目标。针对软件工程的实施,无论是采用什么样的方法和工具,先进的软件工程思想始终是最重要的。只有在正确的工程思想指导下,才能制定正确的技术路线,才能正确地运用方法和工具达到软件工程或项目管理的既定目标。

3.软件工程是一门交叉性学科

软件工程是一门交叉性的工程学科,它是将计算机科学、数学、工程学和管理学等基本原理应用于软件的开发与维护中,其重点在于大型软件的分析与评价、规格说明、设计和演化,同时涉及管理、质量、创新、标准、个人技能、团队协作和专业实践等。从这个意义上看,软件工程可以看作由下列3部分组成。

  • 计算机科学和数学用于构造软件的模型与算法;
  • 工程科学用于制定规范、设计范型、评估成本以及确定权衡等;
  • 管理科学用于计划、资源、质量、成本等管理。

例如,计算机辅助软件工程(Computer Aided Software Engineering,CASE)是一组工具和方法的集合,可以辅助软件生命周期各阶段进行的软件开发活动。CASE吸收了CAD(计算机辅助设计)、软件工程、操作系统数据库、网络和许多其他计算机领域的原理和技术。这个例子也体现了这一点——软件工程是学科交叉的、集成和综合的领域。


4.软件工程学科范围

如果从知识领域看,软件工程学科是以软件方法和技术为核心,涉及计算机的硬件体系、系统基础平台等相关领域,同时还要涉及一些应用领域和通用的管理学科、组织行为学科。例如,通过应用领域的知识帮助我们理解用户的需求,从而可以根据需求来设计软件的功能。 在软件工程中必然要涉及组织中应用系统的部署和配置所面临的实际问题,同时又必须不断促进知识的更新和理论的创新。为了真正解决实际问题,需要在理论和应用上获得最佳平衡。


原文(什么是软件工程?





分享到:
评论

相关推荐

    软件工程答案(未知版)

    4、 什么是软件工程?目标和内容? 答:用科学的原理和理论定义,开发、维护软件的学科。目标:及时交付、满足用的功能要求、 成本比较低、移植性好、可靠性高。内容:软件开发技术、软件开发管理。 5、 软件工程...

    [详细完整版]21软件工程.doc

    什么是软件工程?什么是软件工程化?软件和软件生产有哪些固有的特征? 2.分别说明软件开发方法与软件工具,软件技术与软件管理的项目关系。 3.软件工程设计软件生产的那些方面?为什么说软件工程是一门综合学科? 4...

    软件工程试卷

    1.什么是软件工程?软件工程的目的是什么?  答:软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。  目的:是在给定成本、进度的前提下,开发出具有可...

    软件工程课后参考答案 齐治昌主审,钱乐秋等编著

    1.4 什么是软件工程? 软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的。 1.5 软件工程基本原则 软件工程的基本原则包括: * ...

    《软件工程》课后习题答案

    4. 什么是软件工程?它的目标和内容是什么? 软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。软件工程的目标是成功的建造一个大型软件系统,包括付出较低的开发成本、面到要求的软件功能、取得...

    (软考软件设计师)软件工程习题200题.doc

    2、 什么是软件工程?包括哪些内容? 3、 软件生存周期包含哪些内容? 4、 软件开发模型有几种?各有什么特点? 5、 软件技术审查和管理复审的作用是什么? 6、 软件开发与写程序有什么不同? 7、 在软件开发的早期...

    自考软件工程课后习题答案

    4﹑什么是软件工程?它目标和内容是什么? 答:软件工程就是用科学的知识程和技术原理来定义,开发,维护软件的一门学科。 软件工程目标:付出较低开发成本;达到要求的功能;取得较好的性能;开发的软件易于移植;...

    软件工程习题附答案.doc

    什么是软件工程? 软件工程是开发、运行、维护和修复软件的系统方法。软件工程的目的是生产无故障的软件,并满足用户要求。 软件生命周期 软件生命周期可以分为三个时期:定义时期、开发时期和运行时期。GB 8567 ...

    软件工程英文版第八版

    2. **什么是软件工程?** 软件工程是一门学科,它系统地应用工程原则、方法和工具来设计、构建、测试和维护软件,以确保软件的质量、可维护性和经济性。 3. **软件工程与计算机科学的区别是什么?** 计算机科学侧重...

    软件工程期末考试试卷与题纲

    什么是软件工程? 软件工程是一门工程学科,涉及软件生产的各个方面,它既是一个创造的过程,又是一个逐步进行的过程,从最初的系统描述到使用后的系统维护。 软件工程定义: 鲍威尔(Fritz Bauer):“建立并使用...

    软件工程的软件工程原理.pptx

    #### 什么是软件工程? 软件工程是一门综合性很强的学科,它结合了计算机科学、工程学以及管理学等多个领域的知识和技术,旨在研究如何高效地开发和维护高质量的软件产品。其核心在于应用工程化的思想,通过一系列的...

    软件工程理论和实践 英文版

    为什么是软件工程? - **软件的重要性**:介绍软件在现代社会的重要地位以及对经济、社会的影响。 - **软件开发的难度**:探讨导致软件开发困难的各种因素,例如规模、复杂性、变更频率等。 - **软件开发流程概览*...

    软件工程试卷多套

    **2.1 什么是软件工程?** 软件工程是指采用工程的概念、原理、技术和方法来开发与维护软件,将经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护...

    软件工程导论第五版课后答案

    它是软件工程方法学不可或缺的一部分,与软件工程方法学的关系密切,因为软件工程方法学主要由软件过程、软件工具和人员三大部分组成。 在软件工程中,软件过程的重要性体现在以下几个方面: 1. **任务规划**:...

    软件工程 上课用的课件

    在第1章“什么是软件工程?”中,作者首先定义了软件工程的概念,指出它不仅仅是编写代码,而是一个解决复杂问题的过程。软件产品往往规模庞大、结构复杂,因此在开发过程中需要进行分析和综合两步。分析是将大问题...

    软件工程十天入门5(end)

    ### 一、什么是软件工程? **软件工程**是一门研究如何系统化、规范化、量化地进行软件开发、运行与维护的学科。其核心目标是提高软件质量、降低成本并确保软件项目能够按时完成。软件工程不仅涵盖了软件开发的技术...

    软件工程中的重要知识点笔记

    1、什么是软件工程?它的各种定义方式 2、软件生存周期的几个阶段及任务(ISO/IEC) 3、各类软件过程模型的特点及使用场景 4、CASE软件的概念和分类 5、什么是CMMI,英文含义,分几个过程 第二章 系统工程 1、可行性...

    [详细完整版]软件工程简答.txt

    什么是软件工程?? 软件工程是应用计算机科学、数学及管理科学等原理开发软件的过程。它借鉴传统工程的原则、方法,以提高质量、降低成本为目的。? 2.?功能内聚和顺序内聚各有什么特点?哪一个的内聚程度更高?? ...

    软件工程概述

    软件概述● 为什么需要软件工程? ● 什么是软件工程?

Global site tag (gtag.js) - Google Analytics