开发模型
开发模型是软件工程中指导开发的开发思想、开发体系。
经典模型-瀑布模型
最初始的模型,上个世纪七十年代提出,盛极一时,全球百分之九十的项目都用瀑布模型。
软件计划、需求分析、软件设计、程序编码、软件测试、运行维护。每个阶段都会有输出产物,是一个很经典的模式。但是每个阶段都依赖于上一阶段,不能应对客户需求变更。
瀑布模型总结:只能适应于需求明确的项目,需求不明确的项目千万不能用瀑布模型。
其他经典模型
原型模型
定位于需求不明确的项目。在项目初期会构造一个简易系统(可以是界面无后台功能,也可以是一套初步的系统)。一般用于需求分析阶段。
演变模型
在原型模型基础上,逐步完善逐步演变,形成最终的成熟软件。
增量模型
先把核心部分做出来,周期可能为完整项目的百分之二十,完成后又开发第二个模块、一个一个模块开发。好处就是,先把核心模块做完给用户看,以后每个模块给用户时都会审核核心模块,避免了做完项目后核心需求得改的情况。
螺旋模型
融合了原型模型(原始版本)、瀑布模型(各个阶段)、演化模型(逐步完善)各种模型。
引入了风险分析。
V模型
强调测试贯穿始终,在需求分析时就开始验收测试和系统测试,而不是像瀑布模式一样在最后进行测试。
喷泉模型
面向对象的模型,迭代,无间隙。
构件组装模型
极大提高软件开发复用性。
标准构建组装模型
敏捷开发
适用于小型项目,XP编程(极限编程)仅适用于小项目。敏捷开发(对内对外的沟通),功能简单(不需要过度设计)。
信息系统开发方法
需求开发
需求分类
业务需求
系统用来做什么,宏观方面的想法。
用户需求
和使用系统的人沟通,收集各个用户角度的需求。要把用户需求转换为系统需求。
系统需求
系统需求分为:功能需求(软件的功能)、性能需求(非功能需求:安全性、可靠性)、设计约束。
结构化设计
自顶向下,逐步求精
模块独立(高内聚、低耦合)
结构化具体方法
模块大小适中
减少调用深度(父模块调用子模块,子模块再调用其他模块叫调用深度)
模块多扇入,少扇出(多被调用,少调用其他模块,说明模块复用性比较高)
单入口,单出口
模块的作用域应该在模块之内
功能是可预测的
内聚与耦合
内聚:模块内部组件之间的联系
耦合:模块与模块之间的联系
模块结构
软件测试
动态测试
黑盒测试
白盒测试
灰盒测试
静态测试
桌前检查:程序员自己查看代码
代码走查:人工执行代码(逻辑在程序员的大脑里面跑一次)
代码审查:程序员之间交叉检查代码
设计测试用例
测试阶段
McCabe复杂度
系统运行与维护
立项阶段 -> 开发阶段 -> 维护阶段 -> 消亡阶段
可维护性
易分析性(代码需要容易看懂),易改变性(代码要有低耦合度),稳定性,可测试
维护类型
改正性维护:改正bug。
适应性维护:适应环境(软件环境,硬件环境)。
完善性维护:扩充功能,使系统更完善。
预防性维护:预防性工作(文档,代码重构,在bug未出之前改正,如00年的时间问题,提前升级叫预防性,事后叫改正性维护)。
软件过程改进 - CMMI
衡量软件承包方的能力成熟度模型。
项目管理
原文地址:https://www.cnblogs.com/aeolian/p/12015919.html