408方面
1.1操作系统
-
os功能
- 进程管理、存储器管理、设备管理、作业管理、文件管理
-
操作系统中的调度
-
高级(作业)、中级(内存)、低级(进程)
-
高级调度(作业调度)
-
按一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业,给他们分配内存等必要资源,并建立相应的进程(建立PCB),以使它(们)获得竟争处理机的权利。
-
高级调度是辅存(外存)与内存之间的调度。每个作业只调入一次,调出一次。作业调入时会建立相应的PCB,作业调出时才撤销PCB。高级调度主要是指调入的问题,因为只有调入的时机需要操作系统来确定,但调出的时机必然是作业运行结束才调出。
-
-
中级调度(内存调度)
- 在内存使用情况紧张时,将一些暂时不能运行的进程从内存中对换到外存中等待。当内存有足够的空闲空间时,再将合适的进程重新换入内存。
-
低级调度(进程调度)
- 主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。进程调度是操作系统中最基本的一种调度,在一般的操作系统中都必须配置进程调度。进程调度的频率很高,一般几十毫秒一次。
-
-
进程线程区别
-
进程是资源的分配基本单位,线程是调度和分派的基本单位
-
进程拥有资源,线程不拥有
-
进程创建和撤销OS操作系统开销更大
-
-
冯诺依曼机器特点
-
组成:存储器+运算器+控制器+输入输出设备
-
特征:
-
存储程序的方式,指令和数据以二进制代码存储在同一存储器,均可地址寻址。
-
指令在存储器中按顺序存放,通常指令是按顺序执行的
-
指令由操作码和地址码组成
-
机器以运算器为中心,输入输出设备和存储器的数据传送通过运算器。
-
-
-
请求分页算法
- 最佳置换算法、先进先出算法、最近最久未使用、时钟算法
-
操作系统的中断
-
运行过程中,出现某些意外情况需要主机干预时,执行中断引指令,机器自动停止运行当前运行的程序,转去运行中断处理程序,当处理结束后返回,运行主机原来被暂停的程序。
-
依据中断处理程序能不能被中断分为:单级中断 多级中断系统
-
-
why os引入文件管理
-
五大职能之一,主要涉及文件的逻辑组织和物理组织,目录结构和管理。
-
所谓文件管理就是os实现文件统一管理的一组软件、被管理的文件以及为实施文件管理所需要的一些数据结构的总称。(是os在负责存取和管理文件信息的机构)
-
从系统的角度,文件系统是对文件存储器的空间进行组织,分配和回收,负责文件的存储,检索,共享和保护。
-
从用户角度,文件系统主要实现“按名存取”,文件系统的用户只要知道所需文件名,即可存取文件中信息,而无需要知道这些文件究竟存放在什么地方。
-
-
进程的概念
- 程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程实体是由程序段、数据段、pcb组成
-
进程和线程的区别
-
地址空间
- 同一进程的线程共享本进程的地址空间,进程之间是独立地址空间
-
资源
- 同一进程内线程共享本进程的资源如内存、io、cpu等,但不同进程之间资源是独立的
-
崩溃时:
-
一个进程崩溃后,在保护模式下不会对其它进程产生影响,
-
但是一个线程崩溃整个进程都死掉。所以多进程比多线程要健壮。
-
-
切换:
-
进程切换消耗资源大,效率低。涉及频繁切换操作,使用线程好于使用进程。
-
同时如果要求同时进行、并且要共享某些变量的并发操作,只能使用线程。
-
-
执行过程
-
每个独立进程有一个程序运行的入口、顺序执行序列和程序入口。
-
但是线程不能独立执行,必须依存在应用程序中,由应用进程提供多个线程的执行控制。
-
-
-
what死锁
-
两个或以上的进程在执行过程中由于资源竞争或者彼此通信造成的阻塞现象,若无外力作用,他们将无法推进下去
-
产生死锁的四个条件 破坏一个即可防止死锁发生
-
资源互斥条件(资源只能被一个进程使用)
-
不可剥夺 (完成前不可被强制释放资源)
-
请求和保持
-
循环等待
-
-
-
死锁定理
- S为死锁状态 ↔️ 当且仅当S状态的资源分配图是不可完全简化的
-
Linux,
- 是一种免费使用的类UNIX操作系统,多用户、多任务、支持多线程和多CPU的操作系统。
-
操作系统资源
-
硬件资源
- cpu、打印机
-
软件资源
- 数据、程序
-
1.2计组
-
sram工作原理
-
存放一个二进制位的物理器件称为存储元,是存储器最基本的构件。地址码相同的多个存储元称为存储单元。若干存储单元的集合成为存储体。
-
sram的存储元是双稳态触发器来记忆信息。非破坏性读出,即使被读出来后,它仍保持原状态而不需要再生。
-
sram存取速度快,集成度低,功耗大,价格昂贵,一般用于高速缓冲寄存器。
-
-
流水线的作用
-
重复过程分为不同的子过程,每个子过程和其他子过程可以并行进行。和工厂内生产流水线很相似,因此成为流水线技术。
-
本质上讲是时间并行技术
-
-
计算机组成
-
硬件:
-
处理器cpu
-
存储器
-
io设备
-
-
功能
-
永久存储程序、数据
-
数据处理运算
-
控制程序走向
-
-
1.3数据结构
-
堆排序
-
利用堆的数据结构设计的排序算法。不稳定的排序算法,
-
堆是大小受限制的完全二叉树。顺序存储、保持双亲大于儿子(大根)、下标直接得到双亲或儿子
-
先建堆、后每次输出堆顶后调整
-
适合关键字数量非常大的情况,只需要存储前n大数据
-
-
顺序表和链表的区别
-
顺序表
-
支持随机存取、存储密度高
-
但是需要大片连续的空间,改变容量不方便
-
-
链式存储
-
离散的小空间易于分配,改变容量方便
-
不支持随机存取,存储密度低
-
-
1.4计网
-
网络搜索时直接从服务器中直接获取的嘛?
-
我认为是的,
-
搜索引起依托多项技术,如爬虫技术,检索排序技术、网页处理技术、大数据处理技术、自然语言处理技术、为信息检索用户提供快速高相关性信息服务。
-
网页抓取:首先,搜索引擎会提前搜索引擎会利用自己的爬虫程序对互联网上的网页进行抓取,获取网页内容。
-
网页索引:搜索引擎会对抓取的网页进行分析,提取网页中的关键词和词组,并将它们存储到索引数据库中。
-
所以,当我们在搜索时,搜索引擎会在自己的服务器里检索索引信息,既执行搜索算法,按照相关性和其他因素进行排名,以便将最相关的网页展示给用户。
-
-
什么是爬虫
-
爬虫(Web Crawler),也称网络爬虫,是一种自动化程序,可以在互联网上自动抓取数据并进行处理。爬虫通常用于搜索引擎、数据挖掘、社交网络分析、网络监控等领域。
-
爬虫可以用于正当的目的,例如搜索引擎、学术研究等,
-
但也可能被用于非法用途,例如爬取他人的个人信息、盗取商业机密等,这种情况下是需要被严格禁止和打击的。
-
-
ipv4 v6区别
-
v4 长度4B ;v6 16B
-
v6路由表更大 对组播和对流支持更强
-
v6安全性更高,会对网络层数据进行加密
-
v6允许协议进行扩充,v4不可以
-
-
摩尔定律
-
是由英特尔公司创始人之一戈登·摩尔于1965年提出的,它预测了集成电路中可容纳晶体管数量的增长趋势。摩尔定律的基本内容是:在同一芯片面积上集成的晶体管数目,约每隔18~24个月就会翻一番,而价格却不断降低。
-
随着集成电路的制造工艺逐渐接近极限,摩尔定律所预测的每隔一段时间性能翻倍的速度已经开始放缓。
-
-
vlan
-
虚拟局域网
-
把较大的局域网分割成较小的与地理位置无关的vlan,一个vlan就是一个小广播域
-
在以太网帧中加入4字节标识符 称为vlan标签 802.1Q帧
-
可以利用支持vlan交换机实现虚拟局域网
-
主机发往交换机的是标准以太网帧 交换机之间发送的是802.1Q帧
-
主机不知道自己的vid 但交换机知道
-
交换机插入标识符转换为802.1Q 发送给其他交换机
-
-
其他计算机领域知识
2.1人工智能
-
人工智能技术ai
-
计算机科学的一个分支,企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。研究包括语言识别、图像识别、自然语言处理、机器人和专家系统等
-
机器学习:通过训练模型来识别模式和关系,进而应用于图像识别、自然语言处理、语音识别等领域。
-
自然语言处理:利用机器学习、深度学习等技术来处理文本、语音等自然语言信息,实现自动翻译、文本分类、问答系统等应用。最近爆火的chatGPT就是比较优秀的自然语言处理模型。
-
计算机视觉:通过对图像、视频等视觉数据的分析和处理,实现自动驾驶、人脸识别、安防监控等应用。
-
机器人技术:将人工智能技术应用于机器人领域,实现自主导航、任务执行、语音交互等功能。
-
专家系统是一种模拟人类专家解决领域问题的计算机程序系统。
-
-
对于chatGPT的了解
-
首先,他的全名:Chat Generative Pre-trained Transformer,由openAI公司研发,基于gpt3.5框架的自然语言处理工具,
-
Generative (生成式): GPT作为生成式模型,具备生成新文本的能力,根据训练数据中的模式生成符合语言规律的文本。
-
Pre-trained(预训练): GPT模型在应用于特定任务之前会进行预训练,使用大量无标签的文本数据。它是目前世界上最大的预训练语言模型之一。
-
Transformer是一种专为自然语言处理任务设计的深度学习架构。它的核心在于自注意力 (self-attention)机制,这使得模型在处理文本时能够关注句子内部的各个部分,有助于捕捉文本中的长距离依赖关系和复杂语义
-
-
优点:它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动等,对于一些专业知识都能回答的有模有样。它在海量的自然语言文本上进行了大规模的预训练,因而具备了强大的自然语言理解和生成能力。
-
chatGPT了解的知识广泛、能够改变一些行业结构、引起了全世界对于语言ai模型的关注,目前很多大公司的在大模型上的投入。
-
当然科技式把双刃剑,gpt也是有缺点的,有时理解存在偏差,也会编造事实的现象。而且容易被作为舞弊的工具。
-
-
深度学习与 机器学习
-
机器学习和深度学习都属于人工智能领域的分支。
-
机器学习是一种通过算法来让计算机从数据中学习的技术,包括监督学习、无监督学习、半监督学习和强化学习等。
-
深度学习是一种机器学习算法,它模仿人类神经系统的结构和功能,通过一层一层的神经网络对数据进行处理和学习,可以应用于图像识别、自然语言处理、语音识别等领域。
-
因此,深度学习是机器学习的一个分支,是机器学习算法的一种。机器学习和深度学习都是人工智能技术的重要组成部分,它们在各自的应用领域中都发挥着重要作用。
-
-
机器学习算法
- 决策树算法、朴素贝叶斯算法、支持向量机、人工神经网络算法、随机森林算法、关联规则算法
-
专家系统是什么
-
专家系统是一种在特定领域内具有专家水平解决问题能力的程序系统。
-
它是一种基于知识的推理系统,通过使用规则和推理机来模拟人类专家的决策过程。
-
专家系统一般由三部分组成:知识库(知识或经验)、推理引擎(搜索、得出结论)和用户界面。
-
-
当前的热点问题
-
人工智能(AI):AI一直是计算机行业的热门话题,涉及机器学习、深度学习、自然语言处理、计算机视觉等方面,chatGPT带动了一系列的互联网大厂向ai产品的研发如微软把chatGPT接入bing、office copoilt等、谷歌推出了Bard聊天机器人、百度推出了文心一言,后续肯定会有更多的产品和研究在ai方面投入。
-
区块链:区块链技术是一种去中心化的数据存储和交易方式,具有防篡改、去中心化、可追溯等特点,被广泛应用于数字货币、供应链管理、知识产权保护等领域。
-
-
语法语义的区别
-
语法是一种规则,用于描述编程语言的结构和组成方式。如果程序违反了语法规则,它将不会被编译或解释器无法正确执行。
-
语义表示意思,是指程序的含义或功能。程序可以符合语法规则,可以编译,但如果其语义不正确,程序仍然是 错误的。
-
在编写程序时,需要同时考虑语法和语义,以确保程序的正确性和可靠性。
-
2.2 大数据与云计算
-
大数据、云计算、区块链的了解
-
1.大数据(Big Data):
-
大数据是指由于数据量太大、处理速度太快、数据类型太多而无法使用传统数据库和数据处理技术处理的数据。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。
-
大数据技术主要包括数据采集、存储、处理和分析等方面,通过对大数据的深度分析,可以提供更准确、实时、个性化的数据支持。
-
-
2.云计算(Cloud Computing):
-
云计算是一种通过网络提供计算资源和服务的技术,分布式计算的一种,是指通过网络“云”将巨大数据计算处理程序分解成无数的小程序,然后通过多台服务器组成的系统处理分析结果并返回给用户。
-
供应云计算服务主要包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)等模式。
-
基础设施即服务(IaaS):虚拟化的计算资源,提供场外服务器给开发者,环境和开发都是自己完成,平常所买的腾讯云、华为云云服务器就是IaaS服务。
-
平台即服务(PaaS):供应商提供环境和平台,开发者将开发的应用程序部署到供应商的云计算基础设施上去。不需要考虑底层到运行环境。
-
软件即服务(SaaS):即直接提供应用程序,供用户使用的软件。
-
-
核心技术包括:虚拟化技术、分布式数据存储技术(主流的GFS、HDFS)
-
云计算技术可以实现资源共享、弹性扩展、自动化管理等优点,为企业和个人提供了更加便捷、灵活、高效的计算服务。
-
-
3.区块链(Blockchain):
-
区块链是一种去中心化、可信、安全的数据存储和传输技术,
-
由区块链网络、区块链节点、区块链智能合约等组成。
-
区块链技术的主要特点是去中心化、可追溯、不可篡改等,可以为金融、物流、医疗等领域提供更加安全、高效、透明的数据传输和处理方式。
-
-
-
什么是数据挖掘
-
是指大量的数据中通过算法搜索隐藏于其中信息的过程。
-
数据挖掘通常与计算机科学相关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
-
2.3 物联网
-
对于物联网的了解
-
物联网技术是指将各种物品(如传感器、智能设备、机器等)连接到互联网上,并通过互联网相互通信和协同工作的技术。
-
常用的物联网技术包括以下几种:
-
传感器技术:通过各种传感器获取物理量、环境信息等数据,进行分析和处理。
-
通信技术:包括Wi-Fi、蓝牙、ZigBee等,用于设备之间的数据交换和控制。
-
安全技术:需要使用各种加密技术和安全协议来保护设备和数据的安全。
-
大数据技术、云计算技术:用于处理海量的物联网设备数据,如数据存储、数据处理、分析和挖掘等。
-
-
-
智能家居用到的物联网技术
-
日常用到短距离无线通信技术的有Wi-Fi,Bluetooth,NFC,Zigbee,MQTT,RFID(射频识别)技术等
-
wifi常用于智能电视、音箱等电子设备与互联网连接;
-
Bluetooth:蓝牙用于连接智能手机和其他设备,我曾用蓝牙控制过机械臂;
-
NFC技术:它可以用于智能家居设备之间的数据传输。比如手机和智能手环常配有nfc功能,实现复制门禁卡、交通卡等。
-
Zigbee它主要用于连接智能家居设备和中央控制器。Zigbee协议可用于控制照明、温度和门锁等设备。
-
MQTT:MQTT是一种轻量级的消息协议,用于在智能家居设备之间传输数据。国内很多企业都广泛使用MQTT作为Android手机客户端与服务器端推送消息的协议,我写过的智能网联软件就使用到mqtt服务和zigbee协议的设备与电子设备通信。
-
射频识别(RFID)它使用无线电波来识别和跟踪物品或人员。
-
-
-
共享单车的技术
-
过程就是扫码、解锁、骑行、锁车、在线支付
-
扫描二维码 跳转至网页或小程序
-
解锁普遍采用gps定位+蓝牙 解锁
-
锁车有的手动解锁 有的手机解锁
-
在线平台进行支付操作
-
2.4 编程
-
c java区别
-
语法不同 c面向过程 java面向对象语言(封装、继承、多态、抽象)
-
1.c能直接操作内存,但会存在忘记释放内存泄漏等风险。2.Java不能操作内存,还有内存回收机制,更加安全
-
c有指针 java没有
-
c的线程更灵活 java线程都封装好了
-
-
c++三大特性
-
封装:对外只暴露最小完整可用接口,隐藏内部实现细节
-
继承:可以继承父类的方法和属性
-
多态:可以两个对象同时继承同一个父类,不同的实现方法
-
-
多继承
- 一个子类可以拥有多个父类,它继承了多个父类的特性
-
c一般结构
- 顺序结构、分支结构、循环结构
-
类的意义
-
面向对象中class(类)是一种重要的概念,它用于定义对象的属性和行为。
-
类可以看作是对象的模板或蓝图,它定义了一组属性和方法,可以被用来创建新的对象实例。
-
它提供了一种抽象、封装、继承和多态的机制,使得程序设计更加灵活和可维护。
-
-
面向对象、过程区别
-
面向过程
- 性能更高,因为面向对象类的调用需要实例化,开销比较大,比较消耗资源;单片机、嵌入式开发、linux系统一般都采用面向过程开发,性能是最重要的因素。
-
面向对象
- 易复用、易维护、易拓展,由于面向对象有封装、抽象、继承、多态的特性,可以设计出低耦合的系统,是系统更加灵活、更易于维护
-
-
程序的三个组成部分
- 程序号、程序内容、程序结束
-
软件组成部分
- 程序、数据、文档
-
子程序
-
大型程序中的某部分代码,由一个或多个语句块组成。
-
他负责完成某项特定任务,
-
相对其他代码,具有相对独立性
-
2.5 数据库
-
DBMS
- 数据库管理系统,操纵和管理数据库的大型软件,用于建立、使用和维护数据库
-
数据库管理系统DBMS功能
- 数据定义、数据操作、数据组织存储与管理、数据库运行管理、数据表保护
-
数据定义语言和数据操作语言
-
数据定义语言DDL,描述或定义实体,CREATE/ALTER/DROP都是DDL
-
数据库操作语言DML,用于数据操作,增删改查都是
-
-
数据库建立过程(设计总体流程)
- 需求分析、概要设计(ER模型)、逻辑结构设计(ER转为表)、物理结构设计阶段(存储结构、路径)、实施阶段、运行和维护阶段
-
ER图
-
实体关系图(Entity Relationship Diagram)提供了表示实体模型、属性和联系方法,用来描述现实世界的概念模型
-
他是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框”表示实体型,矩形框内写明实体名称;“椭圆框”表示属性,用“实线”连接对应的实体;“菱形框”表示关系。
-
-
索引的作用
-
大大加快数据的检索速度,保证数据库表中每一行数据的唯一性
-
加速表与表之间的连接
-
使用分组和排序子句进行检索时,可以显著减少查询中分组和排序的时间
-
-
事务及四个特征
-
单个逻辑工作单元执行的一系列操作。
-
原子性、一致性(响应都要改)、隔离性(并发执行的相互隔离)、持久性(能永久保存)
-
-
事务的内部故障
-
是指事务运行没有达到预期的终点,未能成功地提交事务,不满足原子性,使数据库处于不正确的状态。
-
内部故障可能通过事务程序本身发现,是可以预期地故障,但是更多是不可预期的故障,如数据溢出。当发生内部故障时,可以强行回滚rollback该事务,该类恢复操作称为撤销undo
-
-
数据库基本算术逻辑运算
-
基本操作:并、交、差、
-
积(笛卡尔积):它是将两个关系的所有元组进行组合,生成一个新的关系。
-
选择(条件判断)、投影(select 部分属性)
-
-
数据库的冷热备份
-
冷备份又称离线备份,是指在数据库处于关闭状态并且数据库不能更新的情况下进行的数据库完全备份,并可以对数据进行指定恢复。
-
热备份是指在数据库运行的状态下,采用archivelog mode方式备份数据库的方法。及热备份时处于系统正常运行状态下的备份。
-
-
数据库系统
-
由数据库及其管理软件组成
-
是为了适应数据处理的需要而发展起来的一种较为理想的数据处理系统,也是一个为实际运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体
-
-
数据库系统故障
-
事务内部故障:分为可预期 | 不可预期。可以强制rollback,undo撤销操作
-
系统故障(软故障):需要停止所有运行的业务,重启系统。不破坏数据库,但影响业务。
-
介质故障(硬故障):硬件出现故障,使数据库数据丢失
-
计算机病毒故障:恶意计算机程序,破坏计算机,同时破坏数据库系统(一般是数据)
-
-
数据库视图
-
虚拟表、其内容由查询定义。
-
同正式表一样,由带名称的行列数据。
-
但是视图不在数据库中以存储的数据值集形式存在。
-
-
数据库的三大范式
-
第一:确保每列保持原子性(数据项不可分)
-
第二:满足第一范式,且每一个非主属性完全函数依赖于任何一个候选码(确保表中的每列都和主键相关)
-
第三:满足第二范式,非主属性既不传递依赖于码,也不部分依赖于码(确保每列都和主键列直接相关,而不是间接相关)
-
-
信息安全用到的工具
- 病毒防护技术、入侵检测技术、安全描述技术、认证签名技术、应用安全技术
-
群(group):
-
<R,+>满足封闭性、结合律、单位元、逆元。
-
是两个元素作二元运算得到的一个新元素,需要满足群公理(group axioms),即:
-
①封闭性:a ∗ b 仍是集合中的元素
-
②结合律:(a ∗ b) ∗ c = a ∗ (b ∗ c)
-
③单位元:a ∗ e = e ∗ a = a
-
④逆 元:加法的逆元为-a,乘法的逆元为倒数1/a,… (对于所有元素)
-
-
阿贝尔群满足封闭性、结合律、单位元、逆元、交换律
-
-
环
-
环是一个代数结构,它由一个集合R和两个二元运算构成,
-
简单定义:<R,+,×>中<R,+>是阿贝尔群,<R,×>是幺半群,且×对+满足分配律。
-
定义:R为一个非空集合,若在R内定义两种运算(通常表示为加法运算“+”和乘法运算“·”),R中所有元素满足以下条件:123.则称R关于“+”和“·”形成一个环,记作(R,+,·)
-
(1)R关于加法运算“+”构成一个Abel群;(群的基础上满足交换律)
-
(2)R关于乘法运算”·”构成一个半群;(满足封闭性、结合律)
-
(3)任意 (abc∈R),乘法对加法分配律成立。
-
a·(b+c) = a·b+a·c
-
(b+c)·a = b·a+c·a
-
-
-
也可以是(乘法满不满足交换律)可分为交换环或非交换环。
-
-
除环:R是一个有幺(单位元)的环,如果< R ^ , ∗ >是一个群,则称R为除环,
-
域:可交换的除环称为域。
-
统计学方差:
-
方差是概率论和统计方差衡量随机变量离散程度的度量。概率论中的方差用来度量随机变量与数学期望之间的偏离程度,
-
统计中(样本)方差是每一个样本值与全体样本值平均数之差的平方的平均数。
-
-
泰勒级数和傅里叶级数
2.6 软件工程
-
软件工程设计步骤
- 问题定义、可行性分析、需求分析、概要设计、详细设计、编码和单元测试、综合测试、运行维护
-
软工设计开发模型
-
瀑布模型:它是一种线性顺序的开发过程模型,按照顺序完成需求分析、设计、编码、测试和维护等阶段,各个阶段之间严格按照顺序逐一执行。不利于迭代和反馈,难以及时调整开发方向。
-
增量模型:增量模型是一种迭代的开发模型,每次迭代都会增加新的功能,直到完成整个系统。这种模型可以让客户在开发过程中逐步看到系统的变化,并且可以在不断迭代的过程中逐步完善系统。
-
螺旋模型:螺旋模型是一种逐步开发和迭代改进的模型,每个迭代周期包括四个阶段:计划、风险分析、实施工程和评审。这种模型适用于复杂的项目,可以帮助开发团队更好地控制风险。
-
原型模型:原型模型是一种用于快速开发原型的模型,通过制作一个简化的版本来快速测试和修改系统的要求。原型模型通常用于复杂的系统开发,以便更好地理解用户需求。
-
敏捷开发模型:(细分小项目)
-
敏捷开发是一种基于迭代和增量的开发方法,旨在快速响应用户需求和变化。
-
开发初期,将软件项目切分为多个子项目,每一个子项目的成果都经过测试,具备可视,可集成、可运行使用的特征。
-
换而言之,就是把大项目分成多个项目联系的,可以独立运行的小项目,在开发过程中软件一直处于可以使用的状态。
-
-
喷泉模型
- 用户需求为动力,以对象为驱动模型,主要用于描述面向对象的软件开发过程
-
-
软件工程的而生命周期
-
软件的产生直到报废或停止使用的生命周期。软件生命周期内有问题定义、可行性分析、概要设计、详细设计、编码、测试、运行、维护升级到报废等阶段
-
也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。
- 迭代不强调开发工作的序列化过程,而是将这些过程并行化
-
-
软件测试的目的
- 发现程序中的错误
-
黑盒白盒测试
-
白盒测试也称为结构测试,站在开发者角度,能够看到代码的内部结构,主要用于测试软件编码过程中的错误。
-
黑盒测试也称为功能测试,站在用户使用角度,并不知道程序的内部实现逻辑,主要检测软件功能是否正常使用。在测试过程中把程序看做不能打开的黑盒子,检查程序功能是否按照设计需求以及说明书的规定能够正常使用。
-
-
αβ测试
-
α内测:开发环境,开发人员在场随时记录错误
-
β公测:实际使用场景,开发人员不在场
-
-
人机交互原则
- 友好性、灵活性(提供可替换的对话途径)、明确性(明确的反馈)、一致性(步骤尽可能和人的思维方式一致)