1、 第三章第三章 系统建模技术系统建模技术-结构化方法结构化方法 (一)结构化分析方法(一)结构化分析方法 要回答:如何定义问题?要回答:如何定义问题?就如何定义问题而言,如何获得需求就如何定义问题而言,如何获得需求 如何规约需求如何规约需求 如何验证需求如何验证需求 1、关于需求获取、关于需求获取 需求面临的挑战需求面临的挑战 问题空间理解问题空间理解 人与人之间的通信人与人之间的通信 需求的不断变化需求的不断变化 重要性之一重要性之一 软件需求工程直接关系到软件需求工程直接关系到“成本、质量和按时交付成本、质量和按时交付”等问题等问题-它们是项目成败的关键因素。它们是项目成败的关键因素。项目
2、的五维:进度,特性,质量,成本,人员。项目的五维:进度,特性,质量,成本,人员。重要性之二重要性之二 软件需求工程软件需求工程-这种发生在软件生命周期的初始阶段这种发生在软件生命周期的初始阶段的错误是非常难于改正,并且是代价极高的。的错误是非常难于改正,并且是代价极高的。最新的研究兴趣聚焦于最新的研究兴趣聚焦于“需求引出需求引出”,因为它涉及到因为它涉及到软件开发人员与非软件专业人员合作的问题。软件开发人员与非软件专业人员合作的问题。分析问题和需求的能力取决于分析人员的分析问题和需求的能力取决于分析人员的思维思维和和经验经验。思维来源于思维来源于:严谨、逻辑和严谨、逻辑和“活跃活跃”的思考习惯
3、。的思考习惯。(1)严谨要求严谨要求思考的对象思考的对象应该是不放过任何一个应该是不放过任何一个“小小”问题问题 (2)逻辑要求逻辑要求思思考的过程应该是一种符合规则的考的过程应该是一种符合规则的 推导过程推导过程 (3)活跃思维要求活跃思维要求思考的方式思考的方式应该是并行的,即应该是并行的,即 不是仅一个角度,而是多个角度来思考问题不是仅一个角度,而是多个角度来思考问题经验来源于:经验来源于:(1)开发了一些软件并善于总结开发了一些软件并善于总结-创新与教训创新与教训 (2)跟踪最新技术。跟踪最新技术。4 4)需求获取技术特征)需求获取技术特征由上可见,需求获取技术特征:由上可见,需求获取
4、技术特征:方便通讯(使用易于理解的语言)方便通讯(使用易于理解的语言)提供定义系统边界的方法提供定义系统边界的方法 提供划分、抽象、投影等方法提供划分、抽象、投影等方法 允许采用多种可供选择的设计方法允许采用多种可供选择的设计方法 适应需求的变化适应需求的变化 支持使用问题空间的术语,思考问题和编制文档支持使用问题空间的术语,思考问题和编制文档 2)语义与表示)语义与表示 一般地说,一般地说,USE CASE是用户为了达到某一目标和系统是用户为了达到某一目标和系统进行的典型交互。例如:进行的典型交互。例如:“做一次拼写检查做一次拼写检查”“对一个文档建立索引对一个文档建立索引”对一个用况而言,
5、关键要素是:对一个用况而言,关键要素是:表示一种用户可以理解表示一种用户可以理解并对该用户有价值的功能。并对该用户有价值的功能。用况提供了客户和开发人员在制订项目计划中进行交流用况提供了客户和开发人员在制订项目计划中进行交流的主要成分。的主要成分。(1)USE CASE语义语义 一个一个USE CASEUSE CASE是系统或其它语义实体(例如子系统或一个是系统或其它语义实体(例如子系统或一个类)所提供的一块类)所提供的一块(unit)(unit)高内聚的功能,显露该系统和一个高内聚的功能,显露该系统和一个或多个外部的交互者(称为操作者)交替出现的消息序列,或多个外部的交互者(称为操作者)交替
6、出现的消息序列,以及该系统所执行的动作。以及该系统所执行的动作。可见,一个可见,一个USE CASEUSE CASE捕获了参与交互的各方关于其行为捕获了参与交互的各方关于其行为的一个约定。通过这一约定,描述了该语义实体在不同条件的一个约定。通过这一约定,描述了该语义实体在不同条件下的行为对参与者一个要求的响应,以实现某一目的。不同下的行为对参与者一个要求的响应,以实现某一目的。不同的行为序列,依赖于所给出的特定要求以及与这些要求相关的行为序列,依赖于所给出的特定要求以及与这些要求相关的条件。的条件。(2)表示与描述表示与描述 USE CASEUSE CASE通常被表示为:通常被表示为:USE
7、CASE USE CASE包含一组操作和属性,这些操作和属性包含一组操作和属性,这些操作和属性规约了该规约了该USE CASEUSE CASE的实例所执行的那个动作序列。动作的实例所执行的那个动作序列。动作包含状态的改变以及该包含状态的改变以及该USE CASEUSE CASE与其环境的通讯。与其环境的通讯。为了表明为了表明USE CASEUSE CASE所包含的具体内容,还应给出它所包含的具体内容,还应给出它的正文描述。即:的正文描述。即:USE CASE 中包含的信息中包含的信息名称名称(Name)(Name)标识标识(Identifier)(Identifier)描述描述(Descrip
8、tion)(Description)角色角色(Actor)(Actor)状态状态(Status)(Status)活动及时序活动及时序频度频度(Frequency)(Frequency)注:具体例子请参见注:具体例子请参见P16-17P16-17。3)操作者语义与表示操作者语义与表示 一个操作者定义了一组高内聚的角色,当用户与该一个操作者定义了一组高内聚的角色,当用户与该实体交互时,用户可以扮演这一角色。实体交互时,用户可以扮演这一角色。对于每一对于每一USE CASEUSE CASE,一个操作者有一种角色,即每,一个操作者有一种角色,即每一一USE CASEUSE CASE与具有一种角色的操作
9、者进行通讯。与具有一种角色的操作者进行通讯。通常,一个操作者被表示为:通常,一个操作者被表示为:5)关系)关系 在在USE CASEUSE CASE之间,或在操作者与之间,或在操作者与USE CASEUSE CASE之间,存在一之间,存在一些标准的关系:些标准的关系:关联:参与关系,即操作者参与一个关联:参与关系,即操作者参与一个USE CASEUSE CASE。例如,操作者的实例与例如,操作者的实例与USE CASEUSE CASE实例相互通讯。实例相互通讯。关联是操关联是操作者和作者和USE CASEUSE CASE之间的唯一关系。之间的唯一关系。扩展:扩展:USE CASE AUSE C
10、ASE A到到USE CASE BUSE CASE B的一个扩展关系,的一个扩展关系,指出了指出了USE CASE BUSE CASE B的一个实例可以由的一个实例可以由A A说明的行为予以扩说明的行为予以扩展(根据该扩展所说明的特定条件),并依据该扩展点定展(根据该扩展所说明的特定条件),并依据该扩展点定义的位置,义的位置,A A说明的行为被插入到说明的行为被插入到B B中。中。包含:包含:USE CASE AUSE CASE A到到USE CASE BUSE CASE B的一个包含,指的一个包含,指出出A A的一个实例将包含的一个实例将包含B B说明的行为,即这一行为将包含在说明的行为,即
11、这一行为将包含在A A定义的那部分中。定义的那部分中。泛化:泛化:USE CASE AUSE CASE A到到USE CASE BUSE CASE B的泛化,指出的泛化,指出A A是是B B的特殊情况。的特殊情况。1 *the salesperson asks for the catalog Place Orderextension pointsadditional requests:after creation of the order SupplyCustomer Data Order Produck Arrange Payment Request Catalogsalesperson 例
12、:例:USE CASE USE CASE 关系关系 Actor Actor 关系关系Supervisor Establish Credit 1 *6)、)、USE CASE图图 USE CASEUSE CASE图给出了操作者和图给出了操作者和USE CASEUSE CASE以及它们之间以及它们之间的关系。即图中给出了一些操作者、一组关系、一些的关系。即图中给出了一些操作者、一组关系、一些接口和这些元素之间的关系。接口和这些元素之间的关系。(关系是操作者和关系是操作者和USE CASEUSE CASE之间的关联之间的关联 是操作者之间的泛化是操作者之间的泛化 是是USE CASEUSE CASE
13、之间的泛化、扩展和包含之间的泛化、扩展和包含)可以将一些可以将一些USE CASEUSE CASE用一矩形括起,以表示所包括用一矩形括起,以表示所包括的那个系统或其它语义实体的边界。的那个系统或其它语义实体的边界。Check statusPlace orderFill order Establish credit Telephone CatalogSalespersonShipping ClerckSupervisorCustomer例:例:USE CASEUSE CASE图图2、关于需求规约、关于需求规约需求规约的主要目标:需求规约的主要目标:依据需求陈述(作为输入),解决其中的歧义、不依据
14、需求陈述(作为输入),解决其中的歧义、不一致等问题,以系统化的形式表达用户的需求,即给出一致等问题,以系统化的形式表达用户的需求,即给出问题的形式化或半形式化的描述(建立模型),形成需问题的形式化或半形式化的描述(建立模型),形成需求规格说明书。为了实现这一目标,求规格说明书。为了实现这一目标,(一)结构化分析方法(一)结构化分析方法 1 1提出的概念有:提出的概念有:数据流:数据流:加工:加工:数据存储:数据存储:数据源:数据源:数据潭:数据潭:概念是完备的概念是完备的。2 2建模过程建模过程 (1)(1)建立系统的功能模型建立系统的功能模型 -使用的工具为数据流图使用的工具为数据流图DFD
15、DFD 首先:建立系统环境图,确定系统边界首先:建立系统环境图,确定系统边界 继之:自顶向下,逐层分解继之:自顶向下,逐层分解 (2)建立数据字典建立数据字典 定义数据流定义数据流 定义数据存储定义数据存储 定义数据项定义数据项 (3)(3)给出加工小说明给出加工小说明 -使用的工具可以为判定表使用的工具可以为判定表 判定树判定树 (1)(1)建立系统的功能模型建立系统的功能模型 -使用的工具为数据流图使用的工具为数据流图DFDDFD 数据流图:是一种描述数据变换的图形工具。例如:数据流图:是一种描述数据变换的图形工具。例如:旅行社旅行社订票单订票单预定预定机票机票准备准备机票机票记帐记帐费用
16、费用航班航班帐单帐单机票机票记帐文件记帐文件航班目录航班目录旅行社旅行社数据流图由四个基本成分组成:数据流图由四个基本成分组成:数据流数据流 加工加工 数据存储数据存储 数据源和数据潭数据源和数据潭其中:其中:1 1 各成分的定义各成分的定义 2 2 数据流、数据存储数据流、数据存储-支持数据抽象支持数据抽象 加工加工-支持过程支持过程/功能的抽象功能的抽象 3 3 关于命名问题关于命名问题简化的商业自动化系统简化的商业自动化系统营业员收款员经 理销售的商品销售的商品现金额现金额现金余额现金余额销售情况销售情况日销售额日销售额查询要求查询要求首先:建立系统环境图,确定系统边界首先:建立系统环境
17、图,确定系统边界 -顶层顶层DFDDFD其中:其中:1 1 数据流为:销售的商品,日销售额等数据流为:销售的商品,日销售额等 3 3个输入流,个输入流,3 3个输出流个输出流 数据源为:营业员,经理,收款员数据源为:营业员,经理,收款员 数据潭为:经理,收款员数据潭为:经理,收款员 2 2 加工名为:要建立的系统名字加工名为:要建立的系统名字录入、修改或删除商品信息录入、修改 现金额,并计算余额查询商品销售情况 计算日销售额123继之:自顶向下,逐层分解继之:自顶向下,逐层分解A A、按人或部门的功能要求,将加工、按人或部门的功能要求,将加工“打碎打碎”,形成:形成:注:需给每一加工编号;注:
18、需给每一加工编号;B B、”分派分派”数据流,形成:数据流,形成:录入、修改或删除商品信息 2录入、修改 现金额,并计算余额查询商品销售情况 计算日销售额销售的商品销售的商品现金额现金额现金余额现金余额查询要求查询要求销售情况销售情况日销售额日销售额13其中:要根据特定的加工要求进行分派;其中:要根据特定的加工要求进行分派;保持与顶层数据流的一致;保持与顶层数据流的一致;可以不引入数据源和数据潭。可以不引入数据源和数据潭。录入、修改或删除商品信息录入、修改 现金额,并计算余额查询商品销售情况 计算日销售额销售的商品销售的商品现金额现金额现金余额现金余额查询要求查询要求销售情况销售情况日销售额日
19、销售额销售文件销售文件123C C、引入文件,使之形成一个有机整体、引入文件,使之形成一个有机整体系统:系统:注:到一个文件,既有输入流,又有输出流,则可简化为注:到一个文件,既有输入流,又有输出流,则可简化为 ,并可不给出标识。,并可不给出标识。至此,体现精化,形成至此,体现精化,形成0 0层数据流图。层数据流图。查询商品销售情况 计算日销售额查询要求查询要求销售情况销售情况日销售额日销售额销售文件销售文件3继续继续A A、B B、C C:自顶向下,逐层分解。:自顶向下,逐层分解。例如:加工例如:加工3 3可分解为:可分解为:判定要求查询要求查询要求 3。1统计销售情况 3。2计算日销售额销
20、售文件销售文件查询要求查询要求2查询要求查询要求1销售情况销售情况日销售额日销售额加工3:*其中为什么要引入其中为什么要引入加工加工“判定要求判定要求”?(2)建立数据字典建立数据字典 定义数据流定义数据流 定义数据存储定义数据存储 定义数据项定义数据项 引入:结构符引入:结构符|用于定义数据结构用于定义数据结构 A A A B C B0 C0 B*数据字典数据字典:1、数据流、数据流:销售的商品=商品名+商品编号+单价+数量+日期现金额=余额=日销售额=非负实数查询要求=商品编号|日期查询要求1=商品编号查询要求2=日期销售情况=商品名+商品编号+金额2、数据存贮、数据存贮:销售文件=销售的
21、商品3、数据项 (3)(3)给出加工小说明给出加工小说明 -使用的工具可以为判定表使用的工具可以为判定表 判定树判定树 判断表判断表 条件类别条件类别 条件组合条件组合 操作操作 操作执行操作执行 例如:例如:考试总分考试总分 =620 =620 =620 =620 620 单科成绩单科成绩 有满分有满分 有不及格有不及格 有满分有满分 发升级通知书发升级通知书 y y n y y n 发留级通知书发留级通知书 n n y n n y 发重修通知书发重修通知书 n y n n y n3建模中注意的问题建模中注意的问题 (1)模型平衡规则模型平衡规则 父图和子图必须平衡父图和子图必须平衡 每个数
22、据流和数据存储必须在数据字典中予以定义每个数据流和数据存储必须在数据字典中予以定义 “叶叶”加工(最低层)必须给出加工小说明加工(最低层)必须给出加工小说明 小说明和数据流图的图形表示必须一致,例如:小说明和数据流图的图形表示必须一致,例如:在小说明中,必须说明在小说明中,必须说明“输入数据流输入数据流”如何使用,必须如何使用,必须 说明如何产生说明如何产生“输出数据流输出数据流”,必须说明如何选取、使用、,必须说明如何选取、使用、修改修改“数据存储数据存储”(2)控制复杂性规则控制复杂性规则 上层数据可以上层数据可以“打包打包”上、下数据流对应关系在数据字典中给出,但包内上、下数据流对应关系
23、在数据字典中给出,但包内数据流的性质(输入、输出)必须一致。数据流的性质(输入、输出)必须一致。一幅图中的图元个数应控制在一幅图中的图元个数应控制在7+/-27+/-2以内以内 与每一加工相关的数据流的数目应适中与每一加工相关的数据流的数目应适中 (与层次有关与层次有关)分析数据内容,确定是否所有的输入信息都用于分析数据内容,确定是否所有的输入信息都用于 产生输出信息;产生输出信息;分析加工,确定一个加工所产生的输出,是否都分析加工,确定一个加工所产生的输出,是否都 能由该加工的输入信息导出能由该加工的输入信息导出实例讲解实例讲解:图书管理系统图书管理系统问题陈述见问题陈述见P35P35。根据
24、问题陈述,在一定的层次上,可以把该系统分为两根据问题陈述,在一定的层次上,可以把该系统分为两“大块大块”,即:借还书等事务的处理,以及咨询事务处理。,即:借还书等事务的处理,以及咨询事务处理。-进行功能抽象进行功能抽象。(注:不同的功能抽象将导致不同的结果!但应该是等价的。注:不同的功能抽象将导致不同的结果!但应该是等价的。)于是,可以根据这一抽象,可以识别:于是,可以根据这一抽象,可以识别:1 1)顶层数据流:)顶层数据流:借还书等事务处理要求借还书等事务处理要求 咨询事务要求咨询事务要求 以及相关的数据流以及相关的数据流 2 2)数据源和数据潭为:图书管理人员,读者以及时钟。)数据源和数据
25、潭为:图书管理人员,读者以及时钟。基于以上分析,可形成该系统的环境图:基于以上分析,可形成该系统的环境图:图书管理系统图书管理系统图图书书管管理理员员图书管理要求图书管理要求查询要求查询要求图书统计表图书统计表图书情况图书情况读者情况读者情况 读者读者 系统时钟系统时钟当前日期当前日期罚款单罚款单其中:其中:3 3个输入流个输入流:图书管理要求图书管理要求,查询要求,系统时钟查询要求,系统时钟 图书管理要求图书管理要求=入库单入库单 借书单借书单 还书单还书单 注销单注销单 查询要求查询要求=读者情况读者情况 图书情况图书情况 图书统计表图书统计表 4 4个输出流个输出流:图书统计表,图书情况
26、,读者情况、罚款单图书统计表,图书情况,读者情况、罚款单 通过通过“打碎打碎”、“分派分派”,可形成如下,可形成如下0 0层层DFDDFD:1 1 处理借还处理借还书等事务书等事务 2 2 处理咨询处理咨询 事务事务图书管理要求图书管理要求查询要求查询要求当前日期当前日期目录文件目录文件借书文件借书文件读者文件读者文件罚款单罚款单读者情况读者情况图书情况图书情况图书统计表图书统计表其中:保持输入与输出的一致;其中:保持输入与输出的一致;引入三个文件,对顶层引入三个文件,对顶层DFDDFD进行细化。进行细化。(注:存在数据库设计问题)(注:存在数据库设计问题)以同样方式,对加工以同样方式,对加工
27、1 1进行分解,形成:进行分解,形成:1 1。1 1入库新书入库新书 1 1。2 2 借书借书 1 1。3 3 还还 书书 1 1。4 4注销图书注销图书图书管理要求图书管理要求处理图书处理图书管理要求管理要求目录文件目录文件罚款单罚款单当前日期当前日期借书文件借书文件读者文件读者文件入库单入库单借书单借书单注销单注销单还书单还书单其中:注意平衡问题;平面化问题。当然,还可以继续细化其中:注意平衡问题;平面化问题。当然,还可以继续细化 1 1。2 2 借书借书目录文件目录文件借书文件借书文件例如:借书例如:借书读者文件读者文件借书单借书单 1 1。2 2。1 1检查读者的检查读者的有效性有效性
28、读者文件读者文件 1 1。2 2。2 2检查读者的检查读者的资格资格 1 1。2 2。3 3办理借书办理借书 1 1。2 2。4 4检查图书库存检查图书库存借书单借书单无效读者无效读者有效读者借书单有效读者借书单借书超限借书超限核准后的借书单核准后的借书单该书已借完该书已借完借书记录借书记录借书文件借书文件目录文件目录文件注意:其中粗线数据流!注意:其中粗线数据流!图书管理系统的图书管理系统的USE CASEUSE CASE模型(基本思路):模型(基本思路):借书借书还书还书新书入库新书入库注销图书注销图书图书管理员图书管理员 读读 者者请:请:1 1、在这一思路的基础上,建立该系统的在这一思
29、路的基础上,建立该系统的USE CASEUSE CASE模型;并给模型;并给出每一出每一USE CASEUSE CASE的描述。的描述。2 2、对该系统的两种模型进行比较。(在哪些方法进行?)、对该系统的两种模型进行比较。(在哪些方法进行?)3、关于需求验证、关于需求验证 有关有关SRS内容方面:内容方面:(1)正确性:)正确性:指的是指的是SRSSRS中陈述的每个需求是否都表达了中陈述的每个需求是否都表达了系统的某个要求。系统的某个要求。(2)无二义性:)无二义性:指的是指的是SRSSRS中陈述的每个需求是否都只有中陈述的每个需求是否都只有一种解释。一种解释。(3)完整性:)完整性:未来系统
30、所做的任何事情都包含在未来系统所做的任何事情都包含在SRSSRS的陈述中;的陈述中;未来系统响应所有可能的输入(包括有效和无效);未来系统响应所有可能的输入(包括有效和无效);SRS SRS中没有被标识为中没有被标识为“待定待定”的内容。的内容。(4)可验证性:)可验证性:SRSSRS中陈述的每个需求都是可验证的中陈述的每个需求都是可验证的-即当且仅当存在一个有限代价的过程(人工或机器)即当且仅当存在一个有限代价的过程(人工或机器)可以检查构造的软件产品是否符合用户的需求。可以检查构造的软件产品是否符合用户的需求。(5)一致性:)一致性:SRS SRS中陈述的需求没有与以前的文档发生冲突;中陈
31、述的需求没有与以前的文档发生冲突;SRS SRS中陈述的各个需求之间没有发生冲突。中陈述的各个需求之间没有发生冲突。(6)可理解性:)可理解性:有关有关SRS格式与风格方面格式与风格方面(7)可修改性:)可修改性:指的是指的是SRSSRS的结构和风格使任何对需求的的结构和风格使任何对需求的必要修改都易于完整、一致的进行。必要修改都易于完整、一致的进行。(8 8)可被跟踪性:可被跟踪性:指的是指的是SRSSRS中的每个需求的出处都是清中的每个需求的出处都是清楚的,这意味着楚的,这意味着SRSSRS中包含对前期支持文档的引用表。中包含对前期支持文档的引用表。(9 9)可跟踪性:可跟踪性:指的是指的是SRSSRS的书写方式有助于对其中陈述的书写方式有助于对其中陈述的每个需求进行引用。的每个需求进行引用。(1010)设计无关性:设计无关性:指的是指的是SRSSRS不暗示特定的软件结构和不暗示特定的软件结构和算法。算法。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。