软件工程软件工程第 1章软件工程的实质本章要点
一、软件工程概述
二、软件工程的知识体系
三、软件工程的三段论
四、软件工程模型一、软件的概念
1、软件
是计算机系统中与硬件相互依存的另一部分,
它包括程序 (Program),数据 (Data)和文档
(Document)。
程序是按照事先设计的功能和性能要求执行的指令序列;可以在任意规模和体系结构的计算机中执行;
数据使程序能够正常操纵信息的数据结构;例如数字、文本、图形、视频、音频等信息数据;
文档是与程序开发维护和使用有关的各种图文资料。
一、软件的概念
2、软件的特征
1)软件是被开发或设计的,而不是传统意义上被制造的。
2)软件不会“磨损”,但是会退化
3)软件产业正在向基于构件的组装前进,但大多数软件仍然是定制的。
3、软件的应用
系统软件、实时软件、商业软件、工程和科学计算软件、嵌入式软件、个人计算机软件、基于 Web的软件、
人工智能软件一、软件的概念
4、软件工程
是针对软件这一具有特殊性质的产品的工程化方法。软件工程涵盖了软件生存周期的所有阶段,并提供了一整套工程化的方法,来指导软件人员的工作。
二、软件产业的发展
起始于 20世纪中期,3个发展阶段
第一个阶段,20世纪 50年代到 20世纪 60年代。
程序设计阶段,个体手工劳动的生产方式。
第二个阶段是 20世纪 60年代到 20世纪 70年代。
成为软件设计阶段,小组合作的生产方式。
第三个阶段从 20世纪 70年代至今,称为软件工程时代,采用了工程化的生产方式。
软件危机
软件工程三、软件工程的三段论三、软件工程的三段论
三段论:一段论是“软件项目管理论”,
二段论是“软件项目开发论”,三段论是
“软件过程改进论”。这三段论组成一个稳固的三角形。
软件开发过程是软件人员生产软件的过程
管理过程是项目管理者规划软件开发、控制软件开发的过程
过程改进相当于对软件开发过衡和软件管理过程的“工艺流程”进行管理和改进。
四、软件工程
1、软件工程的再定义
用工程化的方法指导实际的软件开发
IEEE的定义:软件工程是,(1)将系统化的、
严格约束的、可量化的方法应用于软件的开发、
运行和维护,即将工程化应用于软件。 (2)在 (1)
中所述方法的研究。
四、软件工程
2、过程、方法和工具
软件工程是一种层次化的技术。
过程层是基础
方法层 — 如何做
工具层 — 对过程和方法提供自动或半自动的支持四、软件工程
3、软件工程的一般过程
如果不考虑应用领域、项目规模和复杂性,与软件工程相关的工作可分为三个一般阶段。
1)定义阶段 —,做什么”
2)开发阶段 —,如何做”
3)支持阶段 — 关注“变化”,纠正错误,进行适应性和增强型的修改五、软件过程模型
1、软件的开发策略
软件开发策略包含过程、方法和工具三个层次和软件工程的一般过程。软件开发策略常常被称为过程模型。
问题解决环五、软件过程模型
2、软件过程模型
常见的软件工程模型有:线性模型,V模型、
增量式模型、螺旋模型、快速原型模型等。
五、软件过程模型
1)瀑布模型五、软件过程模型
瀑布模型适用的项目
在项目开始前,项目的需求很明确
在项目开始前,解决方案也很明确
类似的项目如:
公司的财务系统
库存管理系统
短期、小型项目五、软件过程模型
2) V模型五、软件过程模型
V模型适用的项目
在项目开始前,项目的需求很明确
在项目开始前,解决方案也很明确
对系统的性能安全很严格的项目
类似的项目如:
航天飞机等
公司的财务系统五、软件过程模型
3)原型模型五、软件过程模型
原型模型适用的项目
在项目开始前,项目的需求不明确
需要减少项目需求的不确定性
类似的项目如:
确定显示界面
第一次开发的产品,验证可行性五、软件过程模型
4)增量式模型五、软件过程模型
增量模型适用的项目
项目开始,明确了需求的大部分,但是需求可能会发生变化
对于市场和用户把握不是很准,需要逐步了解
对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。
五、软件过程模型
5)螺旋式模型五、软件过程模型
螺旋模型适用的项目
风险是主要的制约因素
不确定因素和风险限制了项目进度
用户对自己的需求也不是很明确
需要对一些基本的概念进行验证
可能发生一些重大的变更
项目规模很大
项目中采用了新技术小结
一、软件工程概述
二、软件工程的知识体系
三、软件工程的三段论
四、软件工程模型