软件工程概述


让我们先了解一下软件工程的代表。该术语是由两个词语,软件与工程.

软件i不仅仅是一个程序代码. 程序是一个可执行的代码,它提供了一些计算的目的. 软件被认为是集合可执行的程序代码,相关库和文档的. 软件,当一个特定的要求,取得了被称为 软件产品.

工程 另一方面,工程是所有有关开发的产品,使用良好定义的,科学的原理和方法.

软件工程

软件工程 软件工程是一门工程分支使用定义良好的科学原理,方法和程序开发软件产品.软件工程的结果是一个高效,可靠的软件产品.

定义

IEEE定义了软件工程:

(1) 一个系统的纪律,量化的开发,运行和维护软件的应用;这是工程软件的应用.

(2) 对方法的研究是在上述声明.

Fritz Bauer,德国计算机科学家,定义了软件工程的:

软件工程是合理的工程原理建立和使用,以获得经济上的软件,是可靠的和真实的机器有效地工作.

软件演化

运用软件工程的原理和方法开发软件产品的过程被称为 软件演化. 此处包含的软件的初始开发及维护和更新,直到所需的软件产品的开发,其满足预期需求.

软件演化

进化开始从需求收集过程。经过开发人员创建的目的软件的原型,并显示给用户,以获得他们的反馈意见,在软件产品开发的早期阶段。用户提出的变化,在这几个连续的更新和维护不断变化太大。这个过程改变了原来的软件,直到所需的软件来完成.

甚至在用户已所需的软件在手,推进技术和不断变化的需求迫使软件产品相应地改变。重新从头开始创建软件和走一对单用的要求是不可行的。唯一可行的和经济的解决方案是,以更新现有的软件,以便它匹配的最新要求.

软件演化规律

Lehman 给了软件演化规律。他把软件分为三个不同的类别:

  • S型(静态型) - 这个软件根据定义的 规范和解决方案原理工作. 我们可以理解编码前两溶液和方法。 S型软件至少受到改变,因此这是最简单的了。例如,用于数学计算的计算器程序.

  • P-型 (实用型) - 这个软件有多个 程序. 它的定义是什么程序可以做.在这个软件中,规范可以被描述,但该溶液是不明显瞬间。例如,游戏软件.

  • E-型(嵌入型) - 该软件的工作原理密切按照真实世界 环境的要求. 这种软件具有演化程度高,在现实世界中的情况很多变化都是存在的,例如法律,税收等。例如,网上交易软件

E型软件演化

Lehman 给了八项法律为E型软件演化 -

  • 不断变化 - E型软件系统必须继续适应现实世界的改变,否则它逐渐变得不太有用

  • 日益复杂 - 作为E型软件系统的演化,它的复杂性增大的倾向,除非工作完成后,以维持或降低

  • 熟悉的养护 - 必须了解有关该软件,它是如何开发的,所以它被以这种方式等。在任何成本开发,它必须被保留,以实现系统的变化

  • 持续增长 - 为了使E型系统,旨在解决一些业务问题,实现改变其大小根据业务的生活方式的改变增长

  • 降低质量 - 在质量上E型软件系统拒绝,除非严格管理和适应不断变化的经营环境

  • 反馈系统 - E型软件系统构成的多环,多级反馈系统,并且必须被视为这样可以成功地修改或改进

  • 自我调节 - E型系统的演化过程是自我调节与产品和工艺方法的分布是正常的

  • 组织稳定性 - 在不断变化的E型系统的平均有效的全球活动率是不变的在产品的生命周期

软件范式

软件范例参考方法和步骤,在设计的软件,该软件被执行。有提出许多方法,并在今天的工作,但我们需要看到在软件工程这些范式立场。这些可以组合成各种类别,虽然每个这些被包含在彼此:

软件范式

编程模式是软件设计模式的一个子集是进一步的软件开发模式的一个子集。

软件开发范式

这种模式被称为软件工程范例,所有有关软件开发工程的概念被应用。它包括各种研究和需求收集,这有助于软件产品来构建。 –

  • 需求收集
  • 设计软件
  • 编程

软件设计模式

这一模式是软件开发的一部分,包括 –

  • 设计
  • 保养
  • 编程

编程范式

这一模式是密切相关的软件开发编程方面。这包括 –

  • 编码
  • 测试
  • 整合

软件工程的需求

软件工程的需要,因为较高的利率变化的用户需求及环境上的软件工作.

  • 大型软件 - 这是比较容易建立一堵墙,而不是一所房子或建筑,同样,作为软件的规模变大的工程有步骤,给它一个科学的过程.

  • 可扩展性 - 如果软件过程中没有建立在科学和工程的概念,它会更容易重新创建新的软件,而不是扩大现有的.

  • 成本 - 硬件行业已经显示出其能力和庞大的制造具有低了下去,他的价格的计算机和电子硬件。但是,软件的成本仍然很高,如果合适的工艺不适合.

  • 动态性 - 高成长和适应软件性质取决于在用户工作环境。如果软件的性质总是在变化,新的改进需要在现有的进行。这是软件工程起到了很好的作用.

  • 质量管理 - 更好的软件开发过程提供更好质量的软件产品.

优秀的软件特性

一个软件产品可以判断通过其功能和多少用户友好。  这个软件必须满足以下功能:

  • 操作
  • 过渡
  • 保养

一个精心设计和制作的软件预计将有以下几个特点:

操作

这告诉我们如何以及软件的操作工作。它可以在被测定:

  • 财政预算案
  • 可用性
  • 效率
  • 正确性
  • 功能
  • 可靠性
  • 安全
  • 安全性

过渡

这方面是重要的,当软件从一个平台转移到另一个:

  • 可移植性
  • 互操作性
  • 可重用性
  • 适应性

保养

这讲述一个软件以及如何有能力维护自己的每一个变化的环境中:

  • 模块化
  • 可维护性
  • 灵活性
  • 可扩展性

总之,软件工程是计算机科学的一个分支,它使用须出示有效的,持久的,可扩展的,定义良好的工程概念在预算和时间的软件产品.

Advertisements