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