1、1需求分析需求分析2软件生存周期软件生存周期可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计实实 现现集成测试集成测试确认测试确认测试使用与维护使用与维护退役退役软件定义软件定义软件开发软件开发软件使用软件使用与维护与维护软件生命周期软件生命周期3第第3 3章章 需求分析需求分析F 开发一个软件系统前,必须了解用户的期开发一个软件系统前,必须了解用户的期望和要求望和要求-软件需求软件需求 -需求分析过程需求分析过程F 重要性:重要性:-软件开发的基础和前提软件开发的基础和前提-最终目标软件系统验收的标准最终目标软件系统验收的标准-避免或者尽早剔除早期的错误避免或者尽早剔除早
2、期的错误需求分析需求分析4第第3 3章章 需求分析需求分析需求分析需求分析5F 困难:困难:-片面性片面性,不完全不完全-模糊性模糊性,不准确不准确-不一致性不一致性,歧义等等歧义等等 因此必须使用系统的方法、借助于一系列行之因此必须使用系统的方法、借助于一系列行之 有效的技术和工具进行需求分析有效的技术和工具进行需求分析 需求分析需求分析需求分析需求分析-应用系统复杂,庞大应用系统复杂,庞大6需求分析需求分析需求分析需求分析F 需求分析的任务:需求分析的任务:准确的回答准确的回答“系统必须做什么?系统必须做什么?”FF仍然回答仍然回答“What”,而不是,而不是“How”,但更细致、精确(合
3、同的拟定)但更细致、精确(合同的拟定)7分析方法都遵守下述准则 尽管目前有许多不同的用于需求分析的结构化分析方法,但是,所有这些分析方法都遵守下述准则:(1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型。(2)必须定义软件应完成的功能,这条准则要求建立功能模型。(3)必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型。(4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节。81.需求分析的任务需求分析的任务1、确定对系统的综合要求、确定对系统的综合要求 功能要求功能要求(functional requirements):系统必须做什么?系统必须做什么?性能要
4、求性能要求(performance requirements):做得怎样?做得怎样?例:例:response time,memory,back-up memory,security,运行要求运行要求(operational requirements):运行环境、软:运行环境、软硬件配置等。硬件配置等。未来可能的扩充要求未来可能的扩充要求(possible evolution):1.需求分析的任务需求分析的任务9(5)可靠性和可用性需求(6)出错处理与安全需求(7)接口需求(8)约束因素等101.需求分析的任务需求分析的任务2、分析数据、分析数据(系统的数据要求系统的数据要求)建立概念模型建立概
5、念模型(conceptual models):E-R Diagram形象描绘数据结构形象描绘数据结构:Data Hierarchy,Warnier Diagram,IPO数据结构规范化数据结构规范化(Normalization)3、导出逻辑模型:抽取其、导出逻辑模型:抽取其“做什么做什么”的本质的本质 4、修正计划:重估成本、进度等、修正计划:重估成本、进度等111.需求分析的任务需求分析的任务5、开发原型系统、开发原型系统(Prototyping)检验方案的正确性检验方案的正确性 系统是否满足需求系统是否满足需求“样机试用样机试用”CDG-系统原型是对系统的主要功能和行为的直观描述系统原型是
6、对系统的主要功能和行为的直观描述122.2.需求分析的步骤需求分析的步骤2.需求分析的步骤需求分析的步骤132.2.需求分析的步骤需求分析的步骤1、调查研究调查研究(1)沿)沿数据流图数据流图回溯:回溯:数据流图数据流图的输出端是系的输出端是系统的最终目的。向回确定每个数据元素的来统的最终目的。向回确定每个数据元素的来源,可加细源,可加细数据流图数据流图及及数据字典数据字典,并将相关,并将相关算法记录在算法记录在IPO图图中。中。(2)用户复查)用户复查2.需求分析的步骤需求分析的步骤-基本思想基本思想:“自顶向下,逐步求精自顶向下,逐步求精”,抽象和分抽象和分解解142.2.需求分析的步骤需
7、求分析的步骤2、分析与综合、分析与综合(1)问题的具体分析:)问题的具体分析:细化数据流图细化数据流图 加细前后的加细前后的I/O须相同。须相同。分解到须考虑具体实现的代码时即可仃止分解到须考虑具体实现的代码时即可仃止(2)方案的综合)方案的综合2.需求分析的步骤需求分析的步骤153、修正计划:成本和进度的更准确估计、修正计划:成本和进度的更准确估计4、书写文档:、书写文档:需求规格说明书需求规格说明书不需分解不需分解有补充有补充修正修正无补充修正无补充修正分析追踪分析追踪数据流图数据流图用户复查用户复查细细 化化数据流图数据流图需要需要分解分解2.需求分析的步骤需求分析的步骤2.2.需求分析
8、的步骤需求分析的步骤16需求规格说明书需求规格说明书封面:封面:文档编号文档编号:版版 本本 号:号:文档名称:文档名称:项目名称:项目名称:项目负责人:项目负责人:年年 月月 日日编写:编写:核对:核对:审核:审核:批准:批准:开发单位:开发单位:17需求规格说明书需求规格说明书内容内容:系统规格说明:系统规格说明:系统概貌系统概貌 功能要求功能要求 性能要求性能要求 运行要求运行要求 可能增加的要求可能增加的要求 DFD IPO 数据要求:数据要求:DD Hierarchy 或或 Warnier Diagram 用户系统描述用户系统描述 初步用户手册:从用户的观点考虑系统初步用户手册:从用
9、户的观点考虑系统 系统功能、性能系统功能、性能 使用与步骤使用与步骤 等等修正的开发计划:修正的开发计划:成本估计成本估计 资源使用计划资源使用计划 进度计划进度计划18F 任务任务:多方人员一起对多方人员一起对SRS进行复核和评审,以确保进行复核和评审,以确保SRS全面、准确、一致地反映用户需求全面、准确、一致地反映用户需求F 原则原则:-支持各方(用户,需求分析人员、设计人员)共支持各方(用户,需求分析人员、设计人员)共同参与评审工作同参与评审工作2.需求分析的步骤需求分析的步骤当前当前系统系统目标目标系统系统物理物理模型模型逻辑逻辑模型模型逻辑逻辑模型模型物理物理模型模型模型化模型化抽象
10、化抽象化具体化具体化实例化实例化怎怎么么做做做做什什么么当前当前系统系统目标目标系统系统需需求求定定义义24 基于数据流的分析方法基于数据流的分析方法 3.1 数据流图数据流图(Data Flow Diagram)3.2 画数据流图的原则画数据流图的原则 3.3 数据字典数据字典(Data Dictionary)基于数据流的分析方法基于数据流的分析方法253 3.1.1 数据流图数据流图(Data Flow Diagram)F数据流图数据流图(DFD)是一种描述数据以及对数据是一种描述数据以及对数据进行加工转换的图形工具进行加工转换的图形工具F 一个一个DFD主要由以下四个部分组成:主要由以下
11、四个部分组成:-数据流数据流-加工(转换)加工(转换)-外部实体外部实体-数据存储数据存储数据流名称数据流名称转换转换名称名称外部实体名称外部实体名称数据存储名称数据存储名称 数据流图数据流图263 3.2.2 画数据流图的原则画数据流图的原则F先找系统数据的输入输出点,画出外部实体先找系统数据的输入输出点,画出外部实体 数据流图数据流图F确定外部实体的输入输出数据流确定外部实体的输入输出数据流F由源点外部实体的数据流出发,逐渐进行加由源点外部实体的数据流出发,逐渐进行加工,完成整个数据流图工,完成整个数据流图F一张图的处理超过一张图的处理超过59个时,应该进行分层,个时,应该进行分层,把最基
12、本的系统功能做为第把最基本的系统功能做为第0层,从第层,从第1层开始层开始对每个模块的功能进行细化对每个模块的功能进行细化数据流图例子数据流图例子订票员订票员订票员订票员预定预定机票机票准备准备机票机票记帐记帐订票单订票单航班目录航班目录航班号航班号 航班航班费用费用帐单帐单机票机票记帐数据库记帐数据库帐目帐目 数据流图数据流图283.33.3 数据字典数据字典(Data Dictionary)F面向数据流分析需要引进面向数据流分析需要引进数据字典数据字典(DD)FDD以一种准确、简洁的方式对以一种准确、简洁的方式对DFD中中数据流数据流、外外部实体部实体、数据存储数据存储作说明作说明FDD对
13、对DFD中的中的六类元素六类元素进行定义说明,按照元素进行定义说明,按照元素不同,其中的数据条目内容也不相同不同,其中的数据条目内容也不相同-数据流数据流-数据项(数据元素)数据项(数据元素)-数据结构数据结构-数据存储数据存储-处理逻辑(基本加工)处理逻辑(基本加工)-外部实体外部实体订订票票员员订订票票员员预预定定机机票票准准备备机机票票记记帐帐订订票票单单航航班班目目录录航航班班号号 航航班班费费用用帐帐单单机机票票记记帐帐数数据据帐帐目目29数据字典例子数据字典例子:(数据流数据流)数据流名称:订票单数据流名称:订票单 -别名别名:无无 -来源来源:订票员订票员-去向去向:定票定票 -
14、数据流量数据流量:200200份份/天天-组成组成:编号姓名编号姓名+年龄身份证号电话年龄身份证号电话号码订票日期号码订票日期 目的地目的地4 4 数据字典数据字典订订票票员员订订票票员员预预定定机机票票准准备备机机票票记记帐帐订订票票单单航航班班目目录录航航班班号号 航航班班费费用用帐帐单单机机票票记记帐帐数数据据帐帐目目30数据字典例子数据字典例子:(数据项数据项)数据项名称:数据项名称:航班号航班号 -别名别名:HBHHBH -数据类型数据类型:字符串字符串-长度长度:1616位位 -取值范围及含义取值范围及含义:第第1 1位位:进口进口/国产国产 第第2 24 4位:类别位:类别 第第
15、5 57 7位:规格位:规格 第第8 81111位:位:源机场编号源机场编号 第第12121515位:位:目的机场编号目的机场编号4 4 数据字典数据字典订订票票员员订订票票员员预预定定机机票票准准备备机机票票记记帐帐订订票票单单航航班班目目录录航航班班号号 航航班班费费用用帐帐单单机机票票记记帐帐数数据据帐帐目目31数据字典例子数据字典例子:(数据存储数据存储)数据存储名称:数据存储名称:航班目录航班目录 -别名别名:无无 -来源来源:无无-去向去向:定票定票 -组成组成:航班号飞行日期载客量出发航班号飞行日期载客量出发地目的地票价地目的地票价-组织方式:组织方式:索引文件,以航班号为关键字
16、索引文件,以航班号为关键字4 4 数据字典数据字典订订票票员员订订票票员员预预定定机机票票准准备备机机票票记记帐帐订订票票单单航航班班目目录录航航班班号号 航航班班费费用用帐帐单单机机票票记记帐帐数数据据帐帐目目32数据字典例子数据字典例子:(处理逻辑处理逻辑)数据加工名称:数据加工名称:定票定票 -别名别名:无无 -输入输入:订票单订票单-输出输出:航班、费用航班、费用 -激发条件:激发条件:接受到订票单接受到订票单-处理逻辑:处理逻辑:if if 单据订票单单据订票单then if then if 单据是否过期单据是否过期 then then 是否有该航班,是否有机票是否有该航班,是否有机
17、票4 4 数据字典数据字典订订票票员员订订票票员员预预定定机机票票准准备备机机票票记记帐帐订订票票单单航航班班目目录录航航班班号号 航航班班费费用用帐帐单单机机票票记记帐帐数数据据帐帐目目33 基于数据流的分析方法基于数据流的分析方法F DFD DFD是系统中各处理子功能以及它们之间数是系统中各处理子功能以及它们之间数据流动的图形表示据流动的图形表示 -刻划系统功能和行为刻划系统功能和行为F DFD DFD为描述和建模的工具和手段为描述和建模的工具和手段F 如何利用如何利用DFDDFD进行需求分析进行需求分析,描述用户需求描述用户需求?5 5 基于数据流的分析方法基于数据流的分析方法3435F
18、面向数据流分析方法运用了面向数据流分析方法运用了抽象和分解抽象和分解的技的技术术.提供一些提供一些经验知识和规则经验知识和规则以指导需求分析以指导需求分析基于数据流的分析方法基于数据流的分析方法5 5 基于数据流的分析方法基于数据流的分析方法3637383940领书单 进书通知 购书单 缺书单 DFD练习售书系统学生教材购销系统书 库保 管员41领书单 进书通知 进书通知 购书单缺书单 案例I:DFD练习售书系统 1销售 2采购书库保管员学生F1教材存量表 F2缺书登记表 42案例II:工资计算系统的顶层(0层)数据流图人事部门后勤部门出勤表业绩表水电扣款表职工银行工资条工资存款清单工资计算系
19、统43图4.6 工资计算系统第一层数据流图人事部门后勤部门出勤表业绩表水电扣款表职工银行工资条1计算工资实发工资表3工资转存2打印工资清单工资存款清单工资清单F344人事部门出勤表业绩表1.1计算奖金和缺勤扣款奖金发放表1.2计算应发工资应发工资表1.3计算所得税1.4计算实发工资实发工资表水电扣款表后勤部门所得税扣款缺勤扣款表工资清单F3(a)(b)工资计算实发工资表2.1查找职工银行工资账号实发工资2.2生成工资存款清单工资存款清单银行账号职工个人工资账号清单F4图4.7 工资计算系统的第二层数据流图(a)“计算工资”子数据流图;(b)“工资转存”子数据流图45图4.8 工资计算系统的第三
20、层数据流图人事部门1.1.2计算业绩奖出勤表业绩表请假、旷工时数出勤时数1.1.3计算出勤奖1.1.4计算缺勤扣款业绩奖奖惩条例F1缺勤扣款表1.1.5计算各项奖金之和奖金发放表1.1.1统计出勤、请假及旷工时数出勤奖1.2.1计算各项基本数据之和1.2.2计算工资奖金之和工资档案F2应发工资表奖金发放表基本工资46案例分析案例分析IIIIII 应用问题:家庭保安系统应用问题:家庭保安系统传传感感器器1传传感感器器2传传感感器器n基基于于计计算算机机的的家家庭庭保保安安系系统统消消防防部部门门公公安安部部门门报报警警器器47步骤步骤1:1:建立顶级建立顶级DFDDFDF根据问题域与外部环境之间
21、的相互关系定义问题根据问题域与外部环境之间的相互关系定义问题 域的边界,域的边界,即问题域与外界环境之间的输入和输即问题域与外界环境之间的输入和输 出关系出关系 -最高抽象层次最高抽象层次控控制制面面板板传传感感器器显显示示器器警警报报器器电电话话机机家家庭庭保保安安系系统统用用户户命命令令电电话话拨拨号号警警报报类类别别显显示示信信息息传传感感数数据据5 5 基于数据流的分析方法基于数据流的分析方法48步骤步骤2:2:自顶向下,功能分解自顶向下,功能分解F自顶向下、逐步求精对顶级数据流图进行精自顶向下、逐步求精对顶级数据流图进行精化,生成下一级数据流图化,生成下一级数据流图F对用户的需求描述
22、进行语法分析对用户的需求描述进行语法分析-动词动词构成潜在的构成潜在的处理功能处理功能F遵循遵循“强内聚,松耦合强内聚,松耦合”原则原则-名词或名词短语名词或名词短语构成潜在构成潜在数据流、数据源和外部实体数据流、数据源和外部实体基于数据流的分析方法基于数据流的分析方法49控控制制面面板板传传感感器器显显示示器器警警报报器器电电话话机机家家庭庭保保安安系系统统用用户户命命令令电电话话拨拨号号警警报报类类别别显显示示信信息息传传感感数数据据案例分析案例分析:顶级顶级DFDDFD基于数据流的分析方法基于数据流的分析方法50案例分析案例分析:一级一级DFDDFD传感器传感器控制面板控制面板传感传感器
23、监器监控控用户用户命令命令处理处理显示器显示器警报器警报器电话机电话机警报类别警报类别显示信息显示信息电话拨号音频电话拨号音频传感信息传感信息用户命令用户命令传感信息传感信息5 5 基于数据流的分析方法基于数据流的分析方法51案例分析案例分析:二级二级DFDDFD传传感感数数据据传传感感器器监监测测电电话话拨拨号号警警报报类类别别传传感感事事件件处处理理传传感感器器信信息息配配置置数数据据传传感感器器有有效效信信息息生生成成警警报报信信息息报报警警信信息息生生成成警警报报信信息息电电话话号号码码配配置置数数据据基于数据流的分析方法基于数据流的分析方法52案例分析案例分析:一级一级DFDDFD传
24、感器传感器控制面板控制面板传感传感器监器监控控用户用户命令命令处理处理显示器显示器警报器警报器电话机电话机警报类别警报类别显示信息显示信息电话拨号音频电话拨号音频传感信息传感信息用户命令用户命令传感信息传感信息基于数据流的分析方法基于数据流的分析方法53案例分析案例分析:二级二级DFDDFD用户用户命令命令预处预处理理用户命令用户命令系统配置系统配置配置命令配置命令配置信息库配置信息库配置信息配置信息启动启动/停止命令停止命令运行控制运行控制信息显示信息显示运行信息运行信息配置信息配置信息口令设置口令设置口令核对口令核对有效口令有效口令口令信息口令信息5 5 基于数据流的分析方法基于数据流的分
25、析方法54F在分解、精化过程中,把生成的数据流、数在分解、精化过程中,把生成的数据流、数据存储、外部实体在据存储、外部实体在数据字典数据字典中加以定义中加以定义,对对底层转换在底层转换在小说明小说明中作出描述中作出描述步骤步骤2:2:自顶向下,功能分解自顶向下,功能分解5 5 基于数据流的分析方法基于数据流的分析方法55案例分析案例分析:二级二级DFDDFD用户用户命令命令预处预处理理用户命令用户命令系统配置系统配置配置命令配置命令配置信息库配置信息库配置信息配置信息启动启动/停止命令停止命令运行控制运行控制信息显示信息显示运行信息运行信息配置信息配置信息口令设置口令设置口令核对口令核对有效口
26、令有效口令口令信息口令信息5 5 基于数据流的分析方法基于数据流的分析方法56数据字典数据字典数据流名称:有效口令数据流名称:有效口令 名字和别名:有效口令名字和别名:有效口令 数据类型:字符串数据类型:字符串 限制:限制:长度为长度为4 4个字节个字节 相关的转换列表:运行控制,口令核对相关的转换列表:运行控制,口令核对.5 5 基于数据流的分析方法基于数据流的分析方法57案例分析案例分析:二级二级DFDDFD用户用户命令命令预处预处理理用户命令用户命令系统配置系统配置配置命令配置命令配置信息库配置信息库配置信息配置信息启动启动/停止命令停止命令运行控制运行控制信息显示信息显示运行信息运行信
27、息配置信息配置信息口令设置口令设置口令核对口令核对有效口令有效口令口令信息口令信息5 5 基于数据流的分析方法基于数据流的分析方法58小说明小说明处理逻辑名称:运行控制处理逻辑名称:运行控制 功能功能 If If 是停止命令是停止命令 Then Then 向信息显示提供停止运行信息向信息显示提供停止运行信息 停止系统运行停止系统运行 Else Else 向信息显示提供启动运行信息向信息显示提供启动运行信息 启动系统运行启动系统运行 End IfEnd If 设计约束设计约束 .5 5 基于数据流的分析方法基于数据流的分析方法59数据字典数据流名称:定单数据流名称:定单 -别名别名:无无 -数据
28、类型数据类型:日期日期 +产品产品 +数量数量 +-作为输出流的转换列表作为输出流的转换列表:-作为输入流的转换列表作为输入流的转换列表:-使用说明使用说明:必须给出各个数据项必须给出各个数据项-解释性说明解释性说明:无无-缺省值缺省值:日期日期 =当日日期当日日期 6061626364656667686913:07:422-5 2-5 北京某高校可用的电话号码有以下几类:校内电话号北京某高校可用的电话号码有以下几类:校内电话号码由码由4 4位数字组成,第位数字组成,第1 1位数字不是位数字不是0 0;校外电话又分为本;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨市电话和外地电话两类
29、,拨校外电话需先拨0 0,若是本市,若是本市电话则再接着拨电话则再接着拨8 8位数字位数字(第第1 1位不是位不是0)0),若是外地电话则,若是外地电话则拨拨3 3位区码再拨位区码再拨8 8位电话号码位电话号码(第第1 1位不是位不是0)0)。请用定义数据字典的方法,定义上述的电话号码。请用定义数据字典的方法,定义上述的电话号码。作业及解答(第3章)7013:07:42l电话号码电话号码=校内电话号码校内电话号码|校外电话号码校外电话号码l校内电话号码校内电话号码=非零数字非零数字+3 位数字位数字 /后面继续定义后面继续定义l校外电话号码校外电话号码=本市号码本市号码|外地号码外地号码l本市
30、号码本市号码=数字零数字零+8位数字位数字l外地号码外地号码=数字零数字零+3位数字位数字+8位数字位数字l非零数字非零数字=1|2|3|4|5|6|7|8|9l数字零数字零0l3位数字位数字3数字数字3 /3至至3个数字个数字l8位数字位数字=非零数字非零数字+7位数字位数字l7位数字位数字=7数字数字7l数字数字0|1|2|3|4|5|6|7|8|9作业及解答(第3章)7113:07:423-33-3 银行计算机储蓄系统的工作过程大致如下:银行计算机储蓄系统的工作过程大致如下:储户储户填写填写的的存款单存款单或或取款单取款单由由业务员业务员键入系统,如果是存款则系统键入系统,如果是存款则系
31、统记录记录存款人存款人姓名、住址姓名、住址(或电话号码或电话号码)、身份证号码、身份证号码、存款存款类型类型、存款日期、到期日期、利率及密码、存款日期、到期日期、利率及密码(可选可选)等信息,等信息,并印出并印出存单存单给储户;如果是给储户;如果是取款取款而且而且存款时留有密码存款时留有密码,则,则系统首先系统首先核对储户密码核对储户密码,若密码,若密码正确正确或存款时或存款时未留未留密码,密码,则系统则系统计算计算利息利息并并印出印出利息清单利息清单给储户。给储户。请用数据流图描绘本系统的功能,并用实体请用数据流图描绘本系统的功能,并用实体-联系图描绘联系图描绘系统中的数据对象。系统中的数据
32、对象。作业及解答(第3章)7213:07:42作业及解答(第3章)作业及解答(第3章)7313:07:427413:07:42作业及解答(第3章)7513:07:42lER模型模型本问题中共有两类实体,分别是本问题中共有两类实体,分别是“储户储户”和和“储蓄所储蓄所”,在它们之间存在在它们之间存在“存取款存取款”关系。因为一位储户可以在多关系。因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多位储户,所以家储蓄所存取款,一家储蓄所拥有多位储户,所以“存取存取款款”是多对多(是多对多(M:N)关系。)关系。储户的属性主要有储户的属性主要有姓名、住址、电话号码和身份证号码姓名、住址、电话号码和身
33、份证号码,储蓄所的属性主要是储蓄所的属性主要是名称、地址和电话号码名称、地址和电话号码,而,而数额、类数额、类型、到期日期、利率和密码型、到期日期、利率和密码则是则是关系类型存取款关系类型存取款的属性。的属性。作业及解答(第3章)7613:07:42作业及解答(第3章)777879808182838485864 分析阶段所用图形分析阶段所用图形一、实体-关系图 数据建模时经常使用 数据对象 属性 联系:一对一,一对多,多对多 数据规范化理论:1NF、2NF、3NF87二、状态转换图1.作用:状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指
34、明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。因此,状态图提供了行为建模机制(动态建模)882.状态 状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个893.事件 事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。例如,内部时钟表明某个规定
35、的时间段已经过去,用户移动或点击鼠标等都是事件。简而言之,事件就是引起系统做动作或(和)转换状态的控制信息。格式:事件/动作表达式 标准事件:entry(进入一状态时),exit(退出时),do(指定动作)图3.3 状态图中使用的主要符号91三、其它图形工具1.层次方框图 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。例如,描绘一家计算机公司全部产品的数据结构可以用图3.5中的层次方框图表示。图3.5 层次方框图的一个例子
36、932.Warnier图943.IPO图 IPO图是输入、处理、输出图的简称,它是美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。95需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。一般说来,应该从下述4个方面进行验证:3.8 验证软件需求 3.8.1 从哪些方面验证软件需求的正确性(1)一致性:所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。(2)完整性:需求
37、必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。(3)现实性:指定的需求应该是用现有的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。(4)有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。1.验证需求的一致性当需求分析的结果是用自然语言书写的时候,除了靠人工技术审查验证软件系统规格说明书的正确性之外,目前还没有其他更好的“测试”方法。但是,这种非形式化的规格说明书是难于验证的,特别在目标系统规模庞大、规格说明书篇幅很长的时候,人工审查的效果是没有保证的,冗余、遗漏和不一致等问题可能
38、没被发现而继续保留下来,以致软件开发工作不能在正确的基础上顺利进行。3.8.2 验证软件需求的方法为了克服上述困难,人们提出了形式化的描述软件需求的方法。当软件需求规格说明书是用形式化的需求陈述语言书写的时候,可以用软件工具验证需求的一致性(见3.8.3节),从而能有效地保证软件需求的一致性。2.验证需求的现实性为了验证需求的现实性,分析员应该参照以往开发类似系统的经验,分析用现有的软、硬件技术实现目标系统的可能性。必要的时候应该采用仿真或性能模拟技术,辅助分析软件需求规格说明书的现实性。3.验证需求的完整性和有效性只有目标系统的用户才真正知道软件需求规格说明书是否完整、准确地描述了他们的需求
39、。因此,检验需求的完整性,特别是证明系统确实满足用户的实际需要(即,需求的有效性),只有在用户的密切合作下才能完成。然而许多用户并不能清楚地认识到他们的需要(特别在要开发的系统是全新的,以前没有使用类似系统的经验时,情况更是如此),不能有效地比较陈述需求的语句和实际需要的功能。只有当他们有某种工作着的软件系统可以实际使用和评价时,才能完整确切地提出他们的需要。理想的做法是先根据需求分析的结果开发出一个软件系统,请用户试用一段时间以便能认识到他们的实际需要是什么,在此基础上再写出正式的“正确的”规格说明书。但是,这种做法将使软件成本增加一倍,因此实际上几乎不可能采用这种方法。使用原型系统是一个比
40、较现实的替代方法,开发原型系统所需要的成本和时间可以大大少于开发实际系统所需要的。用户通过试用原型系统,也能获得许多宝贵的经验,从而可以提出更符合实际的要求。使用原型系统的目的,通常是显示目标系统的主要功能而不是性能。为了达到这个目的可以使用本章3.2.4小节介绍的方法快速建立原型系统,并且可以适当降低对接口、可靠性和程序质量的要求,此外还可以省掉许多文档资料方面的工作,从而可以大大降低原型系统的开发成本。为了更有效地保证软件需求的正确性,特别是为了保证需求的一致性,需要有适当的软件工具支持需求分析工作。这类软件工具应该满足下列要求:(1)必须有形式化的语法(或表),因此可以用计算机自动处理使
41、用这种语法说明的内容;(2)使用这个软件工具能够导出详细的文档;(3)必须提供分析(测试)规格说明书的不一致性和冗余性的手段,并且应该能够产生一组报告指明对完整性分析的结果;3.8.3 用于需求分析的软件工具(4)使用这个软件工具之后,应该能够改进通信状况。作为需求工程方法学的一部分,在1977年设计完成了RSL(需求陈述语言)。RSL中的语句是计算机可以处理的,处理以后把从这些语句中得到的信息集中存放在一个称为ASSM(抽象系统语义模型)的数据库中。有一组软件工具处理ASSM数据库中的信息以产生出用PASCAL语言书写的模拟程序,从而可以检验需求的一致性、完整性和现实性。1977年美国密执安
42、大学开发了PSL/PSA(问题陈述语言/问题陈述分析程序)系统。这个系统是CADSAT(计算机辅助设计和规格说明分析工具)的一部分,它的基本结构类似于RSL。其中PSL是用来描述系统的形式语言,PSA是处理PSL描述的分析程序。用PSL描述的系统属性放在一个数据库中。一旦建立起数据库之后即可增加信息、删除信息或修改信息,并且保持信息的一致性。PSA对数据库进行处理以产生各种报告,测试不一致性或遗漏,并且生成文档资料。PSL/PSA系统的功能主要有下述4种:(1)描述任何应用领域的信息系统;(2)创建一个数据库保存对该信息系统的描述符;(3)对描述符施加增加、删除和更改等操作;(4)产生格式化的
43、文档和关于规格说明书的各种分析报告。PSL/PSA系统用描述符从系统信息流、系统结构、数据结构、数据导出、系统规模、系统动态、系统性质和项目管理等8个方面描述信息系统。一旦用PSL对系统做了完整描述,就可以调用PSA产生一组分析报告,其中包括所有修改规格说明数据库的记录,用各种形式描述数据库信息的参照报告(包括图形形式的描述),关于项目管理信息的总结报告,以及评价数据库特性的分析报告。借助PSL/PSA系统可以边对目标系统进行自顶向下的逐层分解,边将需求分析过程中遇到的数据流、文件、处理等对象用PSL描述出来并输入到PSL/PSA系统中。PSA将对输入信息作一致性和完整性检查,并且保存这些描述信息。PSL/PSA系统的主要优点是它改进了文档质量,能保证文档具有完整性、一致性和无二义性,从而可以减少管理和维护的费用。数据存放在数据库中,便于增加、删除和更改,这也是它的一个优点。109F 需求分析需求分析是软件工程中是软件工程中最最重要的一个环节重要的一个环节FF 需求分析需求分析的主要工作是做调查研究,详细、的主要工作是做调查研究,详细、准确的解决系统做什么的问题准确的解决系统做什么的问题FF 需求分析需求分析的结果要产生一份详尽的需求规的结果要产生一份详尽的需求规格说明书,包括系统详细的数据流图和数据字格说明书,包括系统详细的数据流图和数据字典典需求分析需求分析
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。