需求工程——软件建模与分析
——阅读笔记第三篇
需求分析
需求获取得到的信息和需求开发应该建立的软件系统解决方案之间有着很大的差距。需求分析就是用来解决这个差距的需求工程活动。需求分析的根本任务是:
1) 建立分析模型,达成开发者和用户对需求信息的共同理解;
2) 依据共同的理解,发挥创造性,创建软件系统解决方案;
我们可以用抽象和分解两种常见的建模手段建立分析模型。
在现在的软件应用越来越复杂的时候,研究者提出要建立面对问题的建模技术。理想的情况是分析人员利用面向问题的建模技术描述问题世界,然后再将其转换为计算世界的描述(即面向解系统的建模技术),这样,使用面向问题的技术对问题世界的建模就被称为前期需求阶段的分析,使用面向接系统的技术对软件系统解决方案的描述就被称为后期需求阶段的分析。前期需求阶段分析的重点是理解问题世界,后期需求阶段分析关注的是解系统解决方案的建立。
过程建模是结构化分析方法的典型技术。过程建模就是分析需求获取活动获取的信息,发现系统的功能和其与外界的交互,建立能够实现系统功能的过程分解结构,形成系统的过程模型,并用图形的方式将过程模型描述出来。同时,过程模型也需要定义系统中涉及的数据的结构。过程建模需要的主要技术有:上下文图、数据流图、微规格说明(又成为过程规范)和数据字典。
数据建模。数据建模技术能够弥补过程建模在数据说明方面的缺陷,它描述数据的定义、结构和关系等特性。数据建模建立的模型成为数据模型,是问题域和解系统共享的知识集合,通常能够反映企业业务的核心知识。数据模型说明了问题域和解系统共享的事物、对共享事物的描述和共享事物之间的关系。
面向对象建模(UML)。面向对象建模是面向对象方法学在需求分析中的应用,所以也成为面向对象分析。它采用面向对象学的世界观,将系统看作是一系列对象的集合。每个对象具有独立的职责,完成独立的任务,对象之间通过消息几只相互协作,共同实现系统的目标。
需求的文档化和验证
需求规格说明。需求规格说明活动就是将需求及软件解决方案进行定义和文档化,并传递为开发人员的需求工程活动。优秀需求规格说明文档的特征:正确性、无歧义、完备性、一致性、根据重要性和稳定性分级、可验证、可修改和可跟踪。
需求验证。对系统的验证与确定和对需求的验证与确认的区分和详细定义:
① 需求验证是确保需求的形式也是正确的。
② 需求确认。证实每一条需求都是符合用户原意的。也就是说它的目的是确保需求的内容是正确。
③ 系统验证。正确地建立系统,确保系统能够在预期的环境中正确地执行设定的功能。
④ 系统确认。建立的系统是正确的。确保建立的系统是符合系统需求和系统设计的。
需求管理与工程管理
需求管理。在需求开发结束之后,还需要有一种力量保证后续的系统开发活动依照需求的基线进行展开,从而保障系统的质量(质量就是对需求的依从性)。需求管理就是这样一个管理活动,它在需求开发之后的产品生命周期中保证需求作用的有效发挥。
需求工程的过程管理。需求工程还没有完全建立学科化和系统化的知识体系,能够直接给予明确和定义下来的只是一个高层的过程结构,它只是描述了过程需要完成的工作、工作的划分以及工作的开展的安排。过程的工作细节还是由很多独立的需求工程时间方法联结起来予以实现的。所以建立需求工程过程包括连个步骤:
- 建立过程框架,建立需求工程过程的高层结构,说明过程中应该包括哪些工作不封已经怎样建立他们之间的协作和联系。
- 选择工作组建,为过程框架下的每一个过程工作部分选择实现的实践方法,明确需要的工具支持和资源(成本和人力)支持。
需求过程中的项目管理。软件项目的目的就是保证所有重要的工作都能得到应有的管制,都能顺利有序的完成,以最终产生高质量的软件产品。为此,项目需要建立计划,并追踪、监督和保证计划的正确执行。计划的重要内容包括:项目需要的资源(人力、金钱、工具、时间等)、项目中需要执行的活动(生命周期模型和过程模型)以及项目中需要产生的交付物件(各种必要的中间物件和最终产品)。围绕着项目计划而执行的各种项目活动就是项目管理。