浅谈软件危机

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

缺乏正确的理论指导 • 缺乏有力的方法学和工具 方面的支持。由于软件开 发不同于大多数其他工业 产品,其开发过程是复杂 的逻辑思维过程,其产品 极大程度地依赖于开发人 员高度的智力投入。由于 过分地依靠程序设计人员 在软件开发过程中的技巧 和创造性,加剧软件开发 产品的个性化,也是发生 软件开发危机的一个重要 原因。
浅谈软件危机
主讲人:王琨
目录
• 含义 • 表现 • 产生原因 • 解决途径 • 危机实例
什么是软件危机?
• 软件危机(Software Crisis) 是计算机软件 在它的开发和维护过程中所遇到的一系列 严重问题。概括地说,主要包含两方面的 问题:如何开发软件,怎样满足对软件日 益增长的需求;如何维护数量不断膨胀的 已有软件。
软件开发规模越来越大
• 随着软件开发应用范围的增广, 软件开发规模愈来愈大。大型 软件开发项目需要组织一定的 人力共同完成,而多数管理人 员缺乏开发大型软件开发系统 的经验,而多数软件开发人员 又缺乏管理方面的经验。各类 人员的信息交流不及时、不准 确、有时还会产生误解。软件 开发项目开发人员不能有效地、 独立自主地处理大型软件开发 的全部关系和各个分支,因此 容易产生疏漏和错误。
软件开发复杂度越来越高
• 软件开发不仅仅是在规模上快 速地发展扩大,而且其复杂性 也急剧地增加。软件开发产品 的特殊性和人类智力的局限性, 导致人们无力处理“复杂问 题”。所谓“复杂问题”的概 念是相对的,一旦人们采用先 进的组织形式、开发方法和工 具提高了软件开发效率和能力, 新的、更大的、更复杂的问题 又摆在人们的面前。
危机实例
• IBMOS/360操作系统被认为是一个典型的案例。 到现在为止,它仍然被使用在360系列主机中。 这个经历了数十年,极度复杂的软件项目甚至产 生了一套不包括在原始设计方案之中的工作系统。 缺乏必要的文档资料或者文档资料不合格,将给 软件开发和维护带来许多严重的困难和问题。 IBM公司开发OS/360系统,共有4000多个模块, 约100万条指令,投入5000人/年,耗资数亿美 元,结果还是延期交付。在交付使用后的系统中 仍发现大量(2000个以上)的错误。佛瑞德· 布 鲁克斯在随后他的大作《人月神话》中曾经承认, 在他管理这个项目的时候,他犯了一个价值数百 万美元的错误。
主要表现
• 软件开发进度难以预测 • 软件开发成本难以控制 • 用户对产品功能难以满足 • 软件产品质量无法保证 • 软件产品难以维护 • 软件缺少适当的文档资料 软件=程序+文档+数据
产生原因
用户需求不明确
• 在软件开发出来之前,用户自 己也不清楚软件开发的具体需 求; • 用户对软件开发需求的描述不 精确,可能有遗漏、有二义性、 甚至有错误; • 在软件开发过程中,用户还提 出修改软件开发功能、界面、 支撑环境等方面的要求; • 软件开发人员对用户需求的理 解与用户本来愿望有差异;
wenku.baidu.com 解决途径
• 软件工程诞生于60年代末期,它作为一个新兴的工程学科,主要研究 软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、 方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低 软件生产成本 、改进软件产品质量、提高软件生产率水平的目标。 软件工程学从硬件工程和其他人类工程中吸收了许多成功的经验,明 确提出了软件生命周期的模型,发展了许多软件开发与维护阶段适用 的技术和方法,并应用于软件工程实践,取得良好的效果。 • 在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件 项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具 有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程 的集成化软件支援环境,以期从管理和技术两方面解决软件危机问题。 • 此外,人工智能与软件工程的结合成为80年代末期活跃的研究领域。 基于程序变换、自动生成和可重用软件等软件新技术研究也已取得一 定的进展,把程序设计自动化的进程向前推进一步。在软件工程理论 的指导下,发达国家已经建立起较为完备的软件工业化生产体系,形 成了强大的软件生产能力 。软件标准化与可重用性得到了工业界的 高度重视,在避免重用劳动,缓解软件危机方面起到了重要作用。
相关文档
最新文档