电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第五章[0]软件设计

64页
  • 卖家[上传人]:luoxia****01805
  • 文档编号:75823552
  • 上传时间:2019-02-01
  • 文档格式:PPT
  • 文档大小:5.13MB
  • / 64 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、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. 波兰交战 用户:瑞典国王 需求:建造一

      2、艘巨型战舰,长70m, 载员300人,两层甲板、 64门重炮,以尽快结束战争。 此前从未有人设计过如此复杂的 战舰,荷兰设计师Henrik Hybertsson 穷尽毕生精力,设计完成,并建造下水。 大结局:1628年8月10日,Vasa战舰下 水,在鸣放了几响礼炮之后, 很快沉入水中。,瓦萨战舰的教训,合理切合实际的系统结构是保证系统成功运行的首要 因素。虽然Vasa战舰制造工艺精良,但船体比例严重 失调,体系结构存在致命缺陷; 设计师在无前人设计经验的基础上,既要执行国王的 “功能性”需求,又要考虑“性能”要求(如安全性、可 靠性、造价等)。面对诸多相互冲突的约束条件,做 出了错误的权衡,对一些不可能实现的要求作了妥协。,从建筑设计看软件设计,“设计良好的建筑应该展示出坚固、适用和令人赏心悦目的特点。” 对好的软件设计来说也是如此 坚固:软件应该不含任何 妨碍其功能的缺陷; 适用:软件要符合开发的 目标,满足用户需求; 赏心悦目:使用软件的体验应该是愉快的。,建筑设计,设计=天才+创造力,每个工程师都希望做设计工作,因为这里有 “创造性”客户需求、业务要求和技术限 制都在某个产品或

      3、系统中得到集中的体现。 “设计”是最充分展现工程师个人水平的工作。,为问题域的外部可见行为的规约增添实际的计算机 系统实现所需的细节,包括关于人机交互、任务管 理和数据管理的细节。 Coad/Yourdon,“设计”的本质,设计是你身处两个世界, 技术世界和人类的目标世界, 而你尝试将这两个世界结合在一起。 Mitch Kapor, 软件设计宣言,“设计阶段”是软件工程中形成质量的关键阶段,其 后所有阶段的活动都要依赖于设计的结果。 “编写一段能工作的灵巧的代码是一回事,而设计 能支持某个长久业务的东西则完全是另一回事。” C. Ferguso,结构化的设计,需求规格说明 SRS,设计文档,What do to?,How to do?,软件需求 分析,软件设计,软件编码,图 5-1 软件设计在SE中所处的位置,把软件需求规格说明 转为软件过程性的表示。 解决“怎么做”的问题。,设计=不断的作出决策,解决“How to do”,就需要不断的做出各种“设计决 策” ,在各类需求之间进行“折中”,使得最终设计 性能达到最优。,图 5-2 软件设计的决策,良好的设计的三个特征,设计必须是实现所

      4、有包含在分析模型中的明确需求、 以及客户期望的所有隐含需求;,设计必须提供软件的全貌,从实现的角度去说明功 能、数据、行为等各个方面。,对开发、测试和维护人员来说,设计必须是可读的、可理解的、可操作的指南;,5.1.2 将分析模型转换为设计模型,数,据,流,图,实,体,关,系,图,状态转换图,加,工,控,制,规,规,格,格,说,说,明,明,数,据,对,象,描,述,数据 字典,图 5-3 分析模型转换为设计模型,从工程管理的角度看, 软件设计包括: 概要设计: 详细设计:,5.1.3 软件设计的主要内容,从技术的角度看, 软件设计包括: 体系结构设计 数据结设计 接口设计 算法设计,概要设计,详细设计,数据设计,体系结构设计,过程设计,接口设计,图 54 软件设计的内容,17,5.1.4 软件设计的原则(Davis 1995):,(1) 使用基本的设计概念:抽象、逐步求精、 自顶向下、模块化等.,(2) 设计应追朔到分析模型,(4) 软件设计应尽量模拟问题域的结构,(3) 注重复用技术,(5) 设计应具有一致性、集成性,(7) 设计不是编码,(6) 设计应便于修改,适用于异常条件,(8)

      5、 注重评审,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)结构。,“体系结构

      6、”一词起源于建筑学 如何使用基本的建筑模块构造一座完整的建筑? 包含两个因素: 基本的建筑模块:砖、瓦、灰、沙、石、预制梁、柱、屋面板 建筑模块之间的粘接关系:如何把这些 “砖、瓦、灰、沙、石、预制梁、柱、 屋面板”有机的组合起来形成整体建筑?,5.2.1 什么是“体系结构” (Architecture),1) 计算机硬件系统的“体系结构”,如何将设备组装起来形成完整的计算机硬件系统?,计算机体系结构的风格: 以存储程序原理为基础的冯诺依曼结构 存储系统的层次结构 并行处理机结构 ,包含两个因素: 基本的硬件模块:控制器、运算器、内存储器、 外存储器、输入设备、输出设备 硬件模块之间的连接关系:总线,“体系结构”的共性,共性: 一组基本的构成要素构件 这些要素之间的连接关系连接件 这些要素连接之后形成的拓扑结构物理分布 作用于这些要素或连接关系上的限制条件约束 质量性能,2) “软件体系结构”(Software Architecture),提供了对软件系统的结构、行为和属性的抽象。 反映系统开发中具有重要影响的设计决策,便于 各种人员的交流,据此开发的系统能完成系统既 定的功能和性能需

      7、求。,从宏观层次来考虑组成系统的构件、构件之间的 连接,以及由构件与构件交互形成的拓扑结构 这些要素应该满足一定的限制,遵循一定的设计 规则。 体系结构 = 构件 + 连接件 + 约束 Architecture = Components + Connectors + Constrains,(1) 构件(Component),构件是具有某种功能的可复用的软件结构单元, 表示了系统中主要的计算元素和数据存储。,任何在系统运行中承担一定功能、发挥一定作用 的软件体都可看作是构件。,程序函数、模块 对象、类 文件 相关功能的集合 .,(2) 接口(Interface),构件作为一个封装的实体,只能通过其接口与外 部环境交互; 芯片的管脚 内部结构则被隐藏起来(Black-box); 一个构件至少有一个接口, 一个构件可以提供多重接口: 接不同的管脚,实现不同的功能。 构件接口与构件实现严格分开.,(3) 服务(Service),构件被看作一个“黑盒”(Black Box),其内部具体的实现机制被封装和隐藏起来。 构件的功能以服务(Service)的形式体现出来,并通过接口向外发布,进而产生与其

      8、它构件之间的关联。,(4) 连接件(Connector),连接件(Connector):表示构件之间的交互并实现构 件之间的连接,如: 管道(pipe) 过程调用(procedure call) 事件广播(event broadcast) 客户机-服务器(client-server) 数据库连接(SQL) 连接件也可看作一类特殊的构件,区别在于: 一般构件是软件功能设计和实现的承载体; 连接件是负责完成构件之间信息交换和行为联系 的专用构件。,(5) 连接的协议(Protocol),协议(Protocol)是连接的规约(Specification); 连接的规约是建立在物理层之上的有意义信息形 式的表达规定 对过程调用来说: 对消息传送来说:,参数的个数和类型、参数排 列次序; 消息的格式 目的:使双方能够互相理解对方所发来的信息 的语义。,(6) 连接的种类,从连接目的看: 操作/过程调用; 控制/事件/消息发送; 数据传输; 除了连接机制/协议的实现难易之外,影响连接 实现复杂性的因素之一是“有无连接的返回信息 和返回的时间”,分为: 同步 (Synchronous) 异步 (As

      9、ynchronous),5.2.2 为什么要提出“软件体系结构”,软件系统规模越来越大、越来越复杂: 用户需求变化频繁且多样化; 对软件质量(功能性/非功能性)的要求越来越高; 如何将成百上千个功能组合起来,满足用户质量需求, 变得越来越困难。 此时,整个系统的结构和规格说明显得越来越重要。 很多质量需求主要体现在体系结构中而非功能模块内 部的实现中。 结论:对于大规模的复杂软件系统,总体的系统结 构设计和规格说明比起对计算的算法和数据 结构的选择重要得多。,图 5-5 按父子样式关系组织的构架样式分类简图,独立组件,通信进程,事件系统,隐式调用 显示调用,数据流,以数据为中心,成批顺序流 管道和过滤器,数据仓库 黑板,虚拟机,调用和返回,解释器 基于规则的系统,主程序 和子程序,面向 对象,分层,5.2.3 体系结构风格,1) 主程序-子程序结构,是结构化程序设计 的一种典型风格。 从功能的观点设 计系统,通过逐 步分解和逐步细 化,得到系统体 系结构。,构件: 连接器: 拓扑结构:,图 5-6 主程序-子程序结构,主程序、子程序 调用-返回机制 层次化结构 本质:将大系统分解为若干模块(模块化),主程序 调用这些模块实现完整的系统功能。,(1) 现实世界里邮政系统,2) 层次结构,通信者活动 界面,通信者活动 界面,邮局服务业务,邮局服务业务,邮局转运业务,邮局转运业务,运输部门的(邮件)运输业务,书写信件,粘贴邮票,投递进信箱,收集信件,加盖邮戳,邮件分检,邮件打包,转送运输,部门,选择运输,路径(路由),转送邮局,接收邮件,接收邮件,邮件拆包,邮件投递,邮件分检,信箱取信,阅读邮件,发信者,收信者,图 5-7 邮政系统,37,图 58 网络协议层1,应用,表示,传输,网络,链路,会话,物理,层7,层

      《第五章[0]软件设计》由会员luoxia****01805分享,可在线阅读,更多相关《第五章[0]软件设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.