软件工程(张海藩)课件第3章_第1页
软件工程(张海藩)课件第3章_第2页
软件工程(张海藩)课件第3章_第3页
软件工程(张海藩)课件第3章_第4页
软件工程(张海藩)课件第3章_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 为了开发出真正满足用户需求的软件产品,首为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。先必须知道用户的需求。 对软件需求的深入理解是软件开发工作获得成对软件需求的深入理解是软件开发工作获得成功的前提和关键,不论我们把设计和编码工作做功的前提和关键,不论我们把设计和编码工作做得如何出色,不能真正满足用户需求的程序只会得如何出色,不能真正满足用户需求的程序只会给用户带来失望,给开发者带来烦恼。给用户带来失望,给开发者带来烦恼。传统的软件工程方法学采用结构化分传统的软件工程方法学采用结构化分析析(Structured Analysis ,SA)技术完成需求技术完成需求分析工作分析工

2、作。 概述概述3.1与用户通信的技术与用户通信的技术3.2分析建模与规格说明分析建模与规格说明3.3实体实体关系图关系图3.3小结小结3.8数据字典数据字典3.7状态转换图状态转换图3.6数据流图数据流图3.5 需求分析是发现、求精、建模、规格说明和复需求分析是发现、求精、建模、规格说明和复审的过程。审的过程。 需求分析的第一步是尽可能准确地了解用户当需求分析的第一步是尽可能准确地了解用户当前的情况和需要解决的问题。前的情况和需要解决的问题。 接着要对用户提出的初步要求进行反复求精多接着要对用户提出的初步要求进行反复求精多次细化,才能充分理解用户的需求,得出对目标次细化,才能充分理解用户的需求

3、,得出对目标系统的完整、准确和具体的要求。系统的完整、准确和具体的要求。 在技术层次上,软件工程是从一系列建模活动开始的。在技术层次上,软件工程是从一系列建模活动开始的。结构化分析就是一种建立模型的活动,通常建立数据模结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型等三种模型。型、功能模型和行为模型等三种模型。 所谓模型,就是为了理解事物而对事物做出的一种抽所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组一组图形符号和组织这些符号的规则组成。织这些符号的规则组成。

4、 除了用分析模型表示软件需求之外,还除了用分析模型表示软件需求之外,还要写出准确的软件需求规格说明。要写出准确的软件需求规格说明。 需求分析是一项相当艰巨复杂的工作,需求分析是一项相当艰巨复杂的工作,因此对需求分析的结果因此对需求分析的结果( (分析模型和规格说分析模型和规格说明明) )必须严格审查。必须严格审查。与用户通信的困难:与用户通信的困难:1 1 需要通信、沟通的内容非常多。需要通信、沟通的内容非常多。2 2 在双方交流信息的过程中很容易出现误在双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。解或遗漏,也可能存在二义性。3 3 用户不积极配合用户不积极配合对自己前途担心;

5、担心公司秘密泄露对自己前途担心;担心公司秘密泄露 访谈访谈( (或称为会谈或称为会谈) )是最早开始运用的获取用户需求的是最早开始运用的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技技术,也是迄今为止仍然广泛使用的主要的需求分析技术。术。 访谈有两种基本形式,分别是正式的和非正式的访谈。访谈有两种基本形式,分别是正式的和非正式的访谈。在正式的访谈中,系统分析员将提出一些事先准备好的在正式的访谈中,系统分析员将提出一些事先准备好的具体问题。在非正式的访谈中,可以提出一些能够自由具体问题。在非正式的访谈中,可以提出一些能够自由回答的开放性问题,以鼓励被访问的人员表达自己的想回答的开

6、放性问题,以鼓励被访问的人员表达自己的想法。法。 当需要调查大量人员的意见时,向被调当需要调查大量人员的意见时,向被调查的人员分发调查表是一个十分有效的做查的人员分发调查表是一个十分有效的做法。法。 在对用户进行访谈的过程中使用情景分在对用户进行访谈的过程中使用情景分析技术往往非常有效。所谓情景分析就是析技术往往非常有效。所谓情景分析就是对用户运用对用户运用目标系统解决某个具体问题的目标系统解决某个具体问题的方法和结果进行分析。方法和结果进行分析。 这种方法提倡用户与开发者密切合作,这种方法提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商共同标识问题,提出解决方案的要素,商讨不同

7、的方法并指定基本的需求。今天,讨不同的方法并指定基本的需求。今天,简易的应用规格说明技术已经成为信息系简易的应用规格说明技术已经成为信息系统界使用的主流技术。统界使用的主流技术。 具体步骤:具体步骤:p27-28p27-28 快速建立软件原型是最准确、最有效、快速建立软件原型是最准确、最有效、最强大的需求分析技术。快速原型就是快最强大的需求分析技术。快速原型就是快速建立起来的旨在演示目标系统主要功能速建立起来的旨在演示目标系统主要功能的程序。构建原型的要点是,它应该实现的程序。构建原型的要点是,它应该实现用户看得见的功能,省略目标系统的用户看得见的功能,省略目标系统的“隐隐含含”功能。功能。

8、快速原型应该具备的第一个特性是快速原型应该具备的第一个特性是“快速快速”。快速原型的目的是尽快向用户。快速原型的目的是尽快向用户提供一个可在计算机上运行的目标系统的提供一个可在计算机上运行的目标系统的模型,以便使用户和开发者在目标系统应模型,以便使用户和开发者在目标系统应该该“做什么做什么”这个问题上这个问题上尽可能快地达成尽可能快地达成共识。共识。快速原型应该具备的第二个特性是快速原型应该具备的第二个特性是“容易修改容易修改”。如果原型的第一版不是用。如果原型的第一版不是用户所需要的,就必须根据用户的意见迅速户所需要的,就必须根据用户的意见迅速地修改它,构建出原型的第二版,以更好地修改它,构

9、建出原型的第二版,以更好地满足用户的需求。在实际开发软件产品地满足用户的需求。在实际开发软件产品时,时,“修改修改试用试用反馈反馈”的过程可能重复的过程可能重复多遍,如果修改耗时过多,势必延误软件多遍,如果修改耗时过多,势必延误软件开发时间。开发时间。 上述说明的方法并不是解决需求分析阶上述说明的方法并不是解决需求分析阶段所有问题的万能灵药。在实际过程中,段所有问题的万能灵药。在实际过程中,要灵活应变、对症下药。要灵活应变、对症下药。 牢记:兵无常势,水无常形,只要能做牢记:兵无常势,水无常形,只要能做好需求分析,采用哪些方法是次要的。好需求分析,采用哪些方法是次要的。 3.3.13.3.1分

10、析建模分析建模 结构化分析实质上是一种创建模型的活动。通过需结构化分析实质上是一种创建模型的活动。通过需求分析而建立的模型必须达到下述的三个基本目标。求分析而建立的模型必须达到下述的三个基本目标。 描述用户的需求。描述用户的需求。 为软件设计工作奠定基础。为软件设计工作奠定基础。 定义一组需求,一旦开发出软件产品之后,就可定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产品。以用这组需求为标准来验收该产品。 为了达到上述这些目标,在结构化分为了达到上述这些目标,在结构化分析过程中导出的分析模型的形式,如图析过程中导出的分析模型的形式,如图3.13.1所示。所示。图图3.1

11、3.1 分析模型的结构分析模型的结构分析模型的核心是分析模型的核心是“数据字典数据字典”,它描述软件使用或产生的所有数据,它描述软件使用或产生的所有数据对象。对象。“实体实体- -关系图关系图”描绘数据对象之间的关系,它是用来进行数据建模活描绘数据对象之间的关系,它是用来进行数据建模活动的图形,图中出现的每个数据对象的属性可以在动的图形,图中出现的每个数据对象的属性可以在“数据对象描述数据对象描述”中描述。中描述。“数据流图数据流图”是功能建模的基础,创建其目的有二:指出当数据在软是功能建模的基础,创建其目的有二:指出当数据在软件系统中移动时怎样被变换;描绘变换数据流的功能和子功能。在件系统中

12、移动时怎样被变换;描绘变换数据流的功能和子功能。在“处理规格说明处理规格说明”中给出了对出现在数据流图中的每个功能的描述。中给出了对出现在数据流图中的每个功能的描述。“状态转换图状态转换图”指明了作为外部事件结果的系统行为。为此,状态转指明了作为外部事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式(称为换图描绘了系统的各种行为模式(称为“状态状态”)和在不同状态间转)和在不同状态间转换的方式,是行为建模的基础。在换的方式,是行为建模的基础。在“控制规格说明控制规格说明”中包含了有关软中包含了有关软件控制的附加信息。件控制的附加信息。需求分析除了创建分析模型,还应该写出需求分析除了创

13、建分析模型,还应该写出软件需求规格说明,它是分析阶段的最终软件需求规格说明,它是分析阶段的最终成果。成果。软件需求规格说明的框架:软件需求规格说明的框架:p30p30 ER ER图(图(Entity-Relationship DiagramEntity-Relationship Diagram) 数据模型包含三种相互关联的信息:数数据模型包含三种相互关联的信息:数据对象、描述数据对象的属性及数据对象据对象、描述数据对象的属性及数据对象彼此间相互连接的关系。彼此间相互连接的关系。 数据对象是对软件必须理解的复合信息的表示。所谓复数据对象是对软件必须理解的复合信息的表示。所谓复合信息是指具有一系列

14、不同性质或属合信息是指具有一系列不同性质或属性的事物。性的事物。1 1 数据对象的定义范围很广。数据对象的定义范围很广。2 2 数据对象彼此间是有关联的。数据对象彼此间是有关联的。3 只封装了数据而没有对作用于数据上的操作的引用,只封装了数据而没有对作用于数据上的操作的引用,这是与面向对象中对象、类的区别。这是与面向对象中对象、类的区别。 属性定义了数据对象的性质。属性定义了数据对象的性质。 必须把一个或多个属性定义为必须把一个或多个属性定义为“标识符标识符”,即当我,即当我们希望找到数据对象的一个实例时,标识符属性成为关们希望找到数据对象的一个实例时,标识符属性成为关键字。键字。 应该根据对

15、所要解决的问题的理解,来确定特定数应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。据对象的一组合适的属性。 数据对象彼此之间相互连接的方式称为关系,数据对象彼此之间相互连接的方式称为关系,也称为联系。也称为联系。 联系可分为以下三类联系可分为以下三类(1) (1) 一对一一对一联系联系(11)(11)(2) (2) 一对多联系一对多联系(1(1N N) )(3) (3) 多对多联系多对多联系( (M MN N) )注意:联系也可能有属性。注意:联系也可能有属性。 通常把实体通常把实体关系图简称为关系图简称为ERER图,相应地,用图,相应地,用ERER图描绘的数据模型也可以称

16、为图描绘的数据模型也可以称为ERER模型。模型。 ERER图中包含了实体图中包含了实体( (即数据对象即数据对象) )、关系和属性、关系和属性等三种基本成分。通常用矩形框代表实体,用连等三种基本成分。通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体矩形表示实体( (或关系或关系) )的属性,并用的属性,并用无向边把实无向边把实体体(或关系或关系)与其属性连接起来。例如,图与其属性连接起来。例如,图3.2是某是某学校教学管理的学校教学管理的ER图。图。图图3.2 3.2 某校教学管理某校教学管理 ER ER 图图 DFD

17、DFD图图( (Data Flowing Diagram)Data Flowing Diagram) 当信息在软件中移动时,它将被一系列当信息在软件中移动时,它将被一系列“变换变换”所修改。数据流图所修改。数据流图(DFD)(DFD)是一种图是一种图形化技术形化技术,它描绘信息流和数据从输入移,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。动到输出的过程中所经受的变换。 如图如图3.3(a)3.3(a)所示,数据流图有四种基本符号:所示,数据流图有四种基本符号:正方形正方形( (或立方体或立方体) )表示数据的源点或终点;表示数据的源点或终点;圆角矩形圆角矩形( (或圆形或圆形) )

18、代表变换数据的处理;代表变换数据的处理;开口矩形开口矩形( (或两条平行横线或两条平行横线) )代表数据存储;代表数据存储;箭头表示数据流,即特定数据的流动方向。箭头表示数据流,即特定数据的流动方向。注意:注意:1 1 如果代表同一个事物的同样符号在图中出现在如果代表同一个事物的同样符号在图中出现在n n个地方,则在这个个地方,则在这个符号的一个角上画符号的一个角上画n-1n-1条短斜线做标记。条短斜线做标记。2 2 处理并不一定是一个程序。处理并不一定是一个程序。3 3 数据存储也并不等同于一个文件。数据存储和数据流都是数据,数据存储也并不等同于一个文件。数据存储和数据流都是数据,仅仅所处的

19、状态不同。数据存储是处于静止状态的数据,数据流是仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。处于运动中的数据。4 4 数据流与程序流程图中用箭头表示的控制流有本质数据流与程序流程图中用箭头表示的控制流有本质不同,千万不不同,千万不要混淆。要混淆。5 数据流图中忽略出错处理。数据流图中忽略出错处理。图图3.3 3.3 数据流图的符号数据流图的符号假设一家工厂的采购部每天需要一张定货报表,报表按假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列

20、出下述数据;零件编于每个需要再次定货的零件应该列出下述数据;零件编号、零件名称、定货数量、目前价格、主要供应者和次号、零件名称、定货数量、目前价格、主要供应者和次要供应者。要供应者。零件入库或出库称为事务,通过放在仓库中的零件入库或出库称为事务,通过放在仓库中的CRTCRT终端终端把事务报告给定货系统。当某种零件的库存数量少于库把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。存量临界值时就应该再次定货。源点或终点源点或终点 仓库管理员是数据源点,采购员是数据终点仓库管理员是数据源点,采购员是数据终点处理处理 一个用于产生报表的处理,一个对事务进行加工的处理一个用于产

21、生报表的处理,一个对事务进行加工的处理数据流数据流 订货报表,事务订货报表,事务数据存储数据存储 产生订货报表的数据必须存放一段时间,这是一个数据存储。产生订货报表的数据必须存放一段时间,这是一个数据存储。分析隐含成分分析隐含成分 库存数量少于库存临界值时就应该开始订货库存数量少于库存临界值时就应该开始订货表3 . 1 组 成 数 据 流 图 的 元 素 可 以 从 描 述 问 题 的 信 息 中 提 取源 点 / 终 点处 理采 购 员仓 库 管 理 员产 生 报 表处 理 事 务数 据 流数 据 存 储定 货 报 表零 件 编 号零 件 名 称定 货 数 量目 前 价 格主 要 供 应 者

22、次 要 供 应 者事 务零 件 编 号 *事 务 类 型数 量 *定 货 信 息( 见 定 货 报 表 )库 存 清 单零 件 编 号 *库 存 量库 存 量 临 界 值一旦把数据流图的四种成分都分离出一旦把数据流图的四种成分都分离出来以后,就可以着手画数据流图了。来以后,就可以着手画数据流图了。任何系统的基本模型都由若干个数据源点任何系统的基本模型都由若干个数据源点/ /终点以及一个处理组成,这个处理就代表了系统终点以及一个处理组成,这个处理就代表了系统对数据加工变换的基本功能。对于上述对数据加工变换的基本功能。对于上述的定货系的定货系统可以画出如图统可以画出如图3.43.4所示的基本系统模

23、型。所示的基本系统模型。图图3.4 3.4 定货系统的基本系统模型定货系统的基本系统模型( (突出表明了数据的源点和终点突出表明了数据的源点和终点) )从基本系统模型这样非常高的抽象层从基本系统模型这样非常高的抽象层次开始画数据流图是一个好办法。在这个次开始画数据流图是一个好办法。在这个高层次的数据流图上是否列出了所有给定高层次的数据流图上是否列出了所有给定的数据源点的数据源点/ /终点是一目了然的,因此它是终点是一目了然的,因此它是很有价值的通信工具很有价值的通信工具。下一步应该把基本系统模型细化,描下一步应该把基本系统模型细化,描绘系统的主要功能。绘系统的主要功能。在图在图3.53.5中给

24、处理和数据存储都加了编中给处理和数据存储都加了编号,这样做的目的是便于引用和追踪。号,这样做的目的是便于引用和追踪。 图图3.5 3.5 定货系统的功能级数据流图定货系统的功能级数据流图接下来应该对功能级数据流图中描绘接下来应该对功能级数据流图中描绘的系统主要功能进一步细化。的系统主要功能进一步细化。 图图3.6 3.6 把处理事务的功能进一步分解后的数据流图把处理事务的功能进一步分解后的数据流图注意:注意:1 1 应该分层次地画数据流图,层次越低表现出的信息流细节应该分层次地画数据流图,层次越低表现出的信息流细节和功能细节也越多。和功能细节也越多。2 2 在对数据流图分层细化时必须保持信息连

25、续性,也就是说,在对数据流图分层细化时必须保持信息连续性,也就是说,当把一个处理分解为一系列处理当把一个处理分解为一系列处理时,分解前和分解后的输入时,分解前和分解后的输入/ /输出数据流必须相同。输出数据流必须相同。3 3 注意编号的方法。注意编号的方法。 数据流图中每个成分的命名是否恰当,直接影响数据流数据流图中每个成分的命名是否恰当,直接影响数据流图的可理解性。下面讲述在命名时应注意的问题。图的可理解性。下面讲述在命名时应注意的问题。 1 1为数据流为数据流( (或数据存储或数据存储) )命名命名 名字(一般是名词)应代表整个数据流名字(一般是名词)应代表整个数据流( (或数据存储或数据

26、存储) )的内容,而的内容,而不是仅仅反映它的某些成分。不是仅仅反映它的某些成分。 不要使用空洞的、缺乏具体含义的名字不要使用空洞的、缺乏具体含义的名字( (如如“数据数据”、“信息信息”、“输入输入”之类之类) )。 如果在为某个数据流如果在为某个数据流( (或数据存储或数据存储) )起名字时遇到了困难,则很可起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难。否能克服这个困难。 2 2为处理命名为处理命名 通常先为数据流命名,然后再为与之相关联的处理命名。这样命通常先为数据流命名,然

27、后再为与之相关联的处理命名。这样命名比较容易,而且体现了人类习惯的名比较容易,而且体现了人类习惯的“由表及里由表及里”的思考过程。的思考过程。 名字应该反映整个处理的功能,而不是它的一部分功能。名字应该反映整个处理的功能,而不是它的一部分功能。 名字最好由一个具体的及物动词,加上一个具体的宾语组成。应名字最好由一个具体的及物动词,加上一个具体的宾语组成。应该尽量避免使用该尽量避免使用“加工加工”、“处理处理”等空洞笼统的动词作名字。等空洞笼统的动词作名字。 通常名字中仅包括一个动词,如果必须用两个动词才能描述整个通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则把这个处理再

28、分解成两个处理可能更恰当些。处理的功能,则把这个处理再分解成两个处理可能更恰当些。 如果在为某个处理命名时遇到困难,则很可能是发现了分解不当如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考虑重新分解。的迹象,应考虑重新分解。 3 3为数据源点为数据源点/ /终点命名终点命名采用它们在问题域中习惯使用的名字采用它们在问题域中习惯使用的名字 Status Transtion Diagram 状态转换图状态转换图(简称状态图简称状态图)通过描绘系统的通过描绘系统的状态及引起系统状态转换的事件,来表示状态及引起系统状态转换的事件,来表示系统的行为。系统的行为。 状态是任何可以被观察

29、到的系统行为状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。状态,还可以是既改变状态又做动作。 在状态图中定义的状态主要有:初态在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初中间状态。在一张状态图

30、中只能有一个初态,而终态则可以有态,而终态则可以有0 0至多个。至多个。 事件是在某个特定时刻发生的事情,它是对事件是在某个特定时刻发生的事情,它是对引起系统从一个状态转换到另一个状态的外界引起系统从一个状态转换到另一个状态的外界事事件的抽象。件的抽象。 简而言之,事件就是引起系统状态转换的控简而言之,事件就是引起系统状态转换的控制信息。制信息。 在状态图中,初态用实心圆表示,终态用一在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。对同心圆(内圆为实心圆)表示。 中间状态用圆角矩形表示,可以用两条水平中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下横线把它分成上

31、、中、下3 3个部分。上面部分为个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。是活动表,这部分也是可选的。 活动表的语法格式如下:活动表的语法格式如下: 事件名(参数表)事件名(参数表)/动作表达式动作表达式 其中,其中,“事件名事件名”可以是任何事件的名称。可以是任何事件的名称。在活动表中经常使用下述在活动表中经常使用下述3种标准事件:种标准事件:entry,exit和和do。entry事件指定进入该状态的动作,事件指定进入该

32、状态的动作,exit事件指定退出该状态的动作,而事件指定退出该状态的动作,而do事件则指事件则指定在该状态下的动作。需要时可以为事件指定参定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动数表。活动表中的动作表达式描述应做的具体动作。作。 状态图中两个状态之间带箭头的连线状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。状称为状态转换,箭头指明了转换方向。状态变迁通常是由事件触发的,在这种情况态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标转换的事件

33、表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行明事件,则表示在源状态的内部活动执行完之后自动触发转换。完之后自动触发转换。 事件表达式的语法如下:事件表达式的语法如下: 事件说明守卫条件事件说明守卫条件/ /动作表达式。其中,事件说动作表达式。其中,事件说明的语法为:事件名(参数表)。明的语法为:事件名(参数表)。 守卫条件是一个布尔表达式。如果同时使用事件说明守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则状态转换才发生。如果只有守

34、卫条件没有事件说明,则只要守卫条件为真状态转换就发生。只要守卫条件为真状态转换就发生。 动作表达式是一个过程表达式,当状态转换开始时执动作表达式是一个过程表达式,当状态转换开始时执行该表达式。行该表达式。 图图3.73.7所示为状态图中使用的主要符号。所示为状态图中使用的主要符号。图图3.7 3.7 状态图中使用的主要符号状态图中使用的主要符号图图3.8 3.8 电话系统的状态图电话系统的状态图 DD(Data Dictionary) DD(Data Dictionary) 数据字典是所有与系统相关的数据元素的有组织的列数据字典是所有与系统相关的数据元素的有组织的列表,并且包含了对这些数据元素

35、的精确、严格的定义,表,并且包含了对这些数据元素的精确、严格的定义,从而使得用户和系统分析员双方对输入、输出、存储的从而使得用户和系统分析员双方对输入、输出、存储的成分甚至中间计算结果有共同的理解。成分甚至中间计算结果有共同的理解。 简而言之,数据字典是描述数据的信息的集合,是对简而言之,数据字典是描述数据的信息的集合,是对系统中使用的所有数据元素的定义的集合。系统中使用的所有数据元素的定义的集合。 数据字典应包含以下信息:数据字典应包含以下信息: 名字名字数据、控制项、数据存储或外部实体的主要名称。数据、控制项、数据存储或外部实体的主要名称。 别名别名第一项中对象的其他名字。第一项中对象的其

36、他名字。 使用地点与方式使用地点与方式使用数据或控制项的处理的列表,以及使用使用数据或控制项的处理的列表,以及使用这些对象的方式这些对象的方式( (例如作为处理的输入,从处理输出,作为数据存储,例如作为处理的输入,从处理输出,作为数据存储,作为外部实体作为外部实体) )。 内容描述内容描述描述数据或控制项内容的符号。描述数据或控制项内容的符号。 补充信息补充信息关于数据类型、预置值、限制等的其他信息。关于数据类型、预置值、限制等的其他信息。 虽然可以使用自然语言描述由数据元素组成数据的关系,但是虽然可以使用自然语言描述由数据元素组成数据的关系,但是为了更加清晰简洁起见,建议采用下列符号:为了更

37、加清晰简洁起见,建议采用下列符号: 意思是等价于意思是等价于( (或定义为或定义为) ); 意思是和意思是和( (即,连接两个分量即,连接两个分量) ); 意思是或意思是或( (即,从方括弧内列出的若干个分量中选择一个即,从方括弧内列出的若干个分量中选择一个) ),通常用通常用“”号分开供选择的分量;号分开供选择的分量; 意思是重复意思是重复( (即,重复花括弧内的分量即,重复花括弧内的分量) ); ( )意思是可选)意思是可选( (即,圆括弧里的分量可有可无即,圆括弧里的分量可有可无) )。 常常使用上限和下限进一步注释表示重复的花括弧。常常使用上限和下限进一步注释表示重复的花括弧。一种注释

38、方法是在开括弧的左边用上角标和下角标分别一种注释方法是在开括弧的左边用上角标和下角标分别表明重复的上限和下限;表明重复的上限和下限;另一种注释方法是在开括弧左侧标明重复的下限,在闭另一种注释方法是在开括弧左侧标明重复的下限,在闭括弧的右侧标明重复的上限。括弧的右侧标明重复的上限。例:例:A A和和1 1A A5 5含义相同。含义相同。例:标识符例:标识符namename是长度不超过是长度不超过1010个字符的字符串,第一个个字符的字符串,第一个字符必须是字母,第二个字符必须是数字,其余既可以是字符必须是字母,第二个字符必须是数字,其余既可以是字母也可以是数字。字母也可以是数字。Name=a|b

39、|z+数字数字+0字母或数字字母或数字83 38 81 1问题陈述问题陈述3 38 82 2问题定义问题定义表表3.2 3.2 关于工资支付系统规模和目标的报告书关于工资支付系统规模和目标的报告书 关于系统规模和目标的报告书店关于系统规模和目标的报告书店 2002.12.26项目名称:工资支付项目名称:工资支付问题:目前计算工资的编制报表的费用太高问题:目前计算工资的编制报表的费用太高项目目标:研究开发费用较低的新工资支付系统的可能性。项目目标:研究开发费用较低的新工资支付系统的可能性。项目规模:开发成本应该不超过项目规模:开发成本应该不超过7.27.2万元(万元()。)。初步设想:用学校自已

40、的计算机第统生成工资明细表和财务报表。初步设想:用学校自已的计算机第统生成工资明细表和财务报表。可行性研究:为了更全面地研究工资支付项目的可能性,建议进行可行性研究:为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研究。这个研究的成本不超过元。大约历时两周的可行性研究。这个研究的成本不超过元。 3.8.3 3.8.3 可行性研究可行性研究 可行性研究是抽象和简化了的系统分可行性研究是抽象和简化了的系统分析和设计的全过程,它的目标是用最小代析和设计的全过程,它的目标是用最小代价尽快确定问题是否能够解决,以避免盲价尽快确定问题是否能够解决,以避免盲目投资带来的巨大浪费。目投资带来

41、的巨大浪费。本项目的可行性研究过程由下述本项目的可行性研究过程由下述8个步个步骤组成。骤组成。 1. 1.澄清系统规模和目标澄清系统规模和目标 2. 2.研究现有的系统研究现有的系统3.3.导出高层逻辑模型导出高层逻辑模型4. 4.进一步确定系统规模和目标进一步确定系统规模和目标5. 5.导出供选择的解法导出供选择的解法6. 6.推荐最佳方案推荐最佳方案7. 7.草拟开发计划草拟开发计划8. 8.写出文档提交审查写出文档提交审查 3.8.4 3.8.4 需求分析需求分析下面叙述工资支付系统的需求分析过下面叙述工资支付系统的需求分析过程。程。1. 1.沿数据流图回溯沿数据流图回溯 为了把数据流和

42、数据存储定义到元素为了把数据流和数据存储定义到元素级,一般说来,从数据流图的输出端着手级,一般说来,从数据流图的输出端着手分析是有意义的。分析是有意义的。这是因为,系统最基本的功能是产生这是因为,系统最基本的功能是产生需要的输出数据,在输出端出现的数据元需要的输出数据,在输出端出现的数据元素决定了系统的基本构成。素决定了系统的基本构成。2. 2.写出文档初稿写出文档初稿分析员在分析过程中不断加深对目标分析员在分析过程中不断加深对目标系统的认识,应该把获得的信息用一种容系统的认识,应该把获得的信息用一种容易修改、容易更新的形式记录下来。易修改、容易更新的形式记录下来。通常,一个系统会涉及许多人,

43、他们通常,一个系统会涉及许多人,他们彼此理解是至关重要的。文档是主要的通彼此理解是至关重要的。文档是主要的通信工具,因此,文档必须是一致的和容易信工具,因此,文档必须是一致的和容易理解的。理解的。结构化分析方法要求,在需求分析阶结构化分析方法要求,在需求分析阶段完成的正式文档(软件需求规格说明书)段完成的正式文档(软件需求规格说明书)中必须至少包含三个重要成分:数据流图,中必须至少包含三个重要成分:数据流图,数据字典,以及一组黑盒形式的算法描述。数据字典,以及一组黑盒形式的算法描述。 3. 3.定义逻辑系统定义逻辑系统关于工资支付系统的详细信息只能来关于工资支付系统的详细信息只能来源于直接工作

44、在这个系统上的人。因此,源于直接工作在这个系统上的人。因此,再次访问财务科长和具体处理工资事务的再次访问财务科长和具体处理工资事务的两位会计。两位会计。数据流图(见图数据流图(见图3.113.11)是使讨论时焦)是使讨论时焦点集中的极好工具,从数据流图的数据源点集中的极好工具,从数据流图的数据源点开始,沿着数据流循序讨论。点开始,沿着数据流循序讨论。 最后,把新发现的数据源点、数据处最后,把新发现的数据源点、数据处理和数据存储补充到数据流图中,得到新理和数据存储补充到数据流图中,得到新的数据流图的数据流图(见图(见图3.153.15)。)。4细化数据流图细化数据流图通常,使用下述的功能分解方法

45、来细通常,使用下述的功能分解方法来细化数据流图:选取数据流图上功能过分复化数据流图:选取数据流图上功能过分复杂的处理,把它分解成若干个子功能,这杂的处理,把它分解成若干个子功能,这些较低层次的子功能成为新数据流图上的些较低层次的子功能成为新数据流图上的处理,它们有自己的数据存储和数据流。处理,它们有自己的数据存储和数据流。图图3.15 3.15 补充后的工资支付系统数据流图补充后的工资支付系统数据流图图图3.16 3.16 对对“加工事务数据加工事务数据”的细化的细化 5. 5.书写正式文档书写正式文档 6. 6.技术审查和管理复审技术审查和管理复审传统的软件工程方法学使用结构化分传统的软件工

46、程方法学使用结构化分析技术,完成分析用户需求的工作。需求析技术,完成分析用户需求的工作。需求分析是发现、求精、建模、规格说明和复分析是发现、求精、建模、规格说明和复审的过程。审的过程。需求分析的第一步是了解用户当前所需求分析的第一步是了解用户当前所处的情况,发现用户所面临的问题;接下处的情况,发现用户所面临的问题;接下来应该通过与用户交流,对用户的基本需来应该通过与用户交流,对用户的基本需求反复细化,以得出对目标系统的完整、求反复细化,以得出对目标系统的完整、准确和具体的需求。准确和具体的需求。为了详尽地了解并正确地理解用户的为了详尽地了解并正确地理解用户的需求,必须使用适当的技术与用户通信和

47、需求,必须使用适当的技术与用户通信和沟通。访谈是历史悠久的与用户通信的技沟通。访谈是历史悠久的与用户通信的技术,至今仍被系统分析员广泛采用。术,至今仍被系统分析员广泛采用。为了促使用户与分析员密切合作共同为了促使用户与分析员密切合作共同分析需求,人们研究出一种面向团队的需分析需求,人们研究出一种面向团队的需求收集法,称为求收集法,称为“简易的应用规格说明技简易的应用规格说明技术术”,现在,这种技术已经成为信息系统,现在,这种技术已经成为信息系统界使用的主流技术。界使用的主流技术。实践表明,快速建立软件原型是最准实践表明,快速建立软件原型是最准确、最有效和最强大的需求分析技术。快确、最有效和最强大的需求分析技术。快速原型应该具备的基本特性是速原型应该具备的基本特性是“快速快速”和和“容易修改容易修改”,因此,必须有适当的软件,因此,必须有适当的软件工具支持快速原型技术。工具支持快速原型技术。通常使用第四代技术、可重用的软件通常使用第四代技术、可重用的软件构件及形式化规

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论