3第三章软件需求分析(精品).ppt
第三章第三章 软件需求分析软件需求分析软件需求的定义:软件需求的定义:IEEE软件工程中的需求定义是软件工程中的需求定义是l用户解决问题或达到目标所需要的条件或权能用户解决问题或达到目标所需要的条件或权能l系统或系统部件要满足合同、标准、规范或其他正式系统或系统部件要满足合同、标准、规范或其他正式规定文档所要具有的条件或权能规定文档所要具有的条件或权能l反映上面两条文档的说明反映上面两条文档的说明一般的定义是一般的定义是系统必须实现什么的规约,它描述了系统的行为、特性系统必须实现什么的规约,它描述了系统的行为、特性或属性,是在开发过程中对系统的约束或属性,是在开发过程中对系统的约束第三章第三章 软件需求分析软件需求分析软件需求分析的意义:软件需求分析的意义:从用户和开发者两个角度去充分理解软件工程项目,从用户和开发者两个角度去充分理解软件工程项目,达到业务应用和信息处理的高度一致达到业务应用和信息处理的高度一致充分理解用户的功能需求,并挖掘用户的潜在需求,充分理解用户的功能需求,并挖掘用户的潜在需求,深入掌握软件工程的全部内涵深入掌握软件工程的全部内涵让用户充分理解信息处理系统的功能和实现的条件和让用户充分理解信息处理系统的功能和实现的条件和环境环境用全面的、发展的观点去分析用户的需求,让生产出用全面的、发展的观点去分析用户的需求,让生产出来的软件产品具有更大的价值来的软件产品具有更大的价值提交规范化的文档提交规范化的文档第三章第三章 软件需求分析软件需求分析需求的分类需求的分类功能需求功能需求:描述系统所提供的功能和服务,包:描述系统所提供的功能和服务,包括系统应该提供的服务、对输入如何响应及特括系统应该提供的服务、对输入如何响应及特定条件下系统行为的描述。系统的功能需求应定条件下系统行为的描述。系统的功能需求应该具有该具有全面性全面性和和一致性一致性非功能需求:非功能需求:作为功能需求的补充,非功能需作为功能需求的补充,非功能需求是指哪些不直接与系统的具体功能相关的一求是指哪些不直接与系统的具体功能相关的一类需求,但它们与系统的总体特性有关,如类需求,但它们与系统的总体特性有关,如可可靠性、响应时间、存储空间靠性、响应时间、存储空间等。它定义了对系等。它定义了对系统提供统提供服务或功能的约束服务或功能的约束,包括,包括时间约束、空时间约束、空间约束、开发过程约束及遵循的标准间约束、开发过程约束及遵循的标准等等第三章第三章 软件需求分析软件需求分析非功能需求又可分三类非功能需求又可分三类产品需求、机构需求、外部需求产品需求、机构需求、外部需求 非非 功功 能能 需需 求求产品需求产品需求可用性需求可用性需求效率需求效率需求性能需求性能需求空间需求空间需求可靠性需求可靠性需求可移植性需求可移植性需求机构需求机构需求交付需求交付需求实现需求实现需求标准需求标准需求外部需求外部需求互操作性需互操作性需求道德需求道德需求立法需求立法需求隐私需求隐私需求安全性需求安全性需求第三章第三章 软件需求分析软件需求分析领域需求:来源于系统的应用领域,反映该领领域需求:来源于系统的应用领域,反映该领域的特点。主要反映应用领域的基本问题,如域的特点。主要反映应用领域的基本问题,如果这些需求得不到满足,系统的正常运转就不果这些需求得不到满足,系统的正常运转就不可能。它可能是功能需求,也可以是非功能需可能。它可能是功能需求,也可以是非功能需求。比如军事领域中防空系统开发,求。比如军事领域中防空系统开发,一方面存一方面存在特定的功能需求,同时又存在非功能需求,在特定的功能需求,同时又存在非功能需求,这类有着特殊应用领域的需求就成为领域需求这类有着特殊应用领域的需求就成为领域需求业务需求业务需求用户需求用户需求系统需求系统需求功能需求功能需求项目视图与项目视图与范围文档范围文档使用实例文档使用实例文档质量属性质量属性约束条件约束条件其它的非功其它的非功能需求能需求软件规约软件规约第三章第三章 软件需求分析软件需求分析n n对软件需求的完全理解对软件开发工作的成对软件需求的完全理解对软件开发工作的成对软件需求的完全理解对软件开发工作的成对软件需求的完全理解对软件开发工作的成功是至关重要的。功是至关重要的。功是至关重要的。功是至关重要的。n n需求分析的任务是需求分析的任务是需求分析的任务是需求分析的任务是发现发现发现发现、求精求精求精求精、建模建模建模建模和和和和规格规格规格规格说明说明说明说明的过程。包括的过程。包括的过程。包括的过程。包括uu细化在软件项目开发计划中规定的细化在软件项目开发计划中规定的细化在软件项目开发计划中规定的细化在软件项目开发计划中规定的软件范软件范软件范软件范围围围围;uu创建所需的创建所需的创建所需的创建所需的数据模型数据模型数据模型数据模型、功能模型功能模型功能模型功能模型和和和和控制模控制模控制模控制模型型型型;uu分析可选择的分析可选择的分析可选择的分析可选择的解决方案解决方案解决方案解决方案,并将它们分配到,并将它们分配到,并将它们分配到,并将它们分配到各个软件成分中去。各个软件成分中去。各个软件成分中去。各个软件成分中去。n n需求分析是一项软件工程活动,它使得系统需求分析是一项软件工程活动,它使得系统需求分析是一项软件工程活动,它使得系统需求分析是一项软件工程活动,它使得系统分析人员能够:分析人员能够:分析人员能够:分析人员能够:uu刻划出刻划出刻划出刻划出软件的功能软件的功能软件的功能软件的功能和和和和性能性能性能性能;uu指明指明指明指明软件与其他系统元素的接口软件与其他系统元素的接口软件与其他系统元素的接口软件与其他系统元素的接口;uu建立建立建立建立软件必须满足的约束软件必须满足的约束软件必须满足的约束软件必须满足的约束。n n需求分析建立起来的模型为日后软件设计人需求分析建立起来的模型为日后软件设计人需求分析建立起来的模型为日后软件设计人需求分析建立起来的模型为日后软件设计人员提供了可被翻译成员提供了可被翻译成员提供了可被翻译成员提供了可被翻译成数据数据数据数据、体系结构体系结构体系结构体系结构、界面界面界面界面和和和和过程过程过程过程设计的模型。设计的模型。设计的模型。设计的模型。n n需求规格说明为开发人员和用户提供软件开需求规格说明为开发人员和用户提供软件开需求规格说明为开发人员和用户提供软件开需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据发完成时质量评价的依据发完成时质量评价的依据发完成时质量评价的依据。需求分析的需求分析的目标和目标和任务任务n n需求分析研究的对象是需求分析研究的对象是需求分析研究的对象是需求分析研究的对象是用户的要求用户的要求用户的要求用户的要求。n n一方面,必须一方面,必须一方面,必须一方面,必须全面理解全面理解全面理解全面理解用户的各项要求,另用户的各项要求,另用户的各项要求,另用户的各项要求,另一方面,要一方面,要一方面,要一方面,要准确表达准确表达准确表达准确表达被接受的用户要求。被接受的用户要求。被接受的用户要求。被接受的用户要求。n n只有经过确切描述的软件需求才能成为软件只有经过确切描述的软件需求才能成为软件只有经过确切描述的软件需求才能成为软件只有经过确切描述的软件需求才能成为软件设计的基础。设计的基础。设计的基础。设计的基础。n n软件开发是要实现软件开发是要实现软件开发是要实现软件开发是要实现目标系统的物理模型目标系统的物理模型目标系统的物理模型目标系统的物理模型。需。需。需。需求分析的求分析的求分析的求分析的任务任务就是借助于就是借助于就是借助于就是借助于当前系统的逻辑当前系统的逻辑当前系统的逻辑当前系统的逻辑模型导出目标系统模型导出目标系统模型导出目标系统模型导出目标系统(计算机系统)(计算机系统)(计算机系统)(计算机系统)的逻辑模的逻辑模的逻辑模的逻辑模型型型型(数据流程图数据流程图数据流程图数据流程图DFDDFD、数据字典、加工逻辑、数据字典、加工逻辑、数据字典、加工逻辑、数据字典、加工逻辑(算法)说明(算法)说明(算法)说明(算法)说明)。解决目标系统解决目标系统解决目标系统解决目标系统“做什么做什么做什么做什么”的问题。的问题。的问题。的问题。目标系统目标系统当前系统当前系统物理模型物理模型逻辑模型逻辑模型模型化模型化抽象化抽象化物理模型物理模型逻辑模型逻辑模型具体化具体化实例化实例化理理解解需需求求导导出出怎么做怎么做做什么做什么n n需求分析的过程可以分成四个阶段:需求分析的过程可以分成四个阶段:1)问题识别问题识别uu研究系统的研究系统的可行性分析报告可行性分析报告和和软件软件项目实施计划项目实施计划。uu从系统角度来理解软件并评审用于从系统角度来理解软件并评审用于产生计划估算的产生计划估算的软件范围是否恰当软件范围是否恰当;uu确定确定对目标系统的需求对目标系统的需求;uu提出这些提出这些需求实现条件需求实现条件,以及,以及需求需求应达到的标准应达到的标准。需求分析的过程需求分析的过程问问题题识识别别的的另另一一项项工工作作是是建建立立分分析析所所需需要要的的通通信信途途径径,以以保保证证能能顺顺利利地地对对问问题题进进行行分析。分析。2)分析与综合分析与综合 uu进行各种要求的进行各种要求的一致性一致性检查;检查;uu逐步细化所有的逐步细化所有的软件功能软件功能;uu分解数据域,分配给各个子功能;分解数据域,分配给各个子功能;uu找找出出系系统统各各成成分分之之间间的的联联系系、接接口口特性特性和和设计限制设计限制。uu判判断断是是否否存存在在不不合合理理的的用用户户要要求求或或用户尚未提出的潜在要求用户尚未提出的潜在要求。uu综综合合成成系系统统的的解解决决方方案案,给给出出目目标标系统的详细逻辑模型。系统的详细逻辑模型。常用的分析方法常用的分析方法面向数据流面向数据流的结构化分析方法的结构化分析方法(SA)面向数据结构面向数据结构的的Jackson方法方法(JSD)面向数据结构面向数据结构的结构化数据系统开发方的结构化数据系统开发方法法(DSSD)面向对象面向对象的分析方法的分析方法(OOA)等等3)编制需求分析阶段的文档编制需求分析阶段的文档uu软件需求说明书;软件需求说明书;uu初步的用户手册;初步的用户手册;uu确认测试计划;确认测试计划;uu修改和完善软件开发计划。修改和完善软件开发计划。4)需求分析评审需求分析评审uu作作为为需需求求分分析析阶阶段段工工作作的的复复查查手手段段,应应该该对对功功能能的的正正确确性性、文文档档的的一一致致性性、完完备备性性、准准确确性性和和清清晰晰性性,以以及其它需求给予评价。及其它需求给予评价。uu评评评评审审审审:小小小小组组组组:非非非非设设设设计计计计人人人人员员员员、用用用用户户户户(签签签签字字字字确认)确认)确认)确认)n n需需要要能能够够表表达达和和理理解解问问题题的的信信息息域域和和功功能域能域uu 信息流信息流:数据和控制通过一个系统:数据和控制通过一个系统时的变化方式。两个功能之间的数据时的变化方式。两个功能之间的数据/控制传递就确定了功能间的接口。控制传递就确定了功能间的接口。uu 信息内容信息内容:单个数据或控制对象,:单个数据或控制对象,它们构成了某个更大的由软件变换生它们构成了某个更大的由软件变换生成的信息的集合。成的信息的集合。uu 信息结构信息结构:各种数据和控制项的内:各种数据和控制项的内部组织。部组织。需求分析的原则需求分析的原则以以层层次次化化的的方方式式对对问问题题进进行行分分解解和和不不断断细化细化纵纵向向分分解解横向分解横向分解给出系统的逻辑视图和物理视图给出系统的逻辑视图和物理视图uu 软软件件需需求求的的逻逻辑辑视视图图给给出出的的是是软软件件要要达达到到的的功功能能和和要要处处理理的的数数据据之之间间的关系,而不是实现的细节。的关系,而不是实现的细节。uu软软件件需需求求的的逻逻辑辑描描述述是是软软件件设设计计的的基础。基础。uu软软件件需需求求的的物物理理视视图图给给出出的的是是处处理理功功能能和和数数据据结结构构的的实实际际表表现现形形式式,这往往是由设备本身决定的。这往往是由设备本身决定的。软件需求的层次软件需求的层次1)业务需求业务需求反映了组织或客户对系统、产品高层次反映了组织或客户对系统、产品高层次的目标要求,它们一般在的目标要求,它们一般在项目视图项目视图和和范范围文档围文档中给予说明。中给予说明。2)用户需求用户需求 描述用户使用软件需要完成哪些任务,描述用户使用软件需要完成哪些任务,它们可通过它们可通过使用实例图使用实例图或或脚本说明脚本说明加以加以阐明。阐明。3)功能功能非功能需求非功能需求 定义了开发者必须实现的软件功能,而定义了开发者必须实现的软件功能,而非功能需求如表所示非功能需求如表所示:需求获取技术需求获取技术需求获取技术包括两方面的工作:需求获取技术包括两方面的工作:建立获取用户要求的方法的框架;建立获取用户要求的方法的框架;支持和监控需求获取的过程的机制。支持和监控需求获取的过程的机制。获取用户需求的主要方法是调查研究。获取用户需求的主要方法是调查研究。了解系统的需求了解系统的需求 软件开发是系统开发的一部分软件开发是系统开发的一部分,仔细分析仔细分析研究系统的需求规格说明研究系统的需求规格说明,对软件的需求对软件的需求获取是很有必要的。获取是很有必要的。市场调查市场调查 了了解解市市场场对对待待开开发发软软件件有有什什么么要要求求;了了解市场上有无与待开发软件类似的系统。解市场上有无与待开发软件类似的系统。访问用户和用户领域的专家访问用户和用户领域的专家 把把从从用用户户得得到到的的信信息息作作为为重重要要的的原原始始资资料料进进行行分分析析;访访问问用用户户领领域域的的专专家家所所得得到到的的信息将有助于对用户需求的理解。信息将有助于对用户需求的理解。考察现场考察现场 了解用户实际操作环境、操作过程和操了解用户实际操作环境、操作过程和操作要求。对照用户提交的问题陈述,对用作要求。对照用户提交的问题陈述,对用户需求可以有更全面、更细致的认识。户需求可以有更全面、更细致的认识。调查研究的方法调查研究的方法发调查表;发调查表;召开调查会;召开调查会;向用户领域的专家个别咨询;向用户领域的专家个别咨询;实地考察,实地考察,跟踪现场业务流程;跟踪现场业务流程;查阅与待开发系统有关的资料;查阅与待开发系统有关的资料;使用各种调查工具等。使用各种调查工具等。需求分析方法需求分析方法 原型法(原型法(P45-49P45-49):概念、三种模型、两种策略、优点、生存概念、三种模型、两种策略、优点、生存期、可使用的阶段。期、可使用的阶段。软件复用:五个层次、两种技术软件复用:五个层次、两种技术P53P53 面向数据流的分析方法面向数据流的分析方法 P53P53结构化分析结构化分析))基于数据流的分析原则基于数据流的分析原则基于数据流的分析原则基于数据流的分析原则:基本符号基本符号P53P53分层细化分层细化从输出回溯。(从输出回溯。(举例:图书管理、银行、超市等举例:图书管理、银行、超市等举例:图书管理、银行、超市等举例:图书管理、银行、超市等)检查原则:检查原则:P55P55编号编号 )数据字典:详细补充说明数据流、存储文件)数据字典:详细补充说明数据流、存储文件P53P533)3)加工逻辑说明:详细补充说明复杂的处理框的功能。加工逻辑说明:详细补充说明复杂的处理框的功能。)系统动态图:主要用在面向对象)系统动态图:主要用在面向对象需求分析方法需求分析方法)数据及数据库设计:数据库之间的关系。P71ER模型、规范化、分析过程、考虑因素)辅助工具面向数据结构的分析方法面向数据结构的分析方法面向数据结构的分析方法面向数据结构的分析方法(略,第五章略,第五章略,第五章略,第五章)Jackson系统开发方法、Warnier-Orr方法、需求规格说明与评审n n结构化分析方法最初只是着眼于数据流,结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理自顶向下,逐层分解,建立系统的处理流程,以流程,以数据流图数据流图和和数据词典数据词典为主要工为主要工具,建立系统的逻辑模型。具,建立系统的逻辑模型。n n扩充后,将建模技术扩展到扩充后,将建模技术扩展到数据建模数据建模、功能建模功能建模和和行为建模行为建模,以实体以实体-关系图关系图、数据流图数据流图和和控制流图控制流图、状态状态-迁移图迁移图为为工具,工具,数据词典数据词典为核心,从不同视点建为核心,从不同视点建立系统的分析模型。立系统的分析模型。结构化分析方法结构化分析方法结构化分析的分析模型结构化分析的分析模型实体实体关系图关系图状态状态迁移图迁移图数据流数据流数据流数据流图图图图数据对象描述数据对象描述加工规格说明加工规格说明数据数据字典字典控制规格说明控制规格说明数据建模数据建模n n数据模型包括三种互相关联的信息:数据模型包括三种互相关联的信息:数据数据对象对象,描述对象的,描述对象的属性属性,描述对象间相互,描述对象间相互连接的连接的关系关系。n n在需求分析阶段描述数据对象和它们之间在需求分析阶段描述数据对象和它们之间的关系,的关系,使用了使用了E-R图图。n n例如,在教学管理中,一个教师可以教授例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的学习几门课程。因此,教学管理中涉及的对象(实体型)有对象(实体型)有学生学生、教师教师和和课程课程。教学数据模型教学数据模型学号学号学号学号 姓名姓名姓名姓名 专业专业专业专业 性别性别性别性别 学生学生学生学生职工号职工号职工号职工号姓名姓名姓名姓名专业专业专业专业职称职称职称职称年龄年龄年龄年龄教师教师教师教师课程号课程号课程号课程号 课程名课程名课程名课程名 学分学分学分学分 学时学时学时学时 课程课程课程课程学号学号学号学号课程号课程号课程号课程号成绩成绩成绩成绩选课选课选课选课实例的关联有三种:一对一实例的关联有三种:一对一(1:1);一对一对多多(1:m);多对多多对多(n:m)。这种实例的关联称为这种实例的关联称为“基数基数”。基数表明。基数表明了了“重复性重复性”。教师教师学生学生管带管带基数基数:一位教师一位教师 基数基数:多位学生多位学生参与度参与度:必须必须 参与度参与度:可选可选E-R图中表示实体关联的符号如下:图中表示实体关联的符号如下:XY一个一个X与一个与一个Y相关联相关联一个一个X与一个或多个与一个或多个Y相关联相关联XY一个一个X与零个或一个与零个或一个Y相关联相关联XY一个一个X与零个与零个,一个或多个一个或多个Y相关联相关联XY一个一个X与一个与一个Y或或Z相关联相关联XYZ一个一个X与一个与一个Y与与Z相关联相关联XYZ功能建模和数据流功能建模和数据流n n最初最初,结构化分析方法仅讨论数据流建模。结构化分析方法仅讨论数据流建模。目标系统被表示成如图所示的数据变换流目标系统被表示成如图所示的数据变换流程图。系统的功能体现在核心的数据变换程图。系统的功能体现在核心的数据变换中。中。外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体目标目标目标目标系统系统系统系统输入信息输入信息输入信息输入信息输入信息输入信息输入信息输入信息输出信息输出信息输出信息输出信息输出信息输出信息输出信息输出信息功能建模的思想功能建模的思想n n功能建模就是用抽象模型的概念,按照功能建模就是用抽象模型的概念,按照软件内部软件内部数据传递数据传递、变换变换的关系,的关系,自顶自顶向下逐层分解向下逐层分解,直到找到满足功能要求,直到找到满足功能要求的所有可实现的软件为止。的所有可实现的软件为止。n n根据根据DeMarco的论述,功能模型使用了的论述,功能模型使用了数据流图数据流图来表达系统内数据的运动情况,来表达系统内数据的运动情况,而数据流的变换则用结构化英语、判定而数据流的变换则用结构化英语、判定表与判定树来描述。表与判定树来描述。分层的数据流图分层的数据流图结构化分析方法功能建模的步骤结构化分析方法功能建模的步骤 商店业务处理系统商店业务处理系统这个数据流图只是一个高层的这个数据流图只是一个高层的系统逻辑模系统逻辑模型型,它反映了目标系统要实现的功能以及,它反映了目标系统要实现的功能以及系统与外界的关系。系统与外界的关系。该图亦称为上下文图或语境图(该图亦称为上下文图或语境图(Context Diagram)数据流图绘制步骤数据流图绘制步骤 首先确定系统的输入和输出首先确定系统的输入和输出 根据商店业务,画出顶层数据流图,根据商店业务,画出顶层数据流图,以反映最主要业务处理流程以反映最主要业务处理流程 经过分析,商店业务处理的经过分析,商店业务处理的主要功主要功能能应当有应当有销售销售、采购采购、会计会计三大项。三大项。主要数据流输入的源点主要数据流输入的源点和和输出终点输出终点是是顾客顾客和和供应商供应商。然后从输入端开始,根据商店业务然后从输入端开始,根据商店业务工作流,画出数据流流经的各加工框,工作流,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流逐步画到输出端,得到第一层数据流图。图。第一层数据流图第一层数据流图加细每一个加工框加细每一个加工框销售细化销售细化采购细化采购细化财务细化财务细化绘制数据流图的原则绘制数据流图的原则n n数据流图上所有图形符号数据流图上所有图形符号只限于只限于前述四种前述四种基本图形元素;基本图形元素;n n数据流图的顶层图上的数据流必须封闭在数据流图的顶层图上的数据流必须封闭在外部实体之间;外部实体之间;n n每个加工每个加工至少有一个输入数据流和一个输至少有一个输入数据流和一个输出数据流;出数据流;n n在数据流图中,需在数据流图中,需按层给加工框编号按层给加工框编号。编。编号表明该加工所处层次及上下层的亲子关号表明该加工所处层次及上下层的亲子关系;系;n n规定任何一个数据流子图必须与它上一规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即和输出数据流必须一致。此即父图与子父图与子图的平衡;图的平衡;n n如果一个数据文件仅在展开的数据流子如果一个数据文件仅在展开的数据流子图中使用,可以在父图中不画出;图中使用,可以在父图中不画出;n n可以在数据流图中加入物质流,帮助用可以在数据流图中加入物质流,帮助用户理解数据流图;户理解数据流图;n n图上每个元素都必须有名字;图上每个元素都必须有名字;n n数据流图中不可夹带控制流。数据流图中不可夹带控制流。行为建模行为建模n n行为建模给出需求分析方法的所有操作原行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才则,但只有结构化分析方法的扩充版本才提供这种建模的符号。提供这种建模的符号。uu状态迁移图状态迁移图uu Petri网网状态迁移图状态迁移图n n例如例如,有关有关CPU分配的进程的状态迁移。分配的进程的状态迁移。t2t3t4t1运行运行运行运行就绪就绪就绪就绪等待等待等待等待Petri网网n nPetri网已广泛地应用于硬件与软件系统的网已广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的协同操作的处理系统,也就是并发执行的处理系统。处理系统。Petri网简称网简称PNG(Petri Net Graph),它它有两种结点:有两种结点:位置位置:符号符号“”,表示系统,表示系统状态状态。转移转移:符号符号“”,表示系统中的表示系统中的事事件件。有向边表示有向边表示转移的输入转移的输入,或,或转移的输出转移的输出标记标记,或称,或称令牌令牌(token),是表明系统当前是表明系统当前处于什么状态的标志。处于什么状态的标志。Petri网网可能的变化有:可能的变化有:进程进程进程进程 得到资源得到资源得到资源得到资源 占用资源运行占用资源运行占用资源运行占用资源运行 释放资源释放资源释放资源释放资源 不用资源运行不用资源运行不用资源运行不用资源运行PR1 LOCK R PR1 LOCK R 处理处理处理处理11 UNLOCK R 11 UNLOCK R 处理处理处理处理1212PR2 LOCK R PR2 LOCK R 处理处理处理处理21 UNLOCK R 21 UNLOCK R 处理处理处理处理2222例如,例如,处理两个进程的同步问题:处理两个进程的同步问题:数据词典数据词典n n数据词典是结构化分析方法的贺信。与各数据词典是结构化分析方法的贺信。与各模型的图形表示配合,能清楚地表达数据模型的图形表示配合,能清楚地表达数据处理的要求处理的要求n n词条描述词条描述 对于在模型中每一个被命对于在模型中每一个被命名的图形元素,均加以定义,其内容有名的图形元素,均加以定义,其内容有:名字名字,别名或编号别名或编号,分类分类,描述描述,定义定义,位置位置,其它其它,等等数据结构的描述数据结构的描述 符符 号号 含含 义义 举举 例例 被定义为被定义为 与与 x=ab.,.或或.|.或或 x=a,b,x=a|b.或或 m.n 重复重复 x=a,x=3a8(.)可选可选 x=(a)“.”基本数据元素基本数据元素 x=“a”.连结符连结符 x=1.9存折格式存折格式存折户名所号帐号开户日性质存折户名所号帐号开户日性质(印密印密)1存取行存取行50户名户名2字母字母24所号所号“001”.“999”帐号帐号“00000001”.“99999999”开户日年月日开户日年月日性质性质“1”.“6”注:注:“1”表示普通表示普通户,户,“5”表示工资户等表示工资户等印密印密“0”注:印密在存折上不显示注:印密在存折上不显示存取行日期(摘要)支出存入存取行日期(摘要)支出存入余额操作复核余额操作复核基本加工逻辑说明基本加工逻辑说明 对数据流图的每一个基本加工,必须有一对数据流图的每一个基本加工,必须有一个基本加工逻辑说明。个基本加工逻辑说明。基本加工逻辑说明必须描述基本加工如何基本加工逻辑说明必须描述基本加工如何把把输入数据流变换为输出数据流输入数据流变换为输出数据流的加工规的加工规则。则。加工逻辑说明必须描述实现加工的策略而加工逻辑说明必须描述实现加工的策略而不是实现加工的细节。不是实现加工的细节。加工逻辑说明中包含的信息应是充足的,加工逻辑说明中包含的信息应是充足的,完备的,有用的,无冗余的。完备的,有用的,无冗余的。用于写加工逻辑说明的工具用于写加工逻辑说明的工具 结构化英语结构化英语 判定表判定表 判定树判定树(1)结构化英语结构化英语结构化英语的词汇表由结构化英语的词汇表由 英语命令动词英语命令动词 数据词典中定义的名字数据词典中定义的名字 有限的自定义词有限的自定义词 逻辑关系词逻辑关系词 IF_THEN_ELSE、SWITCH、WHILE_DO、FOR、DO_WHILE等组成。等组成。是一种介于自然语言和形式化语言之间是一种介于自然语言和形式化语言之间的语言。的语言。语言的语言的正文用基本控制结构进行分割正文用基本控制结构进行分割,加工中的加工中的操作用自然语言短语来表示。操作用自然语言短语来表示。其基本控制结构有三种:其基本控制结构有三种:uu简单陈述句结构简单陈述句结构:避免复合语句;:避免复合语句;uu重复结构重复结构:while_do、for_do 或或 do_while结构。结构。uu判定结构判定结构:if_then_else 或或switch_do 结构;结构;商店业务处理系统中商店业务处理系统中“检查发货单检查发货单”if 发货单金额超过发货单金额超过$500 then if 欠款超过了欠款超过了60天天 then 在偿还欠款前不予批准在偿还欠款前不予批准 else(欠款未超期)欠款未超期)发批准书,发货单发批准书,发货单 else(发货单金额未超过发货单金额未超过$500)if 欠款超过欠款超过60天天 then 发批准书,发货单及赊欠报告发批准书,发货单及赊欠报告 else(欠款未超期)欠款未超期)发批准书,发货单发批准书,发货单 (2)判定表判定表如果数据流图的加工需要依赖于如果数据流图的加工需要依赖于多个逻多个逻辑条件的取值辑条件的取值,使用判定表来描述比较,使用判定表来描述比较合适。合适。以以“检查发货单检查发货单”为例为例(3)判定树判定树判定树也是用来表达加工逻辑的一种工判定树也是用来表达加工逻辑的一种工具。有时侯它比判定表更直观。具。有时侯它比判定表更直观。检检查查发发货货单单金额金额$500金额金额$500 欠款欠款60天天不发出批准书不发出批准书 欠款欠款 60天天发货单发货单发出批准书、发出批准书、欠款欠款60天天发出批准书、发出批准书、发货单及赊欠报告发货单及赊欠报告 欠款欠款 60天天发出批准书、发出批准书、发货单发货单n n这是一种有效驾驭风险的技术。这是一种有效驾驭风险的技术。n n在软件开发中,原型是软件的一个在软件开发中,原型是软件的一个早期早期可运行的版本可运行的版本,它反映最终系统的部分,它反映最终系统的部分重要特性。重要特性。探索型:探索型:目的是要弄清对目标系统目的是要弄清对目标系统的要求,确定所希望的特性,并探的要求,确定所希望的特性,并探讨多种方案的可行性。讨多种方案的可行性。实验型:实验型:这种原型用于大规模开发这种原型用于大规模开发和实现之前,考核方案是否合适,和实现之前,考核方案是否合适,规格说明是否可靠。规格说明是否可靠。快速原型化方法快速原型化方法 进化型:进化型:这种原型的目的不在于改进这种原型的目的不在于改进规格说明,而是将系统建造得易于变规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原化,在改进原型的过程中,逐步将原型进化成最终系统。型进化成最终系统。原型使用策略原型使用策略 废弃策略废弃策略 追加策略追加策略 建立快速原型的好处建立快速原型的好处增进软件者和用户对系统服务需求的理增进软件者和用户对系统服务需求的理解,使比较含糊的具有不确定性的解,使比较含糊的具有不确定性的软件软件需求(主要是功能)明确化需求(主要是功能)明确化。原型化方法提供了一种有力的学习手段。原型化方法提供了一种有力的学习手段。可以容易地可以容易地确定系统的性能确定系统的性能,确认,确认各项各项主要系统服务的可应用性主要系统服务的可应用性,确认系统设,确认系统设计的可行性,确认系统作为产品的结果。计的可行性,确认系统作为产品的结果。有的原型可以直接成为产品,有的略加有的原型可以直接成为产品,有的略加修改就可成为最终系统的一个组成部分。修改就可成为最终系统的一个组成部分。原型开发技术原型开发技术可执行规格说明可执行规格说明基于脚本基于脚本(scenario)的设计的设计自动程序设计自动程序设计专用语言专用语言可复用可复用(reusable)的软件的软件简化假设简化假设可执行规格说明可执行规格说明可执行规格说明是用于需求规格说明的可执行规格说明是用于需求规格说明的一种自动化技术。使用这种方法,人们一种自动化技术。使用这种方法,人们可以直接观察他们用语言规定的任何系可以直接观察他们用语言规定的任何系统性行为。包括统性行为。包括 代数规格说明代数规格说明 有限状态模型有限状态模型 可执行的数据流图可执行的数据流图(1)代数规格说明代数规格说明使用集合、定义于这些集合上的函数和使用集合、定义于这些集合上的函数和定义于这些函数上的方程来描述对象。定义于这些函数上的方程来描述对象。规格说明的操作语义用这些方程表示。规格说明的操作语义用这些方程表示。举例:定义一个无界的栈及其操作举例:定义一个无界的栈及其操作NEW_STACK:StackPUSH:Stack,Element StackPOP:Stack (Element|Undefined)POP(NEW_STACK()UndefinedPOP(PUSH(stk,elem)elem(2)有限状态模型有限状态模型parnas提出的使用最广泛的一种可执行提出的使用最广泛的一种可执行规格说明形式。从一个初始状态开始规格说明形式。从一个初始状态开始接接收输入收输入,到,到产生输出产生输出,状态状态在在推移变化推移变化。施加在状态元素上的约束确定了有效状施加在状态元素上的约束确定了有效状态的推移。态的推移。举例:建立用户程序对话举例:建立用户程序对话startgoofinfobyenew entryreportenterquithelpprint(3)可执行的数据流图可执行的数据流图数据流图是基于结构化开发方法的结构数据流图是基于结构化开发方法的结构化规格说明化规格说明用一种可执行的语言程序代替定义处理用一种可执行的语言程序代替定义处理逻辑的结构化英语,数据流图就成为由逻辑的结构化英语,数据流图就成为由可执行语言程序模块组成的网络,在一可执行语言程序模块组成的网络,在一定环境或工具的支持下就可成为一个可定环境或工具的支持下就可成为一个可以执行的原型系统以执行的原型系统。基于脚本的设计基于脚本的设计脚本是指脚本是指用户界面的原型用户界面的原型。一个脚本用以一个脚本用以模拟在系统运行期间用户模拟在系统运行期间用户经历的事件经历的事件。它提供了。它提供了输入输入处理处理输出输出的屏幕格式和有关对话的模型的屏幕格式和有关对话的模型。因此,。因此,软件开发者能够给用户显示系统的逼真软件开发者能够给用户显示系统的逼真的视图,使用户得以判断是否符合他的的视图,使用户得以判断是否符合他的意图。意图。可在任一脚本中使用一套可复用的软件可在任一脚本中使用一套可复用的软件模块,以表达某一方面的要求。模块,以表达某一方面的要求。可使用一种原型语言来描述原型系统。可使用一种原型语言来描述原型系统。原型开发过程中用这种语言来定义原型开发过程中用这种语言来定义 屏幕屏幕 数据项数据项 相关的操作相关的操作 从系统的外部描述开始,开发与数据从系统的外部描述开始,开发与数据库的接口库的接口 错误处理和恢复过程错误处理和恢复过程等系统的与外部视图一致的细节。等系统的与外部视图一致的细节。uu 实例推广手段:实例推广手段:从实例特征出发,将它推广为待从实例特征出发,将它推广为待编程序的特征,最后得到程序。编程序的特征,最后得到程序。uu 过程化手段:过程化手段:研究甚高级语言的编译和知识的研究甚高级语言的编译和知识的过程化过程化。专用语言专用语言专用语言是应用领域的模型化语言。专用语言是应用领域的模型化语言。在原型开发中使用专用语言,可方便用在原型开发中使用专用语言,可方便用户和软件开发者在计划中的系统特性方户和软件开发者在计划中的系统特性方面的交流。面的交流。软件复用技术软件复用技术利用可复用的模块,做出适当的组合,利用可复用的模块,做出适当的组合,就可得到快速构造的原型系统。就可得到快速构造的原型系统。为了快速地构造原型,这些模块为了快速地构造原型,这些模块uu 必须有简单而清晰的界面;必须有简单而清晰的界面;uu 应当尽量不依赖其它的模块或数据结应当尽量不依赖其它的模块或数据结构;构;uu 应具有一些通用的功能。应具有一些通用的功能。简化假设简化假设简化假设是在开发过程中使设计者迅速简化假设是在开发过程中使设计者迅速得到一个简化的系统所做的假设。尽管得到一个简化的系统所做的假设。尽管这些假设可能实际上并不能成立,但它这些假设可能实际上并不能成立,但它们在原型开发过程中可以使开发者的注们在原型开发过程中可以使开发者的注意力集中在一些主要的方面。意力集中在一些主要的方面。n n软件需求规格说明的基本原则:软件需求规格说明的基本原则:uu功能与实现分离,描述要功能与