第7章 需求的形式化描述
- 格式:ppt
- 大小:360.00 KB
- 文档页数:40
需求分析怎么写什么是需求分析在软件开发和项目管理中,需求分析是指对系统、软件或产品的需求进行详细的研究、定义和提取的过程。
通过需求分析,可以确保开发团队和客户对于项目的目标清晰、需求明确,并最终实现客户期望的软件或产品。
需求分析是软件开发的关键阶段之一,它的质量直接影响项目的成功与否。
一个好的需求分析阶段能够有效减少后期开发的修改和修补,提高项目的整体效率和质量。
需求分析的步骤需求分析通常包含以下几个步骤:1.确定需求的背景和目标:在开始需求分析之前,需要明确项目的背景和目标。
了解项目的背景有助于理解系统所处的环境和条件。
目标的明确能够帮助开发团队更加有针对性地进行需求分析和设计。
2.收集需求:收集需求是需求分析的核心步骤。
需求可以通过与客户交流、访谈、问卷调查、观察等方式收集。
可以借助一些工具来帮助实现需求的有效收集和管理,例如需求管理工具、协作工具等。
3.需求分类和整理:将收集到的需求进行分类和整理,有助于管理和分析。
可以将需求按照功能、优先级、可行性等进行分类,以便后续的分析和处理。
4.需求验证:需求验证是为了确保收集到的需求是准确、完整和一致的。
可以通过与客户进行需求确认、原型演示、测试等方式来验证需求的正确性和有效性。
5.需求文档编写:将收集、整理、验证后的需求编写成文档。
需求文档是供开发团队、测试团队和客户参考的重要文档,并且是后续开发和测试的依据。
需求文档的要素一个好的需求文档应包含以下要素:1.项目背景和目标:简要描述项目的背景和目标,包括项目的业务背景、目标受众、预期效果等。
2.需求概述:对项目的需求进行总体概述,包括主要功能需求、非功能需求等。
3.功能需求:详细描述系统或产品的功能需求,包括功能描述、输入输出要求、流程图等。
4.非功能需求:描述系统或产品的非功能性需求,如性能要求、安全要求、可维护性要求等。
5.约束和假设:列出与需求相关的约束条件和假设条件,如技术限制、人力资源限制、时间限制等。
第一部分软件需求的基本概念*好需求的特征:无歧义、完整、一致、可检验、确定、可跟踪的,正确的,可行的和必要的。
软件开发的目标,简单而言,就是满足用户的需要。
三种最经常使项目“遇到困难"的因素是:⏹缺乏用户介入:占所有项目的13%⏹不完整的需求和规格说明:占所有项目的12%⏹不断改变的需求和规格说明:占所有项目的12%三种项目最主要的“成功因素"是:⏹用户介入:占所有成功项目的16%⏹高层管理的支持:占所有成功项目的14%⏹需求陈述清晰:占所有成功项目的12%高质量的需求过程带来的好处:在开发后期和整个维护阶段的重做的工作大大减少了。
IEEE软件工程标准词汇表定义需求为:1.用户解决问题或达到目标所需的条件或能力。
2.系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力.3.一种反映上面(1)或(2)所描述的条件或能力的文档说明.第二章需求的层次*需求是多层次的,包括业务需求、用户需求、功能需求和非功能需求。
业务需求反映了组织机构或客户对系统、产品高层次的目标要求,位于需求链中的最顶层,在项目视图和范围文档中予以说明。
用户需求描述了用户使用产品必须要完成的任务,这在实例文档或方案脚本予以说明。
功能需求定义了开发人员必须实现的软件功能,使得用户完成他们的任务,从而满足了业务需求。
和非功能需求在SRS中说明。
非功能性的需求描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和约束,操作界面的具体细节和构造上的限制。
需求路线图:涉众需要-〉系统的特性—〉建立软件需求软件的6个质量特征(非功能性需求):可靠性,可用性,有效性,可维护性,可移植性,约束。
有效性(Efficiency)是在规定的条件下,软件性能水平与所使用资源量之间关系有关的一组属性.可靠性(Reliability)是与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性可维护性(Maintainability)是与进行指定的修改所需的努力有关的一组属性约束定义为:对开发人员在软件产品设计和构造上的限制。
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性.(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训.在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境.总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料.5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
第一章测试1.嵌入式计算机基本架构包括CPU、IO和()A:存储器B:仿真器C:模拟信号D:cache答案:A2.嵌入式系统的实时性可分为软实时和()A:硬实时B:截止时限C:软实时D:周期答案:A3.信息物理融合系统CPS的是指()A:计算与物理成分的融合B:高强度的计算C:连续过程与离散时间的交织D:系统通信与交互方式多变答案:ACD4.“需求”非形式化描述了用户想要什么,为了能够更精确的描述需求,这里可以通过需求表给出需求的描述。
A:对B:错答案:A5.在GPS的结构设计中,需要考虑硬件组件和软件组件。
A:错B:对答案:B第二章测试1.数据、指令存储在同一个存储器中的系统是哈弗结构。
A:错B:对答案:A2.关于汇编语言,对于伪指令的描述下面哪个不对()。
A:保存存储的指令B:定义常数C:定义目前地址D:直接一一对应机器指令答案:D3.在ARM指令执行过程中,通过判断PSR中的条件位域,完成条件执行。
A:对B:错答案:A4.下面哪个是ARM汇编指令的条件码。
A:EQB:LDRC:BD:ADD答案:A5.汇编程序段ADR r4, aLDR r0, [r4]实现了首先将a所在的地址存放在r4寄存器中,然后把r4所指的存储单元的内容存入r0寄存器中。
A:对B:错答案:A第三章测试1.I/O设备的状态寄存器是提供设备运行状态的,所以CPU只能读这些设备,不能写它们。
A:对B:错答案:B2.函数:int peek(char location) {return location; }是实现()A:从相应的I/O寄存器中读数据B:向相应的I/O寄存器中写数据C:向存储单元中写数据D:无意义答案:A3.中断处理程序例程通常也被称为设备驱动程序。
A:错B:对答案:B4.具有缓冲区的中断I/O中,函数void add_char(charachar)A:完成将数据写入I/O数据寄存器B:完成将数据写入I/O状态寄存器C:完成将数据写入缓冲区D:完成将数据写入CPU的寄存器中答案:C5.只有数据会影响高速缓存的命中率。