电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

第五章[0]软件设计

  • 资源ID:75823552       资源大小:5.13MB        全文页数:64页
  • 资源格式: PPT        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

第五章[0]软件设计

1,Sofeware Engineering,第5章 软 件 设 计,软件工程研究室,2,结构就如同人的骨架。 模块就如同人的器官,具有特定的功能。 数据结构与算法就如同人的血脉和神经,分布 在体系结构和模块中,将协调系统的各个功能。 用户界面就如同人的外表。 象人类追求心灵美和外表美那样,软件系统也 追求(内在的)功能强大和(外表的)界面友好。 在进行系统设计时,要深情地关注软件的质量 因素.,3,5.1 软件设计概述 5.2 软件体系结构介绍 5.3 结构化设计的基础模块化 5.4 结构化的设计方法 5.5 数据的设计 5.6 界面设计 5.7 软件详细(过程)设计 5.8 设计中的几个问题 目的:解决“怎么做”的问题,内 容,4,5.1 软件设计概述,软件设计的含义 软件设计与分析关系 软件设计的主要内容 软件设计的原则,汽车设计,5.1.1 什么是“设计”?,机械设计,封面设计,课程体系设计,服装设计,业务流程设计,平面广告设计,设计的目标:质量,协和式飞机,戴高乐机场,瑞典瓦萨战舰,瑞典的瓦萨战舰,时间:1620年代 背景:瑞典 vs. 波兰交战 用户:瑞典国王 需求:建造一艘巨型战舰,长70m, 载员300人,两层甲板、 64门重炮,以尽快结束战争。 此前从未有人设计过如此复杂的 战舰,荷兰设计师Henrik Hybertsson 穷尽毕生精力,设计完成,并建造下水。 大结局:1628年8月10日,Vasa战舰下 水,在鸣放了几响礼炮之后, 很快沉入水中。,瓦萨战舰的教训,合理切合实际的系统结构是保证系统成功运行的首要 因素。虽然Vasa战舰制造工艺精良,但船体比例严重 失调,体系结构存在致命缺陷; 设计师在无前人设计经验的基础上,既要执行国王的 “功能性”需求,又要考虑“性能”要求(如安全性、可 靠性、造价等)。面对诸多相互冲突的约束条件,做 出了错误的权衡,对一些不可能实现的要求作了妥协。,从建筑设计看软件设计,“设计良好的建筑应该展示出坚固、适用和令人赏心悦目的特点。” 对好的软件设计来说也是如此 坚固:软件应该不含任何 妨碍其功能的缺陷; 适用:软件要符合开发的 目标,满足用户需求; 赏心悦目:使用软件的体验应该是愉快的。,建筑设计,设计=天才+创造力,每个工程师都希望做设计工作,因为这里有 “创造性”客户需求、业务要求和技术限 制都在某个产品或系统中得到集中的体现。 “设计”是最充分展现工程师个人水平的工作。,为问题域的外部可见行为的规约增添实际的计算机 系统实现所需的细节,包括关于人机交互、任务管 理和数据管理的细节。 Coad/Yourdon,“设计”的本质,设计是你身处两个世界, 技术世界和人类的目标世界, 而你尝试将这两个世界结合在一起。 Mitch Kapor, 软件设计宣言,“设计阶段”是软件工程中形成质量的关键阶段,其 后所有阶段的活动都要依赖于设计的结果。 “编写一段能工作的灵巧的代码是一回事,而设计 能支持某个长久业务的东西则完全是另一回事。” C. Ferguso,结构化的设计,需求规格说明 SRS,设计文档,What do to?,How to do?,软件需求 分析,软件设计,软件编码,图 5-1 软件设计在SE中所处的位置,把软件需求规格说明 转为软件过程性的表示。 解决“怎么做”的问题。,设计=不断的作出决策,解决“How to do”,就需要不断的做出各种“设计决 策” ,在各类需求之间进行“折中”,使得最终设计 性能达到最优。,图 5-2 软件设计的决策,良好的设计的三个特征,设计必须是实现所有包含在分析模型中的明确需求、 以及客户期望的所有隐含需求;,设计必须提供软件的全貌,从实现的角度去说明功 能、数据、行为等各个方面。,对开发、测试和维护人员来说,设计必须是可读的、可理解的、可操作的指南;,5.1.2 将分析模型转换为设计模型,数,据,流,图,实,体,关,系,图,状态转换图,加,工,控,制,规,规,格,格,说,说,明,明,数,据,对,象,描,述,数据 字典,图 5-3 分析模型转换为设计模型,从工程管理的角度看, 软件设计包括: 概要设计: 详细设计:,5.1.3 软件设计的主要内容,从技术的角度看, 软件设计包括: 体系结构设计 数据结设计 接口设计 算法设计,概要设计,详细设计,数据设计,体系结构设计,过程设计,接口设计,图 54 软件设计的内容,17,5.1.4 软件设计的原则(Davis 1995):,(1) 使用基本的设计概念:抽象、逐步求精、 自顶向下、模块化等.,(2) 设计应追朔到分析模型,(4) 软件设计应尽量模拟问题域的结构,(3) 注重复用技术,(5) 设计应具有一致性、集成性,(7) 设计不是编码,(6) 设计应便于修改,适用于异常条件,(8) 注重评审,18,5.1 软件设计概述 5.2 软件体系结构介绍 5.3 结构化设计的基础模块化 5.4 结构化的设计方法 5.5 数据的设计 5.6 人机交互设计 5.7 软件详细(过程)设计 5.8 设计中的几个问题,内 容,5.2 软件体系结构简介,5.2.1 什么是软件体系结构,5.2.2 为什么要提出“软件体系结构”,5.2.3 体系结构风格,20,杨叔子院子曾这样指点其弟子: 文学中有科学, 音乐中有数学, 漫画中有现代数学的拓扑学。 漫画家可以“几笔”就把一个人画出来,不管怎么美化或丑化,就是活像。为什么?,5.2 软件体系结构简介,软件体系结构是软件系统中最本质的东西,因为那“几笔”不是别的,而是拓扑学中的特征 不变量,这是事物最本质的东西。,21,体系结构是对复杂事物的一种抽象。 良好的体系结构是普遍适用的,它可以高效 地处理多种多样的个体需求。,体系结构在一定的时间内保持稳定。 只有在稳定的环境下,人们才能干点事情。 对需求变化,只做些皮皮毛毛的修改.,本节将论述两种非常通用的软件体系结构: 层次结构和 客户机/服务器(Client/Server)结构。,“体系结构”一词起源于建筑学 如何使用基本的建筑模块构造一座完整的建筑? 包含两个因素: 基本的建筑模块:砖、瓦、灰、沙、石、预制梁、柱、屋面板 建筑模块之间的粘接关系:如何把这些 “砖、瓦、灰、沙、石、预制梁、柱、 屋面板”有机的组合起来形成整体建筑?,5.2.1 什么是“体系结构” (Architecture),1) 计算机硬件系统的“体系结构”,如何将设备组装起来形成完整的计算机硬件系统?,计算机体系结构的风格: 以存储程序原理为基础的冯·诺依曼结构 存储系统的层次结构 并行处理机结构 ,包含两个因素: 基本的硬件模块:控制器、运算器、内存储器、 外存储器、输入设备、输出设备 硬件模块之间的连接关系:总线,“体系结构”的共性,共性: 一组基本的构成要素构件 这些要素之间的连接关系连接件 这些要素连接之后形成的拓扑结构物理分布 作用于这些要素或连接关系上的限制条件约束 质量性能,2) “软件体系结构”(Software Architecture),提供了对软件系统的结构、行为和属性的抽象。 反映系统开发中具有重要影响的设计决策,便于 各种人员的交流,据此开发的系统能完成系统既 定的功能和性能需求。,从宏观层次来考虑组成系统的构件、构件之间的 连接,以及由构件与构件交互形成的拓扑结构 这些要素应该满足一定的限制,遵循一定的设计 规则。 体系结构 = 构件 + 连接件 + 约束 Architecture = Components + Connectors + Constrains,(1) 构件(Component),构件是具有某种功能的可复用的软件结构单元, 表示了系统中主要的计算元素和数据存储。,任何在系统运行中承担一定功能、发挥一定作用 的软件体都可看作是构件。,程序函数、模块 对象、类 文件 相关功能的集合 .,(2) 接口(Interface),构件作为一个封装的实体,只能通过其接口与外 部环境交互; 芯片的管脚 内部结构则被隐藏起来(Black-box); 一个构件至少有一个接口, 一个构件可以提供多重接口: 接不同的管脚,实现不同的功能。 构件接口与构件实现严格分开.,(3) 服务(Service),构件被看作一个“黑盒”(Black Box),其内部具体的实现机制被封装和隐藏起来。 构件的功能以服务(Service)的形式体现出来,并通过接口向外发布,进而产生与其它构件之间的关联。,(4) 连接件(Connector),连接件(Connector):表示构件之间的交互并实现构 件之间的连接,如: 管道(pipe) 过程调用(procedure call) 事件广播(event broadcast) 客户机-服务器(client-server) 数据库连接(SQL) 连接件也可看作一类特殊的构件,区别在于: 一般构件是软件功能设计和实现的承载体; 连接件是负责完成构件之间信息交换和行为联系 的专用构件。,(5) 连接的协议(Protocol),协议(Protocol)是连接的规约(Specification); 连接的规约是建立在物理层之上的有意义信息形 式的表达规定 对过程调用来说: 对消息传送来说:,参数的个数和类型、参数排 列次序; 消息的格式 目的:使双方能够互相理解对方所发来的信息 的语义。,(6) 连接的种类,从连接目的看: 操作/过程调用; 控制/事件/消息发送; 数据传输; 除了连接机制/协议的实现难易之外,影响连接 实现复杂性的因素之一是“有无连接的返回信息 和返回的时间”,分为: 同步 (Synchronous) 异步 (Asynchronous),5.2.2 为什么要提出“软件体系结构”,软件系统规模越来越大、越来越复杂: 用户需求变化频繁且多样化; 对软件质量(功能性/非功能性)的要求越来越高; 如何将成百上千个功能组合起来,满足用户质量需求, 变得越来越困难。 此时,整个系统的结构和规格说明显得越来越重要。 很多质量需求主要体现在体系结构中而非功能模块内 部的实现中。 结论:对于大规模的复杂软件系统,总体的系统结 构设计和规格说明比起对计算的算法和数据 结构的选择重要得多。,图 5-5 按父子样式关系组织的构架样式分类简图,独立组件,通信进程,事件系统,隐式调用 显示调用,数据流,以数据为中心,成批顺序流 管道和过滤器,数据仓库 黑板,虚拟机,调用和返回,解释器 基于规则的系统,主程序 和子程序,面向 对象,分层,5.2.3 体系结构风格,1) 主程序-子程序结构,是结构化程序设计 的一种典型风格。 从功能的观点设 计系统,通过逐 步分解和逐步细 化,得到系统体 系结构。,构件: 连接器: 拓扑结构:,图 5-6 主程序-子程序结构,主程序、子程序 调用-返回机制 层次化结构 本质:将大系统分解为若干模块(模块化),主程序 调用这些模块实现完整的系统功能。,(1) 现实世界里邮政系统,2) 层次结构,通信者活动 界面,通信者活动 界面,邮局服务业务,邮局服务业务,邮局转运业务,邮局转运业务,运输部门的(邮件)运输业务,书写信件,粘贴邮票,投递进信箱,收集信件,加盖邮戳,邮件分检,邮件打包,转送运输,部门,选择运输,路径(路由),转送邮局,接收邮件,接收邮件,邮件拆包,邮件投递,邮件分检,信箱取信,阅读邮件,发信者,收信者,图 5-7 邮政系统,37,图 58 网络协议层1,应用,表示,传输,网络,链路,会话,物理,层7,层

注意事项

本文(第五章[0]软件设计)为本站会员(luoxia****01805)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.