01-第一章.ppt
文本预览下载声明
人民邮电出版社 第一篇 软件工程与软件过程 第1章 软件工程 1.1 软件危机 1.2 软件工程 1.3 小 结 1.1 软件危机 计算机软件指计算机系统中的程序及其文档 程序是计算任务的处理对象和处理规则的描述 任 务:以计算机为处理工具的任务都是计算任务 处理对象:数据(如数据、文字、图形、图像、声音等,它们只是表示,而无含义)或信息(数据及有关的含义) 处理规则:一般指处理的动作和步骤。程序必须装入计算机内才能工作 文档是为了便于了解程序所需的阐明性资料,文档一般是给人看的,不一定装入计算机 软件的特点: 软件是一种逻辑实体,而不是有形的系统元件,其开发成本和进度难以准确地估算 软件是被开发的或被设计的,它没有明显的制造过程,一旦开发成功,只需复制即可,但其维护的工作量大 软件的使用没有硬件那样的机械磨损和老化问题 其它特点: 软件的开发和运行常受到计算机硬件的限制,对计算机硬件有着不同程度的依赖性 软件的开发至今尚未完全实现自动化 软件成本相当昂贵 相当多的软件工作涉及到社会因素 软件的分类 系统软件:属于计算机系统中最靠近硬件的一层,其它软件一般都通过系统软件发挥作用,它与具体的应用领域无关。如操作系统、编译程序等。 支撑软件:支持软件的开发和维护的软件。如数据库管理系统、网络软件、软件开发环境等。 应用软件:特定应用领域专用的软件。如实时软件、嵌入式软件、科学和工程计算软件、事务处理软件、人工智能软件等。 1.1 软件危机 1.1.1 计算机系统的发展历程 所谓计算机系统就是指适当地组织在一起的一系列系统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标。 迄今为止,计算机系统已经经历了四个不同的发展阶段。 60年代中期以前,是计算机系统发展的早期时代。 从60年代中期到70年代中期,是计算机系统发展的第二代。 “软件作坊” 计算机系统发展的第三代从20世纪70年代中期开始,并且跨越了整整10年。 在计算机系统发展的第四代已经不再看重单台计算机和程序,人们感受到的是硬件和软件的综合效果。 1.1.2 软件危机的含义 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。即: 许多软件项目不能满足客户的要求 许多软件项目超出预算和时间安排 这些问题绝不仅仅是不能正常运行的软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题。 具体来说,软件危机主要有以下一些典型表现。 对软件开发成本和进度的估计常常很不准确。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。这种现象降低了软件开发组织的信誉。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。 (2) 用户对“已完成的”软件系统不满意的现象经常发生。软件开发人员常常在对用户要求只有模糊的了解,甚至对所要解决的问题还没有确切认识的情况下,就匆忙着手编写程序。软件开发人员和用户之间的信息交流往往很不充分,“闭门造车”必然导致最终的产品不符合用户的实际需要。 (3) 软件产品的质量往往靠不住。软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量问题。 (4) 软件常常是不可维护的。很多程序中的错误是非常难改正的,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需要在原有程序中增加一些新的功能。“可重用的软件”还是一个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类似的或基本类似的软件。 (5) 软件通常没有适当的文档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式的”(即和程序代码完全一致的)。软件开发组织的管理人员可以使用这些文档资料作为“里程碑”,来管理和评价软件开发工程的进展状况;软件开发人员可以利用它们作为通信工具,在软件开发过程中准确地交流信息;对于软件维护人员而言,这些文档资料更是必不可少的。缺乏必要的文档资料或者文档资料不合格,必然给软件开发和维护带来许多严重的困难和问题。 (6) 软件成本在计算机系统总成本中所
显示全部