软件工程-第一章(概论)
一、计算机软件
1.1 什么是软件
- 软件是计算机程序以及运行计算机系统可能需要的相关文档和数据。
软件 = 程序 + 数据 + 文档
1.2 软件的本质
- 软件是客观世界中问题域与求解域的具体描述,它实质上是客观事物的一种反映,是知识的“提炼”和“固化”。
软件 = 知识 + 程序 + 数据 + 文档
1.3 软件的特点
- 软件是一种逻辑实体。
- 软件的使用没有硬件那样的机械磨损和老化问题。
- 软件的开发和运行受到计算机硬件的限制,对计算机硬件有着不同程度的依赖性。
- 软件的开发至今尚未完全实现自动化。
1.4 软件的分类
系统软件:编译程序和操作系统等。
支持软件:中间件
应用软件
1.4.1按工作方式划分
实时处理软件
分时软件
交互式软件
批处理软件
1.4.2 按软件服务对象的范围划分
项目软件
产品软件
1.4.3按使用的频度划分
一次使用
频繁使用
1.4.4 按软件失效的影响进行划分
高可靠性软件
一般可靠性软件
1.5 软件语言
需求定义语言
功能性语言
设计性语言
程序设计语言
文档语言
二、软件工程:软件生命周期的六个阶段
软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护。
三、软件过程:CMM(能力成熟度模型)
四、软件过程模型:瀑布模型、演化模型、喷泉模型
软件过程模型也称软件开发模型或软件生存周期模型。
4.1 瀑布模型
4.2 演化模型
* 增量模型
增量模型融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征。
增量模型强调每一个增量都发布一个可运行的产品。
* 原型模型
原型的类型:探索型、实验型、演化型。
原型的使用策略:废弃策略、追加策略。
* 螺旋模型
4.3 喷泉模型
喷泉模型是一种支持面向对象开发的模型。
体现迭代和无间隙特征。
4.4 基于构件的开发模型
利用预先包装好的软件构件(包括组织内部开发的构件和现存商品化构件COTS)来构造应用系统。
领域工程的目的是构建领域模型、领域基准体系结构和可复用构件库。
应用系统工程的目的是使用可复用构件组装应用系统。
4.5 形式方法模型
形式化方法是建立在严格数学基础上的一种软件开发方法。
形式化方法模型是采用形式化的数学方法将系统描述转换成可执行程序。