软件工程4ppt课件.ppt

上传人:本田雅阁 文档编号:3301843 上传时间:2019-08-09 格式:PPT 页数:94 大小:897.55KB
返回 下载 相关 举报
软件工程4ppt课件.ppt_第1页
第1页 / 共94页
软件工程4ppt课件.ppt_第2页
第2页 / 共94页
软件工程4ppt课件.ppt_第3页
第3页 / 共94页
软件工程4ppt课件.ppt_第4页
第4页 / 共94页
软件工程4ppt课件.ppt_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《软件工程4ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程4ppt课件.ppt(94页珍藏版)》请在三一文库上搜索。

1、软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 第4章 结构化设计 面向数据流的设计方法 4.1 软件设计概述 4.2 软件设计的原理 4.3 模块独立性 4.4 表示软件结构的工具 4.5 软件结构设计中的启发规则 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 4.6 面向数据流的设计方法 例3:汽车仪表 4.7 人机界面设计 4.8 过程设计(详细设计) 4.9 面向数据结构的设计方法 第4章 结构化设计 面向数据流的设计方法 软件工程概论教程软件工程概论教程 江苏工业

2、学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 1软件设计分为概要设计和详细设计两个阶段 (1)概要设计: 将软件需求转化为软件结构(程序结构、接口)和 数据结构。 通过仔细分析软件需求规格说明,确定组成系统的 模块及各模块之间的关系,设计出完成预定功能的 模块结构(软件结构),并建立接口。 (2)详细设计: 详细地设计每个模块,即确定完成每个模块功能所需 要的算法和数据结构。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 2软件设计与分析模型的关系 (图4.1) 软件工程概论教程软件工程概论教程 江苏工业学院信息

3、科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (1)数据设计:将分析阶段的数据模型(E-R图、数据字 典)转变成实现软件所需要的数据结构。 (2)体系结构设计:将分析阶段的功能模型(DFD)转变 成软件的模块框架。 结构化分析结果为结构化设计提供了最基本的输入信息 (3)接口设计:根据分析阶段的功能模型(DFD),描述 软件内部、软件与协作系统之间、软件与用户之间的 通信方式。 (4)过程设计(详细设计):根据数据流图中每个处理的 要求及分析阶段的行为模型(状态转换图)设计每个模 块的实现过程 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工

4、程学院 卢卢 莹莹 4.2.1 模块化 4.2.2 抽象和逐步求精 4.2.3 信息隐藏 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (1)模块:由边界元素限定的程序单元。 模块是构成程序的基本构件,是指用一个名字可以 调用的一段程序语句,可以将模块理解成类似“子 程序(函数)”的概念。 (2)模块化的含义:将程序划分成独立命名且可独立访问 的若干模块,每个模块完成一个子功能;将模块集成 起来构成一个整体,完成指定的系统功能。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹

5、莹 (3)模块化的依据: 把复杂的问题分解成许多容易解决的小问题时,原 来的问题也就容易解决了。 设函数 C(x) 表示问题x的复杂程度,函数 E(x) 表示解决问题x需要 的工作量(时间)。 对于两个问题P1和P2: 如果: C(P1) C(P2) 则:E(P1) E(P2) 根据经验规律: C(P1 + P2) C(P1) + C(P2) E(P1 + P2) E(P1) + E(P2) 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (4)合理划分模块,可使软件开发成本达到最小 当模块数目增加时每个模块的规模将减小,开发单个模块

6、需要的成本 也减少了;但随着模块数目增加,设计模块间接口所需要的工作量也 将增加。 根据以上两个因素,得出每个软件都相应地有一个最适当的模块数目 M,使得系统的开发成本最小。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 模块化是对软件的一次划分过程。该划分过程从需求分析软件的一次划分过程。该划分过程从需求分析 阶段确立的目标系统的功能模型出发,对整个软件问题进阶段确立的目标系统的功能模型出发,对整个软件问题进 行分割,使软件问题中的每个部分用一个或几个软件成份行分割,使软件问题中的每个部分用一个或几个软件成份 加以解决。加以解决。

7、 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (1)抽象:抽象是抽出事物的本质特性而暂时不考虑其 细节的思维方式。 处理复杂系统的有效的方法:分层次构造和分析。 (对于一个复杂的动态系统,首先用一些高级的抽象概 念构造和理解,这些高级概念又可以用一些较低级的 概念构造和理解,直至构造出最低层次的具体元 素) 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 软件工程过程的每一步都是对软件解法的抽象层次的 一次精化: 在可行性研究阶段,软件作为系统的一个完整部件; 在需求分析

8、期间,软件解法是使用在问题环境内熟悉 的方式描述的; 当由总体设计向详细设计过渡时,抽象的程度也就随 之减少了; 最后,当源程序写出来以后,也就达到了抽象的最低层 。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (2)逐步求精: 从一个高层抽象的功能定义开始,逐步进行功能和信息 的细化,逐步实现越来越多的细节,直至用某种程序设 计语言实现此功能。 可以把逐步求精定义为: 为了能集中精力解决主要问题而尽量推迟对问题细节 的考虑 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹

9、 人类的认知过程遵守Miller法则: 一个人在任何时候都只能把注意力集中在(72)个 知识块上。 逐步求精技术的作用: 把精力集中在与当前开发阶段最相关的那些方面上, 而忽略那些对整体解决方案来说是必要的、然而目 前还不需要考虑的细节,这些细节留到以后再考虑。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (3)抽象与逐步求精是互补的概念: 抽象使得设计者能够集中精力于当前主要的过程和数 据,同时却忽略低层细节。 求精则帮助设计者在设计过程中逐步揭示出低层细节。 可以把抽象看作是一种通过忽略多余的细节同时强调 有关的细节,而实现逐

10、步求精的方法。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 信息隐藏: 一个模块内包含的信息对于不需要这些信息的模块来说, 是不能访问的。 “隐藏”意味着有效的模块化可以通过定义一组独立的模块来实现, 这些模块彼此之间只交换那些为了完成软件功能而必须交换的信息。 “隐藏”定义并施加了对模块内部过程细节和模块使用的局部数据结构 的访问限制。 信息隐藏原理给出了应用模块化分解软件的原则。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 模块独立性含义:软件结构中的每个模块完成

11、一个相对独 立的特定子功能,而和其它模块的接口是简单的。 模块独立性的度量标准: 模块之间的耦合尽可能弱;每个模块的内聚尽可能强。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 4.3.1 耦合 4.3.2 内聚 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 1.耦合表示一个软件结构内不同模块之间的互连程度。 2.耦合的强弱取决于模块间接口的复杂程度(调用方式、 接口信息性质、通过接口的数据量) 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院

12、信息科学与工程学院 卢卢 莹莹 3. 模块之间的耦合强度由弱到强依次如下: (1)数据耦合:模块间通过参数交换数据。 (2)控制耦合:模块间通过参数交换控制信息。 可通过模块分解消除控制耦合,用数据耦合取 代之。 控制耦合实质是在单一接口上选择多功能模块 中的某项功能。因此,对被控制模块的任何修 改,都会影响控制模块。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (3)特征耦合: 主调模块将整个数据结构作为参数传递,而被调模块 只需要其中的一部分数据元素。 在特征耦合中,被调用的模块处理了的数据多于它 确实需要的数据,这将导致对数

13、据的访问失去控制。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (4)公共环境耦合: 一组模块通过一个公共数据环境相互作用。 公共环境可以是全程变量、共享的通信区、内存的公 共覆盖区、任何存储介质上的文件和物理设备等 分为松散的公共环境耦合和紧密的公共环境耦合两种 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (5)内容耦合: 一个模块访问另一个模块的内部数据 一个模块不通过正常入口转到另一模块的内部。 两个模块有一部分程序代码重叠。 一个模块有多个入口。 软件工程概论

14、教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 耦合的强弱: 弱 强 数据耦合控制耦合特征耦合公共环境耦合内容耦合 耦合是影响软件复杂程度的一个重要因素。应该采取下述 设计原则: 尽量使用数据耦合,少用控制耦合和特征耦合,限制公共 环境耦合的范围,完全不用内容耦合。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 1.内聚标志着一个模块内各个元素彼此结合的紧密程度。 它是信息隐蔽和局部化概念的自然扩展。 理想内聚的模块只做一件事情。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学

15、与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 2.模块内各元素之间的内聚强度由弱到强依次如下: (1)偶然内聚:模块内各元素之间关系松散 模块没有明确功能或模块包括彼此无关的一组功能 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (2)逻辑内聚:一个模块内的各功能在逻辑上相同或相似 这种模块把几种相关的功能组合在一起,每次调用时,由传送给模 块的判定参数来确定该模块应执行哪一种功能。当调用逻辑内聚模 块时需要进行控制参数的传递,增加了模块间的耦合程度。而将未 用的部分也调入内存,降低了系统的效率。 例如:一个模块可生 成、打

16、印多种报表; 多种功能一个界面, 靠传递控制参数分别 调用不同功能。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (3)时间内聚:一个模块内各功能须在同一时段内完成 模块内各个功能的执行与时间有关,通常要求所有 功能必须在同一时间段内执行。一般情形下,时间 内聚模块的各功能可以以任意的顺序执行,所以它 的内部逻辑简单、存在的开关(或判定)转移较少 例如:初始化模块完成各种初始化工作。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (4)过程内聚: 模块内各个部分彼此相关

17、,必须按特定的次序执行。 通常过程内聚模块仅包括完整功能的一部分,所以 它的内聚程度仍然较低。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (5)通信内聚:模块内各功能使用同一个输入或产生同 一个输出 通信内聚模块中包括了若干独立的功能。 通信内聚模块的缺点是它容易产生重复的联结或重复的功能。因 为各成分执行的次序可以是任意的,有的模块调用它时,可能只 需执行其中的部分动作,另一部分则为多余联结。而且维护起来 也不方便。 例如:一个模块完成对同一文件的输入、修改、删除操作 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工

18、程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (6)顺序内聚: 模块内各处理元素与同一个功能密切相关,且必须 顺序执行,即前一个处理动作产生的输出数据是下 一个处理动作的输入数据。 (7)功能内聚: 模块内各部分属于一个整体、为完成一项单一功能而协 同工作、不可分割。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 内聚的强弱: 弱 强 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚 模块的内聚在系统的模块化设计中是一个关键的因素。 软件设计中,应力求做到高内聚,提高模块独立性。 软件工程概论教程软件工程概论教程 江苏工

19、业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (1)层次图( Hierarchy 图): 表示了模块和模块间的调用关系 (图4.4,图4.5) 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (2)HIPO图(Hierarchy plus Input,Process,Output): 用层次图表示模块和模块间调用关系; 用IPO图表示各个模块的处理过程。 IPO:输入、处理、输出 (图4.6, 图4.7) 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹

20、(3)结构图: 结构图作用: 表示模块及模块间的调用关系; 表示模块间的信息传递 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 M循环调用A、B、C : 判定为真时调用A、为 假时调用B 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (1)改进软件结构提高模块独立性: 通过分解或合并模块,降低耦合、提高内聚。 (2)每个模块的规模适中: 过大的模块往往是由于分解不充分、会降低独立性。 过小的模块开销大于有效操作,而且模块数目过多将 使系统接口复杂。 (3)深度、宽度、扇出

21、和扇入要适当 (图示) 设计得很好的软件结构通常顶层模块扇出大、中层模块扇出 较小,底层模块扇入大(底层一般是公共的实用模块) 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (4)模块的作用域应在控制域之内 模块的作用域: 受该模块内一个判定影响 的所有模块集合 模块的控制域: 模块本身及其所有从属模块。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (5)力争降低模块接口的复杂程度 (6)设计单入口单出口的模块 (7)模块功能应该可以预测 软件工程概论教程软件工程概论教

22、程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 程序的模块结构表明了程序各个部件(模块)的组织情况, 是软件的过程表示。 可能出现的软件结构: 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 1.模块的扇出:模块直接调用的子模块数目 扇出过大意味着模块过分复杂,需要 控制和协调过多的下级模块,应该适当 增加中间层次的控制模块。 C L Q N PR T S 2.模块的扇入: 直接调用该模块的上层模块数目 扇入越大则共享该模块的上级模块数目 越多,这是有好处的。 3.结构图的深度:模块结构图的层次数 4.结

23、构图的宽度:模块结构图中同一层模块数目的最大值 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 深度、宽度、扇出和扇入 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 4.6.1 设计步骤 4.6.2 变换分析设计方法(步骤) 4.6.3 事务分析设计方法(步骤) 4.6.4 软件优化原则 将数据流图映射成软件结构 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (1)根据数据流图决定问题类型 (2)根据问题类型,进

24、行变换分析或事务分析, 导出系统结构图。 (3)改进系统结构图。 面向数据流的设计方法-设计步骤 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 面 向 数 据 流 的 设 计 步 骤 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 变换型问题数据流图的构成: 信息沿输入通路进入系统、同时由外部形式(物理输入) 变换成内部形式(逻辑输入);进入系统的信息通过变换 中心,经加工处理以后的结果(逻辑输出)再沿输出通路 变换成外部形式(物理输出)离开软件系统。 软件工程概论教程软件

25、工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 事务型问题数据流图的构成: 事务中心“T”的任务: 接受事务(请求); 分析事务类型、确定其对应哪一条处理路径。 数据流“事务”沿输入 通路到达处理“T”, 这个处理根据事务的类 型在若干个活动通路中 选出一个来执行。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 变换分析设计步骤 (1)分析具有变换特征的数据流图,确定输入流和 输出流的边界、孤立出变换中心 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工

26、程学院 卢卢 莹莹 变换分析设计步骤 (2) 完成一级分解,设计软件结构的顶层和第二层 顶层模块Cm :代表系统 第二层模块: 输入信息处理模块Ca :协调对所有输入数据的接收 变换中心控制模块Ct :管理对内部形式的数据的所有 操作 输出信息处理控制模块Ce :协调输出信息的产生过程 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 变换分析设计: 确定输入 流和输出 流的边界 ,孤立出 变换中心 完成“一 级分解”, 设计软件 结构的顶 层和第二 层 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科

27、学与工程学院 卢卢 莹莹 变换分析设计步骤 (3)完成二级分解:把数据流图中的每个处理映射成软件 结构中一个适当的模块 在数据流图上,沿变换中心的输入边界开始向外移动,将 输入通路中的每个处理映射成Ca模块下的一个直接或间接 低层模块。 映射过程中,注意保持数据流的一致。 在数据流图上,沿变换中心的输出边界开始向外移动,将 输出通路中的每个处理映射成Ce模块下的一个直接或间接 低层模块。 将变换中心内的每个处理映射成Ct模块下的一个直接或间 接模块。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 变换分析设计: 二级分解(局部):将

28、输入通路中的每个处理映射成Ca模块下的一 个直接或间接低层模块 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 变换分析设计步骤 (4)精化软件结构:分解或合并 (5)简要描述每个模块(可以用IPO图描述): 接口说明 内部逻辑描述 全局和局部数据结构的说明 设计约束和限制 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 已编辑 数据 初始 数据 格式 化1 编辑检验计算 计算值1 预格 式化 有效 数据 格式 化2 格式 化3 计算值2 例:变换分析 数据流图 软件工程概论

29、教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 计 算 值 12 中心变换 输出处理取得有效数据 数 据 有 效 有效 数据 计 算 值 1 2 主模块 一级分解: 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 计 算 值 12 计 算 值 12 中心变换输出处理 取得有效数据 数 据 有 效 有 效 数 据 计 算 值 12 主模块 编辑 检验 计算 格式化1格式化2 格式化3 计 算 值 1 计 算 值 2 预 格 式 化 已编辑数据 有效数据 有 效 数 据 二级分解: 软件工程

30、概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 计 算 值 12 数 据 有 效 有 效 数 据 计 算 值 1 计 算 值 2 主模块 编辑 检验 计算 格式化1格式化2 格式化3 预格式化 已编辑数据 精化后的软件结构 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 事务分析 由事务流数据流图映射成的软件结构包括一个接收分支和 一个发送分支。 映射出接收分支结构的方法和变换分析映射出输入结构的 方法很相像,即从事务中心的边界开始,把沿着接收流通 路的处理映射成模块。 发送分支的结

31、构包含一个调度模块,它控制下层的所有活 动模块;然后把数据流图中的每个活动流通路映射成与它 的流特征相对应的结构。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 事务分析映射方法 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 例:事务分析 T N L M A F D C E B G I A 数据流图 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 一级分解 主模块 T(调度)I(输入) A A 软件工程概论教程软

32、件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 二级分解 主模块 T(调度) A I(输入) A LMN B C D 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 对于一个大型软件系统,常常把变换分析和事务分析应用 到同一个数据流图的不同部分,由此得到的子结构形成 “构件”,可以利用它们构造完整的软件结构。 一般说来,如果数据流不具有显著的事务特点,最好使用 变换分析;反之,如果具有明显的事务中心,则应该采用 事务分析技术。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江

33、苏工业学院信息科学与工程学院 卢卢 莹莹 优化方法: (1)在不考虑时间因素的前提下开发并精化软件结构; (2)在详细设计阶段选出最耗费时间的那些模块,仔细地设计它们 的处理过程(算法),以求提高效率; (3)使用高级程序设计语言编写程序; (4)在软件中孤立出那些大量占用处理机资源的模块; (5)必要时重新设计或用依赖于机器的语言重写上述大量占用资源 的模块的代码,以求提高效率。 上述优化方法遵守了一句格言: “先使它能工作,然后再使它快起来。” 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 1.详细设计的任务: (1)确定软件各

34、个组成部分的内部算法以及 各部分的内部数据结构; (2)选定某种过程表达形式来描述各种算法。 (3)进行详细设计的评审 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 2.详细设计的目标: 确定应该怎样具体地实现所要求的系统。得出对目标系 统的精确描述,从而在编码阶段可以把这个描述直接翻译成 用某种程序设计语言书写的程序。 详细设计阶段的任务还不是具体地编写程序,而是要设计 出程序的“蓝图”,以后程序员将根据这个蓝图写出实际 的程序代码。因此,详细设计的结果基本上决定了最终的 程序代码的质量。 软件工程概论教程软件工程概论教程 江苏工

35、业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 3.结构化程序的经典定义: 一个程序的代码块仅仅通过顺序、选择和循环 三种控制结构进行连接; 并且每个代码块只有一个入口和一个出口 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 4.过程设计描述工具: (1)图形工具:程序流程图、NS图、PAD图 (2)表格工具:判定表 、判定树 (3)语言工具过程设计语言(PDL) 课堂练习 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 国内乘客 头等舱 残疾乘客 行李

36、重量30 1 2 3 4 5 6 7 8 9 T T T T F F F F T F T F T F T F F F T T F F T T T F F F F F F F F 免费 (W30)2 (W30)3 (W30)4 (W30)6 (W30)8 (W30)12 用判定表表示计算行李费的算法 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 当算法中包含多重嵌套的条件选择时,判定表能够清晰地表示复杂 的条件组合与应做的动作之间的对应关系。 一张判定表由四部分组成: 左上部列出所有条件,左下部是所有可能做的动作,右上部是表示 各种条

37、件组合的一个矩阵,右下部是和每种条件组合相对应的动作。 判定表右半部的每一列实质上是一条规则,右下部规定了与特定的 规则相对应的动作。 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 行李重量 行李重量 行李费 算法 国内乘客 外国乘客 免费 头等舱 头等舱 其它舱 其它舱 残疾乘客 残疾乘客 残疾乘客 残疾乘客 正常乘客 正常乘客 正常乘客 正常乘客 (W-30) x 2 (W-30) x 3 (W-30) x 4 (W-30) x 6 (W-30) x 4 (W-30) x 6 (W-30) x 8 (W-30) x 12 图4.

38、30 用判定树表示计算行李费的算法 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 PDL介于自然语言和程序设计语言之间 PDL的语法: (1) 数据说明: Type is 限定说明 (2) 程序块: Begin 一组伪码语句 End 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (3) 子程序: 子程序结构: Procedure Interface 程序块或一组伪码语句 End 子程序的调用: Perform Using 软件工程概论教程软件工程概论教程 江苏工业学院信息

39、科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (4) 选择控制结构: 选择: if then else endif 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 多路选择: case of when select ; when select ; when select ; default : endcase 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (5) 循环控制结构: repeat until endrep do while enddo do for

40、循环变量取值范围 endfor 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 (6) 输入和输出: read/write from/to 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 课堂练习:用N-S图和程序流程图描述下列PDL START DO WHILE L1 IF A0 THEN A2 ELSE A1 END IF S1 IF B0 THEN B2 DO WHILE L2 B3 END DO C ELSE B1 END IF S2 END DO D STOP 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 4.9.1 面向数据结构的设计方法概述 4.9.2 Jackson 图 软件工程概论教程软件工程概论教程 江苏工业学院信息科学与工程学院江苏工业学院信息科学与工程学院 卢卢 莹莹 面向数据结构的设计思想: 根

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1