【软件设计师】知识点总结

  1. 冯式结构计算机:存储器、运算器、控制器、输入设备和输出设备。
  2. 算术运算和逻辑运算的等价关系:一般而言,左移1位相当于*2,右移一位相当于/2,但注意符号位。
  3. 所谓寻址就是寻找操作数的地址,操作数所处的位置,可以决定指令的寻址方式:
    ①立即寻址:操作数包含在指令中;
    ②寄存器寻址:操作数在寄存器中;
    ③寄存器间接寻址:操作数的地址在寄存器中;
    ④相对寻址方式的实际地址是程序计数器的内容加上指令中形式地址值,得到需要的地址。
  4. 特权指令是计算机的操作系统的基本指令,是由系统执行的,主要用于系统资源的分配和管理。
  5. 中央处理器(Centrol Processing Unit)由寄存器组、算术逻辑单元ALU和控制单元CU这三部分组成。
    CPU的功能包括:读取指令、解释指令、读取数据、处理数据、保存数据
  6. 计算机中的存储系统是用来保存数据和程序的,对存储器的最基本的要求就是存储容量要大、存取速度快、成本价格低。
  7. 相联存储器的访问方式最重要的特征是按照存储器中的单元内容访问,而不是按照地址访问。
  8. 高速缓存(Cache)用来存放当前最活跃的程序和数据。Cache 位于主存与 CPU之间,解决主存与 CPU 速度匹配问题。其功能全部由硬件来实现。Cache 由两部分组成:控制部分和 Cache 存储器部分。
  9. Cache中常见的映射方法有三种:直接映射(一对一)、全相联映射(多对多)、组相联映射(将块划分成组,主存中的一组与Cache相对应)。
  10. 替换算法的目标是使 Cache 获得最高的命中率。
  11. FORTRAN 是第一个被广泛用于科学计算的高级语言。
  12. COBOL 是一种面向事务处理的高级语言。
  13. PASCAL 语言提供为数不多但相当紧凑的机制,使得这个语言具有相当强的表达能力。
  14. C 是一种通用程序设计语言。C 作为一种较低级的语言,提供了指针和地址操作的功能。C 与 UNIX 操作系统紧密相关,UNIX 操作系统及其上的许多软件都是 C 编写的。
  15. C++是在 C 语言的基础上发展起来的与 C 兼容的语言。主要增加了类功能,成为面向对象的程序设计语言。
  16. 磁盘存取时间=寻道时间+等待时间。一般用磁道旋转一周所用的时间的一半作为平均等待时间。
  17. 直接存储器访问(DMA,Direct Memory Acess,又称直接内存存取)是一种快速传递大量数据常用的技术。
  18. 软件的生存周期,主要有可行性分析与项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动。软件生存期模型用来描述这些阶段的具体实现。总体分为三种模型:第一个是文档驱动,第二个是需求驱动,第三个是风险驱动。
  19. 软件的开发和维护分为 8 个阶段,分为可行性研究和计划、需求分析、概要设计、详细设计、实现、组装测试、确认测试和使用维护。其中单元测试是在实现阶段完成的,组装测试的计划是在概要设计阶段制定的,确认测试的计划是在需求分析阶段制定的。
  20. 结构化设计(Structured Design,SD)方法是一种面向数据流的设计方法。
  21. Jackson 设计方法是一种典型的面向数据结构的设计方法。
  22. Jackson 分析方法是面向数据流的分析方法。
  23. 常见的软件生存周期模型有瀑布模型、演化模型、螺旋模型、喷泉模型
    线 \color{#FF0000}{瀑布模型本质上是一种线性顺序模型,各阶段之间存在着严格的顺序性和依赖性,特别强调预先定义需求的重要性。} 瀑布模型属于整体开发模型,它规定在开始下一个阶段的工作之前,必须完成前一阶段的所有细节,缺乏灵活性,无法解决软件需求不明确或不准确的问题,突出的缺点是不适应用户需要的变动。 \color{#FF0000}{与瀑布模型相适应的软件开发方法是结构化方法}
    软件开发模型用于指导软件的开发。演化模型是在快速开发一个原型的基础上,逐步演化成最终的软件,演化模型特别适用于对软件需求缺乏准确认识的情况。螺旋模型综合了瀑布模型和演化模型的优点,并增加了风险分析。 \color{#FF0000}{喷泉模型是一种以用户需求为动力,以对象作为驱动的模型,适用于面向对象的开发方法,反映了该开发过程的迭代和无间隙特征。} 采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个概念项目。第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运行到软件生命期结束。 使 \color{#FF0000}{在开发一个系统时,如果用户对系统的目标不是很清楚,难以定义需求,这里最好使用原型法。}
  24. 白盒测试方法一般适用于单元测试。黑盒测试也称为功能测试。黑盒测试不能发现是否存在冗余代码。软件测试的目的是尽可能多地发现软件系统中的错误和缺陷。
  25. Alpha 测试是由一个用户在开发者的场所来进行的, Beta 测试是由软件的最终用户在一个或多个用户场所来进行的,开发都通常不在现场。
  26. 软件工程技术应遵循分解、一致性、确定性及抽象和信息隐蔽的原则。软件工程的三要素:方法、工具和过程。软件可行性研究包括技术可行性、经济可行性、法律可行性、社会可行性。
  27. CVS 是一种版本控制工具。(Concurrent Version System 版本控制系统)
  28. 软件工程是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程 3 个要素。
  29. 信号量:一个与队列有关的表示资源实体的整型变量,其值仅能由 P、V 操作来改变。信号量的物理意义:当信号量的值大于或等于 0 时,表示系统当前可用资源实体数目;当信号量的值小于 0 时,其绝对值表示系统中等待该信号量的进程数目。
  30. 操作系统的功能模块有:处理器(机)管理、存储管理、设备管理、文件管理、
    用户接口。
  31. 数据库按数据模型来分,可分为层次模型数据库、网状模型数据库和关系数据库 3 大类。
  32. ISO/OSI 的参考模型共有七层,由低层到高层分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
    物理层提供为建立、维护和拆除物理链路所需的机械、电气、功能和规程的特性。提供有关在传输介质上传输非结构的二进制流及物理链路故障检测指示。在这一层,数据还没有被组织,仅作为原始的位流或电气电压处理,单位是比特。
    数据链路层负责在两个相邻结点间的线路上,通过校验、确认和反馈重发等方法将原始的不可靠的物理连接发行成无差错的数据通道,并进行流量控制。每一帧包括一定数量的数据和一些必要的控制信息。与物理层相似,数据链路层要负责立、维护和释放数据链路的连接。在传送数据时,如果接收点检测到所传数据中有差错,就要通知对方重发这一帧。
    网络层为传输层实体提供端到端的交换网络数据传送功能,包括通信子网中从源到目标路径的选择。提供数据报服务和虚电路服务两类典型的数据分组传送服务方式。服务访问点:逻辑地址(网络地址)。代表协议有IP、IPX等。
    运输层也称传输层,为会话层实体提供透明、可靠的数据传输服务,保证端到端的数据完整性。服务访问点:端口。代表协议TCP、UDP、SPX等。
    会话层的作用是允许在不同的主机上的各种进程之间进行会话。建立、管理、终止应用程序之间的会话
    表示层为应用层提供共同需要的数据或信息语法表示交换。数据的压缩、解压缩、加密和解密等工作都由表示层负责。
    应用层提供 OSI 用户服务,是用户访问开放式系统互联模型的界面,它向用户提供各种直接的应用服务,如文件传送、电子邮件、虚拟终端、远程数据库访问等。HTTP、Telnet、FTP、SMTP等
    整个模型图
  33. SNMP 用于网络管理,WAP 用于移动电话无线上网,PPP 可用于家庭拨号上网,HDLC 是一种面向比特的数据链路通信规程,OSPF 是一种路由选择协议。
  34. 不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做多态。多态有几种不同的形式,参数多态和包含多态称为通用多态,过载多态和强制多态称为特定多态。面向对象技术中,对已有的实例的特征稍作改变就可生成其他的实例,这种方式称为继承。
  35. 统一建模语言(Unified Modeling Language)UML 由三个要素构成:UML 的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的一些公共机制
  36. UML 的词汇表包含了 3 种构造块:事物、关系和图。事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物;UML 中有4 种事物:结构事物、行为事物、分组事物和注释事物。
  37. UML 中有 4 种关系:依赖(带箭头虚线,由依赖的一方指向被依赖的一方)、关联(聚合关系、组合关系)、泛化(继承的反关系)和实现。
  38. 模型图分为二大类:
    ·静态模型(系统结构)
    用例图、类图、对象图、构件图、部署图(软硬件)
    ·动态模型(系统行为)
    状态图、活动图、顺序图、协作图

数据结构及算法基础

  1. 广义表的深度定义是,广义表中括弧的层数。广义表的长度定义是,广义表中元素的个数。
  2. 若广义表 L=((1,2,3)),则 L 的长度和深度分别为 1 和 2 。若一个具有 n 个结点、k 条边的非连通无向图是一个森林(n>k),则该森林必有 n-k 棵树。
  3. 在一棵度为 3 的树中,若有 2 个度为 3 的结点,有 1 个度为 2 的结点,则有 6 个度为 0 的结点。【结点的度:一个结点含有的子树的个数称为该结点的度;树的度:一棵树中,最大的结点的度称为树的度;】
  4. 在二叉树的第 i 层至多有 2^(i-1) 个结点(i>=1)
  5. 深度为 k 的二叉树至多有 2^k - 1 个结点(k>=1)
  6. 对任何一棵二叉树,叶子结点数=度为 2 的结点总数+1
  7. 具有 n 个结点的完全二叉树的深度为log 1 2 n 
    设森林 F 中有 n 个非叶子结点,则由它转换得到的二叉树中右域为空的结点
    个数为 n+1
  8. 任何一个借助“比较”进行排序的算法,在最坏情况下所需的比较次数至少为 |log₂(n!)|
  9. 无论是深度优先还是广度优先搜索遍历,图中 N 个结点都必须被访问一次。用邻接矩阵做图的存储结构时,其时间复杂度为 O(n²) 。若用邻接表作为存储结构,时间复杂度为 O(n+e) 。深度优先搜索遍历和广度优先搜索遍历的空间复杂度都为 O(n)
发布了32 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/chengsw1993/article/details/100883434