第一章绪论软件 :是计算机系统中与硬件相互依存的另一部分,它是包括程序 ,数据及其相关文档的完整集合。软件工程 :是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。主要是两个问题:1. 如何开发软件 ,怎样满足对软件的日益增长的需求。 2. 如何维护数量不断膨胀的已有软件。主要表现:1. 对软件开发成本和进度的估计不准确2. 用户不满意 3. 软件质量不高、可靠性差4. 软件常常不可维护、错误难以改正5. 缺乏适当的文档资料6. 软件成本占系统总成本的比例逐年上升 7. 软件开发速度跟不上计算机发展速度产生软件危机的原因1. 与软件本身的特点有关 :软件不同于硬件 ,它是计算机系统的逻辑部件而不是物理部件。在写出程序代码并在计算机运行之前,软件开发过程的进展情况较难衡量,软件开发的质量也较难评价。因此,管理和控制软件开发过程相当困难。2. 软件不易于维护 :(1 软件维护通常意味着改正或修改原来的设计,客观上使软件较难维护。 (2 软件不同于一般程序 ,它的规模大 ,不易于维护。3. 在软件开发过程中 ,或多或少地采用了错误的方法和技术。4. 对用户需求没有完整准确的认识,就匆忙着手编写程序。解决软件危机的途径 :⑴研制新一代体系结构的智能计算机,以改变软件的实现方式 ,降低软件的复杂性。目前尚未研制成功。⑵采用工程化、规范化的开发方法来指导软件的开发 :这就是产生 “软件工程学 ”的背景 ,并在 70年代形成了结构化分析、设计方法。 ⑶在求解方法上采用面向对象的软件设计方法。即在软件开发中,以客观世界的问题空间入手进行软件设计,以减少求解方法空间与客观世界问题空间存在的 “鸿沟 ”。“生命周期法 ”的起源 :软件工程采用的 “生命周期法 ”,就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务 ,然后再逐步完成每个阶段的任务. 生命周期划分的原则 :任务的性质尽可能相同 ,从而降低每个阶段任务的复杂性,简化不同阶段之间的联系,有利于软件开发过程的组织管理。生命周期的划分 :软件生命周期一般分为 :软件定义 (问题定义、可行性研究、需求分析、软件开发 (总体设计、详细设计、编码和测试、软件使用...