软件设计方法课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件设计方法课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 方法 课件
- 资源描述:
-
1、程序模块程序模块测试编码系统设计信息域需求信息域需求功能与性功能与性能需求能需求数据设计数据设计过程设计过程设计结构设计结构设计组装好的有效的软件组装好的有效的软件CAD SOFTWARE TASKS user interaction task;2-D drawing creation task;graphics display task;drawing file management task;end.PROCEDURE:2-D drawing creation REPEAT UNTIL(drawing creation task terminates)DO WHILE(digitizer
2、interaction occurs)digitizer interface task;DETERMINE drawing request CASE;line:line drawing task;rectangle:rectangle drawing task;circle:circle drawing task;blue-print IS INSTANCE OF drawing;schematic IS INSTANCE OF drawing;c 软件体系结构软件体系结构n软件体系结构的三要素是程序构件(模块)的层次结构、构件之间交互的方式,以及数据的结构。构构 件件 特特 点点 和和 示示
3、 例例纯计算纯计算构件构件具有简单的输入具有简单的输入输出关系,没有运行状态的变化输出关系,没有运行状态的变化。例如,数值计算、过滤器(。例如,数值计算、过滤器(Filters)、转换器)、转换器(Transformers)等。)等。存储构存储构件件存放共享的、永久性的、结构化的数据。例如,存放共享的、永久性的、结构化的数据。例如,数据库、文件、符号表、超文本等。数据库、文件、符号表、超文本等。管理构管理构件件执行的操作与运行状态紧密耦合。例如,抽象数执行的操作与运行状态紧密耦合。例如,抽象数据类型(据类型(ADT)、面向对象系统中的对象、许多)、面向对象系统中的对象、许多服务器(服务器(Se
4、rvers)等。)等。控制构控制构件件管理其它构件运行的时间、时机及次序。例如,管理其它构件运行的时间、时机及次序。例如,调度器、同步器等。调度器、同步器等。链接构链接构件件在实体之间传递信息。例如,通信机制、用户界在实体之间传递信息。例如,通信机制、用户界面等。面等。构件构件连连 接接 特特 点点 与与 示示 例例过程调过程调用用在某一个执行路径中传递执行指针。例如,普通过在某一个执行路径中传递执行指针。例如,普通过程调用(同一个命名空间)、远程过程调用(不同程调用(同一个命名空间)、远程过程调用(不同的命名空间)。的命名空间)。数据流数据流相互独立的处理通过数据流进行交互,在得到数据相互独
5、立的处理通过数据流进行交互,在得到数据的同时被赋予控制权限。例如,的同时被赋予控制权限。例如,UNIXUNIX系统中的管道系统中的管道(pipespipes)。)。间接激间接激活活处理是因事件的发生而激活的,在处理之间没有直处理是因事件的发生而激活的,在处理之间没有直接的交互。例如,事件驱动系统、自动垃圾回收等接的交互。例如,事件驱动系统、自动垃圾回收等。消息传消息传递递相互独立的处理之间有明确的交互,通过显式的离相互独立的处理之间有明确的交互,通过显式的离散方式的数据传递。这种传递可以是同步的,也可散方式的数据传递。这种传递可以是同步的,也可以是异步的。例如,以是异步的。例如,TCPIPTC
6、PIP。共享数共享数据据构件们通过同一个数据空间进行并发的操作。例如构件们通过同一个数据空间进行并发的操作。例如,多用户数据库、数据黑板系统。,多用户数据库、数据黑板系统。软件系统常出现下列体系结构软件系统常出现下列体系结构 n数据流系统:这种结构中的每一个组成成份这种结构中的每一个组成成份都有一套输入和输出数据,都依都有一套输入和输出数据,都依输入数据输入数据处理处理输出结果输出结果的方式工作。进行数据变换的方式工作。进行数据变换的构件叫做过滤器,把数据从一个过滤器的的构件叫做过滤器,把数据从一个过滤器的输出导入到另一个过滤器的输入,就叫做管输出导入到另一个过滤器的输入,就叫做管道。各个过滤
7、器相互独立,每一个过滤器对道。各个过滤器相互独立,每一个过滤器对它的上游或下游的过滤器的情况是不知道的。它的上游或下游的过滤器的情况是不知道的。这种结构的优点是:数据流程设计明确,直这种结构的优点是:数据流程设计明确,直接支持复用,系统容易维护和升级,可以进接支持复用,系统容易维护和升级,可以进行某些性能分析(如流量、死锁等),容易行某些性能分析(如流量、死锁等),容易支持并行计算。支持并行计算。n调用返回系统:在层次结构中,每在层次结构中,每一层都只与上下相邻的两层通信。每一层都只与上下相邻的两层通信。每一层在利用下层基础服务的条件下,一层在利用下层基础服务的条件下,为上层提供服务。最典型的
8、例子就是为上层提供服务。最典型的例子就是OSI7OSI7层网络协议。这种结构的优点是:层网络协议。这种结构的优点是:提供逐步抽象的编程支持,支持复用提供逐步抽象的编程支持,支持复用及系统升级。缺点是:不是所有的系及系统升级。缺点是:不是所有的系统都适合于建成层次结构,不能提供统都适合于建成层次结构,不能提供最佳性能。最佳性能。n独立构件系统:这种结构的特点是事这种结构的特点是事件的发出者不必知道对该事件的具体件的发出者不必知道对该事件的具体处理过程。它的优点是:提供了强大处理过程。它的优点是:提供了强大的可复用性支持。如事件驱动系统。的可复用性支持。如事件驱动系统。n数据为中心的系统:数据库5
9、.4 描绘软件结构的图形工具描绘软件结构的图形工具n层次图:描述软件的层次结层次图:描述软件的层次结构和模块调用关系。构和模块调用关系。n层次图和层次方框图的区别层次图和层次方框图的区别nHIPOHIPO图图结构化设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。利用映射把数据流图变换成软件结构。而前面学过的系统流程图,重点在描述物理系统的构成,状态转换图是表示状态转换的,ER图是描述数据对象关系的。该方法实施的要点是:建立数据流的类型:变换流?事务流?指明流的边界。即输入、处理、输出的界限。将数据流图映射到程序结构。n模块功能的完善化模块功能的完善化 n消除重
10、复功能消除重复功能 n模块的作用范围应在控制范围之内模块的作用范围应在控制范围之内 n尽可能减少高扇出结构尽可能减少高扇出结构 n避免或减少使用病态联接避免或减少使用病态联接 n模块的大小要适中模块的大小要适中 n设计功能可预测的模块设计功能可预测的模块 n软件包应满足设计约束和可移植性软件包应满足设计约束和可移植性 n使用黑箱技术使用黑箱技术n停止模块功能分解的原则停止模块功能分解的原则 盒图特点盒图特点n功能域明确,即一个特定控制结构的作用域明确。n盒图没有箭头,因此不允许随意转移控制。n容易确定局部和全局数据的作用域。n容易表现嵌套关系,也可以表示模块的层次结构。PAD的特点的特点n使用
11、表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序n它描述的程序结构清楚,图中最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数。n它是树型结构的图形,程序从图中最左竖线上端的节点开始执行,自上向下,从左到右n既可表示逻辑结构,也可描述数据结构n支持逐步求精的方法。判断树判断树n当判断表中的数据元素增加时,判断表的简洁程度下降n判断树比判断表更直观,但不如判断树简洁n分支持续对最终画出的判断树有影响。n也是二分支结构PROCEDURE spellcheck IS BEGIN
12、split document into single words lood up words in dictionary display words which are not in dictionary create a new dictionary END spellcheckPROCEDURE spellcheckBEGIN-*split document into single wordsLOOP get next word add word to word list in sortorder EXIT WHEN all words processedEND LOOP -*look u
13、p words in dictionaryLOOP get word from word listIF word not in dictionary THEN -*display words not in dictionary display word prompt on user terminal IF user response says word OK THEN add word to good word list ELSE add word to bad word list ENDIF ENDIF EXIT WHEN all words processedEND LOOP-*creat
14、e a new words dictionary dictionary:merge dictionary and good word listEND spellcheckHIPO图图nHIPO最初只用做文档编写的格式要求,随后发展成比较有名的软件设计手段。nHIPO图采用功能框图和PDL来描述程序逻辑,它由两部分组成:可视目录表和IPO图。可视目录表给出程序的层次关系,IPO图则为程序各部分提供具体的工作细节。n 可视目录表可视目录表:由体系框图、图例、描述说:由体系框图、图例、描述说明三部分组成。明三部分组成。n体系框图。又称层次图(体系框图。又称层次图(H图),是可视目录图),是可视目录表
15、的主体,用它表明各个功能的隶属关系。表的主体,用它表明各个功能的隶属关系。它是自顶向下逐层分解得到的,是一个树形它是自顶向下逐层分解得到的,是一个树形结构。它的顶层是整个系统的名称和系统的结构。它的顶层是整个系统的名称和系统的概括功能说明;第二层把系统的功能展开,概括功能说明;第二层把系统的功能展开,分成了几个框;第二层功能进一步分解,就分成了几个框;第二层功能进一步分解,就得到了第三层、第四层,得到了第三层、第四层,直到最后一层。,直到最后一层。每个框内都应有一个名字,用以标识它的功每个框内都应有一个名字,用以标识它的功能。还应有一个编号,以记录它所在的层次能。还应有一个编号,以记录它所在的
16、层次及在该层次的位置。及在该层次的位置。n图例。每一套图例。每一套HIPO图都应当有一个图图都应当有一个图例,即图形符号说明。附上图例,不管例,即图形符号说明。附上图例,不管人们在什么时侯阅读它都能对其符号的人们在什么时侯阅读它都能对其符号的意义一目了然。意义一目了然。n描述说明。它是对层次图中每一框的补描述说明。它是对层次图中每一框的补充说明,在必须说明时才用,所以它是充说明,在必须说明时才用,所以它是可选的。描述说明可以使用自然语言。可选的。描述说明可以使用自然语言。盘存销售系统工作流程图 n IPO图图 :IPO图为层次图中每一功能框图为层次图中每一功能框详细地指明输入、处理及输出。通常
17、,详细地指明输入、处理及输出。通常,IPO图有固定的格式,图中处理操作部分总是列图有固定的格式,图中处理操作部分总是列在中间,输入和输出部分分别在其左边和右在中间,输入和输出部分分别在其左边和右边。由于某些细节很难在一张边。由于某些细节很难在一张IPO图中表达图中表达清楚,常常把清楚,常常把IPO图又分为两部分,简单概图又分为两部分,简单概括的称为概要括的称为概要IPO图,细致具体一些的称为图,细致具体一些的称为详细详细IPO图。图。n概要概要IPOIPO图用于表达对一个系统,或对其中图用于表达对一个系统,或对其中某一个子系统功能的概略表达,指明在完成某一个子系统功能的概略表达,指明在完成某一
18、功能框规定的功能时需要哪些输入,哪某一功能框规定的功能时需要哪些输入,哪些操作和哪些输出。些操作和哪些输出。对应对应H图上图上1.1.0框的概要框的概要IPO图图 n在概要在概要IPO图中,没有指明输入图中,没有指明输入处理处理输出三者之间的关系,输出三者之间的关系,用它来进行下一用它来进行下一步的设计是不可能的。步的设计是不可能的。n故需要使用详细故需要使用详细IPO 图以指明输入图以指明输入处处理理输出三者之间的关系,其图形与概输出三者之间的关系,其图形与概要要IPO图一样,但输入、输出最好用具体图一样,但输入、输出最好用具体的介质和设备类型的图形表示。下图是的介质和设备类型的图形表示。下
19、图是销售盘存系统中对应于销售盘存系统中对应于1.1.2框的一张框的一张详细详细IPO图。图。利用利用HIPO进行迭代式细化设计进行迭代式细化设计 在软件设计时,解决设计问题通常需要经历在软件设计时,解决设计问题通常需要经历一个认识逐步发展的过程,并且对一些问题一个认识逐步发展的过程,并且对一些问题还要经过反复的考虑才可能达到比较满意的还要经过反复的考虑才可能达到比较满意的设计效果。我们称此为迭代式细化设计。设计效果。我们称此为迭代式细化设计。HIPO能很好地适应这一要求。下图是利用能很好地适应这一要求。下图是利用HIPO进行迭代式细化设计的示意图。从图进行迭代式细化设计的示意图。从图中可看到,
20、把可视目录表和中可看到,把可视目录表和IPO图结合起来,图结合起来,反复交替地使用它们,可使得设计工作逐步反复交替地使用它们,可使得设计工作逐步深化,最终取得完满的设计结果。其实这正深化,最终取得完满的设计结果。其实这正是自顶向下,逐步求精的结构化程序设计思是自顶向下,逐步求精的结构化程序设计思想。想。利用HIPO进行迭代式细化设计 nHIPO有自己的特点。首先,这一图形表有自己的特点。首先,这一图形表达方法容易看懂。其次,达方法容易看懂。其次,HIPO的适用范的适用范围很广。围很广。n事实上,画可视目录表就是与概要设计事实上,画可视目录表就是与概要设计密切相关的工作。密切相关的工作。n如果利
21、用它仅仅表达软件要达到的功能,如果利用它仅仅表达软件要达到的功能,则是需求分析中描述需求的很好的工具。则是需求分析中描述需求的很好的工具。n因为因为HIPO是在开发过程中的表达工具,是在开发过程中的表达工具,所以它又是开发文档的编制工具。开发所以它又是开发文档的编制工具。开发完成后,完成后,HIPO图就是很好的文档,而不图就是很好的文档,而不必在设计完成以后,专门补写文档。必在设计完成以后,专门补写文档。6.4 面向数据结构的设计面向数据结构的设计方法方法 Jackson方法方法 Jackson方法是一种典型的面向数据方法是一种典型的面向数据结构的分析与设计方法。早期的结构的分析与设计方法。早
22、期的Jackson方法用于小系统的设计,方法用于小系统的设计,称之为称之为Jackson结构程序设计方法,结构程序设计方法,简称简称JSP方法。它是按输入、输出方法。它是按输入、输出和内部信息的数据结构进行软件设和内部信息的数据结构进行软件设计的,即把数据结构的描述映射成计的,即把数据结构的描述映射成程序结构描述。程序结构描述。若数据结构有重复性,则对应程序一若数据结构有重复性,则对应程序一定有循环控制结构;定有循环控制结构;若数据结构具有选择性,则对应程序若数据结构具有选择性,则对应程序一定需要有判定控制结构,以此揭一定需要有判定控制结构,以此揭示数据结构和程序结构之间的内在示数据结构和程序
23、结构之间的内在关系,设计出反映数据结构的程序关系,设计出反映数据结构的程序结构。结构。JSP方法的的三步曲是信息方法的的三步曲是信息 数据数据结构结构 程序结构,这三步曲减少了设程序结构,这三步曲减少了设计决策上的盲目性。计决策上的盲目性。但是,当把但是,当把JSP方法用于大系统设方法用于大系统设计时,就会出现大量复杂的难以对付计时,就会出现大量复杂的难以对付的结构冲突。的结构冲突。因此,促使因此,促使M.J.Jackson提出了提出了JSD方法,即方法,即Jackson系统开发方法。系统开发方法。(1)JSD方法的步骤方法的步骤nJackson系统开发方法把分析的重点放在系统开发方法把分析的
展开阅读全文