让我们先了解一下软件工程的含义。该术语是由两个词语组成的,软件与工程。
软件 不仅仅是一个程序代码。程序是一个可执行的代码,它提供了一些计算的目的。 软件被认为是集合可执行的程序代码,相关库和文档的软件。当满足一个特定的要求,就被称为软件产品。
工程 是所有有关开发的产品,使用良好定义的,科学的原理和方法。
软件工程 是一门工程分支使用定义良好的科学原理,方法和程序开发软件产品。软件工程的成果是一个高效,可靠的软件产品。
IEEE对于软件工程的定义:
(1) 将系统、规范、可量化的方法应用于软件的开发、运行和维护;也就是说,工程在软件中的应用。
(2) 研究方法如上陈述。
Fritz Bauer(德国计算机科学家)对软件工程的定义:
软件工程是建立和使用合理的工程原理,以便经济地获得可靠且在真是机器上有效工作的软件。
运用软件工程的原理和方法开发软件产品的过程被称为软件演化。此处包含的软件的初始开发及维护和更新,直到所需的软件产品的开发,其满足预期需求。
演化从需求收集过程开始。之后,开发人员创建预期软件的原型,并将其展示给用户,以便在软件产品开发的早期阶段获得他们的反馈意见。用户提出的建议,在这几个连续的更新和维护不断变化太大。这个过程改变了原来的软件,直到所需的软件来完成。
即使用户手中已有所需的软件,先进的技术和不断变化的需求迫使软件产品做出相应的改变。从头开始重新创建软件并与需求一对一是不可行的。唯一可行且经济的解决方案是更新现有的软件,使其符合最新要求。
Lehman 给了软件演化规律。他把软件分为三个不同的类别:
Lehman 给了八项法律为E型软件演化:
软件范例参考方法和步骤,在设计的软件,该软件被执行。有提出许多方法,并在今天的工作,但我们需要看到在软件工程这些范式立场。这些可以组合成各种类别,虽然每个这些被包含在彼此:
编程模式是软件设计模式的一个子集是进一步的软件开发模式的一个子集。
这种模式被称为软件工程范例,所有有关软件开发工程的概念被应用。它包括各种研究和需求收集,这有助于软件产品来构建。
这一模式是软件开发的一部分,包括:
这一模式是密切相关的软件开发编程方面。这包括:
软件工程的需要,因为较高的利率变化的用户需求及环境上的软件工作。
一个软件产品可以判断通过其功能和多少用户友好。这个软件必须满足以下功能:
一个精心设计和制作的软件预计将有以下几个特点:
这告诉我们如何以及软件的操作工作。它可以在被测定:
这方面是重要的,当软件从一个平台转移到另一个:
这讲述一个软件以及如何有能力维护自己的每一个变化的环境中:
总之,软件工程是计算机科学的一个分支,它使用定义明确的工程概念来产生高效、持久、可扩展、预算内和准时的软件产品。