🎱
山风空林
EnglishCode
  • Notes
    • 写作学习笔记
  • Code
    • Web
      • HTTP 协议
      • Google V8 学习笔记
      • 浏览器工作原理与实践
    • Server
      • Start up Java
        • Basic
      • 系统架构学习笔记
        • 系统架构设计 P1
        • 系统架构设计 P2
        • 系统架构设计 P3
        • 系统架构设计 P4
      • Database
        • MySQL 基础
由 GitBook 提供支持
在本页
  • 计算机系统基础知识
  • 计算机系统概述
  • 计算机硬件基础知识
  • 计算机软件基础知识
  • 计算机语言
  • 多媒体技术
  • 嵌入式基础知识
  • 嵌入式基础知识
  • 嵌入式系统的分类
  • 嵌入式软件的组成及特点
  • 嵌入式系统硬件体系结构
  • 安全攸关软件的安全性设计
  • 计算机网络基础知识第
  • 网络的基本概念
  • 通信技术
  • 网络技术
  • 组网技术
  • 网络工程
  • 信息系统基础知识
  • 信息系统基础知识
  • 信息化的典型应用
  • 典型信息系统架构模型
  • 信息安全技术基础知识
  • 信息安全基础知识
  • 信息安全系统的组成框架
  • 信息加解密技术
  • 密钥管理技术
  • 访问控制及数字签名技术
  • 信息安全的抗攻击技术
  • 信息安全的保障体系与评估方法
  • 系统工程基础知识
  • 系统工程
  • 软件工程基础知识
  • 软件工程
  • 需求工程
  • 系统分析与设计
  • 净室软件工程
  • 基于构件的软件工程
  • 软件项目管理
  1. Code
  2. Server
  3. 系统架构学习笔记

系统架构设计 P1

计算机系统基础知识

计算机系统概述

计算机系统的定义与组成

计算机系统(Computer System)是指用于数据管理的计算机硬件、软件及网络组成的系统。

计算机系统可划分为硬件(子系统)和软件(子系统)两部分。

硬件由机械、电子元器件、磁介质和光介质等物理实体构成 。

硬件由机械、电子元器件、磁介质和光介质等物理实体构成 。

计算机系统分类

从硬件的结构、性能、规模上划分。

从软件的构成、特征上划分。

从系统的整体用途、服务对象等进行分类。

计算机硬件基础知识

冯·诺依曼计算机结构

将计算机硬件划分为运算器、控制器、存储器、输入设备、输出设备 5个部分。

实的硬件中,控制单元和运算单元被集成为一体,封装为通常意义上的中央处理器(Central Processing Unit,CPU)。

典型的处理器系统

略

专用处理器

图形处理器(Graphics Processing Unit,GPU),GPU常有数百个或数千个内核,经过优化可并行运行大量计算。

信号处理器(Digital Signal Processor,DSP),DSP专用于实时的数字信号处理,常采用哈佛体系结构 。

现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)

指令集系统

根据指令集的复杂程度可分为**复杂指令集(Complex Instruction Set Computers, CISC)与精简指令集(Reduced Instruction Set Computers,RISC)**两类 。

CISC以 Intel、AMD的x86 CPU为代表,RISC以 ARM和 Power为代表。

存储器

按照与处理器的物理距离可分为 4个层次:片上缓存、片外缓存、主存(内存)、外存。其访问速度依次降低,而容量依次提高。

根据存储器的硬件结构可分为 SRAM、DRAM、NVRAM、Flash、EPROM、Disk等。

总线

总线(Bus)是指计算机部件间遵循某一特定协议实现数据交换的形式,即以一种特定格式按照规定的控制逻辑实现部件间的数据传输。

按照所处的位置划分为内总线、系统总线和外部总线。

计算机总线存在许多种类,常见的有并行总线和串行总线 。

名称
数据线
特点
应用

并行总线

多条双向数据线

有传输延迟,适合近距离连接

系统总线(计算机各部件)

串行总线

一条双向数据线或两条单向数据线

速率不高,但适合长距离连接

通信总线(计算机之间或计算机

接口

接口是指同一计算机不同功能层之间的通信规则。 常见的有输入输出接口常见的有输入输出接口。

外部设备

外部设备也称为外围设备,是计算机结构中的非必要设备,但从功能上又常常不可缺少。外部设备也称为外围设备,是计算机结构中的非必要设备,但从功能上又常常不可缺少。

计算机软件基础知识

计算机软件

计算机系统中的程序及其文档,是计算任务的处理对象和处理规则的描述。

软件系统是指在计算机硬件系统上运行的程序、相关的文档资料和数据的集合。

软件可用来扩充计算机系统的功能,提高计算机系统的效率。

按照作用和运行环境不同,通常分为系统软件和应用软件两大类。

系统软件为整个计算机系统配置的不依赖特定应用领域的通用软件,对计算机系统的硬件和软件资源进行控制和管理,并提供运行服务支持 。

应用软件是指为某类应用需要或解决某个特定问题而设计的软件,常与具体领域相关联,如教学软件。

操作系统

计算机系统的资源管理者,包含对系统软、硬件资源实施管理的一组程序。

操作系统通常由操作系统的内核(Kernel)和其他许多附加的配套软件所组成,如用户界面、管理工具、开发工具和常用应用程序等。

作用:

  1. 管理计算机中运行的程序和分配各种软、硬件资源

  2. 为用户提供人机界面

  3. 为应用程序的开发和运行提供一个高效率的平台。

特征:

  1. 并发性

  2. 共享性

  3. 虚拟性

  4. 不确定性

分类:

批处理操作系统,根据同时执行的作业数又分为单道批处理和多道批处理。一个作业由用户程序、数据和作业说明书(作业控制语言)3个部分组成。

分时操作系统,将 CPU的工作时间划分为许多很短的时间片,每个时间片分别为一个终端的用户提供服务或者执行一个作业。分时系统主要有 4个特点:多路性、独立性、交互性和及时性。

实时操作系统,对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内快速做出反应,对可靠性要求很高,并且不强制要求用户交互。实时系统的应用非常广泛。

网络操作系统,使联网计算机能有效地共享网络资源,为网络用户提供各种服务和接口。特征包括硬件独立性和多用户支持等。

分布式操作系统,指为分布式计算机系统配置的操作系统。分布式操作系统是网络操作系统的更高级形式,它保持网络系统所拥有的全部功能,同时又有透明性、可靠性和高性能等特性。

嵌入式操作系统,运行在嵌入式智能设备环境中,对整个智能硬件以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制,特点是微型化、可定制、可靠性和易移植性。常采用硬件抽象层(Hardware Abstraction Layer,HAL)和板级支撑包(Board Support Package, BSP)来提高易移植性,常见的嵌入式实时操作系统有 VxWorks、μClinux、PalmOS、WindowsCE、μC/OS-II和 eCos等。

数据库

长期存储在计算机内、有组织的、统一管理的相关数据的集合。

数据特性:

  1. 按一定格式存放

  2. 较小的冗余度

  3. 较高独立性

  4. 易扩展性

  5. 为多个用户共享

数据库可以分为:

  1. 关系型

  2. 键值(Key-Value)

  3. 列存储

  4. 文档

分布式数据库系统

针对地理上分散,而管理上又需要不同程度集中的需求而提出的一种数据管理信息系统。

特点 :

  1. 数据的集中控制性

  2. 数据独立性

  3. 数据冗余可控性

  4. 场地自治性

  5. 存取的有效性

完全分布式数据库系统 :

  1. 分布性

  2. 逻辑相关性

  3. 场地透明性

  4. 场地自治性

文件系统

具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。

文件系统是操作系统中实现文件统一管理的一组软件和相关数据的集合,是专门负责管理和存取文件信息的软件机构。

文件的类型如下:

  • 按性质和用途分类可将文件分为系统文件、库文件和用户文件。

  • 按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。

  • 按保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件。

  • UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件)。

文件的存取方法:

  • 顺序存取

  • 随机存取

文件组织方法:

  • 有连续结构

  • 链接结构和索引结构

  • 多重索引方式

文件存储空间的管理知道存储空间的使用情况,空间管理的数据结构通常称为磁盘分配表(Disk Allocation Table),有空闲区表、位示图和空闲块链 3种。位示图用每一位的 0和 1表示一个区块空闲或被占用。

网络协议

常用的网络协议:

  • 局域网协议(Local Area Network,LAN)

  • 广域网协议(Wide Area Network, WAN)

  • 无线网协议

  • 移动网协议

互联网使用的是 TCP/IP协议簇。

中间件

中间件(Middleware)是应用软件与各种操作系统之间使用的标准化编程接口和协议,是基础中间件(分布式系统服务)软件的一大类,属于可复用软件的范畴。

常见中间件的分类如下:

  • 通信处理(消息)中间件,保证系统能在不同平台之间通信,例如 MQSeries。

  • 事务处理(交易)中间件,实现协调处理顺序、监视和调度、负载均衡等功能,例如 Tuxedo。

  • 数据存取管理中间件,为不同种类数据的读写和加解密提供统一的接口。

  • Web服务器中间件,提供 Web程序执行的运行时容器,例如 Tomcat、JBOSS等。

  • 安全中间件,用中间件屏蔽操作系统的缺陷,提升安全等级。

  • 跨平台和架构的中间件,用于开发大型应用软件。

  • 专用平台中间件,为解决特定应用领域的开发设计问题提供构件库。

  • 网络中间件,包括网管工具、接入工具等。

软件构件

构件又称为组件,是一个自包容、可复用的程序集,这个集合整体向外提供统一的访问接口,构件外部只能通过接口来访问构件,而不能直接操作构件的内部。

利用软件构件进行搭积木式地开发。

特性:

  1. 自包容

  2. 可重用

优点:

  1. 易扩展

  2. 可重用

  3. 并行开发

缺点:

  • 需要经验丰富的设计师

  • 快速开发与质量属性之间需要妥协

  • 构件质量影响软件整体的质量

商用构件的标准规范有:

  1. OMG的公共对象请求代理架构(Common Object Request Broker Architecture,CORBA)是一个纯粹的规范而不是产品。采用 IDL定义接口,并易于转化为具体语言实现。

    主要分为 3个层次:

    1. 对象请求代理(Object Request Broker,ORB)

    2. 公共对象服务

    3. 公共设施

  2. SUN的 J2EE,定义了完整的基于 Java语言开发面向企业分布的应用规范,其中 EJB是J2EE的构件标准,EJB中的构件称为 Bean,可以分为

    1. 会话 Bean

    2. 实体 Bean

    3. 消息驱动 Bean

  3. Microsoft的 DNA 2000,采用 DCOM/COM/COM+作为标准的构件。

计算机语言

计算机语言(Computer Language)是指人与计算机之间用于交流的一种语言,主要由一套指令组成,而这套指令一般包括表达式、流程控制和集合三大部分内容。

计算机语言的分类有:

机器语言

机器语言是第一代计算机语言,是计算机自身具有的“本地语”,由计算机所能直接理解和执行的所有指令组成。指令格式由操作码和操作数两部分组成。

汇编语言。汇编语言在机器语言的基础上采用英文字母和符号串来表达指令,是机器语言的符号化描述。**每条语句均由名字、操作符、操作数和注释 4个字段(Fields)组成。**伪指令语句包括数据定义伪指令 DB、DW、DD,段定义伪指令 SEGMENT,过程定义伪指令 PROC等,编译后不产生机器代码。

高级语言

高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用。常见的高级语言包括 C、C++、Java、Python等。

建模语言

建模语言主要指的是统一建模语言(Unified Modeling Language,UML)

UML 3要素构成:

  1. UML的基本构造块(事物、关系)

  2. 图(支配基本构造块如何放置在一起的规则)

  3. 运用于整个语言的公用机制。

事物

UML中有 4种事物:

  1. 结构事物

  2. 行为事物

  3. 分组事物

  4. 注释事物。

结构事物:名词、静态部分,用于描述概念或物理元素。结构事物包括类(Class)、接口(Interface)、协作(Collaboration)、用例(UseCase)、主动类(Active Class)、构件(Component)、制品(Artifact)和节点(Node)

行为事物:动词,描述了跨越时间和空间的行为。行为事物包括交互(Interaction)、状态机(State Machine)和活动(Activity)

分组事物:包是最常用的分组事物,结构事物、行为事物甚至其他分组事物都可以放进包内。

注释事物:注释即注解,用来描述、说明和标注模型的任何元素。

关系

UML中有 4种关系:

  1. 依赖

  2. 关联

  3. 泛化

  4. 实现

依赖关系。其中一个事物(独立事物)发生变化会影响另一个事物。依赖关系是一种使用的关系。

关联关系。是一种拥有的关系,关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。

一般认为关联关系有 2个特例:

  1. 聚合关系

  2. 组合关系

聚合关系表示类之间的整体与部分的关系,其含义是“部分”可能同时属于多个“整体”,“部分”与“整体”的生命周期可以不相同。

组合关系也是表示类之间的整体与部分的关系。与聚合关系的区别在于,组合关系中的“部分”只能属于一个“整体”,“部分”与“整体”的生命周期相同, “部分”随着“整体”的创建而创建,也随着“整体”的消亡而消亡。

泛化关系。泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。

实现关系。在两种情况下会使用实现关系:

  1. 接口和实现它们的类或构件之间

  2. 用例和实现它们的协作之间。

图

图是一组元素的图形表示,大多数情况下把图画成顶点(代表事物)和弧(代表关系)的连通图。

UML 2.0提供了 14种图,分别是:

类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、部署图、制品图、组合结构图、包图、交互概览图和计时图(定时图)。序列图、通信图、交互概览图和计时图均被称为交互图。

类图展现了一组对象、接口、协作和它们之间的关系。

用例图(Use Case Diagram)展现了一组用例、参与者(Actor)以及它们之间的关系。用例之间有扩展关系(<>)和包含关系(<>),参与者和用例之间有关联关系,用例与用例、参与者与参与者之间有泛化关系。

  • 包含关系的特点是当两个或多个用例中共用一组相同的动作时,可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享;

  • 扩展关系则是对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。

UML中有 5种视图(View):

  1. 用例视图(居于中心地位)

  2. 逻辑视图

  3. 进程视图

  4. 实现视图

  5. 部署视图

形式化方法和形式化语言

形式化方法是把概念、判断、推理转化成特定的形式符号后,对形式符号表达系统进行研究的方法。

根据描述方式分,有模型描述和性质描述两类;

根据表达能力分,有模型方法、代数方法、进程代数方法、逻辑方法和网络模型方法 5类。

形式化方法的开发过程贯穿软件工程的整个生命周期。

Z语言是一种形式化语言,具有“状态—操作”风格,借助模式来表达系统结构。建立于集合论和数理逻辑的基础上,是一个强类型系统,可以使用自然语言。

多媒体技术

媒体与多媒体

媒体是承载信息的载体,即信息的表现形式(或者传播形式),如文字、声音、图像、动画和视频等。

4个重要的特征:

  1. 多维化,即媒体的多样化。

  2. 集成性,多媒体与设备集成,也与信息和表现集成。

  3. 交互性,可向用户提供更有效的控制和使用信息的手段。

  4. 实时性,音频和视频等信息具有很强的时间特性。

多媒体系统的关键技术

视、音频技术

通信技术

数据压缩技术

虚拟现实(Virtual Reality,VR)/增强现实(Augmented Reality,AR)技术

嵌入式基础知识

嵌入式基础知识

定义

嵌入式系统(Embedded System)是以特定应用为中心、以计算机技术为基础,并将可配置与可裁剪的软、硬件集成于一体的专用计算机系统。

组成结构是:

  1. 嵌入式处理

    器除满足低功耗、体积小等需求外,工艺可分为民用、工业和军用等三个档次。

  2. 相关支撑硬件

    除处理器以外的其他硬件,如存储器、定时器、总线等。

  3. 嵌入式操作系统

    具备实时性、可裁剪性和安全性等特征。

  4. 支撑软件

  5. 应用软件

嵌入式系统的特点

  1. 专用性强(面向特定应用需求,配备多种传感器)。

  2. 技术融合(与各个行业的具体应用紧密结合)。

  3. 软硬一体软件为主(裁剪冗余,高效设计)。

  4. 资源受限(低功耗、体积小和集成度高,系统的资源非常少)。

  5. 程序代码固化在 ROM中(提高执行速度和系统可靠性)。

  6. 需专门开发工具和环境。

  7. 体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强。

  8. 对安全性和可靠性的要求高。

嵌入式系统的分类

分类

从用途 :

  1. 嵌入式实时系统

    1. 强实时(Hard Real-Time)系统

    2. 弱实时(Weak Real-Time)系统

  2. 嵌入式非实时系统

从安全性:

  1. 为安全攸关(Safety-Critical或 Life-Critical)系统

  2. 非安全攸关系统

实时系统实时系统(Real-Time System,RTS)是指能够在规定的时间内完成系统功能和做出响应的系统。

安全攸关系统安全攸关系统(Safety-Critical System)是指其不正确的功能或者失效会导致人员伤亡、财产损失等严重后果的计算机系统。

嵌入式软件的组成及特点

基本概念

嵌入式系统的典型架构可概括为:

  1. 即层次化模式架构

  2. 递归模式架构

嵌入式系统的最大特点是 系统的运行和开发是在不同环境中进行的,通常将运行环境称为“目标机”环境,称开发环境为“宿主机”环境,宿主机与目标机之间通过串口、网络或 JTAG接口连接。

由于宿主机和目标机的指令往往是不同的,嵌入式系统的开发通常需要交叉平台开发环境支持,基本开发工具是交叉编译器、交叉链接器和源代码调试器。

还需要注意实时性、安全性和可靠性、代码规模、软/硬件协同工作的效率和稳定性、特定领域的需求等。

组成与特点

可以分为:

  1. 硬件层(处理器、存储器、总线、I/O接口及电源、时钟)。

  2. 抽象层(硬件抽象层(HAL);板级支持包(BSP))

  3. 操作系统层

  4. 中间件层(连接两个独立应用的桥梁,如嵌入式数据库)。

  5. 应用层

特点:

  1. 可剪裁性:设计方法包括静态编译、动态库和控制函数流程实现功能控制等。

  2. 可配置性:设计方法包括数据驱动、静态编译和配置表等。

  3. 强实时性:设计方法包括表驱动、配置、静/动态结合、汇编语言等。

  4. 安全性(Safety):设计方法包括编码标准、安全保障机制、FMECA(故障模式、影响及危害性分析)。

  5. 可靠性:设计方法包括容错技术、余度技术和鲁棒性设计等。

  6. 高确定性:设计方法包括静态分配资源、越界检查、状态机、静态任务调度等。

嵌入式系统硬件体系结构

基础知识点

组成结构

传统的嵌入式系统主要由嵌入式微处理器、存储器、总线逻辑、定时/计数器、看门狗电路、I/O接口和外部设备等部件组成。

嵌入式微处理器分类

  1. 微处理器(Microprocessor Unit,MPU):微处理器+专门设计的电路板,集成度低、可靠性高。

  2. 微控制器(Microcontroller Unit,MCU):又称单片机,把核心存储器和部分外设封装在片内。优点是单片化、体积小、功耗和成本下降,可靠性提高。

  3. 数字信号处理器(Digital Signal Processing,DSP):采用哈佛结构,对系统结构和指令进行了特殊设计,适合执行大量数据处理。包括 TMS320系列、DSP56000系列、实时 DSP处理器等。

  4. 图形处理器(Graphics Processing Unit,GPU):与 CPU相比大幅加强了浮点运算能力和多核并行计算能力,因此常用于 AI技术的深度学习的数据运算。

  5. 片上系统(System on Chip,SoC):由多个具有特定功能的集成电路组合在一个芯片上形成的系统或产品,其中包含完整的硬件系统,如处理器、IP(Intellectual Property)核、存储器等及其承载的嵌入式软件,如操作系统和定制的用户软件。

存储器分类

随机存取存储器(Random Access Memory,RAM)。工作需要持续电力提供,可随机读写。

  1. 动态随机存取存储器(Dynamic RAM,DRAM),采用电容存储信息,优点是集成度高、容量大、成本低,缺点是访问速度较慢、需要定期刷新。常作主存。

  2. 静态随机存取存储器(Static RAM,SRAM),采用多个晶体管自锁的方式保存状态,优点是访问速度快、不需要刷新,缺点是集成度低、容量小、成本高。常用作高速缓存。

只读存储器(Read Only Memory,ROM),存储的数据不会因掉电而丢失,读取的速度比 RAM快。常见的有以下几种:

  1. 掩膜型只读存储器(Mask Programmed ROM,MROM),优点是通过掩膜大批量制造、成本低,缺点是同批数据全部一致且不可修改,只适合大批量生产。

  2. 可编程只读存储器(Programmable ROM,PROM),可以用专用编程设备一次性烧录数据,适合少量制造。

  3. 可擦可编程只读存储器(Erasable Programmable ROM,EPROM),优点是写入的数据可以通过紫外线擦除重写。

  4. 电可擦可编程只读存储器(Electrically Erasable Programmable ROM,EEPROM),优点是写入的数据可以通过电压来清除,但是清除的速度很慢。

  5. 快闪存储器(Flash Memory),优点是可以联机擦写数据且擦写的次数多、速度快,缺点是读取的速度慢(相对其他 ROM的速度而言)。

内(外)总线逻辑。

  1. 传输的信息种类:

    数据总线,用于传送需要处理或者需要存储的数据。

    地址总线,用于指定在 RAM之中存储的数据的地址。

    控制总线,将微处理器控制单元的信号传送到周边设备。

  2. 连接部件分类:

    1. 片内总线,连接芯片内部各元件。

    2. 系统总线或板级总线,连接计算机系统的核心组件。

    3. 局部总线,连接局部少数组件。

    4. 通信总线,主机连接外设的总线。

  3. 数据传输的方向:

    1. 单工总线,单工总线只能从一端向另一端传输而不能反向。

    2. 双工总线,双工总线能在两个方向传输。

      1. 为半双工总线,只能轮流向两个方向传输。

      2. 全双工总线,全双工总线可以同时在两个方向传输。

看门狗电路,是嵌入式系统必须具备的一种系统恢复能力,可防止程序出错或者死锁。主要由输入端、寄存器、计数器和狗叫模块构成。

安全攸关软件的安全性设计

定义

IEEE定义安全攸关软件是“用于一个系统中,可能导致不可接受的风险的软件”。

DO-178B标准

该标准的目的是为制造机载系统和设备的机载软件提供指导,使其能够提供在满足符合适航要求的安全性水平下完成预期功能。

DO-178B标准将软件生命周期分为:

  1. 软件计划过程

  2. 软件开发过程

    1. 软件需求过程

    2. 软件设计过程

    3. 软件编码过程

    4. 集成过程

  3. 软件综合过程

    1. 软件验证过程

    2. 软件配置管理过程

    3. 软件质量保证过程

    4. 审定联络过程

DO-178B根据软件在系统中的重要程度将软件的安全等级分为A~E五级:

  • 应灾难级(A)

  • 危害级(B)

  • 严重级(C)

  • 不严重级(D)

  • 没有影响级(E)

计算机网络基础知识第

网络的基本概念

跟网络有关的指标分为:

  1. 性能指标:从速率、带宽、吞吐量和时延等不同方面来度量计算机网络的性能。

  2. 非性能指标:从费用、质量、标准化、可靠性、可扩展性、可升级性、易管理性和可维护性等来度量。

通信技术

  1. 数据与信道

    在通信中的数据包括模拟信号和数字信号,通过信道来传输,信息传输就是信源和信宿通过信道收发信息的过程。

    1. 逻辑信道

    2. 物理信道

  2. 复用技术

    在一条信道上同时传输多路数据的技术,如 TDM时分复用、FDM频分复用和 CDM码分复用等。

  3. 多址技术

    在一条线上同时传输多个用户数据的技术,在接收端把多个用户的数据分离,如 TDMA时分多址、FDMA频分多址和 CDMA码分多址等。即一辆车上的货物属于不同用户。

  4. 5G通信网络

    1. 高速率

    2. 低时延

    3. 接入用户数高

网络技术

局域网(LAN)

在有限地理范围内将若干计算机通过传输介质互联成的封闭型的计算机网络。

五种拓扑结构:

  1. 总线型

  2. 星型

  3. 树型

  4. 环型

  5. 网状

以太网(Ethernet)

一种计算机局域网组网技术,由 IEEE 802.3定义。

以太网数据帧的最小长度必须不小于 64字节,最大长度一般是 1518字节。设置最小帧长是为了避免冲突,最小帧长是根据网络中检测冲突的最长时间来定的。

无线局域网(Wireless Local Area Networks,WLAN)

利用无线技术在空中传输数据、话音和视频信号。

WLAN拓扑结构:

  1. 点对点型(用于网络互联和延长)

  2. Hub型(终端接入)

  3. 完全分布型(处于理论探讨阶段无具体应用)

广域网(WAN)

一种将分布于更广区域的计算机设备联接起来的网络,需要使用路由器和网关设备。

组成:

  1. 通信子网

  2. 资源子网

3类:

  1. 公共传输网络

  2. 专用传输网络

  3. 无线传输网络

相关技术:

  1. 同步光网络(SONET)

  2. 同步数字体系(SDH)

  3. 数字数据网(DDN)

  4. 帧中继(FR)

  5. 异步传输技术(ATM)

城域网(Metropolitan Area Network,MAN)

单个城市范围内所建立的计算机通信网,采用 IEEE 802.6标准。

3个层次:

  1. 核心层

  2. 汇聚层

  3. 接入层

移动通信网

5G网络的主要特征 :

  1. 服务化架构(Service-Based Architecture,SBA),实现网络功能的灵活定制和按需组合,以及软件快速迭代和升级。

  2. 网络切片技术,在单个物理网络中切分出多个分离的逻辑网络用于不同业务。

组网技术

网络设备及其工作层级

集线器(Hub)和中继器(Repeater)工作在物理层。

网桥(Bridge)和交换机(Switcher)工作在数据链路层。

路由器(Router)和防火墙(Firewall)主要工作在网络层。

网络协议OSI/RM七层模型

应用层协议

文件传输协议(File Transport Protocol,FTP)

是网络上两台计算机传送文件的协议,运行在 TCP之上。

两条 TCP连接:

  1. 用于传送控制信息(使用 21号端口)

  2. 用于传送文件内容(使用 20号端口)

简单文件传输协议(Trivial File Transfer Protocol,TFTP)

在客户机与服务器之间进行简单文件传输的协议**,提供不复杂、开销不大的文件传输服务**。

TFTP建立在 UDP之上,69号端口。

提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。

超文本传输协议(Hypertext Transfer Protocol,HTTP)

从 WWW服务器传输超文本到本地浏览器的传送协议。

HTTP建立在 TCP之上,使用 80号端口。

安全超文本传输协议(Hypertext Transfer Protocol Secure,HTTPS)

HTTPS在 HTTP的基础下加入安全套接层(Secure Socket Layer,SSL)或 TLS,HTTPS使用的。

443号端口

动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)

通常被应用在大型的局域网络环境中,主要作用是集中地管理、分配 IP地址,使网络环境中的主机动态地获得 IP地址、网关地址、DNS服务器地址等信息,并能够提升地址的使用率。

域名系统(Domain Name System,DNS)

DNS把主机域名解析为 IP地址的系统,而 PTR(Pointer Record)负责将 IP地址映射到域名的解析。

DNS查询过程有两种方法

  1. 迭代查询,查询得到的是其他服务器的引用,本地服务器就要 访问被引用的服务器,做进一步的查询。

  2. 递归查询,查询方式要求服务器彻底地进行名字解析,并返回 最后的结果。

传输层协议

传输控制协议(Transmission Control Protocol,TCP)

TCP是可靠的、面向连接的网络协议。具有差错校验和重传、流量控制、拥塞控制等功能。适用于数据量比较少,且对可靠性要求高的场合。

用户数据报协议(User Datagram Protocol,UDP)

UDP是不可靠的、无连接的网络协议。UDP适合数据量大,对可靠性要求不是很高,但要求速度快的场合。

网络层协议

IP数据报的目的地址有:

  1. 单播

  2. 多播/组播

  3. 任播

IPv4 toIPv6过渡技术主要有:

  1. 双协议栈技术

  2. 隧道技术

  3. NAT-PT技术

交换机

功能包括:

  1. 集线功能

  2. 中继功能

  3. 桥接功能

  4. 隔离冲突域功能。

交换机协议有:

  1. 生成树协议(STP),可以很好地解决链路环路问题。

  2. 链路聚合协议,可以提升与邻接交换设备之间的端口带宽和提高链路可靠性。

路由器

路由功能由路由:

  1. 异种网络互连

  2. 子网协议转换

  3. 数据路由速率适配

  4. 隔离网络

  5. 报文分片和重组

  6. 备份和流量控制

路由器协议主要有:

  1. 内部网关协议(Interior Gateway Protocol,IGP):指在一个自治系统(AS)内运行的路由协议。

  2. 外部网关协议(Exterior Gateway Protocol,EGP):指在 AS之间的路由协议。EGP是为简单的树型拓扑结构设计的。

  3. 边界网关协议(Border Gateway Protocol,BGP):在 EGP的经验之上制定了新的网关协议即 BGP,也是 Internet上唯一的网关协议。

网络工程

网络建设工程

3个环节:

  1. 网络规划(需求为导向,兼顾技术和工程可行性)

  2. 网络设计

    1. 逻辑设计

    2. 物理设计 (布线设计、机房设计、设备选型等)

    3. 网络技术选型

    4. IP地址和路由设计

    5. 网络冗余设计

      避免网络组件单点失效造成应用失效;备用路径是在主路径失效时启用,其和主路径承担不同的网络负载;负载分担是网络冗余设计中的一种设计方式,其通过并行链路提供流量分担来提高性能;网络中存在备用链路时,可以考虑加入负载分担设计来减轻主路径负担。

    6. 网络安全设计

  3. 网络实施

    1. 工程实施计划

    2. 网络设备验收

    3. 设备安装和调试

    4. 系统试运行和切换

    5. 用户培训

分层设计

  1. 分为接入层

  2. 汇聚层

  3. 核心层

接入层

直接面向用户连接或访问网络的部分,主要解决相邻用户之间的互访需求,并且为这些访问提供足够的带宽,接入层还应当适当负责一些用户管理功能(如地址认证、用户认证、计费管理等),以及用户信息收集工作(如用户的 IP地址、MAC地址、访问日志等)。

汇聚层

核心层和接入层的分界面,完成网络访问策略控制、数据包处理、过滤、寻址,以及其他数据处理的任务。汇聚层的存在与否要视网络规模大小而定。

核心层

网络主干部分称为核心层,核心层的主要目的在于通过高速转发通信,提供优化、可靠的骨干传输结构,因此,核心层交换机应拥有更高的可靠性、性能和吞吐量。核心层的设备采用双机冗余热备份是非常必要的,也可以使用负载均衡功能来改善网络性能。

信息系统基础知识

信息系统基础知识

信息系统的定义

组成:

  1. 机软硬件

  2. 网络和通信设备

  3. 信息资源

  4. 用户

  5. 规章制度

信息系统的功能有:

  1. 输入

  2. 存储

  3. 处理

  4. 输出

  5. 控制

理查德·诺兰(Richard L. Nolan)将信息系统的发展道路划分为 6个阶段

  1. 初始

  2. 传播

  3. 控制

  4. 集成

  5. 数据管理

  6. 成熟

信息系统的分类

  1. 业务(数据)处理系统

  2. 管理信息系统

  3. 决策支持系统

  4. 专家系统

  5. 办公自动化系统

  6. 综合性信息系统

信息系统的生命周期

  1. 产生

  2. 开发

  3. 运行

  4. 消亡

信息系统建设原则

  1. 高层管理人员介入原则

  2. 用户参与开发原则

  3. 自顶向下规划原则

  4. 工程化原则等

信息系统的开发方法

  1. 结构化方法

  2. 原型法

  3. 面向对象方法

  4. 面向服务的方法

  5. 敏捷方法

  6. 构件化开发方法

原型法

以根据用户的初步需求利用系统工具快速建立一个系统模型,与用户交流。

按功能划分:

  1. 水平原型:行为原型,用于界面。细化需求但并未实现功能。

  2. 垂直原型:结构化原型,用于复杂算法的实现,实现了部分功能。

按最终结果划分:

  1. 抛弃式:探索式原型,解决需求不确定性、二义性、不完整性、含糊性等。

  2. 演化式:逐步演化为最终系统,用于易于升级和优化的场合,适用于 Web项目。

构件化开发方法

基于构件/组件(Component)的软件开发是解决复杂环境下软件规模与复杂性的一种手段。

构件并非一定包含类,一个类元素只能属于一个构件。

构件的获取方式有:

  1. 从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可复用的构件。

  2. 通过遗留工程(Legacy Engineering),将具有潜在复用价值的构件提取出来,得到可复用的构件。

  3. 从市场上购买现成的商业构件。

  4. 开发新的符合要求的构件。获取到的构件可以存放到构件库中,根据需求裁剪使用。

构件的分类方式

关键字分类法

关键字分类法将应用领域的概念按照从抽象到具体的顺序逐次分解为树型或有向无回路图结构,每个概念用一个描述性的关键字表示。

刻面分类法

刻面分类法定义若干用于刻画构件特征的“刻面”,每个面包含若干概念,这些概念描述构件在刻面上的特征。刻面可以描述构件执行的功能、被操作的数据、构件应用的语境或其他特征。

超文本方法

所有构件必须辅以详尽的功能或行为说明文档;说明中出现的重要概念或构件以网状链接方式相互连接;检索者在阅读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或构件的文档;全文检索系统将用户给出的关键字与说明文档中的文字进行匹配,实现构件的浏览式检索。

构件检索的方式也可以分为:基于关键字的检索、刻面检索法、超文本检索法。

面向服务的方法

面向服务的方法是在面向对象方法的基础上发展起来的,对于跨构件的功能调用,则采用接口的形式暴露出来。进一步将接口的定义与实现进行解耦,则催生了服务和面向服务(Service-Oriented,SO)的开发方法。

敏捷方法

敏捷方法是一种以人为核心、迭代、循序渐进的开发方法。

主要的特征 :

  1. 敏捷方法是“适应型”而非“预设型”。

  2. 敏捷方法是“面向人的”而非“面向过程的”。

核心思想主要有以下 3点:

  1. 敏捷方法是适应型,而非可预测型。

  2. 敏捷方法以人为本,而非以过程为本。

  3. 属于迭代增量式的开发过程。

信息化的典型应用

TPS和 EDPS

业务处理系统(Transaction Processing System,TPS)或电子数据处理系统(Electronic Data Processing System,EDPS)是信息化的典型应用。

业务系统数据处理周期分为 5个阶段:

  1. 数据输入

  2. 数据处理

  3. 数据库的维护

  4. 文件报表的生成

  5. 查询处理

数据处理方式:

  1. 批处理(Batch Processing)

  2. 联机事务处理(OnLine Transaction Processing,OLTP)

管理信息系统

管理信息系统(Manage Information System,MIS)是在 TPS基础上发展的高度集成化的人机信息系统,用于企业整体的某些管理和业务层面的管理决策。

MIS系统的上层是子系统和功能,底层是各个过程,功能由过程组合实现。

一个 MIS系统可以用一个功能/层次矩阵表示。

7个子系统:

  1. 销售市场子系统

  2. 生产子系统

  3. 后勤子系统

  4. 人事子系统

  5. 财务和会计子系统

  6. 信息处理子系统

  7. 高层管理子系统

决策支持系统

两种定义:

  1. DSS是一个由语言系统、知识系统和问题处理系统 3个互相关联的部分组成的,基于计算机的系统。

    特征如下:

    1. 数据和模型是 DSS的主要资源。

    2. 用来支援用户作决策。

    3. 主要用于解决半结构化及非结构化问题。

    4. 作用在于提高决策的有效性而不是提高决策的效率。

  2. DSS是一个交互式的、灵活的、适应性强的基于计算机的信息系统。

    特征如下:

    1. 针对上层管理人员。

    2. 界面友好。

    3. 将模型、分析技术与传统的数据存取与检索技术结合起来。

    4. 对环境及决策方法改变的灵活性与适应性。

    5. 支持但不是代替决策。

    6. 利用先进信息技术快速传递和处理信息。

DSS系统的管理者处于核心地位,结合 DSS的支持进行决策。

DSS有两种级别结构形式:

  1. 两库结构

  2. 基于知识的结构

DSS支撑九项基本功能:

  1. 多层决策,为决策整理和提供数据;

  2. 收集、存储和提供外部信息;

  3. 收集和提供活动的反馈信息;

  4. 具有模型的存储和管理能力;

  5. 对常用的各种方法的存储和管理;

  6. 对各种数据、模型、方法进行管理;

  7. 数据加工;

  8. 具有人—机接口和图形加工;

  9. 支持分布使用方式。

特点:

  1. 面向决策者

  2. 支持半结构化问题

  3. 辅助支持

  4. 过程动态

  5. 交互

组建过程:

  1. 数据重组

  2. 建立数据仓库

  3. 建立数据字典

  4. 数据挖掘

  5. 建立模型

专家系统

基于知识的专家系统(Expert System,ES)是一种智能的计算机程序,该程序使用知识与推理过程,求解那些需要资深专家的专门知识才能解决的高难度问题。

ES属于人工智能,用于求解半结构化或非结构化问题。

专家系统包括:

  1. 机器人技术

  2. 视觉系统

  3. 自然语言处理

  4. 学习系统

  5. 神经网络等分支

专家系统与一般计算机系统的比较见表 4.2。

比较项
专家系统
一般计算机系统

功能

解决问题、解释结果、进行判断与决策

解决问题

处理能力

处理数字与符号

处理数字

处理问题种类

多属准结构性或非结构性,可处理不确定的知识,使用于特定的领域

多属结构性,处理确定的知识

特点:

  1. 超越时间限制

  2. 操作成本低廉

  3. 易于传递与复制

  4. 处理手段一致

  5. 善于克服难题

  6. 适用特定领域等

组成:

  1. 知识库

  2. 综合数据库

  3. 推理机

  4. 知识获取

  5. 解释程序人—机接口

办公自动化系统

办公自动化系统(Office Automatic System,OAS)可以解决包括数据、文字、声音、图像等信息的一体化处理问题,是一个集文字、数据、语言、图像为一体的综合性、跨学科的人机信息处理系统,可以进行事务处理、信息管理和辅助决策。

构成:

  1. 计算机设备

  2. 办公设备

  3. 数据通信及网络设备

  4. 软件系统

企业资源规划

企业资源规划(Enterprise Resource Planning,ERP)中的企业的

所有资源包括三大流:

  1. 物流

  2. 资金流

  3. 信息流

ERP是在信息技术基础上集成了企业的所有资源信息,为企业提供决策、计划、控制与经营业绩评估的全方位和系统化的管理平台。

ERP的管理范围涉及企业的所有供需过程,是对供应链的全面管理,还与人事系统和 CRM等关联。

ERP包括 11个基本模块:

  1. 生产预测

  2. 销售管理

  3. 经营计划

  4. 主生产计划

  5. 物料需求计划

  6. 能力需求计划

  7. 车间作业计划

  8. 采购与库存管理

  9. 质量与设备管理

  10. 财务管理。

ERP的功能有:

  1. 支持决策

  2. 不同行业的针对性 IT解决方案

  3. 提供全行业和跨行业的供应链

典型信息系统架构模型

电子政务(Electronic Government,EG)

电子政务是利用信息技术和其他相关技术,实现公务、政务、商务、事务的一体化管理与运行的政府形态改造的系统工程。

行为主体是:政府(Government)、企(事)业单位(Business)及居民(Citizen)。

名称
解释

政府对政府(G2G)

政府内部的政务活动,包括国家和地方基础信息的采集、处理和利用,如人口信息;政府之间各种业务流所需要采集和处理的信息,如计划管理;政府之间的通信系统,如网络系统;政府内部的各种管理信息系统,如财务管理;以及各级政府的决策支持系统和执行信息系统等

政府对企业(G2B)

政府面向企业的活动主要包括政府向企(事)业单位发布的各种方针、政策、法规、行政规定,即企(事)业单位从事合法业务活动的环境,政府向企(事)业单位颁发的各种营业执照、许可证、合格证和质量认证等

政府对居民(G2C)

政府面向居民所提供的服务,以及各种关于社区公安和水、火、天灾等与公共安全有关的信息。户口、各种证件和牌照的管理等,还包括各公共部门,如学校、医院、图书馆和公园等

企业对政府(B2G)

企业面向政府的活动包括企业应向政府缴纳的各种税款,按政府要求应该填报的各种统计信息和报表,参加政府各项工程的竞、投标,向政府供应各种商品和服务,以及申请的援助

居民对政府(C2G)

包括个人应向政府缴纳的各种税款和费用,按政府要求应该填报的各种信息和表格,以及缴纳各种罚款等。此外,报警服务(盗贼、医疗、急救、火警等)即在紧急情况下居民需要向政府报告并要求政府提供的服务,也属于这个范围

企业信息化(Enterprise Informatization,EI)

企业信息化是企业利用现代信息技术,实现经营活动的自动化、便捷化、网络化和智能化,以加强企业核心竞争力的过程。

企业信息化是技术和业务的融合,从企业战略、业务运作和管理运作 3个层面去实现。

企业信息化的方法有:

  1. 业务流程重构方法

  2. 核心业务应用方法

  3. 信息系统建设方法

  4. 主题数据库方法

  5. 资源管理方法

  6. 人力资本投资方法

电子商务(Electronic Commerce,EC)

电子商务指利用 Web提供的通信手段在网上买卖产品或提供服务,及其衍生行为。主要模式有:B2B、B2C、C2C、O2O(线上购买线下的服务)。

信息安全技术基础知识

信息安全基础知识

信息安全(Information Security)。

信息安全是指为数据处理系统而采取的技术的和管理的安全保护,保护计算机硬件、软件、数据不因偶然的或恶意的原因而遭到破坏、更改和泄露。

基本要素有:

  1. 机密性

  2. 完整性

  3. 可用性

  4. 可控性

  5. 可审查性

信息安全的范围:

  1. 设备安全

  2. 数据安全(确保数据免受未授权的泄露、篡改和毁坏)

  3. 内容安全

  4. 行为安全

信息存储安全的范围:信息使用的安全、系统安全监控、计算机病毒防治、数据的加密和防止非法的攻击等。

网络安全

网络安全漏洞和隐患表现:

  1. 物理安全性

  2. 软件安全漏洞

  3. 不兼容使用安全漏洞

网络安全威胁表现:

  1. 非授权访问

  2. 信息泄露或丢失

  3. 破坏数据完整性

  4. 拒绝服务攻击

  5. 利用网络传播病毒

安全措施的目标5个方面:

  1. 访问控制

  2. 认证

  3. 完整性

  4. 审计

  5. 保密

信息安全系统的组成框架

信息安全系统框架通常由技术体系、组织机构体系和管理体系共同构建。

从技术体系看,信息安全系统涉及

  1. 基础安全设备

  2. 计算机网络安全

  3. 操作系统安全

  4. 数据库安全

  5. 终端设备安全

组织机构分为3个层次:

  1. 决策层

  2. 管理层

  3. 执行层

管理体系3个部分组成:

  1. 法律管理

  2. 制度管理

  3. 培训管理

信息加解密技术

数据加密

数据加密是防止未经授权的用户访问敏感信息的手段,保障系统的机密性要素。

对称密钥加密算法

对称密钥算法的加密密钥和解密密钥相同,又称为共享密钥算法。

对称加密算法主要有:

  1. 使用密钥加密的块算法(Data Encryption Standard,DES)

    明文切分为 64位的块(即分组),由 56位的密钥控制变换成 64位的密文。

  2. 三重 DES(Triple-DES)

    DES的改进算法,使用两把 56位的密钥对明文做三次 DES加解密,密钥长度为 112位。

  3. 国际数据加密算法(International Data Encryption Algorithm,IDEA)分组长度 64位,密钥长度 128位,全球通用的加密标准。

  4. 高级加密标准(Advanced Encryption Standard,AES)

    分组长度 128位,支持 128位、192位和 256位 3种密钥长度,用于替换脆弱的 DES算法,且可以通过软件或硬件实现高速加解密。

  5. SM4国密算法

    分组长度和密钥长度都是 128位。

非对称密钥加密算法

非对称密钥加密算法的加密密钥和解密密钥不相同,又称为不共享密钥算法或公钥加密算法。

在非对称加密算法中用公钥加密,私钥解密,可实现保密通信

用私钥加密,公钥解密,可实现数字签名

非对称加密算法可以分为:

  1. RSA(Rivest,Shamir and Adleman)

    国际通用的公钥加密算法,安全性基于大素数分解的困难性,密钥的长度可以选择,但目前安全的密钥长度已经高达 2048位。RSA的计算速度比同样安全级别的对称加密算法慢 1000倍左右。

  2. SM2国密算法

    基于椭圆曲线离散对数问题,在相同安全程度的要求下,密钥长度和计算规模都比 RSA小得多。

密钥管理技术

密钥的使用控制

控制密钥的安全性主要有密钥标签和控制矢量两种技术。

密钥的分配发送有:

  1. 物理方式

  2. 加密方式

  3. 第三方加密方式

该第三方即密钥分配中心(Key Distribution Center, KDC)。

公钥加密体制的密钥管理

有4种方式:

  1. 直接公开发布(如 PGP)

  2. 公用目录表

  3. 公钥管理机构

  4. 公钥证书

公钥证书可以由个人下载后保存和传递

证书管理机构为 CA(Certificate Authority)

访问控制及数字签名技术

基本模型

访问控制技术包括 3个要素,

  1. 主体

  2. 客体

  3. 控制策略

访问控制包括3方面的内容:

  1. 认证

  2. 控制策略实现

  3. 审计 (目的是防止滥用权力)

访问控制的实现技术

  1. 访问控制矩阵(Access Control Matrix,ACM)

    以主体为行索引,以客体为列索引的矩阵,该技术是后面三个技术的基础,当主客体元素很多的时候实现困难。

  2. 访问控制表(Access Control Lists,ACL)

    按列(即客体)保存访问矩阵,是目前最流行、使用最多的访问控制实现技术。

  3. 表(Capabilities)

    按行(即主体)保存访问矩阵。

  4. 授权关系表(Authorization Relations)

    抽取访问矩阵中的非空元素保存,当矩阵是稀疏矩阵的时候很有效,常用于安全数据库系统。

数字签名

数字签名是公钥加密技术与数字摘要技术的应用。

数字签名的条件是:

  1. 可信

  2. 不可伪造

  3. 不可重用

  4. 不可改变

  5. 不可抵赖

基于对称密钥的签名只能在两方间实现,而且需要双方共同信赖的仲裁人。

利用公钥加密算法的数字签名则可以在任意多方间实现,不需要仲裁且可重复多次验证。

实际应用时先对文件做摘要,再对摘要签名,这样可以大大提升数字签名的速度。同时摘要的泄露不影响文件保密。

信息安全的抗攻击技术

密钥的选择

密钥在概念上被分成两大类:

  1. 数据加密密钥(DK)

  2. 密钥加密密钥(KK)

拒绝服务(Denial of Service, DoS)

攻击DoS是使系统不可访问并因此拒绝合法的用户服务要求的行为,侵犯系统的可用性要素。

传统攻击的 4种模式:

  1. 消耗资源

  2. 破坏或更改配置信息

  3. 物理破坏或改变网络部件

  4. 利用服务程序中的处理错误使服务失效

目前常见的 DoS攻击模式:分布式拒绝服务攻击(Distributed Denial of Service,DDoS)

现有的 DDoS工具一般采用三级结构:

  1. Client(客户端)

  2. Handler(主控端)

  3. Agent(代理端)

DoS防御的4种方法:

  1. 特征识别

  2. 防火墙

  3. 通信数据量的统计

  4. 修正问题和漏洞

欺骗攻击与防御

欺骗攻击与防御具体分为:

  1. ARP欺骗:

    ARP协议解析 IP地址为 MAC网卡物理地址,欺骗该机制即可阻断正常的网络访问。

    常用防范办法为:

    1. 固化 ARP表

    2. 使用 ARP服务器

    3. 双向绑定

    4. 安装防护软件

  2. DNS欺骗

    DNS协议解析域名为 IP地址,欺骗该机制可以使用户访问错误的服务器地址。

    3种方法检测:

    1. 被动监听检测

    2. 虚假报文探测

    3. 交叉检查查询

  3. IP欺骗

    攻击者修改 IP数据报的报头,把自身的 IP地址修改为另一个 IP,以获取信任。

    常用防火墙等防范 IP欺骗。

端口扫描(Port Scanning)

端口扫描是入侵者搜集信息的几种常用手法之一。

端口扫描尝试与目标主机的某些端口建立连接,如果目标主机该端口有回复,则说明该端口开放,甚至可以获取一些信息。

端口扫描分类:

  1. 全TCP连接

  2. 半打开式扫描(SYN扫描)

  3. FIN扫描

  4. 第三方扫描

针对 TCP/IP堆栈的攻击方式

同步包风暴(SYN Flooding)

应用最广泛的一种 DoS攻击方式,**攻击 TCP协议建立连接的三次握手,让目标主机等待连接完成而耗尽资源。**可以减少等待超时时间来防范。

ICMP攻击

例如“Ping of Death”攻击操作系统的网络层缓冲区,旧版操作系统会崩溃死机。防范方法是打补丁、升级到新版操作系统。

SNMP攻击

SNMP协议常用于管理网络设备,早期的 SNMP V1协议缺少认证,可能被攻击者入侵。防范方法是升级 SNMP协议到 V2以上并设置访问密码。

系统漏洞扫描

系统漏洞扫描指对重要计算机信息系统进行检查,发现其中可能被黑客利用的漏洞。漏洞扫描既是攻击者的准备工作,也是防御者安全方案的重要组成部分。

系统漏洞扫描分为:

  1. 基于网络的漏洞扫描,通过网络来扫描目标主机的漏洞,常常被主机边界的防护所封堵,因而获取到的信息比较有限。

  2. 基于主机的漏洞扫描,通常在目标系统上安装了一个代理(Agent)或者是服务(Services),因而能扫描到更多的漏洞。有扫描的漏洞数量多、集中化管理、网络流量负载小等优点。

信息安全的保障体系与评估方法

等级保护

《计算机信息系统 安全保护等级划分准则》(GB 17859—1999)规定了计算机系统安全保护能力的 5个等级。

  1. 第 1级:用户自主保护级(对应 TCSEC的 C1级)。

  2. 第 2级;系统审计保护级(对应 TCSEC的 C2级)。

  3. 第 3级;安全标记保护级(对应 TCSEC的 B1级)。

  4. 第 4级:结构化保护级(对应 TCSEC的 B2级)。

  5. 第 5级:访问验证保护级(对应 TCSEC的 B3级)

安全保密技术

安全保密技术主要有:

  1. 数据泄密(泄露)防护(Data Leakage Prevention,DLP)。

    DLP是通过一定的技术手段,防止企业的指定数据或信息资产以违反安全策略规定的形式流出企业的一种策略。

  2. 数字水印(Digital Watermark)。

    数字水印是指通过数字信号处理方法,在数字化的媒体文件中嵌入特定的标记。水印分为可感知的和不易感知的两种。

安全协议

常用的安全协议有:

  • SSL协议。SSL协议是介于应用层和 TCP层之间的安全通信协议,

    • 保密性通信

    • 点对点身份认证

    • 可靠性通信

  • PGP(Pretty Good Privacy)。PGP是一种加密软件,应用了多种密码技术,包括 RSA、IDEA、完整性检测和数字签名算法,实现了一个比较完善的密码系统。广泛地用于电子邮件安全。

  • 互联网安全协议(Internet Protocol Security,IPSec)。IPSec是工作在网络层的安全协议,主要优点是它的透明性,提供安全服务不需要更改应用程序。

  • SET协议。主要用于解决用户、商家和银行之间通过信用卡支付的交易问题,保证支付信息的机密、支付过程的完整、商户和持卡人身份合法性及可操作性。

  • HTTPS协议。

信息系统的安全风险与评估

信息系统的安全风险是指由于系统存在的脆弱性所导致的安全事件发生的概率和可能造成的影响。

风险评估是对信息系统及由其处理、传输和存储的信息的保密性、完整性和可用性等安全属性进行科学评价的过程,是信息安全保障体系建立过程中重要的评价方法和决策机制。

风险评估的基本要素为脆弱性、资产、威胁、风险和安全措施。

威胁是一种对机构及其资产构成潜在破坏的可能性因素或者事件。

脆弱性评估是安全风险评估中的重要内容,脆弱性不仅包括各种资产本身存在的脆弱性,没有正确实施的安全保护措施本身也可能是一个安全薄弱环节。

风险计算模型包含信息资产、弱点/脆弱性、威胁等关键要素。

系统工程基础知识

系统工程

定义与特点

系统工程是运用系统方法,对系统进行规划、研究、设计、制造、试验和使用的组织管理技术,是人们用科学方法解决复杂问题的一门技术。

系统工程方法的特点:

  1. 整体性

  2. 综合性

  3. 协调性

  4. 科学性

  5. 实践性

系统工程方法可以分为:

霍尔的三维结构

时间维

7个时间阶段:

  1. 规划阶段。即调研、程序设计阶段,目的在于谋求活动的规划与战略。

  2. 拟订方案。提出具体的计划方案。

  3. 研制阶段。作出研制方案及生产计划。

  4. 生产阶段。生产出系统的零部件及整个系统,并提出安装计划。

  5. 安装阶段。将系统安装完毕,并完成系统的运行计划。

  6. 运行阶段。系统按照预期的用途开展服务。

  7. 更新阶段。即为了提高系统功能,取消旧系统而代之以新系统,或改进原有系统,使之更加有效地工作。

逻辑维

7个逻辑步骤:

  1. 问题

  2. 确定目标

  3. 系统综合

  4. 系统分析

  5. 优化

  6. 决策

  7. 实施

知识维

知识和技能:

  • 工程

  • 医学

  • 建筑

  • 商业

  • 法律

  • 管理

  • 社会科学

  • 艺术等

切克兰德方法

核心:不是“最优化”而是“比较”与“探寻”。

将工作过程分为7个步骤:

  1. 认识问题

  2. 根底定义

  3. 建立概念模型

  4. 比较及探寻

  5. 选择

  6. 设计与实施

  7. 评估与反馈

并行工程

对产品及其相关过程(包括制造过程和支持过程)进行并行、集成化处理的系统方法和综合技术。

目标:提高质量、降低成本、缩短产品开发周期和产品上市时间。

综合集成法

从系统的本质出发可以把系统分为两大类:

  1. 简单系统

  2. 巨系统

    原则:

    1. 整体论

    2. 相互联系

    3. 有序性

    4. 动态

    性质:

    1. 开放性

    2. 复杂性

    3. 进化与涌现性

    4. 层次性

    5. 巨量性

WSR系统方法

物理—事理—人理方法论的简称。

具有中国传统哲学的思辨思想,是多种方法的综合统一,属于定性与定量分析综合集成的东方系统思想。

一般工作过程可理解为7步:

  1. 理解意图

  2. 制定目标

  3. 调查分析

  4. 构造策略

  5. 选择方案

  6. 协调关系

  7. 实现构想

系统工程的生命周期

的生命周期阶段:

  1. 探索研究

  2. 概念阶段

  3. 开发阶段

  4. 生产阶段

  5. 使用阶段

  6. 保障阶段

  7. 退役阶段

生命周期方法:

  1. 计划驱动方法

  2. 渐进迭代式开发

  3. 精益开发

  4. 敏捷开发

基于模型的系统工程(Model-Based Systems Engineering,MBSE)

MBSE是建模方法的形式化应用,以使建模方法支持系统需求、分析、设计、验证和确认等活动,持续贯穿到所有生命周期阶段。

产物包括:

  1. 需求分析阶段,产生需求图、用例图及包图;

  2. 功能分析与分配阶段,产生顺序图、活动图及状态机图;

  3. 在设计综合阶段,产生模块定义图、内部块图及参数图等。

系统工程的三大支柱:

  1. 建模语言

  2. 建模工具

  3. 建模思路

系统性能

1.系统性能评价

系统性能评价指标是软件、硬件的性能指标的集成。

计算机的主要性能指标:

  1. 时钟频率(主频)

  2. 运算速度

  3. 运算精度

  4. 数据处理速率(Processing Data Rate,PDR)

  5. 吞吐率

路由器的主要性能指标:

  1. 设备吞吐量

  2. 端口吞吐量

  3. 全双工线速转发能力

  4. 路由表能力

  5. 背板能力

  6. 丢包率

  7. 时延

  8. 时延抖动

  9. 协议支持。

交换机性能指标:

  1. 端口速率

  2. 背板吞吐量

  3. 缓冲区大小

  4. MAC地址表大小

网络的性能指标:

  1. 设备级性能指标

  2. 网络级性能指标

  3. 应用级性能指标

  4. 用户级性能指标

  5. 吞吐量

操作系统的性能指标:

  1. 系统上下文切换系统响应时间

  2. 系统的吞吐率(量)

  3. 系统资源利用率

  4. 可靠性

  5. 可移植性

数据库管理系统的主要性能指标:

  1. 最大并发事务处理能力

  2. 负载均衡能力

  3. 最大连接数等。

评价 Web服务器的主要性能指标:

  1. 最大并发连接数

  2. 响应延迟

  3. 吞吐量。

2.性能指标计算

主要方法:

  1. 定义法

  2. 公式法

  3. 程序检测法

  4. 仪器检测法

计算公式主要有:

  1. 每秒百万次指令数(Millions of Instructions Per Second,MIPS)MIPS=指令条数/(执行时间×106)

  2. 峰值计算,是指计算机每秒钟能完成的浮点计算最大次数。

    1. 包括理论浮点峰值(理论浮点峰值= CPU主频×CPU每个时钟周期执行浮点运算的次数×系统中 CPU数 )

    2. 实测浮点峰值

  3. 等效指令速度法或吉普森(Gibson)法,早期用加法指令的运算速度来衡量计算机的速度,后来发展为各个指令的运算时间乘以占比。

    通常加、减法指令占 50%,乘法指令占 15%,除法指令占 5%,程序控制指令占 15%,其他指令占 15%。

3.性能调整

性能调整由查找和消除瓶颈组成。

对于数据库系统,性能调整主要包括:

  1. CPU/内存使用状况

  2. 优化数据库设计

  3. 优化数据库管理以及进程/线程状态

  4. 硬盘 I/O及剩余空间

  5. 日志文件大小等

对于应用系统,性能调整主要包括:

  1. 应用系统的可用性

  2. 响应时间

  3. 并发用户数

  4. 特定应用的系统资源占用

4.阿姆达尔(Amdahl)解决方案

阿姆达尔定律:计算机系统中对某一部件采用某种更快的执行方式所获得的系统性能改变程度,取决于这种方式所占总执行时间的比例。

加速比的定义:

加速比=使用增强部件时完成整个任务的时间/不使用增强部件时完成整个任务的时间

新的执行时间=原来的执行时间×[(1-增强比例)+增强比例/增强加速比]

总加速比=原来的执行时间/新的执行时间=1/[(1-增强比例)+增强比例/增强加速比]

加速比主要取决于两个因素:

  • 在原有的计算机上,能被改进并增强的部分在总执行时间中所占的比例,这个值称为增强比例,它永远小于等于 1;

  • 通过增强的执行方式所取得的改进,即如果整个程序使用了增强的执行方式,那么这个任务的执行速度会有多少提高,这个值是在原来条件下程序的执行时间与使用增强功能后程序的执行时间之比。

性能评估

性能评估主要包括:

基准测试程序(Benchmark)定义:应用程序中用得最多、最频繁的那部分核心程序。

基准测试程序中,评测的准确程度依次递减:真实的程序、核心程序、小型基准程序和合成基准程序。

基准测试程序有:

  1. 整数测试程序 Dhrystone

  2. 浮点测试程序 Linpack

  3. Whetstone基准测试程序

  4. SPEC基准测试程序和

  5. TPC基准程序

Web服务器的性能评测方法有:

  1. 基准性能测试

  2. 压力测试

  3. 可靠性测试

系统监视的方法通常有3种方式:

  1. 系统内置命令

  2. 查阅系统日志

  3. 可视化技术

软件工程基础知识

软件工程

软件危机(Software Crisis)

具体表现为:

  1. 软件开发进度难以预测

  2. 软件开发成本难以控制

  3. 软件功能难以满足用户期望

  4. 软件质量无法保证

  5. 软件难以维护

  6. 软件缺少适当的文档资料

软件过程模型

软件的生命周期:

  1. 需求分析

  2. 软件设计

  3. 软件开发

  4. 运行维护

  5. 淘汰

为了使软件生命周期中的各项任务能够有序地按照规程进行**,需要一定的工作模型对各项任务给予规程约束,这样的工作模型被称为软件过程模型**,有时也称为软件生命周期模型。

瀑布模型(Waterfall Model)

特点:因果关系紧密相连,前一个阶段工作的输出结果,是后一个阶段工作的输入。

每一个阶段工作完成后都伴随着一个里程碑。

缺点:

  1. 需求难以一次确定

  2. 变更的代价高

  3. 结果难以预见

  4. 各阶段工作不能并行

原型模型(Prototype Model)

原型模型解决了瀑布模型需求难以一次确定、结果难以预见的缺点。

原型模型两个阶段:

  1. 原型开发

  2. 目标软件开发

抛弃型原型将原型作为需求确认的手段,在需求确认结束后就被抛弃不用,继续用瀑布模型。

演化性原型在需求确认结束后,不断补充和完善原型,直至形成一个完整的产品。

螺旋模型(Spiral Model)

在快速原型的基础上结合瀑布模型扩展而成。

把整个软件开发流程分成多个阶段,

每一个阶段都由 4部分组成:

  1. 目标设定

  2. 风险分析

  3. 开发和有效性验证

  4. 评审。

支持大型软件开发,适用于面向规格说明、面向过程和面向对象的软件开发方法,强调其他模型忽视的风险分析。

4)敏捷(Agile)模型

敏捷模型主要方法:

  1. 极限编程(XP):高效、低风险、测试先行(先写测试代码,再编写程序)。

  2. 水晶系列方法:不同的项目,采用不同的策略。

  3. 并列争球法(Scrum):该方法侧重于项目管理。

    Scrum包括一系列实践和预定义角色的过程骨架(是一种流程、计划、模式,用于有效率地开发软件)。

    在 Scrum中,使用产品 Backlog来管理产品的需求,产品 Backlog是一个按照商业价值排序的需求列表。

    根据 Backlog的内容,将整个开发过程分为若干个短的迭代周期(Sprint),在 Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求组成 Sprint Backlog。在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。

    当所有 Sprint结束时,团队提交最终的软件产品。

  4. 特征驱动开发方法:该方法会将开发人员分类,分为指挥者(首席程序员)、类程序员等。

软件统一过程(Rational Unified Process,RUP)模型。

RUP是一种重量级过程模型,属于构件化开发使用的软件过程模型。

其生命周期是一个二维的软件开发模型,划分为多个循环(Cycle),每个循环生成产品的一个新的版本,每个循环依次由初始、细化、构造和移交 4个连续的阶段(Phase)组成,每个阶段完成确定的任务。

RUP中 9个核心工作流:

  1. 业务建模

  2. 需求

  3. 分析与设计

  4. 实现

  5. 测试

  6. 部署

  7. 配置与变更管理

  8. 项目管理

  9. 环境。

RUP的特点是用例驱动的、以架构为中心的、迭代和增量的软件开发过程。

RUP用“4+1”视图模型来描述架构:

  • 逻辑视图

    对应最终用户,主要支持功能性需求,即在为用户提供服务方面系统所应该提供的功能。逻辑视图常用类图、对象图、状态图、协作图表示。

  • 实现视图

    又称为开发视图,对应程序员,关注软件开发环境下实际模块的组织,描述系统的各部分如何被组织为模块和组件即开发环境中软件的静态组织结构。该视图通常包含包图和组件图。

  • 进程视图

    又叫过程视图,对应系统集成人员,考虑一些非功能性的需求,如性能和可用性,它可以解决并发性、分布性、系统完整性、容错性的问题。进程视图常用活动图表示。

  • 部署视图

    又叫物理视图,对应系统工程师。描述如何将前三个视图中所述的系统设计实现为一组现实世界的实体。展示了如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通信等问题。部署视图常用部署图表示。

  • 用例视图

    所有其他视图都依靠用例视图(场景)来指导它们,这就是将模型称为“4+1”的原因。

RUP在每次迭代中,只考虑系统的一部分需求,进行分析、设计、实现、测试和部署等过程。

软件能力成熟度模型(Capability Maturity Model for Software,CMM)

CMM是一个概念模型,模型框架和表示是刚性的,不能随意改变,但模型的解释和实现有一定弹性。

软件能力成熟度模型集成(Capability Maturity Model Integration for Software,CMMI)

CMMI是在 CMM的基础上发展而来的。

软件过程改进的步骤组织成 5个成熟度等级:

  1. 初始级

  2. 已管理级

  3. 已定义级

  4. 量化管理级

  5. 优化级

量化管理级与已定义级的区别是对过程性能的可预测。

需求工程

软件需求的层次

软件需求包括 3个不同的层次。

  1. 业务需求(Business Requirement),反映了组织机构或客户对系统、产品高层次的目标要求。

  2. 用户需求(User Requirement),描述了用户使用产品必须要完成的任务,是用户对该软件产品的期望。业务需求和用户需求构成了用户原始需求文档的内容。

  3. 功能需求(functional requirement),从系统操作的角度定义了开发人员必须实现的软件功能,来满足业务需求和用户需求。

需求工程(Requirement Engineering,RE)

需求工程是指应用已证实有效的原理、方法,通过合适的工具和记号,系统地描述待开发系统及其行为特征和相关约束。

需求工程由5个阶段组成:

  1. 需求获取

  2. 需求分析

  3. 形成需求规格(或称为需求文档化)

  4. 需求确认与验证

  5. 需求管理

软件需求规格说明书(Software Requirement Specification,SRS)

SRS具体包括功能需求、非功能需求和约束。

约束包括设计约束和过程约束。

批准的 SRS是需求开发和需求管理之间的桥梁。

需求管理

需求管理是一个对系统需求变更、了解和控制的过程,包括变更控制、版本控制、需求跟踪等活动。

需求获取

需求获取是获得系统必要的特征,或者是获得用户能接受的、系统必须满足的约束。

需求获取的基本步骤:

  1. 开发高层的业务模型。

  2. 定义项目范围和高层需求。

  3. 识别用户角色和用户代表。

  4. 获取具体的需求。

  5. 确定目标系统的业务工作流。

  6. 需求整理与总结

需求获取的方法:

  1. 用户面谈

  2. 需求专题讨论会

  3. 问卷调查

  4. 现场观察

  5. 原型化方法

  6. 头脑风暴法

需求变更

需求变更管理过程如图 7.6所示。图 7.6 需求变更管理过程

7.变更控制委员会(Change Control Board,CCB)

CCB由项目所涉及的多方成员共同组成,通常包括用户和实施方的决策人员。

CCB是决策机构,不是作业机构,通常 CCB的工作是通过评审手段来决定项目是否能变更,但不提出变更方案。

过程及操作步骤为:

  1. 制定决策

  2. 交流情况

  3. 重新协商约定

8.需求跟踪

需求跟踪提供了由需求到产品实现整个过程范围的明确查阅的能力。

需求跟踪的目的是建立与维护“需求—设计—编程—测试”之间的一致性,确保所有的工作成果符合用户需求。

需求跟踪有正向跟踪和逆向跟踪两种方式,合称为“双向跟踪”。

不论采用何种跟踪方式,都要建立与维护需求跟踪矩阵。

系统分析与设计

结构化方法(Structured Analysis and Structured Design,SASD)

结构化方法又称为面向功能的软件开发方法或面向数据流的软件开发方法。

针对软件生存周期各个不同的阶段,有结构化分析、结构化设计和结构化编程等方法。

结构化分析(Structured Analysis,SA)

SA利用图形表达用户需求中的功能需求。

使用的手段主要有:

  1. 数据流图(Data Flow Diagram,DFD)

  2. 数据字典

  3. 结构化语言

  4. 判定表以及判定树

数据流图(DFD)由 4种基本元素组成:

  1. 数据流

  2. 处理/加工

  3. 数据存储

  4. 外部项

结构化分析具体的建模过程及步骤为

  1. 明确目标

  2. 确定系统范围

  3. 建立顶层 DFD图

  4. 构建第一层 DFD分解图

  5. 开发 DFD层次结构图

  6. 检查确认 DFD图

DFD图需要满足规则:

  1. 父图数据流必须在子图中出现;一个处理至少有一个输入流和一个输出流;

  2. 一个存储必定有流入和流出;一个数据流至少有一端是处理端;

  3. 模型表达的信息是全面的、完整的、正确的和一致的。

数据字典(Data Dictionary)是一种标记用户可以访问的数据项和元数据的目录,是对系统中使用的所有数据元素定义的集合,包括数据项、数据结构、数据流、数据存储和处理过程。

结构化设计(Structured Design,SD)。

SD是一种面向数据流的设计方法,以 SRS和 SA阶段所产生的数据流图和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。

SD分两个阶段:

  1. 概要设计。

    1. 确定软件系统的结构

    2. 对系统进行模块划分

    3. 确定每个模块的功能

    4. 确定接口和模块之间的调用关系

  2. 详细设计

    为每个模块设计实现的细节

模块是实现功能的基本单位,一般具有功能、逻辑和状态 3个基本属性。

耦合表示模块之间联系的程度,耦合度从低到高依次如表 7.1所示。

耦合类型
描述

非直接耦合

两个模块之间没有直接关系,互相不依赖对方

数据耦合

一组模块借助参数表传递简单数据

标记耦合

一组模块通过参数表传递记录等复杂信息(数据结构)

控制耦合

模块之间传递的信息中包含用于直接控制模块内部逻辑的信息

通信耦合

一组模块共享了输入或输出

公共耦合

多个模块都访问同一个公共数据环境,公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等

内容耦合

一个模块直接访问另一个模块的内部数据、一个模块不通过正常入口跳转到另一个模块的内部、两个模块有一部分程序代码重叠、一个模块有多个入口等

模块的内聚类型

内聚类型
描述

功能内聚

各个部分协同完成一个单一功能,缺一不可

顺序内聚

处理元素相关,而且必须顺序执行,通常前一任务的输出是后一任务的输入

通信内聚

所有处理元素集中在一个数据结构的区域上

过程内聚

处理元素相关,而且必须按特定的次序执行

时间内聚

所包含的任务必须在同一时间间隔内执行

逻辑内聚

完成逻辑上相关的一组任务,互相存在调用关系

偶然内聚

完成一组没有关系或松散关系的任务,或者仅仅代码相似

模块分解中应遵循“高内聚、低耦合”的设计原则。

概要设计使用系统结构图(Structure Chart,SC),又称为模块结构图,反映了系统的总体结构。

详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。

详细设计的表示工具有图形工具、表格工具和语言工具。图形有业务流图、程序流程图、问题分析图(Problem Analysis Diagram,PAD)、NS流程图等。

结构化编程(Structured Programming,SP)

SP通过顺序、分支和循环三种基本的控制结构可以构造出任何单入口单出口的程序。

SP强调:

  1. 自顶向下,逐步细化;

  2. 清晰第一,效率第二;

  3. 书写规范,缩进格式;

  4. 基本结构,组合而成。

P原则:程序=(算法)+(数据结构)。两者分开设计,以算法(函数或过程)为主。

数据库设计(概念结构设计部分)。

概念结构设计建立抽象的概念数据模型,通常采用实体-联系图(Entity Relationship Diagram,E-R图)来表示。

2.面向对象(Object-Oriented,OO)

方法面向对象的方法可以分为:

(1)面向对象的分析方法(Object-Oriented Analysis,OOA)

OOA模型 5个层次:

  1. 主题层

  2. 对象类层

  3. 结构层

  4. 属性层

  5. 服务层

5个活动:

  1. 标识对象类

  2. 标识结构

  3. 定义主题

  4. 定义属性

  5. 定义服务

OOA的基本原则:

  1. 抽象

  2. 封装

  3. 继承

  4. 分类

  5. 聚合

  6. 关联

  7. 消息通信

  8. 粒度控制

  9. 行为分析

OOA的 5个基本步骤:

  1. 确定对象和类

  2. 确定结构

  3. 确定主题

  4. 确定属性

  5. 确定方法

面向对象设计方法(Object-Oriented Design,OOD)

在 OOD中,数据结构和在数据结构上定义的操作算法封装在一个对象之中。

类封装了信息和行为,是具有相同属性、方法和关系的对象集合的总称。

类可以分为 3种类型:

  1. 实体类:一般来说是一个名词,通常都是永久性需要存储的,例如教师、学生。

  2. 控制类:是用于控制用例工作的类,控制对象(控制类的实例)通常控制其他对象或协调其他对象的行为,例如登录验证。

  3. 边界类:用于封装在用例内、外流动的信息或数据流,例如窗口、通信协议、接口等。

面向对象程序设计(Object-Oriented Programming,OOP)

OOP以对象为核心,该方法认为程序由一系列对象组成。

OOP的基本特点有:

  1. 封装(将一个计算机系统中的数据以及与这个数据相关的一切操作组装到一起)。

  2. 继承(一个对象针对于另一个对象的某些独有的特点、能力进行复制或者延续)。

  3. 多态(同一操作作用于不同的对象,可以产生不同的结果)。

数据持久化与数据库

永久保存对象的状态,需要进行对象的持久化(Persistence),把内存中的对象保存到数据库或可永久保存的存储设备中。

在多层软件设计和开发中采用持久层(Persistence Layer)专注于实现数据持久化,将对象持久化到关系数据库中,需要进行对象/关系的映射(Object/Relation Mapping,ORM)。

目前主流的持久化技术框架包括 Hibernate、iBatis/Mybatis和 JDO等。

Hibernate:是一个开源的全自动的 ORM框架,对 JDBC进行了非常轻量级的对象封装,提供抽象的 HQL可以自动生成不同数据库的 SQL语句,优点是具有跨数据库平台的特性。

iBatis/Mybatis:提供手动的 ORM实现,需要程序员手写 SQL,优点是可以结合特定的数据库特性深度优化。

Java数据对象(Java Data Object,JDO):是 Java标准中的持久化 API,提供了透明的对象存储,并且不仅仅支持关系数据库,还支持普通文件、XML文件和对象数据库等。

其他设计方法

其他设计方法如构件与软件重用。软件重用是使用已有软件产品来开发新的软件系统的过程,分为水平式重用和垂直式重用两种类型。

名称
对象
举例

水平式重用

不同应用领域中的软件元素

标准函数库

垂直式重用

共性应用领域间的软部件

区块链

逆向工程(Reverse Engineering)

逆向工程是通过分析已有的程序,寻求比源代码更高级的抽象表现形式(比如文档)的活动,是在不同抽象层级中进行的溯源行为。

逆向工程得出的设计称为设计恢复(Design Recovery),但不一定能够抽象还原到原设计。

重构(Restructuring)是在同一抽象层级中转换系统描述的活动。对逆向工程所形成的系统进行修改或重构,生成的新版本称为重构工程。

级别
内容

实现级

语法树、符号表

结构级

程序分量间的关系,如调用图

功能级

功能和程序段之间的关系

领域级

实体与应用域之间的关系

软件测试

软件测试的目的测试是确保软件的质量,确认软件以正确的方式做了用户所期望的事情。

软件测试通常在规定的时间和成本内完成,以尽量多地发现漏洞,但不能保证发现所有的漏洞。

测试分类

程序执行状态:

  1. 静态测试(Static Testing,ST)

  2. 动态测试(Dynamic Testing,DT)

是否关注具体实现和内部结构:

  1. 黑盒测试

  2. 白盒测试和灰盒测试

程序执行的方式来:

  1. 人工测试(Manual Testing,MT)

  2. 自动化测试(Automatic Testing,AT)。

从阶段上划分:

  1. 单元测试。对该软件的模块进行测试,往往由程序员自己完成。常采用白盒的静态测试如静态分析、代码审查等,也可以采用自动化的动态测试。

  2. 集成测试。对通过单元测试的模块进行组装测试,以验证组装的正确性,一般采用白盒测试和黑盒测试结合的方法。

  3. 系统测试。检查组装完成的系统是否符合 SRS的要求。主要测试内容包括功能测试、性能测试、健壮性测试、安全性测试等,结束标志是测试工作已满足测试目标所规定的需求覆盖率,并且测试所发现的缺陷都已全部归零。

  4. 验收测试。确认系统满足用户需求或者协议的要求,确保系统能支撑业务运行

其他测试还有 AB测试、Web测试、链接测试和表单测试等。

净室软件工程

净室软件工程(Cleanroom Software Engineering,CSE)是一种在软件开发过程中强调在软件中建立正确性的需要的方法。

CSE的理论基础主要是函数理论和抽样理论。

CSE使用盒子结构规约进行分析和设计建模,并且强调将正确性验证(而不是测试)作为发现和消除错误的主要机制,可以生成质量非常高的软件。

CSE的缺点是太理论化、忽视测试、带有传统软件工程的弊端。

基于构件的软件工程

定义

基于构件的软件工程(Component-Based Software Engineering,CBSE)是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。

用于 CBSE的构件应该具备以下特征:

  1. 可组装型:所有外部交互必须通过公开定义的接口进行。

  2. 可部署性:必须能作为一个独立实体在提供其构件模型实现的构件平台上运行。

  3. 文档化:构件必须是完全文档化的。

  4. 独立性:构件应该是独立的,如确实需要其他构件提供服务,则应显示声明。

  5. 标准化:必须符合某种标准化的构件模型。

构件模型

构件模型定义了构件实现、文档化以及开发的标准。

目前主流的构件模型是 Web Services模型、Sun公司的 EJB模型和微软的.NET模型。

构件模型包含了一些模型要素如接口、使用信息和部署信息。

构件模型提供了一组被构件使用的通用服务,包括平台服务和支持服务。

容器是构件模型基础设施,是支持服务的一个实现加上一个接口定义,构件必须提供该接口定义以便和容器整合在一起。

CBSE过程

支持基于构件组装的软件开发过程主要包括:

  1. 系统需求概览。

  2. 识别候选构件。

  3. 根据发现的构件修改需求。

  4. 体系结构设计

  5. 构件定制与适配。

  6. 组装构件,创建系统。

CBSE过程与传统的软件开发过程的不同点:

  1. 早期需要完整的需求,以便尽可能多地识别出可复用的构件。

  2. 早期阶段根据可利用的构件来细化和修改需求以匹配 CBSE。

  3. 架构设计完成后,可能需要修改构件以适合功能和架构的需求。

  4. 开发过程就是组装构件的过程,有时需要开发适配器。

  5. CBSE中的架构设计阶段特别重要,决定和限制了可选构件的范围。

构件组装

常见的构件组装有3种组装方式:

  1. 顺序组装

  2. 层次组装

  3. 叠加组装

常见的有 3种。

  1. 参数不兼容

  2. 操作不兼容

  3. 操作不完备

这时需要编写适配器构件来解决不兼容的问题。

软件项目管理

软件进度管理

进度管理6个过程:

  1. 活动定义

  2. 活动排序

  3. 活动资源估计

  4. 活动历时估计

  5. 制定进度计划

  6. 进度控制

工作分解结构(Work Breakdown Structure,WBS)

把一个项目,按一定的原则分解成任务,任务再分解成一项项工作,再把一项项工作分配到每个人的活动中,直到分解不下去为止。

以可交付成果为导向,对项目要素进行的分组,总是处于计划过程的中心。

活动定义

确定完成项目的各个可交付成果所必须进行的各项具体活动,还需要明确每个活动的前驱、持续时间、必须完成日期、里程碑或可交付成果。

任务活动图

项目进度管理、项目成本管理等一系列项目管理活动的基础,通常采用甘特图等方式来展示和管理项目活动。

软件配置管理(Software Configuration Management,SCM)

一种标识、组织和控制修改的技术。

SCM的目的是使错误降为最小并最有效地提高生产效率。SCM的核心内容包括版本控制和变更控制。版本控制(Version Control)是指对软件开发过程中各种文件变更的管理,最主要的功能就是追踪和记录文件的变更、并行开发。变更控制(Change Control)是指对变更进行管理,确保变更有序进行。

软件质量管理

软件质量就是软件与明确地和隐含地定义的需求相一致的程度。软件质量保证(Software Quality Assurance,SQA)的目的是使软件过程对于管理人员来说是可见的。

SQA的主要任务是:

  1. SQA审计与评审,包括对软件工作产品、软件工具和设备的审计,评审开发组的行为符合预定的过程。

  2. SQA报告。

  3. 处理不符合问题。软件质量认证,国内软件企业主要采用的是 ISO 9001和 CMM。

软件风险管理

软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响。风险管理的主要目标是预防风险,及应对发生的风险。

风险管理活动可以分为:

Bochm把风险管理活动分成风险估计(风险辨识、风险分析、风险排序)和风险控制(风险管理计划、风险处理、风险监督)两大阶段。

Charette把风险分成分析(辨识、估计、评价)和管理(计划、控制、监督)两大阶段。

上一页系统架构学习笔记下一页系统架构设计 P2

最后更新于1年前