《软件工程-3-软件设计2012(3)概要复习进程.ppt》由会员分享,可在线阅读,更多相关《软件工程-3-软件设计2012(3)概要复习进程.ppt(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程-3-软件设计2012(3)概要(1 1 1 1)分析过程)分析过程)分析过程)分析过程(2 2 2 2)分解结构)分解结构)分解结构)分解结构1.1.1.1.变换流变换流变换流变换流v变换流变换流如果信息沿输入通路进入系统,同时由外部形式如果信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,变换成内部形式,进入系统的信息通过变换中心,精加工处理后,再沿输出通路变换成外部形式离精加工处理后,再沿输出通路变换成外部形式离开软件系统,则具有上述特征的数据流称为变换开软件系统,则具有上述特征的数据流称为变换流。流。(1 1 1 1)变换分析)变换分析)变换分析
2、)变换分析v变换分析步骤变换分析步骤重画数据流图;重画数据流图;区分有效区分有效(逻辑逻辑)输入、有效输入、有效(逻辑逻辑)输出和中心变换部输出和中心变换部分;分;进行一级分解,设计上层模块;进行一级分解,设计上层模块;进行二级分解,设计输入、输出和中心变换部分的进行二级分解,设计输入、输出和中心变换部分的中、下层模块。中、下层模块。(2 2 2 2)变换型软件结构图)变换型软件结构图)变换型软件结构图)变换型软件结构图v变换型软件结构变换型软件结构变换型数据处理问题的工作过程大致分为三步,即取得数据,变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据;变换数据和给出数据
3、;相应于取得数据、变换数据、给出数据,变换型系统结构;相应于取得数据、变换数据、给出数据,变换型系统结构;图由输入、中心变换和输出等三部分组成。图由输入、中心变换和输出等三部分组成。例子例子1格式格式检查检查3产生产生收据收据2计算计算汇费汇费4记账记账汇款单汇款单合格的合格的汇款单汇款单处理后的处理后的汇款单汇款单收据收据明细账明细账变换中心变换中心输出输出输入输入业务业务数据数据练习练习练习练习汇款处理系统汇款处理系统取得合格取得合格汇款单汇款单计算计算汇费汇费记账记账输出处理后输出处理后的汇款单的汇款单输入汇款单输入汇款单格式检查格式检查产生收据产生收据打印收据打印收据合格的合格的汇款单
4、汇款单处理后的处理后的汇款单汇款单合格的合格的汇款单汇款单业务数据业务数据处理后的处理后的汇款单汇款单汇款单汇款单合格的合格的汇款单汇款单汇款单汇款单处理后的处理后的汇款单汇款单收据收据收据收据业务数据业务数据v结构化分析方法功能建模举例结构化分析方法功能建模举例 某图书管理系统某图书管理系统(1)借书:图书管理员输入读者的借书证。系统首先检查借书:图书管理员输入读者的借书证。系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在读者借书证是否有效,若有效,对于第一次借书的读者,在读者账户文件上建立档案。否则,查阅读者账户,检查该读者所账户文件上建立档案。否则,查阅读者账户,检查该读者所
5、借图书是否超过借图书是否超过10本,若已达到本,若已达到10本,拒借,未达本,拒借,未达10本,办本,办理借书(检查库存目录,修改库存详情、库存目录、读者账理借书(检查库存目录,修改库存详情、库存目录、读者账户文件并将读者借书情况登入图书借阅文件中)。户文件并将读者借书情况登入图书借阅文件中)。(2)还书:图书管理员获得欲还图书,并从读者账户文件)还书:图书管理员获得欲还图书,并从读者账户文件和图书借阅文件中读出与读者有关的记录,查阅所借日期,和图书借阅文件中读出与读者有关的记录,查阅所借日期,如果超期(如果超期(3个月)作罚款处理,并记录到图书借阅文件中。个月)作罚款处理,并记录到图书借阅文
6、件中。否则,修改库存详情、读者账户、库存目录和图书借阅文件。否则,修改库存详情、读者账户、库存目录和图书借阅文件。(3)查询:系统可根据图书管理员的查询请求,通过读者)查询:系统可根据图书管理员的查询请求,通过读者账户文件、库存目录等文件查询读者情况、图书借阅情况及账户文件、库存目录等文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。库存情况,打印各种统计表。v请根据给定的数据流图构建起软件结构图。请根据给定的数据流图构建起软件结构图。v图书借阅过程的数据流图。图书借阅过程的数据流图。v参考软件结构图参考软件结构图v改进后的软件结构图改进后的软件结构图v进行变换分析时需注意的内容进行变
7、换分析时需注意的内容在选择模块设计的次序时,必须对一个模块的全部在选择模块设计的次序时,必须对一个模块的全部直接下属直接下属模块都设计完成之后,才能转向另一个模模块都设计完成之后,才能转向另一个模块的下层模块的设计。块的下层模块的设计。在设计下层模块时,应考虑模块的在设计下层模块时,应考虑模块的耦合和内聚耦合和内聚问题,问题,以提高初始结构图的质量。以提高初始结构图的质量。使用使用“黑箱黑箱”技术技术在设计当前模块时,先把这个模块的所有下层模块定在设计当前模块时,先把这个模块的所有下层模块定义成义成“黑箱黑箱”,在设计中利用它们时,暂时不考虑其,在设计中利用它们时,暂时不考虑其内部结构和实现。
8、在这一步定义好的内部结构和实现。在这一步定义好的“黑箱黑箱”,在下,在下一步就可以对它们进行设计和加工。这样,又会导致一步就可以对它们进行设计和加工。这样,又会导致更多的更多的“黑箱黑箱”。最后,全部。最后,全部“黑箱黑箱”的内容和结构的内容和结构应完全被确定。应完全被确定。在模块划分时,一个模块的直接下属模块一般在在模块划分时,一个模块的直接下属模块一般在5个个左右。如果直接下属模块超过左右。如果直接下属模块超过10个个,可设,可设中间层次中间层次。如果出现了以下情况,就如果出现了以下情况,就停止停止模块的功能模块的功能分解分解:当模块不能再细分为明显的子任务时;当模块不能再细分为明显的子任
9、务时;当分解成用户提供的模块或程序库的子程序时;当分解成用户提供的模块或程序库的子程序时;当模块的界面是输入输出设备传送的信息时;当模块的界面是输入输出设备传送的信息时;当模块不宜再分解得过小时。当模块不宜再分解得过小时。变换分析是软件系统结构设计的主要方法。变换分析是软件系统结构设计的主要方法。场景互动场景互动场景互动场景互动 2 2 2 2v银行计算机储蓄系统的工作过程大致如下:储户填银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人相关信息,并印出存款收据给款则系统记录存款人相关信息,并印
10、出存款收据给储户;如果是取款,则系统首先核对储户密码,若储户;如果是取款,则系统首先核对储户密码,若密码正确,则系统计算利率并印利息清单给储户。密码正确,则系统计算利率并印利息清单给储户。2.2.2.2.事务流事务流事务流事务流v事务流事务流在很多软件应用中,存在某种作业数据流,它可以在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要引发一个或多个处理,这些处理能够完成该作业要求的功能。这种数据流就叫做事务流。求的功能。这种数据流就叫做事务流。(1 1 1 1)事务分析)事务分析)事务分析)事务分析v事务分析具体步骤事务分析具体步骤v识别识别事务源事务源v
11、利用数据流图和数据词典,从问题定义和需求分析利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的事务。通常,事务的结果中,找出各种需要处理的事务。通常,事务来自物理输入装置。有时,设计人员还必须区别系来自物理输入装置。有时,设计人员还必须区别系统的输入、中心加工和输出中产生的事务。统的输入、中心加工和输出中产生的事务。v规定规定适当的适当的事务型结构事务型结构在确定了该数据流图具有事务型特征之后,根据模块划在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。分理论,建立适当的事务型结构。v事务分析具体步骤(续)事务分析具体步骤(续)识别识别各种各种
12、事务事务和它们定义的和它们定义的操作操作从问题定义和需求分析中找出的事务及其操作所必需从问题定义和需求分析中找出的事务及其操作所必需的全部信息,对于系统内部产生的事务,必须仔细地的全部信息,对于系统内部产生的事务,必须仔细地定义它们的操作。定义它们的操作。注意利用注意利用公用模块公用模块在事务分析的过程中,如果不同事务的一些中间模块在事务分析的过程中,如果不同事务的一些中间模块可由具有类似的语法和语义的若干个低层模块组成,可由具有类似的语法和语义的若干个低层模块组成,则可以把这些低层模块构造成公用模块。则可以把这些低层模块构造成公用模块。v事务分析具体步骤(续)事务分析具体步骤(续)对每一事务
13、,或对联系密切的一组事务,建立一个对每一事务,或对联系密切的一组事务,建立一个事务处理模块;如果发现在系统中有类似的事务,事务处理模块;如果发现在系统中有类似的事务,可以把它们组成一个事务处理模块。可以把它们组成一个事务处理模块。对事务处理模块规定它们全部的下层操作模块对事务处理模块规定它们全部的下层操作模块对操作模块规定它们的全部细节模块对操作模块规定它们的全部细节模块(2 2 2 2)事务型软件结构图)事务型软件结构图)事务型软件结构图)事务型软件结构图v事务型系统结构事务型系统结构它接受一项事务,根据事务处理的特点和性质,选它接受一项事务,根据事务处理的特点和性质,选择分派择分派一个一个
14、适当的处理单元,然后给出结果。适当的处理单元,然后给出结果。在事务型系统结构图中,事务中心模块按所接受的在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择事务的类型,选择某一事务处理模块某一事务处理模块执行。各事务执行。各事务处理模块处理模块并列并列。每个事务处理模块可能要调用若干。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模个操作模块,而操作模块又可能调用若干个细节模块。块。例子例子对应对应代代码码v调整后的软件结构图调整后的软件结构图对应对应代代码码经典思路对应的程序代码经典思路对应的程序代码经典思路对应的程序代码经典思路对应的程序代码vmain()
15、vv/MEMBER s,t;vtotal=0;vinit();vwhile(1)vvmainMenu();vv返回返回调整思路对应代码调整思路对应代码调整思路对应代码调整思路对应代码vmain()vint select;vint style=0;/初始默认按编号升序排序初始默认按编号升序排序vMEMBER*head=loadFromFile(style);/从文件读从文件读入数据,组成链表入数据,组成链表v v while(1)vshowMenu();vprintf(请选择请选择(08):n);vscanf(%d,&select);vwhile(getchar()!=n)/清除行输入缓冲区清除
16、行输入缓冲区vcontinue;调整思路对应代码(续)调整思路对应代码(续)调整思路对应代码(续)调整思路对应代码(续)vswitch(select)vcase 1:showAll(head);break;vcase 2:addMember(head);break;vcase 3:deleteByNumber(head);break;vcase 4:queryByName(head);break;vcase 5:queryByNumber(head);break;vcase 6:sortByName(head);break;vcase 7:sortBySalary(head);break;vc
17、ase 8:reportControl(head);break;vcase 0:printf(Byebye!n);v freeList(head);/释放链表内存释放链表内存v exit(0);vdefault:printf(选择错误,请重新选择!选择错误,请重新选择!n);v结构化分析方法功能建模举例结构化分析方法功能建模举例 某图书管理系统某图书管理系统(1)借书:图书管理员输入读者的借书证。系统首先检查借书:图书管理员输入读者的借书证。系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在读者借书证是否有效,若有效,对于第一次借书的读者,在读者账户文件上建立档案。否则,查阅读者账户
18、,检查该读者所账户文件上建立档案。否则,查阅读者账户,检查该读者所借图书是否超过借图书是否超过10本,若已达到本,若已达到10本,拒借,未达本,拒借,未达10本,办本,办理借书(检查库存目录,修改库存详情、库存目录、读者账理借书(检查库存目录,修改库存详情、库存目录、读者账户文件并将读者借书情况登入图书借阅文件中)。户文件并将读者借书情况登入图书借阅文件中)。(2)还书:图书管理员获得欲还图书,并从读者账户文件)还书:图书管理员获得欲还图书,并从读者账户文件和图书借阅文件中读出与读者有关的记录,查阅所借日期,和图书借阅文件中读出与读者有关的记录,查阅所借日期,如果超期(如果超期(3个月)作罚款
19、处理,并记录到图书借阅文件中。个月)作罚款处理,并记录到图书借阅文件中。否则,修改库存详情、读者账户、库存目录和图书借阅文件。否则,修改库存详情、读者账户、库存目录和图书借阅文件。(3)查询:系统可根据图书管理员的查询请求,通过读者)查询:系统可根据图书管理员的查询请求,通过读者账户文件、库存目录等文件查询读者情况、图书借阅情况及账户文件、库存目录等文件查询读者情况、图书借阅情况及库存情况,打印各种统计表。库存情况,打印各种统计表。v请根据给定的数据流图构建起软件结构图。请根据给定的数据流图构建起软件结构图。一层数据流图(主图)一层数据流图(主图)v一层数据流图的软件结构图一层数据流图的软件结
20、构图v软件结构图的类型软件结构图的类型软件结构图的类型源于数据流图的类型,根据不软件结构图的类型源于数据流图的类型,根据不同的数据流类型将会产生对应的软件结构图。同的数据流类型将会产生对应的软件结构图。数据流图的类型数据流图的类型变换型数据流图变换型数据流图事务性数据流图事务性数据流图对应的软件结构图对应的软件结构图变换型软件结构图变换型软件结构图事务性软件结构图事务性软件结构图3.3.3.3.软件结构图类型软件结构图类型软件结构图类型软件结构图类型一般,一个大型的软件系统是变换型结构和事务型一般,一个大型的软件系统是变换型结构和事务型结构的混合结构。所以,我们通常利用以变换分析结构的混合结构
21、。所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。为主,事务分析为辅的方式进行软件结构设计。练习练习练习练习1 1 1 1练习练习练习练习2 2 2 2练习练习练习练习3 3 3 3根据下面变换型的数据流图设计出对应的初始软件结构图。根据下面变换型的数据流图设计出对应的初始软件结构图。例子步骤1:评审和精化软件的数据流图。步骤步骤2:确定:确定DFD含有变换流还是事务流含有变换流还是事务流步骤步骤3:刻画输入和输出流的边界:刻画输入和输出流的边界,隔离变换中心。隔离变换中心。输入流被描述成信息从外部形式变换为内部信输入流被描述成信息从外部形式变换为内部信 息的路径。息的路
22、径。输出流是信息从内部形式变换为外部形式的路径。输出流是信息从内部形式变换为外部形式的路径。步骤步骤4:完成软件结构的顶层模块和第一层结构图:完成软件结构的顶层模块和第一层结构图步骤步骤5:完成软件结构的第二层结构转化:完成软件结构的第二层结构转化完成软件结构的第一次迭代完成软件结构的第一次迭代步骤步骤6:用提高软件质量的启发信息,精化第一次迭:用提高软件质量的启发信息,精化第一次迭 代得到的程序结构代得到的程序结构v事务分析事务分析事务分析方法的具体步骤事务分析方法的具体步骤重画数据流图重画数据流图确定事务流和变换流确定事务流和变换流标识事务中心、事务接收路径和事务处理路径标识事务中心、事务
23、接收路径和事务处理路径设计软件结构的顶层和第一层设计软件结构的顶层和第一层设计软件结构的第二层设计软件结构的第二层具有边界的用户交互子系统的第2层DFD步骤步骤1:评审和精化软件的数据流图:评审和精化软件的数据流图步骤步骤2:确定:确定DFD含有变换流还是事务流特征。含有变换流还是事务流特征。步骤步骤3:标识事务中心和每条动作路径上的流特征。:标识事务中心和每条动作路径上的流特征。软件结构第一层图软件结构第二层图事务映射过程事务映射过程步骤步骤4:将:将DFD映射到一个适合于进行事务处理的程序结构上映射到一个适合于进行事务处理的程序结构上用户交互子系统的第一层软件结构图用户交互子系统的第一次迭代软件结构图用户交互子系统的第一次迭代软件结构图步骤步骤5:完成第:完成第2层结构化并精化每条动作路径结构层结构化并精化每条动作路径结构小结小结小结小结v软件结构图软件结构图变换型分析变换型分析事务性分析事务性分析此此课课件下件下载载可自行可自行编辑编辑修改,修改,仅仅供参考!供参考!感感谢谢您的支持,我您的支持,我们们努力做得更好!努力做得更好!谢谢谢谢