系统开发入门:软件设计篇(上)

发表时间: 2023-03-21 21:06

瀑布模型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方法主要三个抽象阶段:操作、服务、业务流程。