- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章软件设计
第三章 软件设计 学习目标: 熟悉软件设计的基本概念 掌握概要设计和详细设计的内容以及各自的侧重点 掌握软件设计的基本原则 掌握几种常用的结构化设计方法和面向对象的设计方法 熟悉常用的结构化软件设计工具(流程图、N-S图、PAD图) 3.1 软件设计的基本概念 软件设计是软件生命周期中的重要阶段,设计阶段的任务是把软件系统“做什么”的逻辑模型转换为“怎么做”的物理模型。软件设计的优劣在根本上决定了软件系统的质量,重要性表现为以下两方面: 软件设计是开发阶段最重要的步骤,是软件计质量得以保证的关键步骤。 软件设计是将用户要求准确地转化为最终的软件产品的惟一途径 3.1.1 软件概要设计 概要设计:将软件需求转化为数据结构和软件的系统结构。概要设计只是描绘出软件的总体框架,根据功能、性能需求和数据需求导出软件的数据结构和系统结构。 概括地说,概要设计进行数据设计/数据库设计和系统体系结构设计。 概要设计主要完成以下任务: 制定规范; 软件系统结构的总体设计; 数据设计; 概要设计评审。 3.1.2 详细设计 详细设计:对结构进行细化,得到软件的详细的数据结构和算法。对概要设计过程中给出的各种结构成分进行详细的加工,得到在程序细节上非常接近于源程序的软件表示。 概括地说,详细设计就是进行过程设计。 详细设计需要完成的工作是: 确定软件各个组成部分内的算法以及各部分的内部数据组织; 选定某种过程的表达形式来描述各种算法; 用户界面的设计; 编写详细设计文档; 进行详细设计的评审。 3.1.3 软件设计原则 1.抽象与求精 2.模块化和信息隐藏 3.模块独立性 2 模块化合信息隐藏 合理的软件结构应该是分块的结构,即软件应该分解成可单独命名的且可访问的部件,这些部件称为模块。 这种将软件分成具有一定结构的模块的过程称为模块化。 信息隐藏是指模块中所包含的信息(包括数据和过程)对不需要这些信息的其他模块是不可访问的。这样,每一个将来可能的改变都会局部于一个特定的模块,改变该模块的内部过程或数据的设计不会影响到其他模块。 3.2 结构化软件设计方法 结构化软件设计方法主要关注与系统的功能,采用自顶向下、逐步求精的设计过程,以模块为中心解决问题。 结构化设计方法包括以下两种: 面向数据流的设计方法 面向数据结构的设计方法 2.变换型数据流分析 通常在一个大型系统中,可能同时存在变换型数据流和事务性数据流,对于前者,设计人员关键应该区分输入和输出分支,通过变换分析将数据流图映射为变换结构,进而构造目标系统的结构图。其步骤为: 区分变换型数据流中的输入数据、变换中心和输出数据,并在数据流商用虚线表明分界线 分析得到的系统的初始结构图 对系统结构图进行优化 数据流设计示例 以某学生档案管理系统为例,对其进行面向数据流的系统设计。已知系统的数据流图如图1所示,分别作出其系统结构图和优化的系统结构图 3.事务分析 3.事务分析 对于事务性数据,设计人员因该重点区分事务中心和数据接收通路,通过事务分析将数据流图映射为事务结构。事务性数据流的设计的步骤如下: 确定以事务为中心的结构,找出事务中心、接收数据、处理路径三部分 将数据流图转换为初始的系统结构图 分解和细化接受分支和处理分支 3.事务分析 3.2.2 面向数据结构的设计方法 面向数据结构的设计方法就是根据数据结构设计程序处理过程的方法,也即按照输入、输出以及计算机内部存储信息的数据结构进行软件结构设计,从而把对数据结构的描述转换为对软件结构的描述,该设计方法的关键是对目标系统的数据结构的分析。通常有两种方法: Jackson方法(了解) Warnier方法(不做要求) 注意:面向数据结构的设计方法通常在详细设计阶段使用 3.2.2 面向数据结构的设计方法 Jackson方法的三种基本结构: 3.3 结构化软件设计工具 1.流程图—对过程、算法、流程的一种图形表示,它对某个问题的定义、分析或解法进行描述,用定义完善的符号来表示操作、数据、流向等概念。流程图分为数据流程图、程序流程图、系统流程图、程序网络图、系统资源图5种。 2.N-S图—又称为盒图,是一种符合结构化程序设计原则的图形工具,用类似合资的矩形以及矩形之间的嵌套表示语句或语句序列。 3.PAD图—也叫问题分析图,基于结构化程序设计思想,用二维树形结构的图来表示程序的控制流以及逻辑结构 3.3.1 程序流程图 程序流程图的基本符号 3.3.1 程序流程图 程序流程图的基本结构 程序流程图的基本结构 3.3.2 N-S图 N-S图的基本符号 3.3.2 N-S图 说明 :N-S图中没有箭头,所以它所表示的控制流程不能够随便转移 N-S图的主要特点是:
文档评论(0)