浅谈软件开发需求分析阶段的主要任务_上传
- 格式:doc
- 大小:28.50 KB
- 文档页数:3
选择题:
在软件开发过程中,需求分析阶段的主要任务是?
A. 确定软件开发方法
B. 编写软件设计文档
C. 确定软件系统的功能需求(正确答案)
D. 进行软件系统的测试
下列哪种软件开发模型适用于需求明确且较少变更的项目?
A. 螺旋模型
B. 喷泉模型
C. 瀑布模型(正确答案)
D. 敏捷开发模型
在软件测试中,黑盒测试主要关注软件的哪个方面?
A. 内部结构
B. 功能实现(正确答案)
C. 代码质量
D. 性能表现
下列哪项不是软件质量保证(SQA)的主要活动?
A. 软件质量规划
B. 软件质量控制
C. 软件质量改进
D. 软件需求开发(正确答案)
在软件配置管理中,版本控制的主要目的是?
A. 确保软件版本的一致性(正确答案)
B. 提高软件开发效率
C. 减少软件缺陷
D. 优化软件性能
下列哪种工具通常用于软件项目的进度管理和团队协作?
A. 版本控制系统
B. 项目管理软件(正确答案)
C. 自动化测试工具
D. 代码编辑器
在软件开发过程中,代码审查的主要目的是?
A. 提高代码的可读性
B. 找出代码中的错误和缺陷(正确答案)
C. 优化代码的执行效率
D. 确保代码的编写风格一致
下列哪项不是软件维护的类型?
A. 改正性维护
B. 适应性维护
C. 预防性维护
D. 创新性开发(正确答案)
在软件项目管理中,风险管理的主要目标是?
A. 消除所有软件风险
B. 识别、评估和控制软件风险(正确答案)
C. 提高软件开发速度
D. 降低软件开发成本。
软件开发考试题目及答案一、选择题(每题2分,共20分)1. 在软件开发过程中,需求分析阶段的主要任务是什么?A. 确定软件的最终用户界面B. 确定软件的功能需求和性能需求C. 编写软件的详细设计文档D. 开始编写代码答案:B2. 面向对象编程中的“封装”指的是什么?A. 将数据和操作数据的方法组合在一起B. 将不同的数据类型组合在一起C. 将数据和控制数据的方法组合在一起D. 将不同的方法组合在一起答案:A3. 在敏捷软件开发中,以下哪个不是敏捷宣言的四个价值观之一?A. 个体和交互B. 可工作的软件C. 详尽的文档D. 响应变化答案:C4. 在软件测试中,黑盒测试和白盒测试的区别是什么?A. 黑盒测试关注软件的内部结构,白盒测试关注软件的功能B. 黑盒测试关注软件的功能,白盒测试关注软件的内部结构C. 两者都关注软件的功能D. 两者都关注软件的内部结构答案:B5. 软件项目管理的主要目标是什么?A. 确保软件按时发布B. 确保软件在预算内完成C. 确保软件满足所有需求D. 所有以上选项答案:D二、简答题(每题10分,共30分)1. 请简述软件开发生命周期(SDLC)的主要阶段。
答案:软件开发生命周期(SDLC)的主要阶段包括:需求收集、需求分析、系统设计、编码、测试、部署、维护和退役。
2. 解释什么是软件重构,并给出一个重构的例子。
答案:软件重构是指在不改变软件外部行为的前提下,对软件的内部结构进行调整以提高其可读性、可维护性和性能。
一个常见的重构例子是将一个过长的函数拆分成几个更小的、功能单一的函数。
3. 描述单元测试和集成测试的区别。
答案:单元测试是针对软件中的最小可测试部分(通常是单个函数或模块)进行的测试,以确保它们按预期工作。
集成测试则是在多个模块或组件已经单独测试后,将它们组合在一起进行测试,以确保它们能够协同工作。
三、应用题(每题25分,共50分)1. 假设你是一个软件开发团队的负责人,你的团队正在开发一个电子商务平台。
软件开发生命周期:从需求分析到发布部署的整个过程软件开发生命周期是指从需求分析开始,经过设计、编码、测试和部署等一系列过程,最终将软件发布到最终用户手中的全过程。
本文将详细介绍软件开发生命周期的各个阶段和关键任务。
1.需求分析阶段需求分析是软件开发的第一步,也是最关键的一步。
在这个阶段,开发团队与客户沟通,详细了解客户的需求和期望。
通过讨论、会议和原型设计,收集和梳理需求,并制定详细的需求文档。
2.设计阶段在需求分析的基础上,开发团队进行系统设计,确定软件的整体结构和功能模块划分。
包括系统架构设计、数据库设计、界面设计等。
设计阶段的任务是为了满足需求文档中描述的需求,并确保系统的可扩展性和可维护性。
3.编码阶段在设计完成后,开发团队按照设计文档开始编写代码。
编码阶段是开发团队最耗时的阶段,需要开发人员不断调试和优化代码,保证代码的质量和性能。
4.测试阶段在编码完成后,开发团队进行系统测试。
测试分为单元测试、集成测试和系统测试。
单元测试是针对单个代码模块进行的测试,集成测试是验证模块之间的交互是否正常,系统测试是整个系统的功能和性能测试。
测试的目的是发现和修复软件中存在的错误,确保软件的质量。
5.部署阶段在测试通过后,开发团队将系统部署到服务器或用户的计算机上。
这个阶段需要确保软件的运行环境和依赖环境已经准备好,并进行必要的配置和安装。
部署阶段还包括用户培训和用户文档的编写。
6.维护阶段软件发布后,开发团队还需要持续对软件进行维护和更新。
维护包括错误修复、性能优化和功能扩展等。
开发团队需要与用户保持沟通,收集用户反馈和需求,不断改进和完善软件。
软件开发生命周期是一个循环过程,每个阶段都不可或缺。
需求分析和设计决定软件的基础架构和功能,编码和测试保证软件的质量,部署和维护确保软件的正常运行和持续改进。
只有严格执行软件开发生命周期,才能保证软件开发的顺利进行和最终的成功发布。
软件开发生命周期从需求分析到发布的流程解析在软件开发中,软件开发生命周期是指从项目开始到软件发布的整个过程。
这个过程涵盖了需求分析、设计、编码、测试、部署及维护等一系列环节。
本文将对软件开发生命周期的各个阶段进行详细解析。
一、需求分析阶段需求分析是软件开发生命周期中的首要阶段。
在此阶段,开发团队与客户密切合作,通过讨论、面谈等方式明确收集并细化客户的需求。
这一阶段的目标是确定软件系统的功能、性能、接口要求以及各种约束条件。
需求分析阶段通常包括以下步骤:1. 需求收集:开发团队与客户进行沟通,理解客户的需求,并建立起正式的需求文档。
2. 需求分析:对收集到的需求进行分析,确定系统的功能和性能要求,并进行优先级划分。
3. 需求规格说明书:将需求分析的结果整理成规格说明书,明确软件系统的各项要求和约束条件。
二、设计阶段设计阶段是在需求分析阶段之后进行的。
在这个阶段,开发团队将依据需求分析的结果,设计出满足需求的软件架构。
设计阶段的目标是确保软件系统的可用性、可扩展性、可维护性等。
设计阶段通常包括以下步骤:1. 概要设计:定义软件系统的整体结构、模块划分,以及各个模块之间的关系。
2. 详细设计:对每个模块进行详细设计,包括数据结构设计、算法设计、接口设计等。
3. 架构设计:确定软件系统的框架和技术选型,保证系统的稳定性和易用性。
三、编码阶段编码阶段是将设计阶段得出的设计方案转化为具体的程序代码的过程。
在这个阶段,开发团队按照设计要求,编写出实现功能的程序代码。
编码阶段通常包括以下步骤:1. 选择编程语言和开发工具:根据项目的需求和技术特点,选择最适合的编程语言和开发工具。
2. 编码实现:根据详细设计的要求,使用所选的编程语言进行代码编写。
3. 单元测试:对编写的代码进行单元测试,以验证其正确性和可靠性。
四、测试阶段测试阶段是对开发完成的软件进行全面、系统的测试,以验证其功能和质量。
测试阶段的目标是发现和修复软件中的错误和缺陷,以确保软件的稳定性和可靠性。
软考中级试题及答案一、单项选择题(每题1分,共10分)1. 在软件开发过程中,需求分析阶段的主要任务是()。
A. 确定软件的功能需求B. 编写软件的详细设计文档C. 编写软件的测试用例D. 进行软件的编码实现答案:A2. 面向对象编程中,封装、继承和多态是其核心概念,其中封装的主要目的是()。
A. 提高代码的复用性B. 提高代码的可读性C. 隐藏对象的内部实现细节D. 增强代码的健壮性答案:C3. 下列关于数据库系统的描述,错误的是()。
A. 数据库系统可以减少数据冗余B. 数据库系统可以提高数据的一致性C. 数据库系统可以提高数据的安全性D. 数据库系统可以随意修改数据结构答案:D4. 在网络通信中,TCP/IP协议栈中负责传输层的是()。
A. 应用层B. 传输层C. 网络层D. 链路层答案:B5. 在操作系统中,进程调度算法的主要目标是()。
A. 提高CPU利用率B. 提高用户满意度C. 提高内存利用率D. 提高磁盘I/O性能答案:A6. 在软件开发中,敏捷开发方法强调的是()。
A. 严格的文档管理B. 快速迭代和持续交付C. 严格的项目计划D. 单一的团队结构答案:B7. 在软件测试中,黑盒测试和白盒测试的主要区别在于()。
A. 测试人员是否了解程序内部结构B. 测试的覆盖率C. 测试的复杂度D. 测试的时间答案:A8. 软件工程中,软件维护不包括()。
A. 纠错性维护B. 适应性维护C. 完善性维护D. 软件的重新开发答案:D9. 在项目管理中,甘特图主要用于()。
A. 资源分配B. 风险分析C. 进度控制D. 成本估算答案:C10. 在软件开发过程中,软件配置管理的主要目的是()。
A. 确保软件质量B. 确保软件的一致性C. 确保软件的安全性D. 确保软件的可用性答案:B二、多项选择题(每题2分,共10分)1. 以下哪些是软件测试的目的()。
A. 发现软件缺陷B. 验证软件功能C. 评估软件性能D. 减少软件成本答案:ABC2. 在软件开发过程中,以下哪些是软件需求分析阶段的输出()。
软件开发生命周期从需求分析到发布上线的过程软件开发是一个复杂而迭代的过程,涉及从需求分析到最终发布上线的多个阶段。
本文将介绍软件开发的生命周期,并详细探讨每个阶段的目标和关键步骤。
一、需求分析阶段在软件开发的初期阶段,需求分析是一个至关重要的步骤。
它的目标是理解客户的需求和期望,明确软件系统的功能和性能要求。
需求分析阶段主要包括以下几个步骤:1.1 需求收集:开发团队与客户进行沟通和交流,收集和整理客户的需求。
这可以通过面对面的会议、问卷调查、访谈等方式完成。
1.2 需求分析和规格说明书编写:将收集到的需求进行分析和整理,编写需求规格说明书,明确软件系统的功能、性能和约束条件。
1.3 需求验证:与客户核对需求规格说明书,确保准确地理解了客户的需求,并征得客户的确认和同意。
二、设计阶段设计阶段是将需求转化为实际软件系统的蓝图,并确定系统的架构和组件之间的关系。
设计阶段的目标是建立一个满足需求规格说明书的系统设计。
设计阶段包括以下几个关键步骤:2.1 系统架构设计:确定软件系统的整体架构和模块划分,做出关键设计决策。
2.2 详细设计:对每个模块进行详细设计,定义模块的接口和实现细节。
2.3 验证设计:验证设计的正确性和可行性,与需求规格说明书进行比对,确保设计的一致性和完整性。
三、编码与测试阶段在编码与测试阶段,开发人员将设计好的系统转化为可执行的代码,并对其进行测试和调试。
这一阶段的目标是确保代码的正确性和系统的稳定性。
编码与测试阶段包括以下步骤:3.1 编码:根据设计文档和规范,将设计好的模块逐一实现,并编写相应的测试用例。
3.2 单元测试:对每个模块进行单元测试,测试模块的正确性和功能性。
3.3 集成测试:将各个模块组合在一起,进行集成测试,检查组件之间的接口和交互是否正确。
3.4 系统测试:对整个系统进行测试,验证系统的功能、性能和稳定性。
四、部署与维护阶段在经过完整的开发、测试和调试后,软件可以部署到生产环境中。
1、在软件开发过程中,需求分析阶段的主要任务是确定:A. 软件的总体结构B. 软件的具体实现算法C. 软件的功能和性能要求D. 软件的测试计划(答案:C)2、下列关于模块化设计的说法中,错误的是:A. 模块之间的耦合应尽可能低B. 模块的内聚性应尽可能高C. 模块的规模越大,可维护性越好D. 模块化设计有助于提高软件的可重用性(答案:C)3、在面向对象编程中,继承机制的主要作用是:A. 实现代码的重用B. 提高程序的运行效率C. 简化数据结构的定义D. 增强程序的可读性(答案:A)4、下列关于软件测试的说法中,正确的是:A. 软件测试的目的是证明软件没有错误B. 软件测试应尽可能在编码阶段之后进行C. 软件测试应贯穿软件开发的各个阶段D. 单元测试主要由用户来完成(答案:C)5、在数据库设计中,实体-关系图(ER图)主要用于表示:A. 数据流图B. 数据结构C. 概念模型D. 物理模型(答案:C)6、下列关于敏捷开发的说法中,错误的是:A. 敏捷开发强调以人为本、团队协作B. 敏捷开发适用于需求变化频繁的项目C. 敏捷开发不需要文档和计划D. 敏捷开发提倡持续集成和持续交付(答案:C)7、在软件架构设计中,MVC模式是一种常用的设计模式,其中M、V、C分别代表:A. Model、View、ControllerB. Module、View、ComponentC. Message、View、ControlD. Master、View、Client(答案:A)8、下列关于软件配置管理的说法中,正确的是:A. 软件配置管理仅涉及源代码的管理B. 软件配置管理的目的是提高软件开发效率C. 软件配置管理不包括对变更的控制和管理D. 软件配置管理的主要活动包括标识、控制、状态记录和审计(答案:D)9、在软件测试中,黑盒测试主要关注:A. 软件的内部结构和实现细节B. 软件的功能和性能要求是否满足用户需求C. 软件的代码质量和编程风格D. 软件的可靠性和可用性(答案:B)10、下列关于软件维护的说法中,错误的是:A. 软件维护是软件开发周期中持续时间最长的阶段B. 软件维护包括改正性维护、适应性维护、完善性维护和预防性维护C. 软件维护的目的是提高软件的可用性和可维护性D. 软件维护只能在软件发布后进行(答案:D)。
初级软考试题1.在软件开发过程中,需求分析阶段的主要任务是:A. 确定软件开发方法B. 确定软件开发工具C. 确定软件系统的功能需求D. 编写软件代码2.下列哪项不属于软件测试的基本方法?A. 黑盒测试B. 白盒测试C. 灰盒测试D. 集成测试3.在软件设计中,模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的:A. 抽象和信息隐蔽B. 局部化和封装化C. 内聚性和耦合性D. 激活机制和控制方法4.下列关于数据库设计的叙述中,哪一项是不正确的?A. 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式B. 数据库设计包括概念设计、逻辑设计和物理设计C. 数据库设计的根本目标是要解决数据共享的问题D. 数据库设计不需要考虑数据的安全性5.在面向对象的方法中,实现信息隐蔽是依靠:A. 对象的继承B. 对象的多态C. 对象的封装D. 对象的分类6.下列关于数据结构的说法中,错误的是:A. 数据的逻辑结构反映数据元素之间的逻辑关系B. 数据的存储结构是数据逻辑结构在计算机中的表示C. 数据的逻辑结构分为线性结构和非线性结构D. 数据的存储结构只与计算机的存储方式有关,与数据的逻辑结构无关7.在软件开发中,为了提高软件的可维护性,通常采用的主要措施是:A. 采用模块化方法和结构化设计B. 优化数据结构C. 尽量使用高级语言编写代码D. 减少程序中的注释8.下列哪一项不是软件危机的表现?A. 软件开发过程不规范B. 软件开发成本不断提高C. 软件开发工具落后D. 软件开发生产效率高。
选择题
在软件开发的生命周期中,需求分析阶段的主要任务是?
A. 编写程序代码
B. 确定软件系统的功能和性能要求(正确答案)
C. 进行系统测试
D. 设计软件系统的数据库结构
下列哪项不是面向对象程序设计(OOP)的基本特征?
A. 封装(正确答案)
B. 继承
C. 多态
D. 过程调用
在计算机网络中,TCP/IP协议族中的IP协议主要负责什么?
A. 数据传输的可靠性
B. 数据格式的定义
C. 网络设备的寻址和路由(正确答案)
D. 应用程序之间的通信
下列哪种数据结构最适合实现栈(Stack)的操作?
A. 链表(正确答案)
B. 二叉树
C. 队列
D. 哈希表
在数据库管理系统中,SQL语言主要用于什么?
A. 数据查询和操作(正确答案)
B. 数据库系统设计
C. 数据备份和恢复
D. 数据库安全设置
计算机病毒主要通过什么途径传播?
A. 电磁波辐射
B. 网络和可移动存储介质(正确答案)
C. 电源线
D. 打印机
下列哪种算法是经典的排序算法之一,且其时间复杂度在最坏情况下为O(n2)?
A. 快速排序
B. 冒泡排序(正确答案)
C. 堆排序
D. 归并排序
在计算机图形学中,用于描述三维物体形状和外观的技术是?
A. 渲染(正确答案)
B. 编译
C. 加密
D. 压缩
下列哪项技术是实现云计算基础设施即服务(IaaS)的关键技术之一?
A. 虚拟化技术(正确答案)
B. 人工智能
C. 区块链
D. 物联网。
一、选择题1.在软件开发过程中,需求分析阶段的主要任务是:A.确定软件开发方法B.明确软件的功能、性能等要求C.设计软件系统的结构D.编写软件代码2.下列哪项不是软件测试的基本原则?A.在测试用例中一个必须对预期输出或结果进行定义B.避免测试自己编写的程序C.设计测试用例时,应充分考虑合理和不合理的输入条件D.应彻底检查每个程序3.关于软件配置管理,以下说法错误的是:A.软件配置管理用于追踪和控制软件的变更B.版本控制是软件配置管理的重要组成部分C.软件配置管理只关注代码文件,不关注文档D.软件配置管理有助于保证软件开发过程的有序性4.在面向对象编程中,下列哪一项不是封装的目的?A.隐藏对象的属性和实现细节B.增强软件的可维护性C.允许对象之间进行直接的、无限制的交互D.防止外部对对象内部状态的随意访问5.关于软件设计的模块化,以下哪种说法是正确的?A.模块化设计旨在降低软件系统的复杂性B.模块化设计不关注模块间的接口定义C.模块化设计意味着每个模块只完成一个单一的功能,但模块间可以紧密耦合D.模块化设计不利于软件的复用和维护6.在数据库设计中,下列哪项不是范式(Normalization)的主要目的?A.减少数据冗余B.提高数据更新、插入和删除操作的效率C.保证数据的完整性D.使数据结构更加复杂以提高查询性能7.关于软件质量保证,以下哪种说法是错误的?A.软件质量保证关注于预防缺陷的产生B.软件质量保证活动贯穿于整个软件生命周期C.软件质量保证仅关注软件开发阶段,不包括维护阶段D.软件质量保证的目的是确保软件满足规定的质量要求8.在软件开发模型中,下列哪项不是敏捷开发方法的特点?A.强调快速响应变化和交付价值B.注重个体和交互,胜过流程和工具C.详细规划并在项目初期确定所有需求D.鼓励持续的客户反馈和迭代开发。
浅谈软件开发需求分析阶段的主要任务
一、问题识别
首先系统分析人员要研究计划阶段产生的可行性分析报告和软件项目实施计划。
主要是从系统的角度理解软件并评审用于产生计划估算的软件范围是否恰当,确定对目标系统的综合要求,即软件的需求;并提出这些需求的实现条件,以及需求应达到的标准,也就是解决要求所开发软件做什么,做到什么程度。
这些需求包括:
(1)功能需求:列举出所开发软件在功能上应做什么,这是最主要的需求。
(2)性能需求:给出所开发软件的技术性能指标,包括存储容量限制、运行时间限制、安全、保密性等。
(3)环境需求:这是对软件系统运行时所处环境的要求。
例如,在硬件方面,采用什么机型、有什么外部设备、数据通信接口等等;在软件方面,采用什么支持系统运行的系统。
(4)可靠性需求:各种软件在运行时,失效的影响各不相同。
在需求分析时,应对所开发软件在投入运行后不发生故障的概率,按实际的运行环境提出要求。
对于那些重要的软件,或是运行失效会造成严重后果的软件,应当提出较高的可靠性要求,以期在开发的过程中采取必要的措施,是软件产品能够高度可靠地稳定运行,避免因运行事故而带来的损失。
(5)安全保密工作需求:工作在不同环境的软件对其安全、保密的要求显然是不同的。
应当把这方面的需求恰当地作出规定,以便对所开发的软件给予特殊的设计,使其在运行中其安全保密方面的性能能得到必要的保证。
(6)用户界面需求:软件与用户界面的友好性是用户能够方便有效地使用软件的关键之一,从市场角度来看,具有友好用户界面的软件有较强的市场竞争力。
因此,必须在需求分析时,为用户界面细致地规定达到的要求。
(7)资源使用需求:这是指所开发软件运行时所需的数据、软件、内存、空间等各项资源。
另外,软件开发时所需的人力、支撑软件、开发设备等属于软件开发的资源,需要在需求分析时加以确定。
(8)软件成本消耗与开发进度需求:在软件项目立项后,要根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。
(9)预先估计以后系统可能达到的目标。
这样,在开发过程中,可对系统将来可能的扩充与修改做准备,一旦需要时,就比较容易进行补充和修改。
功能性需求是人们普遍关注的,但对非功能性需求的分析常常被忽视。
其实非功能性需求并不是无关紧要的,它们的主要特点涉及到的方面多而广,却容易被忽略,任何一个软件的非功能性需求都要根据其类型和工作环境来确定。
问题识别的另一项工作是建立分析所需要的通信(沟通)途径,以保证能顺利地对问题进行分析。
分析员必须与用户、软件开发机构的管理部门、软件开发组的人员建立联系。
项目负责人在此过程中起协调人的作用。
分析员通过这种通信途径与各方面商讨,以便能按照用户的要求去识别问题的基本内容。
此外,如果在进行需求分析之前没有做过可行性分析,那么补充完成这部分工作往往是必要的,从问题定义和调查研究入手,与用户密切联系,详细了解问题提出的背景、弄清要解决什么问题,然后从软件系统特性和用户目标出发,做市场调查和现场考察。
仔细收集信息之后进行数据分析和功能分析,建立系统的高层逻辑模型,再进一步做成本/效益分析。
最后提交一份可行性分析报告,从技术、经济、社会效应等方面论证可行性,以确认软件开发的目标是否可行。
二、分析与综合
需求分析的第二步工作是问题分析和方案的综合。
分析员需从数据流和数据结构出发,逐步细化所有软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,分析它们是否满足功能要求,是否合理。
依据功能需求、性能需求和运行环境需求等,剔除其不合理的部分,增加其需要部分。
最终综合成系统的解决方案,给出目标系统的详细逻辑模型。
在这个步骤中,分析和综合工作反复地进行。
在对现行问题和期望的信息(输入和输出)进行分析的基础上,分析员开始综合出一个或几个解决方案,然后检查它的工作是否符合软件计划中规定的范围等等,再进行修改。
总之,对问题进行分析和综合的过程将一直持续到分析员与用户双方都感到有把握正确地制定该软件的规格说明为止
常用的需求分析方法有面向数据流的结构化分析方法(简称SA)、面向数据结构的Jackson方法(简称JSD)、面向对象的分析方法(简称OOA)等,以及用于建立动态模型的状态迁移图或Petri网等。
三、编制需求分析文档
在软件开发的瀑布模型中,每个阶段形成的最终文档是阶段完成的里程碑,因而,需求分析阶段编制文档以备下步评审,也是此阶段的重要任务之一。
以上已经确定的需求应当得到清晰准确的描述。
通常把描述需求的文档叫做软件需求规格说明书。
同时,为了确切表达用户对软件的输入输出要求,还需要制定数据要求说明书及编写初步的用户手册,着重反映被开发软件的用户界面和用户使用的具体要求。
此外,根据在需求分析阶段对系统的进一步分析,从目标系统的精细模型出发,可以更准确地估计所开发项目的成本与进度,从而修改、完善与确定软件开发实施计划。
四、需求分析评审
作为需求分析阶段工作的复查手段,在需求分析的最后一步,应该对功能的正确性、完整性和清晰性,以及其他需求给予评价。
评审的主要内容是:
(1)系统定义的目标是否与用户的要求一致;
(2)系统需求分析阶段提供的文档资料是否齐全;
(3)文档中的所有描述是否完整、清晰,是否准确地反映用户的要求;
(4)与所有其他系统成分的重要接口是否都已经描述;
(5)所开发项目的数据流与数据结构是否足够、确定;
(6)所有图表是否清楚,在不补充说明时能否理解;
(7)主要功能是否已包括在规定的软件范围之内,是否都能充分说明;
(8)设计的约束条件或限制条件是否符合实际;
(9)开发的技术风险是什么;
(10)是否考虑过软件需求的其他方案;
(11)是否考虑过将来可能会提出的软件要求;
(12)是否详细制定了检验标准,它们能否对系统定义成功地进行确认;
(13)有没有遗漏、重复或不一致的地方;
(14)用户是否审查了初步的用户手册;
(15)软件开发设计计划的估算是否受到了影响等。