软件、软件工程定义<br>
软件定义: 软件=程序+数据+文档
程序:按事先设计的功能和性能需求执行的指令序列。
数据:是程序能正常操纵信息的数据结构。
文档:与程序开发、维护和使用有关的图文材料。
软件的性质:复杂性、难以描述性、不可见性、变化性。
软件工程定义
将<font color="#fdb813">系统化</font>的、<font color="#fdb813">科学化</font>的、<font color="#fdb813">可量化</font>的方法应用于软件的<font color="#fdb813">开发、运行和维护</font>,即针对软件的工程应用。以及对上述应用方法的<font color="#fdb813">研究</font>。
软件工程三个要素:方法、工具、过程。
<font color="#fdb813">软件危机定义、表现</font>
软件工程危机定义:在计算机软件的<font color="#fdb813">开发和维护</font>过程中所遇到的一系列<font color="#fdb813">严重问题</font>。
软件危机的具体表现(<font color="#fdb813">周期长</font>、<font color="#fdb813">成本高</font>、<font color="#fdb813">质量差</font>、<font color="#fdb813">维护难</font>)<br>
开发成本和进度估计不准,开发进度难以控制<br>
用户对“已完成的”软件系统不满意<br>
软件质量和可靠性差强人意
软件常常是不可维护的
软件通常没有适当的文档资料
软件成本逐年上升
软件开发生产率滞后于硬件和计算机应用普及
<font color="#fdb813">软件工程原则</font>
使用<font color="#fdb813">阶段</font>性生命周期计划的<font color="#fdb813">管理</font>
进行<font color="#fdb813">连续</font>的<font color="#fdb813">验证</font>
保证严格的<font color="#fdb813">产品控制</font>
使用<font color="#fdb813">现代编程工具/工程实践</font>
用更<font color="#fdb813">好</font><font color="#381e11">更</font><font color="#fdb813">少</font>的<font color="#fdb813">人</font>
保持<font color="#fdb813">过程改进</font>
保持清晰的<font color="#fdb813">责任分配</font>