什么是软件工程: 用来制造软件的工程 化的 方法 软件的特性: 软 件 是 抽 象 的 , 而 不 是 物 理 的 —看 不 见 摸 不 到 软 件 是 极 其 复 杂 的 软 件 的 手 工 开 发 方 式 、智力密集型 对计算机硬件 依赖性 软 件 是 被开 发 或设计的 , 而 不 是 被制造的 软 件 不 会磨损和老化, 但维护困难 软 件 的 高成本 软件危机的表现: •对软件开发成本和进度的估算很不准确,甚至严重拖期和超出预算; •无法满足用户需求,导致用户很不满意; •质量很不可靠,经常失效; •难以更改、调试和增强; •没有适当的文档; •软件成本比重上升; •软件开发生产率跟不上计算机应用迅速深入的趋势。 什么是软件神话,它的危害: 软件神话(software myths):关于软件及其开发过程的一些说法被人盲目相信 • 影响到几乎所有的角色:管理者、顾客、其他非技术性的角色、具体的技术人员; • 看起来是事实的合理描述(有时的确包含真实的成分)、符合直觉,并经常被拿来做宣传; • 实际上误导了管理者和技术人员对软件开发的态度,从而引 发了严重的问 题 ; 软件工程面 临 的挑 战 有哪 些: • 遗留系统(Legacy sy stem) • 多 年 以前 开发出来的软件,在 长 期使 用过程中 不断 的被人修 改; • 日 益 增加 的维 护 成本和修 改困 难已 经成为 令 人头 疼 的问 题 ; • 例 如 :Y2K问 题 ; • 高可信软 件 开 发 • 关注软件的正确性、可靠性、安全性、保密性; • 以形式化方法为发展趋势,通过保证模型的可信度来保证系统的可信度; • 异 构 系 统 的 集 成 与 互 操 作 • 采用不同技术开发出来的系统,运行在不同的硬件平台和操作系统上,它们之间需要进行自动的数据交换; • 更 快 的 交 付 时 间 • 顾客要求快速响应需求,而软件开发的周期难以有效缩短; On demand (随需应变) • 软 件 开 发 方 式 的 变 化 • Web 2.0、open sou rce • 基于 Internet 的协同开发模式 软件工程的范围和目标: • 范围: • 软 件 开 发 过 程 (设 计 、开 发 、运行、维护) • 软 件 开 发 中应遵循的 原则和管理技术 • 软 件 开 发 中所采用的 技术和工具 • 目标: • 高质量 • 按时 交 付 • 控制成 本 • 满...