软件设计师中级知识大纲
2024-05-25 14:01:10 1 举报
AI智能生成
软件设计师中级知识大纲涵盖了软件设计、开发、测试和维护等多个方面的知识和技能。其中包括了软件工程、面向对象技术、算法与数据结构、数据库系统等方面的核心内容。作为一名软件设计师,需要具备这些知识和技能,才能设计和开发出高质量的软件产品。同时,对于文件类型和修饰语的使用也是软件设计师必备的技能之一,熟练掌握和运用这些技能,将有助于更好地完成软件开发任务。
作者其他创作
大纲/内容
算法
算法策略
分治法
特征
把一个问题拆分成多个小规模的相同子问题,一般可以用递归解决
经典问题
归并排序
快速排序
二分搜索
每层递归有3个步骤
分解
求解
合并
贪心法
特征
局部最优,但整体不一定最优
经典问题
背包问题(如装箱)
多机调度
动态规划
特征
划分子问题,并法子问题的结果用“数组存储”,利用查询子问题结果构造最终结果。
经典问题
矩阵乘法
背包问题
时间复杂度为 O(nW)
n 是物品数量,
W 是物品重量
这里是 0-1 背包问题的固定时间复杂度
n 是物品数量,
W 是物品重量
这里是 0-1 背包问题的固定时间复杂度
LCS 最长公共子序列
时间复杂度
自顶向下
O(2^n)
自底向上
O(n^a)
通常求解某种最优性质问题
回溯法
特征
系统的搜索一个问题的所有解或任一解
经典问题
N 皇后的问题
背包问题
分支限界法
满足约束条件下找出使某一目标函数达到极大或极小的解,即某种意义下的最优解
以广度优先或者以最小耗费优先的方式搜索解空间树
概率算法
随机选择下一步如何进行,允许结果以较小的概率出错
获得算法允许时间大幅度减小
算法特性
有穷性
执行又穷步骤之后结束
确定性
每一条指令都必须有确定的含义,不能含糊不清
输入(参数可以没有)
输出(至少有一个)
有效性(可行性)
每个步骤有效执行并能在执行有限次后得到确定结构
例如:a=0,b/a 就无效
例如:a=0,b/a 就无效
时间复杂度
量级排序
定理
设 和 为常熟,设 为一函数,T(n) 由递归式
若 ,且 ,有,则 )
若 ,且 ,有 且 与所有足够大的 n,有 ,则
若 ,则
数据挖掘算法
主要功能
分类
数据分类步骤
学习模型
应用模型
回归
关联规则
聚类
无监督学习过程
智能优化算法
遗传算法
在迭代过程保持已有的结构,同时寻找更好的结构
退火算法
求解全局最优算法
三个阶段
加温阶段
等温阶段
冷却阶段
蚁群算法
蚁群在不同的环境下,寻找最短路径达到事务
用蚂蚁行走路径表示待优化问题的可行解
数据库原理
基本概念
体系结构
集中式数据库
C/S 结构
分布式数据库
特点
物理上分布、逻辑上集中
物理上分布、逻辑上分布
数据独立性
集中与自治共享结合的控制结构
适当增加数据冗余(多个副本)
全局一致性、可串行性、可恢复性
透明性
分片透明
复制透明
指的是副本复制
位置透明
数据存储位置
逻辑透明
不必关心局部 DBMS 支持那种数据模型
分片模式
水平分片
表中的记录分别存放不铜地方
垂直分片
表中的列值分别存放不同地方
并行数据库
三级模式结构
视图级)外模式
也可以叫用户模式
表级)概念模式
文件级)内模式
也可以叫存储模式
逻辑独立性:外模式-概念模式的映射
物理独立性:概念模式-内模式的映射
数据仓库
特点
面向主题
数据按主题组织
集成的
消除源数据的不一致性
相对稳定的(非易失的)
反应历史变化(随着时间变化)
OLAP
联机分析系统
着重后期数据分析
OLTP
联机事务系统
常说的数据库
结构的四个层次
数据源
数据存储与管理
OLAP 服务器:联机分析处理
前端工具
BI 系统包括
数据预处理
建立数据仓库
数据分析
数据展现
数据模型三要素
数据结构
数据操作
数据约束条件
数据库设计
设计过程
1.需求分析
产物
数据流图
数据字典
需求说明书
2.概念结构设计
产物
ER 模型
过程
抽象数据
设计局部 ER 模型
合并局部模型消除冲突
集成方法
多个局部 ER 图一次集成
逐步集成
集成产生的冲突解决
属性冲突
命名冲突
结构冲突
重构优化、消除冗余
3.逻辑结构设计
产物
关系模式
4.物理结构设计
关系代数
笛卡尔积
表示符号:X
投影
表示符号:
例如:
就是选取表中的某些字段
选择
表示符号:
例如:
就是按条件查询表
自然连接
表示符号:
就是 Join 查询
select s1.f1 from table1 join table2 on table1.f1=table2.f1
select s1.f1 from table1 join table2 on table1.f1=table2.f1
规范化
推理规则
传递律
自反律
若 ,则 成立
增广律
若 且 ,则 成立
合并规则
由 ,,有 (根据 增广律 和 传递律)
伪传递规则
由 ,,有 (根据 增广律 和 传递律)
分解规则
由 ,,有 (根据 自反律 和 传递律)
候选键
并发控制
事务
特点
原子性
一致性
隔离性
持久性
产生的问题
丢失更新
执行过程中两个事务对同一个数据修改
不可重复读
第一个事务两次读取数据中,第二个事务对数据进行了修改
脏读
第一个事务失败,数据回滚
封锁协议
S 封锁/共享锁/读锁
若事务对某条数据加 S 锁,其他事务只能对这条数据加 S 锁,不能加 X 锁
X 封锁/排它锁/写锁
若事务对某条数据加 X 锁,其他事务不能能对这条数据加“任何锁”
死锁问题解决
预防
手工死锁解除
计算机组成与结构
中央处理单元 CPU
功能
程序控制
通过执行指令来控制程序的执行顺序
操作控制
时间控制
指令执行信号的出现时间
数据处理
组成
运算器
ALU
累加寄存器 ACC
数据缓冲寄存器
状态条件寄存器
控制器
指令寄存器
程序计数器
地址寄存器
指令译码器
寄存器组
内部总线等部件
数据表示
浮点数
| 阶符 | 阶码 | 数符 | 尾数 |
校验码
码距
两个二进制编码最小不同的位数
奇偶校验码
偶校验:偶数个1
奇校验:奇数个1
编码效率
CRC
生成多项式:
原码末尾添加最高次幂数:4
除数为:10101
海明码
本质是利用奇偶性来检错和纠错
数据为是 n 位,校验位是 k 位
校验为放置在 的位置上
体系结构分类
按处理机数量分类
单处理系统
并行处理系统
Flynn 分类
两个因素:指令流和数据流
当前主流多和计算机属于“数据流”和“总线带宽”计算机
指令系统
组成
操作码+操作数
执行过程
取指令
分析指令
执行指令
寻址方式
顺序寻址
跳跃寻址
指令的操作数指明下一条地址
操作数寻址方式
流水线
RISC 流水线
超流水线
每个机器周期内完成一个甚至两个浮点操作
实质是以“时间换取空间”
超标量流水线
实质是以“空间换时间”
超长指令流水线
同时执行多条指令
流水线时间计算
流水线周期
为执行指令最长执行段
流水线执行时间
1 条指令总执行时间+(总指令条数-1)* 流水线周期
吞吐律
指令条数/流水线执行时间
加速比
不适用流水线的执行时间/使用流水线的时间
Cache
组成
控制部分
存储器
地址映射
由硬件完成
替换算法
随机替换
先进先出
近期最少使用
优化替换算法
存储系统
存取时间=寻道时间+平均定位时间
输入输出
编址方法
独立编址
缺点:用于结构的指令太少、功能太若
统一编址
优点:用于内存的指令全部都可以用于接口
缺点:整个地址空间被分成两个部分
交互方式
程序查询方式
程序终端
DMA
一个总线周期结束,CPU 会响应 DMA 请求
计算机可靠性
串联系统可靠性
可靠性= R1*R2....
并联系统可靠性
可靠性= 1-(1-R1*R2....)
总线
内总线
并行
PIC
串行
SPI
外总线
并行
SCSI
HIPPI
串行
USB
操作系统
概述
特征
并发性
共享性
虚拟性
不确定性
功能
进程管理
文件管理
存储管理
设备管理
作业管理
分类
批处理操作系统
分时操作系统
实时操作系统
网络操作系统
为网络用户提供各种服务的软件和有关协议的集合
分布式操作系统
微型计算机操作系统
嵌入式操作系统
特点
微型化
可定制
可以运行在不同的微理器平台
实时性
多用于数据采集,所以要求实施性
可靠性
易移植
通常采用硬件抽象层和板级包的底层设计技术
初始化过程
1. 片级初始化
2. 板级初始化
3. 系统初始化
进程
资源图
P1 进程已经得到1个R1资源,还需要一个 R2 资源才能运行
互斥
互斥信号量
初始值为 1
同步信号量
初始值一般是共享资源的数量
调度算法
先来先服务
优先级调度
时间片
多级反馈调度
死锁
四个条件
不可剥夺
进程互斥
请求与保持
循环等待
避免
银行家算法
内存
分区方式
固定分区
可变分区
可重定位分区
移动已经分配好的区域,使其称为一个连续的区域
只有外部作业请求空间得不到满足的时候才执行
页面置换算法
最优算法 OPT
选择未来最长时间内不被访问的页面置换
先进先出 FIFO
会产生抖动现象
最少使用 LRU
淘汰原则
快表
看内容访问,速度快
硬件上按内容并行查找
存放 Cache
分段存储
段表
段页式
设备
分类
按数据组织
块设备
字符设备
按设备功能
输入设备
输出设备
...
按资源分配分类
独占设备
共享设备
虚拟设备
按传输速率分类
低速设备
中速设备
高速设备
设备管理
主要功能是动态掌握并记录设备的状态、设备分配和释放、缓冲区管理
文件
文件
是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合
信息项
是构成文件内容的基本单位
可以是字符或记录
类型
UNIX 将文件分为
普通文件
目录文件
设备文件
逻辑结构
由机构的记录式文件
无结构的流式文件
物理结构
连续结构
链式结构
索引结构
多个物理块的索引表
索引表是在文件创建时,系统自动建立的
文件目录
文件控制块的有序集合称为文件目录
网络安全
信息安全
安全空间
图例
X 轴是“安全机制”
Y 轴是“OSI 网络参考模型”
Z 轴是“安全服务”
属性
保密性
完整性
可用性
其他属性
真实性
可核查性
不可抵赖性
防止用户抵赖行为
这一点在电商中很重要的
安全需求
物理线路安全
网络线路安全
网络攻击等
系统安全
操作系统补丁
应用安全
加密技术
对称加密
加密解密的密码是相同的,不公开
缺点
加密强度不高(因为密钥位数少)
密码分发困难
优点
加密速度块
适合加密大数据
常见的加密算法
DES
3DES
AES
RC-5
IDEA
128 位密钥
64 位数据块
非对称加密
加密解密的密码是不同的
缺点
加密速度慢
优点
安全性高
不容易破解
常见的加密算法
RSA
512 位密钥
椭圆曲线 ELgamal、ECC
数字信封
信:是对称加密的密钥
对对称密钥进行非对称加密
信息摘要
类似 MD5 对一段文本加密
只能单向加密
常见算法
MD5
128 位输出
SHA-1
160 位输出
数字签名
唯一标识一个发送方
发送者
使用“发送者的私钥”进行加密
接收者
使用“发送者的公钥”进行解密
这样就能“唯一确定发送方”
缺点
无法保证机密性
PKI
不对称密钥加密技术
目的
数据机密性
完整性
身份认证
行为不可抵赖
数字证书
公钥证书
主要用于确保公钥及其用户绑定关系的安全
这个公钥就是证书所标识的哪个主题的合法公钥
签证机构 CA
负责签发、管理、撤销证书
给用户签发证书时,要加上自己的数字签名,保证证书信息是真实的
防火墙
网络防火墙
优点
层次低
效率高
实现的方案
屏蔽路由器
应用级防火墙
优点
层次高
效率低
实现方案
双穴主机
屏蔽主机
屏蔽子网 DMZ
Subtopic
主要隔离外网威胁,对内网直接攻击无能为力
IDS 入侵检测
是一个“监听”设备,挂在在所有流量必须流经的链路上
挂在位置选择在
尽可能靠近攻击源
尽可能靠近受保护源
IPS 入侵防御
能够提前发现入侵行为,还没有进入安全网络之前就防御
蜜罐系统
伪造一个蜜罐网络引诱黑客攻击
借此了解黑客攻击手段和原理
网络攻击
被动攻击
窃听
业务流分析
对系统长期监听,统计方法分析
非法登录
主动攻击
假冒身份
抵赖
伪造一份对方的来信
旁路控制
利用系统的安全漏洞获得特权
重放攻击
就是重复发送合法的截获的消息
拒绝服务 DOS
安全协议
kerberos 协议
是一种网络身份认证协议
基础是:基于信任的第三方,提供了在开放型网络进行身份认证的方法
SET 协议
安全电子交易协议
主要应用与 B2C 模式保障支付的安全性
PGP 协议
使用 RAS 公钥证书进行身份认证
使用 IDEA(128位密钥) 进行数据加密
使用 MD5 验证数据完整性
数据结构
线性结构
双端队列
只要求一段进出的话,其实是一个栈
串
KMP 算法
Next 函数值计算
后缀:第一排绿色部分
前缀:第二排绿色部分
字串的前缀(不包含最后一个字符)和后缀(不包含第一个字符)重叠的数量+1
数组
矩阵
三元组结构存储方式
(行,列,值)
广义表
就是线性表的推广
与线性表的区别
广义表每个元素可以是单元素,也可以是由结构的表
线性表的子元素不可再分
长度
外层长度 N 就是广义表的长度
深度
递归的重数
操作函数
head 函数取表头
例如 head( (a) ) = a
tail 函数取表尾
例如 tail( (a,b,c) ) = (b,c)
除表头以外的其他元素
树
特点
任意一颗二叉树,叶子节点数为 n0,度为 2 的节点数为 n2,则 n0=n2+1
存储
三叉链表
二叉链表
图
普利姆算法
步骤
任意顶点出发
再选出权值最小的加入
适合边稠密的网络
克鲁斯卡尔算法
步骤
选出边最小的
直至连接所有顶点
适合顶点稠密的
拓扑排序
概念:找到做这个工程的先后顺序
实现:
1. 选出入度为 0 的节点
2. 再删除与其相连的边
1. 选出入度为 0 的节点
2. 再删除与其相连的边
注意:有回路一定不存在拓扑排序的
逆拓扑排序
实现:
1. 选出出度度为 0 的节点
2. 再删除与其相连的边
1. 选出出度度为 0 的节点
2. 再删除与其相连的边
查找
哈希查找
哈希算法
除数留余法
散列函数 H(key)%P
P=质数<= m(散列表长度)
P=质数<= m(散列表长度)
直接定址法
Hash(key) = key 或者 Hash(key) = a*key + b
数字分析法
算取 Key 分布均匀的一部分
场景:数码的某部分分布比较均匀
例如:手机号
例如:手机号
平法取中法
算法: 用中间的几位
场景:关键字分布不均匀
处理冲突
拉链法
开放定址法
线性探测法
平方探测法
双散列法
就是再设计另外一个的哈希函数
需要保证哈希算出的值与长度 m 互为质数才能保证全部探测
伪随机法
都取随机数:
删除元素
需要标记删除的位置为“已删除”
装填因子
填入表中的元素个数 / 散列表的长度
α是散列表装满程度的标志因子。由于表长是定值,α与"填入表中的元素个数"成正比
α是散列表装满程度的标志因子。由于表长是定值,α与"填入表中的元素个数"成正比
失败查找长度
面向对象
分析模型构成
顶层架构图
用例图
领域概念模型
设计原则
单一职责
开发-封闭原则
里氏替换原则
依赖倒置
抽象不依赖细节,细节应该依赖于抽象
结构分离原则
测试层次
算法层
单测
类层
同一个类中所有方法与属性之间的相互作业
模板层
相当于集成测试
系统层
UML
结构包括
构造块
事物
关系
图
规则
公共机制
序列图
通信图
活动图
构件图
设计模式
分类
行为型
职责链
转递职责
代码示例
命令模式 Command
日志记录,可“撤销”
代码示例
解释器 Interpreter
虚拟机的机制
可以将解释器理解为一个“编译器”
代码示例
迭代器 Iterator
数据库数据集
中介者 Mediator
不直接引用
代码示例
备忘录模式 Memento
可恢复
示例代码
观察者模式
联动
示例代码
状态模式 State
状态变成类
代码示例
策略模式 Strategy
多方案切换
代码示例
主要解决
在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。
模板方法模式
文档模板填空
代码示例
访问者模式
数据与操作分离
代码示例
常见应用场景
对象结构相对稳定,但其操作算法经常变化的程序。
对象结构中的对象需要提供多种不同且不相关的操作,而且要避免让这些操作的变化影响对象的结构。
创建型
工厂模式
抽象工厂模式
构建器模式 Builder
原型模式 Prototype
克隆对象
单例模式
结构型
适配器
转换不相容的接口
代码实例
桥接模式
继承树拆分
代码示例
组合模式
树目录结构
代码示例
文件系统是树形结构,没一级结构可以执行不同的方法
装饰模式
附加职责
代码示例
子类实现方法中,执行额外的方法代码
外观模式
对外统一接口
代码示例
享元模式
文章共享文字对象
代码示例
目标是减少应用程序中对象的数量,以节省内存和提高性能
代理模式
快捷方式
代码示例
一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务
四个基本要素
模式名称
问题
应该在何时使用模式
解决方案
实际内容
效果
主要活动
识别类和对象
定义属性
定义服务
识别关系
识别包
项目管理
进度管理
Gantt 图
优点
清晰描述每个任务开始和结束时间
清晰描述任务的进程情况
清晰描述各个任务之间的并行关系
缺点
不能反应任务之间的依赖关系
难以确定项目的关键所在
不能反映计划中有潜力的部分
PERT 图
示例
优点
给出每个任务的开始和结束时间
每个人任务所需要的时间
任务之间的关系
与 Gantt 图的最大的区别
缺点
不能反映任务之间的并行关系
关键路径法
是在指定进度进化时使用的一种进度网络分析技术
沿着项目进度网络路线进行正向与反方向分析
活动资源估算方法
专家判断法
替换方案的确定
若存在替代方案
公开的估算数据
定期公开生产率或人工费用率数据
估算软件
用软件估算
自下而上的估算
时间管理
关键路径
就是从开始到结束,需要“时间最长”的路径
项目工期
完成项目的最少时间
由关键路径(最长路径)决定
总时差
在不延误总工期的前提下,该活动的时间。
等于该活动的最迟完成时间与最早完成时间之差,
或者最迟开始时间与最早开始时间之差
或者最迟开始时间与最早开始时间之差
自由浮动时间
紧后活动最早开始时间的最小值 - 本活动的最早完成时间
范围管理
项目范围管理
5个管理过程
规划范围管理
定义范围
创建工作分解结构
确认范围
范围控制
项目范围的基准
是经过批准的项目范围说明书、WBS、WBS 词典
WBS 示例
主要目的:定义项目边界,防止需求蔓延
产品范围是“项目范围”的基础,产品范围的定义是“产品要求的描述”
成本管理
包括的过程
成本估算
成本预算
成本控制
成本类型
可变成本
随时间、生产量、工作量而变
固定成本
直接成本
直接可以归属于项目工作的成本
间接成本
差旅费等
机会成本
沉没成本
过去的决策已经发生,现在或将来不能改变
配置管理
可作为配置项管理的有
外部交付的软件产品和数据
指定的内部软件工作产品和数据
用于创建和支持的软件产品支持工具
典型的配置项包括
项目计划书
需求文档
设计文档
源代码
测试用例
配置项的状态
草稿
正式发布
正在修改
质量管理
软件评审
两个必要条件
设计规格说明书符合用户标准,称为设计质量
程序按照设计规格说明书所规定的情况正确执行,称为程序质量
知识产权与标准化
标准化
分类
国际标准
ISO、IEC
国家标准
GB:中国
ANSI:美国
BS:英国
JIS:日本
区域标准
行业标准
地方标准
国家的地方一级行政机构指定
企业标准
项目规范
代号
国际标准代号
标准代号+专业类号+顺序号+年代号
国家标准代号
强制性标准代号
GB
推荐性标准代号
GB/T
行业标准代号
GB/Z
行业标准代号
有汉语拼音大写字母组成
地方标准代号
由 DB 加上省级行政区代码的前两位
企业标准代号
由 Q 加上企业代号组成
保护范围
著作权法
保护著作权
不需要申请
软件著作权法
保护软件著作权、软件作品
不需要申请
专利法
专利权
需要申请,申请日期开始算
商标法
商标权
需要申请,核准之日开始算
反不正当竞争法
商业秘密权
保护期限
公民作品
署名权、修改权、保护作品完整权
没有限制
发表权、使用权、获得报酬权
作者终生、死亡后的50年
单位作品
发表权、使用权、获得报酬权
50年
公民软件产品
署名权、修改权
没有限制
发表权、复制权、使用权。。。
作者终生、死亡后的50年
单位软件产品
。。。。
50年
注册商标
有效期 10 年
发明专利权
20年
实用新型和外观设计专利权
10年
商业秘密
不确定
侵权判定
不授予专利权
科学发展
智力活动规则和方法
疾病诊断和治疗方法
动物和植物品种
利用原子核变换方法获得的物质
对平面印刷品的图案....
软件工程
软件复用
将已有的软件各种有关知识用于建立新的软件,以减少开发和维护成本
早期是“代码复用”,后来已变成领域知识、设计决定、代码、文档等等
逆向工程
是设计恢复过程
四个级别
实现级
抽象语法树、符号表等
抽象级别最低,完备最高
结构级
反应程序结构依赖关系
功能级
程序段之间的信息
领域级别
例如 ER 模型
抽象级别最高,完备最低
其他概念
重构
设计恢复
从已有程序抽象出有关数据设计
再工程
修改已有系统,产生一个新的版本
步骤
逆向工程
新需求考虑
正向工程
正向工程
改变或重构现有系统,改善整体质量
软件需求
过程分类
需求开发
需求获取
方法
用户访谈
需要足够的领域知识
采样
联合需求计划
几个关键任务开会
文件调查
情节串联版面
通过图讲故事
需求分析
结构化需求分析
三大模型
功能模型
数据流图
行为模型
状态转换图
数据模型
ER 图
需求定义
是整个开发的基础
需求验证
目的是与用户一起确认需求无误
验证完成后,需求说明书就是需求基线,不能随意更改了,更改需要走需求变更流程
需求管理
变更控制
变更风险
无足够用户和参与
忽略用户分类
。。。
版本控制
需求跟踪
正向跟踪
指用户需求是否都实现了
反向跟踪
软件是否都是用户要求的
需求状态跟踪
分类
业务需求
通常来自项目投资人、客户、市场部门
用户需求
用户能使用系统做什么
用户要求系统必须要完成的任务
系统需求
系统的角度描述需求
包括
功能需求
非功能需求
设计约束
例如必须使用国产系统
质量功能部署 QFD
是一种将用户需求转化为软件需求的一种技术
分类
常规需求
期望需求
用户想当然期望系统的功能,用户不能描述想要的功能性需求
意外需求
软件设计
处理流程设计
IDEF0:业务流程建模
IDEF1X:数据建模 ER 图
IDEF2:仿真建模设计
IDEF4:面向对象设计
IDEF8:用户建模设计
IDEF4:组织结构建模
流程表示工具
程序流图
IPO 图
N-S 图
不适用复杂的程序设计
问题分析图(PAD图)
支持结构化程序设计
流程管理包括
规范流程
优化流程
再造流程
人机交互“黄金三原则”
置于用户控制之下
保持界面已知
减轻用户的记忆负担
设计原则
目的
可维护性
可读性
可扩展性
可重用性
包括
模块化
提高模块独立性
提高抽象层次
将问题抽象成更加通用、高层次的概念或模块
测试
“系统测试”是为了发现错误而执行程序的过程,“成功的测试”是发现了至今未发现的错误的测试
分类
静态测试
指的是测试程序不在机器上运行,而采用“人工检测和计算机辅助静态分析的手段”进行测试
分类
对文档的静态测试
以“检查单”的形式
对代码的静态测试
桌前检查
程序员自己检查程序和文档
代码审查
第三方来检查程序和文档
代码走查
程序员代替计算机去运行测试用例
动态测试
指实际运行程序
分类
黑盒
功能性测试
分类
等价类划分
边界值划分
错误推测
因果图
白盒
结构性测试
分类
路径覆盖
条件覆盖
...
阶段
单元测试
依据
软件详细设计说明书
集成测试
依据
软件概要设计文档
确认测试
系统测试
依据
用户需求或开发合同
测试对象
完整的、集成的计算机系统
配置项测试
测试对象是软件配置项,目的是检查软件配置项与 SRS 的一致性
依据
SRS
回归测试
目的
软件变更之后,变更部分的正确性和对变更需求的符合性,
以及软件原有的、正确的功能、性能和其他规定的要求的不损害性
以及软件原有的、正确的功能、性能和其他规定的要求的不损害性
测试策略
自底向上
优点:较早验证了底层模块
自定向下
优点:较早验证了系统主要的控制点
三明治
优点:前两者都包括
缺点:测试工作量大
调试
方法
蛮力法
回溯法
从错误的地方往回找
原因排除法
软件度量
软件两种属性
外部属性
面向管理者和用户的属性,可直接测量
内部属性
软件本身的属性,如可靠性,可间接测量
McCabe 度量法
设图中有向边数 m,节点数 n,则环路复杂度 = m-n+2
代码环路复杂度计算
例 1
例 2
维护
系统维护
软件维护
正确性维护
修改 BUG
适应性维护
外部环境、业务发生变化
完善性维护
改善软件或增加功能
预防性维护
对未来可能发生的 BUG 进行预防性修改
硬件维护
数据维护
开发思想
敏捷开发
自适应开发
强调开发方法“适应性”
侧重软件的重要性提供最基本的基础
水晶开发
每一个不同的项目都需要一套不同的策略、约定、方法论
特性驱动开发
针对中小型软件项目的开发模式
模型驱动的快速迭代开发过程
极限编程 XP
核心是 沟通、简明、反馈和勇气
无需开发人员在初期做很多文档
提倡测试先行
并列争球发 SCRUM
迭代增量化
30天一次冲刺
统一过程 AUP
大型任务连续、小型活动迭代
经典 UP 阶段活动:初始化、精化、构件、转换
计算机网络
概念
网络的功能
数据通信
资源共享
负载均衡
高可靠性
以太网
规范
IEEE 802.3:重要的局域网协议
IEEE 802.3
标准以太网 ,10Mb/s
IEEE 802.3u
快速以太网 ,100Mb/s
IEEE 802.3z
千兆以太网 ,100Mb/s
IEEE 802.3ae
万兆以太网 ,1GB/s
IEEE 802.11:无线局域网协议
网络协议三要素
语法
语义
时序
传输介质
光纤
多模光纤 MMF
同时传输多种信号
LED 为光源
成本低
传输效率和可靠性低
适合短距离传输
单模光纤 SMF
只能传递一种信号
激光 LED 为光源
传输效率和可靠性高
通讯
交换方式
电路交换
报文交换
分组交换
数据报
是现在主流的交换方式,各组携带地址信息,自由选择不同路径
虚电路
建立一个虚拟通信路线
信元交换
异步传输模式 ATM 采用的交换方式
本质按照虚电路的方式进行转发,只不过信元长度固定
IP 地址
分类
A 类:0 开头
前 8 是网络号
B 类:10 开头
前 16 是网络号
C 类:110 开头
前 24 是网络号
D 类:1110 开头
网络规划
三层模型划分
核心层
汇聚不同区域之间的数据传输
汇聚层
实施与安全、流量、负载、路由相关策略
接入层
为用户提供了在本地网段访问应用系统的能力
RAID 磁盘冗余阵列
RAID 将数据分散存储在不同磁盘中,可并行读取
RAID 0 将数据分散存在在不同磁盘中,磁盘利用率 100%
RAID 1 成对磁盘存储
RAID 2 将数据条块化分布不同硬盘上,并使用海明码校验
RAID 3 使用奇偶校验
RAID 5 交叉存储数据和奇偶校验信息
图例
网络存储奇数
直接附加存储 DAS
就是添加一块硬盘到计算机
网络附加存储 NAS
通过网络连接到只提供文件系统功能的服务器
存储区域网 SAN
通过专用交换机将磁盘阵列与服务器连接起来
程序设计语言
语言三要素
语法
语义
御用
标识了构成语言的各个记号和使用者的关系
分类
命令时和结构化设计语言
Fortran
PASCAL
C 语言
面向对象设计语言
函数式语言
LISP
Haskell
APL
逻辑型设计语言
PROLOG
程序设计语言的基本成分
数据成分
运算成分
控制成分
传输成分
指明“语言允许的数据传输方式”,如赋值处理、数据的输入和输出
函数
中间代码需要考虑的三个问题
如果生成较短的目标代码
如何利用计算机中的寄存器
如何充分利用计算机指令系统,提高目标代码指令
正规式
运算符
|
表式 或
·
表示 连接
*
闭包
结构化开发方法
加工逻辑
描述方法
结构话语言
判定表
判定树
结构图
模块结构图组成
模块
调用
数据
控制
转换
结构化设计包括
体系结构设计
定义软件主要结构元素和关系
数据设计
结构设计
过程设计
WebApp
主要采用敏捷开发过程模型
收藏
0 条评论
下一页