在开发软件的过程中,在我们还未编写程序时我们要进行大量的准备工作,我们在开发软件时要了解客户的需求,要了解客户对我们开发的软件有什么性能和功能上的要求,我们也要考虑软件的运行环境等问题,所以做需求分析是一个必要的环节,它是软件开发得以成功的基础。需求分析是要研究客户要“做什么”的过程,在对需求进行分析的过程中我们会用一些分析方法,会借助于一些工具将一些抽象的事物具体化。借助于图形分析是我们进行需求分析最常用的方法。
软件需求分析要求:需要用户与开发人员进行交流,开发人员内部之间进行交流,并编写软件需求说明书保证开发的软件是我们真正需要的。
需求分析阶段工作:对问题的识别、分析与综合、制定规格说明和评审。 要明确客户的功能需求性能需求 并作出可行性分析报告,在需求分析阶段我们要写该阶段的文档及软件需求说明书或软件需求规格说明
软工视频介绍了很多种方法,面向数据流的结构化分析方法、面向数据结构的Jackson方法、结构化数据系统开发方法、面向对象开发分析方法。这些方法适合不不同类型的软件开发的需要,这些方法大都是进行图形化分析,将需求实例化成一个流程,以便我们更好的开发软件。
结构化分析方法
按照功能分解的原则,根据软件内部数据传递、变换的关系,自顶向下逐层分解,是对数据进行操作,的是面向数据流的分析方法
【适用范围】
适合于数据处理类型的软件需求分析方法
【工具】
数据流图、数据词典、结构化英语、判定表、判定树
数据流图:是描述数据处理过程的有力工具,从数据传递和加工角度,以图形的方式刻画数据流从输入到输出的易懂变换过程。
数据词典:就是数据流图中出现的元素作出解释,使开发人员更好理解。
结构化英语:也叫作程序设计语言(PDL)和我们常用的if语句和循环语句相似
判定表: 就是讲数据流图中的条件关系列成一个表格
数据树:顾名思义,程序的分支像树枝一样延伸
加工逻辑说明的工具
.结构化英语
. 判定表
. 判定树
数据流图组成:
【关系】
数据词典、结构化英语、判定表是基于数据流图进行的深一步的说明。
面向数据结构的分析方法-结构化数据系统开发方法
【基本构造】
顺序、选择、重复构造
【工具】
Warnier图、DSSD分析方法、Jackson系统开发方法
Warnier图结构就像我们画的思维导图一样逐层细化
DSSD分析方法:图的组成结构和数据流图很相似但是意义却不同
Jason系统开发方法
画图时要考虑时序问题,JSD模型就是互相通信的一组进程的集合,是基于进行模型的一种分析方法
使用JSD方法步骤:
实体动作分析、实体结构分析、定义初始模型、功能描述、决定系统时间特性、实现其中前三步是需求分析阶段要进行的
.实体动作分析是对执行动作的分析,就像视频给我们讲的例子,火车往返于两个学校之间,学生是实体,其中实体有很多动作的发生,我们要对发挥关键作用的动作进行分析。
.实体结构分析 选定了实体和动作后用结构图建立他们之间的关系
.定义初始模型:将抽象的东西具体化0
状态迁移图
优点:
状态之间的关系能够直观地捕捉,能够机械地分析许多种情况,很容易建立分析工具。