软件工程第9章-结构化设计.pptx

上传人(卖家):三亚风情 文档编号:3390048 上传时间:2022-08-26 格式:PPTX 页数:28 大小:619.06KB
下载 相关 举报
软件工程第9章-结构化设计.pptx_第1页
第1页 / 共28页
软件工程第9章-结构化设计.pptx_第2页
第2页 / 共28页
软件工程第9章-结构化设计.pptx_第3页
第3页 / 共28页
软件工程第9章-结构化设计.pptx_第4页
第4页 / 共28页
软件工程第9章-结构化设计.pptx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、第9章 结构化设计本章目标 p了解结构化设计与结构化分析的关系。p掌握面向数据流的软件设计方法。p熟悉面向数据结构的设计方法。p熟悉接口设计和数据设计。p掌握过程设计的工具和方法。p掌握利用Visio绘制结构图的方法。9.1 结构化软件设计概述 结构化软件设计的任务是从软件需求规格说明书出发,设计软件系统的整体结构、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案,解决“怎么做”的问题。在结构化设计中,概要设计(总体设计)阶段将软件需求转化为数据结构和软件的系统结构。概要设计阶段要完成体系结构设计、数据设计及接口设计。详细设计阶段要完成过程设计,因此详细设计一般也称为过程设计,

2、它详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。在软件设计期间我们所做出的决策,将最终决定软件开发能否成功,更重要的是,这些设计决策将决定软件维护的难易程度。软件设计之所以如此重要,是因为设计是软件开发过程中决定软件产品质量的关键阶段。9.2 结构化设计与结构化分析的关系 要进行结构化的设计,必须依据结构化分析的结果,结构化设计与结构化分析的关系如图所示。图的左边是用结构化分析方法所建立的模型,图的右边是用结构化设计方法所建立的设计模型。9.3体系结构设计 9.3.1 表示软件结构的图形工具1 层次图和HIPO图通常使用层次图描绘软件的层次结构。在层次图中一个矩形框代表一个模

3、块,框间的连线表示调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。每个方框可以带编号,像这样带编号的层次图称为HIPO(Hierarchy Input-Process-Output)图。如图所示。9.3体系结构设计 2结构图结构图是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。9.3体系结

4、构设计 9.3.2面向数据流的设计方法面向数据流的设计方法是常用的结构化设计方法,多在概要设计阶段使用。它主要是指依据一定的映射规则,将需求分析阶段得到的数据描述从系统的输入端到输出端所经历的一系列变换或处理的数据流图转换为目标系统的结构描述。在数据流图中,数据流分为变换型数据流和事务型数据流两种。所谓变换,是指把输入的数据处理后转变成另外的输出数据。信息沿输入路径流入系统,在系统中经过加工处理后又离开系统,当信息流具备这种特征时就是变换流。所谓事务,是指非数据变换的处理,它将输入的数据流分散成许多数据流,形成若干个加工,然后选择其中一个路径来执行。9.3体系结构设计 变换型数据流事务型数据流

5、9.3体系结构设计 9.3.3面向数据结构的设计方法顾名思义,面向数据结构的设计方法就是根据数据结构设计程序处理过程的方法,具体地说,面向数据结构的设计方法按输入、输出以及计算机内部存储信息的数据结构进行软件结构设计,从而把对数据结构的描述转换为对软件结构的描述。使用面向数据结构的设计方法时,分析目标系统的数据结构是关键。面向数据结构的设计方法通常在详细设计阶段使用。比较流行的面向数据结构的设计方法包括Jackson方法和Warnier方法。在这里,主要介绍Jackson方法。9.3体系结构设计 Jackson方法把数据结构分为3种基本类型:顺序型结构、选择型结构和循环型结构。在顺序型结构中,

6、数据由一个或多个元素组成,每个元素按照确定的次序出现一次。在顺序型图示中,数据A由B、C和D3个元素顺序组成。在选择型结构中,数据包含两个或多个元素,每次使用该数据时,按照一定的条件从罗列的多个数据元素中选择一个。在选择型图示中,数据A根据条件从B或C或D中选择一个,元素右上方的符号“”表示从中选择一个。在循环型结构中,数据根据使用时的条件由一个数据元素出现零次或多次构成。在循环型图示中,数据A根据条件由元素B出现零次或多次组成。元素B后加符号“*”表示重复。9.4 接口设计 9.4.1 接口设计概述 软件系统结合业务、功能、部署等等因素将软件系统逐步分解到模块,那么模块与模块之间就必须根据各

7、模块的功能定义对应的接口。概要设计(总体设计)中的接口设计主要用于子系统/模块之间或内部系统与外部系统进行各种交互。接口设计的内容应包括功能描述、接口的输入输出定义、错误处理等。软件系统接口的种类以及规范很多,可以有API、服务接口、文件、数据库等等,所以设计的方法也有很大的差异。但是总体来说接口设计的内容应包括通讯方法、协议、接口调用方法、功能内容、输入输出参数、错误/例外机制等。从成果上来看,接口一览表以及详细设计资料是必须的资料。9.4 接口设计 接口设计一般包括3个方面:(1)用户接口-用来说明将向用户提供的命令和它们的语法结构以及软件回答信息(2)外部接口-用来说明本系统同外界的所有

8、接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系(3)内部接口-用来说明本系统之内的各个系统元素之间的接口的安排。9.4 接口设计 9.4.2界面设计 界面设计是接口设计中的重要组成部分。用户界面的设计要求在研究技术问题的同时对人加以研究。Theo Mandel在其关于界面设计的著作中提出了3条“黄金原则”。1)置用户于控制之下2)减少用户的记忆负担3)保持界面一致 这些黄金原则实际上构成了指导用户界面设计活动的基本原则。9.4 接口设计 界面设计是一个迭代的过程,其核心活动包括:1)创建系统功能的外部模型;2)确定为完成此系统功能人和计算机应分别完成的任务;3)考虑界面设

9、计中的典型问题;4)借助CASE工具构造界面原型;5)实现设计模型;6)评估界面质量。在界面的设计过程中先后涉及4个模型:1)由软件工程师创建的设计模型(design model);2)由人机工程师(或软件工程师)创建的用户模型(user model);3)终端用户对未来系统的假想(system perception或users model);4)系统实现后得到的系统映象(system image)。9.4 接口设计 在界面设计中,应该考虑4个问题。1)系统响应时间:指当用户执行了某个控制动作后(如,点击鼠标器等),系统做出反应的时间(指输出信息或执行对应的动作)。系统响应时间过长、不同命令在

10、响应时间上的差别过于悬殊,用户将难以接受。2)用户求助机制:用户都希望得到联机帮助,联机帮助系统有两类,集成式和叠加式,此外,还要考虑诸如帮助范围(仅考虑部分还是全部功能)、用户求助的途径、帮助信息的显示、用户如何返回正常交互工作及帮助信息本身如何组织等一系列问题。3)出错信息:应选用用户明了、含义准确的术语描述,同时还应尽可能提供一些有关错误恢复的建议。此外,显示出错信息时,若辅以听觉(如铃声)、视觉(专用颜色)刺激,则效果更佳。4)命令方式:键盘命令曾经一度是用户与软件系统之间最通用的交互方式,随着面向窗口的点选界面的出现,键盘命令虽不再是唯一的交互形式,但许多有经验的熟练的软件人员仍喜爱

11、这一方式,更多的情形是菜单与键盘命令并存,供用户自由选用。9.5 数据设计 数据设计就是将需求分析阶段定义的数据对象(E-R图、数据字典)转换为设计阶段的数据结构和数据库,包括两个方面。1)程序级的数据结构设计:采用(伪)代码的方式定义数据结构(数据的组成、类型、缺省值等信息);2)应用级的数据库设计:采用物理级的E-R图表示。9.5 数据设计 数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。一般,数据库的设计过程大致可分数据库设计为5个步骤,如下所示。1)需求分析;调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们

12、在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。2)概念设计;对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中信息的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。9.5 数据设计 3)逻辑设计;主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据

13、处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。4)物理设计;根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。5)验证设计;在上述设计的基础上,收集数据并具体建立一个数据库,运行一些典型的应用任务来验证数据库设计的正确性和合理性。一般,一个大型数据库的设计过程往往需要经过多次循环反复。当设计的某步发现问题时,可能就需要返回到前面去进行修改。因此,在做上述数据库设计时就应

14、考虑到今后修改设计的可能性和方便性。9.6 过程设计 9.6.1程序流程图流程图是对过程、算法、流程的一种图形表示,它对某个问题的定义、分析或解法进行描述,用定义完善的符号来表示操作、数据、流向等概念。流程图分为数据流程图、程序流程图、系统流程图、程序网络图和系统资源图5种。这里主要介绍程序流程图。程序流程图也称为程序框图,是一种比较直观、形象地描述过程的控制流程的图形工具。它包含5种基本的控制结构:顺序型、选择型、先判定型循环(WHILE-DO)、后判定型循环(DO-WHILE)和多分支选择型。9.6 过程设计 流程图的基本符号流程图的控制结构9.6 过程设计 程序流程图的主要优点是:采用简

15、单规范的符号,画法简单 结构清晰,逻辑性强 便于描述,容易理解程序流程图的主要缺点是:不利于逐步求精的设计 图中可用箭头随意地对控制进行转移,与结构化程序设计精神相悖 不易于表示系统中所含的数据结构 当目标系统比较复杂时,流程图会变得很繁杂、不清晰9.6 过程设计 9.6.2N-S图N-S图是由Nassi和Shneiderman提出的,又被称为盒图,是一种符合结构化程序设计原则的图形工具。N-S图的基本符号如图所示。9.6 过程设计 N-S图用类似盒子的矩形以及矩形之间的嵌套来表示语句或语句序列。N-S图内部没有箭头,因此,它所表示的控制流程不能随便进行转移。N-S图的主要特点可以归纳为:不允

16、许随意的控制转移,有利于严格的结构化程序设计;可以很方便地确定一个特定控制结构的作用域,以及局部数据和全局数据的作用域;可以很方便地表示嵌套关系以及模块之间的层次关系。用N-S图表示算法,思路清晰,结构良好,容易设计,因而可有效地提高程序设计的质量和效率。9.6 过程设计 9.6.3PAD图PAD图(Problem Analysis Diagram)也叫问题分析图,它是由日本日立公司于1973年发明的。PAD图基于结构化程序设计思想,用二维树形结构的图来表示程序的控制流及逻辑结构。在PAD图中,一条竖线代表一个层次,最左边的竖线是第一层控制结构,随着层次的加深,图形不断地向右展开。PAD图的基

17、本控制符号如图所示。9.6 过程设计 PAD图为常用的高级程序设计语言的各种控制语句提供了对应的图形符号,它的主要特点是:PAD图表示的程序结构的执行顺序是自最左边的竖线的上端开始,自上而下,自左向右;用PAD图表示的程序片断结构清晰、层次分明;支持自顶向下、逐步求精的设计方法;只能用于结构化的程序设计;PAD图不仅可以表示程序逻辑,还能表示数据结构。9.6 过程设计 9.6.4 结构化语言结构化语言也称为程序设计语言(Program Design Language,PDL),也称为伪代码,是一个笼统的名称,现在有许多种不同的程序设计语言在使用。它是用正文形式表示数据和处理过程的设计工具。PD

18、L应该具有下述特点:关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点。为了使结构清晰和可读性好,通常在所有可能嵌套使用的控制结构的头和尾都有关键字,如if.fi(或endif)等。自然语言的自由语法,它描述处理特点。数据说明的手段。应该既包括简单的数据结构(例如纯量和数组),又包括复杂的数据结构(如链表或层次的数据结构)。模块定义和调用的技术,应该提供各种接口描述模式。9.6 过程设计 PDL作为一种设计工具有如下一些优点 可以作为注释直接插在源程序中间。这样做能促使维护人员在修改程序代码的同时也相应地修改PDL注释,因此,有助于保持文档和程序的一致性,提高了文档的质量。可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作。已经有自动处理程序存在,而且可以自动由PDL生成程序代码。PDL的缺点是不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。下面的例子使用PDL语言描述了在数组A(1)A(10)中找最大数的算法。N=1WHILE N=10 DOIF A(N)=A(N+1)MAX=A(N+1);ELSE MAX=A(N)ENDIF;N=N+1;ENDWHILE;谢谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件工程第9章-结构化设计.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|