什么是软件工程? 定义、基础、特征

什么是软件工程?

软件工程被定义为分析用户需求,然后设计、构建和测试满足这些需求的软件应用程序的过程。

让我们看看软件工程的各种定义:

  • IEEE 在其标准 610.12-1990 中将软件工程定义为应用系统的、规范的、可计算的方法进行软件的开发、运行和维护。
  • Fritz Bauer 将其定义为“建立并使用标准工程原理。它可以帮助您经济地获得可靠且可在真实机器上高效运行的软件”。
  • Boehm 对软件工程的定义是“将科学知识实际应用于计算机程序的创意设计和构建。它还包括开发、操作和维护这些程序所需的相关文档。”

为什么要进行软件工程?软件危机及其解决方案

什么是软件危机?

  • 1960 世纪 XNUMX 年代末,许多软件项目失败了。
  • 许多软件超出了预算。输出的软件不可靠,维护成本高昂。
  • 较大的软件很难维护并且维护成本相当高。
  • 许多软件不能满足客户日益增长的需求。
  • 随着硬件能力的增强,软件项目的复杂性也会增加。
  • 与生成新软件的能力相比,对新软件的需求增长更快。

所有上述问题都导致了“软件危机”。

解决方案

解决问题的办法是将无组织的编码工作转变为软件工程学科。这些工程模型帮助公司简化运营并交付满足客户要求的软件。

  • 1970 世纪 XNUMX 年代末,软件工程原理得到广泛的应用。
  • 1980 世纪 XNUMX 年代,软件工程过程实现自动化,计算机辅助软件工程 (CASE) 蓬勃发展。
  • 1990 世纪 9001 年代,人们越来越重视项目质量标准和流程的“管理”方面,就像 ISO XNUMX

软件工程为何如此受欢迎?

以下是软件工程流行的重要原因:

为什么软件工程如此受欢迎

  • 大型软件 – 在现实生活中,建造一堵墙比建造一栋房子或建筑物要容易得多。同样,随着软件规模的扩大,软件工程可以帮助您构建软件。
  • 可扩展性 如果软件开发过程基于科学和工程概念,则更容易重新创建新的软件来扩展现有软件。
  • 适应性:每当软件过程基于科学和工程时,就可以很容易地借助软件工程重新创建新的软件。
  • 成本- 硬件行业已经展示了它的技能,巨大的制造能力降低了计算机和电子硬件的成本。
  • 动态自然– 软件始终在不断发展和适应。这取决于用户的工作环境。
  • 质量管理:提供更好的软件开发方法来提供优质的软件产品。

软件工程与其他学科的关系

这里,软件工程与其他学科的关系:

  • 计算机科学: 由于电气工程主要依赖于物理学,因此为软件提供了科学基础。
  • 管理科学: 软件工程是一项劳动密集型的工作,需要技术和管理双重控制,因此在管理科学中有着广泛的应用。
  • 经济学: 在这个领域,软件工程可以帮助你进行资源估算和成本控制。必须开发计算系统,并在给定的预算内定期维护数据。
  • 系统工程: 大多数软件都是更大系统的组成部分。例如,工业监控系统中的软件或飞机上的飞行软件。软件工程方法应该应用于此类系统的研究。

软件工程的挑战

以下是软件工程师面临的一些关键挑战:

  • 在航天、航空、核电站等安全关键领域,软件故障的代价可能是巨大的,因为生命受到威胁。
  • 市场对快速周转时间的需求不断增加。
  • 处理新应用程序日益复杂的软件需求。
  • 多样性的软件系统应该相互沟通。

软件产品的属性

任何软件产品的特性都包括产品在安装和使用时所显示的特性。

它们不是产品所提供的服务,而是与产品的动态行为和产品的使用相关。

这些属性的示例如下:

Efficiency, reliability, robustness, maintainability, etc. 

然而,这些特性的相对重要性在不同的软件系统之间是不同的。

产品特性 描述
可维护性 软件应该不断发展以满足客户不断变化的需求。
责任感 可靠性包括多种特性。可靠的软件在系统发生故障时不应该造成任何物理或经济损失。
效率 软件应用程序应该过度使用内存和处理器周期等系统资源。
可用性 软件应用程序应具有特定的用户界面和文档。

优化上述属性非常具有挑战性。例如,提供更好的UI可能会降低系统效率。

好软件的特点

任何软件都应根据其提供的功能以及帮助您使用它的方法来判断。

每个软件都必须满足以下属性:

  • Opera周志武
  • 过渡期的
  • 维护

以下是软件专业人员开发的优秀软件的一些重要特征

Opera周志武

此特性让我们了解软件在操作中的运行情况,可以通过以下方式进行衡量:

  • 预算
  • 效率
  • 可用性
  • 责任感
  • 正确性
  • Functionality
  • 安全
  • 安全性

过渡期的

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

  • 互操作性
  • 雷乌斯能力
  • 便携性
  • 适应性

维护

这方面讨论了软件在快速变化的环境中适应自身的能力:

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

总结

  • 软件工程是分析用户需求,然后设计、构建和测试满足该需求的软件应用程序的过程。
  • 使用软件工程的重要原因是:1)大型软件,2)可扩展性3)适应性4)成本和5)动态性质。
  • 1960 世纪 XNUMX 年代末,许多软件超出了预算。因此,它提供的软件不可靠,维护成本高昂。
  • 1970 世纪 XNUMX 年代末,软件工程原理得到广泛的应用。
  • 软件工程概念 1)计算机科学 2)管理科学 3)系统工程和 4)经济学
  • 市场对快速周转时间的需求不断增加是软件工程领域面临的最大挑战。
  • 1)可维护性、2)可靠性、3)效率和4)可用性是软件产品最重要的属性。
  • 优秀软件的三个最重要的特征是 1) Opera2)过渡阶段3)维护阶段。