软考中级软件设计师知识点总结

计算机组成与体系结构

CPU的组成(运算器与控制器)

层次化存储体系

DRAM:动态随机存取存储器; 计算机系统的主存

SRAM.静态随机存取存储器;

Cache:高速缓存;

EEPROM:电可擦可编程只读存储器。

题目中的存储设备按访问速度排序为:通用寄存器> Cache>内存>硬盘

码制(原码/反码/补码/移码)

奇偶校验码

浮点数的表示

浮点数能表示的数的范围由阶码的位数决定,精度由尾数的位数决定。

海明校验码

流水线技术

采用异步控制方式在给流水线提速的同时,会明显增加流水线阻塞的概率,所以不会明显提高整体性能。

Cache

在程序的执行过程中,Cache与主存的地址映射是由硬件自动完成的。

全相联映像块冲突最小,其次为组相联映像,直接映像块冲突最大。

输入输出技术

程序控制(查询)方式:CPU需要不断查询I/O是否完成,因此一直占用CPU.

程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。

DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。CPU只负责初始化,不参与具体传输过程。

DMA和程序中断方式,是可以让外设与CPU并行的。

指令周期(Instruction Cycle) :取出并执行—条指令的时间。

总线周期(BuS Cycle) :也就是一个访存储器或I/O端口操作所用的时间。

时钟周期(Clock Cycle) :又称震荡周期,是处理操作的最基本单位。

指令周期、总线周期和时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。

—个总线周期包含一个(只有取址周期)或多个机器周期。

机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。

DMA响应过程为:DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知O接口开始DMA专输。

可靠性与可用性

MTBF为平均失效间隔时间,则可用性用MTBFI(1+MTBF)表示。(可用性是指在给定的时间点上,一个系统能够正确运作的概率)

MTTF为平均无故障时间,则可靠性可用MTTF/(1+MTTF)表示。(可靠性是指系统在给定的时间间隔内、给定条件下无失效运作的概率)

其他

在程序运行过程中,CPU需要将指令从内存中取出并加以分析和执行。CPU依据(指令周期的不同阶段)来区分在内存中以二进制编码形式存放的指令和数据。

总线系统

在单总线结构中,CPU与主存之间、CPU与I/O设备之间、O设备与主存之间、各种设备之间都通过系统总线交换信息。单总线结构的优点是控制简单方便,扩充方便。但由于所有设备部件均挂在单一总线上,使这种结构只能分时工作,即同一时刻只能在两个设备之间传送数据,这就使系统总体数据传输的效率和速度受到限制,这是单总线结构的主要缺点。

寻址方式

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

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

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

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

CISC与RISC

CISC是复杂指令系统计算机,RISC是精简指令系统计算机。

计算机指标

指令寄存器IR是用来存放要执行的指令的,所以跟指令的的长度有关。

逻辑运算

计算机运算溢出检测机制,采用双符号位,00表示正号,11表示负号。如果进位将会导致符号位不一致,从而检测出溢出。结果的符号位为01时,称为上溢;为10时,称为下溢。
由此可知,溢出时如果对两个符号位进行异或运算,结果为1,符合题目条件。

信息安全

信息摘要与数字签名

网络安全协议

1、HTTPS是基于SSL(Secure Sockets Layer安全套接层)的。

2、http的端口号为80,而HTTPS的默认端口是443,注意区分。

对称加密与非对称加密技术

RSA是非对称加密算法;

SHA-1与MD5属于信息摘要算法;

RC-5属于对称加密算法。

这些算法中SHA-1与MD5是不能用来加密数据的,而RSA由于效率问题,一般不直接用于大量的明文加密,适合明文加密的,也就只有RC-5了。

公开密钥加密(public-key cryptography),也称为非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,需要—对密钥,一个是私人密钥,另一个则是公开密钥。
常见的公钥加密算法有: RSA、ElGamal、背包算法、Rabin(RSA的特例)、迪菲–赫尔曼密钥交换协议中的公钥加密算法、椭圆曲线加密算法((Elliptic curve Cryptography, ECC) ;
DES是典型的私钥加密体制,属于对称加密。
DSA数字签名(又称公钥数字签名),将摘要信息用发送者的私钥加密,接收者只有用发送者的公钥才能解密被加密的摘要信息。

系统安全分级

安全防范体系的层次划分:

(1)物理环境的安全性。包括通信线路、物理设备和机房的安全等。物理层的安全主要体现在通信线路的可靠性(线路备份、网管软件和传输介质)、软硬件设备的安全性(替换设备、拆卸设备、增加设备)、设备的备份、防灾害能力、防干扰能力、设备的运行环境(温度、湿度、烟尘)和不间断电源保障等。

(2)操作系统的安全性。主要表现在三个方面,一是操作系统本身的缺陷带来的不安全因素,主要包括身份认证、访问控制和系统漏洞等;二是对操作系统的安全配置问题;三是病毒对操作系统的威胁。

(3)网络的安全性。网络层的安全问题主要体现在计算机网络方面的安全性,包括网络层身份认证、网络资源的访问控制、数据传输的保密与完整性、远程接入的安全、域名系统的安全、路由系统的安全、入侵检测的手段和网络设施防病毒等。

(4))应用的安全性。由提供服务所采用的应用软件和数据的安全性产生,包括Web服务、电子邮件系统和DNS等。此外,还包括病毒对系统的威胁。

(5)管理的安全性。包括安全技术和设备的管理、安全管理制度、部门与人员的组织规则等。管理的制度化极大程度地影响着整个计算机网络的安全,严格的安全管理制度、明确的部门安全职责划分与合理的人员角色配置,都可以在很大程度上降低其他层次的安全漏洞。

防火墙技术

防火墙工作层次越低,工作效率越高,安全性越低。

防火墙工作层次越高,工作效率越低,安全性越高。

包过滤防火墙工作在网络协议IP层,它只对IP包的源地址、目标地址及相应端口进行处理,因此速度比较快,能够处理的并发连接比较多,缺点是对应用层的攻击无能为力,包过滤成本与它的安全性能没有因果关系,而应用程序和用户对于包过滤的过程并不需要了解,因此该技术对应用和用户是透明的

代理服务器防火墙将收到的IP包还原成高层协议的通讯数据,比如http连接信息,因此能够对基于高层协议的攻击进行拦截。缺点是处理速度比较慢,能够处理的并发数比较少,所以不能提高网络整体性能,而代理对于用户认证可以设置。

网络攻击

DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。
作个形象的比喻来理解DoS。街头的餐馆是为大众提供餐饮服务,如果一群地痞流氓要DoS餐馆的话,手段会很多,比如霸占着餐桌不结账,堵住餐馆的大门不让路,骚扰餐馆的服务员或厨子不能干活,甚至更恶劣…SYN Flooding攻击便是Dos攻击的典型代表,该攻击以多个随机的源主机地址向目的路由器发送SYN包,而在收到目的路由器的SYN ACK后并不回应,这样,目的路由器就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务,甚至导致路由器崩溃。服务器要等待超时(Time Out)才能断开已分配的资源。

法律法规与标准化

保护期限

多媒体基础

多媒体技术基本概念

改变数字载波频率可以改变乐音的音调。

改变它的幅度就可以改变乐音的音高。

媒体的种类(显示媒体)

感觉媒体:指人们接触信息的感觉形式。如:视觉、听觉、触觉、嗅觉和味觉等。

表示媒体:指信息的表示形式。如:文字、图形、图像、动画、音频和视频等。

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

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

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

软件工程

需求分析相关概念

数据流图与数据字典

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

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

③NS图:是支持结构化程序设计方法而产生的—种描述工具。

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

开发模型

增量模型又称为渐增模型,也称为有计划的产品改进模型,它从一组给定的需求开始,通过构造一系列可执行中间版本来实施开发活动。第一个版本纳入一部分需求,下一个版本纳入更多的需求,依此类推,直到系统完成。每个中间版本都要执行必需的过程、活动和任务。增量模型是瀑布模型和原型进化模型的综合,它对软件过程的考虑是:在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理;但在软件的实际创建中,则将软件系统按功能分解为许多增量构件,并以构件为单位逐个地创建与交付,直到全部增量构件创建完毕,并都被集成到系统之中交付用户使用。比较瀑布模型、原型进化模型,增量模型具有非常显著的优越性。但增量模型对软件设计有更高的技术要求,特别是对软件体系结构,要求它具有很好的开放性与稳定性,能够顺利地实现构件的集成。增量模型有以下不足之处:如果没有对用户的变更要求进行规划,那么产生的初始增量可能会造成后来增量的不稳定;如果需要不像早期思考的那样稳定和完整,那么一些增量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性可能会超出组织的能力。一开始需求不清晰,会影响开发的进度

螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。

螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。

同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。

极限编程是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求是。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其他一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。XP就提倡结对编程(Pair Programming),而且代码所有权是归于整个开发队伍。其中的结对编程就是一种对代码的审查过程,XP主要解决代码质量低的问题,编码速度不能改变。

并列争球法使用了迭代的方法,其中,把每段时间(30天)一次的迭代称为一个”“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,常见的敏捷开发方法有极限编程法、水晶法、并列争球法和自适应软件开发方法。

极限编程是一种轻量级的开发方法,它提出了四大价值观:沟通、简单、反馈、勇气。五大原则:快速反馈、简单性假设、逐步修改、提倡更改、优质工作

水晶法强调经常交付,认为每一种不同的项目都需要—套不同的策略、约定和方法论。

并列争球法的核心是迭代、增量交付,按照30天进行迭代开发交付可实际运行的软件。

自适应软件开发的核心是三个非线性的,重迭的开发阶段:猜测、合作、学习。

什么是Rational统—过程(Rational Unified Process)br> Rational Unified Process是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。
统一过程模型是一种”用例驱动,以体系结构为核心,迭代及增量”的软件过程框架,由UML方法和工具支持。RUP把—个项目分为四个不同的阶段:
构思阶段︰包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型。
细化阶段︰包括用户沟通和建模活动,重点是创建分析和设计模型,强调类的定义和体系结构的表示。构建阶段∶将设计转化为实现,并进行集成和测试。
移交阶段∶将产品发布给用户进行测试评价,并收集用户的意见,之后再次进行迭代修改产品使之完善。没有确认阶段,因此B选项错误。
每个迭代有五个核心工作流:(1)捕获系统应该做什么的需求工作流;(2)精化和结构化需求的分析工作流;(3)在系统结构内实现需求的设计工作流;(4)构造软件的实习工作流;(5)验证是否如期那样工作的测试工作流。

软件质量特性

软考中级软件设计师知识点总结

耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。

模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,

模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息

内聚类型

软考中级软件设计师知识点总结

软件维护相关概念及工具

辅助软件维护过程中的活动的软件称为”软件维护工具”,它辅助维护人员对软件代码及其文档进行各种维护活动。

软件维护工具主要有:

1、版本控制工具;

2、文档分析工具;

3、开发信息库工具;

4、逆向工程工具;

5、再工程工具;

6、配置管理支持工具。

逆向工程产品设计可以认为是一个从产品到设计的过程。

简单地说,逆向工程产品设计就是根据已经存在的产品,反向推出产品设计数据(包括各类设计图或数据模型)的过程。

这个过程一般是在软件交付使用之后进行,所以是在原软件生命周期的软件维护阶段进行

软件测试相关概念

无论哪种调试方法,其目的都是为了对错误进行定位。目前常用的调试方法有试探法、回溯法、对分查找法、演绎法和归纳法。

试探法:调试人员分析错误的症状,猜测问题所在的位置,利用在程序中设置输出语句,分析寄存器、存储器的内容等手段获得错误的线索,一步一步地试探和分析出错误所在。这种方法效率都很低,适合于错误比较简单的程序。

回溯法:调试人员从发现错误症状的位置开始,人工沿着程序的控制流程往回跟踪代码,直到找出错误根源为止。这种方法适合于小型程序,对于大规模程序,由于其需要回溯的路径太多而变得不可操作。

对分查找法:这种方法主要用来缩小错误的范围,如果已经知道程序中的变量在若干位置的正确取值,可以在这些位置给这些变量以正确值,观察程序运行的输出结果,如果没有发现问题,则说明从赋予变量一个正确值开始到输出结果之间的程序没有错误,问题可能在除此以外的程序中。否则错误就在所观察的这部分程序中,对含有错误的程序段再使用这种方法,直到把故障范围缩小到比较容易诊断为止。

归纳法:归纳法就是从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在。本题题干描述的是归纳法。

演绎法∶演绎法根据测试结果,列出所有可能的错误原因;分析已有数据,排除不可能和彼此矛盾的原因;对其余原因,选择可能性最大的,利用已有的数据完善该假设,使假设更具体;用假设来解释所有的原始测试结果,如果能解释这一切,则假设得以证实,也就是找出错误,否则,要么是假设不完备或不成立,要么有多个错误同时存在,需要重新分析,提出新的假设,直到发现错误为止。

软件维护相关概念

正式技术评审是—种由软件工程师和其他人进行的软件质量保障活动。

其目标包括:
(1) 发现功能、逻辑或实现的错误;

(2)证实经过评审的软件的确满足需求;

(3)保证软件的表示符合预定义的标准;

(4)得到—种—致的方式开发的软件;

(5)使项目更易管理。

结构化设计任务

体系结构设计:定义软件系统各主要部件之间的关系。

数据设计:基于E-R图确定软件涉及的文件系统的结构及数据库的表结构。

接口设计((人机界面设计)︰软件内部,软件和操作系统间以及软件和人之间如何通信。

过程设计:系统结构部件转换成软件的过程描述。确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。

架构设计

软件体系结构的各种风格中,仓库风格包含一个数据仓库和若干个其他构件。数据仓库位于该体系结构的中心,其他构件访问该数据仓库并对其中的数据进行增、删、改等操作。

仓库风格优点包括:
1、解决问题的多方法性;

2、具有可更改性和可维护性;

3、有可重用的知识源;

4、支持容错性和健壮性。

缺点:
1、测试困难:由于黑板模式的系统有中央数据构件来描述系统的体现系统的状态,所以系统的执行没有确定的顺序,其结果的可再现性比较差,难于测试;
2、不能保证有好的求解方案;
3、效率低;
4、开发成本高;
5、缺少对并行机的支持。
仓库风格包括:数据库系统、黑板系统、超文本系统。编译器可用多种架构风格实现。

概要设计与详细设计

软件设计的任务是基于需求分析的结果建立各种设计模型,给出问题的解决方案。

从工程管理的角度,可以将软件设计分为两个阶段:概要设计阶段和详细设计阶段。

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

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

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

测试阶段任务及其他测试

1、自顶向下集成
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需—个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产品的主要控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

2、自底向上集成
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

软件容错技术

冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件、和软件。冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到较大的提高。
主要的冗余技术有结构冗余(硬件冗余和软件冗余)、信息冗余、时间冗余和冗余附加四种。

1.结构冗余
结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余、动态冗余和混合冗余三种。
(1)静态冗余。静态冗余又称为屏蔽冗余或被动冗余,常用的有三模冗余和多模冗余。静态冗余通过表决和比较来屏蔽系统中出现的错误。例如,三模冗余是对三个功能相同,但由不同的人采用不同的方法开发出的模块的运行结果进行表决,以多数结果作为系统的最终结果。即如果模块中有一个出错,这个错误能够被其他模块的正确结果”屏蔽”。由于无需对错误进行特别的测试,也不必进行模块的切换就能实现容错,故称为静态容错。
(2)动态冗余。动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。各备用模块在其待机时,可与主模块—样工作,也可不工作。前者叫做热备份系统(双重系统),后者叫做冷备份系统(双工系统、双份系统)。在热备份系统中,两套系统同时、同步运行,当联机子系统检测到错误时,退出服务进行检修,而由热备份子系统接替工作,备用模块在待机过程中其失效率为O;处于冷备份的子系统平时停机或者运行与联机系统无关的运算,当联机子系统产生故障时,人工或自动进行切换,使冷备份系统成为联机系统。在运行冷备份时,不能保证从系统断点处精确地连续工作,因为备份机不能取得原来的机器上当前运行的全部数据。(3)混合冗余。混合冗余技术是将静态冗余和动态冗余结合起来,且取二者之长处。它先使用静态冗余中的故障屏蔽技术,使系统免受某些可以被屏蔽的故障的影响。而对那些无法屏蔽的故障则采用主动冗余中的故障检测、故障定位和故障恢复等技术,并且对系统可以作重新配置。因此,混合冗余的效果要大大优于静态冗余和动态冗余。然而,由于混合冗余既要有静态冗余的屏蔽功能,又要有动态冗余的各种检测和定位等功能,它的附加硬件的开销是相当大的,所以混合冗余的成本很高,仅在对可靠性要求极高的场合中采用。
2.信息冗余
信息冗余是在实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法。例如,检错码和纠错码就是信息冗余的例子。这种冗余信息的添加方法是按照—组预定的规则进行的。符合添加规则而形成的带有冗余信息的字称为码字,而那些虽带有冗余信息但不符合添加规则的字则称为非码字。当系统出现故障时,可能会将码字变成非码字,于是在译码过程中会将引起非码字的故障检测出来,这就是检错码的基本思想。纠错码则不仅可以将错误检测出来,还能将由故障引起的非码字纠正成正确的码字。
由此可见,信息冗余的主要任务在于研究出—套理想的编码和译码技术来提高信息冗余的效率。编码技术中应用最广泛的是奇偶校验码、海明校验码和循环冗余校验码。
3.时间冗余
时间冗余是以时间(即降低系统运行速度)为代价以减少硬件冗余和信息冗余的开销来达到提高可靠性的目的。在某些实际应用中,硬件冗余和信息冗余的成本、体积、功耗、重量等开销可能过高,而时间并不是太重要的因素时,可以使用时间冗余。时间冗余的基本概念是重复多次进行相同的计算,或称为重复执行(复执),以达到故障检测的目的。
实现时间冗余的方法很多,但是其基本思想不外乎是对相同的计算任务重复执行多次,然后将每次的运行结果存放起来再进行比较。若每次的结果相同,则认为无故障;若存在不同的结果,则说明检测到了故障。不过,这种方法往往只能检测到瞬时性故障而不宜检测永久性的故障。
4.冗余附加
冗余附加技术包括:冗余备份程序的存储及调用,实现错误检测和错误恢复的程序,实现容错软件所需的固化程序。

模块设计原则

一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。
一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。
一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用”上移判点“或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。

其他

传入模块:从下属模块取得数据,经处理再将其传送给上级模块。

传出模块:从上级模块取得数据,经处理再将其传送给下属模块。

变换模块:从上级模块取得数据,进行特定的处理,转换成其他形式,再传送给上级模块。

软件过程改进

CMM的分级结构及其过程描述:
(1)初始级:软件过程的特点是无秩序或说无定规的,有时甚至是混乱的。软件过程定义几乎处于无章法、无步骤可循的状态,软件产品所取得的成功往往依赖于极个别人的努力和机遇。

(2)可重复级:已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。

(3)已定义级:用于管理的和工程的软件过程均已文档化、标准化,并形成了整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。

(4)已管理级:软件过程和产品质量有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。

(5)优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地对促进过程进行改进。
除第一级外,每一级都设定了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,自然可以向上一更为成熟的高一级别迈进。CMM体系不主张跨级别的进化,因为从第二级开始,每一个低级别的实现均是更高级别实现的基础。

项目管理

软件项目估算

配置管理

配置管理包括版本控制、变更管理、配置状态报告、配置审计。

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

风险管理

风险的优先级通常是根据风险暴露(Risk Exposure)设定

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

程序设计语言基础

编译器工作过程

归约分析是自底向上方法中的典型。先分析词,即词法分析。而分析词的组合,即语法分析。

符号表:符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。
哈希表:也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中—个位置来访问记录,以加快查找的速度。
动态查找表:动态查找表的表结构本身是在查找过程中动态生成的,即对于给定值key,若表中存在其关键字等于key的记录,则查找成功返回,否则插入关键字等于key的记录。
栈和队列:基本的数据结构。栈的基本特点是”后进先出”,而队列的基本特点是”先进先出”。

传值与传址

多种程序语言特点

LISP是一种通用高级计算机程序语言,长期以来垄断人工智能领域的应用。LISP作为因应人工智能而设计的语言,是第一个声明式系内函数式程序设计语言,有别于命令式系内过程式的C、Fortran和面向对象的Java、C#等结构化程序设计语言。

全局变量、静态局部变量、静态全局变量都存放在静态数据存储区。

编译与解释

编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。将某一种程序设计语言写的程序翻译成等价的另一种语言的程序的程序,称之为编译程序。

编译方式生成逻辑上与源程序等价的目标程序,解释方式不生成

中间代码

后缀和三地址码是常用的中间代码。

操作系统

树形目录结构(绝对路径与相对路径)

该文件的全文件名包括其所在路径及其文件名称,为/Swtools/FflashiIw.dll。相对路径就是指由这个文件所在的路径引起的跟其他文件(或文件夹)的路径关系;题中为flash/;绝对路径是指目录下的绝对位置,直接到达目标位置;题中为/swtools/flash/.

文件相关概念

修改linux文件权限命令:chmod。

进程的状态

进程控制块PCB的组织方式有:1)线性表方式,2) 索引表方式,3)链接表方式。

1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。

  1. 索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。

3)链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。

特殊的操作系统

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

片级初始化
完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时的默认状态逐步设置成系统所要求的工作状态。这是—个纯硬件的初始化过程。

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

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

面向对象技术

设计模式的图

来源:Ryoha_橘凉叶

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年10月5日
下一篇 2021年10月5日

相关推荐