- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.1.1 软件的特征 要理解软件的含义,首先要了解软件的特征。软件是逻辑的而不是物理的产品,因此,软件具有与硬件完全不同的特征。 (1) 软件的开发不是传统意义上的生产制造。 软件开发与硬件制造之间有一些相似之处,但却有着本质的区别。软件产品的生产主要是脑力劳动、手工开发方式,大部分产品是“定做”的。 软件并不受引起硬件磨损的环境因素的影响。因此,理论上讲,软件的故障率曲线呈现出如图1.2所示的形式。软件在其生命初期具有较高的故障率,但在这些错误改正之后(我们假设理想情况下改正过程中并不引入其他错误),曲线就会趋于平稳。软件不会被磨损,不过它会退化,这一点可以通过图1.2来解释清楚。在其生命期中,软件会经历修改(维护),随着这些修改有可能会引入新的错误,使得故障率曲线呈现为图1.2所示的锯齿形。 硬件和软件之间的不同还表现在当一个硬件构件磨损时,可以用另外一个备用零件替换它,但对于软件就没有备用零件可以替换了。每一个软件故障都表明了设计或是将设计转换成机器可执行代码的过程中存在错误。因此,软件维护要比硬件维护复杂得多。 (3) 软件的可复用性差,不能通过已有的构件组装而成。 我们先来看一下一个基于微处理器的控制硬件是如何设计和建造出来的。设计工程师画一个简单的数字电路图,做一些基本的分析以保证可以实现预定的功能,然后查阅所需的元器件的目录,每一个集成电路(通常称为“IC”或“芯片”)都有一个零件编号、固定的功能、定义好的接口和一组标准的集成指南,每一个选定的零件都可以买到,由此可以很方便地组装起一个基于微处理器的控制硬件。 在软件开发中,采用一些已有的构件组建一个软件的方法,仅仅在小范围内得到应用。多数软件的设计开发还必须完全从零开始。 1.1.2 软件的分类 软件种类繁多,概括起来可分为两类:系统软件和应用软件。 1.系统软件 系统软件是指操作系统及与之相关的各种软件的总称。系统软件是一组为其他程序服务的程序。一类系统软件(如编译器、编辑器和文件管理程序)所处理的信息结构是复杂的,但又是确定的;还有一类系统软件(如操作系统、驱动程序和通信进程等)则处理大量的非确定的信息。系统软件具有以下特点: ● 与计算机硬件频繁交互; ● 支持多用户; ● 需要精细调度、资源共享及灵活的进程管理的并发操作; ● 复杂的数据结构; ● 多外部接口; ● 具有可移植性,例如嵌入式系统中的实时操作系统。 常见的操作系统有DOS、UNIX、Linux以及Windows。 2.应用软件 应用软件是指为用户的特殊应用目的而开发的软件。例如财务管理软件、人力资源管理软件。 1.1.3 软件的发展 今天,软件担任着双重角色,它是一种产品,同时又是开发和运行产品的载体。作为一种产品,它扩充了计算机硬件的功能;作为开发和运行产品的载体,它是计算机控制(操作系统)的基础、信息通信(网络)的基础,也是创建和控制其他程序(软件工具和环境)的基础。 计算机硬件的发展经历了四个时代,同样,计算机软件的发展也大致经历了四个阶段。 (1) ?20世纪60年代中期以前,是计算机系统发展的早期阶段。 在计算机发展的早期阶段,大多数人把软件开发看成是不需预先计划的事情。计算机编程很简单,没有什么系统化的方法。软件的开发没有任何管理,一旦进度拖后了或者成本提高了,程序员才开始手忙脚乱地弥补。由于那个时期的软件很简单,因而他们的努力在一般情况下往往也会见效。 当通用的硬件已经非常普遍的时候,软件却相反,对每一类应用均需自行设计,应用范围很有限。此时,软件产品还处在婴儿阶段,大多数软件均是由使用它们的人员或组织自行开发的,软件在使用过程中出现了问题,编写软件的人员必须负责修改。在这种个人化的软件开发环境中,设计往往仅是人们头脑中的一种模糊想法,而软件文档根本就不存在。在早期,我们了解了很多关于计算机系统的实现,但对于计算机系统工程却几乎一无所知。 (2) 从20世纪60年代中期到70年代中期,是计算机系统发展的第二阶段。 计算机系统发展的第二阶段跨越了从20世纪60年代中期到70年代中期的十余年。其主要特征是:多道程序设计、多用户系统引入了人机交互的新概念;交互技术打开了计算机应用的新世界及硬件和软件配合的新层次;实时系统能够从多个源收集、分析和转换数据,使得进程的控制和输出的产生以毫秒而不是分钟来进行;在线存储的发展导致了第一代数据库管理系统的出现。 第二阶段的一个特点就是软件产品的使用和“软件作坊”的出现。随着计算机应用领域的扩大,来自工业界、政府和学术界的人们纷纷开始开发各类软件包,并取得了巨大的经济利益。 随着计算机系统的增多,新的问题出现
文档评论(0)