第4章 概要设计 (ok).pptx

  1. 1、本文档共125页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 概要设计 (ok)

第4章概要设计软件工程“设计”随处可见瑞典的瓦萨战舰时间:1620年代背景:瑞典vs.波兰交战用户:瑞典国王需求:建造一艘巨型战舰,长70m,载员300人,两层甲板、64门重炮,以尽快结束战争此前从未有人设计过如此复杂的战舰,荷兰设计师HenrikHybertsson穷尽毕生精力,设计完成,并建造下水大结局:1628年8月10日,Vasa战舰下水,在鸣放了几响礼炮之后,很快沉入水中设计的目标:质量合理切合实际的系统结构是保证系统成功运行的首要因素。虽然Vasa战舰制造工艺精良,但船体比例严重失调,体系结构存在致命缺陷;设计师在无前人设计经验的基础上,既要执行国王的“功能性”需求,又要考虑“性能”要求(如安全性、可靠性、造价等)。面对诸多相互冲突的约束条件,做出了错误的权衡,对一些不可能实现的要求作了妥协。瓦萨战舰的教训设计的目标:质量从建筑设计看软件设计“设计良好的建筑应该展示出坚固、适用和令人赏心悦目的特点。”对好的软件设计来说也是如此坚固:软件应该不含任何妨碍其功能的缺陷;适用:软件要符合开发的目标,满足用户需求;赏心悦目:使用软件的体验应该是愉快的。“设计”的本质设计是你身处两个世界,技术世界和人类的目标世界,而你尝试将这两个世界结合在一起。—MitchKapor,《软件设计宣言》“设计阶段”是软件工程中形成质量的关键阶段,其后所有阶段的活动都要依赖于设计的结果。编写一段能工作的灵巧的代码是一回事,而设计能支持某个长久业务的东西则完全是另一回事。软件设计在SE中所处的位置需求规格说明SRS设计文档Whatdoto?Howtodo?软件需求分析软件设计软件编码良好的设计的三个特征设计必须是实现所有包含在分析模型中的明确需求、以及客户期望的所有隐含需求;开发、测试和维护人员来说,设计必须是可读的、可理解的、可操作的指南;设计必须提供软件的全貌,从实现的角度去说明功能、数据、行为等各个方面。工程管理:概要设计详细设计技术:体系结构设计模块设计人机界面设计数据与算法设计软件设计的主要内容提纲4.1设计过程推荐最佳方案设想供选择的方案制定测试计划选取合理的方案审查和复审书写文档功能分解设计数据库设计软件结构(1)设想供选择的方案从逻辑模型出发,对比分析不同的物理实现方案从数据流图出发,设想把数据流图中的处理分组的各种可能的方法,抛弃在技术上行不通的分组方法。对应的物理实现硬件方案对应的物理实现硬件方案(2)选取合理的方案在判断哪些方案合理时应该考虑在问题定义和可行性研究阶段确定的工程规模和目标,有时可能还需要进一步征求用户的意见。对每个合理的方案分析员都应该准备下列4份资料:(1)系统流程图;(2)组成系统的物理元素清单;(3)成本/效益分析;(4)实现这个系统的进度计划。(3)推荐最佳方案分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。方案详细计划结构设计(4)功能分解为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂,必须把它的功能适当地分解成一系列比较简单的功能。一般说来,经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。功能分解导致数据流图的进一步细化,同时还应该用IPO图或其他适当的工具简要描述细化后每个处理的算法。(5)设计软件结构通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统,顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。软件结构(即由模块组成的层次系统)可以用层次图或结构图来描绘。如果数据流图已经细化到适当的层次,则可以直接从数据流图映射出软件结构。(6)设计数据库对于需要使用数据库的那些应用系统,软件工程师应该在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据库。(7)制定测试计划在软件开发的早期阶段考虑测试问题,能促使软件设计人员在设计时注意提高软件的可测试性。(8)书写文档系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果等(9)审查和复审最后应该对总体设计的结果进行严格的技术审查,在技术审查通过之后再由使用部门的负责人从管理角度进行复审。提纲4.2软件体系结构介绍杨叔子院士曾这样指点其弟子:文学中有科学,音乐中有数学,漫画中有现代数学的拓扑学。漫画家可以“几笔”就把一个人画出来,不管怎么美化或丑化,就是活像。为什么?因为那“几笔”不是别的,而是拓扑学中的特征不变量,这是事物最本质的东西。软件体系结构是软件系统中最本质的东西4.2软件体系结构介绍◎DewaynePerry和AlexanderWolf软件体系结构是具有一定形式的结构化元素,即

文档评论(0)

ccx55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档