软件危机与软件工程
软件危机与软件工程解析

软件危机与软件工程解析在当今数字化的时代,软件已经渗透到我们生活的方方面面,从智能手机中的各种应用程序,到企业的管理系统,再到医疗、交通等关键领域的控制软件。
然而,在软件的发展历程中,并非一帆风顺,曾经出现过被称为“软件危机”的困境。
与此同时,软件工程作为应对软件危机的解决方案应运而生。
要理解软件危机,我们首先得明确它的表现。
在过去,软件开发常常面临着严重的超期、超预算问题。
项目规划时预计几个月能完成的软件,可能拖到一两年还无法交付;原本预算几十万的项目,最终可能花费数百万还达不到预期效果。
这不仅给开发者带来巨大压力,也让用户和投资方感到失望。
软件质量的不可靠是软件危机的另一个突出问题。
许多软件在交付使用后频繁出现故障、错误,甚至导致系统崩溃,严重影响了用户的正常使用和工作效率。
比如,一些金融软件出现错误可能会导致巨大的经济损失,医疗软件的故障甚至可能危及患者的生命。
软件的维护难度大也是一大难题。
随着业务需求的变化和技术的更新,软件需要不断进行修改和升级。
但由于早期开发过程中的不规范和缺乏良好的设计,使得软件的维护变得异常困难,成本高昂。
那么,是什么导致了软件危机的产生呢?首先,软件开发的复杂性是一个重要因素。
软件系统的规模和功能日益增长,涉及的技术和领域越来越多,这使得开发过程变得异常复杂,难以掌控。
用户需求的不断变化也是一个关键原因。
在开发过程中,用户可能会提出新的需求或者改变原有的需求,这导致开发团队需要不断调整和修改软件,增加了开发的难度和成本。
软件开发人员之间的沟通不畅也会引发问题。
在一个大型软件开发项目中,涉及多个部门和不同专业的人员,如果沟通不顺畅,就容易出现理解偏差,导致开发工作出现错误和延误。
缺乏有效的管理和规范同样是导致软件危机的原因之一。
在软件开发过程中,如果没有明确的流程和规范,开发人员就可能随意编写代码,不注重软件的可维护性和可扩展性,从而导致软件质量下降。
为了解决软件危机,软件工程应运而生。
第一讲-软件工程概述(软件危机)

结论
总之,为了消除软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
课堂讨论
请针对一下几种观点发表自己的意见 编程高手不需要懂得软件工程,也能编出很好的软件。 拥有最后的开发工具和计算机就能编写优秀的软件。 软件开发进度落后,只要增加人员就能解决。
一、软件危机
1.1软件危机的介绍 什么是软件危机?
计算机软件的开发和维护过程所遇到的一系列严重问题.
软件危机的特征是什么?
对软件开发成本和进度的估计常常很不准确。 用户对“已完成的”软件系统不满意的现象经常发生。 软件产品的质量往往靠不住。 软件常常是不可维护的。 软件通常没有适当的文档资料。 软件成本在计算机系统总成本中所占的比例逐年上升。 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
(2)软件开发维护中的问题
图 引入同一变动付出的代价随时间变化的趋势
正确的规格说明
错误的规格说明
需求分析
设计
正确的设计
错误的设计
对错误说明的设计
编码
正确编码
对错误说明的编码
错误编码
对错误设计的编码
测试
正确功能
潜伏的错误
不可改正的错误
可改正的错误
(2)软件开发维护中的问题
错误认为:软件开发=程序编写 软件开发只要依靠个别编程高手就能完成 轻视软件维护 Biblioteka 100%0%1955
1970
1985
———— 以上列举的仅仅是软件危机的一些明显的表现,与软件开发和维护有关的问题远远不止这些
软件危机著名案例
第一讲.软件危机与软件工程

第一讲.软件危机与软件工程第一讲软件危机与软件工程在当今数字化的时代,软件已经成为我们生活和工作中不可或缺的一部分。
从智能手机上的各种应用程序,到企业的管理系统,再到国家的关键基础设施,软件的身影无处不在。
然而,在软件的发展历程中,并非一帆风顺,而是经历了诸多挑战和困难,其中最为突出的就是软件危机。
那么,什么是软件危机呢?简单来说,软件危机指的是在软件开发和维护过程中所遇到的一系列严重问题。
这些问题包括但不限于软件开发成本和进度的失控、软件质量的低下、软件的维护困难等等。
在过去,软件开发常常被视为一种个体化的艺术创作,缺乏规范的方法和流程。
开发人员往往凭借个人的经验和直觉来进行开发,这导致了软件开发的效率低下和质量不稳定。
而且,由于对软件需求的理解不够准确和全面,很多软件在开发完成后并不能满足用户的实际需求,需要进行大量的修改和返工,这不仅浪费了时间和资源,还严重影响了软件的交付进度。
此外,软件的规模和复杂度也在不断增加。
过去,一个简单的程序可能只有几百行代码,而现在,一些大型的软件系统可能拥有数百万甚至数千万行代码。
这种规模的增长使得软件开发和维护变得异常困难。
代码的复杂性导致了理解和修改的难度加大,容易引入新的错误,而且软件的测试和调试也变得更加耗时和费力。
软件危机给软件开发带来了巨大的困扰,严重制约了软件行业的发展。
为了解决这些问题,软件工程应运而生。
软件工程是一门致力于研究软件开发和维护的方法、技术和管理的学科。
它的目标是提高软件开发的效率和质量,降低开发成本,增强软件的可维护性和可扩展性。
软件工程强调采用规范化、系统化的方法来进行软件开发。
在软件开发的早期阶段,就需要对软件的需求进行详细的分析和定义,确保开发出来的软件能够真正满足用户的需求。
同时,软件工程还引入了一系列的开发模型,如瀑布模型、迭代模型、敏捷开发模型等,以适应不同类型和规模的软件项目。
在软件设计阶段,软件工程注重软件的架构设计和模块划分,通过合理的设计来提高软件的可维护性和可扩展性。
02333软件工程简答知识点

第一章绪论简述软件危机与软件工程的概念以及提出软件工程概念的目的。
201804 201810(1)软件生产率、软件质量远远满足社会发展的需求,成为社会、经济发展的制约因素,把这一现象称为软件危机;(2)软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科;(3)软件工程概念的提出是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的软件危机。
简述软件工程的概念与发展201404发展:60年代末—80年代初,主要围绕系统实现技术、软件质量和软件工程管理;80年代以来,主要表现为软件复用技术、软件生产管理的研究和实践。
简述计算机软件的概念,以及提出软件工程概念的目的。
201704 2016101.计算机软件一般是指计算机系统中的程序及其文档。
2.其中,程序是计算机任务的处理对象和处理规则的描述;3.文档是为了理解程序所需的阐述性资料。
4.软件工程概念的提出是倡导以工程的原理、原则和方法进行软件开发,以期解决出现的软件危机。
简述软件开发的本质及其涉及到的问题。
201904 201504本质:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”。
问题:(1)如何实现这样的映射,这是技术层面上的问题;(2)如何管理这样的映射,以保障映射的有效性和正确性。
这是管理层面上的问题。
简述软件开发的本质及其基本途径。
201710 201510本质:实现问题空间的概念;处理逻辑到解空间的概念;处理逻辑之间的映射。
途径:系统建模。
简述何谓系统模型以及软件开发中所涉及的系统模型分类。
模型是待建系统的任意抽象。
该抽象是在特定意图下所确定的角度和抽象层次对物理系统的一个描述,描述其中的成分和成分之间所具有的特定语义的关系,还包括对该系统边界的描述;系统模型分为两类:概念模型和软件模型。
软件模型又可进步分为设计模型、实现模型和部署模型等。
软件工程习题

第1章软件危机与软件工程一、填空题1、软件工程是在1960 年代_末期提出的,这一概念的提出,其目的是倡导以工程和数学的原理、原则和方法进行软件开发,以期解决当时出现的软件危机。
2、软件包括了使计算机运行所需要的各种程序和数据及其有关的资料。
3、计算机程序及其说明程序的各种文档称为文件。
计算机任务的处理对象和处理规则的描述称为程序,有关计算机程序功能、设计、编制、使用的文字或图形资料称为文档。
4、20世纪60年代末至20世纪70年代初年代,“软件危机”一词在计算机界广为流传,其主要是针对当时存在的软件代价高和软件错误多的现象而提出的。
5、为了解决软件危机,要从技术、管理两方面入手。
引入“软件工程”的概念,就是为了解决软件开发过程中的技术和管理问题。
6、在软件开发、编码和测试过程中,必须将测试放在首要位置。
7、软件工程框架告诉我们,软件工程的目标是软件定义可靠性、软件开发可靠性、软件使用和维护可靠性。
8、软件工程的四条基本原则是:要选取适宜的开发模型,要采用合适的设计方法,要提供高质量的工程支持,要实行开发过程的管理。
9、软件工程活动主要包括需求、设计、实现、确认和支持等活动。
10、软件工程是指把系统的、规范化的、可以度量的方法运用于软件的开发、运行和维护的过程二、选择题1、软件是一种( B )产品。
A.有形B.逻辑C.物质D.消耗2、软件工程学的目的应该是最终解决软件生产的( B )问题。
A.提高软件的开发效率B.使软件生产工程化C.消除软件的生产危机D.加强软件的质量保证3、与计算机科学的理论研究不同,软件工程是一门( B )学科。
A.理论性B.工程性C.原理性D.心理性4、在计算机软件开发和维护中所产生的一系列严重的问题通常称为软件危机,这些问题中相对次要的因素是( D )。
A.文档质量B.软件效率C.软件功能D.软件性能5、软件工程与计算机科学性质不同,软件工程着重于( C )。
A.原理探讨B.理论研究C.建造软件系统D.原理的理论6、软件工程学出现的主要原因是( C )。
软件危机与软件工程

软件危机与软件工程在当今数字化的时代,软件已经成为我们生活和工作中不可或缺的一部分。
从手机上的各种应用程序,到企业的管理系统,再到复杂的科学计算软件,软件的身影无处不在。
然而,在软件的发展历程中,曾经出现过一段被称为“软件危机”的时期,给软件开发带来了巨大的挑战。
正是为了解决这些挑战,软件工程应运而生。
软件危机,简单来说,就是在软件开发过程中出现的一系列严重问题。
在 20 世纪 60 年代末到 70 年代初,随着计算机应用的日益普及,软件的规模和复杂度不断增加,而软件开发的方法和技术却相对滞后。
这导致了许多软件开发项目的失败,出现了诸如预算超支、进度延误、质量低下等问题。
预算超支是软件危机的一个显著表现。
由于在软件开发初期对项目的规模和难度估计不足,导致在开发过程中需要不断投入更多的资源,使得项目的成本远远超出了最初的预算。
进度延误也是常见的问题。
软件开发往往会因为各种原因而无法按照预定的时间表完成,这不仅会影响到软件的及时交付使用,还可能给用户带来巨大的损失。
而质量低下则是软件危机中最为严重的问题之一。
一些软件在投入使用后频繁出现故障,甚至无法正常运行,给用户带来了极大的困扰。
造成软件危机的原因是多方面的。
首先,软件本身的复杂性是一个重要因素。
随着软件功能的不断增强,其内部的逻辑结构变得越来越复杂,这使得开发人员难以准确理解和把握整个软件系统。
其次,软件开发过程中的不确定性也是导致危机的原因之一。
需求的变更、技术的更新换代等都可能给软件开发带来意想不到的困难。
此外,软件开发人员之间的沟通不畅、缺乏有效的管理和规范等也都对软件危机的产生起到了推波助澜的作用。
为了解决软件危机,软件工程作为一门学科逐渐发展起来。
软件工程的目标是通过采用一系列科学的方法和技术,提高软件开发的效率和质量,降低软件开发的成本和风险。
软件工程涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试、维护等阶段。
在需求分析阶段,开发人员需要与用户进行充分的沟通,了解用户的需求和期望,为后续的开发工作奠定基础。
软件危机与软件工程

软件危机与软件工程软件危机与软件工程概述软件危机是指软件开发过程中出现的一连串问题和挑战,导致项目延期、超出预算或质量不佳的情况。
而软件工程则致力于解决软件开发过程中的各种挑战和问题,并提供一种可靠且高效的方法来开发高质量的软件。
软件危机的原因软件危机的原因有多方面的因素,主要包括以下几点:1. 需求不明确:在软件开发初期,客户对软件的需求往往模糊不清或者发生变化,导致软件开发团队无法准确理解客户的需求,从而难以开发出满足客户期望的软件。
2. 技术挑战:软件开发涉及多种技术和复杂的编程环境,开发人员需要不断学习和适应新的技术,但往往时间紧迫,导致技术跟不上进展,造成软件质量不佳。
3. 人员管理:软件开发涉及多个团队成员的合作,如果人员之间无法有效沟通和协作,就会影响软件的开发进度和质量。
4. 项目管理:项目管理对软件开发至关重要,如果项目管理不善,容易导致进度延误、资源浪费等问题。
软件工程的解决方案软件工程是一种以工程化的方式来开发软件的方法,并提供了解决软件开发挑战的一系列技术和方法。
以下是软件工程在解决软件危机中的一些解决方案:1. 需求工程:通过系统化的需求搜集和分析方法,帮助开发团队更全面地理解客户需求,避免需求不明确的问题。
2. 软件架构设计:通过良好的软件架构设计,可以确保软件的可扩展性和可维护性,降低软件开发过程中的技术难题。
3. 项目管理:采用敏捷的项目管理方法可以更好地应对需求变化和项目进度控制,保证软件开发的高效进行。
4. 质量保证:软件是软件工程中的重要环节,通过各种方法如单元、集成和系统等,可以确保软件质量。
软件危机背后的挑战虽然软件工程提供了一套解决软件危机的方法和技术,但在实践中仍然面临一些挑战:1. 技术进步:软件开发领域的技术在不断进步,开发团队需要不断学习和适应新的技术,才能跟上潮流并提供高质量的软件。
2. 项目规模:随着软件项目规模和复杂度增加,开发团队需要更多的资源和时间来完成项目,项目管理和资源分配成为挑战。
软件危机与软件工程

软件危机与软件工程第一章引言软件危机是指在软件开发过程中出现的一系列问题,如超出预算、延期交付、功能缺失等。
该问题的根本原因在于软件开发过程缺乏规范和有效管理。
为了解决软件危机问题,软件工程作为一门学科应运而生。
第二章软件工程的定义与范围软件工程是一门将工程原理、方法和工具应用于软件开发的学科。
它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试和维护等阶段。
第三章软件危机的原因1.需求不清晰:需求不明确或不完整导致软件项目后期出现功能缺失和修改需求的情况。
2.规模估算不准确:对软件项目的规模估算不准确会导致资源分配不合理,进而引发预算超支和进度延误。
3.项目管理不善:软件项目缺乏有效的管理方法和工具,导致资源分配不均衡,任务分配不明确,人员合作不协调。
4.技术选型不当:选择不合适或技术过时的开发工具和平台会导致开发效率低下和后期维护困难。
5.缺乏测试与质量保证:软件开发过程中忽视测试环节和质量保证措施,导致系统稳定性和可靠性问题。
第四章软件工程的方法与实践1.需求分析:通过对用户需求进行深入调研和分析,建立准确的需求文档,为后续设计与开发提供准确的参考。
2.结构化设计:采用模块化开发的方式,将系统划分为多个独立可测试的模块,提高开发和维护的效率。
3.敏捷开发:采用敏捷开发方法,将开发过程划分为多个迭代周期,每个周期交付可用的软件产品,持续优化和改进。
4.质量管理:通过严格的测试和质量保证流程,确保软件系统的稳定性、可靠性和安全性。
5.风险管理:通过风险分析和风险控制策略,预测和应对潜在的开发风险,减少项目失败的风险。
第五章软件工程的工具与框架1.需求管理工具:如JIRA、TFS等,用于管理和追踪需求的变更和进度。
2.设计工具:如Axure、Visio等,用于绘制系统架构图和界面设计。
3.编码工具:如IDE、代码管理工具等,用于编写、管理和调试代码。
4.测试工具:如Selenium、Junit等,用于进行自动化测试和质量监控。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2010-12-23 上海理工大学计算机与电气工程学院
25
软件危机
一个星期后,老板把年青人叫到了办公室,问“我们 的进展如何?” “很顺利”,年青人说“但是我遇到了一些小难题, 我将解决它们并且很快就能保持进度” “那么,最终日期能保证吗?”老板问。 “没问题,” 工程师说,“我已经快完成90%了。” 如果你在软件界工作了几年,你可以完成这个故事 。毫不惊奇,年青人在项目的90%处停滞不前,直到 在别人的帮助下在一个月后完成了项目。
按软件规模进行划分:
类别 参加人员数 研制期限 微型 1 1~4周 ~ 周 小型 1 1~6月 ~ 月 源程序行数 0.5k 1k~2k ~
数值计算或数据处理,通常没有与其它程序的接口。需要按一定的 数值计算或数据处理,通常没有与其它程序的接口。 标准化技术、正规的资料书写以及定期的系统审查。只是没有大题 标准化技术、正规的资料书写以及定期的系统审查。 目那样严格。
27
软件危机
问题出在哪里? 问题出在哪里?
对软件开发成本和进度的估计常常很不准确。实际成本 地估计成本有可能高出一个数量级,实际进度比预期进 度拖延几个月甚至几年的现象并不罕见 “闭门造车”必然导致最终产品不符合用户的要求.软件 开发人员通常在对用户要求只有模糊的了解,甚至对于 所要解决的问题 还没有确切认识的情况下,就仓促上阵 忙着着手编写程序;并且开发人员和用户之间的信息交 流往往很不充分, 2010-12-23 上海理工大学计算机与电气工程学院
第一讲 软件危机与软件工程
2010-12-23 上海理工大学计算机与电气工程学院
1
你会写程序吗? 你会写程序吗? 你会开发软件吗? 你会开发软件吗?
2010-12-23 上海理工大学计算机与电气工程学院
2
什么是软件
软件是计算机系统中与硬件相互依存的另一部分, 软件是计算机系统中与硬件相互依存的另一部分, 它是包括程序,数据及其相关文档的完整集合 程序是按事先设计的功能和性能要求执行的指令 程序是按事先设计的功能和性能要求执行的指令 序列 数据是使程序能正常操纵信息的数据结构 数据是使程序能正常操纵信息的数据结构 文档是与程序开发,维护和使用有关的图文材料 文档是与程序开发,维护和使用有关的图文材料
21世纪初 21世纪初
“Y2K定时炸弹” Y2K定时炸弹” 定时炸弹 无所不在的计算” “无所不在的计算” 2010-12-23 上海理工大学计算机与电气工程学院
21
软件危机
软件危机” 年在NATO会议上作为一 “软件危机” 是1958年在 年在 会议上作为一 个正式的议题被提出来 Software Crisis ! 软件项目不成功的例子比比即是: 软件项目不成功的例子比比即是:
2010-12-23 上海理工大学计算机与电气工程学院
5
软件的特点
软件的开发和运行常受到计算机系统的限制,对 计算机系统有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工艺的开发方式 软件的开发至今尚未完全摆脱手工艺的开发方式 软件本身是复杂的
实际问题的复杂性 程序逻辑结构的复杂性
软件成本相当昂贵 相当多的软件工作涉及到社会因素
人与人的交流比写程序困难得多。 软件开发成本在计算机系统总成本中所占的比例逐年上升 软件开发生产率的提高速度远远不能满足社会对软件产品日 上海理工大学计算机与电气工程学院 29 益增长的需求 2010-12-23
案例1:1999 年 10 月,耗资 1.25 亿美元的 NASA 的 火星气象卫星失踪,据信这是由于简单的数据转换错 误所导致的。人们发现卫星软件中,有些数据使用英 制,它们应被转换成公制。这个卫星应当充当另一项 任务中的火星极地着陆项目的通信转发器,那个任务 也失败了,原因不明。
2010-12-23 上海理工大学计算机与电气工程学院
中型
2~5 ~
1~2年 ~ 年
5k~50k ~
软件人员之间、与用户之间的联系、协调的配合关系。因而计划、 软件人员之间、与用户之间的联系、协调的配合关系。因而计划、 资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。 资料书写以及技术审查需要比较严格地进行。应用程序和系统程序。 系统的软件工程方法是完全必要的。 系统的软件工程方法是完全必要的。
2010-12-23 上海理工大学计算机与电气工程学院
24
软件危机
他读了手册,考虑了他的方法,然后开始编程,两个 星期后,老板把他叫到了办公室并问他事情干得怎么 样? “很好”, 雄心勃勃的年青的工程师说,“比我想 像的要简单的多。我已经接近完成75%了。” 老板笑了,“真不可思议”, 然后他告诉这个年青 人继续好好干,在下个星期他将再次会见他。
15
软件的分类
按使用的频度进行划分:
一次使用 频繁使用
2010-12-23 上海理工大学计算机与电气工程学院
16
软件的分类
按软件失效的影响进行划分:
高可靠性软件 一般可靠性软件
2010-12-23 上海理工大学计算机与电气工程学院
17
软件的发展
In the early days:
“Software” = “Place a sequence of instructions together to get the computer to do something useful”. User Computer Late 1950’s: Computer became cheaper and more common High level languages were invented easier
User
Programmer
Computer
2010-12-23 上海理工大学计算机与电气工程学院
18
软件的发展
Early 1960s:
Very few large software projects were done by some experts.
Middle to late 1960s:
Truly large software systems were attempted.
2010-12-23 上海理工大学计算机与电气工程学院
3
软件的特点
软件是一种逻辑实体,而不是具体的物理实体。 软件是一种逻辑实体,而不是具体的物理实体。 因而它缺乏可见性。写出程序代码并在计算机上 因而它缺乏可见性。写出程序代码并在计算机上 运行之前,软件开发过程的进展情况较难衡量, 软件质量也较难评价。 软件的生产与硬件不同,在它的开发过程中没有 软件的生产与硬件不同,在它的开发过程中没有 明显的制造过程 在软件的运行和使用期间,没有硬件那样的机械 在软件的运行和使用期间,没有硬件那样的机械 磨损,老化问题,不会被用坏。软件错误绝大多 磨损,老化问题,不会被用坏。软件错误绝大多 数为设计错误,它们更难被度量,建模,检测和 数为设计错误,它们更难被度量,建模,检测和 更正。 2010-12-23 上海理工大学计算机与电气工程学院 4
22
软件危机
案例2: 美国IBM公司在1963年至1966年开发的 IBM360机的操作系统。这一项目花了5000人一年的 工作量,最多时有1000人投入开发工作,写出了近 100万行源程序。......据统计,这个操作系统每次发 行的新版本都是从前一版本中找出1000个程序错误而 修正的结果。...... 这个项目的负责人F. D. Brooks(人月神话,一代软件 工程大师)事后总结了他在组织开发过程中的沉痛教训 时说:“......正像一只逃亡的野兽落到泥潭中做垂死 的挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶的 灾难。......程序设计工作正像这样一个泥潭,......一 批批程序员被迫在泥潭中拼命挣扎,......谁也没有料 到问题竟会陷入这样的困境......”。IBM360操作系统 的历史教训成为软件开发项目的典型事例为人们所记 2010-12-23 上海理工大学计算机与电气工程学院 取。 23
2010-12-23 上海理工大学计算机与电气工程学院
26
软件危机
软件危机的定义
通常把在计算机软件开发与维护过程中所遇到的一系列 严重问题笼统地称为软件危机。这些问题绝不仅仅是不 能正常运行的软件才具有的,实际上,几乎所有软件都 不同程度地存在这些问题。
2010-12-23 上海理工大学计算机与电气工程学院
信息
2010-12-23 上海理工大学计算机与电气工程学院
20
计算机和软件的历史观
70年代和80年代 70年代和80年代 年代和80
“新的工业革命” 新的工业革命” 工业社会将转变为信息社会” “工业社会将转变为信息社会” ……
90年代 90年代
“知识的民主化将改变旧的权力结构” 知识的民主化将改变旧的权力结构”
1M~10M
• 只是对软件工程技术依赖的程度不同而已。
2010-12-23 上海理工大学计算机与电气工程学院
13
软件的分类
按软件工作方式划分:
实时处理软件 交互式软件 批处理软件
2010-12-23 上海理工大学计算机与电气工程学院
14
软件的分类
按软件服务对象的范围划分:
项目软件 产品软件
2010-12-23 上海理工大学计算机与电气工程学院
使计算机系统各个部件、相关软件和数据协调、高效 地工作的软件
操作系统 数据库管理系统 设备驱动程序 通信处理程序等
2010-12-23 上海理工大学计算机与电气工程学院
9
软件的分类
支撑软件
协助用户开发软件的工具软件
文本编辑程序 文件格式化程序 磁盘向磁带进行数据传输的程序 程序库系统 支持需求分析、设计、实现、测试和 支持管理的软件
2010-12-23 上海理工大学计算机与电气工程学院
12
软件的分类