软件工程基础知识总结(期末复习)
一、软件
软件的演变历程
- 软件是一个发展的概念。
不同时期对软件的解释有所不同,这是由于软件的功能、开发方式以及使用方式在不断发生变化,因而对它的解释也在发展。
软件是什么
- 软件是一种工具
(1)科学计算
(2)商业计算和数据处理
(3)计算和信息处理 - 软件的核心是程序
(1)软件 = 程序 文档 数据
(2)编程是软件开发的核心活动,一个软件工程师必须首先能够很好的编程。
软件的分类
- 按软件作用划分
- 按软件功能划分
- 按软件规模划分
- 按软件工作方式划分
- 按软件服务对象的范围划分
- 按软件应用领域划分
二、软件危机
软件危机的定义:
- 在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机的主要特征
- 软件不满足用户需求
(1)软件需求分析不充分,开发出的系统与实际需求有距离 - 软件质量难于保证
(1)软件质量保证技术(审查、复审、程序正确性证明和测试)还没有坚持不懈地应用到软件开发的全过程
(2)投入使用后经常出故障 - 软件缺乏文档资料
(1)软件不仅仅是程序,还应有一整套与程序代码完全一致的文档资料 - 软件难以维护
(1)维护难度较大
(2)维护成本过高 - 软件开发生产率无法满足人们对软件的生产要求
(1)不能充分利用现代计算机硬件提供的巨大潜力 - 软件开发成本和进度估计不准确
(1)开发成本超出预算
(2)实际进度一再拖延 - 软件的成本不断提高
(1)硬件下降:微电子技术的进步和生产自动化程度的提高
(2)软件上升:需要大量人力、软件规模和数量不断扩大
软件工程是什么
- 软件工程是一种工程活动
- 软件工程是科学性、实践性与工艺性并重的
软件工程层次图
软件工程的目标
- 低成本,高质量
软件工程的基本原则(Boehm七条)
- 分阶段计划、严格管理
- 阶段审查
- 产品控制
- 采用现代程序设计技术
- 结果清晰审查
- 开发小组小而精
- 承认不断更新、改进是必要的
软件生命周期
- 需求开发(需求工程师>>>>>软件解决方案)
(1)需求获取:理解应用背景
(2)需求分析:明确问题和目标
(3)需求定义:定义软件解决方案
(4)需求验证:确保能够解决问题和满足目标
(5)需求管理 - 软件设计(软件设计师>>>>>软件构建方案)
(1)软件总体设计
1)将软件系统划分为不同的子系统或模块,确定各子系统和模块的功能
2)明确各子系统和模块对外交互方式与接口,满足需求并符合重要的设计约束。
3)软件总体设计原型
4)软件总体设计说明
(2)软件详细设计
1)在总体设计的基础上,定义重要的过程、类方法、数据结构或者复杂算法,满足该模块所担负的职责
2)软件详细设计说明
(3)人机交互设计
1)建立系统与用户之间的交互机制 - 软件构造(程序员>>>>>软件产品)
- 软件测试
- 软件交付
(1)安装与部署
(2)培训用户并提供文档支持
(3)项目总结和项目评价 - 软件维护
(1)移除缺陷
(2)适应环境变化
(3)提高软件质量
(4)满足新的需求
赞 (0)