软件需求分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章软件需求工程§3.1软件需求分析准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。用需求规格说明书规范的形式准确地表达用户的需求。在进行可行性研究和项目开发计划以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就可进入需求分析阶段。需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。需求分析概述软件需求是指用户对目标系统在功能、行为、性能等方面的期望。需求分析是发现、求精、建模和产生规格说明的过程,软件开发人员需对应用问题及环境的理解、分析,为问题涉及的信息、功能及行为建立模型。需求分析实际上是对系统的理解与表达的过程,是一种软件工程的活动。理解的含义就是开发人员充分理解用户的需求,对问题及环境的理解、分析与综合,逐步建立目标系统的模型。通常软件人员和用户一起完全了解系统的确切的要求,即系统要做什么。表达的含义是产生规格说明书等有关的文档。规格说明就是把分析的结果完全地、精确地表达出来。系统分析员经过调查分析后建立好模型,在这个基础上,逐步形成规格说明书,需求规格说明书是一个非常重要的文档。经过软件的需求分析建立起来的模型可以称它为分析模型或者需求模型,注意到分析模型实际上是一组模型,它是一种目标系统逻辑表示技术,它可以用图形描述工具来建模,选定一些图形符号分别表示信息流、加工处理、以及系统的行为等,还可以用自然语言给出加工说明。软件需求分析的困难性(1)问题的复杂性。这是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等。(2)交流障碍。需求分析涉及人员较多,如软件系统用户、问题领域专家、需求工程师和项目管理员等,这些人具备不同的背景知识,处于不同的角度,扮演不同角色,造成了相互之间交流的困难。(3)不完备性和不一致性:由于各种原因,用户对问题的陈述往往是不完备的,其各方面的需求还可能存在着予盾,需求分析要消除其矛盾,形成完备及一致的定义(4)需求易变性。用户需求的变动是—个极为普便的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。软件需求(1)用户解决问题或达到目标所需的条件或权能(Capability)。(2)系统或系统部件要满足合同、标准、规范或其他正式规定文件所需具有的条件或权能。(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。软件需求的层次·业务需求:业务需求反映了组织机构或者客户对系统、产品高层的目标要求,它们在项目视图与范围文档中给予说明。·用户需求:用户需求描述了用户使用产品必须要完成的任务,这可以在使用实例文档给予说明。用户需求应该只描述系统的外部行为,尽量避免对系统设计特性描述。用户需求通常用自然语言、图表以及直观的图形来描述。在用户需求描述时,可能会出现描述不够清楚、需求混乱、需求混合等问题。系统需求又可以分成功能需求、非功能需求性和领域需求。功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足业务需求。在需求规格说明中,功能需求充分描述了软件系统所具有的外部行为(服务)。非功能性需求是不直接与系统具体功能相关的一类需求,例如,可靠性、响应时间、存储空间等。非功能需求可以分类:(1)产品需求。(2)机构需求。(3)外部需求。领域需求来自系统的应用领域的需求,反映了该领域的特点。它们可能是一个新的特有的功能需求、或者是对已存在的功能需求的约束,也可能是一种非功能需求。需求工程软件需求工程领域的层次分解:需求分析原则必须理解和表示问题的信息域,可用数据模型描述;·必须定义软件将完成的功能,可用功能模型描述;·必须表示软件的行为(服务、操作),可用行为模型描述;·对描述的信息、功能和行为模型必须被划分,使得分析模型可以用层次的方法展示细节。·分析过程应该从要素信息移到实现细节。可以采用逐步求精的技术。需求分析的步骤当前系统目标系统物理模型逻辑模型逻辑模型物理模型模型化抽象化具体化实例化怎么做做什么当前系统目标系统需求定义逻辑模型和物理模型模型是对对象系统的形式化的特征抽象,概括性或近似地表示;构造模型的过程是一个抽象、分析的过程。对象系统模型系统抽象(映射)模型应用模型构造的过程逻辑模型物理模型(本质模型、概念模型)(实施模型、技术模型)现行系统目标系统描述重要的业务功能,无论系统是如何实施的。描述现实系统是如何在物理上实现的。描述新系统的主要业务功能和用户新的需求,无论系统应如何实施。描述新系统是如何实施的(包括技术)。获得当前系统的物理模型了解当前系统的组织机构、输入输出、资源利用情况和日常数据处理过程,并用一个具体模型来反映对当前系统的理解。需求分析过程示意学生(1)通过对现实环境的调查,获得当前系统的物理模型学生购书申请购书单发票领书单书107张教务科206王会计室206李出纳员303赵教材科学生购买教材的物理模型抽象出当前系统的逻辑模型在理解当前系统“怎样做”的基础上,抽取出“做什么”的本质,从当前系统的物理模型中抽象出当前系统的逻辑模型。需求分析过程示意(2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型学生购买教材的逻辑模型学生学生购书申请购书单发票领书单书审查有效性开发票开领书单发书建立目标系统的逻辑模型(1)决定变化的范围,即决定目标系统与当前系统在逻辑上的差别;(2)对功能图(数据流图)及对象图等进行调整,将变化的部分看成是新的处理步骤;(3)由外向里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。需求分析过程示意(3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型计算机售书系统的逻辑模型学生学生购书单发票领书单审查并开发票开领书单无效书单对得到的逻辑模型做一些补充:(1)说明目标系统的用户界面。根据目标系统所处的应用环境及它与外界环境的相互关系,研究所有可能与它发生联系和作用的部分,从而决定人机界面。(2)说明至今尚未详细考虑的细节。这些细节包括系统的启动和结束、出错处理、系统的输入/输出、系统性能等。(3)系统必须满足的其他性能。具体任务:·绘制系统关联图;·创建用户接口原型;·分析需求可行性;·确定需求的优先级;·为需求建立模型;·创建数据字典。需求开发过程需求获取·功能需求·性能需求·环境需求·安全保密要求·用户界面需求·资源使用需求软件成本消耗与开发进度需求软件质量属性·有效性(availability)有效性=系统的平均故障时间/(平均故障时间+故障修复时间)·高效性(efficiency)·灵活性(flexibility)·完整性(integrity)·互操作性(interoperability)·可靠性(reliability)·健壮性(robustness)·可用性(usability)·可维护性(maintainability)·可移植性(Portability)·可重用性(reusability)·可测试性(testability)需求分析需求分析包括提炼、分析、和审查已收集的需求,以确保所有的风险承担者都明白它们的含义,并且找出其中的错误、遗漏或者不足的地方。需求规格说明描述需求的文档叫做软件需求规格说明,分析模型是需求规格说明中的其中一部分。分析员应以调查分析及分析模型为基础,逐步形成规格说明书。制定数据要求说明书及编写初步的用户手册。修改、完善并确定软件开发实施计划。需求评审对功能的正确性、完整性和清晰性,以及其他需求给予评价。评审应指定专人负责,并严格按规程进行。评审结束后应由评审负责人签署评审意见。通常,在评审意见中包括了一些修改意见,须按这些修改意见对软件进行修改,待修改完成后还要再评审,直至通过才可进行软件设计。软件需求建模所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。简单地说,模型就是某一事物的抽象表示方式。通常,软件工程中的模型可以由一组图形符号和组织这些符号的规则组成。最终确立的分析模型是生成需求规格说明的基础,也是软件设计和实现的基础。模型的作用建模的原因:•在建模过程中了解系统•通过抽象降低复杂性•有助于回忆所有的细节•有助于开发小组间的交流•有助于与用户的交流•为系统的维护提供文档模型化或模型方法是通过抽象、概括和一般化,把研究的对象或问题转化为本质(关系或结构)相同的另一对象或问题,从而加以解决的方法。模型化方法要求所建立的模型能真实反映所研究对象的整体结构、关系或某一过程、某一局部、某一侧面的本质特征和变化规律。模型的类型•数学模型•描述模型•图形模型软件分析模型的基本要求·描述用户对软件系统的需求;·为软件设计奠定一个良好的基础;·定义一组需求,并且可以作为软件产品验收的标准。数据模型数据模型用于描述数据对象之间的关系,数据模型应包含有三种相关的信息,即数据对象、属性和关系。·数据对象数据对象是几乎所有必须被软件理解的复合信息的表示。复合信息是指具有若干不同特性或者属性的事物。所以,仅有单个值的事物不是对象,例如,宽度、长度等等。数据对象可以是一个外部实体、事物、行为、事件、角色、单位、地点、结构等等。属性定义了数据对象的性质,它具有三种不同的特性之一。(1)为数据对象实例命名;(2)描述该实例;(3)引用另一个实例。·关系数据对象彼此之间是有关联的,也称为关系。例如,数据对象“教师”和“课程”的连接关系是“教”;数据对象“学生”和“课程”的连接关系是“学”等等。这种关联的形态有三种。(1)一对一关联(1:1)。例如,一个间学校只有一位校长,所以,学校与校长的关联是一对一的。(2)一对多关联(1:N)。例如,一位教师可以“教”多门课程,所以,教师和课程的关联是一对多的。(3)多对多关联(M:N)。例如,一名学生可以学多门课程,一门课程有多名学生学习,所以,学生和课程的关联是多对多的。实体—关系图ERD包含三种基本元素,即实体、属性、关系。通常用矩形表示实体即数据对象;用圆角矩形或者椭圆形表示实体的属性;用菱形连接相关实体表示关系。功能模型数据流图中的基本元素有:·数据流·加工处理·文件·源点和终点分解的程度系统自顶向下逐层分解时,可以把一个加工分解成几个加工,当每一个加工都已分解到足够简单时,分解工作就可以结束了。足够简单的不再分解的加工称为基本加工。如果某一层分解不合理、不恰当就要重新分解。加工说明加工说明或者说加工处理(ProcessSpecification)过程,它用于描述系统的每一个基本加工处理的逻辑,说明输入数据转换为输出数据的加工规则。加工逻辑仅说明“做什么”就可以了,而不是实现加工的是细节。加工说明的描述方式可以用结构化语言、判定表、判定树、IPO(输入/处理/输出)图等等。行为模型状态机模型通过描述系统的状态以及引起系统状态转换的事件,来表示系统的行为。状态图中的基本元素有事件、状态和行为等。数据字典数据字典(DataDictionary)用于描述软件系统中使用或者产生的每一个数据元素,是系统数据信息定义的集合。数据字典方便于人们对不了解的条目进行查阅,人们可以借助于数据字典查出每一个名字(包括数据流、加工名、文件名等)的定义和组成,以免产生误解。面向对象模型分析模型有3个子模型—对象模型、动态模型和功能模型。其中,对象模型描述软件系统的静态结构;动态模型描述软件系统的控制结构;功能模型描述软件系统必须要完成的功能。需求规格说明书(SRS)(SoftwareRequirementSpecification)需求分析阶段要完成的文档。SRS的作用:•开发者与用户间事实上的技术合同书•开发者下一步设计和编码的基础•测试验收目标系统的依据软件需求规格与评审SRS也是客户和开发小组对将要开发的产品达成一致的协议,这个协议应该综合业务需求、用户需求和一个详细系统

1 / 145
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功