瀑布模型SDLC
是结构化的开发
步奏:软件计划->需求分析->软件设计->程序编码->软件测试->运行维护
只适合需求明确 或者 二次开发的情况。因为需求不明确需要重新推翻前面的流程重新设计。
原型、螺旋模型、增量模型。
原型法:只用于开发需求分析阶段,先用简易的模型演示给用户看。
螺旋模型:从原型发展而来。
增量模型:原型+瀑布模型,先做核心功能,一部分一部分来进行。(强调先做一块,再做一块)好处是核心模块比较快的与用户使用,风险小。
螺旋模型
包含原型,瀑布模型等,由多个模型组合。
特征:风险分析,评估方案、消除风险。
题目:当需求不明确的时候,选什么模型开发呢?
有原型选原型,没原型选螺旋模型。
V模型:
形状如V,与瀑布模型接近,V模型测试地位更重要,细化到单元、集成、系统、验收测试。
V模型可以提早发现问题,提早写测试计划。
需求分析 应对 验收测试 和系统测试计划。
概要设计 应对 集成测试计划。
详细设计 应对 单元测试计划。
(强调测试的模型,强调测试 与 开发并行)
喷泉模型:
特点:面向对象的模型。所以他的特点是 迭代 和 无间隙。
(瀑布模型是结构化的典型代表,喷泉则是面向对象模型)
RAD快速开发模型:
SDLC瀑布模型 和 CBSD构建化开发模型 的组合模型。
用可视化的 快速开发,就是RAD。
构建组装模型CBSD:
步奏:需求分析和定义->软件架构设计->构建库的建立->应用软件构建->测试和发布
(瀑布模型没有架构)
都会把各个模块做成标准的构件,然后组合在一起,就成为了软件,极大提高了软件开发的复用性,软件成本降低,提高可靠性。(为什么可靠,因为可以用其他已经在其他系统存在的构建)
构建标准:CORBA COM/DCOM/COM+EJB
EJB是java标准
统一过程UP(或者RUP):
可以作用于大型项目。
特点:
1、用例驱动。
2、以架构为中心
3、迭代和增量。
开发分为四块:
初始、细化、构建、交付。
初始:
1)确定项目边界和范围。
2)识别系统的关键用例。
3)展示系统的候选架构。
4)估计项目费用和时间。
5)评估项目风险。
细化:
1)分析系统问题领域。
2)建立软件架构基础。
3)淘汰最高风险元素。
构建:
1)构件组装与测试
2)开发剩余构件
交付:
1)进行β测试。(针对产品,在用户的环境做的测试,α测试是在开发环境做的测试)
2)制作发版版本。
3)确认新系统。
4)培训调整产品。
敏捷开发方法:
往往适用于小项目。
基本原则:
自适应开发、水晶方法、特征驱动开发、SCRUM、极限编程。
短平快会议、小型版本发布、较少分档、合作为重、客户直接参与、自动化测试、适应性计划调整、结对编程、测试驱动开发、持续继承、重构。
12个最佳实践:
计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续继承、每周工作40小时、现场客户、编码标准。
信息系统的开发方法:
主要四种:
结构化法、原型法、面向对象方法、面向服务方法。
结构化法:
1)用户至上。
2)严格区分工作阶段、每个阶段任务。
3)强调系统开发过程整体性和全局性。
4)系统开发过程工程化,文档标准化。
5)自顶向下、逐步分解。
似乎结构化都是优点,但慢慢为什么被 面向对象方法取代呢?
结构化开发完成是固化不灵活的。
原型法:
适用于需求不明确开发。
包括抛弃式原型和演化式原型。
面向对象方法:
1、更好的复用性。
2、建立全面合理的统一模型。
3、分析、设计、实现三个阶段,界限不明确。
面向服务方法:
还在摸索阶段。
SO方法主要三个抽象阶段:操作、服务、业务流程。