软件需求分析
软件生存周期由三个时期组成:软件定义、软件开发和软件维护
软件定义分为三个阶段:问题定义、可行性研究和需求分析阶段。
4.1需求分析
**基本任务:**回答“系统必须做什么”
结束: 提交详细的 数据流图、数据字典和算法描述
特点:
- 需求易变性
- 问题复杂性
- 交流障碍
- 不完备性和不一致性
原则:
- 可以把一个复杂问题按功能进行分解并可逐层细化。
- 必须能够表达和理解问题的数据域和功能域。
- 建立模型
任务
建立系统逻辑模型并撰写软件规格说明
1、问题明确定义
- 功能需求
- 性能需求
- 环境需求
- 用户界面需求
- 系统的可靠性、安全性、可移植性和可维护性等方面的需求。
2、导出软件的逻辑模型
3、编写文档
需求分析方法
- 功能分解方法
功能分解=功能+子功能+功能接口 - 结构化分析方法
结构化分析=数据流+数据处理(加工)+数据存储+端点+处理说明+数据字典 - 信息建模方法
信息建模=实体(对象)+属性+关系+父类型/子类型+关联对象 - 面向对象的分析
面向对象=对象、类+结构与连接+继承+封装+消息通信
4.2结构化(SA)分析
基本思想: 指导思想是 自顶向上和逐步求精 基本原则是 抽象与分解
特点
- 最早的开发方法,使用时间也最长
- 它应用最广,特别适合数据处理
- 相应的支持工具多,发展较为成熟
优点
(1)简单、实用。
(2)适合于瀑布模型。
(3)成功率较高。
(4)特别适合于数据处理领域中的应用。
存在问题
- 对于规模大的项目、特别复杂的应用不太适应。
- 难以解决软件重用的问题。
- 难以适应需求的变化。
- 难以解决维护问题。
步骤
1、建立物理模型
2、抽象出现系统的逻辑模型
3、建立目标系统的逻辑模型
4、进一步补充和优化
4.3系统流程图
描绘系统物理模型
4.4数据流图(Data Flow Diagram,DFD)
数据流图是结构化分析最基本的工具。
表达系统内部数据运行情况的基本工具
数据流图反映系统 “做什么”
每个加工至少有 一个输出流及一个输入流
顶层数据流图主要描述系统的输入与输出
基本图形符
- 数据流(有名字有方向)
- 加工(至少需要 一个输出流及一个输入流)
- 数据存储
- 数据源点和终点
画数据流图
- 画系统的输入/输出
- 画系统内部
4.5数据字典(Data Dictionary,DD)
数据字典是关于数据的信息得集合,是对数据流图中包含所有元素的定义的集合。
数据流图定义了数据流图中的数据的加工。
5总体设计
5.1重要地位:
软件设计处于软件工程过程中的技术核心地位。
5.2设计过程:
软件设计是一个把需求转化为软件表达式的过程。
着重在 开发模块化程序模块 所需要的准则,以及按照 自顶向下 的方式逐步细化软件体系结构上。接着设计定义过程方面逐渐发展成为一种叫做结构化编程 的原则。
5.3软件总体设计
需求分析阶段 所形成的 数据流图 是软件总体设计的基础。
软件总体设计的概要是回答系统应该如何实现
任务:
- 软件系统结构设计
- 数据结构及数据库设计(E-R模型)
- 络系统设计(制定 络拓扑图——集中式、分布式等)
- 软件总体设计文档
- 评审
设计基本原理
-
抽象——过程抽象和数据抽象
-
细化 逐步细化是自顶向下的策略
-
模块化(所有的软件结构设计技术都是以模块化为基础的)
基本属性:
1、接口
2、功能
3、逻辑
4、状态 -
软件体系结构
(1)过程构件(模块)的层次结构
(2 )数据结构 -
程序结构
-
数据结构
-
软件过程
体系结构设计
三部分:过程构件、连接构件、数据构件
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!