第一章 概述 1、软件的概念 在运行中能提供所希望的功能和性能的指令集(即程序) 使程序能够正确运行的数据结构 描述程序研制过程和方法使用的文档 2、软件危机 1)软件的开发和维护过程所遇到的一系列问题 如何开发软件,以满足日益增长的需求 如何维护数量不断膨胀的已有软件 2)典型表现: ① 对软件开发成本和进度的估计常常很不准确 ② 用户对“已完成的”软件系统不满意的现象经常发生 ③ 软件产品质量往往靠不住 ④ 软件常常是不可维护的 ⑤ 软件通常没有适当的文档资料 ⑥ 软件成本在计算机系统总成本中所占比例逐年上升 ⑦ 软件开发生产率提高的速度跟不上需求 3、软件危机产生的原因 ① 与软件本身的特点有关 ② 逻辑部件,可见性差 客观上软件维护比较困难 ③ 规模庞大,复杂性高 需要人员协作和科学管理 ④ 与软件开发与维护的方法不正确有关 ⑤ 错误的观念、方法和技术(由一体化开发而来的) 软件的生命周期:定义、开发、使用、维护、废弃 编码只是软件开发中的一部分(10%~20%) 不同阶段的修改代价不同 ⑥ 忽视软件需求分析的重要性,过早地开始编码工作 越早开始写程序,完成时间往往越长 ⑦ 轻视软件维护的重要性 ⑧ 维护费用占软件总投资的55%~70% 4、消除危机的途径 ① 对软件有一个正确的认识 ② 软件=程序+方法+规则+数据+文档(IEEE'83) ③ 软件开发应该组织良好、管理严密、协调配合 ④ 推广使用成功的技术和方法 ⑤ 开发和使用更好的软件工具 ⑥ 软件工程:管理+技术 5、软件工程的产生 软件危机 -> 分析根源 -> 解决途径 -> 软件工程 6、软件工程的含义 软件工程是指导计算机软件开发和维护的一门工程学科。 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 7、软件工程的基本原理 ① 用分阶段的生命周期计划严格管理 ② 坚持进行阶段评审 大部分错误是在编码之前造成的 ③ 实行严格的产品控制 配置管理 ④ 采用现代程序设计技术 ⑤ 结果应能清楚的审查 提高“可见性”;量化标准 ⑥ 开发小组的人员应少而精 ⑦ 承认不断改进软件工程实践的必要性 8、软件工程方法学(传统方法学、面向对象方法学) 三要素:方法、工具和过程: 9、传统方法学 1) 特点 ① 生命周期方法或结构化范型 ②...