软件工程第五章结构化设计
- 格式:ppt
- 大小:1.28 MB
- 文档页数:103


龙源期刊网
浅谈软件工程中的结构化设计方法
作者:刘珂 韩瑶 高嵩
来源:《中文信息》2017年第06期
摘 要:软件工程中的结构化设计方法是当前软件工程最成熟,使用最广泛的一种设计方法,将复杂系统分解为若干个子功能模块,模块化软件构件,同时将这些构件进行简单的连接组织,最终实现软件系统控制功能。近年来,软件工程中的结构化设计已迈入新阶段,设计中不仅需要考虑满足系统的功能,还需对系统性能进行优化,领域工程是典型的代表,能极大的提高可设计构件的复制性,减少开发工作量。
关键词:软件工程 结构化设计
中图分类号:TP311 文献标识码:A 文章编号:1003-9082(2017)06-0008-01
在最初的软件开发过程中,用户需求调查、设计时间耗费的时间占整个软件开发的时间比重较高,约70%的软件错误是发生在这个阶段。面向过程的分析与设计,只考虑功能函数的编写,系统由算法以及数据结构、子程序组成,封装对象是函数,一定程度提升了软件的灵活性。但随着构件的出现,系统开始成为构件以及连接件组成,极大的缩短了软件开发过程中,结构设计开始成为软件工程中软件开发的主要方法。
一、软件结构化设计方法概述
结构化设计方法是当前软件工程最成熟,使用最广泛的一种设计方法,基本指导思想是从顶向下进行功能的抽象、分解,逐步求精。软件设计开发的过程中,实际上也是一种需求满足的工程,特别是当前软件与市场需求、机械工程的联系越来越紧密,软件系统功能的结构化趋向也越来越明显,为结构化设计推广创造了条件。结构化设计将复杂系统共分解为若干个子功能模块,模块化软件构件,同时将这些构件进行简单的连接组织,最终实现软件系统控制功能。结构化的方法最简单的实现过程中是树状结构图表述,顶端是程序的主模块,第一层为模块1,2,……,n子模块,以此类推。程序运行时,主模块调动从属模块,直至最低层。接口实现各个模块之间的数据输入输出,实现程序运行过程中的信息交换,从而实现连续、完整的控制功能。结构化的设计方法已基本成熟,主要包括面向数据流图的数据流方法,盒子与箭头为模型元素的IDEF0方法,LCP方法,Jackson方法等。结构方法适合功能比较明显的软件系统,以实现功能需求为立足点,功能明显也是当前许多中小型软件系统的重要特征,这也是结构化设计得到广泛应用的原因。结构化设计实际上将功能相互联系的一种策略,通过描述软件的功能以及功能模块之间的调用关系,将复杂的问题简单化,降低设计的难度。但需注意的是,结构化软件设计难以应对灵活性、可移植性、可扩展性的要求。
软件工程中的结构化设计方法
摘要软件工程中的结构化设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。
关键词软件工程;结构化设计
结构化设计(structured design,SD)方法是一种面向数据流的设计方法,它可以与(structured analysis,SA)方法衔接。SD方法采用结构图(structured chart,SC)来描述程序的结构。
1结构图
1.1结构图的基本成分
结构图的基本成分有模块、调用和数据。
结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。
在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。
1.2附加符号
结构图除了一些基本符号以外,还有一些附加符号,可以表示模块的选择调用或循环调用。
注意,层次图和结构图并不严格表示模块的调用次序。虽然多数人习惯于按调用次序从左到右画模块,但并没有这种规定,出于其他方面的考虑(例如为了减少交叉线),也完全可以不按这种次序画。此外,层次图和结构图并不指明什么时候调用下层模块。通常上层模块中除了调用下层模块的语句之外还有其他语句,究竟是先执行调用下层模块的语句还是先执行其他语句,在图中丝毫没有指明。事实上,层次图和结构图只表明一个模块调用哪些模块,至于模块内还有没有其他成分则完全没有表示。
2信息流的类型
在需求分析阶段,用SA方法产生了数据流图。面向数据流的设计能方便地将数据流图(data flow diagram,DFD)转换成程序结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。DFD的信
息流大体可分为两种类型,一种是变换流,另一种是事务流。
第三章 软件工程基础
经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。
详细重点学习知识点:
1.软件的概念、软件生命周期的概念及各阶段所包含的活动
2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具
3.软件测试的目的、软件测试的4个步骤、
4.软件调试的任务
3.1软件工程基本概念
考点1 软件定义与软件特点
考试链接:
考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。
软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。可见,软件由两部分组成:
(1)机器可执行的程序和数据;
(2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
软件的特点:
(1)软件是逻辑实体,而不是物理实体,具有抽象性;
(2)没有明显的制作过程,可进行大量的复制;
(3)使用期间不存在磨损、老化问题;
(4)软件的开发、运行对计算机系统具有依赖性;
(5)软件复杂性高,成本昂贵;
(6)软件开发涉及诸多社会因素。
根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。
小提示:应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。
考点2 软件工程过程与软件生命周期
考试链接:
考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期 的定义,主要活动阶段及其任务。
1.结构图
1.1结构图的基本成分结构图的基本成分有模块、调用和数据。结构图和层次图基本上是大同小异,主要是用来描绘软件结构的一种图形工具,图中设有很多方框,一个方框就代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)用来表示模块的调用关系。在通常情况下我们会在结构图中用箭头注释一下表示模块在调用过程中信息的来回传递。我们可以根据箭头的β部形状标明某种信息,认定一种形状作为一种信息符号,自己只要按箭头形状就可以区分传递的信息是数据还是控制信息了。比如:β部是空心圆就表示传递的是数据,实心圆就表示传递的是控制信息。
1.2附加符号结构图不仅仅只是一些基本符号,其实还有不少附加符号,它是用来表示模块的选择调用或循环调用的。其实,层次图和结构图对于模块调用次序方面要求的并不严格。再画模块方面很多人习惯按调用次序从左到右的方法画模块,其实又û有规定一定要这样,出于其他方面的考虑(例如为了减少交叉线),我们完全可以不按这种次序画,还有就是在层次图和结构图中并不指明什ô时候调用下层模块。一般情况下上层模块中除了调用下层模块的语句之外还有其他语句,到底是先执行调用下层模块的语句还是先执行其他语句,丝毫不在图中指明。事实上,层次图和结构图往往只表明一个模块用来调用哪些模块,对于一些模块内不含其他成分的根本就不作表示。
2.信息流的类型在需求分析阶段,用SA方法产生了数据流图。面向数据流的设计能方便地将数据流图(data flow diagram,DFD)转换成程序结构图。DFD中从系统的输入数据流到系统的输出数据流的一连串连续变换形成了一条信息流。DFD的信息流大体可分为两种类型,就是中心变换流和事务流。
2.1变换流:信息在沿着输入通·进入系统,同时由外部形式变换成内部形式进入系统的信息,通过变换中心经加工处理,以后再沿着输出通·的变换成外部形式离开系统。当数据流具有了信息流的这种特征时这种信息流就叫做变换流。变换流型的DFD可明显地分为三大部分输入、变换(主加工)、输出。