软件工程概论第三章需求分析.ppt
第三章 需求分析,3.1 需求分析概述3.2 结构化分析方法3.3数据流图的绘制3.4编制数据字典3.5 加工逻辑的分析与表达3.6 原型技术3.7 需求验证与评审,意义:软件需求的深入理解是软件开发工作获得成功的前提条件,不论我们把设计和编码做得如何出色,不能真正满足用户需求的程序只会令用户失望,给开发带来烦恼。,需求分析是软件定义时期的最后一个阶段,它的基本任务不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。并在在需求分析阶段结束之前,由系统分析员写出软件需求规格说明书,以书面形式准确地描述软件需求。即:-准确地回答“系统必须做什么?”。,学习目标,明确需求分析的概念和任务,能够正确把握在软件定义方面,可行性研究和需求分析两阶段对问题域理解和描述问题的粒度可行性研究和需求分析两个阶段对问题域的角度和描述问题的粒度,1 需求分析的概述,需求分析的任务:用户和分析师双方进一步理解用户的需求,就待开发的软件系统必须具备的业务处理逻辑进行分析和描述,将双方的共同理解达成都能接受的需求规约,又称“需求规格说明书”,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。,需求分析的任务并不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求规格说明书的主要部分是详细的数据流图,数据字典和主要功能的算法描述。通过验收的需求规格说明书是今后软件设计和项目验收的依据。,软件的需求包括:,功能需求性能需求环境需求可靠性需求安全保密要求用户界面需求,资源使用需求成本消耗需求开发进度需求预先估计以后系统可能达到的目标,发现:对用户需求的发现和挖掘求精:对用户提出的模糊的开发要求逐步明确、精化建模:对用户业务系统进行分析和优化的基础上,对未来系统的逻辑成分进行模型建模规约:对用户需求进行逻辑分析的最终产物,人员组织 企业负责人、各部门负责人、具体工作人员,分析师的角色 熟悉计算机技术了解用户业务领域的相关知识能在用户和开发人员之间借助数据概念进行交流,需求分析的活动和原则需求获取分析建模需求评审,需求获取,1.进行调查研究,获取用户需求(问题识别)。这些需求包括:功能需求:所开发的软件必需具备什么功能(最重要)。性能需求:指待开发的软件应具备的性能指标,如存储容量,运行时间等。环境需求:指软件运行时的软件、硬件要求。用户界面需求:指人机交互方式、输入输出的数据格式等是否友好、便捷等。此外还有:可靠性需求、安全保密要求、用户界面需求、可移值性、可维护性等方面需求。调查时可采用以下几种方式:,与用户交谈,向用户提出问题。参观用户的工作流程,观察用户的操作。向用户群体发放调查问卷表。与同行、专家交谈,听取他们的意见。分析已经存在的同类软件产品,提取需求。从行业标准、规则中提取需求。从Internet上搜索相关资料。分析员协同程序员通过调查分析,同时可以参考该项目的可行性报告和项目开发计划书,来获取当前系统的物理模型,可以采用系统流程图(是用来描述系统物理模型的一种传统工具)表示。例如:计算机售书的系统流程图如下页所示。,需求获取中的困难通信渠道不畅,数据管理不严与用户沟通存在障碍对分析活动没有系统的工作方法,需求建模,从当前系统的物理模型中去掉非本质因素,如地点、人物等,抽象出当前系统的逻辑模型,可以用数据流图表示。,需求评审,需求分析的最后一个环节,常见的需求分析方法有:结构化分析方法。面向对象的分析方法。,2 结构化分析方法,概念 用一组标准的工具和策略从事系统分析与设计目的:撇开物理因素,在综合分析用户对系统各项要求的基础上,最终导出新系统的逻辑模型分析过程:细化数据流图(DFD)/控制流图(CFD)、编制数据字典、用户复查、修正开发计划、整理文档、审查和复审,结构化分析方法:结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。结构化分析的步骤如下:通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型:去掉具体模型中非本质因素,抽象出当前系统的逻辑模型:根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型完善目标系统并补充细节,写出目标系统的软件需求规格说明;评审直到确认完全符合用户对软件的需求。,3 数据流图的绘制,数据流图(Data Flow Diagram,简称DFD)描绘系统的逻辑模型,是结构化系统分析的主要工具。数据流图(DFD)是描述软件系统中数据处理过程的一种有力的图形工具。,画数据流图步骤,1、首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,然后考虑该系统有哪些输入数据,这些输入数据从哪里来;有哪些输出数据,输出到哪里去。2、画系统内部,即画下层数据流图。一般将层号从开始编号,采用自顶向下,由外向内的原则。,注意事项,1、命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。2、一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流 3、父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据必须一致,此即父图与子图的平衡。,3、局部数据存储。当某层数据流图中的数据存储不是由图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。4、提高数据流图的易理解性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。,描述银行取款过程的数据流图,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统,分层的数据流图,在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,结构化分析方法步骤示例 商店业务处理系统,这个数据流图只是一个高层的系统逻辑模型,它反映了目标系统要实现的功能数据流图绘制步骤 首先确定系统的输入和输出 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程,经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图,第一层数据流图,加细每一个加工框 销售细化,采购细化,检查和修改数据流图的原则,数据流图上所有图形符号只限于前述四种基本图形元素数据流图的主图必须包括前述四种基本元素,缺一不可数据流图的主图上的数据流必须封闭在外部实体之间每个加工至少有一个输入数据流和一个输出数据流,在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡可以在数据流图中加入物质流,帮助用户理解数据流图,图上每个元素都必须有名字数据流图中不可夹带控制流初画时可以忽略琐碎的细节,以集中精力于主要数据流,4 数据词典,数据字典(Data Dictionary)是关于数据的信息的集合,通过数据字典对数据流程图中的各个元素作精确的定义与说明。它是数据流图的补充工具。数据词典与数据流图配合,能清楚地表达数据处理的要求。二者构成需求规格说明书的主要部分。词条描述 对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它等。,数据字典的内容及格式数据字典是为分析人员和用户查找数据流图中有关名字的详细定义而服务的,因此也像其他任何字典一样,要把所有条目按一定次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。其中,数据项是组成数据流和数据存储的最小元素。1)数据流条目给出了DFD中数据流的定义,主要部分是列出该数据流的各组成数据项。在定义数据流及数据存储组成时,通常要用到表2.4给出的符号。,2)数据存储条目是对数据文件内容的定义,主要内容举例如下:数据存储名称:学生成绩库别名:无组成:学生学号+课程编码+成绩+备注组织方式:以学号为记录关键字升序排列。,3)数据项条目给出某个数据单项的定义,内容通常为数据项的值类型、允许取值范围等,其定义结构与数据流条目类似。4)加工条目是用来说明DFD中基本加工的处理逻辑,对其他非基本加工则不必进行加工说明。加工条目主要由输入数据、加工逻辑和输出数据等部分组成,加工逻辑描述把输入数据转换为输出数据的过程,是加工条目的主体。为了使加工逻辑直观易读,有几种常用的描述方法,它们是结构化语言、判定表和判定树。加工条目内容举例如下:加工名称:查阅库存编 号:1.2输 入:合格订单输 出:供货订单或缺货订单,加工逻辑:根据库存记录IF 订单项目数量该项目库存量的临界值THEN 可供货处理ELSE 此订单缺货,登记,待进货后再处理ENDIF(3)数据字典的实现数据字典的建立可以用手工和自动两种方式实现。手工方式是指把每一个字典条目写在卡片上,由专人管理和维护。自动方式是借助数据字典处理程序,把字典条目输入到计算机中,用计算机对它进行检索和维护。,数据字典DD(Data Dictionary)用于描述DFD中各种数据,是一种描述数据的数据.DD中的内容:数据项数据存储数据流处理,DD中常用的符号:=:等价于+:和(连接两个分量):或a b:重复从a到b次():可选,1.数据项数据项是不可再分割的最小数据单位.数据项描述=数据项名,别名,含义说明,数据类型,定义,取值范围,取值含义,位置,与其他数据项之间的关系,例:学生成绩管理系统的数据项.,数据项编号:101001数据项名:学号别名:学生号,学生编号含义说明:描述学生的唯一编号数据类型:字符型 定义:学号=10数字10 结构:a1a2a3a4a5a6a7a8a9a10 其中:a1=学区号,a2a3=入学年份,a4a5=系号,a6=专业号,a7a8=班号,a9a10=序号位置:学生,成绩单,补考名单,重修名单,数据项编号:101002数据项名:姓名别名:无含义说明:学生的姓名 数据类型:字符型 定义:2汉字4 位置:学生,成绩单,补考名单,重修名单,数据项编号:101003数据项名:性别别名:无含义说明:学生的性别数据类型:字符型 定义:2汉字2 取值范围:男,女位置:学生,2.数据存储描述处理过程中存储的数据,可以是手工凭证、手工文档或计算机文件.数据存储=数据存储名,含义说明,输入数据流,输出数据流,定义,数据量,存取频度,存取方式,例:学生成绩管理系统的数据存储.,数据存储编号:201001数据存储名:学生 含义说明:学生的自然情况数据输入数据流:无输出数据流:学生数据定义:学生=学号+姓名+性别+出生日期+院系号数据量:最多为50000个学生,数据存储编号:201002数据存储名:课程含义说明:关于课程的数据输入数据流:无输出数据流:课程数据定义:课程=课号+课名+学时数+学分+考核性质数据量:最多为6000门课程,3.数据流表示某一过程的输入或输出.数据流=数据流名,含义说明,流入过程,流出过程,定义,平均流量,高峰期流量流入/流出过程指从哪个过程来,到哪个过程去.平均流量指单位时间信息传输量.,例:学生成绩管理系统的数据流.,数据流编号:301001数据流名:考试成绩含义说明:考试原始成绩单流出过程:教务部门流入过程:成绩核对定义:考试成绩=学号+姓名+课号+课程名+分数,数据流编号:301002数据流名:成绩无效含义说明:原始成绩合法性判定流出过程:成绩核对流入过程:教务部门定义:成绩无效=学号+姓名+课号+课程名+分数+合格标志,4.处理描述处理或加工的过程.处理=处理名,含义说明,输入数据流,输出数据流,简要说明,例:学生成绩管理系统的处理.,处理编号:401001处理名:成绩核对 含义说明:根据原始成绩,核对成绩是否合格,考生是否存在 输入数据流:考试成绩,学生数据,课程数据 输出数据流:成绩无效,合格成绩 处理简要说明:,处理编号:401002处理名:成绩处理 含义说明:对考生进行处理 输入数据流:合格成绩 输出数据流:成绩单 处理简要说明:,5 加工逻辑的分析与表达,用于表示层次结构关系的工具:层次方框图、Warnier图用于描述处理过程的有:IPO图用于描述条件判断的有:结构式语言、判断树和判断表,结构式语言,结构式语言是介于自然语言和形式语言之间的一种半形式语言外层:描述控制结构,包括:顺序结构、判断结构和循环结构内层:采用祈使语句,判定表判定表是一种文本化的加工说明的流行格式,它特别适用于带有一组测试条件的说明。,判定树判定树也是用来表达加工逻辑的一种工具。,层次方框图,层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。随着结构的精细化,层次方框图对数据结构也描绘得越来越详细,这种模式非常适合于需求分析阶段的需要。系统分析员从对顶层信息的分类开始,沿图中每条路径反复细化,直到确定了数据结构的全部细节时为止。,举 例,Warnier图,法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具。Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。用Warnier图可以表明信息的逻辑组织。它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。重复和条件约束是说明软件处理过程的基础,所以很容易把Warnier图转变成软件设计的工具。,举 例,图中表示一种软件产品要么是系统软件要么是应用软件。系统软件中有P1种操作系统,P2种编译程序,此外还有软件工具。软件工具是系统软件的一种,它又可以进一步细分为编辑程序、测试驱动程序和设计辅助工具,图中标出了每种软件工具的数量。,IPO图,左边的框中列出有关的输入数据。中间的框内列出主要的处理,处理框中列出处理的次序暗示了执行的顺序,但是用这些基本符号还不足以精确描述执行处理的详细情况。在右边的框内列出产生的输出数据。在IPO图中还用类似向量符号的粗大箭头清楚地指出数据通信的情况。,一种改进的IPO图(也称为IPO表),在需求分析阶段可以使用IPO表简略地描述系统的主要算法(即数据流图中各个处理的基本算法)。需求分析阶段,IPO表中的许多附加信息暂时还不具备,但在设计阶段可以进一步补充修正这些图,作为设计阶段的文档。这正是在需求分析阶段用IPO表作为描述算法的工具的重要优点。,6 原型技术,1 用户需求和应用比较稳定而且 可以通过调研分析预先获得2 开发项目要求模糊、应用环境多变,因此在调研和分析中,用户提出的要求往往具有片面性、模糊性、不一致性,甚至随着项目的进展,对软件系统认识的逐步加深,需求也在变化和增加。,一个软件原型是所提出的新产品的部分实现,它比开发人员常用的技术术语更易于理解。建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。,原型在软件开发过程中可以起到以下主要作用:*明确并完善需求原型作为一种需求工具,它初步实现所理解的系统的一部分。用户对原型的评价可以指出需求中的许多问题,在你开发真正产品之前,可以最低的费用来解决这些问题。*探索设计选择方案原型作为一种设计工具,用它可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。*发展为最终的产品原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。,虽然我们完成了需求获取、分析和编写规格说明,客户或开发人员依然对需求中的一部分感到不明确或不清晰,那么在用户和开发人员之间对于产品的理解必然会存在期望差距。通过阅读文本需求或研究分析模型,很难想象软件产品在特定的环境中如何运行。解决这个问题的一个有效方法就是建立软件原型,它可以使新产品实在化,并消除不同的人在需求理解上的差异。比起阅读一份冗长无味的软件需求规格说明,用户通常更愿意尝试建立有趣的原型。,在软件开发过程中,原型是软件的一个早期可运行版本,它反映最终系统的部分重要特性。与飞机模型或汽车模型不同,软件原型只是真实系统的一部分或者一个模型,它不能实现任何功能,因此,切记不能把它和最终系统等同起来。,建立软件原型的目的是为了降低软件项目的风险,但这种方法本身有产生了新的风险。当用户看到正在运行的原型时,往往会错误地认为产品很快能完成,他们会说:这看起来真不错,希望继续把它做完交付。如果你正在演示或评价一个抛弃型原型,无论它与真正的产品是多么相像,也决不会达到产品的使用程度。因此,减少这种风险的关键在于让人们明白原型是什么和为什么,并且充分认识到交付原型后患无穷。,7 需求验证与评审,验证软件需求的正确性验证软件需求的方法用于需求分析的软件工程工具,软件需求规格说明是需求开发的最终结果,它精确地阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件。软件需求规格说明不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。软件需求规格说明是用户、分析人员和设计人员之间进行理解和交流的手段;测试人员可以根据软件需求规格说明中对产品行为的描述,制定测试计划、测试用例和测试过程。文档人员根据软件需求规格说明和用户界面设计,编写用户手册等;软件需求规格说明指导着整个系统的开发过程,评审过的需求规格说明需要进行变更控制。,软件需求规格说明书的内容概述;数据描述;功能描述;性能描述;参考文献;附录。,模板,在软件项目中,开发组织应该采用一种标准的软件需求规格说明的模板。现在有许多推荐的软件需求规格说明模板可以使用,这里介绍一种由IEEE标准830-1998改写并扩充的模板。,a.引言概要叙述软件需求规格说明,便于读者理解文档如何编写以及如何阅读和解释。a.1 目的对产品进行定义,在该文档中详尽说明了这个产品的软件需求,包括修正或发行版本号。如果这个软件需求规格说明只与整个系统的一部分有关系,那么就只定义文档中说明的部分或子系统。a.2 文档约定描述编写文档时所采用的标准或排版约定,包括正文风格、提示区或重要符号。a.3 预期的读者和阅读建议列举了软件需求规格说明所针对的不同读者,例如开发人员、项目经理、营销人员、用户、测试人员或文档的编写人员。描述了文档中剩余部分的内容及其组织结构,提出了最适合于每一类型读者阅读文档的建议。,a.4 产品范围提供了对指定的软件及其目的的简短描述,包括利益和目标。a.5 参考文献列举了编写软件需求规格说明时所参考的资料或其它资源,可能包括用户界面风格指导、合同、标准、系统需求规格说明、使用实例文档,或相关产品的软件需求规格说明。在这里应该给出详细的信息,包括标题名称、作者、版本号、日期、出版单位或资料来源,以方便读者查阅这些文献。,b.综合描述这一部分概述了正在定义的产品以及它所运行的环境、使用产品的用户和已知的限制、假设和依赖。b.1 产品的前景描述了软件需求规格说明中所定义的产品的背景和起源。说明了该产品是否是产品系列中的下一成员,是否是成熟产品所改进的下一代产品、是否是现有应用程序的替代品,或者是否是一个新型的、自含型产品。如果软件需求规格说明定义了大系统的一个组成部分,那么就要说明这部分软件是怎样与整个系统相关联的,并且要定义出两者之间的接口。,b.2 产品的功能概述了产品所具有的主要功能。其详细内容将在d中描述,所以在此只需要概略地总结,例如用列表的方法给出。很好地组织产品的功能,使每个读者都易于理解。用图形表示主要的需求分组以及它们之间的联系,例如数据流程图的顶层图或类图,都是有用的。b.3 用户类和特征确定你觉得可能使用该产品的不同用户类并描述它们相关的特征。有一些需求可能只与特定的用户类相关,将该产品的重要用户类与那些不太重要的用户类区分开。b.4 运行环境描述了软件的运行环境,包括硬件平台、操作系统和版本,还有其它的软件组件或与其共存的应用程序。,b.5 设计和实现上的限制确定影响开发人员自由选择的问题,并说明这些问题为什么成为一种限制。可能的限制包括如下内容:o 必须使用或者避免的特定技术、工具、编程语言和数据库。o 所要求的开发规范或标准。o 企业策略、政府法规或工业标准。o 硬件限制,例如定时需求或存储器限制。o 数据转换格式标准。b.6 假设和依赖列举出在对软件需求规格说明中影响需求陈述的假设因素,以及项目对外部因素存在的依赖。,c.外部接口需求利用本节来确定可以保证新产品与外部组件正确连接的需求。c.1 用户界面陈述所需要的用户界面的软件组件。描述每个用户界面的逻辑特征。以下是可能要包括的一些特征:o 将要采用的图形用户界面(G U I)标准或产品系列的风格。o 屏幕布局或解决方案的限制。o 将出现在每个屏幕的标准按钮、功能或导航链接(例如一个帮助按钮)。o 快捷键。o 错误信息显示标准。对于用户界面的细节,例如特定对话框的布局,应该写入一个独立的用户界面规格说明中,而不能写入软件需求规格说明中,c.2 硬件接口描述系统中软件和硬件每一接口的特征。这种描述可能包括支持的硬件类型、软硬件之间交流的数据和控制信息的性质以及所使用的通信协议。c.3 软件接口描述该产品与其它外部组件(由名字和版本识别)的连接,包括数据库、操作系统、工具、库和集成的商业组件。明确并描述在软件组件之间交换数据或消息的目的。描述所需要的服务以及内部组件通信的性质,确定将在组件之间共享的数据。c.4 通信接口描述与产品所使用的通信功能相关的需求,包括电子邮件、Web浏览器、网络通信标准或协议及电子表格等等。定义了相关的消息格式,规定通信安全或加密问题、数据传输速率和同步通信机制。,d.系统特性d.1 说明和优先级简短说明该系统的特性,并指出该特性的优先级是高、中,还是低。另外,还可以包括对特定优先级部分的评价,例如利益、损失、费用和风险。d.2 激励/响应序列列出输入激励(用户动作、来自外部设备的信号或其它触发器)和定义这一特性行为的系统响应序列。d.3 功能需求详列出与该特性相关的详细功能需求。这些是必须提交给用户的软件功能,使用户可以使用所提供的特性执行服务或者使用所指定的使用实例执行任务。,e.其他非功能需求e.1 性能需求阐述了不同的应用领域对产品性能的需求,并解释它们的原理以帮助开发人员作出合理的设计选择。确定相互合作的用户数或者所支持的操作、响应时间以及与实时系统的时间关系。e.2 安全设施需求详尽陈述与产品使用过程中可能发生的损失、破坏或危害相关的需求。定义必须采取的安全保护或动作,还有那些预防的潜在的危险动作。明确产品必须遵从的安全标准、策略或规则。,e.3 安全性需求详尽陈述与系统安全性、完整性或与私人问题相关的需求,这些问题将会影响到产品的使用和产品所创建或使用的数据的保护。定义用户身份确认或授权需求,明确产品必须满足的安全性或保密性策略。e.4 软件质量属性详尽陈述与客户或开发人员至关重要的其它产品质量特性,这些特性必须是确定、定量的并在可能时是可验证的。e.5 业务规则列举出有关产品的所有操作规则,例如什么人在特定环境下可以进行何种操作。这些本身不是功能需求,但它们可以暗示某些功能需求执行这些规则。e.6 用户文档列举出将与软件一同发行的用户文档部分,例如用户手册、在线帮助和教程,明确所有已知的用户文档的交付格式或标准,f.其他需求定义在软件需求规格说明的其它部分未出现的需求,例如国际化需求或法律上的需求。你还可以增加有关操作、管理和维护部分来完善产品安装、配置、启动和关闭、修复和容错,以及登录和监控操作等方面的需求。这一部分可以省略,软件需求规格说明书的特点正确性;无歧义性;完整性;可验证性;一致性;可理解性;可修改性;可追踪性。,验证软件需求,验证软件需求的正确性,一般应从4个方面进行:(1)一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。(2)完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。(3)现实性 指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。(4)有效性 必须证明需求是正确有效的,确实能解决用户面对的问题。,补充作业,写一份学生成绩管理系统的需求说明书打印手写都可,