·软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。·
程序是按事先设计的功能和性能要求执行的指令序列。
数据是使程序能正常操纵信息的数据结构。
文档是与程序开发,维护和使用有关的图文材料。
软件危机
软件危机暴发于上个世纪六十年代末。
主要表现为:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。
软件工程定义
总之:
软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。
软件工程三个要素:工具、方法、过程
软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又可划分为若干个阶段。
软件定义时期
主要任务是解决做什么”的问题,即确定工程的总目标和可行性;导出实现工程目标应使肠能o策略及系统必须完成的功能;估计完成工程需要的资源和成本;制订工程进度表。
通常又分为3个阶段:问题定义、可行性研究和需求分析。
软件开发时期
主要任务是解决“如何做”的问题,即具体良评和实现在前一个时期定义的软件。
由概要设计、详细设计、编码和测试4个阶段组成。
软件运行维护时期
主要任务是使软件持久地满足用户的需要,通常有4类维护活动:
(1)改正性维护,也就是诊断和改正在使用过程中发现的软件错误;
(2)适应性维护,即修改软件以适应环境的变化;
(3)完善性维护,即根据用户的要求改进或扩充软
件,使它更完善;
(4)预防性维护,即修改软件为将来的维护活动预
先做准备。
瀑布模型的特点
阶段间具有顺序性和依赖性。必须等前一阶段的工作完成之后,才能开始后一阶段的工作;
前一阶段的输出文档就是后一阶段的输入文档。
瀑布模型的优点
(1)可强迫开发人员采用规范化的方法。
(2)严格地规定了每个阶段必须提交的文档。
(3)要求每个阶段交出的所有产品都必须是经过验证
的。
瀑布模型的缺点
(1)由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格说明与用户需求之间有差异,就会发生这种情况。
(2)瀑布模型只适用于项目开始时需求已确定的情况。
统一过程模型