跳到主要内容

软件工程

中级涉及的软件工程知识概览

SPM

Software Project Management 软件项目管理

SPE

软件成本估算

COCOMO{基本模型中级模型详细模型\text{COCOMO} \begin{cases} \text{基本模型} \\ \text{中级模型} \\ \text{详细模型} \\ \end{cases}

COCOMOII{应用组装模型早期设计模型体系结构模型\text{COCOMOII} \begin{cases} \text{应用组装模型} \\ \text{早期设计模型} \\ \text{体系结构模型} \\ \end{cases}

L=CkE13td(43)L=C_kE^{\frac{1}{3}}t_d(\frac{4}{3})

SPTM

ESTn=ESThead+max{Phead,n}LSTn=LSTrear+min{Prear,n}STbegin,end=LSTbeginESTbeginorSTbegin,end=LSTendESTend\begin{matrix} \text{EST}_n=\text{EST}_{head}+\max\{P_{head,n}\} \\ \text{LST}_n=\text{LST}_{rear}+\min\{P_{rear,n}\} \\ \text{ST}_{begin,end}=\text{LST}_{begin}-\text{EST}_{begin} \\ \text{or} \\ \text{ST}_{begin,end}=\text{LST}_{end}-\text{EST}_{end} \\ \end{matrix}

SQM

软件质量管理

SM

(面向规模度量)\text{(面向规模度量)}

LOCKLOCP=LOC÷EC=LOC÷SD=Pe÷KLOCEQR=N÷KLOC\begin{matrix*}[l] LOC \lor KLOC \\ P=LOC \div E \\ C=LOC \div S \\ D=Pe \div KLOC \\ \text{EQR}=N \div KLOC \end{matrix*}

(面向功能度量)\text{(面向功能度量)}

FP=EI+EO+EQ+ILF+EIF×[0.65+0.01×(Fi)]F_P=EI+EO+EQ+ILF+EIF\times[0.65+0.01\times \sum(F_i)]

(复杂性模度量)\text{(复杂性模度量)}

McCabe\text{McCabe}

v(G)=mn+2pv(G)=m-n+2p

SDM

Software Development Model

框架

(CMM)

Initial
杂乱
Repeatable
项目费用
进度
功能特性
过程准则
Defined
文档化
标准化
标准软件过程
Managed
质量度量标准
Optimized
定量分析
持续改进
(CMMI-阶段模型)
Initial
缺乏控制
Repeatable
过程为项目服务
Defined
过程为组织服务
Managed
过程已度量
过程已控制
Optimized
集中于过程改进
(CMMI-连续式模型)
CL0
过程域未执行
CL1
输入产品转输出产品
CL2
已管理过程的制度化
CL3
已定义过程的制度化
CL4
可定量管理过程的制度化
CL5
使用量化手段管理和优化过程域

模型

Waterfall
瀑布模型
文档为驱动
需求非常明确
Incremental
增量模型
用户需求不清
开发增量风险不大
减少用户需求变更
开始阶段可仅投资一两个增量
Prototype
原型
已管理过程的制度化
需求经常变化
系统规模不大
系统规模不复杂
Spiral
螺旋
强调风险分析
系统规模庞大
复杂系统
高风险系统
WaterFountain
喷泉模型
用户需求为动力
对象作为驱动
CBD
基于构件模型
采用预先打包的软件构建系统
FormalMethod
形式化方法
建立于严格数学基础
UP
统一过程
用例风险驱动
架构为中心
迭代且增量
初始:生命周期目标
精化:生命周期架构
构建:初始运作功能
移交:产品发布
XP
极限
沟通
简单性
反馈
勇气
Crystal
水晶
不同的项目需要一套不同的策略
人对软件质量有重要影响
Scrum
并列征求
多个自治小组并行实现产品递增
ASD
自适应
有一个使命作为领导
特征被视为客户价值的关键点
过程中的等待很重要
变化不被视为改正
确定交付时间迫使开发人员思考
风险并存
AUP
敏捷
建模
实现
测试
部署
项目管理
环境管理

SDLC

Testing

执行测试测试结果调试\text{执行测试}\xrightarrow{\text{测试结果}}\text{调试}
Black-Box
黑和测试
等价类别划分
d(取值范围|值的个数),V=1,I=2
d(值的集合|必须如何),V=1,I=1
d(布尔),V=1,I=1
|d|=n,V=n,I=1
d(必须规则),V=1,I=any
等价划分
边界值分析
d(值的范围),in>=d
d(值的个数),max;min;max+1;min-1
d(有序集合),1;n
d(结构),边界
错误推测
根据经验列举可能出现的错误作为测试用例
因果图
因果分析
绘制因果关系
标记约束
形成判定表
判定表的列就是测试用例
White-Box
白盒测试
逻辑覆盖
语句覆盖
判定覆盖
条件覆盖
判定\条件覆盖
条件组合覆盖
路径覆盖
循环覆盖
循环中每个条件都得到验证
基本路径测试
分析DFD导出可执行路径集

Debug

试探
分析错误症状
猜测问题位置
运行时分析
回溯
从问题位置开始手动沿程序控制流程查找
对分查找
用于缩小错误位置的范围
归纳
用于缩小错误位置的范围
演绎
根据测试结果列出可能的错误原因