软件设计师软考笔记

数据结构

程序被加载到内存后开始运行,当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器(DR)中,再送入指令寄存器(IR)暂存,指令译码器(ID)根据指令寄存器(IR)的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。

CPU中的程序计数器PC用于保存要执行的指令的地址,访问内存时,需先将内存地址送入存储器地址寄存器MAR中,向内存写入数据时,待写入的数据要先放入数据寄存器MUR。程序中的指令一般放在内存中,要执行时,首先要访问内存取得指令并保存在指令寄存器IR中。

计算机中指令的执行过程一般分为取指令、分析指令并获取操作数、运算和传送结果等阶段,每条指令被执行时都要经过这几个阶段。若CPU要执行的指令为:MOV RO,# 100(即将数值100传送到指令寄存器R0中),则CPU首先要完成的操作是将要执行的指令地址送入程序计数器PC,访问内存以获取指令。

CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在累加寄存器中。

算术逻辑单元(ALU):是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"And Gate"(与门) 和"Or Gate"(或门)构成的算术逻辑单元,主要功能是进行二位元的算术运算,如加减乘(不包括整数除法)。基本上,在所有现代CPU体系结构中,二进制都以补码的形式来表示。

程序计数器(PC):程序计数器是计算机处理器中的寄存器,它包含当前正在执行的指令的地址(位置)。当每个指令被获取,程序计数器的存储地址加一。在每个指令被获取之后,程序计数器指向顺序中的下一个指令。当计算机重启或复位时,程序计数器通常恢复到零。

存储器数据寄存器(MDR):是计算机控制单元中的寄存器,寄存了将要写入到计算机主存储器(例如:RAM)的数据,或由计算机主存储器读取后的数据。它就像缓冲器,持有从内存复制的数据,以准备给处理器使用。内存资料寄存器是微程序与计算机数据储存(computer data storage)之间的一个微小界面的其中一半,而另一半则是内存地址寄存器(memory address register)。

数据寄存器(MUR):是计算机控制单元中的寄存器,寄存了将要写入到计算机主存储器(例如:RAM)的数据,或由计算机主存储器读取后的数据。它就像缓冲器,持有从内存复制的数据,以准备给处理器使用。内存资料寄存器是微程序与计算机数据储存(computer data storage)之间的一个微小界面的其中一半,而另一半则是内存地址寄存器(memory address register)。

存储器地址寄存器(MAR):储存器地址寄存器是用来确定下一次读写的存储器地址,而存储缓冲寄存器包含要写入存储器或者从存储器读出来的数据。

累加寄存器(AC):是一个通用寄存器。其功能是:当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为ALU提供一个工作区。累加寄存器暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加、减、读出、移位循环移位和求补等操作。是运算器的主要部分。

缓冲寄存器(DR):用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。

指令寄存器(IR):用于暂存当前正在执行的指令。指令寄存器的时钟信号是clk,在clk的上升沿触发。指令寄存器将数据总线送来的指令存入16位的寄存器中,但并不是每次数据总线上的数据都需要寄存,因为数据总线上有时传输指令,有时传输数据。由CPU状态控制器的 Ir_ena信号控制数据是否需要寄存。复位时,指令寄存器被清零。

指令译码器(ID):通常由操作码地址码两部分组成。操作码:指明计算机执行的某种操作的性质和功能。地址码:指出被操作的数据(简称操作数)存放在何处,即指明操作数地址,有的指令格式允许其他地址码部分就是操作数本身。

快速排序算法:时间复杂度的递归式为 T(N)=T(N/2)+CN

基本加工说明

有三种描述方式:结构化语言、判断表(决策树)、判断树(决策树)

基本加工逻辑描述的基本原则为:

1、对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。

2、基本加工逻辑说明必须描述基本加工如何把输入数据流变换为输出数据流的加工规则。

3、加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。

4、加工逻辑说明中包含的信息应是充足的,完全有用的,无冗余的。

拓扑序列

根据拓扑图求拓扑序列


计算机网络

ADSL Modem上网拨号方式有3种,即专线方式(静态IP)、PPPoA、PPPoE。

PPPoE:以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。

TCP 和 UDP

  1. TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。
  2. TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达
  3. UDP尽最大努力交付,即不保证可靠交付。
  4. TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流。
  5. UDP是面向报文,UDP没有拥塞控制,网络出现拥塞不会使源主机的发送速率降低。
  6. 每一条TCP连接只能是点到点的。
  7. UDP支持一对一,一对多,多对一和多对多的交互通信。
  8. TCP首部开销20字节;UDP的首部开销小,只有8个字节。
  9. TCP的逻辑通信信道是全双工的可靠信道。
  10. UDP则是不可靠信道,整体来看UDP开销较小。

中继器

中继器(RP repeater)是工作在物理层上的连接设备。适用于完全相同的两类网络的互连,主要功能是通过对数据信号的重新发送或者转发,来扩大网络传输的距离。中继器是对信号进行再生和还原的网络设备:OSI模型的物理层设备。

网络故障诊断及常用命令

ipconfig 显示简要信息,不能查看DHCP服务开启情况。

ipconfig/all 显示详细信息,可查看DHCP服务是否已启动。

ipconfig/renew 更新所有适配器。

ipconfig/release 释放所有匹配的连接

常用命令

Ping:Ping是Windows系列自带的一个可执行命令,用于验证与远程计算机的连接.该命令只有在安装了TCP/IP协议后才可以使用。Ping命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通。当网络出现故障的时候,可以用这个命令来预测故障和确定故障地点。Ping命令成功只是说明当前主机与目的主机之间存在一条连通的路径。如果不成功,则考虑网线是否连通、网卡设置是否正确、IP地址是否可用等。利用它可以检查网络是否能够连通。Ping命令应用格式:ping IP地址。该命令还可以加参数使用,输入Ping后按回车键即可看到详细说明。

tracert:tracert命令主要用来显示数据包到达目的主机所经过的路径。该命令的使用格式是在DOS命令提示符下或者直接在运行对话框中输入如下命令: tracert主机IP地址或主机名。执行结果返回数据包到达目的主机前所经历的中继站清单,并显示到达每个中继站的时间。该功能同ping命令类似,但它所看到的信息要比Ping命令详细得多,它把用户送出的到某一站点的请求包,所走的全部路由都告诉用户,并且告诉用户通过该路由的IP是多少,通过该1P的时延是多少。具体的tracert命令后还可跟参数,输入tracert后按回车键,其中会有很详细的说明。

arp:arp命令用以显示和修改“地址解析协议(ARP )”缓存中的项目。ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的以太网或令牌环物理地址。计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。如果在没有参数的情况下使用,则arp命令将显示帮助信息。

nslookup:nslookup命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。

防火墙

网络防火墙就是一个位于计算机和它所连接的网络之间的软件。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流入通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。

防火墙的功能包括:访问控制;提供基于状态检测技术的ip地址、端口、用户和时间的管理控制;双向nat,提供ip地址转换和ip及tcp/udp端口映射,实现ip复用和隐藏网络结构,代理等。

网络攻击

拒绝服务(DOS):对信息或其它资源的合法访问被无条件地阻止。(主动攻击)

会话拦截:未授权使用一个已经建立的会话。(主动攻击)

修改数据命令:截获并修改网络中传输的数据命令。(主动攻击)

系统干涉:指的是攻击者获取系统访问权限干涉系统的正常运行。(被动攻击)

IIS6.0支持的身份验证安全机制

  1. 匿名访问:匿名验证使用用户无需输入用户名或密码便可以访问web或ftp站点的公共区域,是默认的认证方式。当用户使用匿名验证访问公共web和ftp站点时,IIS服务器向用户分配特定的windows用户账号iusr_computername,computername是指运行IIS的服务器名称。默认情况下,IUSR_computername账户包含在windows用户组guests中。
  2. 基本身份验证:基本身份验证在允许用户访问某个站点之前,提示用户在“登录”对话框中输入用户名和密码,然后web浏览器尝试使用这些信息建立连接。如果输入的用户名和密码有效,则建立连接,否则web浏览器将反复显示“登录”对话框,直到用户输入有效的用户名和密码或关闭此对话框。
  3. 摘要式身份验证:验证过程与基本验证类型,但在传送验证信息时使用了不同方法。基本验证使用明码传输,因而是不安全的;而摘要式验证的验证凭据则采用单向传送的“散列算法”。摘要式验证是HTTP1.1的一项新功能,并非所有的浏览器都支持它。如果不兼容的浏览器对服务器请求摘要式验证,服务器将拒绝请求并向客户端发送错误消息。
  4. 集成式window身份验证:集成windows验证是一种安全的验证形式,这是因为用户名和密码不通过网络发送,使用的是在客户端当前的windows登录信息。当启动集成windows验证时,用户的浏览器通过与web服务器进行密码交换。它是安全级别最高的验证方法。

内防内控

加强内防内控主要通过访问授权、安全策略、安全检查与行为审计等多种安全手段的综合应用来实现。终端接入的数量影响的是网络的规模、数据交换的性能,不是内防内控关注的的重点。


计算机组成原理

编译

在编译过程中:词法分析;语法分析;语义分析;目标代码生成是必须的,而代码优化和中间代码生成是可以不需要的。

编译直接生成目标代码,在机器上执行而编译器不需要参与执行,因此程序执行速度快;

解释则生成中间代码或其等价形式,程序执行时需要解释器的参与,并且有解释器控制程序的执行,因此执行速度慢。

在词法分析阶段,其任务是从左到右逐个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词或符号。这里所谓的单词是指逻辑上紧密相连的一组字符,这些字符组合在一起才表示某一含义。词法分析过程依据的是语言的词法规则,即描述“单词分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定”,是对单词的检查。

语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”和“程序”等。语法规则就是各类语法单位的构成规则。

语义分析阶段,分析各语法结构的含义,检查源程序是否包含静态语言错误,并收集类型信息供后面的程序生成阶段使用。Cache不属于主存,与主存容量无关。Cache容量相对于其他存储层次,量级较小,不能扩大存储系统的存量。

缓存

在CPU内外的高数缓存是用来解决CPU与内存之间速度、容量不匹配的问题,与外存无关,可以提高CPU访问主存数据或指令的效率。

原码、反码、补码转换

数值1

数值-1

1-1

原码

0000 0001

1000 0001

1000 0010

反码

0000 0001

1111 1110

1111 1111

补码

0000 0001

1111 1111

0000 0000

移码

1000 0001

0111 1111

1000 0000

原码范围:-127~127

反码范围:-127~127

补码范围:-128~127

移码范围:-128~127

一、正整数的原码、反码、补码完全一样,即符号位固定为0,数值位相同。

二、负整数的符号位固定为1,由原码变为补码时,规则如下:

1、原码符号位1不变,整数的每一位二进制数位求反,得到反码。

2、反码符号位1不变,反码数值位最低位加1,得到补码。

方法:

(1)正整数的原码,反码和补码计算。【符号位为0,原码=反码=补码】

(2)负整数的原码,反码和补码计算,先求原码,再求反码,最后求补码。

(3)根据补码求真值,一般使用图中的公式计算,正整数符号为+,负整数符号为-,通常完成补码求真后,可以按步骤1、2简单的逆推一下,看结果是否正确。

寻址

立即寻址:是一种特殊的寻址方式,指令中在操作码字段后面的部分不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了可以立即使用的操作数。

直接寻址:在直接寻址中,指令中地址码字段给出的地址A,就是操作数的有效地址,即形式地址等于有效地址。

间接寻址:指令中给出的地址A不是操作数的地址,而是存放操作数地址的主存单元的地址,简称操作数地址的地址。

寄存器寻址:寄存器寻址指令的地址码部分给出了某一个通用寄存器的编号Ri,这个指定的寄存器中存放着操作数。

查询速度

立即寻址是操作数直接在指令中,速度是最快的;

寄存器寻址是将操作数存放在寄存器中,数据中间;

直接寻址方式是指令中存放操作数的地址,数据最慢。

校验码

采用模二除法运算的只有循环冗余检验CRC

调用

传值调用最显著的特征就是被调用的函数内部对形参的修改不影响实参的值。引用调用是将实参的地址传递给形参,使得形参的地址就是实参的地址,函数中对形参的修改会导致原实参值的改变,因此可以实现实参与形参之间数据的双向传递。

在传值调用中,实参可以是变量,也可以是常量表达式,而在传址调用中,实参不能是常量。

总线

PCI总线:是目前微型机上广泛采用的内总线,采用并行传输方式。

SCSI总线:小型计算机系统接口时一条并行外总线,广泛用于连接软硬磁盘、光盘、扫描仪等。

媒体

感觉媒体:指直接作用于人的感觉器官,使人产生直接感觉的媒体。如:声音、图形、图像、动画等。

表示媒体:指为了加工、处理和传输感觉媒体而人为研究、构造出来的一种媒体,常见的有各种编码方式,如文本编码、图像编码和声音编码等。

显示媒体(表现媒体):表现和获取信息的物理设备。如:输入显示媒体键盘、鼠标和麦克风等;输出显示媒体显示器、打印机和音箱等。

存储媒体:存储数据的物理设备,如磁盘、光盘和内存等。

传输媒体:传输数据的物理载体,如电缆、光缆、交换设备等。

文件格式

WAV格式:为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几。

BMP格式:是Windows操作系统中的标准图像文件格式,可以分成两类:设备相关位图(DDB)和设备无关位图(DIB),使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其它任何压缩,因此,BMP文件所占用的空间很大。

MP3格式:是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3。

MOV格式:即Quick Time影片格式,它是Apple公司开发的一种音频、视频文件格式,用于存储常用数字媒体类型。

程序执行流程

I/O设备与主机间进行数据输入输出主要有直接程序控制方式、中断方式、DMA方式和通道控制方式。

直接程序控制方式的主要特点是:CPU直接通过I/O指令对I/O接口进行访问操作,主机与外设之间交换信息的每个步骤均在程序中表示出来,整个输入输出过程是由CPU执行程序来完成的。

中断方式的特点是:当I/O接A准备好接收数据或向CPU传送数据时,就发出中断信号通知CPU。对中断信号进行确认后,CPU保存正在执行的程序的现场,转而执行提前设置好的I/O中断服务程序,完成一次数据传输的处理。这样,CPU就不需要主动查询外设的状态,在等待数据期间可以执行其它程序,从而提高了CPU的利用率。采用中断方式管理I/O设备,CPU和外设可以并行地工作。

一次中断处理过程,需要执行若干条指令才能处理一次中断事件,因此这种方式无法满足高速的批量数据传输要求。

直接内存存取(DMA)方式的基本思想是:通过硬件控制实现主存与I/O设备间的直接数据传送,数据的传送过程由DMA控制器(DMAC)进行控制,不需要CPU的干预。在DMA方式下,需要CPU启动传送过程,即向设备发出“传送一块数据”的命令。在传送过程结束时,DMAC通过中断方式通知CPU进行一些后续处理工作。

DMA方式简化了CPU对数据传送的控制,提高了主机与外设并行工作的程度,实现了快速外设和主存之间成批的数据传送,使系统的效率明显提高。

通道是一种专用控制器,它通过执行通道程序进行I/O操作的管理,为主机与I/O设备提供一种数据传输通道。用通道指令编制的程序存放在存储器中,当需要进行I/O操作时,CPU只要按约定格式准备好命令,然后启动通道即可;通道则执行相应的通道程序,完成所要求的操作。用通道程序也可完成较复杂的I/O管理和预处理,从而在很大程度上将主机从繁重的I/O管理工作中解脱出来,提高了系统的效率。

矢量图

矢量图是根据几何特性来绘制图形,矢量可以是一个点或一条线,矢量图只能靠软件生成,文件占用内在空间较小,因为这种类型的图像文件包含独立的分离图像,可以自由无限制的重新组合。它的特点是放大图像不会失真,和分辨率无关,适用于图形设计、文字设计和一些标志设计、版式设计等。

矢量图中的图形元素称为图元。而另一类图具有代表性的图像表示形式是位图图像,该图采用像素来代替图像。


操作系统

输入/输出技术的三种方式

直接查询控制:有无条件传送和程序查询方式,都需要通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好向CPU输入的数据。在这种情况下CPU不做别的事情,只是不停地对外设的状态进行查询。

中断方式:当I/O系统与外设交换数据时,CPU无须等待也不必查询I/O的状态,而可以抽身来处理其它任务。当I/O系统准备好以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行的程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为CPU无需等待而提高了效率。

DMA:直接寄存器存取方式,是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU正在过程开始启动与过程结束时的处理,实际操作由DMA硬件直接执行完成。

中断方式

中断向量表:中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号以后,由中断控制器确定其中继号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU。

段页式

段号—页号—页内地址

系统初始化

        可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。

片级初始化

        可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。

板级初始化

        完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。

系统初始化

        该初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。

UNIX操作系统

        在UNIX操作系统中,把输入/输出设备看作是特殊文件。

        在UNIX系统中包括两类设备:块设备和字符设备。设备特殊文件有一个索引节点,在文件系统目录中占据一个节点,但其索引节点上的文件类型与其他文件不同,是“块”或者是“字符”特殊文件。文件系统与设备驱动程序的接口是通过设备开关表。

        硬件与驱动程序之间的接口:控制寄存器、I/O指令,一旦出现设备中断,根据中断矢量转去执行相应的中断处理程序,完成所要求的I/O任务。这样,可以通过文件系统与设备接口,对设备进行相关的操作,因为每个设备有一个文件名,可以向访问文件那样操作。        


数据库

1NF:要求关系模型中的属性都是原子属性,即不可再分的属性。

2NF:要求消除非主属性对候选健的部门依赖。

3NF:在2NF基础上,消除非主属性对于码的传递函数依赖。

BCNF范式:消除了主属性对于码的部分依赖和传递函数依赖。

赋予用户权限命令的简单格式可以概况为:

GRANT 权限 ON 数据库对象 TO 用户 WITH GRANT OPTION。

而WITH GRANT OPTION是可选项,表示用户可以将其权限通过GRANT语句授权给其它用户。

范化理论

数据库模式

模式:模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。定义模式时不仅要定义数据的逻辑结构,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。

外模式:外模式也称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。 外模式通常是模式的子集。一个数据库可以有多个外模式。应用程序都是和外模式打交道的。外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据对他们是不可见的。

内模式:内模式也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序结构存储还是B树结构存储;索引按什么方式组织;数据是否压缩,是否加密;数据的存储记录结构有何规定等。

事务

  1. 原子性(Atomicity):事务是原子的,要么做,要么不做。
  2. 一致性(Consistency):事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。
  3. 隔离性(lsolation):事务相互隔离。当多个事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的。
  4. 持久性(Durability):一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效。

软件工程

软件设计模式

模式 & 描述包括
创建型模式
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
结构型模式
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
过滤器模式(Filter、Criteria Pattern)
组合模式(Composite Pattern)
装饰器模式(Decorator Pattern)
外观模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
行为型模式
这些设计模式特别关注对象之间的通信。
责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
状态模式(State Pattern)
空对象模式(Null Object Pattern)
策略模式(Strategy Pattern)
模板模式(Template Pattern)
访问者模式(Visitor Pattern)
J2EE 模式
这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。
MVC 模式(MVC Pattern)
业务代表模式(Business Delegate Pattern)
组合实体模式(Composite Entity Pattern)
数据访问对象模式(Data Access Object Pattern)
前端控制器模式(Front Controller Pattern)
拦截过滤器模式(Intercepting Filter Pattern)
服务定位器模式(Service Locator Pattern)
传输对象模式(Transfer Object Pattern)

可用性 4方面

  1. 学会操作软件所需的体力/智力
  2. 对系统的使用达到中等效率所需的时间
  3. 当系统由一个中等效率的人使用时测量到的生产率增长值
  4. 用户对系统的主观评价

可维护性质量特性

指与软件维护的难易程度相关的一组软件属性,它包含了易分析性、稳定性、易测试性和易改变性4个子特性。

易分析性:描述诊断缺陷或失效原因、判定待修改程度的难易程度的特性。

稳定性:描述改造成难以预料的后果的风险程度,风险程度越低,稳定性越好。

易测试性:描述测试已修改软件的难以程度的特性。

易改变性:描述修改、排错或适应环境变化的难易程度。

软件成熟度模型(CMM)

CMM将软件过程能力成熟度划分为5级,每一级都为下一级提供一个基础。管理级对软件过程和产品都有定量的理解与控制,因此管理级和优化级均软件过程和产品有定量的理解与控制。

工作量估算模型COCOMO

COCOMO II模型也需要使用规模估算信息,在模型层次结构中有3种不同规模估算选择,即:对象点、功能点和代码行。

UML

UML文档仅仅是设计与开发人员采用UML语言进行系统分析与设计的结果,并没有给出如何进行开发和采用何种开发流程,同样也不指导如何进行面向对象设计。

UML仅仅是一种建模标准语言,规定了构成软件的各个元素和构件的图示规范。

采用UML进行软件建模过程中,类图是系统的一种静态视图,用 聚合关系 可明确表示两类事物之间存在的整体/部分形式的关联关系。

类图是描述类的构成以其多个类之间存在的静态关系的一种工具。对于一个系统中的两个类而言,它们要么不存在任何关系,要么存在is-like-a的关系,或has-a的关系.其中is-like-a表示两个类之间的继承关系,has-a表示两个类之间存在的整体与部分形式的组成关系,即其中一个类的数据成员的类型是另外一个类,而这种关系在UML中采用聚合关系表示。

类图:显示了类之间的关系;

活动图:显示人或对象的活动;

顺序图:强调对象间发送消息的顺序;

结构化语言

形式语言精确,但不易被理解,自然语言易理解,但它不精确,可能产生二义性。结构化语言取长补短,它是在自然语言基础上加了一些限定,使用有限的词汇和有限的语句来描述加工逻辑,结构化语言是介于自然语言(英语或汉语)和形式化语言之间的一种半形式化语言。

数据流图

数据流图中 某个加工的一组动作依赖于多个逻辑条件的取值,则用 决策树 能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。

描述模块或程序执行过程的历史最久、流行最广的一种图形表示方法。

NS图

是支持结构化程序设计方法而产生的一种描述工具。

决策树

一种适合于描述加工中具有多个策略且每个策略和若干条件有关的逻辑功能的图形工具。

软件配置管理SCM

主要目标是标识变更、控制变更、确保变更正确的实现,报告变更。其主要内容包括版本管理、配置支持、变更支持、过程支持、团队支持、变化报告和审计支持等等。

设计模式

适配器模式:将一个接口转换成为客户想要的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。

        有时候也称包装样式或者包装,将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。

桥接模式:将抽象部分与实现部分分离,使得它们两部分可以独立地变化。

享元模式:提供支持大量细粒度对象共享的有效方法。

组合模式:组合多个对象形成树型结构以表示整体一部分的结构层次。

迭代器模式(Iterator):提供一种方法来顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。

备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,从而可以在以后将该对象恢复到原先保存的状态。

装饰器模式:动态地给一个对象增加其他职责,就面向对象功能来说,装饰模式比生成之类实现更为灵活。当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。

      装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。

命令模式:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。

职责链模式:通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一个对象处理这个请求。

观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。

        有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式,是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。

策略设计模式:定义一系列算法,把它们一个个封装起来,并且使它们之间可互相替换,从而算法可以独立于使用它的用户而变化。

外观设计模式:为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用。

单件设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

        在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

模板方法模式:在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。

抽象工厂模式(Abstract Factory):提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。

状态模式(State):允许一个对象在其内部状态改变时改变它的行为。

瀑布模型:给出了软件生产周期中制定开发计划、需求分析、软件设计、编码、测试和维护等阶段以及各阶段的固定顺序,上一阶段完成后才能进入到下一阶段,整个过程如同瀑布流水。该模型为软件的开发和维护提供了一种有效的管理模式,但在大量的实践中暴露出其缺点,其中最为突出的是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。这些问题有可能造成开发出的软件并不是用户真正需要的,并且这一点只有在开发过程完成后才能发现。所以瀑布模型适用于需求明确,且很少发生较大变化的项目。

为了克服瀑布模型的上述缺点,演化模型允许在获取了一组基本需求后,通过快速分析构造出软件的一个初始可运行版本(称为原型),然后根据用户在适用原型的过程中提出的意见对原型进行改进,从而获得原型的新版本。这一过程重复进行、喷泉模型等适用于对软件需求缺乏明确认识的项目。

螺旋模型:将瀑布模型和演化模型进行结合,在保持二者优点的同时,增加了风险分析,从而弥补了二者的不足。该模型沿着螺线旋转,并通过笛卡尔坐标的四个象限分别表示四个方面的活动:制定计划、风险分析、实施工程和客户评估。螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。

喷泉模型:是以面向对象的软件开发方法为基础。以用户需求为动力,以对象来驱动的模型。该模型主要用于描述面向对象的开发过程,体现了面向对象开发过程的迭代和无间隙特性。迭代指模型中的活动通常需要重复多次,相关功能在每次迭代中被加入新的系统无间隙是指在各开发活动(如分析、设计、编码)没有明显边界。

概要设计与详细设计

软件设计的任务是基于需求分析的结果建立各种设计模型,给出问题的解决方案。从工程管理的角度,可以将软件设计分为两个阶段:

概要设计阶段和详细设计阶段。

结构化设计方法中,概要设计阶段进行软件体系结构的设计、数据设计和接口设计;

详细设计阶段进行数据结构和算法的设计。

面向对象设计方法中,概要设计阶段进行体系结构设计、初步的类设计、数据设计、结构设计;详细设计阶段进行构建设计。

结构化设计和面向对象设计是两种不同的设计方法,结构化设计根据系统的数据流图进行设计,模块体现为函数、过程及子程序;面向对象设计基于面向对象的基本概念进行,模块体现为类、对象和构建等。

风险曝光

风险暴露又称风险曝光度,测量的是资产的整个安全性风险,它将表示实际损失的可能性与表示大量可能损失的咨询结合到单一数字评估中。在形式最简单的定量风险分析中,风险曝光度可通过风险可能性及影响相乘算出。

风险曝光度(Risk Exposeure) = 错误出现率(风险率)* 错误造成损失(风险损失)

源程序错误

动态错误:指源程序中的逻辑错误,它们发送在程序运行的时候,比如算法逻辑上的错误。动态错误也被称为动态语义错误,如变量取值为0是被用作除数,引用数组元素时下标出界等。

静态错误:分为,语法错误和静态语义错误。

词法和语法错误是指有关语言结构上的错误,如单词拼写错误就是一种词法错误,表达式中缺少操作数、括号不匹配是不符合语法规则要求的语法错误等。

静态的语义错误是指分析源程序时可以发现的语言意义上的错误,如加法的两个操作中一个是实型变量名,而另一个是数组名等。

乔姆斯基谱系

无限制文法:对应语言(递归可枚举语言)设S⊆ Σ为一个语言,E是一个枚举器,若L(E) =S,则称E枚举了语言S。若存在这样 的E,S就称为递归可枚举语言。

上下文相关文法:对应语言(上下文相关语言)是可以被上下文有关文法定义的形式语言。它是在理论和实践中都使用最少的语言。

上下文无关文法:对应语言(上下文无关语言)设G=(V,T,P,s)为一个短语结构文法,若限定式中的所有产生式a->b都满足下列条件:b的长度不小于a之长度.则称G为上下文相关文法.由上下文相关文法产生的语言称为上下文相关语言.上下文相关语言都是递归的,但反之不然.

正规文法:对应语言(正规语言)这种语言的结构可以用所谓正规式来描述。

面向对象

面向对象分析主要回答软件系统需要解决什么问题,在面向对象分析阶段,并不考虑系统实现以及系统的测试问题,强调建立独立于系统实现的系统功能模型,其关注点仍然侧重于问题域。

结构化开发方法

结构化开发方法,是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。

结构化开发方法是传统的、也是应用较为广发的一种软件开发方法,它基于数据流进行需求分析和软件设计,用抽象模型的概念,按照软件内部数据传递和转换关系,对问题和功能自顶向下逐层分解。

Jackson系统开发方法

Jackson系统开发方法,是一种典型的面向数据结构的分析和设计方法,以活动为中心,一连串活动的顺序组合成一个完整的工作进程。

Booch方法

Booch方法,是一种面向对象的软件开发方法。

模块评审

  1. 控制流结构:规定了处理模块与处理模块之间的流程关系。检查处理模块之间的控制转移关系与控制转移形式(调用方式)。
  2. 数据流结构:规定了数据模块是如何被处理模块进行加工的流程关系。检查处理模块与数据模块之间的对应关系。检查处理模块与数据模块之间的对应关系;处理模块与数据模块之间的存取关系,如建立、删除、查询、修改等。
  3. 模块结构与功能结构之间的对应关系:包括功能结构与控制流结构的对应关系;功能结构与数据流结构的对应关系;每个模块的定义(包括功能、输入、输出数据)

原型方法

  1. 原型方法适用于用户需求不清、需求经常变化的情况,可以帮助导出系统需求并验证需求的有效性。
  2. 探索型原型的目的是弄清目标的要求,确定所希望的特性,并探讨多种方案的可行性,可以用来探索特殊的软件解决方案。
  3. 原型法能够迅速地开发出一个让用户看得见的系统框架,可以用来支持用户界面设计。
  4. 原型法不能用来指导代码优化。

耦合类型

数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

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

标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。

人机交互“黄金三原则”

包括:用户操作控制、减少用户的记忆负担、保持界面的一致性。

用户操作控制:以不强迫用户进入不必要或不希望的动作的方式来定义交互模式;提供灵活的交互;允许中断和撤销用户交互;当技能级别增长时可以使交互流线化并允许定制交互;使用户与内部技术细节隔离开来;设计应运行用户与出现在屏幕上的对象直接交互。

减轻用户的记忆负担:减少对短期记忆的要求;建立有意义的默认;定义直观的快捷方式;界面的视觉布局应该基于真实世界的象征;以不断进展的方式揭示信息。

保持界面一致:允许用户将当前任务放入有意义的环境中;在应用系统家族中保持一致;如果过去的交互模型已经建立起了用户期望,除非有不得已的理由,否则不要改变它。

测试

黑盒测试

        黑盒测试又称功能测试。它把软件看做一个不透明的黑盒子,完全不考虑(或不了解)软件的内部结构和处理算法,它只检查软件功能是否能按照软件需求说明书的要求正常使用,软件是否能适当地接收输入数据并产生正确的输出信息,软件运行过程中能否保持外部信息(例如文件和数据库)的完整性等。
        常用的黑盒测试技术包括等价类划分、边界值分析、错误推测和因果图等。


法律法规

知识产权

著作权、领接权、专利权、商标权、商业秘密权和集成电路布图设计权属于知识产权的范围。物权不属于知识产权的范围。

《标准化法》

《标准化法》分为五章二十六条,其主要内容是:确定了标准体制和标准化管理体制(第一章),规定了制定标准的对象与原则以及实施标准的要求(第二章、第三章),明确了违法行为的法律责任和处罚办法(第四章)。   标准是对重复性事物和概念所做的统一规定。标准以科学、技术和实践经验的综合成果为基础,以获得最佳秩序和促进最佳社会效益为目的,经有关方面协商一致,由主管或公认机构批准,并以规则、指南或特性的文件形式发布,作为共同遵守的准则和依据。   标准化是在经济、技术、科学和管理等社会实践中,以改进产品、过程和服务的适用性,防止贸易壁垒、促进技术合作、促进最大社会效益为目的,对重复性事物和概念通过制定、发布和实施标准,达到统一,以获得最佳秩序和社会效益的过程。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值