生存周期:
软件策划、需求分析、软件实现(设计、编程)、系统测试、运行和维护
- 开发模型:
1)瀑布模型:
需求明确、成熟、管理严格,文档驱动
2)快速原型模型:
根据用户需求快速构建原型
3)螺旋模型:
大项目,循环4阶段迭代
4)增量模型:
需求不明确,风险项目
5)V模型(快速应用模型):
瀑布变种,当前阶段整个完成才能下一步,传统信息系统
6)喷泉模型:
面向对象,软件重用、多项集成,迭代和无间隙
7)统一开发过程模型:
团队开发效率
软件开发过程管理:
成本、进度、质量
整体:制定项目章程,制定项目管理计划,指导和管理项目工作,监控项目工作,实施整体变更控制,结束项目或阶段。
范围:
进度:
成本:
质量:
人力资源:
沟通:
风险:
采购管理
干系人管理
需求分析
获取:面谈、调查讨论会、问卷调查、现场观察
1)定义系统边界;确定组织结构及总体目标
2)了解应用场景,分析数据流程
3)分析需求可行性,确定需求的优先级;
4)建立需求模型;确定功能、性能、模块关系(结构图、功能点、性能点、接口列表)
5)编写数据字典
6)确定系统运行环境及界面
7)修正开发计划、新方案
8)用户验证确认(一致性、完整性、正确性、可验证性、可修改性、可跟踪性)
-
E-R图 - 数据模型
-
数据流图 ( Data Flow Diagram,DFD ) - 功能模型
转载自https://blog.csdn.net/weixin_43523875/article/details/104891261 -
数据字典(Data Dictionary,DD)
-
需求规格说明书
按标准格式,描述
-概述
-界面、接口、约束条件等
-功能需求、非功能需求及其它需求
软件测试与维护
目的:
发现错误和缺陷;证明符合要求;
测试原则:
尽早不断测试,贯穿整个开发期间,包括各说明书和程序
测试合理/不合理输入,输出
注意测试中的集群现象
严格执行测试计划
核查每个测试结果
妥善保存,测试计划、文档、出错统计和最终分析报告
测试方法和过程:
- 静态测试
编程格式和结构 - 动态测试,白盒/黑盒测试
白盒(检查逻辑结构、执行路径)
1)逻辑覆盖测试:
语句、判定、条件、判定条件、条件组合、路径覆盖
2)循环测试:
简单、嵌套、串接循环测试
3)基本路径测试:
确保每条语句、路径至少执行一次
黑盒(检查功能)
1)有效/无效等价划分:
即符合/不符合规格说明的、合法/不合法,有/无意义的输入测试
2)边界值分析法:
输入、输出边界值,对等价划分的补充
测试流程:
1)单元测试(模块测试),
模块接口、局部数据结构、路径、边界条件和出错处理测试;被动模块、驱动模块、桩模块
2)集成测试,
单元测试过的模块集成组合测试,功能、业务流程、界面、执行路径、容错、边界、接口测试;非增量式测试、增量式测试
3)确认测试,
满足需求规格说明书,验证软件有效性;系统性初始化、功能、性能、用户需求确认、数据处理、业务处理、安全性、压力、恢复测试
4)系统测试,
软件与其他系统资源和环境合成的实际检测;性能、恢复、安全和强度测试;常黑盒测试对比用户需求指标
5)验收测试,
用户为主;黑盒测试
测试文档:测试计划/用例文档,软件测试报告
软件维护分类
完善性维护:占1/2,用户提出的新功能、性能等要求
适应性维护:占1/4,外部环境变化
改正性维护:占1/5,运行后出现的问题或隐患,采取措施进行诊断、修改
预防性维护:百分之5,为了市场、客户和将来软件改进的基础,采用先进技术维护和改进
软件维护特点
维护时间长、工作量大、成本高,占整个生命周期的6、7成
延长软件寿命,更多价值,以及潜在错误及隐患
常见,程序难理解、差错难修改、前期缺陷、文档不全
软件维护任务
与用户沟通,紧急/不紧急情况的,指导应急行维护/统一安排时间维护
影响维护因素:
可理解性、可测试性、可修改性
提高维护性方法:
可维护性审查、保管完善维护文档