*(长期更新)软考网络工程师学习笔记——Section 19 计算机软件基本知识
目录
- 一、操作系统(OS)
- 二、进程
- (一)进程的状态
- (二)进程的关系
- 三、CMM和CMMI模型
- 四、软件设计和软件测试
- (一)软件设计
- (二)动态测试和静态测试
- (三)黑盒测试和白盒测试
- 五、数据库
- (一)数据和数据库
- (二)数据库管理系统
- (三)数据库系统
- 六、软件知识产权
一、操作系统(OS)
操作系统(OS)是管理计算机硬件与软件资源的计算机程序,也是用户与计算机交互的桥梁,计算机上主要的流行操作系统有Windows
、UNIX
和Linux
三种,同时它不仅只针对计算机,还有针对移动端开发的操作系统,例如Android、IOS、Harmony OS等等,其中Android是一种基于Linux的自由及开放源代码的操作系统,由低到高可分为Linux内核层、系统运行层、应用程序框架层和应用程序层;而IOS是基于Unix开发的。
以下主要介绍UNIX和Linux两种:
1、UNIX
- UNIX是一个多用户、多任务操作系统的操作系统,它具有良好的安全性和网络功能,所以
常用作网络操作系统
,也被作为单机操作系统使用。
2、Linux
- Linux是一个
免费且开源
(其源代码完全向用户免费公开)的类UNIX
操作系统,继承UNIX的设计风格演变出来的多用户、多任务、支持多线程和多CPU的操作系统,对Linux操作系统感兴趣的可以了解博主之前的文章系列:Linux操作系统简介。
二、进程
(一)进程的状态
操作系统中的进程有三种基本的状态,分别是就绪态
、运行态
和阻塞态
,这三种状态在一定条件下可以转换。
1、就绪态
进程等待分配处理器进程,分配好后即可进入运行态,处于就绪状态的进程很多,可以按照一个优先级
来划分队列,当一个进程是由于时间片用完后进入就绪状态时,则排入低优先级队列;而当进程是由I/O操作完成后进入就绪状态时,则排入高优先级队列。
2、运行态
处于运行态的进程占用
处理器的资源,在系统中有很多在后台一直处于运行态的进程。
3、阻塞态
阻塞态的基础由于要等待某种条件
,例如I/O操作或进程同步,条件满足后才可转为就绪态然后再转为运行态。
(二)进程的关系
进程之间有很多关系,例如并发、并行、互斥、协作等等,并发是指有两个或两个以上的程序同时处于运行且未结束的状态;并行是指一个进程的执行可能影响其他进程的执行,即它们关系是依赖关系,进程之间共享某些资源;进程之间互相竞争某一个资源称为进程的互斥;并发进程使用共享资源称为进程的同步,操作系统使用信号量机制
来保证信号的同步和互斥。
1、互斥
对于进程之间的互斥,操作系统设置一个互斥信号量S
,只要将临界区置于P(S)和V(S)之间
,即可实现互斥,由于这个信号量与所有的并发进程都有关,称为公用信号量
。
当想访问临界资源的进程想进入设置的临界区时,需先对信号量S执行P操作,若改资源未被访问则本次P操作成功,即可进入临界区;其他进程会执行操作失败而被阻塞,从而保证了互斥。
2、同步
对于进程之间的同步,同样操作系统也会设置一个信号量,称为私有信号量
,它只与制约进程和被制约的进程有关。若进程之间同步,则各并发进程设置各自的私有信号量,并将其赋初值,然后根据PV原语和私有信号量来规定各个进程的执行顺序。
另外,除以上关系外,进程之间还有死锁关系,即各个进程之间相互等待对方的资源,在得到对方资源前不会释放自己的资源,从而造成一种相互等待的现象。
三、CMM和CMMI模型
1、CMM(能力成熟度模型)是一种用于评价软件承包能力并帮助其改善软件质量
的方法,它侧重于软件开发的管理及工程能力的提高与评估,且它分为以下五个等级:
(1)初始级;
(2)可重复级;
(3)可定义级;
(4)可管理级;
(5)优化级。
2、CMMI(能力成熟度模型集成)是由CMM模型的最新版本
,它也分为五个等级:
(1)完成级;
(2)管理级;
(3)定义级;
(4)量化管理级;
(5)优化级。
四、软件设计和软件测试
(一)软件设计
软件设计需要遵循抽象、模块块、信息屏蔽和模块独立原则,在划分软件系统模块时,应尽量做到高内聚、低耦合
。
(二)动态测试和静态测试
软件开发过程中,需对软件进行测试,软件测试简单地可以分为动态测试和静态测试,它们的区别在于是否运行程序来进行测试
,这里主要介绍动态测试。
其中,动态测试根据在软件开发过程中所处阶段和作用可分为以下测试:
名称 | 含义 |
---|---|
单元测试 |
对软件的基本组成单位进行测试 ,如一个模块、一个过程等等,从而验证软件基本组成单位的正确性。
|
集成测试 |
对一个应用系统各个部件的联合测试 ,验证共同工作时是否有冲突。
|
系统测试 |
在系统实际运行环境下进行测试 ,除了包括要测试的软件,还包括软件所依赖的硬件、外设、数据、支持软件以及接口等等。
|
验收测试 |
验收测试 是部署软件之前的最后一个测试,其目的是确保软件准备就绪,且让最终用户通过执行该文件实现既定功能和任务
|
1、单元测试
既然是单元,即对软件中的基本组成单位
进行测试,检验其正确性,也可以说是对软件中的最小可测试单元进行检查和验证,不同编程语言编写的软件所针对的的基本单元不同。(这里可以比如像组装一台手机,要对其基本元件进行测试其功能的完整性和正确性等等)
2、集成测试
集成测试是在单元测试完成的基础上,将所有的模块按照设计要求组装
成为子系统或系统进行测试,从而测试其是否冲突,即对多个单元进行组合从而进行测试。
3、系统测试
系统测试是更加系统化
地进行测试,所以它不仅包括要测试的软件,还有包括软件所依赖
的外设、硬件等等,即将软件与其所要依赖的环境资源进行结合从而在系统的实际运行环境下进行测试。
4、验收测试
验收测试是部署软件之前的最后一个测试
操作,其目的是确保软件准备就绪,且可以让最终用户通过执行该软件实现软件的相关要求,这里用户和软件开发组织(或独立的测试小组)一起进行执行验收测试。
另外验收测试也分为以下几种策略:
名称 | 解释 |
---|---|
正式验收 | 通常是系统测试的延续,不过比系统测试更加周密和详细 |
非正式验收 | 相较于正式验收不是那么严格,测试内容由各测试员决定,主观性较大 |
α测试 |
由一个用户在开发环境下的测试或在模拟实际操作环境下的测试,它最终用户或其他人员完成的测试,不能由程序员或测试员完成
|
β测试 |
由软件的用户在一个或者多个用户的实际使用环境下的测试,也是一样它不能由程序员或测试员完成
|
5、回归测试
另外还有一种测试是回归测试,它指软件经过修改后
重新测试,从而来保证修改的正确性,例如确认以前出现过的错误不再出现。
例如,一个项目为了修正一个错误而进行了变更,当错误被修正后,却引起以前可以正确运行的代码出错,为了避免这种错误,所以回归测试最可能发现这一问题。
(三)黑盒测试和白盒测试
黑盒测试和白盒测试的区别在于是否能测试软件产品的内部结构和处理过程,在白盒测试
中,内部是可视的,其内部结构和处理过程是主要测试的,而不侧重于关注软件产品的功能,测试的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试,其主要方法有逻辑驱动、基路测试等。
黑盒测试
又称为功能测试或数据驱动测试,此时把软件看作一个不可打开的盒子,通过各种输入和对应的输出结果来测试。
五、数据库
(一)数据和数据库
数据
(Data)是事物的符号表示,它可以是数字、文字、图像等等;数据库
(DataBase,简称DB)是以特定的组织结构存放在计算机的存储介质中的相互关联的数据集合,这些数据集合是有组织的、可共享的、且有较高的独立性。
(二)数据库管理系统
数据库管理系统
(DBMS)是位于用户和操作系统之间的一个数据管理软件,它是数据库应用系统的核心组成部分。
其中事务
是DBMS的基本工作单位,它是由用户定义的一个操作序列,事务的特点又称为ACID准则,以下:
名称 | 含义 |
---|---|
原子性 | 要么都做,要么都不做 |
一致性 | 初始状态和结束状态对外可见,但中间状态对外不可见 |
隔离性 | 多事务互不干扰 |
持久性 | 事务结束前所有数据改动必须保存到物理存储中 |
(三)数据库系统
数据库系统
(DBS)是由数据库、操作系统、数据库管理系统、应用程序、用户、数据库管理员组成的用于存储、管理、处理和维护数据的系统,一般数据库系统分为客户-服务器模式
(C/S)和三层客户-服务器模式
(B/S)。
1、客户-服务器模式
C/S模式中,应用程序直接跟用户交互
,而数据库管理系统不直接与用户,即此时应用程序称为前台
,而数据库管理系统称为后台
,其中应用程序先数据库管理系统提出服务请求,而数据库管理系统向应用程序提供服务,如下图:
2、三层客户-服务器模式
基本Web的数据库应用采用三层客户-服务器模式(B/S),其中第一层为浏览器
,第二层为Web服务器
,第三层为数据库服务器
,如下图:
六、软件知识产权
1、⟪计算机软件保护条例⟫中规定对软件著作权的保护包括目标程序、源程序、软件文档,但不包括算法
。
2、软件经过登记后,软件著作权人即享有发表权、开发者身份权、使用权、使用许可权和获取报酬权。
3、如果征得软件作品著作人的同意,因修改和改善新增加的部分,创作者应享有著作权。
4、对是职务作品的计算机软件,参与开发的人员离开原单位后,如其对原单位享有著作权的软件进行修改、提高,应经过原单位的许可
,否则构成侵权。
5、公民发表权及其他权利保护期为作者终身及其死亡后50年
,截止于作者死亡后第50年的12月31日;由法人或其他组织享有的职务作品,其发表权及其他权利保护期截止于作品首次发表后第50年
的12月31日。
6、对职务作品的计算机软件,参与开发的人员离开原单位后,如其对原单位享有著作权的软件修改、提高,应经过原单位许可,否则构成侵权
。
7、发明专利权
的期限为20年
,实用新型专利权、外观设计权
的期限为10年
,另外注册商标
的有效期为10年
。
*(长期更新)软考网络工程师学习笔记——Section 19 计算机软件基本知识相关推荐
- (*长期更新)软考网络工程师学习笔记——Section 18 计算机硬件基本知识
文章目录 一.计算机的概念 (一)计算机的基本组成 (二)五大部件的功能 (三)计算机硬件的主要技术指标 二.CPU(中央处理器) (一)CPU 的基本概念 (二)CPU 指令集 (三)CPU的主要性 ...
- (*长期更新)软考网络工程师学习笔记一—RSA算法详解
RSA算法是一种非对称加密算法,适合进行数字签名和密钥交换运算. 这里总结下RSA算法的步骤: 一.选两个较大的质数p和q,p≠q,质数即除了1和其本身以外不被其它自然数所整除的数,且大于1. 比如选 ...
- (*长期更新)软考网络工程师学习笔记——Section 6 网络层上篇
目录 一.网络层的定义 二.IPv4数据报 三.IPv4 (一)分类依据 (二)IP地址分类 (三)网络.主机号位数 (四)特殊IP地址 四.划分子网 五.子网掩码 (一)默认子网掩码 (二)VLSM ...
- (*长期更新)软考网络工程师学习笔记——Section 2 数字传输系统
目录 前言 一.PCM体制 (一)E1 (二)T1 (三)复用 二.SONET(同步光纤网) 三.SDH(同步数字系列) 前言 本系列属于全国计算机技术与软件专业技术资格考试(软考)中级网络工程师的长 ...
- (*长期更新)软考网络工程师学习笔记——Section 17 交换技术原理
目录 前言 一.交换机概述 (一)冲突域与广播域 1.冲突域 2.广播域 (二)交换机的基本概念 (三)交换机的分类 1.按管理划分 2.按工作层次划分 3.按网络拓扑结构划分 4.按交换机的交换方式 ...
- (*长期更新)软考网络工程师学习笔记——Section 7 网络层下篇
九.IPv6 (一)IPv6的定义和省略写法 IPv6是IPv4的新版本,其采用更大的地址空间,从而解决IPv4地址耗尽的问题. IPv6的地址长度为128位,通常写为8组,每组4个十六进制数,且中间 ...
- *(长期更新)软考网络工程师学习笔记——Section 20 路由技术原理
目录 一.路由器的概念 二.路由器的功能 三.路由器的端口 (一)RJ-45端口 (二)Console端口.AUX端口 (四)WAN/LAN端口 (五)E1/T1端口 (六)光纤端口 (七)异步/同步 ...
- (*长期更新)软考网络工程师学习笔记——Section 14 Linux服务器配置
目录 一.DNS 服务器配置 (一)Bind 服务 (二)named.conf bind 服务安装 named.conf 文件基本格式 区域文件类型 (三)DNS服务器配置类型 二.DHCP 服务器配 ...
- (*长期更新)软考网络工程师学习笔记——Section 10 网络安全
目录 一.安全等级测评和自查 二.网络安全威胁 (一)常见的安全攻击类型 (二)恶意代码的命名规则 三.安全算法 (一)加密和解密 (二)公钥和私钥 (三)对称加密算法 (四)非对称加密算法 (五)报 ...
最新文章
- linux程序移植到vxworks,VxWorks入门(一):VxWorks Vs Linux
- linux图形化卡在开机界面,linux怎么在开机时进入图形界面
- Windows下通过FTP自动备份数据到服务器并删除指定天数前的备份
- python使用MySQL数据库
- 2021-10-20 Speaking Class
- 深度学习-Tensorflow2.2-Eager模式与自定义训练{4}-微分运算训练练习-16
- 【渝粤教育】21秋期末考试服务标准化10011k1
- 07/11/10 资料整理
- 测量学5_测量误差理论的基本知识
- css黄金色渐变值,ps金色(ps金色渐变数值)
- 安卓智能地图开发与实施:三维地图 - ArcGIS Runtime SDK for Android
- Apple让我明白坚持的意义
- bittorrent_最好的免费BitTorrent客户
- 重庆大学计算机学院毕业设计题目,图像处理毕业设计题目.docx
- JavaScript中函数的length属性
- 服务条目与采购订单、采购申请、工单、项目及WBS的关系
- 用户下单时商品库存变化
- The server time zone value ‘�й���ʱ��‘ is unrecognized or represents more than one time zone
- ls、ls -a、ls -l、ls -al、ll、ll -a区别
- 计算机应用杂志-投稿经历
热门文章
- 如何 救 酷派s180
- x86Android平板电脑刷机方法,小白必看,安卓平板电脑刷机教程之一键刷机
- IDEA 代码块收起快捷键
- android自定义camera预览区域,android camera摄像surfaceview预览界面特定区域(该区域可移动)...
- python中partial库用法详解
- 改善用户体验的404页面最佳实践
- 7-2 大笨钟 (10分)
- 我发誓一辈子也不坐你的车
- 云上武功秘籍(四)金蝶最新产品KIS全版本华为云部署
- 关于前端position属性和display属性,这篇文章已足够