1.软件的定义:
软件的的定义包含程序,数据和文档三个方面,即在运行中能提供所希望的功能与性能的程序,是程序能够正确运行的数据及其结构和描述软件研制过程和方法所使用的文档。
2.软件的特点
(1)是逻辑实体,不是物理实体
(2)生产过程主要是研制
(3)具有复杂性,开发和运行受计算机系统的限制
(4)成本昂贵,开发方式尚未完全摆脱手工生产方式
(5)软件不存在磨损和老化问题,但是存在退化问题
3.软硬件产品失效率曲线的理解
失效率的概念:失效率是工作到某时刻尚未失效的产品,在该时刻后单位时间内发生失效的概率。
首先在开始时刻软硬件产品都存在磨合调整的时间所以发生失效的概率较大,之后软硬件产品都进入平稳使用时期,此时软硬件产品的失效概率都比较低。平稳期过后由于软件产品不存在磨碎和老化所以失效率基本保持不变,但是硬件产品的存在磨损和用坏所以失效率增加。
4 软件的分类
软件产品按功能分可分为系统软件,支撑软件和应用软件三种;按版权分可分为商业软件,共享软件,自由(免费)软件和工友领域软件四种;按照工作方式不同可分为实时软件,分时软件,交互式软件和批处理软件四种;按照销售方式不同可分为订制软件和产品软件两种。
5.软件危机表现
(1)生产率不能满足客观需求
(2)软件产品不能满足用户实际需要
(3)软件产品质量低下可维护性差
(4)软件开发进度计划与成本难以估计
6.随着开发阶段的推移,改正一个问题需要付出的代价越来越大。
7.软件工程的定义严格描述(IEEE定义):
软件工程是将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。
8.软件工程的通俗定义:
软件工程是知道软件开发和维护的一门工程学科。它采用工程的概念、原理、技术和方法、把经过实践检验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,用于开发和维护软件。
综合7和8可知软件工程即是工程软件即工程实践与软件。
9.软件工程三要素:方法、工具和过程。方法是指怎么做,工具可以理解为生产资料,过程即是方法与工具结合实现生产出软件产品的目的。
10.软件工程的基本原理
(1)用分阶段的生存周期计划严格管理。
(2)坚持进行阶段评审(原因见软件危机的(4))
(3) 实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应该能清楚地审查
(6)开发小组成员应该少而精
(7)承认不断改进软件工程实践的必要性。