一:需求分析相关概念

(1)定义

需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题,目标系统提出完整、准确、清晰、具体的要求。在需求分析阶段结束之前,系统分析员应该写出软件需求规明书,以书面形式准确地描述软件需求

(2)必要性(了解)

为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。对软件需求的深入理解是软件开发工作获得成功的前提条件,不论人们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发者带来烦恼

(3)准则

  • 必须理解并描述问题的信息域,根据这条准则应该建立数据模型
  • 必须定义软件应完成的功能,这条准则要求建立功能模型
  • 必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型
  • 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节

二:需求分析的任务

(1)确定对系统的综合要求

功能要求:系统必须提供的服务功能

性能要求:系统必须满足的约束条件(如响应速度、安全性等)

可靠性和可用性需求:可靠性定量、可用性量化

出错处理需求: 错误响应机制,说明系统对环境错误应该如何响应

接口需求:

  • 用户接口需求
  • 硬件接口需求
  • 软件接口需求
  • 通信接口需求

约束: 用户或环境强加的限制条件(如工具、语言等)

逆向需求: 系统不应该做什么

将来可能提出要求: 将来可能需要实现的需求

(2)分析系统的数据要求

A:意义(了解)

任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌。因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务

B:工具

常用的方法

  • 建立数据模型

常用图形工具

  • 层次方框图
  • warnier图

(3)导出系统的逻辑模型

综合分析结果可以导出系统的详细的逻辑模型,通常用数据流图、实体联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。

(4)修正系统开发计划

根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。

三:与用户沟通获取需求的方法(了解)

(1)访谈

A:基本形式

正式会谈:系统分析员将提出一-些事先准备好的具体问题。

非正式会谈:分析员将提出一些用户可以自由回答的开放性问题,鼓励被访问人员说出自己的想法

B:技术方法

调查表技术:当需要调查大量人员的意见时,向被调查人分发调查表是-一个十分有效的做法。经过仔细考虑写出的书面回答可能比被访者对问题的口头回答更准确。分析员仔细阅读收回的调查表,然后再有针对性地访问一些用户,以便向他们询问在分析调查表时发现的新问题

情景分析技术:是对用户将来使用目标系统解决某个具体问题的方法和结果进行分析。系统分析员利用情景分析技术,往往能够获知用户的具体需求。

(2)面向数据流自顶向下求精

结构化分析方法是面向数据流自顶向下逐步求精进行需求分析的方法。通过可行性研究已经得出了目标系统的高层数据流图,需求分析的目标之一就是把数据流和数据存储定义到元素级

(3)简易的应用规格说明技术

A:定义

简易的应用规格说明技术是一种面向团队的需求收集法。这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案要素,商讨不同方案并指定基本需求。是信息系统领域使用的主流技术

B:应用过程

  • 进行初步的访谈并确定会议方案
  • 进行会议准备
  • 开会讨论
  • 会后总结并起草规格说明书

(4)快速建立软件原型

A:定义

快速原型是快速建立起来的旨在演示目标系统主要功能的可运行的程序。构建原型的要点是,它应该实现用户看得见的功能,省略目标系统的“隐含”功能。快速建立软件原型是最准确、最有效、最强大的的需求分析技术

B:特性

  • 快速
  • 容易修改

四:分析建模与规格说明(了解)

(1)模型

是指为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述

(2)模型分类

  • 数据模型(实体-联系图):描绘数据对象及数据对象之间的关系
  • 功能模型(数据流图):描绘数据在系统中流动时被处理的逻辑过程,指明系统具有的变换数据的功能
  • 行为模型(状态转换图):描绘系统的各种行为模式在不同状态间转换的方式
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐