详解计算机软件基本概念

软件基本概念

软件的定义

一个完整的计算机系统是由硬件系统和软件系统协同工作来完成某一给定的任务的。

只有硬件的计算机称为裸机,裸机必须安装了计算机软件后才可以完成各项任务。

从广义地讲,软件是指计算机程序、数据以及开发、使用和维护程序所需要的所有文档的集合

通常将软件分为系统软件应用软件两大类

软件=程序+数据+文档

  • 程序是按照事先设计的功能和性能要求执行的指令序列
  • 数据是程序运行的基础和操作的对象
  • 文档是有关程序开发、维护和使用的各种图文材料

计算机软件具有以下特点:

  • 不可见性:软件是二进制编码,仅能看到物理载体,看不见软件本身
  • 适用性:不是只满足一种特定应用的需要,而是适应一类应用问题的需要
  • 依附性:软件依附于特定的计算机硬件、网络或其他软件环境
  • 复杂性:软件规模越来越大,结构越来越复杂,成本越来越高
  • 无磨损性:软件不像其他物理产品会有损耗或产生物理老化现象
  • 易复制性:软件以电、磁、光等形式存储和传输,非常容易且毫无失真的进行复制
  • 不断演化性:软件存在生命周期,需要进行软件版本的升级,适应不断变化的环境
  • 有限责任:软件厂商不对软件的正确性、精确性、可靠性和通用性做任何承诺
  • 脆弱性:操作系统和通信协议存在漏洞,软件容易被篡改和破坏

软件的分类

系统软件和应用软件

从功能角度区分,可以将计算机软件分为系统软件应用软件两大部分,

在这里插入图片描述

系统软件是建造在裸机(计算机硬件系统)之上,应用软件是以系统软件为工作平台

系统软件

系统软件用于发挥和扩大计算机的功能及用途,提高计算机的工作效率,为用户开发应用系统提供一个平台,用户可以使用它,一般不随意修改它。

系统软件主要包括操作系统、程序设计语言及其处理程序(如汇编程序、编译程序、解释程序等)、数据库管理系统、系统服务程序以及故障诊断程序、调试程序、编辑程序等工具软件。

操作系统

操作系统是配置在计算机硬件上的最底层软件,是对硬件系统功能的第一次扩充,它直接控制,管理各种硬件资源。

当计算机安装了操作系统以后,就为其他软件和用户提供了良好的工作环境,用户就不再直接操作计算机硬件,而是利用操作系统所提供的命令来操作和使用计算机。目前典型的操作系统有Windows、UNIX、Linux、Mac OS 等。

语言处理程序

用各种程序设计语言编写的源程序,计算机是不能直接执行的,必须经过翻译(对汇编语言源程序是汇编,对高级语言源程序则是编译或解释)才能执行,这些翻译程序就是语言处理程序,包括汇编程序、编译程序和解释程序等,它们的基本功能是把用高级语言或汇编语言编写的源程序翻译成机器可执行的二进制语言程序。语言处理程序也称为翻译程序翻译器

应用软件

应用软件是软件开发人员为解决各种实际问题而编制的计算机程序和相关资料

目前,应用软件为专用软件和通用软件两种。随着计算机应用领域的扩大,应用程序越来越多。使用部门已研制出许多通用性好的应用软件,逐渐商品化,并形成系统化软件,提供用户使用。因此,通用软件和专用软件之间没有严格的界限。

按照开发方式和使用范围的不同,可将应用软件分成两类,即通用应用软件和定制应用软件

通用应用软件

  • 办公自动化:如Microsoft Office、金山WPS等。
  • 动画制作:如3D Max、Flash、Adobe After Effects等
  • 图形图像处理:如 AutoCAD、Adobe Photoshop、CorelDRAW、Corel PHOTO-PAINT 等。
  • 网络通信软件:如IE、mail等
  • 网页制作:如 FrontPage、Dreamweaver 等。
  • 多媒体制作:如Authorware、Director等
  • Internet服务:WWW浏览器、电子邮件软件、文件传输软件等。

定制应用软件

定制应用软件是针对具体实际问题而开发的软件,它们完全是按照用户的特定需求而专门开发的。如某商场的销售管理和市场预测系统、某制造企业的集成制造系统、某机场的飞机订票系统、某大学的教务管理系统等。这类软件专用性强,运行效率高,成本较高。

开源软件和非开源软件

是否开放软件的源代码的角度分类,软件可以分为开源软件非开源软件

  • 开放源码软件是指其源码可以被公众使用的软件,用户可以自由地使用、复制、散发以及修改源码。
  • 相对的是非开源软件,如来自微软的软件,这类软件的源代码是保密的,只有公司的开发人员才代码。

传统客户端软件和在线软件

是否需要在客户端计算机安装软件的角度分类,软件可以分为客户端软件在线软件

客户端软件

传统的软件需要用户在购买软件使用许可后,将软件在客户端计算机上安装并输人软件序列号才能使用,这种模式成就了以微软为代表的一大批软件公司。

在线软件

在线软件指软件供应商提供软件在线服务,是随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种完全创新的软件应用模式。

在这种模式下,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己的实际需求,通过互联网向厂商订购所需的应用软件服务,按订购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。

用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无须对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其订购的软件和服务。

专属软件、自由软件、共享软件、免费软件和公共软件

不同的软件一般都有对应的软件授权,软件的用户必须在同意所使用软件的许可证的情况下才能够合法的使用软件。

依据许可方式的不同,大致可将软件区分为以下几类:
专属软件

此类软件通常不允许用户随意地复制、研究、修改或散布。传统的商业软件公司通常采用此类授权,例如微软的Windows和办公软件。专属软件的源码通常被公司视为私有财产而予以严密的保护
自由软件

此类软件与专属软件相反,赋予用户复制、研究、修改和散布该软件的权利,并提供源码供用户自由使用,仅给予些许的其他限制。如Linux、Firefox和OpenOffice等。
免费软件

可免费取得和转载该类软件,但并不提供源码,也无法修改
公共软件

原作者已放弃权利,著作权过期,或作者已经不可考究的软件。在使用上无任何限制。
共享软件

共享软件是以先使用后付费的方式销售的享有版权的软件。根据共享软件作者的授权,用户可以从各种渠道免费得到它的备份,也可以自由传播它,但在功能或使用日期上受到限制。用户总是可以先使用或试用共享软件,认为满意后再向作者付费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2775532.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

django admin 自定义界面时丢失左侧导航 nav_sidebar

只显示了自定义模板的内容,左侧导航没有显示出来。 原因:context 漏掉了,要补上。 # 错误写法(左侧导航不显示)def changelist_view(self, request, extra_contextNone):form CsvImportForm()payload {"form&qu…

Android AOSP源码研究之万事开头难----经验教训记录

文章目录 1.概述2.Android源下载1.配置环境变量2.安装curl3.下载repo并授权4.创建一个文件夹保存源码5.设置repo的地址并配置为清华源6.初始化仓库7.指定我们需要下载的源码分支并初始化 2.1 使用移动硬盘存放Android源码的坑2.2 解决方法 3.Android源码编译4.Android源烧录 1.…

嵌入式单片机中晶振的工作原理

晶振在单片机中是必不可少的元器件,只要用到CPU的地方就必定有晶振的存在,那么晶振是如何工作的呢? 什么是晶振 晶振一般指晶体振荡器,晶体振荡器是指从一块石英晶体上按一定方位角切下的薄片,简称为晶片。 石英晶体谐…

报错ValueError: Unknown CUDA arch (8.6) or GPU not supported

文章目录 问题描述解决方案参考文献 问题描述 报错 ValueError: Unknown CUDA arch (8.6) or GPU not supported 本人显卡为 RTX 3060,CUDA 为 10.2,PyTorch 为 1.5 解决方案 修改 C:\Users\Administrator\Envs\test\Lib\site-packages\torch\utils\c…

MVC框架学习

大一的时候写过一个mvc框架的跑酷游戏,但是那时候基础不扎实,没学明白也没听懂。现在深入的学习一下 以下内容参考:MVC 模式 | 菜鸟教程 (runoob.com) MVC 模式 MVC 模式代表 Model-View-Controller(模型-视图-控制器&#xff…

单片机学习笔记---LED点阵屏显示图形动画

目录 LED点阵屏显示图形 LED点阵屏显示动画 最后补充 上一节我们讲了点阵屏的工作原理,这节开始代码演示! 前面我们已经说了74HC595模块也提供了8个LED,当我们不使用点阵屏的时候也可以单独使用74HC595,这8个LED可以用来测试7…

了解海外云手机的多种功能

随着社会的高度发展,海外云手机成为商家不可或缺的工具,为企业出海提供了便利的解决方案。然而,谈及海外云手机,很多人仍不了解其强大功能。究竟海外云手机有哪些功能,可以为我们做些什么呢? 由于国内电商竞…

ChatGPT 变懒最新解释!或和系统Prompt太长有关

大家好我是二狗。 ChatGPT变懒这件事又有了最新解释了。 这两天,推特用户Dylan Patel发文表示: 你想知道为什么 ChatGPT 和 6 个月前相比会如此糟糕吗? 那是因为ChatGPT系统Prompt是竟然包含1700 tokens,看看这个prompt里面有多…

波奇学Linux: 文件描述符

文件和操作系统的关系 操作系统控制进程,文件的打开是在进程中进行。意味着用来控制进程的PCB必然有文件的信息,操作系统通过控制PCB的信息来控制文件的读写。 Q1:如何证明文件打开是在进程中进行? 编写c文件调用fopen来操作文件…

032-安全开发-JavaEE应用Servlet路由技术JDBCMybatis数据库生命周期

032-安全开发-JavaEE应用&Servlet路由技术&JDBC&Mybatis数据库&生命周期 #知识点: 1、JavaEE-HTTP-Servlet技术 2、JavaEE-数据库-JDBC&Mybatis 演示案例: ➢JavaEE-HTTP-Servlet&路由&周期 ➢JavaEE-数据库-JDBC&Mybat…

2月3日作业

1.编程实现单向循环链表的头插&#xff0c;头删、尾插、尾删 尾插/头插&#xff0c;头删&#xff0c;尾删&#xff1a; 头文件&#xff1a; #ifndef __HEAD_H_ #define __HEAD_H_#include<stdio.h> #include<string.h> #include<stdlib.h>enum {FALSE-1,SU…

大模型是如何实现Function Call函数调用的?

▼最近直播超级多&#xff0c;预约保你有收获 近期直播&#xff1a;《Agent 企业级应用案例实战》 —1— 大模型如何实现函数调用&#xff1f; 大模型要实现精确的函数调用&#xff08;Function Call&#xff09;需要理解能力和逻辑能力&#xff0c;理解能力就是对用户的 Prom…

Ps:窗口排列

Ps菜单&#xff1a;窗口/排列 Window/Arrange Photoshop 的“窗口/排列” Arrange子菜单中提供了多种方式来组织和查看打开的文档窗口&#xff0c;这在处理多个文档或比较图像时非常有用。 ◆ ◆ ◆ 常用操作方法与技巧 1、同文档双窗口处理法 将同一个图像显示在两个窗口中&…

基于java+springboot+vue实现的仓库管理系统(文末源码+Lw)23-115

1 绪论 现在大家正处于互联网加的时代&#xff0c;对于物资信息的管理来说&#xff0c;传统的通过纸质文档记录信息的方式已经落后了&#xff0c;依靠手工管理物资信息&#xff0c;不仅花费较长的工作时间&#xff0c;在对记录各种信息的文档进行信息查询以及信息核对操作时&a…

【doghead】uv_loop_t的创建及线程执行

worker测试程序,类似mediasoup对uv的使用,是one loop per thread 。创建一个UVLoop 就可以创建一个uv_loop_t Transport 创建一个: 试验配置创建一个: UvLoop 封装了libuv的uv_loop_t ,作为共享指针提供 对uv_loop_t 创建并初始化

vue3 之 商城项目—二级分类

二级分类功能描述 配置二级路由 准备组件模版 <script setup></script><template><div class"container "><!-- 面包屑 --><div class"bread-container"><el-breadcrumb separator">"><el-bre…

初识NodeJS

本文主要基于极客时间《Nodejs开发实战》课程。 本篇&#xff08;一&#xff09;为课程的第二篇——技术预研篇。 什么是Nodejs? 来源官网&#xff1a; Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型&#x…

计算机网络相关题目及答案(第八章)

第八章 习题&#xff1a; P19. 考虑下面对于某 SSL会话的一部分的Wireshark输出。 a. Wireshark分组112是由客户还是由服务器发送的? b.服务器的IP地址和端口号是什么? c.假定没有丢包和重传&#xff0c;由客户发送的下一个TCP报文段的序号将是什么? d. Wireshark分组…

(十七)springboot实战——spring securtity的授权流程源码解析

前言 本节内容是关于spring security安全框架授权流程的源码分析&#xff0c;spring security的授权流程主要是在FilterSecurityInterceptor过滤器中实现的。我们会通过源码层级的分析&#xff0c;了解清楚spring security的底层是如何实现用户授权的。 正文 1.配置一个请求…

【LeetCode每日一题】525连续数组 303区域和检索(前缀和的基本概念和3个简单案例)

前缀和 // 构造prefix let prefix [0] arr.forEach(num > {prefix.push(prefix.at(-1) num); })如果想要计算某个区间 i 到 j 这个子数组的和时&#xff0c;可以根据 prefix[j1] - prefix[i] 获得。 例题1&#xff1a;303.区域和检索 - 数组不可变 给定一个整数数组 num…