第二部分:需求获取
在阅读了第二部分之后我了解了在需求获取的过程中可能存在由于开发人员理解不清楚或者普通用户不能准确的表述自己需求的问题,导致需求获取的困难,在这个过程中因为用户带来的问题就要对开发者有明确的业务领域和解决方案的区分并且了解用户的深层目的。在阅读时我也了解到为了避免缺乏用户参与的问题,在需求获取时就要求能够对系统的用户的代替源等涉众进行分析。在需求获取的过程中的步骤为确定待获取信息的内容(需求、问题域描述、环境与约束)、确定待获取信息的来源(涉众、硬数据、相关产品、重要文档、相关技术标准、相关技术标准和法规)、确定应采用的获取方法(传统方法、集体获取方法、原型、模型驱动方法、认知方法、基于上下文方法)、执行获取、记录结果。实践中的需求获取活动主要要关注项目目标、项目范围、用户参与、交流问题、获取方法的使用。
项目的目标是业务需求。在确定项目的前景及发展时首先要明确问题、发现业务需求、定义解决方案及系统特性。系统边界通常是进行需求分析的起点,无论是结构化分析还是面向对象分析,都要从系统的边界图开始,逐一分析和细化系统与外界的交互,来保证最终产品的行为能够和环境形成互动。业务需求、高层次解决方案、系统特性都应该被定义在项目前景与范围文件之中。在软件系统当中涉众的类别有用户、客户、开发者、管理者、领域专家、政府力量、市场力量。而涉众分析就是为软件系统寻找并理解关键涉众的过程。然而在我们获取需求时肯定会有用到面谈的方式,通过面谈我们可以获取的内容有:事实和方法、被会见者的观点、被会见者的感受、组织和个人目标。需求获取的常见模型驱动方法有面向目标的方法、基于场景的方法、基于用例的方法。
第三部分:需求分析
通过阅读可以了解需求获取得到的信息和需求开发应该建立的软件系统解决方案之间有很大的差别。需求分析的根本任务是:建立分析模型,达成开发者和用户对需求信息的共同理解;依据共同的理解,发挥创造性,创建软件系统解决方案。为了更好的解决需求分析技术的综合运用,可以从“需求分析方法”、“技术的发展历程”、“技术的应用特征”等方面对需求分析技术的特点和联系进行深入的分析。需求分析阶段的重要活动的子系统有:问题分析、确定系统边界、需求建模、需求细化、确定需求优先级、需求协商。
过程建模就是分析需求获取活动获得的信息,建立能够实现系统功能的过程分解结构,形成系统的过程模型,并形成图形的方式将过程模型描述出来。过程建模使用的主要技术有:上下文图、数据流图、微规格说明和数据字典。其中过程是对数据的处理,必须有输入和输出,而且输入数据集和输出数据集应该存在差异;数据流是必须和过程产生关联的。DFD定义了三个层次类别的DFD图:上下文图、0层图、N层图。通常有“概念数据模型”、“物理数据模型”、“逻辑数据模型”等常见的数据模型表现。实体并不是孤立存在的,他们之间互相交互、互相影响,共同支持业务任务的完场。关系就是存在一个或多个之间的自然业务联系,在数据模型建立中必须确定各个实体之间的关系。
面向对象建模是面向对象方法学在需求分析中的应用,在需求分析中涉及的UML技术有“对象模型”、“用例模型”、“行为模型”、“状态机模型”、“对象约束语言OCL”。系统中的对象是不孤立存在的,它们需要互相协作完成任务,对象之间这种相互协作的关系称为链接。类与类之间的关系有关联、继承、泛化等。用例模型的基本元素有四种:用例、参与者、关系和系统边界。