软件的内涵、操作系统、软工定义、程序设计语言的演变

软件的内涵、操作系统、软工定义、程序设计语言的演变

软件的内涵

软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据。为了方便用户,为了使计算机系统具有较高的总体效用,在设计计算机系统时,必须通盘考虑软件与硬件的结合,以及用户的要求和软件的要求。
软件的正确含义应该是:
(1)运行时,能够提供所要求功能和性能的指令或计算机程序集合
(2)程序能够满意地处理信息的数据结构
(3)描述程序功能需求以及程序如何操作和使用所要求的文档

操作系统

.什么是操作系统

操作系统( operating system,OS)为计算机硬件和应用程序提供了一个交互的界面,并指挥计算机各部分硬件的基本工作。

(1)系统观点——计算机资源处理

(2)用户观点——用户使用计算机的界面

(3)软件观点——程序、数据和文档的集合

2.DOS

磁盘操作系统(Disk Operating System,DOS)是个人计算机上使用的一种操作系统,通过命令行方式下输入命令对计算机资源进行管理。

3.Windows操作系统

Windows采用了图形化模式GUI,比起从前的DOS需要输入指令使用的方式,更为人性化。它不但易用,也当前应用最广泛的操作系统。

特点:

(1)Windows操作系统的人机操作性优异。

(2)Windows操作系统支持的应用软件较多。

(3)Windows操作系统对硬件支持良好。

【2】

4.UNIX操作系统

NUIX是一个通用的、多任务、交互式的分时操作系统,被认为是开放式系统的代表。UNIX系统提供了良好的用户界面,具有使用方便、功能齐全、清晰而灵活、易于扩充和修改等特点。

【3】

5.Linux操作系统

Linux是自由和开放源代码的类UNIX操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。

特点:

(1)模块化程度高

(2)源代码公开

(3)广泛的硬件支持

(4)安全性及可靠性好

(5)完整的网络集成

【4】

6.Mac OS

Mac OS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面操作系统。Mac OS基于UNIX,以简单易用和稳定可靠著称。

7.智能手机操作系统简介

智能手机可以像个人电脑一样安装第三方软件,所以智能手机有丰富的功能。智能手机通常使用的操作系统有:Android、iOS、Symbian、Windows Phone和Blackberry OS。

软件工程的定义

软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己认可的定义:
BarryBoehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。
IEEE:在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究
FritzBauer:在NATO会议上给出的定义:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。
《计算机科学技术百科全书》:软件工程是应用计算机科学、数学、逻辑学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。
比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
ISO 9000对软件工程过程的定义是:软件工程过程是输入转化为输出的一组彼此相关的资源和活动。
其它定义:1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。2.程序能够满意地处理信息的数据结构。3.描述程序功能需求以及程序如何操作和使用所要求的文档。以开发语言作为描述语言,可以认为:软件=程序+数据+文档。

总之,软件工程(Software Engineering,SE )是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

程序设计语言的演变

自20世纪60 年代以来,世界上公布的程序设计语言已有上千种之多,但是只有很小一部分得到了广泛的应用。从发展历程来看,程序设计语言可以分为 4 代。

第一代机器语言

机器语言是由二进制 0、1 代码指令构成,不同的 CPU 具有不同的指令系统。机器语言程序难编写、难修改、难维护,需要用户直接对存储空间进行分配,编程效率极低。这种语言已经被渐渐淘汰了。

第二代汇编语言

汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系,所以汇编语言同样存在着难学难用、容易出错、维护困难等缺点。但是汇编语言也有自己的优点:可直接访问系统接口,汇编程序翻译成的机器语言程序的效率高。 从软件工程角度来看,只有在高级语言不能满足设计要求,或不具备支持某种特定功能的技术性能(如特殊的输入输出)时,汇编语言才被使用。

第三代高级语言

高级语言是面向用户的、基本上独立于计算机种类和结构的语言。其最大的优点是:形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。高级语言的一个命令可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。高级语言种类繁多,可以从应用特点和对客观系统的描述两个方面对其进一步分类。
  一、从应用角度分类
  从应用角度来看,高级语言可以分为基础语言、结构化语言和专用语言。
  (1) 基础语言
  基础语言也称通用语言。它历史悠久,流传很广,有大量的已开发的软件库,拥有众多的用户, 为人们所熟悉和接受。 属于这类语言的有 FORTRAN、COBOL、BASIC、ALGOL等。FORTRAN 语言是国际上广为流行、也是使用得最早的一种高级语言,从 20 世纪90 年代起,在工程与科学计算中一直占有重要地位,备受科技人员的欢迎。BASIC 语言是在 20 世纪 60 年代初为适应分时系统而研制的一种交互式语言,可用于一般的数值计算与事务处理。BASIC 语言结构简单,易学易用,并且具有交互能力,成为许多初学者学习程序设计的入门语言。
  (2) 结构化语言
  20 世纪 70 年代以来,结构化程序设计和软件工程的思想日益为人们所接受和欣赏。在它们的影响下,先后出现了一些很有影响的结构化语言,这些结构化语言直接支持结构化的控制结构,具有很强的过程结构和数据结构能力。PASCAL、C、Ada 语言就是它们的突出代表。
  PASCAL 语言是第一个系统地体现结构化程序设计概念的现代高级语言,软件开发的最初目标是把它作为结构化程序设计的教学工具。由于它模块清晰、控制结构完备、有丰富的数据类型和数据结构、语言表达能力强、移植容易,不仅被国内外许多高等院校定为教学语言,而且在科学计算、数据处理及系统软件开发中都有较广泛的应用。
  C 语言功能丰富,表达能力强,有丰富的运算符和数据类型,使用灵活方便,应用面广,移植能力强,编译质量高,目标程序效率高,具有高级语言的优点。同时,C 语言还具有低级语言的许多特点,如允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作等。用 C 语言编译程序产生的目标程序,其质量可以与汇编语言产生的目标程序相媲美,具有“可移植的汇编语言”的美称,成为编写应用软件、操作系统和编译程序的重要语言之一。
  (3) 专用语言
  是为某种特殊应用而专门设计的语言,通常具有特殊的语法形式。一般来说,这种语言的应用范围狭窄,移植性和可维护性不如结构化程序设计语言。随着时间的发展,被使用的专业语言已有数百种,应用比较广泛的有 APL 语言、Forth 语言、LISP 语言。
  二、从客观系统的描述分类
  从描述客观系统来看,程序设计语言可以分为面向过程语言和面向对象语言。
  (1) 面向过程语言
  以“数据结构+算法”程序设计范式构成的程序设计语言,称为面向过程语言。前面介绍的程序设计语言大多为面向过程语言。
  (2) 面向对象语言
  以“对象+消息”程序设计范式构成的程序设计语言,称为面向对象语言。比较流行的面向对象语言有 Delphi、Visual Basic、Java、C++等。
  Delphi 语言具有可视化开发环境 , 提供面向对象的编程方法,可以设计各种具有Windows 内格的应用程序(如数据库应用系统、通信软件和三维虚拟现实等),也可以开发多媒体应用系统。
  Visual Basic 语言简称 VB,是为开发应用程序而提供的开发环境与工具。它具有很好的图形用户界面,采用面向对象和事件驱动的新机制,把过程化和结构化编程集合在一起。它在应用程序开发中的图形化构思,无需编写任何程序,就可以方便地创建应用程序界面,且与 Windows 界面非常相似,甚至是一致的。
  Java 语言是一种面向对象的、不依赖于特定平台的程序设计语言,简单、可靠、可编译、可扩展、多线程、结构中立、类型显示说明、动态存储管理、易于理解,是一种理想的、用于开发 Internet 应用软件的程序设计语言。

第四代非过程化语言

4GL 是非过程化语言,编码时只需说明“做什么”,不需描述算法细节。
  数据库查询和应用程序生成器是 4GL 的两个典型应用。用户可以用数据库查询语言(SQL)对数据库中的信息进行复杂的操作。 用户只需将要查找的内容在什么地方、 据什么 根条件进行查找等信息告诉 SQL,SQL 将自动完成查找过程。应用程序生成器则是根据用户的需求“自动生成”满足需求的高级语言程序。真正的第四代程序设计语言应该说还没有出现。所谓的第四代语言大多是指基于某种语言环境上具有 4GL 特征的软件工具产品, System Z、如PowerBuilder、FOCUS 等。第四代程序设计语言是面向应用,为最终用户设计的一类程序设计语言。它具有缩短应用开发过程、降低维护代价、最大限度地减少调试过程中出现的问题以及对用户友好等优点。
  
参考链接:【1】https://baike.baidu.com/item/软件/12053

【2】https://baike.baidu.com/item/Windows操作系统

【3】https://baike.baidu.com/item/unix?fromtitle=UNIX%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&fromid=851445

【4】https://baike.baidu.com/item/linux?fromtitle=Linux%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F&fromid=850887

【5】https://baike.baidu.com/item/软件工程/25279

【6】https://baike.baidu.com/item/程序设计语言/2317999

你可能感兴趣的:(软件的内涵、操作系统、软工定义、程序设计语言的演变)