如何做好软件开发过程式中的软件需求分析

时间:2022-08-26 05:14:41

如何做好软件开发过程式中的软件需求分析

软件开发工作是IT行业中的重头戏,软件需求分析是软件开发的出发点,为有效的需求管理提供了必要的前提,为设计起到指导性作用,同时还有助于预测销售和收益,所以软件需求分析在软件开发过程中起着非常重要的作用。

一、需求分析的要求

需求分析必须能够表达和理解问题的数据域和功能域。数据域应包括数据流、数据内容和数据结构。数据流式数据通过系统时的变化方式,对数据进行转换就是程序的功能或子功能,两个转换之间的数据传递确定了功能间的接口;数据内容就是数据元素,数据元素由多个数据项组成,如在学校的学生管理信息系统中,“学生”字段有多个数据项,包括学号、姓名、性别、出生日期、成绩等。数据结构是带一种或多种关系的数据元素的集合。

需求分析必须按自顶向下、逐层分解的方式对问题进行分解和不断细化。软件的功能域和信息域都能做进一步的分解,可以是同一层次上的横向分解,也可以是多层次上的纵向分解。

需求分析给出系统的逻辑模型和物理模型。逻辑模型给出软件要达到的功能和要处理的数据之间的关系;物理模型给出处理功能和数据结构的实际表示形式。

二、需求调研

在做需求时,分析人员和客户必须达到和谐的交流,融洽的沟通。通常采用以下几种调研方法:

1.会谈、询问:围绕软件目标提出具体问题;

2.发放调查表;

3.收集分析客户使用的各种表格、有关工作责任、工作流程、工作规范、相关数据标准、业务标准的各种文字资料;

4.收集同类相关产品的宣传资料、技术资料、演示程序或软件程序;

5.情景分析:利用情景分析诱导用户能够把需求告知分析员;

6.可视化方法:结合情景分析,利用画用户界面图、业务流程图、功能结构图、时序图等图形与客户进行讨论。

一般分为规划阶段和业务领域分析阶段:

在规划阶段,第一步要构建高层次的企业模型,包括:调查组织结构、建立组织关系层次图;调查企业的任务、目标、战略重点和关键成功因素并予以分类;识别每个目标和关键成功因素所需的信息;给出每个目标完成的度量标准;分析信息技术对企业业务的潜在影响;建立高层次企业模型;与企业中高层管理人员讨论,对所得信息和分析进行补充和确认。第二步对功能进行分解,具体是输出功能层次图、功能关系图、功能/组织矩阵;第三步进行实体分析,主要是输出高层实体关系图、实体类/信息需求矩阵、业务功能/实体类矩阵。第四步评估企业当前环境。第五步识别和确定预期的数据存储和业务系统,建立业务系统的结构图,确定和记录业务领域。

在业务领域分析阶段,第一步确定业务范围、建立组织、制订计划;第二步进行数据分析、建立详细的数据模型,即详细的实体关系图;第三步业务活动分析,包括分析业务过程细节、分解业务过程、分析过程间的依赖关系、分析业务交互作用、建立业务活动模型;第四步现有系统分析,具体指操作程序分解表、数据流图、用户感兴趣的字段集;第五步业务领域模型的确认,包括完整性、正确性、长效性。

在做需求时不仅要求分析人员要有很强的沟通能力、语言表达能力,还要有相应的调研策略。首先确定用户的软件开发目标,确定系统基本范围,然后围绕这一目标,确定要访问的部门和人员,要了解的业务,以业务为主线,搞清每个业务的每个环节的流程关系、涉及部门、输入输出项;以数据为主线,搞清数据采集方式、数据流向、数据之间的内在联系;搞清哪些业务或数据是已建系统的,它们和新系统的关系是衔接还是替换;应思考是否有新技术可以改进现有工作,用户提出的需求用现有技术能否实现。

三、需求分析过程

取得了需求之后,要对需求进行分析,分析过程是:

第一,问题识别。

解决目标系统做什么,做到什么程度。需求包括:功能、性能、环境、可靠性、安全性、保密性、用户界面、资源使用、成本、进度。同时建立需求调查分析所需的通信途径。

第二,分析与综合。

从数据流和数据结构出发,逐步细化所有的软件功能,找出各元素之间的联系、接口特性和设计上的限制,分析它们是否满足功能要求并剔除不合理部分,综合成系统解决方案,给出目标系统的详细逻辑模型。

常用的分析方法有面向数据流的结构化分析方法SA、描绘系统数据关系的实体关系图E-R图、面向数据结构的Jackson方法JSD、面向对象分析的方法OOA(主要用UML)。对于有动态时序问题的软件可以用形式化技术,包括有穷状态机FSM的状态迁移(转换)图STD、时序图、Petfi网。

上述每―种分析建模方法都有其优势和局限性,可以兼而有之。以不同角度分析,应该避免陷入在软件需求方法和模型中发生教条的思维模式和派系斗争。一般来说结构化方法用于中小规模软件、面向对象方法用于大型软件。

结构化方法分析步骤是:画出数据流图;设计数据流图必须逐步求精;决定哪些部分需要计算机化和怎样计算机化;描述数据流细节,大型软件可以使用数据字典描述所有数据元素;定义处理逻辑;定义数据存储,即定义每个存储的确切内容及其表示法;定义物理资源;确定输入输出规格说明;确定硬件所需有关数值;确定软硬件接口和环境需求。

UML方法分析步骤是:调研、识别系统需求;分析问题领域:确定系统范围和系统边界、确定系统的约束、定义活动者、确定系统的综合要求、确定系统的数据要求、建立USE CASE模型并绘制、绘制主要交互图等;建立静态结构模型:对象类图、数据库模型、包图;建立动态行为模型:顺序图、协同图、状态图、活动图;建立系统物理模型:组件图、配置图;

第三,编制需求分析文档。

需求分析文档便于用户、分析人员和设计人员进行理解和交流。用户通过它可在分析阶段即可初步判定目标软件能否满足其原来的期望,设计人员将它作为设计的出发点。

第四,需求评审。

在将需求分析文档提交给设计之前,必须进行需求评审。一般以用户、分析人员和设计人员共同参与的会议形式进行,包括以下评审标准:正确性、无歧异性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性。

四、需求管理

需求分析过程是一个由粗到细、渐进明晰、持续完善的过程。在指导后面系统设计和编码阶段时都应当不断完善修改需求文档,因此需求管理非常重要。

需求管理包括在工程进展过程中维持需求约定集成型和精确性的所有活动,它是CMM模型二级中的首要KPA(关键过程域)。这些活动包括:定义需求基线(需求文档的主体);评审提出的需求变更申请、评估每项变更可能的影响,从而决定是否实施变更;以一种可控的方式将需求变更融入到项目中;使当前的项目计划与需求保持一致;分析变更所产生的影响并在此基础上协商出新的约定;使每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪;在整个项目过程中跟踪需求状态及其变更情况。

五、总结

只有需求分析做好了,才对下一步的设计阶段工作真正起到指导性作用,只有对需求管理好了,才能增强软件的维护性等。

(作者单位:临沂师范学院信息学院)

上一篇:增强心理健康教育课实效性问题探析 下一篇:远程教学系统的设计与开发