北京大学《软件工程》慕课笔记
软件工程概论
软件的定义及特点
- 软件的定义:计算机系统中的程序和文档 —— 张效祥主编. 计算机科学技术百科全书第2版 (不仅仅是程序,还有与其整个生命周期相配套的各类文档,需求分析文档、设计规约、测试阶段的测试计划等等)
- 软件的特点:无形的逻辑实体、设计开发出而非生产制造出、定制开发的、复杂的(涉及的行业、领域广)、易于复制
- 软件的种类
- 系统软件:最靠近硬件(编译程序、操作系统、网络软件)
- 支撑软件:支撑软件的开发、维护与运行的软件(软件开发环境(环境数据库、接口软件、工具组)、中间件(系统软件和应用软件之间))
- 应用软件:特定领域专用的软件
强调文本 强调文本
软件工程的起源和概念
- 机器码编写程序——软件——冯诺依曼首先提出用流程图描述计算机的运行过程,人们认识到程序设计的独特性
- 软件开发的三个阶段“
- 个人程序时期
- 硬件昂贵,软件完全作为硬件附属
- 硬件执行的程序功能单一
- 软件为具体应用、特定硬件定制
- 凭程序员个人技艺、经验进行程序设计
- 主要开发语言:机器语言、汇编语言
- 负责程序开发、运行、维护全流程,私人化的软件环境(?)
- 软件作坊时期
- 多人分工合作
- 需对项目开发做有效管理
- 出现若干高级程序设计语言,如 FORTRAN, COBOL
- 软件工程时期 (1970年代初至今)
- “软件危机”:软件复杂度增大,质量差,可靠性难以保证,成本难控,开发进度难控,可维护性差(例如IBM 360系列机)
- 软件工程概念提出
- 1968年,NATO北大西洋公约组织在联邦德国举行的关于软件开发的会议上,首次提出了软件工程的术语
- 目的:倡导以工程原理、原则、方法进行软件开发,解决软件危机
- 个人程序时期
- 软件工程的定义(读一读)
一门交叉学科