软件工程导论软件设计-总体设计.ppt

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

总体设计;第四章 总体设计;4.0 软件设计概述;从工程管理的角度看来,软件设计可划分为概要设计和详细设计两个阶段。 首先进行概要设计,将需求转化为软件系统结构和数据结构,其基本目的就是回答 “概括地说,系统应该如何实现” 这个问题。 然后进行详细设计(过程设计),完成对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 ;软件结构设计 数据设计 过程(算法)设计 ;软件结构设计是确定软件系统各主要部件之间的关系。 数据设计是把信息描述转换为实现软件系统所要求的数据结构。 过程(算法)设计是把结构部件转换成软件系统的过程性描述。 编码是根据这种过程性描述编制代码。 然后把生成的程序代码交由测试人员测试,最终得到完整有效的软件产品。; 4.1 总体设计的任务;4.2 总体设计的过程; 1.设想供选择的方案 在数据流图的基础上,一个边界一个边界设想并列出供选择的方案。通常,选取的这些方案中至少应包括低成本、中成本和高成本的三种方案类型; 对每个合理方案要提供以下几方面资料: (1)系统流程图; (2)数据字典; (3)成本/效益分析; (4)实现这个系统的进度计划。;实例:假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。画出数据流图。;定货系统的基本系统模型;定货系统的功能级数据流图;把处理事务的功能进一步分解后的数据流图;当用数据流图辅助物理系统的设计时,以图中不同处理的定时要求为指南,能够在数据流图上画出许多组自动化边界,每组自动化边界可能意味着一个不同的物理系统,因此可以根据系统的逻辑模型考虑系统的物理实现。;这种划分自动化边界的方法暗示以批量方式更新库存清单;这种划分自动化边界的方法建议以联机方式更新库存清单; 2.选取合理的方案 从上一步得到的一系列供选择的方案中选取若干个合理的方案,通常至少选取低成本、中等成本和高成本的三种方案; 根据系统分析确定的目标,来判断哪些方案是合理的; 3.推荐最佳方案 综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并为最佳方案制定详细的实现计划。;4.功能分解 为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。 对程序(特别是复杂的大型程序)的设计,通常分为两个阶段完成: 结构设计。结构设计是总体设计阶段的任务,主要是确定程序由哪些模块组成,以及这些模块之间的关系; 过程设计。过程设计是详细设计阶段的任务,主要是确定每个模块的处理过程。;5.设计软件结构 软件结构反映系统中模块的相互调用关系:顶层模块调用它的下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能; 软件结构通过层次图或结构图(后面4.5节介绍)来描绘,也可以直接从数据流图映射出软件结构(后面4.6节介绍)。;同一个问题的各种软件结构 ;6.设计数据库 数据库的应用越来越广泛,目前大多数的系统都要用到数据库技术。 数据库设计是一项专门的技术,包括模式设计、子模式设计、完整性和安全性设计和优化处理等。 ;4.2 总体设计的过程;4.3 软件设计原理;1.理想模块 理想模块的特点: 每个理想模块只解决一个问题; 每个理想模块的功能都应该明确,使人容易理解; 理想模块之间的联结关系简单,具有独立性; 由理想模块构成的系统,容易使人理解,易于编程,易于测试,易于修改和维护; 对用户来说,其感兴趣是模块的功能,而不必去理解模块内部的结构和原理。; ; 3.采用模块化原理的优点: 可以使软件结构清晰,容易设计、容易阅读和理解、容易测试和调试; 提高软件的可靠性; 有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。;软件系统进行模块设计时,可有不同的抽象层次; 在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法; 在较低的抽象层次上,则采用过程化的方法,把面向问题的术语和面向实现的术语结合起来叙述问题的解法; 在最低的抽象层次上,用可直接实现的方式叙述问题的解法。; 1.过程的抽象 在软件工程中,从系统定义到实现,每进展一步都可以看做是对软件解决方法的抽象化过程的一次细化; 软件需求分析阶段,用“问题所处环境的为大家所熟悉的术语”来描述软件的解决方

文档评论(0)

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

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

1亿VIP精品文档

相关文档