软件设计师-知识的整理

第1-2章 计算机网络和程序设计基础

  1. 原码、反码、补码、移码
  2. 浮点数的原码、反码、补码
  3. 带小数的原码、反码、补码
  4. 校验码:码距、奇偶校验码、海明码、循环冗余校验码(CRC)
  5. 指令的控制方式:顺序方式、重叠方式、流水方式,学会看图判断
  6. 总线:ISA、EISA、PCI、PCI Express、前端总线、RS232、SCSI、SATA、USB、IEEE-1394、IEEE488
  7. 计算机安全等级(4组7个等级):高到低A1-B3-B2-B1-C2-C1-D
  8. 对称加密(共享密钥加密):DES、3DES、RC-5、IDEA、AES,一个密钥同时加密和解密
  9. 非对称加密(公开密钥加密):RSA,公钥加密,私钥解密
  10. MD5是一种摘要算法,最终生成128位(32个字节)的字符串
  11. 密钥管理:CA证书
  12. 认证技术:HASH和信息摘要(MD5)
  13. SSL
  14. 数字时间戳技术(DTS)
  15. 计算机的可靠性计算
    MTBF(平均无故障时间) = 1/失效率
    串联系统可靠性:R=R1R2…Rn
    串联系统失效率:A=A1+A2+…An
    并联系统可靠性:R=1-(1-R1)(1-R2)…(1-Rn)
    并联系统失效率(假设所有子系统失效率都为B):
    N模冗余系统可靠性:
  16. 代码流程图的画法
  17. 编译阶段的语法树示意图(P71)
  18. 编译阶段词法分析的正规式
  19. 编译阶段词法分析的有限自动机,有点难,书中用了大篇幅,应该会考(P77)
  20. DPI每英寸像素的个数
  21. 正规式
  22. 活动图,最短时间计算
  23. 位示图
    位示图是利用二进制的一位来表示磁盘中盘块的使用情况。其值为0,表示对应的盘块为空闲;其值为1,表示对应的盘块为已分配。总之,用二进制的一位来标志空闲和已分配。位示图还可以用于存储空间的分配和回收
  24. 编译过程各个阶段,各自功能,语法树
  25. McCabe度量法
  26. 设计模式
  27. 有限自动机
  28. 编译过程的词法分析、语句分析、语义分析、表达式的语法树
  29. SQL中的having和where注意区别
  30. 二叉树:先序遍历、中序遍历、后序遍历
  31. 各种算法策略
  32. 程序流程图的语句覆盖测试、路径覆盖测试和环路复杂度计算
    软件设计师-知识的整理_第1张图片
    软件设计师-知识的整理_第2张图片
    软件设计师-知识的整理_第3张图片
  33. 读写速度:寄存器>缓存>内存>硬盘
  34. Cache 的地址映像方式
    • 全相联映像:块冲突概率最低,地址变换复杂,时间慢
    • 组相联映像:优点: 块的冲突概率比较低 、块的利用率大幅度提高 、块失效率明显降低
      缺点:实现难度和造价要比直接映象方式高
    • 段相联映象
      组间全相联,组内直接映象。
      减少相联目录表的容量,降低成本,提高地址变换速度
    • 直接映象:优点:地址变换很简单,访问速度快,硬件简单。
      缺点:不同区的相同块号不能同时放进 Cache,即便 Cache 内有空闲块,所以冲突率最大。出现大量空闲块,很少使用
  35. 中断响应时间:从开始发出中断请求,到开始进入中断处理程序
  36. 媒体类型
    • 感觉媒体:指人们接触信息的感觉形式。如:视觉、听觉、触觉、嗅觉和味觉等。
    • 表示媒体:指信息的表示形式。如:文字、图形、图像、动画、音频和视频等。
    • 显示媒体(表现媒体):表现和获取信息的物理设备。如:输入显示媒体键盘、鼠标和麦克风等;输出显示媒体显示器、打印机和音箱等。
    • 存储媒体:存储数据的物理设备,如磁盘、光盘和内存等。
    • 传输媒体:传输数据的物理载体,如电缆、光缆和交换设备等。
  37. 使用关键路径法计算最短工期:找出关键路径,最短工期其实就是时间最长的那段。(不太明白为什么?)
  38. 风险的优先级通常是根据风险暴露设定的。
  39. 全局变量、静态局部变量、静态全局变量都存放在静态数据存储区

第3章 数据结构

  1. 链表、栈和队列
  2. 串的模式匹配:子串的定位操作通常称为串的模式匹配,它是各种串系统中最重要的运算之一。子串也称模式串。
  3. 朴素的模式匹配算法:也称布鲁特-福斯算法,其基本思想是从主串的第一个字符起与模式串的第一个字符笔记,若相等则逐一匹配下一个,否则从主串的第二个字符起与模式串的第一个字符重新比较,直到模式串中的每个字符依次和主串的一个连续的字符序列相等时为止,此时匹配成功,否则匹配失败。
  4. 改进的模式匹配算法(又称KMP,书本P111)
  5. 二叉树:二叉链表和三叉链表,先序遍历、中序遍历、后序遍历
  6. 线索二叉树:n个节点有n+1个空指针域,利用这些空指针域来指向结点的直接前驱和直接后继,增加ltag和rtag来确定指针域是指向左右孩子还是前驱后继。(P125)

第4章 操作系统知识

  1. 操作系统吞吐量
  2. 操作系统五大功能:进程管理(处理机管理)、文件管理、存储管理、设备管理、作业管理
  3. 进程的三台模型、五态模型、具有挂起状态的进程状态转换
  4. 进程同步和互斥
  5. 信号量机制
  6. PV操作
  7. 进程的三级调度、调度算法
  8. 死锁
  9. 系统不发生死锁的最小资源数计算。假设有5个进程,每个进程需要3个资源,那么要保证系统不会发生死锁,则先给每个进程2个资源,再多出一个资源,最后这个资源不管给哪个进程都会保证系统正常执行下去,不会死锁。所以总共需要2*5+1=11个资源。
  10. 分页存储的地址结构,20位页号共1MB个页,12位页内地址共4KB
  11. 分页存储和分段存储的逻辑地址、物理地址之间的计算
  12. 分段存储
  13. 缺页中断次数的计算
  14. 程序局部性原理
  15. 页面置换算法(要计算 P214)
  16. 单缓冲和双缓冲技术,节约时间的计算(P220)
  17. 磁盘的旋转调度和移臂调度,计算时间(P222)
  18. 作业调度,响应比高的优先执行(P237)

第5章 软件工程基础知识

  1. 软件开发成本估算方法(计算P287):COCOMO模型
    COCOMOII模型
    Putnam模型
  2. 进度管理(P290)
  3. 进度安排(P290):Gantt图、PERT图
  4. 软件工程过程模型:瀑布模型、V模型、演化模型(原型模型、螺旋模型)、喷泉模型
  5. 极限编程:强调人与人的合作,快速响应客户的需求变化,属于轻量级的方法,认为文档、架构不如直接编程来的直接
  6. 水晶方法:不同的项目都有一组经过证明、对不同类型项目非常有效的敏捷过程
  7. 并列争球法
  8. 软件开发B/S和C/S体系结构
  9. 软件配置管理:版本控制、变更控制、过程支持
  10. 正式技术评审的目标是:发现软件中的错误
  11. 内聚:指模块内部各元素之间联系的紧密程度。模块的内聚类型分为七种
    软件设计师-知识的整理_第4张图片
  12. 白盒测试(也叫结构测试,了解程序内部结构和逻辑,以检查处理过程的细节)、黑盒测试(也叫功能测试,不考虑程序内部结构,对软件接口处进行测试)、回归测试(软件更新后使用以前的测试用例测试此更新是否对软件其他部分造成影响)、单元测试(软件详细设计阶段由开发人员完成)
  13. 白盒测试用例设计方法,从发现错误的能力由弱至强为:
    • 语句覆盖:每条语句至少执行一次
    • 判定覆盖:每个判定的每个分支至少执行一次
    • 条件覆盖:每个判定的每个条件应取到各种可能的值
    • 条件判断覆盖
    • 条件组合覆盖
    • 路径覆盖
  14. 动态测试:通过运行程序来测试
  15. 静态测试:不运行程序,检测代码逻辑来测试
  16. 软件维护的类型
    • 改正性维护:开发阶段已发生,但是系统测试没有发现的错误
    • 适应性维护:软件适应信息技术变化和管理需求变化而进行的修改
    • 完善性维护:为扩充功能和改善性能而进行的修改。
    • 预防性维护:为改进应用软件的可靠性和可维护性,为适应未来的软硬件环境的变化,而主动增加预防性的新的功能。
      软件设计师-知识的整理_第5张图片
  17. 软件质量:软件与明确的和隐含的定义需求相一致的程度
    软件设计师-知识的整理_第6张图片
  18. 软件规模估算方法
    • LOC估算法(代码行估算法):估算软件的代码行数
    • FP估算法(功能点估算法):估算工作量大小。功能点=信息处理规模技术复杂度
      信息处理规模有:外部输入书、外部输出数、外部查询数、内部逻辑文件数、外部接口文件数
      技术复杂度=0.65
      调节因子
  19. 软件工作量估算方法
    • COCOMO模型。根据代码行数、充分考虑开发人员的能力、使用的工具、硬件等信息,估算出以**/人/天**为单位的工作量。
  20. 项目计划编排的方法与技术
    • 计划评审技术(PERT)
    • 甘特图(GANTT)
    • 关键路径法(CPM)
  21. 计划评审技术(PERT)
    PERT是利用网络分析制定计划以及对计划予以评价的技术。它能协调整个计划的各道工序,合理安排人力、物理、时间、资金、加速计划的完成部分。
    PERT对各个项目活动的完成时间按三种情况估计:
    (1)乐观估算:任何事情都顺利的情况下,完成某项工作的时间
    (2)最可能时间:正常情况下,完成某项工作的时间
    (3)悲观时间:最不利的情况下,完成某项工作的时间
    软件设计师-知识的整理_第7张图片
  22. 活动的期望和方差的计算:
    软件设计师-知识的整理_第8张图片
    标准差:对方差进行开方
  23. 甘特图(GANTT)
    优点:简单、明了、直观、易于编制,是目前为止小型项目中常用的工具
    缺点:不能系统地表达各项工作之间的复杂关系,难以进行定量的计算和分析,以及计划的优化,没有指出影响项目生命周期的关键所在。
    软件设计师-知识的整理_第9张图片
  24. 关键路径法(CPM)
    借助网络图和各活动所需时间(估算值),计算每一活动的最早或最迟开始和结束时间。
    CPM算法的核心思想是将工作分解结构(WBS)分解的活动按逻辑关系加以整合,统筹计算出整个项目的工期和关键路径。
    每个活动有4各时间相关的参数:
    • 最早开始时间(ES)
    • 最早结束时间(EF)
    • 最迟开始时间(LS)
    • 最迟结束时间(LF)
      总时差:一项工作在不影响总工期的前提下所具有的机动时间(松弛时间)
      ES和EF的计算从开始到结束正向推导;
      LS和LF的计算从结束到开始反向推导;
      软件设计师-知识的整理_第10张图片

总时差 = LS - ES 或 总时差 = LF - EF
**关键路径:**总时差为0的活动组成的路径,这个路径工期是最长的。

  1. 自顶向下集成测试
    优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
    缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控
    制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
  2. 自底向上集成
    优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
    缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
    适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
  3. 什么是桩程序
    它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。这些探针被称为桩程序

第6章 结构化开发方法

  1. 系统模块结构设计

  2. 模块设计基本原则:信息隐蔽,模块独立

  3. 耦合:模块之间的联系紧密程度
    在这里插入图片描述

    1. 非直接耦合
      两个模块之间没有直接关系,它们之间的联系完全时通过主模块的控制和调用来实现的。耦合度最低,模块独立性最强
    2. 数据耦合
      模块之间有调用关系,传递的是简单的数据值
    3. 标记耦合
      模块之间有调用关系,传递的是数据结构。如数组名、文件名,其实传递的是这个数据结构的地址。
    4. 控制耦合
      模块之间有调用关系,传递的是控制变量(如开关、标志等),被调用模块通过控制变量的值有选择地执行某一功能。
    5. 外部耦合
      多个模块都访问同一全局简单变量,不是同一数据结构,不是通过参数表传递该变量的信息
    6. 公共耦合
      多个模块都访问同一公共数据环境,如全局数据结构,共享通信区.
    7. 内容耦合
      一个模块直接使用另一个模块的内部数据,或则通过非正常入口而转入另一个模块内部,是最差的耦合。
  4. 内聚:模块内部各元素联系的紧密程度
    在这里插入图片描述

    1. 功能内聚
      模块内所有元素共同完成某一功能,联系紧密,缺一不可,是最强的内聚类型。
    2. 顺序内聚
      模块完成多个功能,这些功能顺序执行,各功能之间有数据传递。
    3. 通信内聚
      模块内所有处理元素都在同一个数据结构上操作,或则指各处理使用相同的输入数据或者产生相同的输出数据。
    4. 过程内聚
      模块完成多个功能,这些功能顺序执行,各功能之间可能没有数据传递。
    5. 时间内聚
      把需要同时执行的动作组合在一起,所有动作在统一时间段内执行。如初始化
    6. 逻辑内聚
      把机重相关的功能组合在一起,每次调用时,由传送给模块的参数来确定该模块应完成哪一种功能。
    7. 偶然内聚
      模块内各部分之间没有联系,或则有联系,这种联系也很松散,最弱的内聚类型。如初学C语言时,所有代码都写在主函数里面。
  5. 深度:软件结构中模块控制的层数

  6. 宽度:软件结构中同一个层次上的模块总数的最大值

  7. 扇出:一个模块直接控制(调用)的下层模块数

  8. 扇入:一个模块被几个上级模块调用。

  9. 模块结构图的画法模块结构图的画法(P322)
    模块:矩形
    调用:箭头
    数据:空圆心加箭头
    控制信息:实圆心加箭头
    判断调用:菱形加多个箭头
    循环调用:单或多个调用加弧形箭头
    转接符号:圆心里面写标号

  10. 数据流图(P327)

  11. 数据字典(P335)

  12. 加工逻辑

  13. 结构化设计方法(P337)

第7章 面向对象技术

  1. 重置,覆盖,其实就是重写 Override
  2. 类属类,其实就是模板类,也就是Java里面的泛型
  3. UML(P364)
  4. 各种设计模式
  5. 装饰模型:动态地给一个对象添加一些额外地功能,用于在已有功能的基础上扩展更多的功能。
  6. 外观模式:定义一个高层接口,为子系统中的一组接口提供一个一致的界面,从而简化子系统的使用。
    软件设计师-知识的整理_第11张图片

第8章 算法设计与分析

  1. 算法的复杂度计算:
    https://blog.csdn.net/user11223344abc/article/details/81485842
  2. 常用算法设计方法:分治法、 动态规划法、贪心法、回溯法、分支界限法、概率算法和近似算法
  3. 二叉树遍历:https://blog.csdn.net/qq_33243189/article/details/80222629

第9章 数据库技术基础

  1. E-R图
  2. 笛卡儿积(拓展内容,考试不太重要,主要用于装逼):https://blog.csdn.net/csdn_hklm/article/details/78394412
  3. 元数:关系中属性的个数
  4. 基数:元组的个数
  5. 属性的域:每个属性的取值范围对应的一个值的集合
  6. 关系模式:关系的描述
    R(U,D,Dom,F)
    R表示关系名;U是组成该关系的属性名集合;D是属性的域;Dom是属性向域的映像集合;F为属性间数据的依赖关系集合。
  7. 关系运算
  8. 五种基本关系代数运算
  9. 集合运算,交、并、差等符号表示方法
  10. 弱实体、特殊化和普遍化
  11. 全特殊化、不相交特殊化和允许重叠特殊化,各种的图示表示方法(P472)
  12. 扩展关系代数运算。很复杂,没有看(P481)

知识产权和商标法

客体类型 权力类型 保护期限
公民作品 署名权、修改权、保护作品完整权 没有限制
公民作品 发表权、使用权、获得报酬权 作者终生及其死后50年
单位作品 发表权、使用权、获得报酬权 50年,若期间未发表,不保护
公民软件 署名权,修改权 没有限制
公民软件 发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权 作者终身及其死后50年。合作开发,以最后死亡作者为准
单位软件 发表权、复制权、发行权、出租权、信息网络传播权、翻译权、使用许可权、获得报酬权、转让权 50年,若期间未发表,不保护
注册商标 10年,期满6个月内可续注,若注册人死亡或倒闭1年后,未转移则可注销
发明专利权 20年,从申请日起
实用新型和外观设计专利权 10年,从申请日起
商业秘密 不确定,公开后公众可用
  1. 商标法规定,烟草类产品必须注册商标,中草药可以不注册商标
  2. 专利申请具有三个原则:
    • 书面原则,是指专利申请人及其代理人在办
      理各种手续时都应当采用书面形式;
    • 先申请原则,是指两个或者两个以上的人分别就同样的发明创造申请专利的,专利权授给最先申请人;
    • 单一性原则,是指一份专利申请文件只能就一项发明创造提出专利申请,即“一申请一发明”原则。甲、乙两人在同一天就同样的发明创造提交了专利申请,这种情况属于同日申请。根据《专利法》第九条规定“两个以上的申请人分别就同样的发明创造申请专利的,专利权授予最先申请的人。”以及第三十一条规定“一件发明或者实用新型专利申请应当限于一项发明或者实用新型。属于一个总的发明构思的两项以上的发明或者实用新型,可以作为一件申请提出。一件外观设计专利申请应当限于一种产品所使用的一项外观设计。用于同一类别并且成套出售或者使用的产品的两项以上的外观设计,可以作为一件申请提出。”对于同日申请的情况,专利局可分别向各申请人通报有关情况,请他们自己去协商解决这一问题,解决的办法一般有两种,一种是两申请人作为一件申请的共同申请人另一种是其中一方放弃权利并从另一方得到适当的补偿。如果双方协商不成的,则两件申请都不授予专利权。

你可能感兴趣的:(PMP学习笔记)