软件创新设计基础概念以及过程

上传人:san****glu 文档编号:111946905 上传时间:2019-11-04 格式:PPT 页数:119 大小:1.46MB
返回 下载 相关 举报
软件创新设计基础概念以及过程_第1页
第1页 / 共119页
软件创新设计基础概念以及过程_第2页
第2页 / 共119页
软件创新设计基础概念以及过程_第3页
第3页 / 共119页
软件创新设计基础概念以及过程_第4页
第4页 / 共119页
软件创新设计基础概念以及过程_第5页
第5页 / 共119页
点击查看更多>>
资源描述

《软件创新设计基础概念以及过程》由会员分享,可在线阅读,更多相关《软件创新设计基础概念以及过程(119页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章 软件设计的概念和过程软件设计的概念和过程 软件设计阶段的目的是产生一个具有良好 结构的、可以初步运行的软件系统。 1. 软件设计过程:结构化设计 初步设计 设计复审 详细设计 设计复审 编码 软件结构与 说明 修改 设计资料 模块算法描述 控制逻辑 修改 规格说明 源代码 第三章第三章 软件设计的概念和过程软件设计的概念和过程 指导原则: 层次化:合理地控制和划分软件成分的关系 。 模块化:充分采用信息隐蔽原则,最大限度 地实现程序局部化和数据局部化,控制复杂性。 功能独立:尽量使每个软件成分的功能保持 相对独立。 信息驱动:尽量使用分析阶段取得的成果。 结构清晰:尽量使软件成分

2、之间的关系简单 。 控制简单:尽量使软件成分内部的控制关系 清晰,控制结构严格受限,避免混乱。 第三章第三章 软件设计的概念和过程软件设计的概念和过程 2. 自顶向下、逐步求精的设计方法 1. 原则 从软件系统的最高层开始,定义一个软件的总控 程序,由它驱动第二层次的任务,再逐级向下按同 样的原则依次扩展,直至最底层不可再分的任务( 模块),编制源代码。 基础:基于软件的控制流向或程序的控制结构。 优点:信息隐蔽。各层之间存在单向的控制关系,通过传送 必要的控制信息或数据来实现,同层之间则无控制关系; 某个数据结构 及其操作完全位于低层,则无需在高层定义;控制关系向下传递。 第三章第三章 软件

3、设计的概念和过程软件设计的概念和过程 2. 【例】银行算法 A. 问题 假定某个银行有一笔若干个单位的资金,可供客 户项目发展贷款,寻求一个安全的贷款策略。 B. 规定: 客户预知贷款总额,且所有客户贷款总额之和将 超过资金总额; 每个客户一次请贷一个单位; 对客户的贷款请求,可以立即付给,也可请其等 待; 一旦客户贷足总额,立即归还全部贷款。 第三章第三章 软件设计的概念和过程软件设计的概念和过程 C. 分析 银行存在两种可能的状态:安全、不安全 。 安全状态:银行无论如何贷款,都有可能 使它当前的所有客户在有限的时间内完成项 目建设并归还全部贷款。 不安全状态:银行将不可能实现上述目标 ,

4、资金无法收回。 例如,银行有10个货币单位,3个客户, 它们的贷款总额分别为:8、3、9。 第三章第三章 软件设计的概念和过程软件设计的概念和过程 状态1是安全的: 状态2是不安全的: 银行资金: 4 A: 3 (5) B: 2 (1) C: 1 (8) 银行资金: 1 A: 4 (4) B: 2 (1) C: 3 (6) 第三章第三章 软件设计的概念和过程软件设计的概念和过程 进一步分析:在安全状态和不安全状态之间,存在 一个临界状态。此时,只有按照特定的贷款策 略才可以完成所有项目。 D. 自顶向下设计 当前系统的描述: type s = record transactions: arra

5、y1n of record claim, loan: int; completed: boolean end; capital, cash: int; end; 第三章第三章 软件设计的概念和过程软件设计的概念和过程 第一步:确定当前系统安全否,分两步。 function safe (current_state: s) : boolean; var state: s; begin state:= current_state; 试完成所有的交易; safe:= 所有的交易是否全部完成; end; 安全否 试完成全部交易 是否全部完成 第三章第三章 软件设计的概念和过程软件设计的概念和过程 第二步

6、:针对逐个试完成交易,又分两步。此时有 两个程序:逐个试完成交易、所有交易是否完成。 逐个试完成交易 procedure complete_transactions (var state: s) ; var customer: int ; progress: boolean; begin repeat progress:= false; for customer:= 1 to n do if not state. transactionscustomer. completed then if 该项交易能完成 then begin 第三章第三章 软件设计的概念和过程软件设计的概念和过程 归还贷款

7、; state. transactionscustomer. completed:= true; progress:= true; end; until not progress; end; 所有交易是否完成 function all_transactions_completed(state. s): boolean; begin if state. capital = state. cash then all_transactions_completed:=true else all_transactions_completed:=false; end; 第三章第三章 软件设计的概念和过程软

8、件设计的概念和过程 这时,系统将又向下细化一级: 是否安全 试完成全部交易 是否全部完成 逐个试完成交易归还贷款 第三章第三章 软件设计的概念和过程软件设计的概念和过程 第三步:针对逐个试完成交易,又有两项任务:试 完成每一项交易、归还贷款。 试完成每一项交易 function completion_possible(claim, cash: int): boolean; begin if claimcash then completion_possible:=false else completion_possible:=true; end; 归还贷款 procedure return_lo

9、an(var loan, cash: int); begin cash:=cash+loan; end; 第三章第三章 软件设计的概念和过程软件设计的概念和过程 于是,试完成所有交易的程序就完善了: procedure complete_transactions (var state: s) ; var customer: int ; progress: boolean; begin repeat progress:= false; for customer:= 1 to n do if not state. transactionscustomer. completed then if co

10、mpletion_ possible(state.transactionscustomer.claim, state.cash) then begin return_loan(state.transactionscustomer. loan, state.cash) ; state. transactionscustomer. completed:= true; progress:= true; end; until not progress; end; 第三章第三章 软件设计的概念和过程软件设计的概念和过程 这样,通过三级的求精过程,完成了全部的设计 任务。整个程序结构为: function

11、 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): boolean; function completion_possible(claim, cash: int); begin state:= current_state; complete_transactions(state); sa

12、fe:=all_transactions_completed(state); end; 第三章第三章 软件设计的概念和过程软件设计的概念和过程 3 软件概念 1. 软件结构 软件结构是指程序的系统结构。通常,它意味一 种特殊的层次控制体系,但不一定表示软件中各部 分处理的顺序、调用的次数或判定。仅仅体现了程 序各部分之间的控制关系。研究软件结构就是研究 各部分划分的原则以及它们之间的联系。 软件结构的好坏对软件的质量具有极其重要的影 响;另一方面,从不同的角度出发,同一个问题可 以由不同的软件结构。 第三章第三章 软件设计的概念和过程软件设计的概念和过程 要解决的问题 软件结构 必须着重指出,

13、软件的层次不是固有的,在很大程度上它 是人为的。是人们为了分解大系统的复杂性而引入的。不同 的设计方法可以产生不同的结构,问题是何种结构使软件系 统更加清晰、维护更加方便,这是人们所关心的。 第三章第三章 软件设计的概念和过程软件设计的概念和过程 2. 模块 模块是组成软件的最小单位。严格地定义 是:模块是一个可以独立编址的程序单位。 3. 结构 深度 宽度 第三章第三章 软件设计的概念和过程软件设计的概念和过程 软件结构的深度是指控制的层数; 软件结构的宽度是指同一层次的最大跨度 。 4. 模块性 模块性是指软件易于开发、管理和维护的 程度。 ( C(P1) C(P2) ) ( E(P1)

14、E(P2) 但是,C(P1+P2) C(P1)+C(P2) ,因此, E(P1+P2) E(P1)+E(P2) 第三章第三章 软件设计的概念和过程软件设计的概念和过程 但是,除了处理的复杂性以外,还存在模块之间 接口的复杂性。开发工作量是与两者之和相关的。 工作量 模块数量 接口代价 模块代价 总代价 第三章第三章 软件设计的概念和过程软件设计的概念和过程 抽象:指开发时概括的级别,层次越高,抽象 级别越高。 信息隐蔽:指模块内部定义的数据结构和操作 的外部不可见性,用以防止错误蔓延。 5. 模块独立性 模块独立性是指模块可以被独立地理解、编制 、测试和修改的程度。其量度的标准是内聚和耦合 。

15、 内聚:模块内部结合的紧密程度,理想的高内 聚是一个模块恰好完成一件任务。 第三章第三章 软件设计的概念和过程软件设计的概念和过程 低 高 共存的:模块的语句之间实际上没有联系,仅仅从存储的角 度将它们放在一起; 逻辑的:将逻辑上相似的功能合并为一个模块; 时态的:将需要同时执行的程序放在一个模块内; 以上为弱内聚的。 过程的:模块的各部分相互关联,且必须按指定的次序执行 ; 通信的:模块的各个处理部分都因用同样的数据; 共存的 逻辑的 时态的 过程的 通信的 顺序的 功能的 第三章第三章 软件设计的概念和过程软件设计的概念和过程 顺序的:模块中的各个处理部分都紧密相关于一个功能,而 且其中一个部分的输出就是另一部分的输入; 功能的:一个模块实现且仅实现一个功能。 目标:尽可能设计高内聚的模块! 耦合:模块之间相互联系和依赖的程度。模块之间 的耦合依赖于模块之间接口的复杂性。 考察模块之间的耦合从三个角度: 方式,耦合的方式; 作用,共享信息的作用; 数量,模块间联系的多少 第三章第三章 软件设计的概念和过程软件设计的概念和过程 研究耦合的目的:防止错误蔓延。 低

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号