软考-系统开发基础(软件的开发方法)
文章目录
软件的开发方法
结构化方法
是一种面向数据流的方法,基于分解和抽象的原则,形成数据流图,自顶向下,逐布分解,不适合开发大型的复杂的方法。用户至上,严格区分工作阶段
结构化方法用的越来越少,最大的问题就是他的流程是不灵活的
面向对象的方法
主要考虑的是复用性,关键在于建立一个全面合理统一的模型
面向服务的开发方法
主要由三个抽象级别:操作,服务,业务流程
原型化的开发方法
需求不明确的开发,包括抛弃式原型和演化式原型
还有一个特殊的方法是面向数据结构的开发方法-jackson
需求分析
解决系统要做什么
需求的任务
做什么
需求的过程
- 问题识别
- 分析与综合
- 编制需求文档
- 需求分析与评审(每次变更都会有评审)
需求的分类
- 功能需求(需求规格说明书)
- 非功能需求(对性能的要求,功能以外的东西)
- 设计约束(比如约束用java开发)
应用的工具
- 数据流图(DFD)
- 数据字典(DD)
- 判定表(基本条件项,条件项,基本动作项,动作项组成的判定表)
- 判定书(有时也被称为决策树,帮助做决策)
软件设计
怎么做,做什么的问题
软件设计的任务与活动
会出现概要设计,详细设计,每个过程都有说明
模块的设计原则
模块的独立性–高内聚,低耦合,控制复杂度
- 内聚:一个模块内部各个部件联系的紧密程度
- 耦合:模块与模块之间联系紧密,说明耦合程度高,反之则耦合第
内聚从高到低的排序:功能内聚-顺序内聚-通信内聚-过程内聚-瞬时内聚-逻辑内聚-偶然内聚(巧合内聚)
耦合从低到高排序:非直接耦合-数据耦合-标记耦合-控制耦合-外部耦合-公共耦合-内容耦合
跟细化的步骤
应用的工具
- IPO-输入处理输出图
- PDL-程序描述语言
- PAD-问题分析图
- 程序流图
- N/S盒图