软件设计的概念和过程优秀PPT.ppt

上传人:ylj18****70940 文档编号:57943420 上传时间:2022-11-06 格式:PPT 页数:120 大小:460.50KB
返回 下载 相关 举报
软件设计的概念和过程优秀PPT.ppt_第1页
第1页 / 共120页
软件设计的概念和过程优秀PPT.ppt_第2页
第2页 / 共120页
点击查看更多>>
资源描述

《软件设计的概念和过程优秀PPT.ppt》由会员分享,可在线阅读,更多相关《软件设计的概念和过程优秀PPT.ppt(120页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第三章第三章 软件设计的概念和过程软件设计的概念和过程 软件设计阶段的目的是产生一个具有良好软件设计阶段的目的是产生一个具有良好结构的、可以初步运行的软件系统。结构的、可以初步运行的软件系统。1.软件设计过程:结构化设计软件设计过程:结构化设计 初步设计初步设计设计复审设计复审具体设计具体设计设计复审设计复审编编码码软件结构与软件结构与说明说明修改修改设计资料设计资料模块算法描述模块算法描述限制逻辑限制逻辑修改修改规格说明规格说明源代码源代码第三章第三章 软件设计的概念和过程软件设计的概念和过程 指导原则:指导原则:层次化:合理地限制和划分软件成分的关系。层次化:合理地限制和划分软件成分的关系

2、。模块化:充分接受信息隐藏原则,最大限度地实现程模块化:充分接受信息隐藏原则,最大限度地实现程序局部化和数据局部化,限制困难性。序局部化和数据局部化,限制困难性。功能独立:尽量使每个软件成分的功能保持相对独立。功能独立:尽量使每个软件成分的功能保持相对独立。信息驱动:尽量运用分析阶段取得的成果。信息驱动:尽量运用分析阶段取得的成果。结构清晰:尽量使软件成分之间的关系简洁。结构清晰:尽量使软件成分之间的关系简洁。限制简洁:尽量使软件成分内部的限制关系清晰,限限制简洁:尽量使软件成分内部的限制关系清晰,限制结构严格受限,避开混乱。制结构严格受限,避开混乱。第三章第三章 软件设计的概念和过程软件设计

3、的概念和过程2.自自顶顶向下、逐步求精的向下、逐步求精的设计设计方法方法 原原则则 从从软软件系件系统统的最高的最高层层起先,定起先,定义义一个一个软软件件的的总总控程序,由它控程序,由它驱动驱动其次其次层层次的任次的任务务,再,再逐逐级级向下按同向下按同样样的原的原则则依次依次扩扩展,直至最底展,直至最底层层不行再分的任不行再分的任务务(模(模块块),),编编制源代制源代码码。基基础础:基于:基于软软件的限制流向或程序的限制件的限制流向或程序的限制结结构。构。优优点:信息点:信息隐隐藏。各藏。各层层之之间间存在存在单单向的限向的限制关系,通制关系,通过传过传送必要的限制信息或数据来送必要的限

4、制信息或数据来实现实现,同,同层层之之间则间则无限制关系;无限制关系;某个数据某个数据结结构及其操作完全位于低构及其操作完全位于低层层,则则无需在高无需在高层层定定义义;限制关系向下;限制关系向下传递传递。第三章第三章 软件设计的概念和过程软件设计的概念和过程2.【例】银行算法【例】银行算法A.问题问题 假定某个银行有一笔若干个单位的资金,可供客假定某个银行有一笔若干个单位的资金,可供客户项目发展贷款,寻求一个平安的贷款策略。户项目发展贷款,寻求一个平安的贷款策略。B.规定:规定:客户预知贷款总额,且全部客户贷款总额之和将客户预知贷款总额,且全部客户贷款总额之和将超过资金总额;超过资金总额;每

5、个客户一次请贷一个单位;每个客户一次请贷一个单位;对客户的贷款恳求,可以马上付给,也可请其等对客户的贷款恳求,可以马上付给,也可请其等待;待;一旦客户贷足总额,马上归还全部贷款。一旦客户贷足总额,马上归还全部贷款。第三章第三章 软件设计的概念和过程软件设计的概念和过程C.分析分析 银行存在两种可能的状态:平安、担忧全。银行存在两种可能的状态:平安、担忧全。平安状态:银行无论如何贷款,都有可能平安状态:银行无论如何贷款,都有可能使它当前的全部客户在有限的时间内完成项使它当前的全部客户在有限的时间内完成项目建设并归还全部贷款。目建设并归还全部贷款。担忧全状态:银行将不行能实现上述目标,担忧全状态:

6、银行将不行能实现上述目标,资金无法收回。资金无法收回。例如,银行有例如,银行有10个货币单位,个货币单位,3个客户,个客户,它们的贷款总额分别为:它们的贷款总额分别为:8、3、9。第三章第三章 软件设计的概念和过程软件设计的概念和过程状态状态1是平安的:是平安的:状态状态2是担忧全的:是担忧全的:银行资金银行资金:4A:3(5)B:2(1)C:1(8)银行资金银行资金:1A:4(4)B:2(1)C:3(6)第三章第三章 软件设计的概念和过程软件设计的概念和过程进一步分析:在平安状态和担忧全状态之间,存在进一步分析:在平安状态和担忧全状态之间,存在一个临界状态。此时,只有依据特定的贷款策一个临界

7、状态。此时,只有依据特定的贷款策略才可以完成全部项目。略才可以完成全部项目。自顶向下设计自顶向下设计 当前系统的描述:当前系统的描述:type s=record transactions:array1.n of record claim,loan:int;completed:boolean end;capital,cash:int;end;第三章第三章 软件设计的概念和过程软件设计的概念和过程第一步:确定当前系统平安否,分两步。第一步:确定当前系统平安否,分两步。function safe(current_state:s):boolean;var state:s;begin state:=cu

8、rrent_state;试完成全部的交易;试完成全部的交易;safe:=全部的交易是否全部完成;全部的交易是否全部完成;end;平安否平安否试完成全部交易试完成全部交易是否全部完成是否全部完成第三章第三章 软件设计的概念和过程软件设计的概念和过程其次步:针对逐个试完成交易,又分两步。此时有其次步:针对逐个试完成交易,又分两步。此时有两个程序:逐个试完成交易、全部交易是否完成。两个程序:逐个试完成交易、全部交易是否完成。逐个试完成交易逐个试完成交易 procedure complete_transactions(var state:s);var customer:int;progress:boo

9、lean;begin repeat progress:=false;for customer:=1 to n do if not pleted then if 该项交易能完成该项交易能完成 then begin 第三章第三章 软件设计的概念和过程软件设计的概念和过程 归还贷款;归还贷款;pleted:=true;progress:=true;end;until not progress;end;全部交易是否完成全部交易是否完成 function all_transactions_completed(state.s):boolean;begin if state.capital=state.ca

10、sh then all_transactions_completed:=true else all_transactions_completed:=false;end;第三章第三章 软件设计的概念和过程软件设计的概念和过程这时,系统将又向下细化一级:这时,系统将又向下细化一级:是否平安是否平安试完成全部交易试完成全部交易是否全部完成是否全部完成逐个试完成交易逐个试完成交易归还贷款归还贷款第三章第三章 软件设计的概念和过程软件设计的概念和过程第三步:针对逐个试完成交易,又有两项任务:试第三步:针对逐个试完成交易,又有两项任务:试完成每一项交易、归还贷款。完成每一项交易、归还贷款。试完成每一项交易

11、试完成每一项交易 function completion_possible(claim,cash:int):boolean;begin if claimcash then completion_possible:=false else completion_possible:=true;end;归还贷款归还贷款 procedure return_loan(var loan,cash:int);begin cash:=cash+loan;end;第三章第三章 软件设计的概念和过程软件设计的概念和过程于是,试完成全部交易的程序就完善了:于是,试完成全部交易的程序就完善了:procedure com

12、plete_transactions(var state:s);var customer:int;progress:boolean;begin repeat progress:=false;for customer:=1 to n do if not pleted then if completion_ possible(state.transactionscustomer.claim,state.cash)then begin return_loan(state.transactionscustomer.loan,state.cash);pleted:=true;progress:=true

13、;end;until not progress;end;第三章第三章 软件设计的概念和过程软件设计的概念和过程 这样,通过三级的求精过程,完成了全部的设计这样,通过三级的求精过程,完成了全部的设计任务。整个程序结构为:任务。整个程序结构为:function safe(current_state:s):boolean;var:state:s;procedure complete_transactions(var state:s);procedure return_loan(loan,cash:int);function all_transactions_completed(state:s):bo

14、olean;function completion_possible(claim,cash:int);begin state:=current_state;complete_transactions(state);safe:=all_transactions_completed(state);end;第三章第三章 软件设计的概念和过程软件设计的概念和过程3 软软件概念件概念 软软件件结结构构 软软件件结结构是指程序的系构是指程序的系统结统结构。通常,它意味一构。通常,它意味一种特殊的种特殊的层层次限制体系,但不确定表示次限制体系,但不确定表示软软件中各部件中各部分分处处理的依次、理的依次、调调

15、用的次数或判定。用的次数或判定。仅仅仅仅体体现现了程了程序各部分之序各部分之间间的限制关系。探的限制关系。探讨软讨软件件结结构就是探构就是探讨讨各部分划分的原各部分划分的原则则以及它以及它们们之之间间的的联联系。系。软软件件结结构的好坏构的好坏对软对软件的件的质质量具有极其重要的影量具有极其重要的影响;另一方面,从不同的角度响;另一方面,从不同的角度动动身,同一个身,同一个问题问题可可以由不同的以由不同的软软件件结结构。构。第三章第三章 软件设计的概念和过程软件设计的概念和过程 要解决的问题要解决的问题 软件软件结构结构 必需着重指出,软件的层次不是固有的,在很大程度上它必需着重指出,软件的层

16、次不是固有的,在很大程度上它是人为的。是人们为了分解大系统的困难性而引入的。不同是人为的。是人们为了分解大系统的困难性而引入的。不同的设计方法可以产生不同的结构,问题是何种结构使软件系的设计方法可以产生不同的结构,问题是何种结构使软件系统更加清晰、维护更加便利,这是人们所关切的。统更加清晰、维护更加便利,这是人们所关切的。第三章第三章 软件设计的概念和过程软件设计的概念和过程2.模块模块3.模块是组成软件的最小单位。严格地定模块是组成软件的最小单位。严格地定义是:模块是一个可以独立编址的程序单位。义是:模块是一个可以独立编址的程序单位。4.3.结构结构 深度深度宽度宽度第三章第三章 软件设计的

17、概念和过程软件设计的概念和过程 软件结构的深度是指限制的层数;软件结构的宽度是指同一层次的最大跨度。模块性 模块性是指软件易于开发、管理和维护的程度。(C(P1)C(P2)(E(P1)E(P2)但是,C(P1+P2)C(P1)+C(P2),因此,E(P1+P2)E(P1)+E(P2)第三章第三章 软件设计的概念和过程软件设计的概念和过程 但是,除了处理的困难性以外,还存在模块之间接口的困难性。开发工作量是与两者之和相关的。工作量工作量模块数量模块数量接口代价接口代价模块代价模块代价总代价总代价第三章第三章 软件设计的概念和过程软件设计的概念和过程 抽象:指开发时概括的级别,层次越高,抽象级别越

18、抽象:指开发时概括的级别,层次越高,抽象级别越高。高。信息隐藏:指模块内部定义的数据结构和操作的外部信息隐藏:指模块内部定义的数据结构和操作的外部不行见性,用以防止错误扩散。不行见性,用以防止错误扩散。模块独立性模块独立性 模块独立性是指模块可以被独立地理解、编制、测试和模块独立性是指模块可以被独立地理解、编制、测试和修改的程度。其量度的标准是内聚和耦合。修改的程度。其量度的标准是内聚和耦合。内聚:模块内部结合的紧密程度,志向的高内聚是一个内聚:模块内部结合的紧密程度,志向的高内聚是一个模块恰好完成一件任务。模块恰好完成一件任务。第三章第三章 软件设计的概念和过程软件设计的概念和过程 低 高共

19、存的:模块的语句之间事实上没有联系,仅仅从存储的角度将它们放在一起;逻辑的:将逻辑上相像的功能合并为一个模块;时态的:将须要同时执行的程序放在一个模块内;以上为弱内聚的。过程的:模块的各部分相互关联,且必需按指定的次序执行;通信的:模块的各个处理部分都因用同样的数据;共存的共存的 逻辑的逻辑的 时态的时态的 过程的过程的 通信的通信的 依次的依次的 功能的功能的第三章第三章 软件设计的概念和过程软件设计的概念和过程依次的:模块中的各个处理部分都紧密相关于一个功能,而依次的:模块中的各个处理部分都紧密相关于一个功能,而且其中一个部分的输出就是另一部分的输入;且其中一个部分的输出就是另一部分的输入

20、;功能的:一个模块实现且仅实现一个功能。功能的:一个模块实现且仅实现一个功能。目标:尽可能设计高内聚的模块!目标:尽可能设计高内聚的模块!耦合:模块之间相互联系和依靠的程度。模块之间的耦合依耦合:模块之间相互联系和依靠的程度。模块之间的耦合依靠于模块之间接口的困难性。靠于模块之间接口的困难性。考察模块之间的耦合从三个角度:考察模块之间的耦合从三个角度:方式,耦合的方式;方式,耦合的方式;作用,共享信息的作用;作用,共享信息的作用;数量,模块间联系的多少数量,模块间联系的多少第三章第三章 软件设计的概念和过程软件设计的概念和过程探讨耦合的目的:防止错误扩散。探讨耦合的目的:防止错误扩散。低低 高

21、高数据的:模块之间通过调用进行联系,调用参数为数据的:模块之间通过调用进行联系,调用参数为整体变量的数据型参数;整体变量的数据型参数;标记的:模块之间通过调用进行联系,调用参数可标记的:模块之间通过调用进行联系,调用参数可以是域变量的数据型参数;以是域变量的数据型参数;无耦合无耦合 数据的数据的 标记的标记的 限制的限制的 外部的外部的 共用的共用的 内容的内容的第三章第三章 软件设计的概念和过程软件设计的概念和过程限制的:模块之间通过调用进行联系,调用参数可以限制下限制的:模块之间通过调用进行联系,调用参数可以限制下属模块的运行;属模块的运行;外部的:模块之间由于外部环境的约束而产生联系,例

22、如,外部的:模块之间由于外部环境的约束而产生联系,例如,两个模块通过两个模块通过I/O联系、通过中断(如联系、通过中断(如OS)联系等;)联系等;共用的:模块之间通过共同的数据区联系;共用的:模块之间通过共同的数据区联系;内容的:一个模块运用另一个模块定义的数据结构或限制信内容的:一个模块运用另一个模块定义的数据结构或限制信息。息。总之,联系方式:调用(好),干脆引用数据或指令(不好)总之,联系方式:调用(好),干脆引用数据或指令(不好),相互作用:数据沟通(好),运行限制(不好)。,相互作用:数据沟通(好),运行限制(不好)。目标:尽可能设计低耦合的模块联系。目标:尽可能设计低耦合的模块联系

23、。第三章第三章 软件设计的概念和过程软件设计的概念和过程6.设计的留意要点设计的留意要点7.模块的大小问题:在一个编程人员可以限制的困模块的大小问题:在一个编程人员可以限制的困难性以内;难性以内;8.高内聚、耦合高内聚、耦合9.保持单入口、单出口,防止病态连接,举荐运用保持单入口、单出口,防止病态连接,举荐运用三种结构:三种结构:第三章第三章 软件设计的概念和过程软件设计的概念和过程争取合理的软件结构,深度过大时可以适当增加扇出、宽度过大时可以争取合理的软件结构,深度过大时可以适当增加扇出、宽度过大时可以适当削减扇出。适当削减扇出。第三章第三章 软件设计的概念和过程软件设计的概念和过程将模块的

24、作用范围限制在它的限制范围内。将模块的作用范围限制在它的限制范围内。ABCDEFGHIACDEFBGHI判定影响判定影响判定判定第三章第三章 软件设计的概念和过程软件设计的概念和过程尽可能利用尽可能利用“黑箱黑箱”技术,使模块的功能可预料(具有内部技术,使模块的功能可预料(具有内部“存储器存储器”的模块功能是难预料的)。的模块功能是难预料的)。第三章第三章 软件设计的概念和过程软件设计的概念和过程4 软软件初步件初步设计设计 软软件初步件初步设计设计的任的任务务:得到一个良好的得到一个良好的软软件件结结构,又称构,又称软软件的件的结结构构设计设计。良好的良好的软软件件结结构构 良好的良好的软软

25、件件结结构构应应当是模当是模块单块单向依靠的,向依靠的,亦即下亦即下层层模模块块依靠上依靠上层层模模块块而不是反之。通而不是反之。通常的常的软软件件结结构有依次、半序和构有依次、半序和树树型三种。型三种。第三章第三章 软件设计的概念和过程软件设计的概念和过程依次:依次:偏序:偏序:树型:树型:程序结构图没有徊路!程序结构图没有徊路!第三章第三章 软件设计的概念和过程软件设计的概念和过程2.设计方法分类:设计方法分类:面对功能的设计方法;面对功能的设计方法;面对数据流的设计方法;面对数据流的设计方法;面对数据结构的设计方法;面对数据结构的设计方法;面对数据流和面对数据结构相结合的设计方法;面对数

26、据流和面对数据结构相结合的设计方法;面对对象的设计方法;面对对象的设计方法;思想与手段思想与手段 分解与抽象,分解软件系统的困难性。分解与抽象,分解软件系统的困难性。第三章第三章 软件设计的概念和过程软件设计的概念和过程4.面对数据流的设计方法面对数据流的设计方法5.基本思想:基本思想:6.利用系统分析阶段得到的利用系统分析阶段得到的DFD,导出软件的系统结构。,导出软件的系统结构。通过定义若干通过定义若干“映射映射”规则,把不同的数据流映射到软件结规则,把不同的数据流映射到软件结构。构。7.应用范围:应用范围:8.原则上可以通用。特殊是对软件的信息结构不特别清晰原则上可以通用。特殊是对软件的

27、信息结构不特别清晰或不易用形式化手段描述时,这种方法更有效。例如嵌入式或不易用形式化手段描述时,这种方法更有效。例如嵌入式软件、困难的数值计算和分析过程、工业过程限制、软件、困难的数值计算和分析过程、工业过程限制、CAD、GIS应用软件等。应用软件等。第三章第三章 软件设计的概念和过程软件设计的概念和过程(1)信息流)信息流 一般来说,信息流可以分为两个大类。一般来说,信息流可以分为两个大类。转换流:具有明显的传入、处理、传出界限的信转换流:具有明显的传入、处理、传出界限的信息流。是一种基本上呈现线性形态的息流。是一种基本上呈现线性形态的DFD。传入流传入流转换流转换流传出流传出流传入流传入流

28、信息信息时间时间第三章第三章 软件设计的概念和过程软件设计的概念和过程转换中心:信息和形态发生根本变更的部分转换中心:信息和形态发生根本变更的部分ABCDEFHGIJKL传入流传入流传出流传出流转换中心转换中心第三章第三章 软件设计的概念和过程软件设计的概念和过程 事务基元流:具有明显散射特性的事务基元流:具有明显散射特性的DFD。事务基元中心:对输入信息进行推断确定事务基元中心:对输入信息进行推断确定处理方式的部分处理方式的部分 ABCDHLMOEFGIJK动作路径:处理输入信息的部分动作路径:处理输入信息的部分第三章第三章 软件设计的概念和过程软件设计的概念和过程 在大型的在大型的DFD中

29、,这两种信息流可能同时存在。中,这两种信息流可能同时存在。(2)设计步骤)设计步骤 复审、精化复审、精化DFD,考虑正确性和合理性;,考虑正确性和合理性;确定信息流的特性,从总体上区分是转换流或事务基元流;确定信息流的特性,从总体上区分是转换流或事务基元流;确定流的边界确定流的边界 事务基元流:以事务基元中心分界,分为传入、事务基事务基元流:以事务基元中心分界,分为传入、事务基元中心和动作路径;元中心和动作路径;转换流:从输入端向内推动,找出离输入端最远、但仍转换流:从输入端向内推动,找出离输入端最远、但仍构成系统的输入,与物理输入有最小的相像性(如去掉注释、构成系统的输入,与物理输入有最小的

30、相像性(如去掉注释、间隔符,转成内部表示,经过编辑、有效性检查等)的地方,间隔符,转成内部表示,经过编辑、有效性检查等)的地方,作为传入流边界。作为传入流边界。第三章第三章 软件设计的概念和过程软件设计的概念和过程 从物理输出端起先向内推动,但仍构成系统的输出,从物理输出端起先向内推动,但仍构成系统的输出,与物理输出有最小的相像性(如未经格式编排、未作单位转与物理输出有最小的相像性(如未经格式编排、未作单位转换等)的地方,作为传出流的边界。换等)的地方,作为传出流的边界。有可能传入流、传出流的边界重合,这时软件的功有可能传入流、传出流的边界重合,这时软件的功能就是分发、转换,没有实质性的处理。

31、能就是分发、转换,没有实质性的处理。将将DFD转化为软件的结构转化为软件的结构 转换流转换流软件呈现三分结构:软件呈现三分结构:总控模块总控模块传入部分传入部分转换部分转换部分传出部分传出部分第三章第三章 软件设计的概念和过程软件设计的概念和过程传入部分:在无子流的状况,从边界由里向外推。传入部分:在无子流的状况,从边界由里向外推。ABDEC传入分控传入分控ECDBAA第三章第三章 软件设计的概念和过程软件设计的概念和过程传出部分:在无子流的状况,由传出边界里向外推。传出部分:在无子流的状况,由传出边界里向外推。IJKL传出分控传出分控JIKLK第三章第三章 软件设计的概念和过程软件设计的概念

32、和过程转换中心:在无子流的状况,自传入边界向传出边转换中心:在无子流的状况,自传入边界向传出边界推动。界推动。FGH转换分控转换分控FGHH第三章第三章 软件设计的概念和过程软件设计的概念和过程 事务基元流事务基元流 软件呈现出二分结构。软件呈现出二分结构。总控模块总控模块接收部分接收部分发送部分发送部分第三章第三章 软件设计的概念和过程软件设计的概念和过程接收部分:同转换流的传入部分类似。接收部分:同转换流的传入部分类似。AB接收分控接收分控AB第三章第三章 软件设计的概念和过程软件设计的概念和过程发送部分:由事务基元中心向外推。发送部分:由事务基元中心向外推。CDEFGHIJKLMO发送分

33、控发送分控LMOHIJKDFEG第三章第三章 软件设计的概念和过程软件设计的概念和过程 接着分解,在有子流的状况,接着依据子流的类接着分解,在有子流的状况,接着依据子流的类型转化。例如,上例中事务基元流的其次条路径又型转化。例如,上例中事务基元流的其次条路径又是一个转换流,假定转换转换中心是是一个转换流,假定转换转换中心是I、J,就变成:,就变成:发送分控发送分控LMO路径子控路径子控H转换微控转换微控KIJDFEG第三章第三章 软件设计的概念和过程软件设计的概念和过程 对得到的软件结构求精。对得到的软件结构求精。原则:高内聚、低耦合;原则:高内聚、低耦合;具有相同的模块可以合并,即可以产生偏

34、序的软件结构。例如,具有相同的模块可以合并,即可以产生偏序的软件结构。例如,上例的转换流中,沿着流的方向出现分叉和合并,形成的软件结构中会上例的转换流中,沿着流的方向出现分叉和合并,形成的软件结构中会出现一些相同的模块。这时就可以将它们合并;出现一些相同的模块。这时就可以将它们合并;视状况省略分限制模块,如传入部分只有一个数据流进入转换视状况省略分限制模块,如传入部分只有一个数据流进入转换中心,传入分控模块可以省略、转换分控模块也可省去,传出部分也类中心,传入分控模块可以省略、转换分控模块也可省去,传出部分也类似。似。第三章第三章 软件设计的概念和过程软件设计的概念和过程系统总控系统总控转换分

35、控转换分控传入分控传入分控传出分控传出分控EDBACFGHKIJL软件结构图:软件结构图:第三章第三章 软件设计的概念和过程软件设计的概念和过程 文档整理文档整理 文档整理是软件初步设计的一个重要阶段。在得文档整理是软件初步设计的一个重要阶段。在得到软件的结构以后,必需确定模块之间的接口。要到软件的结构以后,必需确定模块之间的接口。要对模块之间的调用给出明确的规定。对模块之间的调用给出明确的规定。模块处理说明:模块处理说明:模块处理说明是对系统分析阶段的加工说明加以模块处理说明是对系统分析阶段的加工说明加以细化,比较深化地描述模块在软件系统中所处的位细化,比较深化地描述模块在软件系统中所处的位

36、置及地位。要给出它运用的外部数据(包括数据库置及地位。要给出它运用的外部数据(包括数据库中的数据、系统的全程数据结构以及上级模块的调中的数据、系统的全程数据结构以及上级模块的调用参数。还要给出它调用下级模块所运用的参数。用参数。还要给出它调用下级模块所运用的参数。第三章第三章 软件设计的概念和过程软件设计的概念和过程5.数据设计数据设计 初步设计阶段的另一个工作是进行数据设计:初步设计阶段的另一个工作是进行数据设计:数据库设计,定义数据库模式。要对系统分析阶数据库设计,定义数据库模式。要对系统分析阶段得到的段得到的E-R图进行细化,特殊是为了提高效率,图进行细化,特殊是为了提高效率,须要设计部

37、分中间数据表项,例如台帐等。须要设计部分中间数据表项,例如台帐等。全程数据结构;全程数据结构;大致指出模块内部须要定义的局部数据结构;大致指出模块内部须要定义的局部数据结构;明确每个模块的明确每个模块的I/O数据及其结构。数据及其结构。第三章第三章 软件设计的概念和过程软件设计的概念和过程模块说明的内容:模块说明的内容:模块名;模块名;模块处理的描述;模块处理的描述;模块中运用的数据:数据库表、输入、输出数据、模块中运用的数据:数据库表、输入、输出数据、全程数据结构等;全程数据结构等;上级模块名;上级模块名;上级模块调用的参数及其含义和作用;上级模块调用的参数及其含义和作用;下级模块名;下级模

38、块名;调用下级模块运用的参数及其含义和作用。调用下级模块运用的参数及其含义和作用。第三章第三章 软件设计的概念和过程软件设计的概念和过程5 面面对对数据数据结结构的构的设计设计方法方法 数据数据结结构与程序构与程序 程序程序=数据数据结结构构+算法算法 数据数据结结构猛烈地影响构猛烈地影响软软件的件的设计设计与与过过程程设设计计:处处理重复数据理重复数据结结构的程序往往具有循构的程序往往具有循环环结结构;构;处处理理选择选择数据数据结结构的程序往往具有条构的程序往往具有条件判定的机构;件判定的机构;处处理分理分层层次数据次数据结结构的程序构的程序往往具有往往具有层层次次结结构。构。面面对对数据

39、数据结结构的构的设计设计方法就是把方法就是把对对数据数据结结构的描述构的描述转转化化为对软为对软件件结结构的描述。从构的描述。从I/O数数据据结结构构动动身,推倒身,推倒软软件的件的结结构及某些构及某些细细微微环环节节。第三章第三章 软件设计的概念和过程软件设计的概念和过程例例 处理工资报表处理工资报表问题环境问题环境数据结构数据结构完成的任务完成的任务执行的操作执行的操作程序结构程序结构读、写读、写程程 序序第三章第三章 软件设计的概念和过程软件设计的概念和过程2.适用范围适用范围3.原则上,处理定义清晰、具有层次特点的信息原则上,处理定义清晰、具有层次特点的信息结构,都可以运用面对数据结构

40、的设计方法。如:结构,都可以运用面对数据结构的设计方法。如:4.商业财政应用商业财政应用有明确的数据文件、输出报告有明确的数据文件、输出报告5.管理信息系统管理信息系统固定的单据、报表固定的单据、报表6.系统程序系统程序OS以大型表格为基本的数据结构以大型表格为基本的数据结构7.DBMS处理结构定义清晰的纪录处理结构定义清晰的纪录8.GIS固定的点、线、面结构固定的点、线、面结构第三章第三章 软件设计的概念和过程软件设计的概念和过程3.与面对数据流方法的不同与面对数据流方法的不同4.设计动身点不同(对现实世界的视察点不同)设计动身点不同(对现实世界的视察点不同)5.面对数据流方法以信息在处理时

41、刻的流向为基础,设面对数据流方法以信息在处理时刻的流向为基础,设计一个具有显明时序特征的软件结构,而面对数据结构的方计一个具有显明时序特征的软件结构,而面对数据结构的方法以信息的构成及其在处理时刻的相互关系为基础,设计一法以信息的构成及其在处理时刻的相互关系为基础,设计一个具有显明层次特征的软件结构及其处理细微环节。个具有显明层次特征的软件结构及其处理细微环节。6.设计的最终目标不同设计的最终目标不同7.前者以初步设计为目标,产生软件的模块结构,后者前者以初步设计为目标,产生软件的模块结构,后者以具体设计为目标,产生软件的过程描述,模块结构仅仅是以具体设计为目标,产生软件的过程描述,模块结构仅

42、仅是副产品。副产品。第三章第三章 软件设计的概念和过程软件设计的概念和过程 设计步骤不同 评价数据结构的特性(对软件规格说明中描述的信息结构进行复审)将数据结构表示成初等形式(依次、选择、循环)把数据结构的初等表示映射到软件的限制层次 细化 开发软件的过程性描述(即完成软件的具体设计)第三章第三章 软件设计的概念和过程软件设计的概念和过程4.Jackson方法学方法学5.基本思想:把一个问题分解成可以由三种结构形式表示的基本思想:把一个问题分解成可以由三种结构形式表示的一个层次结构。一个层次结构。6.Jackson方法以特定的数据模型为基础,但是,并不意方法以特定的数据模型为基础,但是,并不意

43、味着必需描述数据结构的物理特性(如数据类型、存储长度味着必需描述数据结构的物理特性(如数据类型、存储长度等)。而是指视察问题的角度,是描述数据结构的逻辑特性,等)。而是指视察问题的角度,是描述数据结构的逻辑特性,指建立面对问题的数据结构。指建立面对问题的数据结构。7.首先,建立面对问题的、由三种结构形式表示的层次数首先,建立面对问题的、由三种结构形式表示的层次数据结构,然后映射为软件结构,同时给出据结构,然后映射为软件结构,同时给出“伪码伪码”表示。表示。第三章第三章 软件设计的概念和过程软件设计的概念和过程基本图形(树型)表示技术:基本图形(树型)表示技术:依次:依次:数据结构数据结构A由由

44、B、C、D所组成,每个成分所组成,每个成分仅出现一次。仅出现一次。ACBD第三章第三章 软件设计的概念和过程软件设计的概念和过程选取:选取:数据结构数据结构A由由B或或C组成,且仅出现一次。组成,且仅出现一次。A B C第三章第三章 软件设计的概念和过程软件设计的概念和过程选取型的推广选取型的推广ACBD第三章第三章 软件设计的概念和过程软件设计的概念和过程重复:重复:A由多个由多个B所组成(并不给定重复次数)。所组成(并不给定重复次数)。利用这三种基本表示,可以构造随意困难的分层利用这三种基本表示,可以构造随意困难的分层次树型数据结构。树中的每个次树型数据结构。树中的每个“树叶树叶”都可以用

45、一都可以用一棵子树代替。棵子树代替。AB*第三章第三章 软件设计的概念和过程软件设计的概念和过程【例】高校【例】高校高校高校政政党党部部组织组织宣扬宣扬统战统战宣扬宣扬教学教学机关机关部部财务财务科研科研院院数学数学物理物理统战统战统战统战院院*第三章第三章 软件设计的概念和过程软件设计的概念和过程【例】列车:车头、行李车、邮政车、餐车各一个,【例】列车:车头、行李车、邮政车、餐车各一个,硬座、硬卧、软座、软卧车厢若干。硬座、硬卧、软座、软卧车厢若干。列车列车车头车头车体车体服务车厢服务车厢旅客车厢旅客车厢邮政邮政行李行李餐车餐车臥臥座座软软硬硬软软硬硬*第三章第三章 软件设计的概念和过程软件

46、设计的概念和过程 程序结构基本图形表示法:程序结构基本图形表示法:ABCABC依次:依次:选取:选取:第三章第三章 软件设计的概念和过程软件设计的概念和过程ABABCB1B2*重复:重复:回朔:回朔:quit第三章第三章 软件设计的概念和过程软件设计的概念和过程 假如在一个须要作出选取判定的点上无法依据现有驾驭的信息对判定条件进行测定,只能任择其中的一个分支起先执行。在随后的执行过程中逐步获得足够的信息,对从前的选择进行事后评价以确定其是否正确。如发觉当时假设的判定选择有误时,要返回到原判定点并转向其它的分支,这种现象称为回朔。【例】八王后问题:如何在一个88的棋盘上放置8个王后,使它们不能自

47、相残杀。(两个王后既不能在同一行上,也不能在同一列上)第三章第三章 软件设计的概念和过程软件设计的概念和过程 伪码:伪码:伪码(伪码(pseudo code)是一种混杂的语言,)是一种混杂的语言,它运用一种语言(通常是自然语言)的词汇它运用一种语言(通常是自然语言)的词汇和另一种语言(例如程序设计语言)的语法。和另一种语言(例如程序设计语言)的语法。前者用来描述处理的操作(因为其敏捷、表前者用来描述处理的操作(因为其敏捷、表达实力强),后者用来克化限制的结构(因达实力强),后者用来克化限制的结构(因为其严格、没有或较少有歧义)为其严格、没有或较少有歧义)因此,通常用伪码来描述程序的处理过程,因

48、此,通常用伪码来描述程序的处理过程,用来书写具体设计的文档。用来书写具体设计的文档。第三章第三章 软件设计的概念和过程软件设计的概念和过程 四种程序结构的伪码表示:四种程序结构的伪码表示:依次依次 A seq A seq 处理处理B;处理处理B;处理处理C;处理处理C;A end;推广推广 处理处理D;处理处理E;A end;ABC第三章第三章 软件设计的概念和过程软件设计的概念和过程 四种基本程序结构的伪码表示:四种基本程序结构的伪码表示:选取选取 A select(条件条件)A select(条件条件1)处理处理B;处理处理B;A or 推广推广 A or(条件条件2)处理处理C;处理处理

49、C;A end;A or(条件条件3)处理处理D;A end;ABC第三章第三章 软件设计的概念和过程软件设计的概念和过程 重复重复 A iter until (条件条件)处理处理B;A end;AB*第三章第三章 软件设计的概念和过程软件设计的概念和过程 回朔回朔 A posit(条件条件1)B seq quit A if(条件条件2)处理处理B1;quit A if(条件条件3)处理处理B2;B end;A admit 处理处理C;quit A end;由此可见:条件由此可见:条件2 V 条件条件3 条件条件1ABCB1B2第三章第三章 软件设计的概念和过程软件设计的概念和过程 Jacks

50、on方法的设计步骤:复审,检查数据结构的合理性 用三种基本的图形形式表示数据结构 找出输入、输出数据结构之间的对应关系(在找不到对应关系的时候,要引入中间数据结构,形成一串对应关系链)依据数据结构之间的对应关系,得到程序的结构 对得到的程序结构求精(考虑回朔问题、列出操作和判定条件等)伪码表示第三章第三章 软件设计的概念和过程软件设计的概念和过程【例】处理卡片【例】处理卡片 问题:一张卡片上有三个域问题:一张卡片上有三个域F1F1、F2F2、F3F3,若若F1F1在在1,991,99内,则从文件中取出两个数内,则从文件中取出两个数a a,b b(假定(假定abab)和一个三元组()和一个三元组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 商业计划书

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁