1、软件生命周期(6个阶段)
问题定义-需求分析-软件设计-软件开发-软件测试-软件维护
2、软件开发模型(5个)
a、瀑布模型
*定义-->开发-->维护(线性顺序)
*优点:检查点清晰,有利于提高大型软件项目的开发效率,适用于需求明确项目。
*不足:无法适应需求变更,客户要有耐心,最后看系统,容易阻塞。
b、快速原型模型
*原型:GUI图形用户界面--壳
*迭代,适用于不能预先确定需求的项目,不利于功能扩展,粗糙。
c、迭代模型(增量)——“边做边改”不易于管理控制
*组件的拆分
*组件集成
*适用于市场竞争激烈的项目
*集成失败风险
d、螺旋模型
*迭代
*特色:引入风险分析,适合于复杂、大规模软件开发
*4个象限:指定计划、风险分析、实施工程、客户评估
e、敏捷模型(5个)
灵活、支持变化
核心:用户的需求变化
特点:迭代、循序渐进
比较适合小型项目
重视测试、
4条敏捷宣言:1、强调个体和交互;2、强调软件的可工作性;
3、重视客户价值;4、重视响应变化
1)Scrum模型(橄榄球模型)
scrum master
需求:待定项 冲刺(完成待定项的工作单位)
*核心:迭代 复审 回顾 15分钟例会
2)XP极限编程
需求:用户故事 CRC卡片(类-责任-协作者)
*核心:适用于面向对象开发 KIS原则(keep it simple)保持简洁
结对编程(两名高手面对一台电脑编程,强调联手)
3)OpenUP
*核心:关注三个领域(个人、团队、干系人)的活动,以不同的周期完成工作内容
个人:以天/日为周期,完成工作细目
团队:以周为周期,完成迭代计划
干系人:以月为周期,查看项目计划来获取项目进展
4)看板(kanban)
*核心:可视化管理
5)Dev ops (development operation qua)
*核心:强调开发部门、技术运营部门、质量保障部门的沟通协作与整合
3、高质量软件的3个需求
a、满足开发者需求的规定
b、满足用户需求
c、满足用户隐式需求
4、影响软件质量的因素
a、需求模糊
b、软件开发人员的问题
c、缺乏规范性文件的指导
d、缺乏质量控制管理
5、软件缺陷产生的原因
a、需求不明确或频繁变更需求
b、软件结构复杂
c、编码问题
d、项目期限短
e、使用新技术
6、软件缺陷的分类(角度不同,分类不同)
1)测试种类
界面类、功能类、性能类、安全性类、兼容性缺陷
2)缺陷的严重程度
严重、一般、次要、建议
3)缺陷的优先级
立即解决、高优先级、正常排队、低优先级(高——低)
4)缺陷发生阶段
需求、设计、编码、测试
7、软件缺陷状态(关键字)
New:发现问题,报告缺陷 Open:开发人员正在修改缺陷 Fixed:开发人员修改光缺陷
Verified:等待测试人员验证 Reject:拒绝修改缺陷 Reopen:未修改成功,重新打开
Close:修改成功,关闭缺陷;拒绝修改,关闭缺陷