《需求工程——软件建模与分析》阅读笔记之三

      终于看完本书的最后一部分,主要内容是需求分析,需求获取得到的信息和需求开发应该建立的软件系统解决方案之间有着很大的差距。需求分析就是用来解决这个差距的需求工程活动。需求分析的根本任务是获取用户的理解和问题的描述,通过需求分析建立分析模型,创建解决方案,从而决定需求开发目标。

      一开始我们知道了需求分析的根本任务是:(1)建立分析模型,达成开发者和用户对需求信息的共同理解;(2)依据共同的理解,发挥创造性,创建软件系统解决方案。书中并针对这两个根本任务进行了具体的解释,建立模型可以帮助我们以精确一致的方式描述系统,使得系统的使用更容易。在创建解决方案时,要结合外因和内因综合考虑,要有创造性。常用的需求分析技术:上下文图、数据流图、实体联系图、功能实体矩阵、功能分解图、过程依赖图、用例图、类图、交互图、活动图、对象约束语言、微规格说明、数据字典、状态图等。书中详细介绍了几种常用的需求分析技术,在课堂上老师也针对性的进行了练习,通过需求分析技术,可以很好地完成需求的建模与分析,也可以画清楚系统的边界,可以在软件开发中减少很多麻烦。需求分析方法:传统分析、结构化分析、信息工程、面向对象分析。结构化、信息工程和面向对象三种方法学下的需求分析技术都是面向解系统的。结构化、信息工程和面向对象三种方法下的需求分析技术都适合于后期需求阶段的分析任务。需求分析的子活动有:1.问题分析;2.确定系统边界;3.需求建模;4.需求细化;5.确定需求优先级;6.需求协商。

     需求分析并不是想象中那么简单,在需求过程中需要注意的细节还有好多,每一个过程都需要认真的进行记录、整理和分析,而且需要研究者和实践者不断发现和提出新的需求分析技术与方法。

     常见的需求分析技术有上下文图、数据流图、实体联系图、功能实体矩阵、功能分解图、过程依赖图、用例图、类图、交互图、活动图、对方约束语言、微规格说明、数据字典、状态转换图等。

     我们已经学过上下文图了。它的主要作用是描述系统与环境中外部实体之间的界限和联系。他从现实世界的角度说明了系统的边界和环境,并确定了所有的输入和输出。数据流图也是经常用到,它从数据传递和加工的角度,描述了系统从输入到输出的功能处理过程。运用功能分解的方法,用层次结构简化处理复杂的问题。像用例图、类图、交互图等,在以前学习UML时学过,不过很少使用。他们的功能不再详述。

      过程建模会将复杂的过程分解为一些子过程,这些子过程的功能是父过程功能的子集。通过将复杂的过程分解,可以更好地理解。易于理解和易于计算机化。而数据建模技术能够弥补过程建模在数据说明方面的缺陷,它描述数据的定义,结构和关系等特性。数据建模最常用的方法是实体联系图。面向对象建模师面向对象方法学在需求分析中的应用。

     

传统的分析方法是毫无章法的,虽然传统分析也能取得一定的成功,但是它的工作过程缺乏结构、不可重复、不可测量和主观臆断。传统分析产生的分析结果往往会出现很多问题。在传统分析方法之后,人们想办法尝试使用相对形式化的模型来建立标准化的方法,形成了结构化分析方法。

  结构化分析方法把现实世界描绘为数据在信息系统中的流动,以及在数据流动过程中数据向信息转换。他帮助开发人员定义系统需要做什么(处理需求),系统需要存储和使用哪些数据(数据需求),需要什么样的输入和输出,以及如何把这些功能结合在一起来完成任务。

  对结构化分析方法改进之后产生了信息工程方法,它采用了结构化方法的各种技术,并根据信息系统开发的特点进行更为严格、全面的改进,关注策略规划、数据建模和自动化工具。信息工程主要从信息角度来开发系统,而不像结构化方法那样从功能角度考虑问题。客观世界被描述为数据和数据属性及其相互关系。信息工程方法的局限性在于它是为信息系统的开发而制定的,所以应用范围是有限制的。

     需求分析就是用来解决需求获取得到的信息和需求开发应该建立的软件系统解决方案之间有着很大的差距的需求工程活动。需求分析在需求工程中占据着重要的位置。在需求分析的过程中,需要我们不断地整理、分析,注重每一个细节,确定好系统的边界。建立好模型,如果遇到新的问题,要及时整理解决记录。综合运用需求分析技术。对每一种技术不仅需要广泛阅读,而且需要进行很多的实践。没有哪种需求分析技术能够单独完成对复杂问题的建模任务,只有通过多种需求分析技术的有机结合与集成才能充分的描述复杂的应用。书中对需求分析技术的具体介绍,更加突出了需求分析的重要性,也让我们学习了需求分析技术的具体应用,在以后软件开发需求中,不能再想当然的认为如何如何了。需求分析是既复杂又重要的过程,其中的每一个活动都应该认真对待,也要学会对症下药,这样才会使过程更加简单,易于理解和易于计算机化。

     看完这本书,突然有些怅然若失,我还是需要下一本书来充实自己。

你可能感兴趣的:(《需求工程——软件建模与分析》阅读笔记之三)