2025专技-知识点01

221 阅读38分钟

计算机发展

第四代计算机,是微型机

计算机辅助

1、计算机辅助教学(CAI)

2、计算机辅助设计(CAD)

3、计算机辅助制造(CAM)

4、计算机辅助测试(CAT)

世界上第一台计算机诞生于:1946年

计算机发展过程按使用的电子器件可划分为四代,微型计算机出现在第 4 代。

-- ======================================================

冯诺依曼结构

冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture)。

自第一台计算机 ENIAC 发明以来,计算机系统的技术已经得到了很大的发展,但计算机硬件系统的基本结构没有发生变化,仍然属于冯·诺依曼体系计算机。

计算机硬件系统仍然由运算器控制器存储器输入设备输出设备 5 部分组成。

计算机硬件(Computer hardware)是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。这些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。简言之,计算机硬件的功能是输入并存储程序和数据,以及执行程序把数据加工成可以利用的形式。在用户需要的情况下,以用户要求的方式进行数据的输出。

存储器是计算机的记忆装置,用于存储程序和数据等各种信息。存储器分为内存储器和外存储器两大类。

注意: 在计算机中,通常将 CPU和内存的组合称为主机

( 1 )只读存储器( ROM )

只读存储器( ROM )的特点是:存储的信息只能读出,不能写入;断电后, ROM 中的信息不会丢失。只读存储器分为掩膜 ROM 、 PROM 、 EPROM 和 EEPROM ( E2PROM )。

Mask ROM(掩膜ROM)

掩膜 ROM 上的程序和数据是由生产厂家采用掩膜技术直接固定在上面,出厂后用户只能读取不能改写。

PROM

PROM 称为可编程只读存储器,也称为一次写入的 ROM 。 PROM 允许用户一次性地写入程序和数据,然后将其固化,内容不能更改。

EPROM

EPROM 称为可擦除可编程只读存储器。它允许用户多次写入信息。重新写入信息的方法是:通过紫外线照射 EPROM ,擦除原有的信息,然后就可以再次输入新信息。

Flash ROM

E2PROM 称为电擦除可编程只读存储器,其性能与 EPROM 相同。但在重新写入信息时,其擦除的方式与 EPROM 不同,它使用电来擦除原有信息。

( 2 ) 随机存储器( RAM )

随机存储器( RAM )是易失性存储器,其特点是:可以随机读取或写入信息;计算机一旦断电后, RAM 中的信息将全部丢失,且不可恢复。随机存储器可分为静态随机存储器(SRAM) 和动态随机存储器( DRAM )两种。

静态随机存储器( S RAM )

静态随机存储器( SRAM )采用双极性型晶体管触发器作为记忆元件,只要不断电,信息就可以长期保存。 SRAM 的优点是存取速度快,不需要刷新,工作状态稳定; SRAM 的缺点是集成度较低,价格昂贵。

动态随机存储器( DRAM )

动态随机存储器( DRAM )采用 MOS 电路和电容作为记忆元件。由于电容会放电,因此为了不断地补充被释放的电荷,就必须定时对所存的信息进行刷新。 DRAM 的优点是集成度高,功耗低,价格便宜; DRAM 的缺点是存储速度慢,需要不断地刷新。

( 3 )高速缓冲存储器( Cache )

在微机中, CPU 的速度在不断提高,而内存的存储速度却慢于 CPU 。为了能够解决内存与 CPU 速度不匹配的问题,更快地存取数据,产生了位于 CPU 与内存之间的高速缓冲存储器 Cache 。 Cache 的存储速度与 CPU 相当。因此,只要将内存中当前常用的信息放在 Cache 中,当 CPU 向内存读取信息时,就会首先访问 Cache ,存取速度也就随之迅速提高了。

-- ======================================================

-- ======================================================

计算机系统组成

-- ======================================================

软件=程序+数据+文档

-- ======================================================

计算机辅助应用

1、计算机辅助工程(CAE)

2、计算机辅助测试(CAT)

3、计算机辅助制造(CAM)

4、计算机辅助教学(CAI)

5、计算机辅助设计(CAD)

-- ======================================================

人工智能

人工智能(Artificial Intelligence)简称 AI,主要研究如何用人工的方法和技术,使用各种自动化机器或智能机器(主要指计算机)模仿、延伸和扩展人的智能,实现某些机器思维或脑力劳动自动化。一般包括模式识别、专家系统和机器翻译。

1、机器人

2、机器翻译

3、模式识别:

语音识别、文字识别、指纹识别

4、机器博弈:

下棋

5、专家系统

专家系统是一种模拟人类专家解决某些领域问题的计算机软件系统,系统内部含有大量的某个领域的专家水平的知识与经验,能够运用人类专家的知识和解决问题的方法进行推理和判断,模拟人类专家的决策过程,来解决该领域的复杂问题。

6、虚拟现实

-- ======================================================

-- ======================================================

-- ======================================================

-- ======================================================

-- ======================================================

PC机的主板

1 .主板又称母板,在主板上通常安装有 CPU 插座(或插槽)、 CPU 调压器、主板芯片组、存储器插座、总线插槽、 ROMBIOS 、时钟/C MOS 、电池、超级 I/O 芯片等。

2 . CPU 和存储器芯片分别通过主板上的 CPU 插座和存储器插座安装在主板上。

3 . PC 机常用外围设备主要通过一些扩充长(例如声音卡、视频卡等,也叫做适配器或控制器)与主板相连,扩充卡通过卡上的印刷插头插在主板上的 PCI 总线插槽中。

4 . CRT 显示器通过插入 AGP 插槽的图形长与主板相连。

5 .随着集成电路的发展和计算机设计技术的进步,许多扩充卡的功能可以部分或全部集成在主板上(例如,软盘、硬盘、串行口、并行口、声卡等控制电路都可以集成在主板上)。

6 .主板上还有两块特别有用的集成电路:一块是只读存储器( ROM ) ,其中存放的是基本输入/输出系统( BIOS ) ;另一个集成电路芯片是 CMOS 存储器,其中存放着用户对计算机硬件所设置的一些参数(称为“配置信息”)。

-- ======================================================

PC机的芯片组

芯片组是 PC机各组成部分的枢纽,主板上的所有控制功能几乎都集成在芯片组内,它既实现了 PC 机系统总线的功能,又提供了各种 I/O 接口及相关的控制。芯片组一般由 2 一 4 块超大规模集成电路组成。 注意:CPU 类型或参数不同时,需要使用不同的芯片组。 CPU的系统时钟及各种与其同步的时钟均由芯片组提供。芯片组还决定了主板上所能安装的内存最大容量、速度及可使用的内存条的类型。

-- ======================================================

IO总线

I/O总线上有三类信号:数据信号、地址信号和控制信号,负责传输这些信号的线路分别称为数据线、地址线和控制线。

协调与管理总线操作的是总线控制器,总线控制器包含在主板的芯片组内。

总线的带宽

总线最重要的性能是它的数据传输速率,也称为总线的带宽,即单位时间内总线上可传输的数据量。总线带宽的计算公式如下:

总线带宽( MB / s ) = (数据线宽度/ 8 ) x 总线有效工作频率( MHz )

在微型计算机中,常用的总线有 PC 总线、 ISA 总线、 MCA 总线、 EISA 总线、 PCI总线。

-- ======================================================

计算机性能

-- ======================================================

计算机未来发展的趋势

1、巨型化

巨型化是指为了适应尖端科学技术的需要,发展高速度、大存储容量和功能强大的超级计算机。

2、网络化

互联网将世界各地的计算机连接在一起,从此进入了互联网时代。

3、微型化

随着微型处理器(CPU)的出现,计算机中开始使用微型处理器,使计算机体积缩小了,成本降低了。另一方面,软件行业的飞速发展提高了计算机内部操作系统的便捷度,计算机外部设备也趋于完善。

4、智能化

计算机人工智能化是未来发展的必然趋势。现代计算机具有强大的功能和运行速度,但与人脑相比,其智能化和逻辑能力仍有待提高。

5、多媒体化

传统的计算机处理的信息主要是字符和数字。事实上,人们更习惯的是图片、文字、声音等多种形式的多媒体信息。多媒体技术可以集图形、图像、音频、视频、文字为一体,使信息处理的对象和内容更加接近真实世界。

-- ======================================================

计算机工作原理

冯·诺依曼提出了“存储程序、程序控制”的设计思想,同时指出计算机的构成包括以下几个方面:

1.由运算器、存储器、控制器、输入设备、输出设备五大组件组成计算机系统。

2.计算机内部采用二进制表示的数据和指令。

3.采用“存储程序和程序控制”技术(将程序事先存在主存储器中,计算机在工作时能在不需要人员干预的情况下,自动逐条取出指令并加以执行)。

根据冯·诺依曼体系的结构原理,计算机的工作过程为:数据从输入设备到存储器(存储程序),在控制器的统一管理下,按程序规定的步骤执行相应的运算操作(按顺序执行),最后将结果从输出设备输出,具体流程如图。

-- ======================================================

-- ======================================================

提高做题速度

事业单位考试,容错率很低,切记要提高正确率

-- ======================================================

计算机系统组成

-- ======================================================

计算机硬件(Computer hardware)是指计算机系统中由电子、机械和光电元件等组 成的各种物理装置的总称。

1944 年,美籍匈牙利数学家冯·诺依曼提出了电子计算机中存储程序的概念,并对电 子计算机的硬件体系结构进行了定义。冯·诺依曼也因此被称为“电子计算机之父”, 直到现在无论计算机如何发展,其理论基础都是冯.诺依曼原理。

其主要核心思想有三点:

(1)使用二进制;

(2)存储程序和程序控制;

(3)一个完整的计算机硬件系统应该由五个部分组成:运算器、控制器、存储器、 输入设备、输出设备。

运算器+控制器=CPU

内存储器就是主存。

只读存储器(ROM)

随机存储器(RAM)

高速缓冲存储器(CACHE)

外存储器(辅助存储器)

-- ======================================================

微型计算机的主要技术指标

1、字长:CPU 一次能同时处理二进制数据的位数。

2、时钟主频:指 CPU 的时钟频率,单位 GHz。

主频=外频*倍频

3、运算速度:指每秒钟所能执行加法指令数目,常用 MIPS 表示。

4、存储容量:主要指内存的存储容量。

5、存储周期:指 CPU 从内存储器中存取数据所需要的时间。

冯诺依曼理论的核心是存储程序和(程序控制)

-- ======================================================

计算机软件的概念

计算机软件(Computer Software)是指计算机系统中的程序、数据及其文档。软 件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。

-- ======================================================

进制转换

二进制,表示B

八进制,表示O

十进制,表示D

十六进制,表示H

八进制、十六进制转换成十进制

-- ======================================================

计算机编码

1、BCD码

BCD 码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之 间的转换得以快捷的进行。例如十进制数 82.5 对应的 BCD 码为(10000010.0101)BCD, 其码并非真实意义的二进制,对应的二进制数是(1010010.1)2。

2、ASCII码

ASCII 码使用指定 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标 准 ASCII 码也叫基础 ASCII 码,用 7 位二进制表示一个字符。

ASCII 码从小到大排序: 控制字符(32 个)->数字(0<1<…<9)->大写字母(A小写字母(a<b<...)

3、汉字编码

· 外码(输入码)

外码也叫输入码,是用来将汉字输入到计算机中的一组键盘符号。目前常用的输 入码有拼音码、五笔字型码、自然码、表形码、认知码、区位码和电报码等。

· 交换码

计算机内部处理的信息,都是用二进制代码表示的,汉字也不例外。而二进制代 码使用起来是不方便的,于是需要采用信息交换码。中国标准总局 1981 年制定了中 华人民共和国国家标准 GB2312--80《信息交换用汉字编码字符集--基本集》,即国标 码。

· 机内码,根据国标码的规定,每一个汉字都有了确定的二进制代码,在微机内部汉字代码 都用机内码,在磁盘上记录汉字代码也使用机内码。

· 汉字的字形码

字形码是汉字的输出码,输出汉字时都采用图形方式,无论汉字的笔画多少,每 个汉字都可以写在同样大小的方块中。通常用 16×16 点阵来显示汉字。

-- ======================================================

数值编码

数值在计算机中的表示形式称为机器数,一个数的最高位定义为符号位,其余位用来表示数值。常用的机器数表示法有原码、反码和补码 3 种

-- ======================================================

汉字编码

-- ======================================================

ASCII码(字符编码)

-- ======================================================

多媒体特性:

1、多样性

2、交互性

3、集成性

4、数字化

5、实时性

-- ======================================================

图像数字化过程

1、采样

采样的实质就是用若干个像素(Pixel)点来描述图像,称为图像的分辨率,用点的 “列数×行数”表示。

2、量化

量化是在图像经采样离散化之后,用二进制数来表示这些离散点对应的颜色信息的过程。

3、图像编码压缩

无损压缩:对图像中的重复信息压缩,无失真。

有损压缩:通过去掉图像细节来压缩图像,有失真。常见的图像文件格式 :

图像深度确定彩色图像的每个像素可能有的颜色数,决定了彩色图像中可出现的最多 颜色数,若每个像素有 8 位,则最大灰度数目为 2 的 8 次方,即图像能表示 256 种颜 色。

像素大小计算

图像大小计算

多媒体技术中,运动图像压缩编码的国际标准,MPEG。

-- ======================================================

软件危机

软件开发的生产率远远不能满足客观需要。 开发的软件产品往往不能满足用户的实际需要。

软件产品 的质量低下且可维护性差 。 很难估计软件开发的进度计划与成本 。

根本原因

1、缺乏可见性,在运行之前往往难以衡量,质量也难以评价

2、不会因为长期使用而用坏,软件维护通常意味着修正或修改原来的设计,较难维护

3、规模庞大,需分工合作,如何保证每个人的工作合在一起是极端复杂的问题,软件开发与维护的方法不正确。

软件产品必须由一个完整的配置组成(程序、文档、数据)

消除软件危机的途径:

1、正确认识计算机软件

2、认识到软件开发是一个协同合作、共同完成的工程仙姑并吸取经验

3、推广使用自己总结的开发软件成功的技术和方法

4、开发使用更好的软件工具

软件工程的基本原理

1、用分阶段的生命周期计划严格管理

2、坚持进行阶段评审

3、实行严格的产品控制

4、采用现代程序设计技术

5、结果应能清楚地审查

6、开发小组的人员应该少而精

7、承认不断改进软件工程实践的必要性

软件工程方法学:

在软件生命周期全过程中使用一套技术方法的集合称为方法学。

软件工程方法学,三要素:方法、工具和过程

1、传统方法学

2、面向对象方法学

软件工程过程定义了

1、方法使用的顺序

2、要求交付的文档资料

3、为保证质量和适应变化所需要的管理

4、软件开发各个阶段完成的里程碑

软件工程项目的基本目标

1、付出较低的开发成本

2、达到要求的软件功能

3、取得较好的软件性能

4、开发的软件易于移植

5、需要较低的维护费用

6、能按时完成开发工作,及时交付使用

-- ======================================================

软件开发流程

软件开发流程通常包括如下几个步骤:

  1. 需求分析:这是软件开发的起点,主要任务是明确软件的目标和需求。开发团队与客户或用户进行深入交流,列出所有功能需求并划分优先级,确保每个需求都被准确理解。
  2. 可行性研究:在明确需求后,需要对解决方案进行可行性分析,包括技术、经济和操作可行性,以确保项目可以在预算范围内实现。
  3. 概要设计:开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
  4. 详细设计:在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。
  5. 编码与实现:根据设计文档,开发人员开始编写代码,实现软件的各种功能。这一阶段需要遵循编码规范,确保代码的可读性和可维护性。
  6. 测试:软件开发完成后,需要进行严格的测试,以确保软件的稳定性和可靠性。测试包括单元测试、集成测试和系统测试等,确保软件在各种场景下都能正常工作。
  7. 软件交付:软件开发完成后,向客户交付软件安装程序、用户手册等相关文档,并提供安装和使用的指导。
  8. 维护与升级:软件上线后,进行维护和改进,包括修复漏洞、优化性能和添加新功能,以满足用户需求和适应市场变化。

软件开发流程的每个阶段都需要严格的文档记录和沟通,以确保团队成员对项目有共同的理解,从而提高开发效率和软件质量。

不同阶段的详细任务和工具

  • 需求分析阶段:产品经理与客户沟通,明确需求并绘制原型图。
  • 规划设计阶段:UI设计师根据原型图设计界面效果图,并提供标注和设计规范。
  • 开发阶段:研发工程师根据设计文档进行编码实现,并进行技术预研和需求确认。
  • 测试阶段:测试工程师编写测试用例,进行功能测试和性能测试,并提交给开发人员修改。
  • 部署上线阶段:项目经理与客户沟通,确保软件稳定后进行试运行和正式上线。
  • 运维支持阶段:开发团队提供技术支持和维护服务。
  • 优化升级阶段:根据用户反馈和技术进步,进行软件的优化和升级。

通过以上步骤,软件开发从需求分析到最终上线运营的整个过程得以顺利完成。

软件开发模型分类

-- ======================================================

软件开发模型

瀑布模型

原型模型

增量模型

螺旋模型

喷泉模型

-- ======================================================

内聚与耦合

标准:内聚和耦合

含义:

1、内聚(cohesion)——衡量一个模块内部各个元素彼此结合的紧密程度

2、耦合(coupling)——衡量不同模块之间的相对独立性(互相连接的紧密程度)

种类:非直接耦合——两个模块之间没有直接关系,他们中任何一个都不依赖于另一个而能独立工作

数据耦合——一模块访问另一模块,相互传递的信息已参数形式给出,并且传递的参数完全是简单数据元素,而不是控制元素、公共数据结构和外部变量。

标记耦合——两模块之间都要使用同一数据结构的一部分,不是采用全程公共数据区共享,而是通过模块接口界面传递数据结构的一部分。

控制耦合——一模块传递给另一模块的参数中包含了控制信息(开关,标记,名字等),该控制信息勇于控制接收模块中的执行逻辑。

外部耦合——一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量信息。

公共耦合——一组模块都访问同一个公共数据环境

内容耦合——一模块直接访问另一模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重迭(只出现在汇编程序中);一个模块有多个入口。

*从上到下耦合性从低到高,独立性从高到底

模块的内聚有哪几种

种类:巧合内聚(偶然内聚)——将几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块

逻辑内聚——完成一组在逻辑上相关的任务的模块间具有逻辑内聚

时间内聚(经典内聚)——完成几个必须在同一时间内进行的任务的模块间具有时间内聚

过程内聚——一个模块完成多个任务,这些任务必须按指定的过程执行。把流程图中的某一部分划出组成模块就得到过程内聚模块

通信内聚——一个模块内所有成分都使用同一输入数据或产生同一输出数据,即一个模块内所有处理元素都集中在某个数据结构的一块区域中的模块具有通信内聚

信息内聚——一个模块内完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点

结构化程序设计的基本要点

结构化程序设计是尽可能少用GOTO语句的程序设计方法。最好仅在检测出错误时才使用GOTO语句,而且应该总是使用前句GOTO语句。

-- ======================================================

结构化分析与设计

定义:结构化分析方法是一种利用自顶向下逐层分解、由粗到细、由复杂到简单技术的求解方法。

工具:数据流图(DFD 实体—关系图(E-R) 数据字典(DD) 描述基本加工小说明(Process SPECification)

数据流图

定义:数据流图是描述数据加工处理过程的有效工具。它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。

作用:主要描述系统的功能,即当前系统主要完成哪些功能。

基本符号:箭头——数据流 圆或椭圆——加工(变换) 双杠或单杠——数据 矩形框——外部实体

数据字典

定义:数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确地、严格地定义了每一个与系统相关的数据元素,并以字典式顺序将它们组织起来,使得用户和分析员对所有的输入、输出、存储成分和中间计算有共同的理解。

作用:对系统所有的数据进行描述和解释并进行管理。

条目:数据项条目、数据流条目、数据库文件条目

-- ======================================================

面向对象的分析与设计

对象:是封装了数据结构及可以施加在这些数据结构上的操作的封装体。

类:对具有相同属性和操作的一组对象的抽象性描述,它描述了属于该对象类型的所有对象的性质,包括外部特性和内部实现两个方面。

消息:是用来请求对象执行某一处理或回答某一要求的信息。

方法: 方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。

属性: 属性就是类中定义的数据,它是对客观世界实体所具有的性质的抽象。

封装: 封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。

继承: 是现实世界中遗传关系的直接模拟。可用来表示类之间的内在联系以及对属性和操作的共享。子类可以沿用父类的某些特征,同时子类也可以具有自己独立的属性和特征。

多态性:子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。

重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。运算符重载是指同一个运算符可以施加于不同类型的操作数上面。

什么是UML

定义:UML(Unified Modeling Language)是一个通用的、可视化标准建模语言。

使用原因:统一的标准 面向对象 可视化、表示能力强 独立于过程 易掌握、易用

UML的用例图作用

作用:捕获系统中用户的需求

符号:人形(stickman)——活动者 椭圆——用例 实线——关系

用例图的建模步骤

步骤:识别参与者——识别用例——识别关系——建模——用例规约

UML中的状态图,活动图,时序图在系统分析中各起到什么作用?

状态图——描述对象在生命周期内处于哪些状态,每一种状态的行为以及什么样的事件引起对象状态发生改变,展示了系统的动态视图。

活动图——描述动作及对象状态改变的结果,描述采取何种动作似的对象的状态改变,动作的序列是什么及在何处发生。

时序图——详细表示对象之间以及对象与系统外部的参与者之间动态联系的图形文档,它详细而直观地表现了一组相互协作的对象在执行一个(或少量几个)用例时的行为依赖关系,以及操作和消息的时序关系。

简述类图中关联和依赖关系的区别

关联表示两个类的对象之间存在某种语义上的联系。(组合/聚合关联)如:学生选课,学生与课程间

依赖是类与类之间最弱的关系,它是两个模型元素(类、用例等)之间的语义连接关系,其中一个模型元素是独立,另一模型元素依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。如教师与粉笔。

-- ======================================================

软件度量的三个维度

1、项目度量

2、产品度量

3、过程度量

-- ======================================================

软件管理

软件管理的四项任务

1/软件项目计划与组织

2/软件项目成本管理

3/软件项目进度控制

4/软件质量保证

软件项目计划与组织

工作内容

1、深入了解项目基本情况

2、制定项目开发计划

3、建立合理的项目组织结构

软件项目成本管理的内容

1、资源计划:确定为完成项目各活动需什么资源和这些资源的数量。

2、成本估算:对项目所需要的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、项目成本(以 元为单位)做出估算。

3、成本预算:把估算的总成本分配到各个工作细目,建立基准成本用来衡量项目的成本执行情况。

4、成本控制:及时发现成本偏差,并做出正确反应。

软件项目进程控制

软件质量保证的方法

1、建立软件质量保证小组

2、选择和确定软件质量保证活动

3、制定和维护质量保证计划

4、执行质量保证计划、对相关人员进行培训、选择与整个软件工程环境相适应的质量保证工具;

5、不断完善质量保证过程活动中存在的不足,改进项目的质量保证过程。

软件质量保证体系与实施

为了顺利开展质量保证活动,必须事先明确项目双方以及项目开发方部门间的质量保证职责及任 务,并对质量保证活动进行合理评价及监控。这些内容构成了质量保证体系。

质量保证体系的实施:

1.明确双方职责

2.使用合理的质量评价指标体系

3.建立监控体系实施质量保证

-- ======================================================

软件测试

软件测试的目的:是 对软件计划、软件设计、软件编码进行查错和纠错的活动。

涉及到软件开发周期中各个阶段的错误,并分析错误的性质与位置而加以纠正。纠正过程可 能涉及到改正或重新设计相关的文档活动。找错的活动称软件测试,纠错的活动称软件调试。

软件测试的原则

1、不完全原则,不完全原则表明测试是不完全的,穷举测试是不可能的。

2、免疫性原则,软件缺陷具有免疫性,测试人员完成的测试越多,其免疫能力就越强,寻找更多软 件缺陷也就更加困难。

3、全程测试原则,全程测试原则要求软件测试不仅存在于完成程序之后,而应该跨越整个软件开发 流程。

4、80/20原则,80/20 原则是指 80%的软件缺陷存在于软件 20%的空间里,软件缺陷具有空间聚 集性。

软件测试的方法:

根据测试过程是否需要运行被测试的程序,软件测试方法一般分为静态测试方法与动态测试方法。

①静态测试 静态测试是在对软件代码进行分析、检查和测试时不实际运行被测试的程序,同时它还可以用于 对各种软件文档进行测试。静态测试可以采用人工检测和计算机辅助的手段进行,它适用于软件开发的 全过程。 静态测试方法主要有代码走通(Code Walkthrough)和 Fagan 检查两种。 软件测试方法

②动态测试 动态测试就是通过运行软件来检验软件的动态行为和运行结果的正确性。动态测试的主要特征是 计算机必须真正运行被测试的程序,通过输入测试数据,对其运行情况(即输入与输出之间的对应关系) 进行分析。因此所有动态测试都必须包括两个基本要素:被测试软件和用于运行软件的数据,即测试数 据。动态测试根据测试时的方法不同,分为黑盒测试与白盒测试两类。

黑盒测试

1.黑盒测试又称为功能测试或数据驱动测试。它是在已知软件所应具有功能的前提下,通过测试 来检测每个功能是否都能正常使用。

2.该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在 软件的界面上进行测试,用来证实软件功能的可操作性。

白盒测试

1.白盒测试也称结构测试或逻辑驱动测试。它是在已知程序内部结构和处理过程的前提下,通过 测试来检测程序中的每条路径是否按预定要求正常运行。

2.该方法把被测试对象看成一个透明的白盒子,测试人员完全知道程序的内部结构和处理算法, 并按照程序内部的逻辑测试程序,对程序中尽可能多的逻辑路径进行测试,在所有的点检验内部控制结 构和数据结构是否和预期相同。

白盒测试方法主要有逻辑覆盖、基本路径测试等,它主要用于验证测试的充分性。

软件测试过程:

一个规范化的软件测试过程通常包括以下一些基本测试活动:制定软件测试计划、编制软件测试 大纲、设计和生成测试用例、实施测试、生成软件问题报告。

通常可以将测试阶段划分成代码审查、单元测试、集成测试和系统测试 4 个阶段。

-- ======================================================

-- ======================================================

-- ======================================================

关系规范化

1.在关系数据库中,如果关系模式没有设计好,就会出现数据冗余、数据更新异常、数据删除异常、 数据插入异常等问题。关系模式的优良程度直接影响数据库中的数据完整性等方面的性能。

2.关系规范化就是将结构复杂的关系模式分解成结构简单的关系模式,从而使一个关系模式描述一 个实体或实体间的一种联系,以达到概念的单一化。关系规范化目的就是要把不好的关系模式转变为好 的关系模式。

  1. 把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为范式。
  2. 由于规范化的程度不同,就产生了不同的范式,如第一范式、第二范式、第三范式、BCNF 范式、 第四范式、第五范式等。每种范式都规定了一些限制约束条件。

5.第一范式(1NF)是最基本的规范形式,它要求关系中的每个属性都必须是不可再分割的数据项。 在关系数据库中,任何一个关系模式都必须满足第一范式。

-- ======================================================

-- ======================================================

-- ======================================================

数据库设计

分为6个阶段

1、需求分析阶段

2、概念结构设计阶段

3、逻辑结构设计阶段

4、物理结构设计阶段

5、数据库实施阶段

6、数据库运行与维护阶段

数据库设计过程

数据库设计过程中的各级模式

1.需求分析阶段:综合各个用户的应用需求,生成需求说明书。

2.概念设计阶段:形成独立于机器特点,独立于具体数据库管理系统产品的概念模式(E-R 图)。

3.逻辑设计阶段:首先将 E-R 图转换成具体的数据库管理系统所支持的数据模型,如关系模型,形成数 据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View), 形成数据的外模式。

4.物理设计阶段:根据数据库管理系统的特点和处理的需要,进行物理存储安排,建立索引,形成数 据库内模式。

-- ======================================================

关系的规范化

1.关系模型是建立在严格的数学关系理论基础之上的,通过确立关系中的规范化准则,既可以方 便数据库中数据的处理,又可以给程序设计带来方便。在关系数据库设计过程中,是关系满足规范化准 则的过程称之为关系规范化(Relation Normalization)。

2.关系规范化就是将数据库中不太合理的关系模型转化为一个最佳的数据模型,因此它要求对于 关系数据库中的每一个关系都要满足一定的规范,根据满足规范的条件不同,

可以划分为 6 个范式 (Normal Form,简称 NF),分别为:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF、第 四范式(4NF)、第五范式(5NF)。

模式分解

规范化的基本方法就是模式分解 对关系模式进行分解,要符合“无损连接”和“保持依赖”的原则,使分解后的关系不能破坏原来的函 数依赖,保证分解后的所有关系模式中的函数依赖要反映分解前所有的函数依赖。

(1)无损连接:当对关系模式 R 进行分解时,R 元组将分别在相应属性集进行投影而产生新的关系。如 果对新关系进行自然连接得到的元组的集合与原关系完全一致,则称无损连接。

(2)保持依赖:当对关系模式 R 进行分解时,R 的函数依赖集也将按相应的模式进行分解,如果分解后 的总的函数依赖集与原函数依赖集保持不变,则称为保持函数依赖。 需要特别指出的是,保留适量冗余,达到以空间换时间的目的,也是模式分解的重要原则。

-- ======================================================

逻辑结构设计

概念模型是独立于数据库管理系统的概念结构,而逻辑结构设计是根据已设计好的概念模型(E-R 图),将其转换为与某一数据库管理系统支持的数据模型相符的逻辑结构的过程。

-- ======================================================

ER图向关系模型的转换

E-R 图向关系模型的转换要解决的问题是如何将实体和实体型之间联系转换为关系模式,以及如何 确定这些关系模式的属性和码。

-- ======================================================

-- ======================================================

-- ======================================================

操作码与操作数

寻址方式:

1、立即数寻址方式

2、寄存器寻址方式

3、直接寻址方式

4、寄存器间接寻址方式

5、寄存器相对寻址方式

6、基址变址寻址方式

7、相对基址变址寻址方式

指令执行过程

指令的执行过程如下:

( 1 ) CPU 的控制器从存储器读取一条指令并放入指令寄存器。

( 2 ) 指令寄存器中的指令经过译码,决定该指令应进行何种操作、操作数在哪里。

( 3) 根据操作数的位置取出操作数。

( 4 ) 运算器按照操作码的要求,对操作数完成规定的运算,并根据运算结果修改或设置处理器的一些状态标志。

( 5 )把运算结果保存到指定的寄存器,需要时将结果从寄存器保存至内存单元。

( 6 )修改指令计数器,决定下一条指令的地址。

-- ======================================================

-- ======================================================

-- ======================================================

算法的基本特征

-- ======================================================

流程图

-- ======================================================

程序设计基础

高级语言源程序翻译成机器语言程序的方法

-- ======================================================

面向对象程序设计

面向对象程序设计强调的是数据对象,建立层次化的对象体系。它是基于解决问题的业务逻辑,而不是基于具体的程序步骤。

面向对象的程序设计方法可以表示为: 面向对象=对象+类+继承+消息通信

面向对象技术的概念

-- ======================================================

-- ======================================================

-- ======================================================

数据结构

图的遍历

-- ======================================================

-- ======================================================

-- ======================================================

软件项目管理

一、估算软件规模

1、代码行技术

2、功能点技术

二、工作量估算

软件估算模型使用由经验导出的公式来预测软件开发工作量,工作量是软件规模(KLOC或FP)的函数,工作量的单位通常是人月(pm)。

· 静态单变量模型

· 动态多变模型

· COCOMO2模型(构造性成本模型)

三、进度计划

1、估算开发时间

2、Gantt图

3、工程网络

4、估算工程进度

5、关键路径

6、机动时间

四、人员组织

1、民主制程序员组:小组成员完全平等,充分享有民主通过协商做出决策

2、主程序员组

3、现代程序员组

五、质量保证

1、软件质量

软件与明确地和隐含地定义的需求相一致的程度。具体的说。软件质量是软件与明确地叙述的功能和性能需求、文档中明确描述的开发标准以及任何专业开发的软件产品都应该具有的隐含特征相一致的程度

· 软件需求是度量软件质量的基础。

· 有没有显式描述的隐含需求

· 不遵守一组指导软件开发的准则,会导致软件质量不高。

2、软件质量保证措施

基于非执行的测试(复审或评审)、基于执行的测试、程序正确性证明

· 技术复审的必要性

· 走查

· 审查

· 程序正确性证明:使用数学方法严格验证程序是否与它的说明完全一致。

六、软件配置管理

软件的整个生命期内管理变化的一组活动,目标是使变化更正确且更容易被适应,在必须变化时减少所需花费的工作量。

1、软件配置项(程序、文档、数据)

2、软件配置管理过程

七、能力成熟度模型CMM

基本思想:由于问题是由人们管理软件过程的方法不正当引起的,所以新软件技术的运用并不会自动提高软件的生产率和质量。能力成熟度模型有助于软件开发机构建立一个有规律、成熟的软件过程。

1、初始级

2、可重复级

3、已定义级

4、已管理级

5、优化级

-- ======================================================

-- ======================================================

-- ======================================================

-- ======================================================

-- ======================================================

-- ======================================================