本贴介绍需求分析方法,涉及到诸多实践性的东西,掌握各种图表的绘制是重中之重~
需求获取中得到的信息仅仅解释了用户对软件系统的理解与期待,使用的是实际业务的表达方式,还不是开发者能够立即加以实现的解决方案~
需求分析的任务:
模型是对事物的抽象,帮助人们在创建一个事物之前有更好的理解~
建立系统的一个表示,这个表示以精确统一的方式描述系统,使得系统的使用更加容易~
需求分析模型是专门用来描述软件解决方案的模型技术。
定位:
常见模型:
把现实世界描绘为数据在信息系统中的流动,以及在数据流动过程中数据向信息的转化。他帮助开发人员定义系统需要做什么(处理需求),系统需要存储和使用哪些数据需求(数据需求),需要什么样的输入和输出,以及如何把这些功能结合在一起来完成任务。
(常见模型:数据流图、实体关系图、状态转移图、数据字典等)
将系统看为过程的集合,过程的执行就是对数据的处理,接受数据输入,并进行数据转换,输出数据结果;执行过程中可能涉及到人机交互等外界输入的数值~
如下是一个DFD图的样例:
对于复杂的系统,解决的方式是分而治之:即利用过程具有不同抽象层次表达能力的特点,依据过程的功能分解结构,建立层次式的DFD描述:
(分解过程中要保证平衡性,即不会出现需求偏差的方法,要求DFD子图的输入流、输出流必须和父过程的输入流、输出流保持一致)
能够弥补过程建模在数据说明方面的缺陷,描述数据的定义、结构和关系等特性的技术~
3个基本元素:实体、属性、关系
标识符/键:可以唯一确定一个实例的一个或者多个属性~
认为系统是对象的集合,对象之间相互协作,共同完成系统的任务。(与结构化完全不同,面向对象以对象为基础,而结构化分析以功能和数据为基础)
主要优点:
UML(统一建模语言):多种技术的综合体,并非单一的技术——用例图、类图等
需求获取和组织的主要手段~
定义:在系统和外部对象的交互中所执行的行为序列的描述——换句话说,用例是对相关场景的集合
一种理解:关于x+y=z的程序,x=1 y=2 z=3即为一个用例
(1)基本元素
(2)建立
步骤大致如下:
用例粒度的判断标准——对应一个业务事件,由一个用户发起,并在一个连续时间段内完成,可以增加业务价值的任务~
(部分与整体之间的关系被称为聚合,如果整体还拥有对整体的管理职责,则这种聚合称为组合)
步骤如下:
描述对象协作的技术,描述特定上下文环境中一组对象的交互行为
系统总是存在于一定状态之中,有限状态机理论是状态图的基础~
需要强调的是需求分析模型不是简单机械的对已有内容进行转述,而是要细化和明确具体的需求内容~
基于最后建立的需求分析模型,还可以顺利的将用户需求转换为系统级需求~
tips:理论部分非常枯燥乏味,重点在于掌握图表的绘制,敬请期待专题~