东北石油大学-软件工程--CHAP04结构化设计_1总体设计程序.ppt

东北石油大学-软件工程--CHAP04结构化设计_1总体设计程序.ppt

  1. 1、本文档共114页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Netscape公司的故事 Netscape公司的倒闭是一个值得深思的故事 最初Illinois大学的NCSA Mosaic小组开发了第一个广泛使用的浏览器。他们创建Netscape公司,在1994年4月到12月之间发行了Netscape1.0,它可以在3个平台上运行,很快就成为了Windows、Unix和Mac上的占有统治地位的浏览器。 Microsoft公司于1994年10月开始开发Internet Explorer1.0,并在1995年绑定在Windows 95上。 Netscape公司的倒闭是一个值得深思的故事 从1995年到1997年,在Netscape公司的快速发展期间,开发者努力工作来产生新的特点,而很少花时间进行设计。 Microsoft公司意识到了需要建立可靠的设计,它使用共享组件重构Office套装,建立了NT操作系统, 并花费了时间来重构IE3.0。拉近了与Netscape的差距。 Netscape的开发在继续,已有120个开发者(从最初的10个)和3百万行代码。 Netscape公司的倒闭是一个值得深思的故事 1997年Netscape公司内部关于模块设计的争论 Netscape用了2个月来重新设计浏览器,但是这还不够长。 最后,Microsoft赢得了浏览器的战争,AOL收购了Netscape。 4.1 总体设计概述 需求分析阶段 弄清用户的需求,解决“做什么”的问题。需求分析阶段得出的DFD图,数据字典DD等。 设计阶段 解决“怎么做”的问题 软件系统设计是开发者之间的分工和合作的基础 设计方案是决定系统质量的主要因素 设计方案可以借鉴成熟的设计经验 设计方案完成后需要经过质量分析和评审 好的设计方案不仅能很好地支持当前需求的实现,而且能减小未来的系统维护成本。 设计阶段 结构化设计(Structured Design,SD)分为总体设计(也称概要设计)和详细设计(也称程序设计)两个阶段。 总体设计阶段:着重解决实现需求的程序模块设计问题。如系统分成若干个模块、确定模块的接口(即模块间相互关系)、模块间传递的信息。 详细设计阶段:确定每个模块内部的具体算法。 总体设计方法 结构化设计(SD)方法:以数据流图为基础构造模块结构; Jackson方法:以数据结构为基础构造模块结构 Parans方法:以信息隐蔽为原则构造模块结构 4.2 总体设计的原则和概念 4.2.1 模块化 4.2.2 抽象和逐步求精 4.2.3 信息隐藏 4.2.4 模块独立 4.2.5 启发式规则 4.2.1 模块化 模块化 (1)模块的定义:模块是相对独立的程序体 是数据说明、可执行语句等程序对象的集合 单独命名的,可以通过名字来访问 例如:类、过程、函数、子程序、宏等 (2)什么是模块化:按照设计原则将系统划分为若干个较小的模块。每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 相互独立但又相互关联 实际上是系统分解和抽象的过程 模块化 (3)为什么要模块化 是从逻辑模型向是实际的计算机物理模型转化的第一步。模块划分好坏影响软件系统性能的优劣。 系统性能的衡量标准 系统效率、系统工作质量、系统可靠性和系统可维护性 可维护性是重要的指标,其他的指标都可以通过可维护性来修正,而模块的划分对于该指标是至关重要的。 模块化 (3)为什么要模块化 目标:提高系统的可维护性; 原则:为使得系统易于修改,要求模块的内部联系尽可能强,模块间的外部联系尽可能弱,尽可能提高模块的相对独立性。 效果:对其中某一个模块作修改时,造成的影响只局限在本模块范围内,而不至于影响整个系统。 模块化 通过模块化降低开发复杂度 模块化 【模块化案例】智能灌溉 总体设计:将系统划分为传感器、灌溉决策和灌溉设备控制三个模块,定义好相互之间的数据和控制接口 传感器模块:接受传感器收集的温度、湿度、土壤等各种数据 灌溉决策:根据种植经验和收集到的数据判断灌溉决策 灌溉设备控制:根据决策控制灌溉设备进行灌溉 模块化 误区:无限制地进行模块划分?如果我们无限制地划分软件,开发它所需的工作量会变得小到可以忽略? 结论:NO。因为开发工作量有很大一部分来自于模块间的接口和集成 除了技术上的接口和集成,还包括人与人之间的沟通 集成和沟通的开销到了一定程度就会成为开发工作量的主要部分 模块化 结论:适度的模块化 模块数增加时,模块间的关系也随之增加,接口和集成的工作量也随之增加 方法:寻找最佳模块化程度平衡点 4.2.2 抽象和逐步求精 抽象和逐步求精 抽象:考虑高层问题时忽略低层细节 逐步求精:不断接近问题的完整解 抽象与逐步求精具有互补性 抽象 控制复杂性的基本策略 抽象过程:从特殊到一般的过程,上层概念是下层概念

文档评论(0)

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

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

1亿VIP精品文档

相关文档