软件设计师知识点总结(三)

155 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

四、操作系统

1、进程状态转换图

ES8S$@NT4_8QLTGITCB6$$H.png

2、PV操作

1e5a67a4191841fb82765a34abba4c57_tplv-k3u1fbpfcp-watermark.png

3、死锁

死锁:死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象

现有k个进程,每个进程需要n个资源,则不发生死锁至少需要k*(n-1)+1个资源

4、存储管理

1、页式存储组织

优点:利用率高,碎片小,分配及管理简单 缺点:增加了系统开销,可能产生抖动现象

2、段式存储组织

优点:多道程序共享内存,各段程序修改互不影响 缺点:内存利用率低,内存碎片浪费大

3、段页式存储组织

优点:空间浪费小,存储共享容易,存储保护容易,能动态链接 缺点:复杂性高,增加开销,所需硬件以及占用内容增加,执行速度下降

五、软件工程

1、环路复杂度计算

有向图G的环路复杂度:V(G)=m-n+2 (m为弧,n为结点)

2、软件测试

1、黑盒测试与白盒测试常用方法

黑盒测试:等价类划分,边界值分析,错误推断,因果图 白盒测试:基本路径测试,循环覆盖测试,逻辑覆盖测试

2、测试原则

1、尽早不断的测试 2、程序员避免测试自己的程序 3、有效合理,无效不合理的数据都要选择 4、修改后进行回归测试 5、尚未发现的错误数量与该程序已经发现的错误成正比

3、结构化设计的基本原则

1、保持模块大小适中 2、尽可能减少调用的深度 3、多扇入少扇出 4、单入口单出口 5、模块的作用域在模块之内 6、功能应该是可预测的

4、信息系统开发方法

1、结构化法:用户至上,严格区分工作阶段,自顶向下逐步求精,强调整体性和全局性,开发过程工程化,文档资料标准化 2、原型法:适用于需求不明确的方法 3、面向对象法:更好的复用性,分析设计实现三阶段界限不明确 4、面向服务法:服务建模

5、软件过程模型

1、瀑布模型:需求很明确 2、V模型:加强分析与设计 3、原型模型:根据运行过程中获取用户反馈进行改进 4、演化模型:对需求缺乏准确认识

6、软件能力成熟度模型(CMM)

1、可重复级:建立了基本的项目管理过程和实践来跟踪项目费用,进度和功能特性 2、已定义级:所有项目都采用根据实际情况修改后得到的标准软件过程来开发维护软件 3、已管理级:收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制 4、优化级:过程的量化反馈和先进的新思想,新技术促使过程不断改进

7、连续式模型

CL0:未完成的,未执行或未达到CL1定义的所有目标

CL1:已执行的,共形目标是过程将可标识的输入工作产品转换成可标识的输出工作产品以实现支持过程域的特定目标

CL2:已管理的,共性目标集中于已管理的过程的制度化,针对单个过程实例

CL3:已定义级的,共性目标集中于已定义过程的制度化,关注组织化和部署

CL4:定量管理的,共性目标集中于可定量管理的过程的制度化

CL5:优化的,使用量化手段改变和优化过程域,以对付客户要求持续改进计划