《Week05_软件需求及需求工具课件.ppt》由会员分享,可在线阅读,更多相关《Week05_软件需求及需求工具课件.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、*软件需求工具软件需求工具Software requirement tool任课老师:黄武任课老师:黄武541*提纲提纲软件需求概述软件需求概述软件需求工程软件需求工程软件需求工具概述软件需求工具概述需求分析方法需求分析方法典型的需求分析工具介绍典型的需求分析工具介绍542你理解软件需求吗你理解软件需求吗*什么是软件需求?如何获取,如何表达什么是软件需求?如何获取,如何表达需求?需求?543*1 软件需求概述软件需求概述需求的重要性需求的重要性软件需求的质量高低决定了软件产品的软件需求的质量高低决定了软件产品的成败和质量成败和质量据据统计,软件中的统计,软件中的错误大约有错误大约有15%来源来
2、源于软件需求;软件于软件需求;软件失败大约有失败大约有50%是需是需求的不合理所致求的不合理所致5441.1 需求是软件开发成败的关键需求是软件开发成败的关键ESPITI(欧洲软件过程改进培训倡议)(欧洲软件过程改进培训倡议)对对3800名软件人员进行了一个调查,一名软件人员进行了一个调查,一半以上人认为软件的最大两个问题是:半以上人认为软件的最大两个问题是:需求规格说明及管理客户需求需求规格说明及管理客户需求*1.需求规格说明需求规格说明2.管理客户需求管理客户需求3.建档建档4.软件测试软件测试5.项目管理项目管理6.编码编码5451.2 软件需求错误的代价软件需求错误的代价软件需求的错误
3、在后期会被放大软件需求的错误在后期会被放大*0.1-0.20.512520需求阶段需求阶段设计阶段设计阶段编码阶段编码阶段单元测试单元测试验收测试验收测试维护阶段维护阶段546*2 软件需求工程软件需求工程简单简单讲,软件需求工程就是获取用户讲,软件需求工程就是获取用户需求的需求的过程过程软件需求工程软件需求工程是需求供需双方是需求供需双方采取采取被被证明行之有效的证明行之有效的原理、方法原理、方法,通过使,通过使用适当的工具和符用适当的工具和符号号体系,正确、全体系,正确、全面地面地描述描述用户待开发系统的行为特征、用户待开发系统的行为特征、质量要求、约束条件的过程质量要求、约束条件的过程
4、5472.1需求工程的目标需求工程的目标需求工程的需求工程的目标目标是得到清晰、一致且无是得到清晰、一致且无二义的需求模型二义的需求模型通常使用需求规格说明书(通常使用需求规格说明书(SRS)的形式)的形式来定义待开发系统的所有外部特征和内来定义待开发系统的所有外部特征和内部质量属性部质量属性*548*2.2需求工程涉及的角色需求工程涉及的角色需求工程涉及需求工程涉及到的到的角色角色包括:包括:1.客户客户2.使用者使用者3.系统分析师系统分析师4.项目开发人员项目开发人员5.项目管理人员项目管理人员系统系统分析分析师师开发人员开发人员用户用户549*2.3 需求工程的基本任务需求工程的基本任
5、务需求工程需求工程需求开发需求开发需求获取需求获取需求分析需求分析需求验证需求验证需求规格说明需求规格说明需求管理需求管理变更管理变更管理5410*2.3.1 需求获取需求获取需求获取需求获取过程将归纳和整理用户提出的过程将归纳和整理用户提出的各种问题和需求,从各种问题和需求,从非形式化非形式化的陈述中的陈述中提取用户需求提取用户需求需求需求获取获取的工具是的工具是Word等等文字文字记录工记录工具具5411*2.3.2 需求分析需求分析需求分析需求分析是是系统分析员将利用特定的方系统分析员将利用特定的方法和工具将需求获取过程中得到的非形法和工具将需求获取过程中得到的非形式化需求进行式化需求进
6、行形式化描述形式化描述,最终产生需,最终产生需求规格说明书(求规格说明书(SRS)需求分析需求分析的的方法方法包括:结构化的方法,包括:结构化的方法,面向对象的方法和面向对象的方法和原型法原型法需求分析的需求分析的工具工具有有:DFD图,图,UML用用例图等例图等5412*2.3.3 需求验证需求验证需求验证需求验证是对需求规格说明书(是对需求规格说明书(SRS)的)的质量进行检验的过程质量进行检验的过程这个过程确定这个过程确定SRS是否存在是否存在需求遗漏需求遗漏、需需求错误求错误以及以及需求不一致需求不一致的地方,如果需的地方,如果需求不合格则需要进一步进行需求工程求不合格则需要进一步进行
7、需求工程需求验证的工具有需求验证的工具有Xupper(业务建模,(业务建模,需求追溯)需求追溯)5413*2.4 需求的层次性需求的层次性软件需求具有不同的层次性,将形成不软件需求具有不同的层次性,将形成不同的需求,包括:同的需求,包括:业务需求(业务需求(Business Requirement)用户需求(用户需求(User Requirement)功能需求(功能需求(Functional Requirement)业务需求业务需求用户需求用户需求功能需求功能需求开发人员开发人员客户沟通,系统分析师客户沟通,系统分析师5414*2.4.1 业务需求业务需求业务需求业务需求反映了用户对系统和产品
8、的高反映了用户对系统和产品的高层次的目标要求,他们是用户层次的目标要求,他们是用户组织机构组织机构流程流程的再现和模拟,是从用户组织机构的再现和模拟,是从用户组织机构的工作流程的角度进行的需求描述的工作流程的角度进行的需求描述业务需求使用业务需求使用流程图流程图、活动图等来表达、活动图等来表达制作业务需求的工具包括:制作业务需求的工具包括:BPwin,Microsoft Visio,UML工具等工具等54152.4.1.1 业务流程举例业务流程举例1*医生导医生导出出睡眠睡眠数据进数据进行分析行分析的流程的流程54162.4.1.2 业务流程举例业务流程举例2*5417*2.4.2 用户需求用
9、户需求用户需求用户需求描述了用户使用产品必须要完描述了用户使用产品必须要完成的任务成的任务用户需求从用户的角度看系统,一般通用户需求从用户的角度看系统,一般通过用例图来表达过用例图来表达用户需求的用户需求的表达工具表达工具有有:UML用例图用例图54182.4.2.1 用户需求举例用户需求举例1*点餐系统的用例图点餐系统的用例图54192.4.2.2 用户需求举例用户需求举例2*学生成绩管理系统的用例图学生成绩管理系统的用例图5420*2.4.3 功能需求功能需求功能需求功能需求定义了定义了开发人员开发人员必须实现的软件功能,必须实现的软件功能,从而使用户能够完成任务,满足其业务需求从而使用户
10、能够完成任务,满足其业务需求功能需求从开发人员的角度看系统,可以使用功能需求从开发人员的角度看系统,可以使用结构图表达(模块图,接口)结构图表达(模块图,接口)功能需求的表达工具有:功能需求的表达工具有:Microsoft Visio54212.4.3.1 功能需求举例功能需求举例1*社交网站功能需求图社交网站功能需求图54222.4.3.2 功能需求举例功能需求举例2*5423*2.4.4 软件不同层次需求的关系软件不同层次需求的关系需求规格说明需求规格说明业务需求业务需求用户需求用户需求系统需求系统需求功能需求功能需求质量需求质量需求其它非其它非功能需求功能需求领域需求领域需求(约束条件)
11、(约束条件)项目视图与范围文档项目视图与范围文档使用实例文档使用实例文档54242.4.5 软件需求文档的组成软件需求文档的组成*5425*3 软件需求工具概述软件需求工具概述软件需求工具软件需求工具是辅助系统分析人员对用是辅助系统分析人员对用户需求进行提取、整理和分析的辅助工户需求进行提取、整理和分析的辅助工具具软件需求工具使用形式化的软件需求工具使用形式化的图形符号图形符号以以及形式化的描述语言来完成软件需求的及形式化的描述语言来完成软件需求的开发开发5426*3.1 软件需求工具的分类软件需求工具的分类可以按照不同的方式对软件需求分析工可以按照不同的方式对软件需求分析工具进行分类:具进行
12、分类:1.按按自动化程度自动化程度进行分类进行分类2.按按分析方法分析方法进行分类进行分类3.按特定的按特定的应用领域应用领域进行分类进行分类5427*3.1.1 按自动化程度进行分类按自动化程度进行分类按照按照自动化程度自动化程度可以分类两类:可以分类两类:1.人工方式为主人工方式为主的分析工具,使用的分析工具,使用Word等工具按照结构化分析和设计技术进行等工具按照结构化分析和设计技术进行需求分析需求分析2.自动化需求分析工具自动化需求分析工具,通过保证需求信,通过保证需求信息的一致性和完整性来实现需求分析的息的一致性和完整性来实现需求分析的自动化,比如自动化,比如Xupper工具工具54
13、283.1.2 按照分析方法进行分类按照分析方法进行分类按照支持分析方法对需求工具分类:按照支持分析方法对需求工具分类:1.支持支持结构化分析方法结构化分析方法需求分析工具,需求分析工具,这类工具支持这类工具支持数据流图和数据字典数据流图和数据字典的的生成和管理,比如生成和管理,比如BPwin2.支持支持面向对象方法面向对象方法的需求分析工具,的需求分析工具,这类工具支持这类工具支持UML语言的表达,比如语言的表达,比如Rational Rose3.支持支持原型化原型化分析的需求分析工具,这分析的需求分析工具,这类工具支持快速生成原型,比如类工具支持快速生成原型,比如VB*54293.1.3
14、按照特定的领域进行分类按照特定的领域进行分类按照按照支持的支持的业务领域业务领域进行分类:进行分类:1.支持支持ERP领域领域的需求分析工具的需求分析工具2.支持支持实时系统实时系统的需求分析工具的需求分析工具3.支持其它系统的需求分析工具支持其它系统的需求分析工具*54303.2 需求分析工具的功能特性需求分析工具的功能特性针对不同的设计方法需求分析工具应该针对不同的设计方法需求分析工具应该尽量满足该设计方法的功能特性尽量满足该设计方法的功能特性1.结构化方法结构化方法2.面向对象的方法面向对象的方法3.共性共性*5431*3.2.1 针对针对结构化方法结构化方法1.支持多种分析与设计方法(
15、支持多种分析与设计方法(SA、SADT,面向数据结构等),面向数据结构等)2.支持数据流图(支持数据流图(DFD)的编辑功能)的编辑功能3.图形的一致化检查,防止数据项的重图形的一致化检查,防止数据项的重名等错误名等错误54323.2.2 针对面向对象的方法针对面向对象的方法1.支持多种面向对象方法(如支持多种面向对象方法(如OMT、OOSE以及以及UML)2.支持类定义和类关系描述支持类定义和类关系描述3.支持对象的交互描述支持对象的交互描述4.一致性检查,检查对象关系的一致性一致性检查,检查对象关系的一致性*5433*3.2.3 共同特性共同特性1.支持信息仓库支持信息仓库2.支持版本控制
16、支持版本控制3.支持脚本支持脚本4.支持生成需求规格说明书支持生成需求规格说明书5.图形化界面图形化界面6.形式化的需求表达形式化的需求表达7.5434*3.3 衡量需求工具的依据衡量需求工具的依据可以使用以下方法对需求工具进可以使用以下方法对需求工具进行衡量:行衡量:1.使用的方便程度,使用的方便程度,图形化界面图形化界面2.与设计工具的衔接程度与设计工具的衔接程度3.资源占用情况资源占用情况4.是否提供是否提供错误检测错误检测机制机制5.用户领域知识的提示功能用户领域知识的提示功能5435*4 需求分析方法需求分析方法需求分析的方法包括:需求分析的方法包括:自顶向下自顶向下的的分析和分析和
17、自底向上自底向上的分析方法的分析方法自顶向下的分析方法采用逐层分解自顶向下的分析方法采用逐层分解的方式分析系统,用数据流图和数的方式分析系统,用数据流图和数据字典描述系统据字典描述系统5436*4.1 数据流图数据流图数据流图(数据流图(Data Flow Diagram DFD)是从数据传递和加工的角度,以图形化是从数据传递和加工的角度,以图形化的方式刻画数据流从输入到输出的变换的方式刻画数据流从输入到输出的变换过程。其包含过程。其包含3中基本元素:中基本元素:1.命名的箭头表示命名的箭头表示数据流数据流2.圆圈表示圆圈表示处理处理3.矩形或其他形状表示矩形或其他形状表示数据存贮数据存贮54
18、37*4.1.1 数据流图举例数据流图举例通用的数据流图通用的数据流图数据存储数据存储数据输入数据输入数据输出数据输出处理处理数据流数据流数据流数据流信息需求信息需求5438*4.1.2 数据流图的分层数据流图的分层当系统比较复杂时,为了便于理解、控当系统比较复杂时,为了便于理解、控制其复杂性,可以采用制其复杂性,可以采用分层分层方法描述数方法描述数据流图:据流图:1.一一层描述系统的全貌层描述系统的全貌2.二二层描述各子系统的结构层描述各子系统的结构3.分解直到每层都非常清楚分解直到每层都非常清楚5439*4.1.2.1 数据流图的分层举例数据流图的分层举例系统的系统的第三层第三层数据流图(
19、数据流图(DFD)系统的系统的第二层第二层数据流图(数据流图(DFD)Enter Medicine NameOutput Medicine CostGet Research Cost per UnitEnter Medicine NameGet Production Cost per UnitOutput Medicine CostMedicine Cost ComputationMedicine NameMedicine Cost系统的系统的第一层第一层数据流图(数据流图(DFD)5440Medicine Cost Computation*4.2 数据字典数据字典数据字典(数据字典(Data
20、 Dictionary)是对系统中是对系统中的数据的详细描述,是各类数据结构的的数据的详细描述,是各类数据结构的属性清单,它与数据流图互为注释属性清单,它与数据流图互为注释数据字典包括数据字典包括5个部分:个部分:1.数据项数据项2.数据结构数据结构3.数据流数据流4.数据存储数据存储5.处理过程处理过程5441*4.2.1 数据项数据项数据项数据项是数据的最小单位是数据的最小单位数据项描述数据项描述=数据项名,数据项含义说数据项名,数据项含义说明,别名,数据类型,长度,取值范围,明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系取值含义,与其他数据项的逻辑关系例如:例如:名
21、字,学生姓名,名字,学生姓名,String,128Bytes,字符,在学生记录中字符,在学生记录中使用使用5442*4.2.2 数据结构数据结构数据结构数据结构是数据项的有是数据项的有意义意义的组合结果的组合结果数据结构描述数据结构描述=数据结构名,含义说明,数据结构名,含义说明,组成:组成:数据项或数据结构数据项或数据结构 例如:例如:学生,学生基本信息,组成:学生,学生基本信息,组成:名字,名字,出生年月,性别,学院、专业,年级出生年月,性别,学院、专业,年级5443*4.2.3 数据流数据流数据流数据流可以是数据项或数据结构,它表可以是数据项或数据结构,它表示某一处理过程中数据在系统内的
22、示某一处理过程中数据在系统内的传输传输路径路径数据流描述数据流描述=数据流名,说明,数据流数据流名,说明,数据流来源,数据流去向,组成:来源,数据流去向,组成:数据结构数据结构,平均流量,高峰期流量平均流量,高峰期流量例如:例如:学生信息流,传输修改的学生信息,信息编辑学生信息流,传输修改的学生信息,信息编辑器,数据库,组成:器,数据库,组成:学生学生,50个个/s,1000/s5444*4.2.4 数据存储数据存储数据存储数据存储是数据的存放场所,也是数据是数据的存放场所,也是数据流的来源或去向之一流的来源或去向之一数据存储描述数据存储描述=数据存储名,说明,编数据存储名,说明,编号,流入的
23、数据流,流出的数据流,组号,流入的数据流,流出的数据流,组成成数据结构数据结构,数据量,存取方式,数据量,存取方式例如:例如:学生信息存贮,学生学生信息存贮,学生信息信息,00001,学生,学生信息流,信息流,None,组成,组成:学生学生,50个个,批批处理处理 5445*4.2.5 处理过程处理过程处理过程处理过程是对数据流的处理,其处理逻是对数据流的处理,其处理逻辑通常使用判定树来描述,数据字典中辑通常使用判定树来描述,数据字典中的处理过程只描述说明性的信息的处理过程只描述说明性的信息处理过程描述处理过程描述=处理过程名,编号,说处理过程名,编号,说明,输入:明,输入:数据流数据流,输出
24、:,输出:数据流数据流,处理:处理:简要说明简要说明例如:例如:学生编辑,学生编辑,00011,输入学生输入学生信息信息,输入:,输入:学生学生,输出:输出:学生学生,处理:,处理:编辑编辑5446*4.3 常用的需求图形分析工具常用的需求图形分析工具UML图图数据流图(数据流图(DFD)数据字典(数据字典(DD)判定表(判定表(Decision Table)判定树(判定树(Decision Tree)输入处理输出图(输入处理输出图(IPO)Warnier图(表示数据层次结构)图(表示数据层次结构)54475.典型的需求分析工具介绍典型的需求分析工具介绍有有各种需求分析工具,典型的包括:各种需
25、求分析工具,典型的包括:1.BPwin2.Microsoft Visio3.UML工具工具*54485.1 BPwin工具简介工具简介BPWin是美国是美国CA公司研发的用于业务流公司研发的用于业务流程可视化、分析和提高业务处理能力的程可视化、分析和提高业务处理能力的建模环境建模环境BPwin可以构建以下几种模型:可以构建以下几种模型:1.功能建模功能建模2.数据流建模数据流建模3.工作流建模工作流建模*54495.1.1 BPwin工具的特点工具的特点BPwin具有以下几个特点具有以下几个特点1.可构建各种需求模型可构建各种需求模型2.将与建立将与建立过程模型过程模型的有关任务自动化的有关任
26、务自动化3.为为复杂项目的分析提供统一的分析环境复杂项目的分析提供统一的分析环境4.可以模型管理工具可以模型管理工具ModelMart集成使用集成使用5.可可与数据建模工具与数据建模工具ERwin集成使用集成使用6.符合美国政府符合美国政府FIPS标准标准7.支持支持Unicode*54505.2 Microsoft Visio工具简介工具简介Microsoft Visio是流程图和矢量绘图软件是流程图和矢量绘图软件Microsoft Visio软件可以方便地绘制软件可以方便地绘制业务业务流程图流程图、网络图网络图、工作流图表工作流图表、数据库数据库模型模型和和软件图表软件图表等,等,是用户是
27、用户直观地了解直观地了解系统的业务流程和系统状态系统的业务流程和系统状态*54515.2.1 Microsoft Visio工具界面工具界面Microsoft Visio 界面界面*5452*课堂讨论课堂讨论学生讲解学生讲解:谈谈你是如何获取用户需求,:谈谈你是如何获取用户需求,又是如何表达软件需求的?又是如何表达软件需求的?你使用过什么样的需求工具?你使用过什么样的需求工具?5453*作业作业名次解释名次解释1.软件需求工程软件需求工程简答题简答题1.数据流图包括哪些部分的内容?如何描数据流图包括哪些部分的内容?如何描述数据流图?述数据流图?2.面向对象需求分析中使用什么样的工具面向对象需求分析中使用什么样的工具来描述功能需求来描述功能需求5454