软件技术的兴起和发展

简介: 软件技术的兴起和发展

计算机刚刚问世时,还未建立“软件”这一概念,随着计算机的发展及应用范围的扩大,逐渐
形成了软件系统。
在早期的计算机中,使用者必须根据机器自身能识别的语言

  • 机器语言(机器指令)按解

题要求编写出机器可直接运行的程序。由于机器不同,机器语言也不同,因此人们在不同的机器
上编程,就需熟悉不同机器的机器指令,使用极不方便,写出的程序很难读懂。20世纪50年代
后,逐渐形成了符号语言和汇编语言,这种语言虽然可以不用 0/1 代码编程,改善了程序的可读
性,但它们仍是面向机器的,即不同的机器各自有不同的汇编语言。为了使这种符号语言转变成
机器能识别的语言,人们又创造了汇编程序,用于把汇编语言翻译成机器语言
为了摆脱对具体机器的依赖,在汇编语言之后又出现了面向问题的高级语言。使用高级语
言编程可以不了解机器的结构,高级语言的语句通常是一个或一组英语词汇,词义本身反映出命
令的功能,它比较接近人们习惯用的,自然语言和数学语言,使程序具有很强的可读性。高级语言
的发展经历了几个阶段。第一阶段的代表语言是1954 年问世的 FORTRAN,它主要面向科学计
算和工程计算。第二阶段可视为结构化程序设计阶段,其代表是1968年问世的 PASCAL. 语言,
它定义了一个真正的标准语言,按严谨的结构化程序编程,具有丰富的数据类型,写出的程序易
读懂、易查错。第三阶段是面向对象程序设计阶段,其代表语言是C++。近年来随着网络技术
的不断发展,又出现了更适应网络环境的面向对象的 Java 语言,而且随着Interet 技术的发展和
应用,Java 语言越来越受到人们普遍欢迎。
为了使高级语言描述的算法在机器上执行,同样需要有一个翻译系统,于是产生了编译程序
和解释程序,它们能把高级语言翻译成机器语言。
可见,随着各种语言的出现,汇编程序、编译程序、解释程序的产生,逐渐形成了软件系统
随着计算机应用领域的不断扩大,外部设备的增多,为了使计算机资源让更多用户共享,又出现了操作系统。操作系统能协调管理计算机中各种软件、硬件及其他信息资源,并能调度用户
的的作业程序,使多个用户能有效地共用一套计算机系统。操作系统的出现使计算机的使用效率
成倍地提高,并且为用户提供了方便的使用手段和令人满意的服务质量。例如,DOS、UNIX 和
Windows 等
此外,
一 些服务性程序,如装配程序、调试程序、诊断程序和排错程序等,也逐渐形成。特别
是随着计算机在信息处理、情报检索及各种管理系统中应用的发展,要求大量处理某些数据,建
立和检索大量的表格。这些数据和表格按一定的规律组织起来,使用户使用更方便,于是出现了
数据库。数据库和数据管理软件一起便组成了数据库管理系统。而且随着网络的发展,文产生
了网络软件等。
以上所述的各种软件均属于系统软件,而软件发展的另一个主要内容就是应用软件。应用
软件种类繁多,它是用户在各自的行业中开发和使用的各种程序。如各种财务软件、办公用的文
宇处理和排版软件、帮助管理日常业务工作和图文报表的“电子表格”和“数据库”软件、帮助工
程设计的 CAD 软件以及各种实用的网络通信软件等。
软件发展有以下几个特点。
(1)开发周期长
研制一个软件往往因其规模庞大而需较长的开发周期。例如,美国穿梭号宇宙飞船的软件
包含4000 万行目标代码,倘若一个人一年开发一万行程序,则需集中4 000 人花一年时间才能
完成,市且要做到4000 人的默契配合,涉及种种技术问题的协调,如分析方法、设计方法、形式
说明方法、版本标准等都得有严格的规范,其难度远远超过自动化程度极高的硬件制造。
(2)制作成本昂贵
超大规模集成电路技术给硬件制造业带来巨大利益,使硬件的价格不断下降,使一台普通的
微型计算机的价格与一台彩色电视机的价格相当,而且还在下降。可是软件的开发完全依赖于
人工,致使软件开发成本不断上涨,在美国,软件成本约占计算机系统总成本的90%,己成为司
空见惯的现象。
(3)检测软件产品质量的特殊性
-种软件在刚开始推出时,,主要实现其面向领域所需的核心功能,之后逐步集成大量的附加
功能。也就是说,要完善
一个软件产品,必须在应用过程中不断加以修改、补充。只有使用了-
定时间后,才能对软件产品质量进行确定。
尽管软件技术兴起和发展比硬件晚,而且其发展速度没有硬件快(如微处理器的性能以
Moore 定律所述的几何级数增长),但是仍可以说,如果没有当今的软件技术,计算机系统和应用
的发展也不会有今天这样的成就。客观地说,软件的发展不惭激励着微处理器和存储器性能的
增长。
世界各国当前都十分重视软件人才的培养和软件产业的形成,但实际上它们都很难与当前
计算机应用普及的广度和深度相适应。也正因为如此,有些软件开发商瞄准了特定的市场,一旦
在性能、质量占到上风时,就会很快积聚财富,成为新的世界级富商。

相关文章
|
开发框架 前端开发 API
LayUI的使用
LayUI的使用
404 0
|
新零售 前端开发 JavaScript
盒马跨端设计系统 ReX Design For OS
6 个月前,在 D2 前端技术论上我们向社区分享了《盒马中后台跨端方案》,详细介绍了我们在基于盒马实体零售数字化业务场景中,面向盒马营运数字化系统构建的跨端设计系统——ReX Design For OS。6 个月来,在开发资源极度紧张的状态下,我们持续建设和打磨,今天我们很高兴的告诉大家我们已经将项目的主要代码开源到了 Github,并发布了 beta 版本。
盒马跨端设计系统 ReX Design For OS
|
Java 关系型数据库 Oracle
|
10月前
|
SQL 存储 算法
sql server加密算法加盐
通过在 SQL Server 中结合使用加盐和哈希,可以有效地增强密码的安全性。本文详细介绍了在 SQL Server 中如何实现密码加盐和哈希的步骤,以及相关的完整示例和注意事项。希望本文能帮助读者更好地理解和应用加密技术,提升数据库系统的安
345 7
|
芯片
利用两个IO口检测6个按键
【8月更文挑战第23天】在资源受限的情况下,可通过巧妙设计使用两个I/O口检测六个按键。硬件连接上,六个按键以不同组合方式连接至IO1和IO2:键1连IO1与地;键2连IO2与地;键3同时连IO1和IO2;键4经电阻接IO1并接地;键5同样处理但接IO2;键6则各自经电阻连接至IO1和IO2后接地。软件方面,设置两I/O为输入模式并启用上拉电阻,依据高低电平的不同组合判断具体按键。此法需注意实际应用中的参数选择与优化。
510 2
30行代码实现一个带UI界面的图片背景移除工具:并附带web网页
人工智能技术正处于蓬勃发展中,移除图片背景的方法众多,涵盖了各式各样的实现途径和模型。然而,这些方法往往在安装和配置环境方面稍显复杂。今天,介绍一种极其简便的方法——大约30行代码,就能实现这一功能。虽然相比之下可能稍显简单,但对于不太苛刻的需求来说,这种方法颇为方便实用。
|
程序员 Windows
程序员必备技能:一键创建windows 服务
该内容是关于在Windows上创建服务的教程。通过一个BAT脚本示例,用户可以将程序设置为开机启动或持续运行的服务。脚本设置了服务名称、显示名和描述,并指定了程序路径和参数。将代码保存为.bat文件,以管理员权限运行,即可创建服务。之后在Windows服务管理中找到并启动该服务。
438 4
|
机器学习/深度学习 人工智能 自然语言处理
人工智能浪潮之下,机器学习的未来展望
在数字化时代,人工智能(AI)已成为推动技术革新的核心力量。特别是机器学习(ML),作为AI的子集,它的发展不仅重塑了数据处理的方式,还为解决复杂问题提供了新途径。本文将探讨机器学习的现状与未来趋势,包括深度学习、自然语言处理等领域的进展,以及面临的挑战和潜在的解决方案。通过深入分析,旨在为读者揭示机器学习在未来社会中的角色和影响。
305 0
|
Linux 网络安全 数据安全/隐私保护
CentOS 7安装配置vsftp并搭建FTP(一)
CentOS 7安装配置vsftp并搭建FTP(一)
24896 0
CentOS 7安装配置vsftp并搭建FTP(一)
|
分布式计算 DataWorks 关系型数据库
DataWorks中datax的odpsreader和tunnel是不同的读取mc方式?
DataWorks中datax的odpsreader和tunnel是不同的读取mc方式?
245 0