结构化分析方法.pdf
《结构化分析方法.pdf》由会员分享,可在线阅读,更多相关《结构化分析方法.pdf(33页珍藏版)》请在冰点文库上搜索。
四软件开发方法学四软件开发方法学概念概念:
软件方法学软件方法学-指导软件开发的原理指导软件开发的原理/原则、过程和规程的体系原则、过程和规程的体系.是以软件方法为研究对象的学科。
主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。
狭义的软件方法学也指某种特定的软件设计指导原则和方法体系。
是以软件方法为研究对象的学科。
主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。
狭义的软件方法学也指某种特定的软件设计指导原则和方法体系。
掌握并能正确运用开发方法掌握并能正确运用开发方法,具有事半功倍的作用具有事半功倍的作用.From:
计算机科学技术百科全书计算机科学技术百科全书(第二版第二版)软件开发本质软件开发本质软件生存周期过程软件生存周期过程定义定义软件生存周期模型软件生存周期模型软件工程生存周期过程软件工程生存周期过程支持过程方向支持过程方向(活动与定序活动与定序)的建立的建立形成形成软件开发方法学软件开发方法学?
结构化方法?
面向对象方法?
面向数据结构方法?
维也纳开发方法(?
结构化方法?
面向对象方法?
面向数据结构方法?
维也纳开发方法(VDM)给出实现开发过程的途径给出实现开发过程的途径支持支持/管理技术与方法管理技术与方法作用于作用于(一一)结构化方法结构化方法-一种特定的软件开发方法学一种特定的软件开发方法学1结构化分析方法结构化分析方法1)何谓分析何谓分析分析的三要素分析的三要素:
?
需要使用哪些信息?
需要使用哪些信息?
如何系统化的使用信息?
如何系统化的使用信息?
估算算法?
估算算法一般地说一般地说,分析是系统化地使用信息分析是系统化地使用信息,给出一个问题的估算给出一个问题的估算.何谓结构化分析何谓结构化分析就软件需求分析而言就软件需求分析而言,即为即为:
系统化地使用问题域术语系统化地使用问题域术语,给出该问题的模型给出该问题的模型,即即:
需求需求-一个抽象一个抽象该系统的概念模型或称系统的需求规约该系统的概念模型或称系统的需求规约问题域问题域-客观事物系统客观事物系统形形分析分析(映射映射)可见,需求分析作为一种活动,其目标为:
在一个确定的抽象层(即需求层)上为客观事物系统施加了一个结构可见,需求分析作为一种活动,其目标为:
在一个确定的抽象层(即需求层)上为客观事物系统施加了一个结构,形成待开发软件系统(产品)的概念模型,即需求规约(规格说明书),作为开发人员和客户间技术契约的基础,并作为而后开发活动的一个基本输入形成待开发软件系统(产品)的概念模型,即需求规约(规格说明书),作为开发人员和客户间技术契约的基础,并作为而后开发活动的一个基本输入2)实现软件需求分析的目标对方法学的需求实现软件需求分析的目标对方法学的需求
(1)提供一组术语(符号)提供一组术语(符号),指导抽象中需要关注的主要方,指导抽象中需要关注的主要方面,并用于表达分析中所使用的信息.面,并用于表达分析中所使用的信息.这些术语形成一个特定的抽象层,即需求层.这些术语形成一个特定的抽象层,即需求层.这组术语应体现软件设计的某些这组术语应体现软件设计的某些“原理原理/原则原则”!
(2)依据这些术语所形成的“空间”,
(2)依据这些术语所形成的“空间”,给出表达模型的工具给出表达模型的工具.(3)(3)给出过程指导给出过程指导,以支持系统化地使用相关信息建造系统型.,以支持系统化地使用相关信息建造系统型.3)需求层的确定需求层的确定一个抽象层是由一组确定的术语定义的,为支持需求分析中有关要使用的那些信息的表达,给出了以下五个术语符号一个抽象层是由一组确定的术语定义的,为支持需求分析中有关要使用的那些信息的表达,给出了以下五个术语符号:
?
数据流:
?
加工:
?
数据存储:
?
数据源:
?
数据潭:
?
数据流:
?
加工:
?
数据存储:
?
数据源:
?
数据潭:
其中:
?
数据流、数据存储-支持数据抽象,加工-支持过程/功能的抽象,用于表达系统内涵?
数据源、数据潭支持系统边界抽象,用于表达系统外延其中:
?
数据流、数据存储-支持数据抽象,加工-支持过程/功能的抽象,用于表达系统内涵?
数据源、数据潭支持系统边界抽象,用于表达系统外延.?
是完备的。
?
是完备的。
4)模型表达工具模型表达工具这些术语形成一个特定的术语空间这些术语形成一个特定的术语空间,即即:
?
它们之间是?
它们之间是”正交正交”的的.?
每一个术语所要表达的信息,形成了该术语的?
每一个术语所要表达的信息,形成了该术语的”值域值域”,并且是一个偏序集,并且是一个偏序集;例如例如,假定在一个学籍管理系统中假定在一个学籍管理系统中,数据流数据流-“学生各科成绩学生各科成绩”:
数学数学85分分,软件工程软件工程90分分,操作系统操作系统86分分,编译编译83分等分等,构成了该数据流的构成了该数据流的“值域值域”.?
这些术语确定了所建系统的形态?
这些术语确定了所建系统的形态.如果是一个三维空间如果是一个三维空间,那些所建系统的形态只能是那些所建系统的形态只能是:
?
或是一条直线?
或是一条直线;或是一条曲线或是一条曲线;?
或是一个平面?
或是一个平面,或是一个曲面或是一个曲面;?
或是一个立方体?
或是一个立方体,或是一个多形体或是一个多形体.现在,是由五个术语所确定的一个五维空间,因此该方法只能采用数据流图来表达各种现在,是由五个术语所确定的一个五维空间,因此该方法只能采用数据流图来表达各种“形态形态”的系统的系统.数据流图又称为数据流图又称为DFD图,是一种描述数据变换的图形工具,它包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。
例如,图,是一种描述数据变换的图形工具,它包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。
例如,旅行社旅行社订票单订票单预机预机准机准机记费用航班机票记帐文件航班目录记费用航班机票记帐文件航班目录帐单帐单旅行社旅行社5)过程指导5)过程指导1建立系统的功能模型1建立系统的功能模型-使用的工具为数据流图DFD-使用的工具为数据流图DFD首先:
建立系统环境图(顶层数据流图),确定系统边界首先:
建立系统环境图(顶层数据流图),确定系统边界继之:
自顶向下,逐步求精,建立系统的层次数据流图继之:
自顶向下,逐步求精,建立系统的层次数据流图2建立数据字典2建立数据字典-使用的工具为结构符-使用的工具为结构符定义数据流定义数据存储定义数据流定义数据存储定义数据项定义数据项3给出加工小说明:
3给出加工小说明:
集中描述一个加工“做什么”,即加工逻辑,也包括其它一些与加工有关的信息,如执行条件、先级、执行频率、出错处理等。
集中描述一个加工“做什么”,即加工逻辑,也包括其它一些与加工有关的信息,如执行条件、先级、执行频率、出错处理等。
-使用的工具可以为判定表判定树-使用的工具可以为判定表判定树问题:
建立一个简化的商业自动化系统,其中:
问题:
建立一个简化的商业自动化系统,其中:
营业员通过该系统记录每日销售的商品(营业员通过该系统记录每日销售的商品(商品名,商品编号,单价,数量,销售时间););收款员通过该系统记录收到的现金数额以及购物余额;收款员通过该系统记录收到的现金数额以及购物余额;商店经理每日统计销售额,并在必要时查看某种商品的商店经理每日统计销售额,并在必要时查看某种商品的销售情况(商品名,商品编码,金额)销售情况(商品名,商品编码,金额)结构化分析方法应用实例结构化分析方法应用实例简化的商业自动化系简化的商业自动化系营业员收款员经理销售的商现金现金余销售情日销售查询要销售的商现金现金余销售情日销售查询要1建立系统的功能模型首先:
建立系统环境图,确定系统边界-顶层DFD1建立系统的功能模型首先:
建立系统环境图,确定系统边界-顶层DFD其中:
1数据流为:
销售的商品,日销售额等其中:
1数据流为:
销售的商品,日销售额等3个输入流,3个输出流3个输入流,3个输出流数据源为:
营业员,经理,收款员数据源为:
营业员,经理,收款员数据潭为:
经理,收款员数据潭为:
经理,收款员2加工名为:
要建立的系统名字2加工名为:
要建立的系统名字录入、修改或删除商品信息录入、修改现金额,并计算余额查询商品销售情况计算日销售额312继之:
自顶向下,逐层分解继之:
自顶向下,逐层分解A、按人或部门的功能要求,将加工“打碎”,形成:
A、按人或部门的功能要求,将加工“打碎”,形成:
注:
需给每一加工编号;注:
需给每一加工编号;B、”分派”数据流,形成:
B、”分派”数据流,形成:
录入、修改或删除商品信息2录入、修改现金额,并计算余额查询商品销售情况计算日销售额销售的商销售的商现金现金余现金现金余查询要查询要销售情日销售销售情日销售31其中:
要根据特定的加工要求进行分派;其中:
要根据特定的加工要求进行分派;保持与顶层数据流的一致;保持与顶层数据流的一致;可以不引入数据源和数据潭。
可以不引入数据源和数据潭。
录入、修改或删除商品信息录入、修改现金额,并计算余额查询商品销售情况计算日销售额销售的商品销售的商品现金额现金余额现金额现金余额查询要求查询要求销售情况日销售额销售情况日销售额销售文件销售文件123C、引入文件,使之形成一个有机整体系统:
C、引入文件,使之形成一个有机整体系统:
注:
到一个文件,既有输入流,又有输出流,则可简化为,并可不给出标识。
至此,体现精化,形成0层数据流图。
注:
到一个文件,既有输入流,又有输出流,则可简化为,并可不给出标识。
至此,体现精化,形成0层数据流图。
查询商品销售情况计算日销售额查询要求查询要求销售情况日销售额销售情况日销售额销售文件销售文件3继续A、B、C:
自顶向下,逐层分解。
例如:
加工3继续A、B、C:
自顶向下,逐层分解。
例如:
加工3可分解为:
可分解为:
判定要求查询要求查询要求3.1统计销售情况3.2计算日销售额销售文件销售文件查询要求查询要求2查询要求查询要求1销售情况日销售额销售情况日销售额加工3:
*其中为什么要引入*其中为什么要引入加工“判定要求”?
加工“判定要求”?
2建立数据字典2建立数据字典定义数据流定义数据存储定义数据项定义数据流定义数据存储定义数据项引入:
结构符|引入:
结构符|用于定义数据结构用于定义数据结构AAABCB0C0B*(a)顺序结构)顺序结构(b)选择结构)选择结构(c)重复结构)重复结构引入:
一些逻辑操作符用于定义数据结构引入:
一些逻辑操作符用于定义数据结构操作符含义描述=+|()()m.n等价于(定义为)等价于(定义为)与(顺序结构)与(顺序结构)重复(循环结构)重复(循环结构)或(选择结构)或(选择结构)任选任选界域界域数据字典数据字典:
?
、数据流?
、数据流:
销售的商品=商品名+商品编号+单价+数量+销售时间现金额=余额=日销售额=非负实数查询要求=商品编号|日期查询要求1=商品编号查询要求2=日期销售情况=商品名+商品编号+金额?
、数据存贮?
、数据存贮:
销售文件=销售的商品?
、数据项(数据流及数据存储的组成成分)3给出加工小说明-使用的工具可以为判定表判定树判断表条件类别条件组合操作操作执行例如:
考试总分=620=620=620=620620单科成绩有满分有不及格有满分发升级通知书yyn发留级通知书nny发重修通知书nyn6)建模中应注意的问题建模中应注意的问题结构化分析方法是一种半形式化的规约方法,给出了一组结构化分析方法是一种半形式化的规约方法,给出了一组特定的术语表和标准化的表达格式-数据流图,在表达上均特定的术语表和标准化的表达格式-数据流图,在表达上均必须遵循一些约定,即应以一种准确和一致方式使用之。
例如:
必须遵循一些约定,即应以一种准确和一致方式使用之。
例如:
-加工:
其标识应使用领域术语,采用动宾结构;-加工:
其标识应使用领域术语,采用动宾结构;必须有输入和输出;必须有输入和输出;-数据流:
其标识应使用领域术语,采用名词或名词短语;-数据流:
其标识应使用领域术语,采用名词或名词短语;特别,应注意模型平衡问题和信息组织的复杂性控制问题,特别,应注意模型平衡问题和信息组织的复杂性控制问题,即:
即:
1模型平衡问题1模型平衡问题父图和子图的边界一致问题,即它们应有相同的边界;父图和子图的边界一致问题,即它们应有相同的边界;数据流图中的数据流与数据字典的一致问题,即每个数数据流图中的数据流与数据字典的一致问题,即每个数据流和数据存储必须在数据字典中予以定义据流和数据存储必须在数据字典中予以定义数据流图中的“叶”加工(最低层)与小说明的一致问数据流图中的“叶”加工(最低层)与小说明的一致问题,即必须给出题,即必须给出“叶叶”加工的说明加工的说明小说明和数据流图的图形表示一致问题,即在小说明小说明和数据流图的图形表示一致问题,即在小说明必须说明“输入数据流”如何使用,必须说明如何产生必须说明“输入数据流”如何使用,必须说明如何产生“输出数据流”;必须说明如何选取、使用、修改“数据“输出数据流”;必须说明如何选取、使用、修改“数据存储”存储”2信息组织复杂性控制问题2信息组织复杂性控制问题上层数据可以“打包”上层数据可以“打包”上、下数据流对应关系在数据字典中给出,但包内上、下数据流对应关系在数据字典中给出,但包内数据流的性质(输入、输出)必须一致。
数据流的性质(输入、输出)必须一致。
一幅图中的图元个数应控制在7+/-2以内一幅图中的图元个数应控制在7+/-2以内与每一加工相关的数据流的数目应适中与每一加工相关的数据流的数目应适中(与层次有关与层次有关)分析数据内容,确定是否所有的输入信息都用分析数据内容,确定是否所有的输入信息都用产生输出信息;产生输出信息;分析加工,确定一个加工所产生的输出,是否都分析加工,确定一个加工所产生的输出,是否都能由该加工的输入信息导出能由该加工的输入信息导出图书管理系统旨在用计算机对图书进行管理,主要涉及四个方面的工作:
新书入库、读者借书、读者还书以及图书注销,以及查询某位读者的借书情况、某种图书和整个图书的库存情况。
图书管理系统旨在用计算机对图书进行管理,主要涉及四个方面的工作:
新书入库、读者借书、读者还书以及图书注销,以及查询某位读者的借书情况、某种图书和整个图书的库存情况。
1在购入新书时,图书管理人员为购入的新书编制图书卡片,包括分类目录号、流水号1在购入新书时,图书管理人员为购入的新书编制图书卡片,包括分类目录号、流水号(要保证每本书都有惟一的流水号,即使同类图书也是如此要保证每本书都有惟一的流水号,即使同类图书也是如此)、书名、作者、内容摘要、价格和购书日期等信息,并写入图书目录文件中;、书名、作者、内容摘要、价格和购书日期等信息,并写入图书目录文件中;2读者借书时,首先填写借书单,包括姓名、学号、欲借图书分类目录号等信息,然后管理人员将借书单输入系统,继之系统检查该读者号是否有效,若无效,则拒绝借书;否则进一步检查该读者所借图书是否超过最大限制数2读者借书时,首先填写借书单,包括姓名、学号、欲借图书分类目录号等信息,然后管理人员将借书单输入系统,继之系统检查该读者号是否有效,若无效,则拒绝借书;否则进一步检查该读者所借图书是否超过最大限制数(此处我们假设每位读者同时只能借阅不超过五本书此处我们假设每位读者同时只能借阅不超过五本书),若达到最大限制数,若达到最大限制数(此处为五本此处为五本),则拒绝借书;否则读者可以借出该书,记图书分类目录号、读者号和借阅日期等,写入到借书文件中;,则拒绝借书;否则读者可以借出该书,记图书分类目录号、读者号和借阅日期等,写入到借书文件中;问题问题:
图书管理系统图书管理系统3在读者还书时,读者填写还书单,由管理人员将其输入系统后,系统根据其中的学号,从借书文件中读出该读者的借阅记录,获取该书的还书日期,判定该图书是否逾期,以便按规定做出相应的罚款;3在读者还书时,读者填写还书单,由管理人员将其输入系统后,系统根据其中的学号,从借书文件中读出该读者的借阅记录,获取该书的还书日期,判定该图书是否逾期,以便按规定做出相应的罚款;4在对一些过时或无继续保留价值的图书进行注销时,管理人员从图书目录文件中删除相关的记录;4在对一些过时或无继续保留价值的图书进行注销时,管理人员从图书目录文件中删除相关的记录;5当图书馆领导提出查询要求时,系统应依据查询要求,分别给出相应的信息。
5当图书馆领导提出查询要求时,系统应依据查询要求,分别给出相应的信息。
其中假定,其中假定,“为购入的新书编制图书卡片为购入的新书编制图书卡片”,“读者首先填写借书单读者首先填写借书单”等功能,均由人工实现。
等功能,均由人工实现。
根据问题陈述,按功能可以把该系统分为两“大块”,即:
借还书等事务的处理,以及咨询事务处理。
根据问题陈述,按功能可以把该系统分为两“大块”,即:
借还书等事务的处理,以及咨询事务处理。
-进行功能抽象-进行功能抽象。
(注:
不同的功能抽象将导致不同的结果!
但应该是等价的。
注:
不同的功能抽象将导致不同的结果!
但应该是等价的。
)于是,可以根据这一抽象,可以识别:
于是,可以根据这一抽象,可以识别:
1)顶层数据流:
借还书等事务处理要求1)顶层数据流:
借还书等事务处理要求咨询事务要求咨询事务要求以及相关的数据流以及相关的数据流2)数据源和数据潭为:
图书管理人员,读者以及时钟。
2)数据源和数据潭为:
图书管理人员,读者以及时钟。
基于以上分析,可形成该系统的环境图:
基于以上分析,可形成该系统的环境图:
图书管理系统图书管理系统图书管理员图书管理员图书管理要求查询要求图书管理要求查询要求图书统计表图书情况读者情况图书统计表图书情况读者情况读者读者系统时钟系统时钟当前日期当前日期罚款单罚款单其中:
3个输入流其中:
3个输入流:
图书管理要求图书管理要求,查询要求,当前日期图书管理要求=入库单借书单还书单注销单查询要求=读者情况图书情况图书统计表查询要求,当前日期图书管理要求=入库单借书单还书单注销单查询要求=读者情况图书情况图书统计表4个输出流4个输出流:
图书统计表,图书情况,读者情况,罚款单图书统计表,图书情况,读者情况,罚款单通过“打碎”、“分派”,可形成如下0层DFD:
通过“打碎”、“分派”,可形成如下0层DFD:
1处理借还书等事务2处理咨询事务1处理借还书等事务2处理咨询事务图书管理要求查询要求图书管理要求查询要求当前日期当前日期目录文件借书文件读者文件目录文件借书文件读者文件罚款单罚款单读者情况图书情况图书统计表读者情况图书情况图书统计表其中:
保持输入与输出的一致;其中:
保持输入与输出的一致;引入三个文件,对顶层DFD进行细化。
引入三个文件,对顶层DFD进行细化。
(注:
存在数据库设计问题)(注:
存在数据库设计问题)以同样方式,对加工1进行分解,形成:
以同样方式,对加工1进行分解,形成:
1。
1入库新书1。
2借书1。
3还书1。
4注销图书1。
1入库新书1。
2借书1。
3还书1。
4注销图书图书管理要求处理图书管理要求图书管理要求处理图书管理要求目录文件罚款单当前日期目录文件罚款单当前日期借书文件借书文件读者文件读者文件入库单入库单借书单借书单注销单注销单还书单还书单其中:
注意平衡问题;平面化问题。
当然,还可以继续细化其中:
注意平衡问题;平面化问题。
当然,还可以继续细化1。
2借书1。
2借书目录文件目录文件借书文件借书文件例如:
借书例如:
借书读者文件读者文件借书单借书单1。
2。
1检查读者的有效性1。
2。
1检查读者的有效性读者文件读者文件1。
2。
2检查读者的资格1。
2。
2检查读者的资格1。
2。
3办理借书1。
2。
3办理借书1。
2。
4检查图书库存1。
2。
4检查图书库存借书单借书单无效读无效读有效读者借书单有效读者借书单借书超限核准后的借书单借书超限核准后的借书单该书已借完该书已借完借书记录借书文件借书记录借书文件目录文件目录文件注意:
其中粗线数据流!
注意:
其中粗线数据流!
7)关于需求验证(关于需求验证(p83)有关有关SRS(SoftwareRequirementsSpecification)内容方面()内容方面(SRS具体介绍请见具体介绍请见p81):
):
(1)必要性:
指的是)必要性:
指的是SRS中陈述的每个需求都表达了将要构造的系统的某个要求。
中陈述的每个需求都表达了将要构造的系统的某个要求。
(2)无歧义性:
指的是)无歧义性:
指的是SRS中陈述的每个需求都只有一种解释。
中陈述的每个需求都只有一种解释。
(3)可测试性:
)可测试性:
SRS中陈述的每个需求都是可测试的。
中陈述的每个需求都是可测试的。
(4)可跟踪性:
)可跟踪性:
SRS中的每个需求可以从一个开发阶段到另一个开发阶段对它进行跟踪。
中的每个需求可以从一个开发阶段到另一个开发阶段对它进行跟踪。
(5)可测量性:
)可测量性:
SRS中的每个需求都是可测量的。
中的每个需求都是可测量的。
(6)一致性:
)一致性:
SRS中陈述的需求没有与以前的文档发生冲突;中陈述的需求没有与以前的文档发生冲突;SRS中陈述的各个需求之间没有发生冲突。
(中陈述的各个需求之间没有发生冲突。
(7)完整性:
若一个)完整性:
若一个SRS具有以下三个特性,则它是完整的:
具有以下三个特性,则它是完整的:
未来系统所做的任何事情都包含在未来系统所做的任何事情都包含在SRS的陈述中;的陈述中;未来系统响应所有可能的输入(包括有效和无效);未来系统响应所有可能的输入(包括有效和无效);SRS中没有被标识为中没有被标识为“待定待定”的内容。
(的内容。
(8)可修改性:
指的是)可修改性:
指的是SRS的结构和风格使任何对需求的必要修改都易于完整、一致的进行。
(的结构和风格使任何对需求的必要修改都易于完整、一致的进行。
(9)重要性和稳定性程度:
向开发机构提供了每个需求是否重要的指导意见。
如:
)重要性和稳定性程度:
向开发机构提供了每个需求是否重要的指导意见。
如:
E(Essential)、D(Desirable)或或O(Optional)。
()可被跟踪性:
指的是()可被跟踪性:
指的是SRS中的每个需求的出处都是清楚的,这意味着中的每个需求的出处都是清楚的,这意味着SRS中包含对前期支持文档的引用表。
中包含对前期支持文档的引用表。
(1)设计无关性:
指的是)设计无关性:
指的是SRS不暗示特定的软件结构和不暗示特定的软件结构和算法。
算法。
?
作业作业1?
P52题;题;572,3,4,5,6,7,9,12;p662,5?
deadline:
下周四(月日)晚点下周四(月日)晚点?
作业作业2?
P84,6,8?
dealine:
大下周四(月日)晚点大下周四(月日)晚点