瀑布模型
瀑布模式适合开求明确的,需求大致固定不会随意变更的系统
V模式的关键字在于质量保证活动和沟通,基本问题逐步细化
系统重构,已经开发过相同的,有清晰的定义,就选者瀑布**】**
增量模型
增量模型拥有瀑布模型的所有优点
它主要的特点是可以快速构造可运行的产品
原型模型
原型模型不适合大规模的系统开发
螺旋模型
螺旋模型的特点是加入了风险分析,适合大规模高风险的,需求变化的系统
喷泉模型
统一过程(UP)模型

计划、分析、设计、构造、集成、测试以及内部和外部发布
敏捷开发

软件测试
目的不是保证软件的正确性
系统测试阶段的测试目标来自于需求分析阶段
黑盒测试(重点)
黑盒:不关注程序内部,只关注输出输入
测试0-100,在这里面就是有效,没在范围就是无效
好的测试条件,包括好的输入条件+不好的输入条件
不好的测试用例,全部都是不合法的输入条件


两个方法
第一个是边-节点+2
第二个闭合区域+1
白盒测试
语句覆盖:代码你都要跑一遍
判定覆盖:每个判定表达式都有一真一假,你都要取到一次**,这里的判定是指判定整体一起;**
**条件覆盖:判定表达式的所有条件都要最少取得一真一假,**AND的左右条件
**判定/条件覆盖:**2,3的组合
**条件组合覆盖:**AND的左右条件,每种情况都要试一遍
路径覆盖:最强的,覆盖被测试程序中所有可能的路径
做题技巧,先看懂它的需求是什么,有时候默认值是数组
在白盒测试中计算环路复杂度就直接是判定条件的数量+1,例如这个题的判定条件有三个+1=4,所以环路复杂度是4
在白盒测试中计算环路复杂度就直接是判定条件的数量+1

系统可维护性评估指标
正确性主要就行修改错误
适应性主要是是变化了所以要适应,题目中有变化或者暗示变化那就是适应性
完善性主要是新增功能和需求这两个点
预防性主要是预防两字
凡是说文档不好的,直接是错的
沟通路径
沟通路径无主程序员的公式【(n-1)*n】/2,就是求和公式
有主程序员n-1,其中n为程序员的个数
项目进度图(重点)
Gantt图(甘特图)


PERT图

如果有多个流指向一个事件,那最早时刻取最大值(从第一个往后加)
如果一个事件有多个分流,那最晚时刻取最小值(从最后一个往前减)
最后一个最早时间=最后时间
松弛时间=单结点最晚时间-单结点最早时间(因为之前是去min\max,所以对于多个分流,要另外分析)
关键路径是松弛时间为0的那条线
风险避免是最好的风险控制策略
两个特性:不确定性和损失
风险评估、排优先级:可能性和后果
应对风险最好的办法就是风险避免
风险暴露=可能性*后果
风险不可能全部避免:有不可控因素,可以干预降低影响
软件质量
容错性 (Fault tolerance)。与在软件错误或违反指定接口的情况下维持指定的性能水平的能力有关的软件属性。
易恢复性 (Recoverability)。与在故障发生后,重新建立其性能水平并恢复直接受影响数据的能力,以及为达到此目的所需的时间和努力有关的软件属性。
模块结构属于程序评审
冗余技术通常分为 4 类, 结构冗余、 静态、动态和混合
带程序的就是屏蔽软件错误的容错系统
软件开发工具就是你开发前后过程中必须要用到的,维护就是辅助用的