在需求分析中,建立软件分析模型,可以帮助达成开发者和用户对需求信息的共同理解,有了共同理解,就可以创造软件系统解决方案。

     “模型是对事物的抽象,帮助人们在创造一个事物之前可以有更好的理解”。建立软件模型可以降低应用的复杂性、更深刻的理解信息、帮助人们更好的记忆细节、更好的与其他开发人员进行交流、更好地与用户以及其他涉众进行交流、为以后的维护和升级提供文档。

  计算机世界是基于计算机科学建立的,具有形式化的特征。计算机模型对信息描述具有明确化、准确化和确定花的特征,但在需求工程阶段,软件系统需要解决的问题,缺乏和软件实现相关的技术细节是考虑的重点,因此,需求分析阶段还无法建立一个形式化的计算模型。业务模型既可以抽取出需求信息最重要和最本质的内容,又可以达成用户和开发者的共同理解,但是问题世界的非形式化特征却使得它同样也不适合于需求建模。分析模型以对象、类、函数、过程、属性等作为模型的基本元素。分析模型在组元的表现上采用了业务模型的表现方式,使用业务概念、业务联系和问题与语言来表现组元的语义,这样的分析模型利于被用户和开发者同时理解。

     模型可以表现为抽象知识体、视图、模型语言等,复杂的应用应该从多个视角分别进行建模,需要多种技术相互配合使用。需求分析技术多种多样,要把握每种技术的内涵,不仅需要广泛的阅读,还要进行很多的实践。

     在对需求分析技术的综述和分类上,[Wieringa1998]和[Zachman1987,Sowa1992]的框架值得借鉴,[Wieringa1998]将需求分析技术分为外部功能、外部通信、外部行为、概念元组、元组功能、元组通信、元组行为。Zachman框架分为6行和6列的矩阵,行为目标/范围(规划者视图)、企业模型(所有者视图)、系统模型(设计师视图)、技术模型(构建者视图)、组件模型(集成者视图)、实际运行的系统,列为数据、功能、位置、人、时间、动机。

      传统分析方法根本没有什么方法论,需求工作人员根据自己的个人习惯等进行建模和分析工作,使得结果存在着冗长、混乱、偏颇、无结构等问题。结构化分析方法是在形式化技术奠定计算机科学学科知识后,人们为寻找解决传统分析方法下的问题形成的,他通过数据流图、实体联系图、状态转移图等等对系统建模。随着人们对数据日益重视以及数据库管理系统的兴起,信息工程出现了,它与结构化方法不同之处在于,结构化主张功能入手,信息工程主张数据入手。面向对象分析方法受到了结构化分析方法的很多影响。