软件设计师知识点汇总

软件设计师知识点汇总
软件设计师知识点汇总

1计算机系统组成

运算器:算术/逻辑运算单元ALU、累加器ACC、寄存器组、多路转换器、数据总线组成。控制器:计数器PC、时序产生器、微操作信号发生器,指令寄存器、指令译码器。CPU 的功能:程序控制、操作控制、时间控制、数据处理(最根

本的)。

CACHE高速缓存的地址映像方法:直接地址映像(主存分

区,区分块)、全相联映像(主存分块)、组相联映像(主

存分区,区分块、块成组,CACHE分块成组)。替换算法:随机、先进先出、近期最少用、优化替换算法。性能分析:

H为CACHE命中率,t c为Cache存取时间、t m为主存访问时间,Cache等效访问时间t a=H t c +(1-H) t m提高了t m/t a倍。虚拟存储器由主存、辅存、存储管理单元和操作系统软件组

成。

相联存储器是按内容访问的,用于高速缓冲存储器、在虚拟

存储器中用来作段表页表或快表存储器、在数据库和知识库

中。

RISC精简指令集:指令种类少、长度固定、寻址方式少、

最少的访内指令、CPU内有大量寄存器、适合流水线操作。

内存与接口统一编址:都在一个公共的地址空间里,独立使

用各自的地址空间。优点是内存指令可用于接口,缺点内存

地址不连续,读程序要根据参数判断访内还是访接口。

廉价冗余磁盘阵列RAID:0级不具备容错能力但提高了传

输率N倍、1级镜像容错技术、2级汉明码作错误检测、3级只用一个检测盘、4级是独立地对组内各磁盘进行读写的

阵列,用一个检测盘、5级无专门检测盘。

中断方式处理方法:多中断信号线法、中断软件查询法、

菊花链法(硬件)、总线仲裁法、中断向量表法(保存各中

断源的中断服务程序的入口地址)。

直接存储器存取DMA:内存与IO设备直接成块传送,无需CPU干涉。根据占据总线方法不同分为CPU停止法、总线周期分时法、总线周期挪用法。

输入输出处理机用于大型机:数据传送方式有字节多路方

式、选择传送方式、数组多路方式。

指令流水线:操作周期是最慢的操作的时间。建立时间是达

到最大吞吐率的时间。

总线内总线:ISA、EISA、PCI;外总线:RS-232(3根线全双工15米)、SCSI(并行外总线、16位、最大320M秒、最多63个设备20米)、USB(4条线480M秒接5层127个设备)、IEEE-1394(串行6条线3.2G秒热插)

阵列处理机:单指多数据流SIMD,同步同时执行同一指令。多处理机:多指多数据,多处理机互连应满足高频带、低成

本、方式多样、在不规则通讯下连接的无冲突性。四种结构:总线式、交叉开关、多端口存储器结构、开关枢纽式。

并行处理机:单指令多数据流,分布存储和共享存储两种结

构。特点资源重复、连接模式、专用性(与算法联系)、复合性。

信息安全五要素:机密性、完整、可用、可控性、可审查性。

安全等级:三类技术安全性、管理安全性、政策法规安全性。《可信计算机系统评测标准》TCSEC/TDI分4组7级。A1可验证安全设计、B3安全域、B2结构化安全保护、B1标记安全保护、C2受控访问控制、C1初级、D最低无安全功能。安全威胁:对资源的机密性、完整性、可用性、合法性造成

危害。两类故意和偶然。

加密技术的两个元素:算法和密钥。对称加密即私密加密,

加解密使用相同的密钥DES;非对称加密即公密加密RSA,加密公开解密保密,适合少量数据加密;不可逆加密。常

用加密算法:DES算法采用56位密钥对64位数据加密密钥太短、三重DES效果相当于密钥长度加倍;RC5算法RSA 采用此算法;IDEA密钥是128位。密钥管理:密钥产生由

权威认证机构CA中心、公开密钥体系PKI、密钥分发中心KDC。

认证技术主要解决通讯双方身份认可。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术(包括加密、

数字签名、数据完整机制、数字信封、双重数字签名)。密钥备份恢复仅限解密密钥,私密不备份。PKI采用证书进行

公钥管理,PKI把公钥密码和对称密码结合起来,保证网上

数据安全传输。机密性(不被偷看)、完整性(不被篡改)、有效性(不被否认)。PKI标准化有两个方面:RSA的机密密钥标准PKCS和工业基础协议PKIX。Hash函数:输入不同长度字符返回定长串,即Hash值。它可以在数字签名中解决验证签名和用户身份验证、不可抵赖性的问题。信息摘要即数字指纹,它用于创建数字签名,对于特定文件信息摘

要是唯一的,常用Hash函数有MD2、MD4、MD5他们都产生128位摘要。数字签名使用发送方密钥对,使用发送方私

密加密,接受方用发送方的公密解密,是一对多关系;数字加密使用接受方密钥对,公钥加密,私密解密、是多对一的

关系。

SSL安全协议:即安全套接层协议,用于保证通讯安全系数。提供三方面的服务:用户和服务器的合法认证、机密数据以

隐藏被传送的数据、保证数据的完整性(采用Hash函数和机密共享技术保证数据完整性)。

数字时间戳技术:提供电子文件的日期和时间信息的安全保护。时间戳包括三部分:需加时间戳的文件的摘要、DTS收到文件的日期和时间、DTS的数字签名。

解决局域网安全问题的技术:①划分网段、局域网交互技术、VLAN,②加密、数字签名、认证和VPN技术,③防火墙,④入侵检测技术⑤网络安全扫描技术。

计算机的可靠性:衡量一个计算机系统可靠性R、可用性A、可维修性S。

平均无故障时间MTBF=1/λ;串连系统可靠性R=R1+R2 ;失效率λ=λ1+λ2;

并联系统:R=1-(1-R1)(1-R2);总失效率=1/( (1/λ)* ∑(1/1..n) );

计算机性能评测方法:时钟频率、指令执行速度、等效指令

速度法、数据处理速率、核心程序法。

2汇编和编译

汇编语言的三类语句:指令、伪指令、宏指令语句。

编译的过程:①词法分析,②语法分析,③语义分析、④中

间代码生成(三地址码)、⑤代码优化:基本块划分:第一条、

转移、转移后面的语句。三种优化:合并已知变量、删除无

用赋值、删除多余运算。⑥目标代码生成,⑦符号表管理,

⑧出错处理。编译比解释效率高,解释的灵活性和可移植

性好。

文法语言自动机产生式规则

0-型递归可枚举语言图灵机无限制

1-型上下文相关语言线性有界非确定图灵机αAβ -> αγβ 

2-型上下文无关语言非确定下推自动机 A -> γ 

3-型正规语言有限状态自动机 A -> aB

3操作系统

四个特征:并发、共享、虚拟性、不确定性。五大管理功能:

进程、文件、存储、设备、作业管理。运行、就绪、阻塞。

操作系统内核包含支撑功能(中断处理、时钟管理、原语操作)、资源管理功能(进程、存储、设备管理)。引起阻塞的原因:启动某个IO操作、新数据尚未到底、无新工作可作。

互斥临界区的管理原则:有空则进、无空等待、有限等待、

让权等待。信号量机制有整型信号量、记录型、信号量集机

制。公用信号量:实现互斥,等于临界资源数目;私用信号量实现同步。P(-1)V(+1)。进程的高级原语通信的类

型有:共享存储系统、消息传递系统、管道通信。管程实现同步机制的基础是条件结构。

进程调度:三级调度高级调度(长调度、作业调度、接纳

调度)、中级调度(对换调度)、低级调度(进程调度)。调度方式:先来先服务、时间片轮转、优先级调度、多级反馈

调度算法。优先级的确定:I/O型最高优先级、计算型进程减少调度次数、主要是CPU处理的进程、为适应一个进程在不同时间段的运行特点,I/O完成时,提高优先级;时间片用

完时降低优先级。

死锁产生的原因:资源竞争及进程推进顺序非法。产生死锁

的四个必要条件:互斥条件、请求保持、不可剥夺条件、环

路条件。死锁的处理:鸵鸟政策、预防政策(静态分配法、

资源有序分配法)、避免政策(安全状态和银行家算法)、检测与解除死锁。

线程也称为轻型进程:目的是提高系统内程序并发程度、提

高吞吐量。线程作为调度和分配的基本单位,基本不拥有资

源;进程作为独立分配资源的单位。线程可以创建线程,同

一进程有多个线程。

存储管理的功能:主存的分配和回收、提高主存的利用率、

存储保护、主存扩充。可变分区的四种算法:最佳适应(保留最大空白区、找最适合的分区)、最差适应(不易产生碎片、找最大的分区)、首次适应(最易合并相邻空白区)、循环首次适应。解决碎片的方法是拼接即紧凑。地址重定位是逻辑地址被转成主存物理地址的过程。可重定位分区是解决碎片问题的简单有效的方法。

分页存储管理:页表的作用是实现从页号到物理块号的地址

映射。地址变换机构的基本任务是利用页表把用户程序中的

逻辑地址变换成主存中的物理地址。快表:硬件实现,有一

组联想高速存储器组成。两级页表机制:外层页表即页目录

存放页表的物理地址,内层页表页的物理块号。

分段存储管理:便于编程、分段共享、分段保护、动态链接、动态增长。段页式存储管理。

虚拟存储管理:根据程序运行局部性原理,具有请求调入和

置换功能;特征:离散性、多次性、对换性、虚拟性。请求

分页的硬件支持:缺页中断特点:在指令执行期间产生和处

理(一般中断在后)、返回时回到该指令的开始重新执行该

指令(一般中断回到下一条)、一条指令可产生多次缺页中断。虚拟存储的页面置换算法减少抖动颠簸:最佳置换、

先进先出FIFO、最近最久未使用LRU、最近未用算法NUR。工作集:驻留内存,是进程集合。

设备管理:目标提高设备利用率。I/O系统组成:设备、控制器、通道、总线、I/O软件。块设备(磁盘):传输率高、可寻址、DMA方式。字符设备(终端、打印机):传输率低、不可寻址、中断方式。中速(各种打印机)高速设备(磁带

磁盘光盘)。设备管理的主要技术:中断技术、DMA、通道、缓冲技术。

I/O软件的目的是设备独立性和统一命名。分四层:中断处

理程序、设备驱动程序、与设备无关的系统软件(功能统一

接口、设备命名、保护、缓冲、错误处理、存储分配释放)、用户级软件(I/O调用、格式化I/O、Spooling)。

通道:目的是使数据独立于CPU。字节多路通道、数组选择

通道、数组多路通道。

DMA技术:指主存与I/O设备间直接成块传送,只需CPU 启动信号,不需CPU干涉。缓冲技术:目的提高外设利用率,解决CPU与IO速度不匹配、减少中断频率放宽中断相应时

间的限制、提高CPU与IO的并行。Spooling假脱机技术使

独占设备变成多台虚拟设备,由预输入程序、缓输出技术、

井管理程序、输入输出井组成。磁盘调度目标是使平均寻道

时间最短。

常见文件系统FAT32 NTFS HPFS VXT2 VFAT。文件控制块FCB是由基本信息(名、物理地址)、存取控制信息、使用

信息组成。FCB的集合称为目录。磁盘分配表是外存空闲空间管理的数据结构。空闲空间管理方法有空闲区表、位示图、空闲块链、成组链接法。文件共享:硬链接ln名新名、软链接ls –s。

作业由程序、数据、作业说明书组成。作业的四种状态:

提交、后备、执行、完成。作业调度算法:先来先服务、短

作业先服务、相应比高优先、优先级调度、均衡调度算法。

网络操作系统:有三类集中式、客户服务器模式、对等模式。常见:NT 、Unix、SunOS、Hpox、aix、linux。

嵌入式操作系统:微型化、可定制、实时性、可靠性、易移

植性,

常见:Win CE 、VxWorks、pSOS、Palm OS 、C/OS- Unix采用三级索引、四种寻址方式。文件系统布局:引导块、超级块、索引结点区、数据存储区。进程控制语句:Fork创建、Exec执行、Exit结束、Signal相应事件、Kill发送软中断信号。进程调度采用动态优先数调度算法。采用分页式虚

拟存储机制,二次机会页面替换算法。文件系统与设备驱动

程序的接口通过设备开关表控制。正则表达式符号:.任意字符*前一字符的多次出现[]选一个^否定$行尾转义符“”忽视特殊字符\<字首匹配\>字尾匹配。SHELL变量:IFS分割符LOGNAME、$0本程序名$#参数个数、$*所有位置参数、$@双引号内保持不变、$?上一命令的返回码、$$当前命令的进程、$!最近后台进程号、$-Shell标识位组成的字符串。

Win2000系统:用户态即目态只能执行特权指令,核心态即

管态可执行任何指令并改变状态。四类进程:系统支持进程、服务进程、环境子系统、应用程序。子系统动态链接库是服

务进程和应用进程和系统交互的凭借。NTFS使用64位簇进行索引。进程对象属性包括进程标识、资源访问令牌、进程

的基本优先级。采用二级页表结构来转换物理地址和虚拟地

址。IO设备虚拟界面,将所有读写数据看成送往虚拟文件的

字节流。体系结构分三层:IO系统层、设备驱动层、硬件抽象层HAL。

如何划分程序的基本块:1)标注入口语句:在程序的第一

个语句,有条件转移语句或无条件转移语句转移到的语句,

紧跟在条件转移语句后面的语句。2)划分基本块:在入口语句到另外一个入口语句之间,入口语句到转移语句之

间,入口语句到停止语句之间。3)未在基本块内的语句删除掉。

4软件工程

类图对逻辑数据库模式建模;状态图用于接口、类和协作的

行为建模,并强调对象行为的时间顺序;活动图用于系统的

功能建模,并强调对象的控制流

软件生存周期:计划、需求、设计、编码、测试、运维。

软件开发模型:瀑布(缺乏灵活性、导致完成后才发现错误)、演化模型(适合需求不明确的情况)、螺旋模型(制定计划、风险分析、实施、客户评估、循环)、喷泉模型(用于描述

面向对象的开发过程,体现的迭代和无间隙特点)

需求分析任务是解决功能、性能、数据、界面(输入出数

据)的要求。成本估算模型有普特南模型和构造性成本模型。

风险分析关注三方面:关心未来、关心变化、关心选择。风险评估的三个参照:成本、进度、性能。进度管理常用的描述方法:甘特Gantt图(清晰反映任务起止及并行情况,不

能反映依赖关系及关键所在)、计划评审技术PERT图(关键路径松弛时间,但不能反映并行)。计算机软件工具CASE。软件过程能力评估CMM,软件过程七原理:按周期定计划实施、逐阶段确认、严格产品控制、使用现代程序设计、明

确责任、用人少而精、不断改进开发过程。

软件能力成熟度模型CMM ISO/IEC 15504:通过创建规范

的软件过程、软件管理过程、软件企业过程并使三者有机结

合达到管理并控制软件产品的质量。五个级别:①初始级;

②可重复级:焦点集中在软件管理过程上、成功依赖个人和

管理层的支持(关键域是需求管理);③定义级:对整个软

件生命周期的管理和工程化都已实现标准化、项目组、团队;

④管理级:开始量化管理、实现度量标准化、强烈的群体工

作意识(定量过程管理、软件质量管理);⑤优化级:软件

过程持续改进(预防缺陷、技术变更、过程变更管理)。

软件质量模型ISO/IEC 9126:功能性(适合、准确、互用、依从、安全)、可靠性(成熟、容错、易恢复)、易使用性(易理解、易学、易操作)、效率(时间特性、资源特性)、可维护性(易分析、易改变、稳定、易测试)、可移植性(适应、易安装、一致、易替换)。软件质量强调三点:能满足用户需求、软件应遵循标准开发准则、能满足某些隐形要求。

系统分析方法结构化方法SA的分析结果包括:一套分层的数据流图DFD、一本数据字典(字典条目有:数据流、文件、数据项条目)、一组小说明(逻辑加工)和补充材料。加工描述的逻辑方法:结构化语言、判定表、判定树。系统分析报告的三个作用:描述系统逻辑模型,作为开发人员设计和

实施的基础、用户和开发人员的协议和交流的基础、系统验

收和评价的依据。

系统设计两大步骤①总体设计即概要设计:任务分解、划

分模块、确定模块功能及调用关系、决定模块界面即数据传

递;②详细设计:代码设计、用户界面安全控制设计等。系

统设计的原则:抽象、模块化、信息隐蔽(能提高可修改性、可测试性、可移植性)、模块独立(高内聚低耦合)。

内聚低到高(偶然、逻辑、时间、过程、通信、顺序、功能);耦合强到弱(内容、公共、控制、标记即传数据结构、数据、

非直接耦合即无信息传递)。结构化设计方法SD信息流的两大类型:变换流(明显分为输入、加工、输出)、事物流(从事物中心辐射流出)。面向数据结构的设计方法:Jackson图。好的设计是顶层扇出大,中间扇出小底层扇入大作用域

应该在控制域内

系统实施阶段的任务:购置安装硬件网络系统、软件准备、

人力培训、数据准备、投入切换和试运行。程序设计方法主

要有:结构化方法、原型法、面向对象法。

系统测试人工测试:即代码审查;机器测试:只能发现症

状无法定位,黑盒(功能测试测试软件外部特征)、白盒(结构测试测试对程序路径和过程测试单元测试中用)。测试步骤:①单元测试:模块接口、数据结构、执行路径、出错

处理、边界条件;②组装测试即集成测试;③确认测试是软件测试的最后环节包括有效性(黑盒)、软件配置审查、

验收测试;④系统测试主要内容:恢复测试、安全性测、

强调(压力)测、性能测、可靠性测、安装测试。

可维护性的评价指标:可理解性、可测试性、可修改性。维护的内容:正确性维护、适应性、完善性、预防性维护。

审计在三个层次上设定:语句、特权、对象审计。

5网络知识

网络的功能:数据通信、资源共享、负载均衡、高可靠性。

内层通讯子网对应下三层、外层资源子网对应上三层。按信息交互方式分为:电路交换、分组交换、综合交换网。拓扑结构:总线、星状、环状、树状、分布式。

OSI/RM:物理层:比特流。数据链路层:帧,流量控制、

差错控制。网络层:数据包,报文分组,路由选择、交换方

式、拥塞控制、差错报告、寻址排序。传输层:报文,报文分段、选择最适宜的网络层服务、最佳的利用网络资源。会话层:访问验证、会话管理。表示层:语法解释、压缩、加

解密。应用层。

网络设备:物理层:中继器(由500米扩展到1500米)、集线器。数据链路层:网桥(帧过滤特性)、交换机(三种

交换技术:端口交换、帧交换【直通交换、存储转发、碎片

丢弃】、信元交换)。网络层:路由器(路由选择、流量控制、

过滤、存储转发、介质转换、增强型功能加密、压缩、容错)。应用层:网关(协议转换)

网络介质:双绞线(屏蔽STP,非屏蔽5类UTP最长100米);同轴电缆(基带直接传输数字信号,宽带同轴电缆用

于频分多路复用FDM 闭路电视用);光纤(多模发光二极管,单模注入型二极管)

两台PC间最长500米,最多4个HUB5段电缆。

电信标准:CCITT V系列(V.90猫)X系列(X.25)。EIA 的RS-232标准。IEEE的802.1(体系结构及网络互连),802.2(涉及逻辑数据链路标准),802.3(以太网CSMA/ CD),802.4(令牌总线),802.5(令牌环差分曼彻斯特编码),802.6(城域网),802.7(光纤FDDI用4B/5B编码),802.11(无线局域网),802.12(100VG-ANYLAN)。

局域网技术的三个问题:介质、拓扑结构、介质访问控制方法。

LAN模型:数据链路层细划为:逻辑链路控制LLC和介质访问控制层MAC。MAC功能:介质访问控制和对信道分配

资源,实现帧寻址、识别和检测。LLC功能加强了:寻址、排序、流控、差错控制,数据帧的封装和拆除。

以太网802.3标准:采用带有冲突检测的载波监听多路访问

协议CSMA/CD技术,检测到冲突的退避算法是二进制指数

退避算法。802.3(10M以太网10Base-T 10Base-F)、802.3u(100M快速以太网100BaseT、100BaseF多模光纤400米、100BaseT4 )、802.3z(千兆以太网三种介质光纤单模500米多模2000米、宽带同轴电缆25M、5类UTP100米半双工)

广域网协议:PPP PPPoE PPPoA应用ADSL(上行1M下行8M,线路按频段分为语音上下行3个信道)、DDN是网状

拓扑不经过交换机房、ISDN一线通、FR帧中继、ATM异步传输模式:数据以定长的信元为传输单位,每个信元53B 其中头5B信元体48B,四层的参考模型用户层、ATM适配层、ATM层、物理层。

Internet协议:TCP/IP的特性:逻辑编址(48位物理地址,32位逻辑地址)、路由选择、域名解析、错误检测、流量控制、对应用程序的支持。TCP/IP的四层结构:①网络接口层(最底层)。②网际层只提供无连接不可靠服务协议有:IP,ICMP发送差错报文的协议(5种差错报文即源抑制超时目的不可达重定向要求分段;4种信息报文即回应请求、回应应答、地址屏蔽码请求、地址屏蔽码应答),ARP 地址解析转成物理地址,RARP反向。③传输层协议TCP 的可靠性靠重发技术来实现,三次握手SYN SEQ=200、ACK 201 SYN SEQ=300 、ACK301 ;UDP协议提高传输率。④应用层只有FTP和Telnet是建立在TCP上,其余都在UDP 上。

IP地址:网络号部分+主机号部分,A类0(000-127)、B 类10(128-191)、C类110(192-223)、D类1110(224-239)用于组播例如路由器修改、E类1111(240-255)实验保留。IPV6将32位地址扩展为128位。

子网掩码:网络号部分填1,主机号部分填0。可变长掩码

公共端口号0-1023,其他1024-65535。DNS用53、SMTP

用25、SNMP用161,FTP命令21数据20,TCP23。

Win NT网络:两个边界层:NDIS网络接口规范(在会话与

传输之间)和TDI传输驱动程序接口(数据链路层)。四个协议:DLC访问大型机和打印机,TCP/IP,NWLink(NetWare 接口),NetBEUI(NetBIOS的扩展网上邻居)。除NetBIOS 对应于传输层外其余三协议都在网络层。

网络安全:基本要求是保密性、完整、可用、可控、可核查。

安全威胁:物理、攻击、身份鉴别、编程威胁、系统漏洞。

防火墙:内外网边界上的过滤封锁机制。在网络层包过滤,

在传输层提供端到端的加密,在应用层提供身份认证、加密、内容检查。分类:包过滤型、应用代理网关、状态检测技术

防火墙。

6多媒体

媒体有感觉、表示、显示、存储、传输媒体五种。

数据传输率b/s=采样频率Hz×量化位数 b ×声道数

声音信号数据量Byte=数据传输率×时间/8

语音压缩方法:波形编码、参数编码、混合编码

音源即音乐合成器有两类:数字调频合成器、PCM波形合成器。声音的三要素是音量、音调、音色。色彩三要素:亮度、色调、色饱和度。红+蓝=品红;绿+蓝=青。

光栅化即点阵化将图形转成图像;向量化即图形跟踪技术

将图像转图形

无损压缩即熵编码:行程长度编码RLE、增量调制DME、霍夫曼编码。

JPEG2000压缩算法:小波变换算法(有损)、离散余玄变换(无损)

Mpeg4多媒体应用接口多媒体应用、Mpeg7内容描述接口多媒体内容描述接口标准、MPEG1普通电视的视频信号压缩

标准 MPEG2高清电视

Gif采用无损压缩方法中效率较高的LZW算法。

Filic采用行程编码算法和delta算法进行无损压缩。PNG用LZ77无损压算、

PAL帧频25场扫描频率50行帧625每场扫描625/2分辨率352*288

电影每秒24次,电脑30帧/秒速度刷新

CCIR601标准:色度信号采样4:2:2采样频率13.5MHZ每点8位数字化亮度220级色度225级

Mpeg1压缩后码率 1.5Mb/s; Mpeg2(HDTV 80Mb/s);Mpeg4最低64Kb/s

流媒体:建立在UDP协议上的实时传输协议和实时流协议RTP/RTSP。通过MIME识别格式。流媒体发布文件RAM、ASX;流式文件格式RM、RA RP RT ASF ASX

MIDI是计算机中用于存储和交换MIDI消息的一种交换文件

格式。是乐器与计算机链接的电缆硬件以及电子乐器之间、

乐器和计算机之间传送数据的通信协议的规范。

图像数据量=图像的总像素×图像深度/8(B)

RGB最常用的用途就是显示器系统,CMYK应用于印刷工业, YUV三管彩色摄像机

人耳能听到的声音频率是20Hz到20KHz 语音的频率是300Hz到3400Hz。

结点、链、网络是超文本包含的三个基本要素。

7数据库

DBMS特点:①数据结构化且统一管理,②有较高的数据独

立性,③数据控制功能:安全性、完整性、并发控制(带来

的数据不一致性有三类:丢失更新、不可重复读、读脏数据)、故障恢复(事务内部故障、系统、介质、病毒)

三级模式:①内模式存储模式:数据物理格式存储方式描

述、②模式概念模式:数据逻辑结构及联系描述、③外模

式即用户模式子模式。

两级映射:模式到内模式(数据的物理独立性)、外模式到模式(数据的逻辑独立性)数据模型的三要素:数据结构、数据操作、数据的约束条件。

目或度n:R上的n元关系,元数:属性的个数,基数:元组

的个数记录数,候选码:唯一标识一个元组,主码:关键字,

主属性:全部候选码,全码:所有属性都是候选码。三类完整性约束条件:实体的(主属性不空)、参照的即引用的、

用户定义的完整性。

五个基本运算:并∪、2-差、3×笛卡儿积from、4投影пselect、5选择σwhere

扩展运算:1交∩R∩S=R-(R-S),2连接◇,3除

规范化1NT:没有表中表,2NT消除了1NT中非主属性对码

的部分函数依赖即每一个非主属性完全依赖于全部的码

(X->Y即Y依赖X)、3NT消除了非主属性对码传递依赖、BCNF消除了主属性对码的部分和传递依赖、4NT表中没有多值依赖

事务的四个特征:原子性、一致性(数据不会因事务而破坏)、隔离性(事务独立运行)、持久性(事务一旦提交)。

BEGIN TRANSACTION ; COMMIT;ROLLBACK

并发控制的主要技术是封锁,三级封锁协议:1级可解决丢失更新问题;2级可解决读脏数据;3级防止丢失更新、不

读脏数据、防不可重复读

建立冗余数据的方法是数据转储和登记日志文件。

8数据结构

栈:先进后出;队列:尾进头出循环对列F=(R+1+Memory_Length) mod M

串:(主串n模式串m)朴素的模式匹配算法即布鲁特-福斯

(完整word版)最新软件设计师知识点汇总.(良心出品必属精品)

-----------------------计算机系统组成------------------------------------------ 计算机系统组成------------- 运算器:算术/逻辑运算单元ALU、累加器ACC、寄存器组、多路转换器、数据总线组成。控制器:计数器PC、时序产生器、微操作信号发生器,指令寄存器、指令译码器。CPU的功能:程序控制、操作控制、时间控制、数据处理(最根本的。 相联存储器是按内容访问的,用于高速缓冲存储器、在虚拟存储器中用来作段表页表或快表存储器、在数据库和知识库中。 CACHE高速缓存的地址映像方法:直接地址映像(主存分区,区分块、全相联映像(主存分块、组相联映像(主存分区,区分块、块成 组,CACHE分块成组。替换算法:随机、先进先出、近期最少用、优化替换算法。性能分析:H为CACHE命中率,t c为Cache存取时间、t m为主存访问时间,Cache等效访问时间t a=H t c+(1-Ht m提高了t m/t a倍。虚拟存储器由主存、辅存、存储管理单元和操作系统软件组成。 RISC精简指令集:指令种类少、长度固定、寻址方式少、最少的访内指令、CPU内有大量寄存器、适合流水线操作。 内存与接口统一编址:都在一个公共的地址空间里,独立使用各自的地址空间。优点是内存指令可用于接口,缺点内存地址不连续,读程序要根据参数判断访内还是访接口。 廉价冗余磁盘阵列RAID:0级不具备容错能力但提高了传输率N 倍、1级镜像容错技术、2级汉明码作错误检测、3级只用一个检测盘、4级是独立地对组内各磁盘进行读写的阵列,用一个检测盘、5级无专门检测盘。

软件设计实习报告

软件设计实习报告 实习之后我们需要写相关的实习报告,大家一起看看下面的软件设计实习报告,欢迎各位阅读哦! 一、实习目的: 检验与巩固理论知识,提高实际操作能力与社会实践能力。 二、实习时间: 20xx-07-27至20xx-10-23 三、实习地点: 广东广州 四、实习单位与部门: 广州**网络科技有限公司·软件开发部 五、实习内容: 应学校要求,本人于七月二十七号来到广州**网络科技有限公司实习。初到该公司,听公司负责人讲解了公司状况以及工作要求,就马上开始我的工作。从该负责人得知,公司的软件开发业务并没有多长时间,所以公司的很多工作流程还不太规范。在3个月的实习时间里,我参与了一个类似于erp的项目。项目的大致内容是:为一家中型制造业企业量身订做一套综合管理系统,包括了仓库管理,销售管理,采购管理,生产管理,财务管理以及人事管理,共六个子系统,且这六个子系统是有机的组合,以方便该企业的管理生产资源,人力资源以及财务。在整个参与过程中,在不同时间里担任的工作任务也不同。

1、八月份 据了解,该项目早在3月份就开始了,而且该项目一直是处于不受控状态,控制不了的原因有诸多,例如客户的需求发生了巨大变动,该项目进行期间有很多其他的项目插入到开发过程中等等。于是,我参与了测试程序的工作,以熟悉整个项目的具体内容,功能实现,设计方法等。在做测试工作的过程中,发现实习单位目前对测试不太重视,在以前的项目中也很少有全面的软件测试阶段。主要表现在:一方面,在我实习期间,就陆续有以前做的系统拿回来,重新做测试工作并修改。据了解,目前国内的绝大多数软件企业也是重编码轻测试,导致软件的强壮性低下,而在售后的维护阶段中经常性需要大幅度修改。这样一来,经常有不同的新老系统并行,给新系统的项目进度带来了外部干扰;另方面,公司要求的测试方法也较为简单,且测试文档的书写格式极其简单,这种书写格式在一些功能上的错误和明显的数据错误上有很好的表意效果,但是在表达程序的逻辑错误和内部数据错误时有很大的欠缺。在整个测试工作中也大概了解了该系统的各方面特性。该系统采用b/s结构开发,随着inter的高速发展、电信部门对网络线路的投入、带宽的增加等各个对b/s结构有利的条件下,采用b/s结构可以节省很多的成本。在以前采用c/s结构开发的系统中,需要为系统开发客户端,而且在维护过程中,除了对服务器端的维护,还要对各个客户端进行维护,而目前盛行的b/s结构,则只需要开发和维护服务器端,相比之下,开发和维护的成本也就大大降低。另外,b/s结构在inter里的应用性比较高。但是,b/s结

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件设计师知识点

·在输入输出控制方法中,采用DMA可以使设备与主存之间的数据块传送无须CPU干预。 ·内存容量为4GB,即内存单元的地址宽度为32位;字长为32位,即要求数据总线的宽度为32位。 ·ARP攻击造成网络无法跨网段通信的原因是:伪造网关ARP报文使得数据包无法发送到网关。 ·软件商标权的权利人是:软件注册商标所有人。 ·利用商业秘密权可以对软件的信息、经营信息提供保护。(管理方法、经营方法、产销策略、客户情报、软件市场的分析、预测报告、和对未来的发展规划、招投标中的标底以及标书内容)。 ·某项目组拟开发了一个大规模系统,且具备了相关领域以及类似规模系统的开发经验,则瀑布模型最适合开发此项目。 ·编译程序分析源程序的阶段依次是:词法分析、语法分析、语义分析。 ·结构冗余:按其方法可以分为静态、动态和混合冗余。 信息冗余:为了检测或纠正信息在运算或传输中的错误另外加的一部分信息。时间冗余:以重复执行指令或程序来消除瞬时错误带来的影响。 冗余附加技术:是指为实现上述冗余技术所需要的资源和技术。 ·软件过程的改进框架:过程改进基础设施、过程改进线路图、软件过程评估方法、软件过程改进计划。每一次改进要经历4个步骤:评估、计划、改进和监控。 ·软件复杂性度量的参数:软件的规模、软件的难度、软件的结构、软件的智能度。 ·软件系统的可维护性评价指标包括可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率,不包括可扩展性。 ·开-闭原则是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对扩展开放,对修改关闭;里氏代换原则是指任何基类对象可以出现的地方,子类对象一定可以出现。依赖倒转原则就是要依赖于抽象,而不依赖于实现,或者说要针对接口编程,不要针对实现编程。 ·汇编语言的指令语句必须要有操作码字段,可以没有操作数字段。 ·贪心算法不能保证求得0-1背包问题的最优解。

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

2020年计算机软考软件设计师知识点精选集

2020年计算机软考软件设计师知识点精选集 需求分析:开发人员准确地理解用户的要求,实行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相对应的需求规格说明的过程。 它有以下几难点: ⑴问题的复杂性。由用用户需求涉及的因素繁多引起,如运行环境和系统功能 ⑵交流障碍。需求分析涉及人员较多,这些人具备不同的背景知识,处于不同角度,扮演不同角色,造成相互之间交流困难。 ⑶不完备性和不一致性。用户对问题的陈述往往是不完备的,各方面的需求可能还存有矛盾,需求分析要消除矛盾,形成完备及一致的定义。 ⑷需求易变性。 近几年来已提出多种分析和说明方法,但都必须适用以下原则: ⒈必须能够表达和理解问题的数据域和功能域。数据域包括数据流(数据通过一个系统时的变化方式)数据内容和数据结构,功能域反映上述三方面的控制信息。 ⒉能够把一个复杂问题按功能实行分解并可逐层细化。 ⒊建模。可更好地理解软件系统的信息,功能,行为。也是软件设计的基础。 需求分析的任务: ⒈问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。 ⒉分析与综合,导出软件的逻辑模型

⒊编写文档:包括编写"需求规格说明书""初步用户使用手册""确认测试计划""修改完善软件开发计划" 结构化分析:简称SA,面向数据流实行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。 结构化(SA)分析步骤: ⑴了解当前系统的工作流程,获得当前系统的物理模型。 ⑵抽象出当前系统的逻辑模型。 ⑶建立目标系统的逻辑模型。 ⑷作进一步补充和优化。 【篇二】2020年计算机软考软件设计师知识点:数据流图 以图形的方式描述数据在系统中流动和处理的过程。只反映系统必须完成的逻辑功能,是一种功能模型。 画数据流图的步骤: ⑴首先画系统的输入输出,即先画顶层数据流图。顶层图只包含一个加工,用以表示被开发的系统。 ⑵画系统内部,即画下层数据流图。将层号从0号开始编号,采用自顶向下,由外向内的原则。画更下层数据流图时,则分解上层图中的加工,一般沿着输出入流的方向,凡数据流的组成或值发生变化的地方则设置一个加工,一直实行到输出数据流。如果加工的内部还有数据流,则继续分解,直到每个加工充足简单,不能再分解为止。不能分解的加工称为基本加工。 ⑶注意事项:

软件设计师知识总结

软件设计师知识总结之计算机组成 计算机系统组成 运算器:算术/逻辑运算单元ALU、累加器ACC、寄存器组、多路转换器、数据总线组成。 控制器:计数器PC、时序产生器、微操作信号发生器,指令寄存器、指令译码器。 CPU的功能:程序控制、操作控制、时间控制、数据处理(最根本的)。 相联存储器是按内容访问的,用于高速缓冲存储器、在虚拟存储器中用来作段表页表或快表存储器、在数据库和知识库中。 CACHE高速缓存的地址映像方法:直接地址映像(主存分区,区分块)、全相联映像(主存分块)、组相联映像(主存分区,区分块、块成组,CACHE分块成组)。 替换算法:随机、先进先出、近期最少用、优化替换算法。 性能分析:H为CACHE命中率,tc为Cache存取时间、tm为主存访问时间,Cache等效访问时间ta=H tc +(1-H) tm 提高了tm/ta 倍。 虚拟存储器由主存、辅存、存储管理单元和操作系统软件组成。 RISC精简指令集:指令种类少、长度固定、寻址方式少、最少的访内指令、CPU内有大量寄存器、适合流水线操作。 内存与接口统一编址:都在一个公共的地址空间里,独立使用各自的地址空间。优点是内存指令可用于接口,缺点内存地址不连续,读程序要根据参数判断访内还是访接口。 廉价冗余磁盘阵列RAID:0级不具备容错能力但提高了传输率N 倍、1级镜像容错技术、2级汉明码作错误检测、3级只用一个检测盘、4级是独立地对组内各磁盘进行读写的阵列,用一个检测盘、5级无专门检测盘。 中断方式处理方法:多中断信号线法、中断软件查询法、菊花链法(硬件)、总线仲裁法、中断向量表法(保存各中断源的中断服务程序的入口地址)。 直接存储器存取DMA:内存与IO设备直接成块传送,无需CPU干涉。根据占据总线方法不同分为CPU停止法、总线周期分时法、总线周期挪用法。 输入输出处理机用于大型机:数据传送方式有字节多路方式、选择传送方式、数组多路方式。 指令流水线:操作周期是最慢的操作的时间。建立时间是达到最大吞吐率的时间。

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

软件设计师知识点

软件设计师考试的总体要求 软件设计师主要完成三项工作:(1)编写文档;(2)组织指导程序员开展工作;(3)软件优化和集成测试,开发高质量软件。本工作要求具有工程师的实际工作能力和业务水平。具体讲就是,通过本考试的合格人员,能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件。 考试内容要求 知识点的掌握程度从深到浅可分五个层次,分别要求为熟练掌握、掌握、理解、熟悉和了解。其中包括2个熟练掌握(常用数据结构和常用算法、软件设计的方法和技术)、8个掌握、2个熟悉,1个正确理解,具体体现在以下12个方面: (1) 掌握数据表示、算术和逻辑运算; (2) 掌握相关的应用数学、离散数学的基础知识; (3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理; (4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识; (5) 熟练掌握常用数据结构和常用算法; (6) 熟悉数据库、网络和多媒体的基础知识; (7) 掌握C程序设计语言,以及C++、Java、Visual Basic、Visual C++中的一种程序设计语言; (8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识; (9) 熟练掌握软件设计的方法和技术; (10) 掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识; (11) 了解信息化、计算机应用的基础知识;

(12) 正确阅读和理解计算机领域的英文资料。 分析:相对于2001年考试大纲,新大纲对知识面的要求更宽,更注重软件设计开发的实践能力,这一点充分体现在下午考试中。考试内容除了技术要求外,还增加了对软件工程实践能力、安全性、标准化、法律法规等方面知识的要求,毕竟软件设计师是软件产业的骨干,因此考试要求相对较高。 二、考试范围 考试科目1:计算机与软件工程知识 本部分包含以下内容: l 计算机科学基础 l 计算机系统知识 l 系统开发和运行知识 l 安全性知识 l 标准化知识 l 信息化基础知识 l 计算机专业英语 1.计算机科学基础 1.1 数制及其转换 ·二进制、十进制和十六进制等常用制数制及其相互转换 1.2 数据的表示 ·(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出) ·非数值表示(字符和汉字表示、声音表示、图像表示)

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

2020年计算机软件水平考试《软件设计师》知识点汇总

【篇一】2020年计算机软件水平考试《软件设计师》知识点:C++的ANSI 标准 标准化是把所编写的程序从一种类型的计算机迁移到另一种类型的计算机上的基础。标准的建立使语言在各种机器上的实现保持一致。在所有相容编译器上都可用的一组标准功能意味着,用户总是能确定下一步会获得什么结果。使用ANSI标准后,C++使应用程序可以轻松地在不同的机器之间迁移,缓解了在多个环境上运行的应用程序的维护问题。 当然,还有其他问题需要考虑。如果程序是可以移植的,那么就不能把非标准库中的特性引入代码,还必须使程序对建立该程序所使用的开发机器的依赖性降到最低,否则迁移代码就很困难。 C++的ANSI标准还有另一个优点:它对用C++编程所需要学习的部分进行了标准化。这个标准将使后续的程序具有一致性,因为它只为C++编译器和库提供了一个定义参考。在编写编译器时,该标准的存在也使编写人员不再需要许可。 【篇二】2020年计算机软件水平考试《软件设计师》知识点:如何控制需求变更 按照现代项目管理的概念,一个项目的生命周期分为启动、实施、收尾三个过程。需求变更的控制不应该只是项目实施过程考虑的事情,而是要分布在整个项目生命周期的全过程。为了将项目变更的影响降低到最小,就需要采用综合变更控制方法。综合变更控制主要内容有找出影响项目变更的因素、判断项目变更范围是否已经发生等。 进行综合变更控制的主要依据是项目计划、变更请求和提供了项目执行状况信息的绩效报告。 (1)项目启动阶段的变更预防 对于任何项目,变更都无可避免,也无从逃避,只能积极应对,这个应对应该是从项目启动的需求分析阶段就开始了。对一个需求分析做得很好的项目来说,基准文件定义的范围越详细清晰,用户跟项目经理扯皮的幌子就越少。如果需求没做好,基准文件里的范围含糊不清,被客户抓住空子,往往要付出许多无谓的牺牲。如果需求做得好,文档清晰且又有客户签字,那么后期客户提出的变更就超出了合同范围,需要另外收费。这个时候千万不能手软,这并非要刻意赚取客户的钱财,而是不能让客户养成经常变更的习惯,否则后患无穷。相对于需求来说,什么WBS、风险管理、计划进度都是次要的,只要需求做好了就会一帆风顺。 (2)项目实施阶段的需求变更

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件设计师知识点汇总

1计算机系统组成 运算器:算术/逻辑运算单元ALU、累加器ACC、寄存器组、多路转换器、数据总线组成。控制器:计数器PC、时序产生器、微操作信号发生器,指令寄存器、指令译码器。CPU 的功能:程序控制、操作控制、时间控制、数据处理(最根 本的)。 CACHE高速缓存的地址映像方法:直接地址映像(主存分 区,区分块)、全相联映像(主存分块)、组相联映像(主 存分区,区分块、块成组,CACHE分块成组)。替换算法:随机、先进先出、近期最少用、优化替换算法。性能分析: H为CACHE命中率,t c为Cache存取时间、t m为主存访问时间,Cache等效访问时间t a=H t c +(1-H) t m提高了t m/t a倍。虚拟存储器由主存、辅存、存储管理单元和操作系统软件组 成。 相联存储器是按内容访问的,用于高速缓冲存储器、在虚拟 存储器中用来作段表页表或快表存储器、在数据库和知识库 中。 RISC精简指令集:指令种类少、长度固定、寻址方式少、 最少的访内指令、CPU内有大量寄存器、适合流水线操作。 内存与接口统一编址:都在一个公共的地址空间里,独立使 用各自的地址空间。优点是内存指令可用于接口,缺点内存 地址不连续,读程序要根据参数判断访内还是访接口。

廉价冗余磁盘阵列RAID:0级不具备容错能力但提高了传 输率N倍、1级镜像容错技术、2级汉明码作错误检测、3级只用一个检测盘、4级是独立地对组内各磁盘进行读写的 阵列,用一个检测盘、5级无专门检测盘。 中断方式处理方法:多中断信号线法、中断软件查询法、 菊花链法(硬件)、总线仲裁法、中断向量表法(保存各中 断源的中断服务程序的入口地址)。 直接存储器存取DMA:内存与IO设备直接成块传送,无需CPU干涉。根据占据总线方法不同分为CPU停止法、总线周期分时法、总线周期挪用法。 输入输出处理机用于大型机:数据传送方式有字节多路方 式、选择传送方式、数组多路方式。 指令流水线:操作周期是最慢的操作的时间。建立时间是达 到最大吞吐率的时间。 总线内总线:ISA、EISA、PCI;外总线:RS-232(3根线全双工15米)、SCSI(并行外总线、16位、最大320M秒、最多63个设备20米)、USB(4条线480M秒接5层127个设备)、IEEE-1394(串行6条线3.2G秒热插) 阵列处理机:单指多数据流SIMD,同步同时执行同一指令。多处理机:多指多数据,多处理机互连应满足高频带、低成 本、方式多样、在不规则通讯下连接的无冲突性。四种结构:总线式、交叉开关、多端口存储器结构、开关枢纽式。

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件设计师复习笔记重点总结

软件设计师复习笔记重点总结 一.计算机系统 基础知识: CPU功能:程序控制,操作控制,时间控制,数据处理。 组成:运算器(算术逻辑单元ALU,累加寄存器AC,数据缓冲寄存器DR,状态条件寄存器PSW),控制器(指令寄存器IR,程序计数器PC,地址寄存器AR,指令译码器ID),寄存器组(专业寄存器通用寄存器),部总线。 原码:负数把第一位改成1; 反码:正数的反码与原码相同,负数的反码是其绝对值按位求反; 补码:正数的补码与原码相同,负数补码等于其反码的末尾加1; 移码:在数X上增加一个偏移量(实际上,将补码的符号位取反); 最适合进行数字相加减的数字编码是补码,最适合浮点数阶码的数字编码是移码。 双符号位判决法:即00表示正号,11表示负号,则溢出时两个符号位就不一致了,从而可以判定发生了溢出。 符号位SF和进位标志CF进行异或运算为1时,表示运算的结果产生溢出。 浮点数:N=2^E*F E:阶码 F尾数 尾符和尾数小数点后第一位数字相异为规格化数。 校验码:奇偶校验码(在编码中增加一个校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶检验),从而使码距变为2)=>只能检验一位的错误 海明码(在数据位中之间插入k个校验位,通过扩大码距来实现检错和纠错)=>既可以检测数据传输过程中出现的一位数据错误的位置加以纠正。 2^k-1>=n+k 循环冗余校验码(利用生成多项式为k个数据位产生r个校验位来进行编码,长度为r+k)校验码越长,校验能力越强; 结构,组织,实现,性能。结构只计算机系统各种应用的互联,组织指各种部件的动态联系和管理,实现指各模块设计的组装完成,性能指计算机系统的行为表现。 系统分类:单处理系统,并行处理和多处理系统,分布式处理系统(指物理上远距离而松耦合的多计算机系统,通信时间和处理时间相比已经不可忽略)。 Flynn分发:SISD单指令单数据流,SIMD单指令多数据流,MISD多指令单数据流, MIMD多指令多数据流; 阵列处理机(Array Processor)也称并行处理机(Parallel Processor)通过重复设置大量相同的处理单元PE(Processing Element),将它们按一定方式互连成阵列,在单一控制部件CU(Control Unit)控制下,对各自所分配的不同数据并行执行同一组指令规定的操作,操作级并行的SIMD计算机,它适用于矩阵运算。 译云分类:WSBS字串行位串行计算机,WPBS字并行位串行计算机,WSBP字串行位并行,WPBP字并行位并行; 指令体系:堆栈,累加器,寄存器集; CISC复杂指令集计算机 RISC精简指令集计算机(流水技术:超流水线技术,超标量技术,超长指令字技术) 存储:相联寄存器是一种按容访问的寄存器; cache地址映像方法:直接映像(地址变换简单,灵活性差),全相联映像(主存调入cache的位

软件工程概论知识点汇总

软件危机是指在计算机软件的开发和维护过程中遇到一系列严重问题。 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门。 软件工程方法学包含3个要素:方法、工具和过程 目前使用最广泛的软件工程方法学,分别是传统方法学和面向对象方法学 软件生命周期由软件定义、软件开发和运行维护3个时期组成。 软件生存周期是指一个软件从提出开发要求开始直到软件报废为止的整个时期。 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。 软件定义分3个阶段,即问题定义、可行性研究和需求分析。 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 可行性研究的主要内容包括技术可行性、经济可行性和操作可行性3个方面。 开发时期由4个阶段组成:总体设计、详细设计、编码和单元测试,综合测试。其中前两个阶段称为系统设计,后两个阶段称为系统实现。 系统流程图是概括地描绘物理系统的传统工具;而数据流图是系统逻辑功能的图形表示工具。 模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。 分析建模的用处是为了更好地理解复杂事物。 软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。 需求分析过程应该建立3种模型,分别是数据模型、功能模型和行为模型。 数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。 结构程序设计的定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制接口进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。 衡量模块独立程序的两个定性标准是内聚和耦合。 确认测试也称为验收测试,它的目标是验收软件的有效性。 等价划分是一种黑盒测试技术,这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。一个理想的测试用例能独立发现一类错误。 软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功的运行的概率。 软件的可用性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。 软件工程的主要目的就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 Jackson方法是一种面向数据结构的设计方法。 完整的软件测试一般要经过单元测试、集成测试、确认测试和系统测试等4个阶段。 模块化是指把程序划分成独立命名切可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 软件复杂性度量的参数包括: ①规模②难度③结构④智能度 数据字典应该有下列4类元素的定义组成: 1、数据流; 2、数据流分量(即数据元素) 3、数据存储 4、处理 产生软件危机的原因?

相关文档
最新文档