软件设计的概念和过程(精)上课讲义.ppt

软件设计的概念和过程(精)上课讲义.ppt

ID:59927311

大小:436.00 KB

页数:120页

时间:2020-11-28

软件设计的概念和过程(精)上课讲义.ppt_第1页
软件设计的概念和过程(精)上课讲义.ppt_第2页
软件设计的概念和过程(精)上课讲义.ppt_第3页
软件设计的概念和过程(精)上课讲义.ppt_第4页
软件设计的概念和过程(精)上课讲义.ppt_第5页
资源描述:

《软件设计的概念和过程(精)上课讲义.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件设计的概念和过程(精)第三章软件设计的概念和过程§2.自顶向下、逐步求精的设计方法原则从软件系统的最高层开始,定义一个软件的总控程序,由它驱动第二层次的任务,再逐级向下按同样的原则依次扩展,直至最底层不可再分的任务(模块),编制源代码。基础:基于软件的控制流向或程序的控制结构。优点:信息隐蔽。各层之间存在单向的控制关系,通过传送必要的控制信息或数据来实现,同层之间则无控制关系;某个数据结构及其操作完全位于低层,则无需在高层定义;控制关系向下传递。第三章软件设计的概念和过程2.【例】银行算法A.问题假定某个银行有一笔若干个单位的资金,可供客户项目发展贷款,寻求一个安全的贷款策略。B.规定:

2、客户预知贷款总额,且所有客户贷款总额之和将超过资金总额;每个客户一次请贷一个单位;对客户的贷款请求,可以立即付给,也可请其等待;一旦客户贷足总额,立即归还全部贷款。第三章软件设计的概念和过程C.分析银行存在两种可能的状态:安全、不安全。安全状态:银行无论如何贷款,都有可能使它当前的所有客户在有限的时间内完成项目建设并归还全部贷款。不安全状态:银行将不可能实现上述目标,资金无法收回。例如,银行有10个货币单位,3个客户,它们的贷款总额分别为:8、3、9。第三章软件设计的概念和过程状态1是安全的:状态2是不安全的:银行资金:4A:3(5)B:2(1)C:1(8)银行资金:1A:4(4)B:2(1

3、)C:3(6)第三章软件设计的概念和过程进一步分析:在安全状态和不安全状态之间,存在一个临界状态。此时,只有按照特定的贷款策略才可以完成所有项目。自顶向下设计当前系统的描述:types=recordtransactions:array[1..n]ofrecordclaim,loan:int;completed:booleanend;capital,cash:int;end;第三章软件设计的概念和过程第一步:确定当前系统安全否,分两步。functionsafe(current_state:s):boolean;varstate:s;beginstate:=current_state;试完成所有

4、的交易;safe:=所有的交易是否全部完成;end;安全否试完成全部交易是否全部完成第三章软件设计的概念和过程第二步:针对逐个试完成交易,又分两步。此时有两个程序:逐个试完成交易、所有交易是否完成。①逐个试完成交易procedurecomplete_transactions(varstate:s);varcustomer:int;progress:boolean;beginrepeatprogress:=false;forcustomer:=1tondoifnotstate.transactions[customer].completedthenif该项交易能完成thenbegin第三章软件

5、设计的概念和过程归还贷款;state.transactions[customer].completed:=true;progress:=true;end;untilnotprogress;end;②所有交易是否完成functionall_transactions_completed(state.s):boolean;beginifstate.capital=state.cashthenall_transactions_completed:=trueelseall_transactions_completed:=false;end;第三章软件设计的概念和过程这时,系统将又向下细化一级:是否安全

6、试完成全部交易是否全部完成逐个试完成交易归还贷款第三章软件设计的概念和过程第三步:针对逐个试完成交易,又有两项任务:试完成每一项交易、归还贷款。①试完成每一项交易functioncompletion_possible(claim,cash:int):boolean;beginifclaim>cashthencompletion_possible:=falseelsecompletion_possible:=true;end;②归还贷款procedurereturn_loan(varloan,cash:int);begincash:=cash+loan;end;第三章软件设计的概念和过程于是,

7、试完成所有交易的程序就完善了:procedurecomplete_transactions(varstate:s);varcustomer:int;progress:boolean;beginrepeatprogress:=false;forcustomer:=1tondoifnotstate.transactions[customer].completedthenifcompletion_possible(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。