当前位置: 代码网 > 服务器>网络>网络协议 > 软考-软件设计师 知识点整理(一篇就过了 建议收藏)

软考-软件设计师 知识点整理(一篇就过了 建议收藏)

2024年08月02日 网络协议 我要评论
软考-软件设计师上午题知识点总结

文章目录


博文相关知识:

uml建模

一 计算机组成

cpu

 计算机硬件基本系统有五大部分组成:运算器,控制器,存储器,输入设备,输出设备
 存储器分为内部存储器(即内存,容量小,速度快,临时存放数据)和外部存储器(即硬盘,光盘等,容量大,速度慢,长期保存数据)
 中央处理单元组成:由运算器,控制器,寄存器组和内部总线组成
 中央处理单元功能:实现程序控制,操作控制,时间控制,数据处理功能。
 运算器组成:算术逻辑单元alu(实现对数据的算术和逻辑运算),累加寄存器ac(运算结果或源操作数的存放区),数据缓冲寄存器dr(暂时存放内容的指令或数据), 状态条件寄存器psw(保存指令运行结果的条件码内容,如溢出标志
 运算器功能:执行所有的算术运算,如加减乘除等。执行所有的逻辑运算并进行逻辑测试,如与,或,非,比较等。
 控制器组成:指令寄存器ir(暂存cpu执行指令),程序计数器pc(存放下一条执行地址),地址寄存器ar(保存当前cpu所访问的内存地址),指令译码器id(分析指令操作码)等组成
 控制器功能:控制整个cpu的工作,最为重要,包括程序控制,时序控制等。

寻址方式

常用的寻址方式有
 立即寻址:操作数就包含在指令中。
 直接寻址:操作数存放在内存单元中,指令中直接给出操作数所在的存储单元的地址。
 寄存器寻址:操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。
 寄存器间接寻址:操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
 间接寻址:指令中给出操作数地址的地址。
寻址速度由快倒慢依次为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,间接寻址

校验码

 码距:所谓码距,是指一个编码系统中任意两个合法编码之间有多少个二进制位不同

奇偶校验码(只能检一位错,并且不能纠错)

 奇偶校验码是一种简单有效的检验方法,这种方法通过在编码中增加一位检验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变成2

循环冗余校验码crc(只能检错,不能纠错)

 循环冗余校验码广泛应用于数据通信领域和磁介质存储系统。它利用生成多项式为k个数据位产生r个检验位来进行编码,其编码长度为k+r。crc的代码格式为:
在这里插入图片描述
 由此可知,crc是由两部分组成,左边为信息位(数据),右边为检验码。若信息码占k位,则检验码占n-k为,检验码是由信息码产生的,检验码的位数越多,改代码的检验能力就越强。在求crc编码时,采用的是模2运算(按位运算,不发生借位和进位)

海明码

 海明码是一种利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置上插入k个检验位,通过扩大码距来实现检错和纠错。
 设数据位是n位,检验位是k位,则n和k必须满足以下关系:

2 k − 1 ≥ n + k 2^k-1 \geq n+k 2k1n+k

计算机体系结构分类

flynn分类法(理论存在:多指令单数据 misd)

在这里插入图片描述

指令系统

cisc是复杂指令系统,兼容性强,指令繁多,长度可变,由微程序实现。
 risc是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器,硬布线逻辑控制)

具体区别如下:

risc(精简指令集计算机) cisc(复杂指令集计算机)
指令种类 少,精简 多,丰富
指令复杂度 低(简单) 高(复杂)
指令长度 固定 变化
寻址方式 复杂多样
实现(译码)方式 硬布线控制逻辑(组合逻辑控制器) 微程序控制技术
通用寄存器数量 多,大量 一般
流水线技术 支持 不支持

指令流水线

 流水线周期:指令分成不同执行段,其中执行最长的为段位流水线周期。
流水线执行时间:1条指令的总执行时间+(总指令条数-1)*流水线周期
 流水线吞吐率:总指令条数/流水线执行时间
 流水线加速比:不使用流水线总执行时间/使用流水线总执行时间。

主存编址

 会算就行了,直接上真题
在这里插入图片描述
先不用算出来,后面可以化简(b,c)

设备管理

 设备分类方式
 按数据组织分类:块设备,字符设备。
 资源分配角度分类:独占设备,共享设备和虚拟设备。
 数据传输率分类:低速设备,中速设备和高速设备。
i/o软件层次结构(越往上越和硬件无关)
在这里插入图片描述

输入输出技术

 程序控制(查询)方式:cpu主动查询外设是否完成数据传输,效率极低。
 程序中断方式:外设完成数据传输后,向cpu发送中断,等待cpu处理数据,效率相对较高。适用于键盘等实时性较强的场景。
 中断响应时间是指从发出中断请求到开始进入中断处理程序;中断处理时间是指从中断处理程序开始到中断处理结束,中断向量提供中断处理程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。
dma方式(直接主存存取):cpu只需完成必要的初始化等操作,数据传输的整个过程由dma控制器来完成,在主存和外设之间建立直接的数据通路,效率很高。适用于硬盘等高速设备。

磁盘调度

 磁盘调度的目标是使磁盘的平均寻道时间最少
 常用的磁盘调度算法如下:
 先来先服务fcfs:根据进程请求访问磁盘的的先后顺序进行调度。此算法的优点是公平,简单,且每个进程都能依次得到处理,缺点是平均寻道时间长。
 最短寻道时间优先sstf:请求访问的磁道与当前磁头所在磁道距离最近。使得每次的寻道时间最短。但不能保证平均寻道时间最短。
 扫描算法scan:又称“电梯算法”,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近请求访问的磁道并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似。
 单向扫描算法cscan:与scan不同的是,其只做单向移动,即只能从里向外或者从外向里

二 软件工程基础知识

 软件工程基本要素:方法,工具,过程

软件生存周期(常考产出物)

可行性分析与项目开发计划

这个阶段主要确定软件的开发目标及其可行性
 参加人员有用户,项目负责人和系统分析师
该阶段产生的主要文档有可行性分析报告和项目 开发计划,从而确定系统的逻辑模型

需求分析

这个阶段确定软件的系统的功能,性能,数据和界面等要求
 参加人员有用户,项目负责人和系统分析师。
该阶段产生的主要文档软件需求说明书

概要设计

在概要设计阶段,开发人员要把确定的各项功能 需求转换需要的体系结构。概要设计就是设计软件的结构
 概要设计概要的参加人员有系统分析师和软件设计师
该阶段主要产生文档有概要设计说明书

详细设计

详细设计阶段的主要任务是对每个模块完成的功能进行具体描述,要把功能描述转变为精确的,结构化的过程描述。
 详细设计阶段的参加人员有软件设计师和程序员。
该阶段主要产生文档有详细设计文档。

编码

 编码阶段就是把每个模块的控制结构转换成计算机课接受的程序代码。即写成某种特定程序设计语言表示的源程序清单

测试

测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检查软件的各个组成部分。
 测试阶段的参加人员通常是另一部门的软件设计师或系统分析师。
该阶段主要产生文档有软件测试计划,测试用例和软件测试报告。

软件过程

能力成熟度模型cmm

 能力成熟度模型cmm:对软件组织化阶段的描述,随着软件组织地定义、实施,测量、控制和改进其软件过程,软件组织地能力经过这些阶段逐步提高。

  1. 初始级(initial):软件过程的特点是杂乱无章,又是甚至很混乱,几乎没有明确定义的步骤,项目的完成全依赖个人的努力和英雄式核心人物的作用
  2. 可重复级(repeatable):建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功
  3. 已定义级(defined):管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件来发组织地标准软件过程,所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。
  4. 已管理级(managed):制定了软件过程和产品质量的详细度量标准。软件过程的产品质量都被开发组织地成员所理解和控制。
  5. 优化级(optimized):加强了定量分析,通过来之过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进。
能力成熟度模型cmmi

 能力成熟度模型cmmi:将已有的几个cmm模型结合在一起,使之构造成为“集成模型”。支持多个工程学科和领域的、系统的、一致的过程改进框架,能适应现代工程的特点和需求,能提高过程的质量和工作效率。
阶段式模型:类似于cmm,它关注组织地成熟度,五个成熟度模型如下:

  1. 初始的:过程不可预测且缺乏控制。
  2. 已管理的:过程为项目服务。
  3. 已定义的:过程为组织服务。
  4. 定量管理的:过程为以度量和控制。
  5. 优化的:集中于过程改进。
维护

 软件维护是软件设计生存周期中时间最长的阶段。已交付的软件投入正式使用后,便进入软件维护阶段,它可以持续几年甚至十几年。

软件过程模型

统一过程模型(up)

 统一过程模型:是一种“用例和风险驱动,以架构为中心,迭代并且增量”的开发过程。
开发的四个阶段

  1. 起始阶段:项目的初始活动,如确认需求和风险评估等。
  2. 精化阶段:需求分析和架构设计等。
  3. 构建阶段:系统的构建,产生实现模型等。
  4. 移交阶段:软件提交方面的工作,产生软件增量,进行β测试,交付系统等。
    up的每一次迭代都是一次完整的软件开发过程,包括整个软件开发生命周期,有五个核心工作流(需求-分析-设计-实现-测试)。
瀑布模型

 结构化方法中的模型,是结构化的开发,开发流程如瀑布一样,一步一步走下去,直到项目完成开发
只适用于需求明确或者二次开发(需求稳定)的项目

v模型

 是瀑布模型的一个变种。特点是增加了多轮测试,并且这些测试贯穿于软件开发的各个阶段

原型

 快速原型开发,与瀑布模型相反,原型针对需求不明确的情况

螺旋模型

 是多种模型的混合,针对需求不明确的项目,与原型相似,但增加了风险分析(制定计划—风险分析—实施工程—用户评估)

增量模型

 首先开发核心功能模块,而后与用户确认,之后再开发核心功能,即每次开发一部分功能,并与用户需求确认,最终完成项目开发,优先级高的服务最先交付
增量模型的每一次增量版本都可作为独立操作的作品

喷泉模型

 是一种以用户需求为动力,以对象作为驱动的模型。适用于面向对象的开发方法是开发过程具有迭代性和无间隙性

基于构建的开发模型

 利于预先包装的构件来构造应用系统,构件是可以组织内部开发的构件,也可以是商品化成品软件构件。
 提点是增强了复用性,在系统开发过程中,会构建一个构件库,供其他系统复用,因此可以提高复用性,节省时间和成本

敏捷开发

 敏捷开发的总体目标是通过“尽可能早,持续地对有价值的软件的交付”使客户满意。通过在软件开发过程中加入灵活性,敏捷开发使用户能够在开发周期的后期增加或者改变需求。

自适应开发(asd)

 强调开发方法的适应性

水晶方法(crystal)

 水晶法认为每一个不同项目都需要一套不同的策略,约定和方法论

特性驱动开发

 是一套针对中小型软件开发项目的开发模式,是一个模型驱动的快速迭代开发过程,它强调的是简化,使用,易被开发团队接受,适用于需求经常变动的项目

并列争求法(scrum)

 并列争求法是一种迭代的增量化过程,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的优先级来实现产品。

极限编程(xp)

 xp是一种轻量级(敏捷),高效,低风险,柔性,可预测,科学的

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com