资源描述
11-第第3章需求分析章需求分析软件需求分析:软件需求分析:“做什么?做什么?”需求分析的过程是开发人员与用需求分析的过程是开发人员与用户共同协商,准确地定义户共同协商,准确地定义未来系统未来系统的的目标,确定为了满足用户的需求系统目标,确定为了满足用户的需求系统必须必须做什么做什么。并且使用软件开发人员。并且使用软件开发人员和用户都能理解的语言准确地表达出和用户都能理解的语言准确地表达出来,即用来,即用 规范的规范的形式准确地表达用户的需求。形式准确地表达用户的需求。3第第3 3章章 需求分析需求分析F 开开发发一一个个软软件件系系统统前前,必必须须了了解解用用户户的的期期望和要求望和要求-软件需求软件需求 -需求分析过程需求分析过程F重要性:重要性:-软件开发的基础和前提软件开发的基础和前提-最终目标软件系统验收的标准最终目标软件系统验收的标准-避免或者尽早剔除早期的错误避免或者尽早剔除早期的错误需求分析需求分析4需求的重要性需求的重要性Standish-Group对对350家公司的家公司的8000个软件项目作过一次调查个软件项目作过一次调查其中,其中,31%的项目的结局是被取消。的项目的结局是被取消。引致这些项目失败的原因是:引致这些项目失败的原因是:13.1%不完整的产品要求;不完整的产品要求;12.4%缺乏用户的参与;缺乏用户的参与;10.6%缺少资源(人力、财力);缺少资源(人力、财力);9.9%不现实的期望;不现实的期望;9.3%高层领导支持不足;高层领导支持不足;8.7%产品要求与指标的改变;产品要求与指标的改变;8.1%没有订计划;没有订计划;7.5%不再需耍该开发中的系统。不再需耍该开发中的系统。其中,其中,与产品需求有关的(与产品需求有关的(1,2,4,和和6项)占了项)占了44.1%。这些。这些数据突出地显示了软件产品需求在软件开发中的重要性。数据突出地显示了软件产品需求在软件开发中的重要性。2024/7/265需求分析的重要性需求分析的重要性5点事实软件生命周期中,一个错误发现得越晚,修软件生命周期中,一个错误发现得越晚,修复错误的费用越高复错误的费用越高6需求分析的重要性需求分析的重要性许多错误是潜伏的,并且在错误产生后很长一许多错误是潜伏的,并且在错误产生后很长一段时间才被检查出来段时间才被检查出来在需求过程中会产生很多错误在需求过程中会产生很多错误DeMarco在一份研究报告中指出,被检查在一份研究报告中指出,被检查出来的错误的出来的错误的56产生的根源可以追溯到产生的根源可以追溯到需求阶段。需求阶段。AIRMICS所进行的一项调查发现,在一份所进行的一项调查发现,在一份美国军方大型管理信息系统的需求现格说美国军方大型管理信息系统的需求现格说明书明书(SRS)中存在着中存在着500多个错误,当然这多个错误,当然这仅仅是一个软件项目中的一次调查。仅仅是一个软件项目中的一次调查。在需求阶段,代表性的错误为疏忽、不一致和在需求阶段,代表性的错误为疏忽、不一致和二义性二义性美国海军研究实验室从美国海军研究实验室从20世纪世纪70年代起就对年代起就对软件开发技术不断地进行研究。他们对海军软件开发技术不断地进行研究。他们对海军A7E它机上的它机上的”宅行操作程序进行实地测宅行操作程序进行实地测试,以验证许多新设想的可行性。得出的研试,以验证许多新设想的可行性。得出的研究数据表明:究数据表明:A7E项目中项目中77的需求错误的需求错误特点是不明确:疏忽、不一致和二义性。按特点是不明确:疏忽、不一致和二义性。按错误类型对这些错误分布进行分析的结果是:错误类型对这些错误分布进行分析的结果是:49不正确的事实,不正确的事实,31疏忽,疏忽,l3不一致,不一致,5二义性二义性7需求分析的重要性需求分析的重要性8需求分析的重要性需求分析的重要性需求错误是可以被检查出来的需求错误是可以被检查出来的参与需求分析的人参与需求分析的人系统分析师系统分析师、需求阐释者、客户代表、需求阐释者、客户代表、用户代表用户代表、开发方领导、项目经理、架构设计师、领域专家、开发方领导、项目经理、架构设计师、领域专家、财务人员、市场人员、软件质量保证(财务人员、市场人员、软件质量保证(SQA,SoftwareQualityAssure)人员、程序员、测试人)人员、程序员、测试人员、部署人员、技术文档编写人员、培训人员等。员、部署人员、技术文档编写人员、培训人员等。需求分析的场所需求分析的场所调研时,在客户现场调研时,在客户现场编纂软件需求规约文档时,可以在开发单位编纂软件需求规约文档时,可以在开发单位复审相关的需求文档时,根据需要来安排复审相关的需求文档时,根据需要来安排参与需求分析的人有哪些,场所在哪参与需求分析的人有哪些,场所在哪11第第3 3章章 需求分析需求分析需求分析需求分析IEEEIEEE软件工程标准词汇表将需求定义为:软件工程标准词汇表将需求定义为:(1 1)用户解决问题或达到目标所需的条)用户解决问题或达到目标所需的条件或能力。件或能力。(2 2)系统或系统部件要满足合同、标准、)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或规范或其它正式规定文档所需具有的条件或能力。能力。(3 3)一种反映上面()一种反映上面(1 1)或()或(2 2)所描述)所描述的条件或能力的文档说明。的条件或能力的文档说明。12F困难:困难:-片面性片面性,不完全不完全-模糊性模糊性,不准确不准确-不一致性不一致性,歧义等等歧义等等因此必须使用系统的方法、借助于一系列行之因此必须使用系统的方法、借助于一系列行之有效的技术和工具进行需求分析有效的技术和工具进行需求分析 需求分析需求分析需求分析需求分析-应用系统复杂,庞大应用系统复杂,庞大按层次划分软件需求按层次划分软件需求业务需求业务需求(businessrequirement)反映了组织机构或客户对系反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。业务需求描述了企业一组概要性的目标,概要性予以说明。业务需求描述了企业一组概要性的目标,概要性的目标可能要依靠多个用户目标来实现。的目标可能要依靠多个用户目标来实现。用户需求用户需求(userrequirement)文档描述了用户使用产品必须要文档描述了用户使用产品必须要完成的任务,这在使用实例完成的任务,这在使用实例(usecase)文档或方案脚本文档或方案脚本(scenario)说明中予以说明。用户需求描述了用户目标,是具说明中予以说明。用户需求描述了用户目标,是具体明确的任务,但还不是详细的细节。体明确的任务,但还不是详细的细节。功能需求功能需求(functionalrequirement)定义了开发人员必须实现定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务的软件功能,使得用户能完成他们的任务,从而满足了业务需求。需求。三类需求的关系三类需求的关系业务需求业务需求项目视图与范围文档项目视图与范围文档用户需求用户需求使用实例文档使用实例文档功能需求功能需求软件需求规格说明书软件需求规格说明书非功能非功能需求需求概要目标层次概要目标层次用户目标层次用户目标层次功能层次功能层次软件需求的非功能性需求软件需求的非功能性需求非功能需求非功能需求:定义产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。非功能需求非功能需求过程需求过程需求产品需求产品需求外部需求外部需求软件交付软件交付互操作性互操作性实现方法实现方法标准标准法规法规成本成本可用性可用性软件性能软件性能存储空间存储空间可靠性可靠性可移植性可移植性安全性安全性软件需求分析的困难软件需求分析的困难(1)(1)客户说不清楚需求客户说不清楚需求有些客户对需求只有朦胧的感觉,当然说不清楚具体有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。的需求。农夫和耕牛的故事农夫和耕牛的故事有些客户心里非常清楚想要什么,但却说不明白。有些客户心里非常清楚想要什么,但却说不明白。我的鞋是什么样的?我的鞋是什么样的?“不懂装懂不懂装懂”或者或者“半懂充内行半懂充内行”的客户令人恐惧的客户令人恐惧2.1 软件需求的概念软件需求的复杂性软件需求的复杂性(2)(2)需求自身经常变动需求自身经常变动2.1 软件需求的概念需求变更原因需求变更原因-客户方:客户方:对信息系统的了解不够对信息系统的了解不够对业务需求表达不清对业务需求表达不清对自身业务抽象程度不够对自身业务抽象程度不够对需求重视程度不够对需求重视程度不够与开发人员配合不够与开发人员配合不够业务范围不断拓展业务范围不断拓展业务流程不断变更业务流程不断变更管理模式不断创新管理模式不断创新客客户户的的能能力力不不足足,可可以以进进行行适适当的培训,可改善一点。当的培训,可改善一点。属属于于态态度度问问题题,需需要要高高层层领领导导协调。协调。不不可可避避免免。只只能能通通过过合合同同约约束束或或有有限限度度接接受受,或或通通过过技技术术提提高软件适应能力。高软件适应能力。软件需求的复杂性软件需求的复杂性(2)(2)需求自身经常变动需求自身经常变动2.1 软件需求的概念需求变更原因需求变更原因软件人员:软件人员:沟通技巧不高沟通技巧不高需求工程技术不精需求工程技术不精需求人员知识储备不够需求人员知识储备不够不了解客户方的业务流程不了解客户方的业务流程调研范围不确定调研范围不确定需求不够细致、明确需求不够细致、明确项目管理不规范项目管理不规范需求描述存在歧义需求描述存在歧义合同对客户方约束不够合同对客户方约束不够 个人能力或经验不足。软件组织的能力不足191.需求分析的任务需求分析的任务1、确定要求、确定要求(1)功能要求功能要求(5)接口需求接口需求(2)性能要求性能要求(6)约束约束(3)可靠性和可用性需求可靠性和可用性需求(7)逆向需求逆向需求(4)出错处理需求出错处理需求(8)将来可能提出的要求将来可能提出的要求1.需求分析的任务需求分析的任务201.需求分析的任务需求分析的任务2、分析系统的数据要求、分析系统的数据要求建立概念模型建立概念模型(conceptualmodels):E-RDiagram形象描绘数据结构形象描绘数据结构:DataHierarchy,WarnierDiagram,数据结构规范化数据结构规范化(Normalization)3、导出系统的逻辑模型:抽取其、导出系统的逻辑模型:抽取其“做什么做什么”的本质的本质4、修正系统计划:重估成本、进度等、修正系统计划:重估成本、进度等需求文档需求文档22 2.2.与用户沟通的方法与用户沟通的方法1.访谈访谈访谈(或称为会谈)是最早开始运用访谈(或称为会谈)是最早开始运用的获取用户需求的技术,也是迄今为止仍的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技术。然广泛使用的主要的需求分析技术。两种基本形式两种基本形式正式的和非正式的访谈正式的和非正式的访谈某出版社系统调查表某出版社系统调查表25情景分析技术情景分析技术就是对用户运用目标系统就是对用户运用目标系统解决某个具体问题的方法和结果进行分析。解决某个具体问题的方法和结果进行分析。情景分析的用处:情景分析的用处:它能在某种程度上演示产品的行为,从而便于用它能在某种程度上演示产品的行为,从而便于用户理解,而且还可能进一步揭示出一些系统分析员户理解,而且还可能进一步揭示出一些系统分析员目前还不知道的需求。目前还不知道的需求。由于情景分析较易为用户所理解,因此,使用这由于情景分析较易为用户所理解,因此,使用这种技术能保证用户在需求分析过程中始终扮演一个种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色。积极主动的角色。2.2.与用户沟通的方法与用户沟通的方法262.面向数据流自顶向下求精面向数据流自顶向下求精 2.2.与用户沟通的方法与用户沟通的方法分析追踪数分析追踪数据流图据流图用户复查用户复查细化数据流细化数据流图图有补充修正有补充修正无无 补补 充充修正修正需要分解需要分解不需分解不需分解图图3.1需求分析基本过程需求分析基本过程27仓库仓库管理员管理员采购员采购员事务事务定货报表定货报表定货系统数据流图定货系统数据流图更新更新库存库存清单清单1.2产生产生报表报表2D1库存清单库存清单D2定货信息定货信息接收接收事务事务1.1处理处理定货定货1.3库存清单库存清单定货信息定货信息定货信息定货信息例:例:分析销售趋势分析销售趋势统计功能统计功能283.简易的应用规格说明技术简易的应用规格说明技术传统访谈技术传统访谈技术用户和开发者往往会区分用户和开发者往往会区分“我们和他我们和他们们”这种方法提倡用户与开发者密切合作,这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。不同的方法并指定基本的需求。面向团队的需求收集法面向团队的需求收集法 2.2.与用户沟通的方法与用户沟通的方法29面向团队的需求收集法面向团队的需求收集法:(用户与开发者配合)(用户与开发者配合)1)初步访谈;)初步访谈;2)开发者和用户分别写出)开发者和用户分别写出“产品需求产品需求”;3)开会讨论,各自展示需求列表;)开会讨论,各自展示需求列表;4)得出一致意见,为需求列表制定小型规格说明;)得出一致意见,为需求列表制定小型规格说明;5)根据会议成果,起草完整的软件需求规格说明。)根据会议成果,起草完整的软件需求规格说明。304.快速建立软件原型快速建立软件原型快速原型就是快速建立起来的旨在演示快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。构建原目标系统主要功能的可运行的程序。构建原型的型的要点要点是,是,它应该实现用户看得见的功能它应该实现用户看得见的功能(例如,屏幕显示或打印报表例如,屏幕显示或打印报表),省略目标系,省略目标系统的统的“隐含隐含”功能功能(例如,修改文件例如,修改文件)。2.2.与用户沟通的方法与用户沟通的方法特性特性1 1:快速:快速特性特性2 2:容易修改:容易修改31为了快速地构建和修改原型,通常使用下述为了快速地构建和修改原型,通常使用下述3种方法和工具:种方法和工具:(1)第四代技术第四代技术(2)可重用的软件构件可重用的软件构件(3)形式化规格说明和原型环境形式化规格说明和原型环境 2.2.与用户沟通的方法与用户沟通的方法32 结构化分析导出的分析模型包括结构化分析导出的分析模型包括数数据模型据模型、功能模型功能模型和和行为模型行为模型。该模型。该模型以以“数据字典数据字典”为核心,描述了软件使用为核心,描述了软件使用的所有数据对象,围绕这个核心的是的所有数据对象,围绕这个核心的是“实体关系图实体关系图”、“数据流图数据流图”和和“状态转换状态转换图图”。具体形式如下图所示:。具体形式如下图所示:3.3.分析建模与规格说明分析建模与规格说明33 3.3.分析建模与规格说明分析建模与规格说明34实体关系图(实体关系图(ERER):):数据建模的基础,描述数据建模的基础,描述数据对象及其关系;数据对象及其关系;数据流图(数据流图(DFDF):):功能建模的基础,描述数功能建模的基础,描述数据怎样转换以及转换的功能;据怎样转换以及转换的功能;状态转换图(状态转换图(STST):):行为建模的基础,表示行为建模的基础,表示系统的各种行为状态以及状态间的转换系统的各种行为状态以及状态间的转换方式。方式。3.3.分析建模与规格说明分析建模与规格说明354.4.实体实体-联系图联系图 为为了了把把用用户户的的数数据据要要求求清清晰晰明明确确地地表表达达出出来来,系系统统分分析析员员通通常常建建立立一一个个概概念念性性的的数数据据模模型型(也也称称为为信信息息模模型型)。概概念念性性数数据据模模型型是是一一种种面面向向问问题题的的数数据据模模型型,是是按按照照用用户户的的观观点点来来对对数数据据和和信信息息建建模模。它它描描述述了了从从用用户户角角度度看看到到的的数数据据,它它反反映映了了用用户户的的现现实实环环境境,且且与与在在软软件件系系统统中中的的实实现现方法无关。方法无关。最常用的表示概念性数据模型的方法,是实体最常用的表示概念性数据模型的方法,是实体-联系方法(联系方法(Entity-RelationshipApproach)。)。361.1.数据对象数据对象:是对软件必须理解的复合信息的表是对软件必须理解的复合信息的表示。示。在在ERER图中用矩形框代表实体。图中用矩形框代表实体。3.3.属性属性:属性定义了数据对象的性质。属性定义了数据对象的性质。在在ERER图中用图中用椭圆形或圆角矩形表示实体(或联系)的属性椭圆形或圆角矩形表示实体(或联系)的属性2.2.联系联系:数据对象彼此之间相互连接的方式称为联数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下三类:系,也称为关系。联系可分为以下三类:(1 1)一对一联系()一对一联系(1111)(2 2)一对多联系()一对多联系(1N1N)(3 3)多对多联系()多对多联系(MNMN)4.4.实体实体-联系图联系图所谓复合信息是指具有所谓复合信息是指具有一系列不同性质或属性一系列不同性质或属性的事物,因此,仅有单的事物,因此,仅有单个值的事物个值的事物(例如宽度例如宽度)不是数据对象。不是数据对象。374.4.实体实体-联系图联系图教师教师学生学生课程课程学号学号姓名姓名系系年级年级职务职务性别性别职称职称性别性别姓名姓名教工号教工号教教学学成绩成绩学分学分学时学时课名课名课程号课程号图图3.2某校教学管理某校教学管理ER图图MN1N练习练习设某汽车运输公司数据库中有三个实体集。一是设某汽车运输公司数据库中有三个实体集。一是“车车队队”实体集,属性有车队号、车队名等;二是实体集,属性有车队号、车队名等;二是“车辆车辆”实实体集,属性有牌照号、厂家、出厂日期等;三是体集,属性有牌照号、厂家、出厂日期等;三是“司机司机”实体集,属性有司机编号、姓名、电话等。实体集,属性有司机编号、姓名、电话等。设车队与司机之间存在设车队与司机之间存在“聘用聘用”联系,每个车队可聘联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有个聘期;车队与车辆之间存在聘用司机有个聘期;车队与车辆之间存在“拥有拥有”联系,联系,每个车队可拥有若干车辆,但每辆车只能属于一个车每个车队可拥有若干车辆,但每辆车只能属于一个车队;司机与车辆之间存在着队;司机与车辆之间存在着“使用使用”联系,司机使用车联系,司机使用车辆有使用日期和公里数两个属性,每个司机可使用多辆有使用日期和公里数两个属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。辆汽车,每辆汽车可被多个司机使用。N1公里数公里数拥有拥有使用日期使用日期车辆车辆牌照号牌照号厂家厂家出厂日期出厂日期N车队号车队号车队车队车队名车队名聘用聘用聘期聘期司机司机司机编号司机编号姓名姓名电话电话1使用使用MN用用E-RE-R图表示某个工厂物资管理的概念模型图表示某个工厂物资管理的概念模型实体实体仓库仓库:仓库号、面积、电话号码仓库号、面积、电话号码零件零件 :零件号、名称、规格、单价、描述:零件号、名称、规格、单价、描述供应商供应商:供应商号、姓名、地址、电话号码、帐号:供应商号、姓名、地址、电话号码、帐号项目项目:项目号、预算、开工日期:项目号、预算、开工日期职工职工:职工号、姓名、年龄、职称:职工号、姓名、年龄、职称实体之间的联系如下:实体之间的联系如下:一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。中的数量。一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系 职工之间具有领导职工之间具有领导-被领导关系。即仓库主任领导若干保管员。被领导关系。即仓库主任领导若干保管员。供应商、项目和零件三者之间具有多对多的联系供应商、项目和零件三者之间具有多对多的联系练习练习ER图练习答案425 5 数据规范化数据规范化 软软件件系系统统经经常常使使用用各各种种长长期期保保存存的的信信息息,这这些些信信息息通通常常以以一一定定方方式式组组织织并并存存储储在在数数据据库库或或文文件件中中,为为减减少少数数据据冗冗余余,避避免免出出现现插插入入异异常常或或删删除除异异常常,简简化化修修改改数数据据的的过过程程,通通常常需需要把数据结构规范化。要把数据结构规范化。第一范式第一范式(1 NF)(1 NF)数据冗余程度最大,第数据冗余程度最大,第五范式五范式(5 NF)(5 NF)数据冗余程度最小。数据冗余程度最小。43下面给出第一、第二和第三范式的定义:下面给出第一、第二和第三范式的定义:(1)(1)第第一一范范式式每每个个属属性性值值都都必必须须是是原原子子值值,即即仅仅仅仅是是一一个个简简单单值值而而不不含含内内部部结结构。构。(2)(2)第第二二范范式式满满足足第第一一范范式式条条件件,而而且且每每个个非非关关键键字字属属性性都都由由整整个个关关键键字字决决定定(而不是由关键字的一部分来决定而不是由关键字的一部分来决定)。5 5 数据规范化数据规范化44(3)(3)第第三三范范式式符符合合第第二二范范式式的的条条件件,每每个个非非关关键键字字属属性性都都仅仅由由关关键键字字决决定定,而而且且一一个个非非关关键键字字属属性性不不能能仅仅仅仅是是对对另另一一个个非非关关键键字字属属性性的的进进一一步步描描述述(即即一一个个非非关关键键字字属属性性值值不不依依赖赖于于另一个非关键字属性值另一个非关键字属性值)。5 5 数据规范化数据规范化例:假定学生关系表为Student(学号,姓名,年龄,所在学院,学院地点,学院电话),关键字为单一关键字学号,因为存在如下决定关系:(学号)(姓名,年龄,所在学院,学院地点,学院电话)这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:(学号)(所在学院)(学院地点,学院电话)45状态转换图通过描述状态以及导致系状态转换图通过描述状态以及导致系统改变状态的事件来表示系统的行为,它统改变状态的事件来表示系统的行为,它没有表示出系统所执行的处理,只表示了没有表示出系统所执行的处理,只表示了处理结果可能的状态转换。处理结果可能的状态转换。6.6.状态转换图状态转换图466.6.状态转换图状态转换图 1 1 状态状态 状态是任何可以被观察到的系统行为状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。模式,一个状态代表系统的一种行为模式。在状态图中定义的状态主要有:初态在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中中间状态。在一张状态图中只能有一个只能有一个初初态,而终态则可以有态,而终态则可以有0 0至多个至多个。472 2 事件事件 事件是在某个特定时刻发生的事情,事件是在某个特定时刻发生的事情,它是对引起系统从一个状态转换到另一个它是对引起系统从一个状态转换到另一个状态的外界事件的抽象。状态的外界事件的抽象。简而言之,事件就是引起系统状态转简而言之,事件就是引起系统状态转换的控制信息。换的控制信息。6.6.状态转换图状态转换图486.6.状态转换图状态转换图3.3.符号符号 在状态图中,在状态图中,初态初态用实心圆表示,终用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。态用一对同心圆(内圆为实心圆)表示。中间状态中间状态用圆角矩形表示,可以用两用圆角矩形表示,可以用两条水平横线把它分成上、中、下条水平横线把它分成上、中、下3 3个部分。个部分。上面部分为状态的名称,上面部分为状态的名称,这部分是必须有的;这部分是必须有的;中间部分为状态变量的名中间部分为状态变量的名字和值,这部分是可选的;字和值,这部分是可选的;下面部分是活动表,下面部分是活动表,这部分也是可选的。这部分也是可选的。49 状态图中两个状态之间带箭头的连线状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。状称为状态转换,箭头指明了转换方向。状态变迁通常是由事件触发的,在这种情况态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行明事件,则表示在源状态的内部活动执行完之后自动触发转换。完之后自动触发转换。6.6.状态转换图状态转换图50事件表达式的语法如下:事件表达式的语法如下:事件说明守卫条件动作表达式事件说明守卫条件动作表达式事件说明的语法为:事件名事件说明的语法为:事件名(参数表参数表)。守卫条件是一个布尔表达式。如果同时使用事件说明守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。件说明,则只要守卫条件为真状态转换就发生。动作表达式是一个过程表达式,当状态转换开始时执动作表达式是一个过程表达式,当状态转换开始时执行该表达式。行该表达式。6.6.状态转换图状态转换图51图图3.3 3.3 状态图中使用的主要符号状态图中使用的主要符号6.6.状态转换图状态转换图52例子 为了具体说明怎样用状态图建立系统的行为了具体说明怎样用状态图建立系统的行为模型,下面举一个例子。图为模型,下面举一个例子。图3.43.4是人们非常熟是人们非常熟悉的电话系统的状态图。悉的电话系统的状态图。图中表明,没有人打电话时电话处于闲置图中表明,没有人打电话时电话处于闲置状态;有人拿起听筒则进入拨号音状态,到达状态;有人拿起听筒则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音并计时;这个状态后,电话的行为是响起拨号音并计时;这时如果拿起听筒的人改变主意不想打了,他这时如果拿起听筒的人改变主意不想打了,他把听筒放下把听筒放下(挂断挂断),电话重又回到闲置状态;,电话重又回到闲置状态;如果拿起听筒很长时间不拨号如果拿起听筒很长时间不拨号(超时超时),则进入,则进入超时状态;超时状态;。53断断 线线闲闲 置置拨拨 号号通通 话话拨号音拨号音do:do:响拨号音响拨号音超超 时时do:do:响蜂鸣音响蜂鸣音存储的信息存储的信息do:do:播放信息播放信息接通中接通中do:do:试接通试接通振振 铃铃do:do:振振 铃铃忙忙 音音do:do:响忙音响忙音拿起听筒拿起听筒数字数字数字数字有效号码有效号码已接通已接通受话人回话受话人回话受话人挂断电话受话人挂断电话挂断电话挂断电话超超时时挂断电话挂断电话超时超时无效号码无效号码信息播完信息播完占占线线例:例:电话电话的的状态状态图图状态机图:电梯思考与练习手机开机时,处于空闲状态;当用户开手机开机时,处于空闲状态;当用户开始呼叫某人时,手机进入拨号状态;如始呼叫某人时,手机进入拨号状态;如果呼叫成功,进入通话状态;如果呼叫果呼叫成功,进入通话状态;如果呼叫不成功,重新进入空闲状态。在空闲状不成功,重新进入空闲状态。在空闲状态被呼叫,进入响铃状态;如果用户接态被呼叫,进入响铃状态;如果用户接听,进入通话状态;如果一分钟不接听,听,进入通话状态;如果一分钟不接听,重新进入空闲状态。重新进入空闲状态。思考与练习57数据流图数据流图是结构化分析的基本工具,体现了自是结构化分析的基本工具,体现了自顶向下逐步求精的分析过程,确定了系统的任务流顶向下逐步求精的分析过程,确定了系统的任务流和数据流;和数据流;实体关系图实体关系图描述了系统的数据关系,从而帮助描述了系统的数据关系,从而帮助开发人员分析和理解系统数据的组成,并为系统设开发人员分析和理解系统数据的组成,并为系统设计阶段定义系统数据库的物理结构打下基础;计阶段定义系统数据库的物理结构打下基础;状态转换图状态转换图描述了系统状态之间的变化过程,描述了系统状态之间的变化过程,它对于实时系统和控制系统尤为重要。它对于实时系统和控制系统尤为重要。587.7.其他图形工具其他图形工具层次方框图层次方框图Warnier图图IPO图图59层层次次方方框框图图用用树树形形结结构构的的一一系系列列多多层层次次的的矩矩形形框框描描绘绘数数据据的的层层次次结结构构。树树形形结结构构的的顶顶层层是是一一个个单单独独的的矩矩形形框框,它它代代表表完完整整的的数数据据结结构构,下下面面的的各各层层矩矩形形框框代代表表这这个个数数据据的的子子集集,最最底底层层的的各各个个框框代代表表组组成成这这个个数数据据的的实实际际数数据据元素(不能再分割的元素)。元素(不能再分割的元素)。层次方框图层次方框图产品产品硬件硬件软件软件服务服务处处理理机机存存储储器器外外部部设设备备系系统统软软件件应应用用软软件件软软件件服服务务硬硬件件维维修修培培训训编编译译程程序序软软件件工工具具操操作作系系统统图图3.5层次方框图的一个例子层次方框图的一个例子应发工资应发工资实发工资实发工资基本基本工资工资奖金奖金扣扣款款水电水电扣款扣款缺勤缺勤扣款扣款个个 人人 所所得税扣款得税扣款出出勤勤奖奖业业绩绩奖奖其其它它补补贴贴补补贴贴国国家家津津贴贴职职务务津津贴贴交交通通补补贴贴部部门门补补贴贴津津贴贴国家国家工资工资62法法国国计计算算机机科科学学家家Warnier提提出出了了表表示示信信息息层层次次结结构构的的另另外外一一种种图图形形工工具具。用用Warnier图图可可以以指指出出一一类类信信息息或或一一个个信信息息量量是是重重复复出出现现的的,也也可可以以表表示示特特定定信信息息在在某某一一类类信信息息中中是是有有条条件件地地出出现现的的。因因为为重重复复和和条条件件约约束束是是说说明明软软件件处处理理过过程程的的基基础础,所所以以很容易把很容易把Warnier图转变成软件设计的工具。图转变成软件设计的工具。WarnierWarnier图图软件产品软件产品软件工具软件工具编辑程序(编辑程序(P3)应用软件应用软件编译程序(编译程序(P2)操作系统(操作系统(P1)系统软件系统软件测试驱动程序(测试驱动程序(P4)设计辅助工具(设计辅助工具(P5)图图3.4Warnier图的一个例子图的一个例子2024/7/2663例子:层次层次(n1,n2):重复重复n1到到n2次次:二者择一:二者择一例:例:头条新闻头条新闻地区队地区队头版头版国内新闻国内新闻体育新闻体育新闻职业队职业队本地新闻本地新闻拳击拳击社论社论(1,1)经营简讯经营简讯专栏专栏(1,3)报纸报纸社论社论读者来信读者来信(1,3)副刊副刊商业新闻商业新闻雇员简讯雇员简讯讽刺漫画讽刺漫画(0,1)一般新闻一般新闻体育新闻联播体育新闻联播招生招生副刊副刊商业新闻商业新闻广告广告招聘招聘广告广告求助求助细细化化64 IPO IPO图是输入处理输出图的简称,它是美国图是输入处理输出图的简称,它是美国IBMIBM公司发展完善起来的一种图形工具,能够方便地公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关描绘输入数据、对数据的处理和输出数据之间的关系。系。IPOIPO图图旧的主文件旧的主文件事务文件事务文件1.校校 验验 主主 记记录录2.校校 验验 事事 务务记录记录3.更更 新新 主主 记记录录有有效效的的主主记记录录有有效效的的事事务务记录记录更更新新后后的的主主文件文件输入输入处理处理输出输出图图3.7IPO图的一个例子图的一个例子IPO IPO 图图输入处理输输入处理输出(出(Input Input Process Output Process Output)图的简称。)图的简称。【例】招聘考试成【例】招聘考试成绩管理系统的绩管理系统的 IPO IPO 图图。66 本书建议使本书建议使用一种改进的用一种改进的IPOIPO图(也称为图(也称为IPOIPO表)表),这种图中包含,这种图中包含某些附加信息,某些附加信息,在软件设计过程在软件设计过程中将比原始的中将比原始的IPOIPO图更有用。图更有用。IPO表表系统:系统:模块:模块:编号:编号:作者:作者:日期:日期:被调用:被调用:调用:调用:输入:输入:输出:输出:处理:处理:局部数据元素:局部数据元素:注释:注释:图图3.8改进的改进的IPO图的形式图的形式67软件系统中软件系统中15%的错误起源于错误的需求。的错误起源于错误的需求。一致性一致性完整性完整性现实性现实性有效性有效性四个方面验证软件需求四个方面验证软件需求:8.8.验证软件需求验证软件需求68用于需求分析的软件应该满足下列要求:用于需求分析的软件应该满足下列要求:1)必须有形式化的语法)必须有形式化的语法2)使用这个软件工具能够导出详细的)使用这个软件工具能够导出详细的文档文档3)必须提供分析规格说明书的不一致)必须提供分析规格说明书的不一致性和冗余性的手段性和冗余性的手段4)使用这个软件工具后,应该能够改)使用这个软件工具后,应该能够改进通信状况进通信状况用于需求分析的软件工具用于需求分析的软件工具69RSL(需需求求陈陈述述语语言言):信信息息集集ASSMPASCAL模拟程序模拟程序PSL/PSA(问题陈述语言(问题陈述语言/问题陈述问题陈述分析程序)系统分析程序)系统70需求分析的步骤需求分析的步骤1、调查研究调查研究(1)沿)沿数据流图数据流图回溯:回溯:数据流图数据流图的输出端是系的输出端是系统的最终目的。向回确定每个数据元素的来统的最终目的。向回确定每个数据元素的来源,可加细源,可加细数据流图数据流图及及数据字典数据字典,并将相关,并将相关算法记录在算法记录在IPO图图中。中。(2)用户复查)用户复查-基本思想基本思想:“自顶向下,逐步求精自顶向下,逐步求精”,抽象和分抽象和分解解719.9.需求分析的步骤需求分析的步骤2、分析与综合、分析与综合(1)问题的具体分析:)问题的具体分析:细化数据流图细化数据流图 加细前后的加细前后的I/O须相同。须相同。分解到须考虑具体实现的代码时即可仃止分解到须考虑具体实现的代码时即可仃止(2)方案的综合)方案的综合723、修正计划:成本和进度的更准确估计、修正计划:成本和进度的更准确估计4、书写文档:需求规格说明书、书写文档:需求规格说明书不需分解不需分解有补充有补充修正修正无补充修正无补充修正分析追踪分析追踪数据流图数据流图用户复查用户复查细细 化化数据流图数据流图需要需要分解分解9.9.需求分析的步骤需求分析的步骤73需求规格说明书需求规格说明书封面:封面:文档编号文档编号:版版本本号:号:文档名称:文档名称:项目名称:项目名称:项目负责人:项目负责人:年年月月日日编写:编写:核对:核对:审核:审核:批准:批准:开发单位:开发单位:74需求规格说明书需求规格说明书内容内容:系统规格说明:系统规格说明:系统概貌系统概貌 功能要求功能要求 性能要求性能要求 运行要求运行要求 可能增加的要求可能增加的要求 DFD IPO数据要求:数据要求:DD Hierarchy或或WarnierDiagram用户系统描述用户系统描述初步用户手册:从用户的观点考虑系统初步用户手册:从用户的观点考虑系统 系统功能、性能系统功能、性能 使用与步骤使用与步骤等等修正的开发计划:修正的开发计划:成本估计成本估计 资源使用计划资源使用计划 进度计划进度计划2024/7/2675图书馆系统1一一.项目说明项目说明 开发计算机图书管理系统。主要进行四个方面的管理:图书的购入、开发计算机图书管理系统。主要进行四个方面的管理:图书的购入、借阅、归还及注销。借阅、归还及注销。1.1.购入新书时需要为该书编制图书卡片购入新书时需要为该书编制图书卡片,包括分类目录号、流水号、书名、包括分类目录号、流水号、书名、作者、内容摘要、价格和购书日期等信息,写入图书目录文件中。作者、内容摘要、价格和购书日期等信息,写入图书目录文件中。2.2.读者借书时填写借书单读者借书时填写借书单,包括读者号、欲借图书分类目录号。系统首先包括读者号、欲借图书分类目录号。系统首先 检查该读者号是否有效,若无效,则拒绝借书;否则进一步检查所借检查该读者号是否有效,若无效,则拒绝借书;否则进一步检查所借 图书是否超过最大限制数图书是否超过最大限制数(5(5本本),若已达到最大限制数,若已达到最大限制数(5(5本本),则拒绝,则拒绝 借书;否则,读者可以借出该书,登记图书分类目录号、读者号、借借书;否则,读者可以借出该书,登记图书分类目录号、读者号、借 阅日期等,写回到借书文件中去。阅日期等,写回到借书文件中去。3.3.读者还书时读者还书时,根据图书流水号根据图书流水号,从借书文件中读出和该图书相关的借阅从借书文件中读出和该图书相关的借阅 记录记录,表明还书日期表明还书日期,再写回借书文件中;如果图书逾期未还,则处以再写回借书文件中;如果图书逾期未还,则处以 相应罚款。相应罚款。2024/7/2676图书馆系统2图书管理图书管理系统系统图书图书管理管理人员人员系统时钟系统时钟读者读者查询要求查询要求图书管理要求图书管理要求统计表统计表读者情况读者情况图书情况图书情况付款单付款单当前日期当前日期顶层顶层DFDDFD 4.4.在某些情况下需要对图书馆的图书进行清理工作,对一些过时或在某些情况下需要对图书馆的图书进行清理工作,对一些过时或 无继续保留价值的图书要注销无继续保留价值的图书要注销(从图书文件中删除相关记录从图书文件中删除相关记录)。5.5.咨询要求:查询某位读者、某种图书和全局图书三种情况。咨询要求:查询某位读者、某种图书和全局图书三种情况。二二.画出数据流图画出数据流图2024/7/2677图书馆系统3图书管理要求图书管理要求读者情况读者情况统计表统计表图书情况图书情况付款单付款单查询要求查询要求图书管理图书管理人员人员当前日期当前日期无效输入无效输入有效的图书有效的图书管理要求管理要求有效的有效的查询要求查询要求一层一层DFDDFD1审查审查有效性有效性3处理处理查询查询2处理处理要求要求图书管理图书管理人员人员系统时钟系统时钟读读者者2024/7/2678图书馆系统4图书管理图书管理人员人员系统时钟系统时钟当前日期当前日期2.1要求类要求类型处理型处理有效的图书有效的图书管理要求管理要求2.2新书新书入库入库入库单入库单1目录文件目录文件2.4借书借书借书单借书单2.5还书还书还书单还书单2.3注销注销图书图书注销单注销单读者读者罚款单罚款单二层:二层:“处理要求处理要求”DFDDFD2024/7/2679图书馆系统53.1查询处理查询处理类别类别有效查询要求有效查询要求3.4图书图书统计统计统计要求统计要求3.3图书图书查询查询查询图书情况查询图书情况3借书文件借书文件1目录文件目录文件2读者文件读者文件统计表统计表图书情况图书情况3.2读者读者查询查询查询读者情况查询读者情况图书管理图书管理人员人员读者情况读者情况二层:二层:“处理查询处理查询”DFDDFD2024/7/2680图书馆系统62.2.1办理新书办理新书入库入库入库单入库单1目录文件目录文件2.3.1办理注销办理注销图书图书注销单注销单1目录文件目录文件三层:三层:“注销图书注销图书”DFDDFD三层:三层:“新书入库新书入库”DFDDFD2024/7/2681图书馆系统72.4.1检查读者检查读者有效性有效性借书单借书单2读者文件读者文件无效读者无效读者有效读者借书单有效读者借书单2.4.2检查读者检查读者资格资格2.4.3检查图书检查图书库存库存核准后的借书单核准后的借书单2.4.4办理办理借书借书借书记录借书记录3借书文件借书文件1目录文件目录文件借书超过最大限制借书超过最大限制三层:三层:“借书借书”DFDDFD该书已借完该书已借完2024/7/2682图书馆系统82.5.1办理办理还书还书还书单还书单1目录文件目录文件3借书文件借书文件2.5.2办理办理罚款罚款逾期天数逾期天数读者读者罚款单罚款单三层:三层:“还书还书”DFDDFD2024/7/2683图书馆系统9三三.数据字典数据字典 1.1.数据流条目数据流条目2024/7/2684图书馆系统103.3.加工说明加工说明(只描述最底层的基本加工只描述最底层的基本加工)三三.数据字典数据字典 2.2.文件条目文件条目2024/7/2685图书馆系统113.3.加工说明加工说明2024/7/2686图书馆系统123.3.加工说明加工说明2024/7/2687图书馆系统133.3.加工说明加工说明2024/7/2688图书馆系统143.3.加工说明加工说明2024/7/2689图书馆系统153.3.加工说明加工说明2024/7/2690图书馆系统163.3.加工说明加工说明91小结小结F 需求分析需求分析是软件工程中是软件工程中最最重要的一个环节重要的一个环节 需求分析需求分析的主要工作是做调查研究,详细、的主要工作是做调查研究,详细、准确的解决系统做什么的问题准确的解决系统做什么的问题 需求分析需求分析的结果要产生一份详尽的需求规的结果要产生一份详尽的需求规格说明书,包括系统详细的数据流图和数据字格说明书,包括系统详细的数据流图和数据字典典
展开阅读全文