<aside> 💬 定义

  1. 应用系统的、规范的、可量化的方法来开发、运行和维护软件,即:将工程应用到软件
  2. 对1中各种方法的研究。 </aside>

1.1 软件工程是一种工程活动

所有工程学科的共同特性:

  1. 具有解决实际问题的动机
  2. 应用科学知识指导工程活动
  3. 以成本效益比有效为基本条件
  4. 构建机器或事物
  5. 以服务人类为最终目的

1.2 软件工程的动机

软件工程要解决的实际问题范围广泛,没有行业和领域限制 ,需要客户和用户的紧密合作

实践情况也一再表明,客户和用户的有效参与是软件工程成功的必要因素。

1.3 软件工程是科学性、实践性和工艺性并重的

Untitled

软件工程的指导知识是 “工艺”、实践方法/原则和科学知识并立,软件工程行为既有科学性,又有实践性,还有工艺性。

1.4 软件工程的产品是基于虚拟计算机的软件方案

软件工程并不会在物理结构上构建计算机,而是创建软件方案,描述所需软件系统的特征和行为,然后把软件方案通过编程移植到通用的计算机上面,计算机就会神奇地表现出软件方案所描述的特征和行为

软件方案是指由模块、对象、函数、数据结构、数据类型等抽象软件实体组成的复杂软件构建方案。

通过编程和编译活动,就可以将软件方案安装到通用计算机 。软件工程最终使用安装了软件方案的通用计算机解决实际问题 。

<aside> 💬 开发的两个阶段

  1. 分析和设计
  2. 编码、调试和编译

分析和设计是软件开发的根本(essential) 任务, 编码等活动是软件开发的次要(accidental)任务。

</aside>