1、软件需求可以分为不同的层次:业务需求、用户需求以及功能需求和非功能需求;
业务需求说明了提供给客户和产品开发商的新系统的最初利益,反映了组织或客户对系统高层次的目标要求,它们在项目视图与范围文档中予以说明
。项目视图和范围文档应该包括高层的产品业务目标,所有的使用实例和功能需求都必须能达到业务需求的需要。
范围是作为评估需求或潜在特性的参考。
用户需求是从用户角度描述的系统功能需求和非功能需求,通常只涉及系统的外部行为,而不涉及系统的内部特性。
用户需求描述的原则是:应该易于用户的理解,一般不采用技术性很强的语言,而是采用自然语言和直观图形相结合的方式进行描述
。
功能需求描述系统所预期提供的功能或服务。
非功能需求是指那些不直接与系统具体工作相关的一类需求。
2、需求管理
需求管理的任务是:管理软件系统的需求规格说明,评估需求变更带来的影响及成本费用,跟踪软件需求的状态,管理需求规格说明的版本等。
3、需求分析
需求分析的难点:
(1)问题的复杂性。这是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等。
(2)交流障碍。需求分析涉及人员较多,如软件系统用户、问题领域专家、需求工程师和项目管理员等,这些人具备不同的背景知识,处于不同的角度,扮演不同角色,造成了相互之间交流的困难。
(3)不完备性和不一致性。由于各种原因,用户对问题的陈述往往不是完备的,其各方面的需求还可能存在着矛盾,需求分析要消除其矛盾,形成完备及一致的定义。
(4)需求易变性。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。
需求分析的原则
:
(1)能够表达和理解问题的数据域和功能域。
(2)能够将复杂问题分解简化。
(3)能够给出系统的逻辑表示和物理表示。
需求分析的任务是准确地回答“系统必须做什么?”这个问题。
4、需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是
功能需求
。
5、需求分析是指开发人员要准确理解
用户的要求
,进行细致的
调查分析
,将用户非形式的需求陈述转化为完整的
需求定义
,再由
需求定义
转换到相应的形式功能规约(需求规格说明)的过程。
6、需求分析阶段必须明确系统中应具备的每一个加工、加工的处理对象和由加工所引起的
数据形式的变化
。
7、系统需求的逻辑表示用于指明系统所要达到的
功能要求
和需要处理的数据,不涉及实现的细节。系统需求的物理表示用于指明
处理功能
和数据结构的实际表现形式,通常由系统中的设备决定。
8、分析系统的数据要求通常采用建立
概念模型
的方法。
9、需求分析是
软件开发工作的开始
。
10、原型化方法主要用于解决什么问题?
建立原型主要解决在产品开发的早期阶段需求不明确的问题,用户、经理和其它非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。
11、需求工程过程包括哪些部分?简述每部分内容。
软件需求工程是一门应用有效的技术和方法、合适的工具和符号,来确定、管理和描述目标系统及其外部行为特征的学科。需求工程过程包括需求的获取、需求分析、需求定义、需求验证和需求管理。这些基本活动的主要任务如下:
(1)需求获取:确定和收集与待开发的软件系统相关的用户需求信息。
(2)需求分析:对获得的用户需求信息进行分析和综合,找出错误和冲突及遗漏的地方,获得用户的准确需求,进而建立软件系统的逻辑模型或需求模型。
(3)需求定义:利用描述语言、标准格式书写软件系统的需求规格说明。
(4)需求验证:审查和验证软件系统需求规格说明,进而确定需求规格说明是否正确描述了用户对软件系统的需求。
(5)需求管理:需求管理的任务是管理软件系统的需求规格说明,评估需求变更带来的影响及成本费用,跟踪软件需求的状态,管理需求规格说明的版本等。
12、需求阶段编写文档也包含编写确认测试计划,作为今后确认和验收的依据。