软件设计师10-系统开发模型

开发模型

开发模型是软件工程中指导开发的开发思想、开发体系。

经典模型-瀑布模型

最初始的模型,上个世纪七十年代提出,盛极一时,全球百分之九十的项目都用瀑布模型。

软件计划、需求分析、软件设计、程序编码、软件测试、运行维护。每个阶段都会有输出产物,是一个很经典的模式。但是每个阶段都依赖于上一阶段,不能应对客户需求变更

瀑布模型总结:只能适应于需求明确的项目,需求不明确的项目千万不能用瀑布模型

其他经典模型

原型模型

定位于需求不明确的项目。在项目初期会构造一个简易系统(可以是界面无后台功能,也可以是一套初步的系统)。一般用于需求分析阶段。

演变模型

在原型模型基础上,逐步完善逐步演变,形成最终的成熟软件。

增量模型

先把核心部分做出来,周期可能为完整项目的百分之二十,完成后又开发第二个模块、一个一个模块开发。好处就是,先把核心模块做完给用户看,以后每个模块给用户时都会审核核心模块,避免了做完项目后核心需求得改的情况。

螺旋模型

融合了原型模型(原始版本)、瀑布模型(各个阶段)、演化模型(逐步完善)各种模型。

引入了风险分析。

V模型

强调测试贯穿始终,在需求分析时就开始验收测试和系统测试,而不是像瀑布模式一样在最后进行测试。

 

喷泉模型

面向对象的模型,迭代,无间隙。

构件组装模型

极大提高软件开发复用性。

标准构建组装模型

敏捷开发

适用于小型项目,XP编程(极限编程)仅适用于小项目。敏捷开发(对内对外的沟通),功能简单(不需要过度设计)。

信息系统开发方法

需求开发

需求分类

业务需求

系统用来做什么,宏观方面的想法。

用户需求

和使用系统的人沟通,收集各个用户角度的需求。要把用户需求转换为系统需求。

系统需求

系统需求分为:功能需求(软件的功能)、性能需求(非功能需求:安全性、可靠性)、设计约束。

结构化设计

自顶向下,逐步求精

模块独立(高内聚、低耦合)

结构化具体方法

模块大小适中

减少调用深度(父模块调用子模块,子模块再调用其他模块叫调用深度)

模块多扇入,少扇出(多被调用,少调用其他模块,说明模块复用性比较高)

单入口,单出口

模块的作用域应该在模块之内

功能是可预测的

内聚与耦合

内聚:模块内部组件之间的联系

耦合:模块与模块之间的联系

模块结构

软件测试

动态测试

黑盒测试

白盒测试

灰盒测试

静态测试

桌前检查:程序员自己查看代码

代码走查:人工执行代码(逻辑在程序员的大脑里面跑一次)

代码审查:程序员之间交叉检查代码

设计测试用例

测试阶段

McCabe复杂度

系统运行与维护

立项阶段 -> 开发阶段 -> 维护阶段 -> 消亡阶段

可维护性

易分析性(代码需要容易看懂),易改变性(代码要有低耦合度),稳定性,可测试

维护类型

改正性维护:改正bug。

适应性维护:适应环境(软件环境,硬件环境)。

完善性维护:扩充功能,使系统更完善。

预防性维护:预防性工作(文档,代码重构,在bug未出之前改正,如00年的时间问题,提前升级叫预防性,事后叫改正性维护)。

软件过程改进 - CMMI

衡量软件承包方的能力成熟度模型。

项目管理

原文地址:https://www.cnblogs.com/aeolian/p/12015919.html