1、软件需求工具软件需求工具Software requirement tool任课老师:黄武任课老师:黄武提纲提纲软件需求概述软件需求概述软件需求工程软件需求工程软件需求工具概述软件需求工具概述需求分析方法需求分析方法典型的需求分析工具介绍典型的需求分析工具介绍你理解软件需求吗你理解软件需求吗 什么是软件需求?如何获取,如何表达什么是软件需求?如何获取,如何表达需求?需求?1 软件需求概述软件需求概述需求的重要性需求的重要性软件需求的质量高低决定了软件产品的软件需求的质量高低决定了软件产品的成败和质量成败和质量据统计,软件中的据统计,软件中的错误大约有错误大约有15%来源来源于软件需求;软件于软件
2、需求;软件失败大约有失败大约有50%是需是需求的不合理所致求的不合理所致1.1 需求是软件开发成败的关键需求是软件开发成败的关键ESPITI(欧洲软件过程改进培训倡议)(欧洲软件过程改进培训倡议)对对3800名软件人员进行了一个调查,一名软件人员进行了一个调查,一半以上人认为软件的最大两个问题是:半以上人认为软件的最大两个问题是:需求规格说明及管理客户需求需求规格说明及管理客户需求需求规格说明需求规格说明管理客户需求管理客户需求建档建档软件测试软件测试项目管理项目管理编码编码1.2 软件需求错误的代价软件需求错误的代价软件需求的错误在后期会被放大软件需求的错误在后期会被放大0.1-0.20.5
3、12520需求阶段需求阶段设计阶段设计阶段编码阶段编码阶段单元测试单元测试验收测试验收测试维护阶段维护阶段2 软件需求工程软件需求工程简单讲,软件需求工程就是获取用户简单讲,软件需求工程就是获取用户需求的过程需求的过程软件需求工程软件需求工程是需求供需双方是需求供需双方采取采取被被证明行之有效的原理、方法,通过证明行之有效的原理、方法,通过使使用用适当的工具和符合体系,正确、全适当的工具和符合体系,正确、全面地面地描述描述用户待开发系统的行为特征、用户待开发系统的行为特征、约束条件的过程约束条件的过程 2.1需求工程的目标需求工程的目标需求工程的需求工程的目标目标是得到清晰、一致且无是得到清晰
4、、一致且无二义的需求模型二义的需求模型通常使用需求规格说明书(通常使用需求规格说明书(SRS)的形)的形式来定义待开发系统的所有外部特征和式来定义待开发系统的所有外部特征和内部质量属性内部质量属性2.2需求工程涉及的角色需求工程涉及的角色需求工程涉及到的角色包括:需求工程涉及到的角色包括:客户客户使用者使用者系统分析师系统分析师项目开发人员项目开发人员项目管理人员项目管理人员2.3 需求工程的基本任务需求工程的基本任务需求工程需求工程需求开发需求开发需求获取需求获取需求分析需求分析需求验证需求验证需求规格说明需求规格说明需求管理需求管理变更管理变更管理2.3.1 需求获取需求获取需求获取需求获
5、取过程将归纳和整理用户提出的过程将归纳和整理用户提出的各种问题和需求,从各种问题和需求,从非形式化非形式化的陈述中的陈述中提取用户需求提取用户需求需求获取的工具是需求获取的工具是Word等文字记录工等文字记录工具具2.3.2 需求分析需求分析需求分析需求分析是是系统分析员将利用特定的方系统分析员将利用特定的方法和工具将需求获取过程中得到的非形法和工具将需求获取过程中得到的非形式化需求进行式化需求进行形式化描述形式化描述,最终产生需,最终产生需求规格说明书(求规格说明书(SRS)需求分析的需求分析的方法方法包括:结构化的方法,包括:结构化的方法,面向对象的方法和原型法面向对象的方法和原型法需求分
6、析的需求分析的工具工具有有:DFD图,图,UML用用例图等例图等2.3.3 需求验证需求验证需求验证需求验证是对需求规格说明书(是对需求规格说明书(SRS)的质量进行检验的过程的质量进行检验的过程这个过程确定这个过程确定SRS是否存在是否存在需求遗漏需求遗漏、需求错误需求错误以及以及需求不一致需求不一致的地方,如果的地方,如果需求不合格则需要进一步进行需求工程需求不合格则需要进一步进行需求工程需求验证的工具有需求验证的工具有Xupper(业务建模,(业务建模,需求追溯)需求追溯)2.4 需求的层次性需求的层次性软件需求具有不同的层次性,将形成不软件需求具有不同的层次性,将形成不同的需求,包括:
7、同的需求,包括:业务需求(业务需求(Business Requirement)用户需求(用户需求(User Requirement)功能需求(功能需求(Functional Requirement)2.4.1 业务需求业务需求业务需求业务需求反映了用户对系统和产品的高反映了用户对系统和产品的高层次的目标要求,他们是用户组织机构层次的目标要求,他们是用户组织机构流程的再现和模拟,是从用户组织机构流程的再现和模拟,是从用户组织机构的工作流程的角度进行的需求描述的工作流程的角度进行的需求描述业务需求使用流程图、活动图等来表达业务需求使用流程图、活动图等来表达制作业务需求的工具包括:制作业务需求的工具
8、包括:BPwin,Microsoft Visio,UML工具等工具等2.4.1.1 业务流程举例业务流程举例1医生导医生导出出睡眠睡眠数据进数据进行分析行分析的流程的流程2.4.1.2 业务流程举例业务流程举例22.4.2 用户需求用户需求用户需求用户需求描述了用户使用产品必须要完描述了用户使用产品必须要完成的任务成的任务用户需求从用户的角度看系统,一般通用户需求从用户的角度看系统,一般通过用例图来表达过用例图来表达用户需求的用户需求的表达工具表达工具有有:UML用例图用例图2.4.2.1 用户需求举例用户需求举例1点餐系统的用例图点餐系统的用例图2.4.2.2 用户需求举例用户需求举例2学生
9、成绩管理系统的用例图学生成绩管理系统的用例图2.4.3 功能需求功能需求功能需求功能需求定义了定义了开发人员开发人员必须实现的软件功能,必须实现的软件功能,从而使用户能够完成任务,满足其业务需求从而使用户能够完成任务,满足其业务需求功能需求从开发人员的角度看系统,可以使用功能需求从开发人员的角度看系统,可以使用结构图表达结构图表达功能需求的表达工具有:功能需求的表达工具有:Microsoft Visio2.4.3.1 功能需求举例功能需求举例1社交网站功能需求图社交网站功能需求图2.4.3.2 功能需求举例功能需求举例22.4.4 软件不同层次需求的关系软件不同层次需求的关系需求规格说明需求规
10、格说明业务需求业务需求用户需求用户需求系统需求系统需求功能需求功能需求质量需求质量需求其它非其它非功能需求功能需求领域需求领域需求(约束条件)(约束条件)项目视图与范围文档项目视图与范围文档使用实例文档使用实例文档2.4.5 软件需求文档的组成软件需求文档的组成3 软件需求工具概述软件需求工具概述软件需求工具软件需求工具是辅助系统分析人员对用是辅助系统分析人员对用户需求进行提取、整理和分析的辅助工户需求进行提取、整理和分析的辅助工具具软件需求工具使用形式化的图形符号以软件需求工具使用形式化的图形符号以及形式化的描述语言来完成软件需求的及形式化的描述语言来完成软件需求的开发开发3.1 软件需求工
11、具的分类软件需求工具的分类可以按照不同的方式对软件需求分析工可以按照不同的方式对软件需求分析工具进行分类:具进行分类:按自动化程度进行分类按自动化程度进行分类按分析方法进行分类按分析方法进行分类1.按特定的应用领域进行分类按特定的应用领域进行分类3.1.1 按自动化程度进行分类按自动化程度进行分类按照自动化程度可以分类两类:按照自动化程度可以分类两类:人工方式为主人工方式为主的分析工具,使用的分析工具,使用Word等工具按照结构化分析和设计技术进行等工具按照结构化分析和设计技术进行需求分析需求分析自动化需求分析工具自动化需求分析工具,通过保证需求信,通过保证需求信息的一致性和完整性来实现需求分
12、析的息的一致性和完整性来实现需求分析的自动化,比如自动化,比如Xupper工具工具3.1.2 按照分析方法进行分类按照分析方法进行分类按照支持分析方法对需求工具分类:按照支持分析方法对需求工具分类:支持支持结构化分析方法结构化分析方法需求分析工具,这需求分析工具,这类工具支持数据流图和数据字典的生成类工具支持数据流图和数据字典的生成和管理,比如和管理,比如BPwin支持支持面向对象方法面向对象方法的需求分析工具,这的需求分析工具,这类工具支持类工具支持UML语言的表达,比如语言的表达,比如Rational Rose1.支持支持原型化原型化分析的需求分析工具,这类分析的需求分析工具,这类工具支持
13、快速生成原型,比如工具支持快速生成原型,比如VB3.1.3 按照特定的领域进行分类按照特定的领域进行分类按照支持的按照支持的业务领域业务领域进行分类:进行分类:支持支持ERP领域的需求分析工具领域的需求分析工具支持实时系统的需求分析工具支持实时系统的需求分析工具1.支持其它系统的需求分析工具支持其它系统的需求分析工具3.2 需求分析工具的功能特性需求分析工具的功能特性针对不同的设计方法需求分析工具应该针对不同的设计方法需求分析工具应该尽量满足该设计方法的功能特性尽量满足该设计方法的功能特性结构化方法结构化方法面向对象的方法面向对象的方法1.共性共性3.2.1 针对针对结构化方法结构化方法支持多
14、种分析与设计方法(支持多种分析与设计方法(SA、SADT,面向数据结构等)面向数据结构等)支持数据流图(支持数据流图(DFD)的编辑功能)的编辑功能图形的一致化检查,防止数据项的重名图形的一致化检查,防止数据项的重名等错误等错误3.2.2 针对面向对象的方法针对面向对象的方法支持多种面向对象方法(如支持多种面向对象方法(如OMT、OOSE以及以及UML)支持类定义和类关系描述支持类定义和类关系描述支持对象的交互描述支持对象的交互描述一致性检查,检查对象关系的一致性一致性检查,检查对象关系的一致性3.2.3 共同特性共同特性支持信息仓库支持信息仓库支持版本控制支持版本控制支持脚本支持脚本支持生成
15、需求规格说明书支持生成需求规格说明书图形化界面图形化界面形式化的需求表达形式化的需求表达3.3 衡量需求工具的依据衡量需求工具的依据可以使用以下方法对需求工具进行衡量可以使用以下方法对需求工具进行衡量使用的方便程度,图形化界面使用的方便程度,图形化界面与设计工具的衔接程度与设计工具的衔接程度资源占用情况资源占用情况是否提供错误检测机制是否提供错误检测机制1.用户领域知识的提示功能用户领域知识的提示功能4 需求分析方法需求分析方法需求分析的方法包括:需求分析的方法包括:自顶向下自顶向下的分的分析和析和自底向上自底向上的分析方法的分析方法自顶向下的分析方法采用逐层分解的自顶向下的分析方法采用逐层分
16、解的方式分析系统,用数据流图和数据字方式分析系统,用数据流图和数据字典描述系统典描述系统4.1 数据流图数据流图数据流图(数据流图(Data Flow Diagram DFD)是从数据传递和加工的角度,以图形化是从数据传递和加工的角度,以图形化的方式刻画数据流从输入到输出的变换的方式刻画数据流从输入到输出的变换过程。其包含过程。其包含3中基本元素:中基本元素:命名的箭头表示命名的箭头表示数据流数据流圆圈表示圆圈表示处理处理1.矩形或其他形状表示矩形或其他形状表示数据存贮数据存贮4.1.1 数据流图举例数据流图举例通用的数据流图通用的数据流图数据存储数据存储数据输入数据输入数据输出数据输出处理处
17、理数据流数据流数据流数据流信息需求信息需求4.1.2 数据流图的分层数据流图的分层当系统比较复杂时,为了便于理解、控当系统比较复杂时,为了便于理解、控制其复杂性,可以采用分层方法描述数制其复杂性,可以采用分层方法描述数据流图:据流图:一层描述系统的全貌一层描述系统的全貌二层描述各子系统的结构二层描述各子系统的结构1.分解直到每层都非常清楚分解直到每层都非常清楚4.1.2.1 数据流图的分层举例数据流图的分层举例系统的第三层数据流图(系统的第三层数据流图(DFD)系统的系统的第二层第二层数据流图(数据流图(DFD)Medicine Cost ComputationEnter Medicine N
18、ameOutput Medicine CostGet Research Cost per UnitEnter Medicine NameGet Production Cost per UnitOutput Medicine CostMedicine Cost ComputationMedicine NameMedicine Cost系统的第一层数据流图(系统的第一层数据流图(DFD)4.2 数据字典数据字典数据字典(数据字典(Data Dictionary)是对系统是对系统中的数据的详细描述,是各类数据结构中的数据的详细描述,是各类数据结构的属性清单,它与数据流图互为注释的属性清单,它与数据流
19、图互为注释数据字典包括数据字典包括5个部分:个部分:数据项数据项数据结构数据结构数据流数据流数据存储数据存储1.处理过程处理过程4.2.1 数据项数据项数据项数据项是数据的最小单位是数据的最小单位数据项描述数据项描述=数据项名,数据项含义说数据项名,数据项含义说明,别名,数据类型,长度,取值范围,明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系取值含义,与其他数据项的逻辑关系4.2.2 数据结构数据结构数据结构数据结构是数据项的有意义的组合结果是数据项的有意义的组合结果数据结构描述数据结构描述=数据结构名,含义说明,数据结构名,含义说明,组成:组成:数据项或数据结构数据项或
20、数据结构 4.2.3 数据流数据流数据流数据流可以是数据项或数据结构,它表可以是数据项或数据结构,它表示某一处理过程中数据在系统内的示某一处理过程中数据在系统内的传输传输路径路径数据流描述数据流描述=数据流名,说明,数据流数据流名,说明,数据流来源,数据流去向,组成:来源,数据流去向,组成:数据结构数据结构,平均流量,高峰期流量平均流量,高峰期流量4.2.4 数据存储数据存储数据存储数据存储是数据的存放场所,也是数据是数据的存放场所,也是数据流的来源或去向之一流的来源或去向之一数据存储描述数据存储描述=数据存储名,说明,编数据存储名,说明,编号,流入的数据流,流出的数据流,组号,流入的数据流,
21、流出的数据流,组成成数据结构数据结构,数据量,存取方式,数据量,存取方式4.2.5 处理过程处理过程处理过程处理过程是对数据流的处理,其处理逻是对数据流的处理,其处理逻辑通常使用判定树来描述,数据字典中辑通常使用判定树来描述,数据字典中的处理过程只描述说明性的信息的处理过程只描述说明性的信息处理过程描述处理过程描述=处理过程名,编号,说处理过程名,编号,说明,输入:明,输入:数据流数据流,输出:,输出:数据流数据流,处理:处理:简要说明简要说明4.3 常用的需求图形分析工具常用的需求图形分析工具UML图图数据流图(数据流图(DFD)数据字典(数据字典(DD)判定表(判定表(Decision T
22、able)判定树(判定树(Decision Tree)输入处理输出图(输入处理输出图(IPO)Warnier图图5.典型的需求分析工具介绍典型的需求分析工具介绍有各种需求分析工具,典型的包括:有各种需求分析工具,典型的包括:BPwinMicrosoft Visio1.UML工具工具5.1 BPwin工具简介工具简介BPWin是美国是美国CA公司生产的用于业务流公司生产的用于业务流程可视化、分析和提高业务处理能力的程可视化、分析和提高业务处理能力的建模环境建模环境BPwin可以构建以下几种模型:可以构建以下几种模型:功能建模功能建模数据流建模数据流建模1.工作流建模工作流建模5.1.1 BPwi
23、n工具的特点工具的特点BPwin具有以下几个特点具有以下几个特点可构建各种需求模型可构建各种需求模型将与建立过程模型的有关任务自动化将与建立过程模型的有关任务自动化为复杂项目的分析提供统一的分析环境为复杂项目的分析提供统一的分析环境可以模型管理工具可以模型管理工具ModelMart集成使用集成使用可与数据建模工具可与数据建模工具ERwin集成使用集成使用符合美国政府符合美国政府FIPS标准标准1.支持支持Unicode5.2 Microsoft Visio工具简介工具简介Microsoft Visio是流程图和矢量绘图软件是流程图和矢量绘图软件Microsoft Visio软件可以方便地绘制软
24、件可以方便地绘制业务业务流程图流程图、网络图网络图、工作流图表工作流图表、数据库、数据库模型和软件图表等,是用户直观地了解模型和软件图表等,是用户直观地了解系统的业务流程和系统状态系统的业务流程和系统状态5.2.1 Microsoft Visio工具界面工具界面Microsoft Visio 界面界面课堂讨论课堂讨论学生讲解学生讲解:谈谈你是如何获取用户需求,:谈谈你是如何获取用户需求,又是如何表达软件需求的?又是如何表达软件需求的?你使用过什么样的需求工具?你使用过什么样的需求工具?作业作业名次解释名次解释软件需求工程软件需求工程简答题简答题数据流图包括哪些部分的内容?如何描数据流图包括哪些部分的内容?如何描述数据流图?述数据流图?1.面向对象需求分析中使用什么样的工具面向对象需求分析中使用什么样的工具来描述功能需求来描述功能需求