第8章-软件过程设计_第1页
第8章-软件过程设计_第2页
第8章-软件过程设计_第3页
第8章-软件过程设计_第4页
第8章-软件过程设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 1 过程设计主要内容过程设计主要内容 软件设计基本原理软件设计基本原理 软件设计工具软件设计工具 软件结构设计软件结构设计 软件详细设计软件详细设计 主要内容主要内容 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 2 软件过程设计主要内容 n 软件总体设计软件总体设计( (概要设计概要设计) ) 将系统划分成功能模块将系统划分成功能模块 明确软件结构(模块组成的层次系统)明确软件结构(模块组成的层次系统) 采用适当的工具描述软件结构采用适当的工具描述软件结构 n 软件详细设计软件详细设计 确定

2、怎样具体实现软件结构图中每个模块的具体内容确定怎样具体实现软件结构图中每个模块的具体内容 细化程序的基本逻辑细化程序的基本逻辑 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 3 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 4 软件设计的基本原理 n 模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成 若干模块的过程 n 模块化的优点: 降低问题复杂性 减少开发工作量 降低开发成本 提供软件生产率 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 5 软件设计的基本原理 n 模块化模块化是解决一个复杂问题时自顶

3、向下逐层把软件 系统划分成若干模块的过程 n 模块化的优点: 降低问题复杂性 减少开发工作量 降低开发成本 提供软件生产率 n 在软件的体系结构中,模块是可组合、分解和更换 的单元,具有以下几种基本属性: 接口:指模块的输入输出。 功能:模块实现的功能。 逻辑:内部如何实现及所需数据。 状态:模块的运行环境,调用与被调用关系。 n 逻辑属性反映内部特性,其它属性反映模块的外部 特性。 软件成本软件成本 M 模块数模块数 成本成本 (工作量)(工作量) 接口接口 成本成本 成本成本/模块模块 最小区域最小区域 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 6 软件设计

4、的基本原理 n 抽象:抽象: 是认识复杂现象过程中使用的思维工具。 抽象是对具体对象(问题)进行概括, 抽出这一类对象的公共性质 并加以描述 的过程。 软件结构顶层模块控制系统主要功能并影响全局,底层模块完成 具体的处理。 在进行软件设计时,抽象与逐步求精、模块化密切相关,可提高 软件的可理解性 n 信息隐蔽 是指在设计和确定模块时,使得一个模块内包含的信息(过程和 数据),对于不需要这些信息的其他模块来说,是不可访问的。 它为软件系统的修改、测试及以后的维护都带来好处。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 7 软件设计的基本原理 n 模块的独立性: 指每

5、个模块只完成系统要求的独立的子功能,并且与其它模块的 联系量最少且接口简单。 n 包括两个度量准则 耦合性:指软件系统结构中各模块间相互联系紧密程度的一种度 量。模块间耦合高低取决于接口的复杂性、调用的方式及传递的 信息。 内聚性:指模块的功能强度的度量,即一个模块内部各个元素彼 此结合的紧密程度的度量。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 8 软件设计的基本原理 无直接耦合:两个模块间没有直接的关系, 不传递任何信息。 内容耦合:一个模块直接使用另一模块的内部数据,或通过 非正常入口而转入另一个模块内部。 公共耦合:指通过一个公共数据环境相互作用的那些模

6、 块间的耦合。 控制耦合:两个模块间传递控制信息。被调用函数通过控 制信息有选择地执行块内某一功能。 标记耦合:两个模块间传递的是数据结构。 数据耦合:两个模块间有调用关系,传递简单的数据值。 AB 耦合性 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 9 耦合性举例 2 数据耦合数据耦合 3 标记耦合标记耦合 住户详情中包含了“本月用电量”和“本月用水量” 模块A TRC:. 模块B GOTO TRC 6 内容耦合内容耦合 5 公共耦合公共耦合 4 控制耦合控制耦合 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 10 软件设计的基本原理

7、 应采用的总体原则:应采用的总体原则: n 尽量使用数据耦合尽量使用数据耦合 n 少用控制耦合少用控制耦合 n 限制公共耦合的范围限制公共耦合的范围 n 完全不用内容耦合完全不用内容耦合 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 11 软件设计的基本原理 偶然内聚:指一个模块内的各处理元素之间没有任何联系。 逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参 数确定该模块完成哪一个功能。例如把编辑各种输入数据的 功能放在一个模块中。 时间内聚:把需要同时执行的动作组合在一起形成的模块。 例如程序设计中的初始化模块 。 通信内聚:指模块内所有处理元素都在同一个数据

8、结构上 操作,或指各处理使用相同的输入数据或者产生相同的输出 数据。 顺序内聚:指一个模块中各个处理元素都密切相关于同一 功能且必须顺序执行,前一功能元素的输出是后一功能元素 的输入。 功能内聚:指模块内所有元素共同完成一个功能,缺一不 可。 内聚性 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 12 软件设计的基本原理 顺序内聚顺序内聚通信内聚通信内聚 内聚性举例 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 13 软件结构图形工具 |软件结构图 |软件结构设计优化准则 |表示软件结构的HIPO图 (Hierarchy Plus Inp

9、ut/Processing/Output) 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 14 软件结构图(Structure Chart) 模块:用方框表示,名字体现该模块的功能。 模块间的控制关系:统率、从属; 模块间的信息传递: 两个附加符号: 模块选择调用或循环调用。 注意事项:模块唯一、从上到下调用、调用次序不 严格。 A BC M ABC A 查询成绩 B 学生记录 学号 查询标志 B 1 A 入出 X,Y Z 编号 1 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 15 结构图的形态特征 n 深度、宽度、扇入、扇出。深度、宽

10、度、扇入、扇出。 T D M ABC 扇入扇入 扇出扇出 深深 度度 宽度宽度 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 16 软件结构图举例 产生最佳解 原始输入 得到好输入计算最佳解输出结果 读输入编辑输入结果格式化显示输出 原始输入 好输入 好输入 解 解 编辑结果 格式化解 解 格式化解 产生最佳解 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 17 软件结构图注意事项 n (1)同一名字的模块在结构图中仅能出现一次。 n (2)调用关系只能从上到下。 n (3)不严格表示模块的调用次序,习惯上从左到右,有时为了减少连 线的交

11、叉,适当地调整同一层模块的左右位置,以保证结构图的清晰 。 n (4)结构图并不指明什么时候调用下层模块,只表明一个模块调用哪 些模块,至于模块内还有没有其他成分则完全没有表示。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 18 表示软件结构的HIPO图 订货处理1.0 销售管理系统 进货处理2.0销售统计3.0 读 库 存 记 录 1.2 输 入 并 检 验 订 单 1.1 缺货处理4.0 确 定 能 否 供 货 1.3 可供货处理1.3.1缺货货单留底1.3.2 H图:图: 每个矩形框代表一个模块,连线表 示“调用”而非“组成”。 所谓HIPO,即对每个模块附

12、一张 IPO图。每个IPO图中应明确标出对应 模块的编号。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 19 表示软件结构的HIPO图 IPO表 系统:_ 作者: _ 模块:_ 日期: _ 编号: 1.3 被调用: 调用: 输入 输出: 处理: 局部数据元素 文件名:全局变量: 注释: 销售管理系统 确定能否订货 订货处理 可供货模块 缺货订单留底 订单订货量X 货物库存量Y 供货标志 库存文件 IF YX THEN 可供货处理 ELSE 缺货订单留底 ENDIF IPO图:图: 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 20 结构

13、化设计方法 n 结构化设计是以结构化分析产生的数据流图 为基础,按一定的步骤映射成软件结构。 n 结构化设计结构化设计 变换分析设计变换分析设计 事务分析设计事务分析设计 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 21 变换型数据流图 由输入、变换和输出三部分组成。 变换中心 逻辑输入逻辑输出物理输出物理输入 时间 内部表示 信息 输入流 变换流 信息流 外部表示 输出流 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 22 事务型数据流图 数据沿着输入通路到达一个加工T。T 将输入数据分解成一串发散的数据流,形 成许多的活动路径,并根

14、据输入数据的类 型在若干动作序列中选出一个来执行。 T 事务处理中心 接收输入数据。 分析输入数据,确定类型。 根据事务类型选取一活动通路。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 23 变换分析设计 确定输入流和输出流的边界,从而孤立出变 换中心 (1)检查“输入流”的边界 从输入的数据源开始,沿着每一个由数据源传入的数 据流的移动方向进行跟踪分析,逐个分析它所经过的 处理逻辑功能。如果仅是传入的数据流作形式上的转 换,逻辑上没有进行实际的数据处理功能,则这些处 理逻辑属于系统的“输入处理部分”。顺着传入的数 据流的移动方向,一直跟踪到它被真正地处理为止。

15、上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 24 变换分析设计 (2)检查“输出流”的边界 从输出结果的地方开始,逆着每一个传递出去 的数据流,由外向里反方向跟踪,逐个分析它 的处理逻辑功能,一直反方向跟踪到它被真正 地产生出来为止。 (3)得到变换中心 根据前两步的分析结果,画出一个闭环界线, 在界线以内的就是变换中心。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 25 变换分析设计 2. 设计软件结构的顶层和第一层变换结构 Cm CICTCO 第一级分解第一级分解 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过

16、程设计 26 变换分析设计 (1)顶层主模块Cm是抽象出来的,以系统的名字命名, 协调控制下属模块,完成系统各项功能。 (2)第一层: 为每一个逻辑输入设计一个输入模块 功能:为主模块提供数据输入 为每一个逻辑输出设计一个输出模块 功能:为主模块提供数据输出 为中心变换设计一个变换模块 功能:将逻辑输入转换成逻辑输出 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 27 变换分析设计 (1)输入模块的下属模块设计 为每个输入模块设计两个下层模块 一个用于接收数据 另一个用于将这些数据转换为 所要求的数据 重复直到物理输入为止 设计中、下层模块 自顶向下,逐层分解 A

17、to B Get B Get A a a b 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 28 变换分析设计 (2)输出模块的下属模块设计 为每个输出模块设计两个下层模块 一个将调用模块提供的数据转换为所需的数据 形式。 另一个用于发送数据 重复直到物理输出为止 Put B Put A b a a B to A (3)变换模块的下属模块设计 按照模块独立性的原则来组织其结构,一般每 个基本加工设计一个功能模块。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 29 变换分析设计 ABC D E F GH f1 f2f3 f4 f5 f6

18、f7 f8 f9 f10f11 变换中心 输入输出 主模块 f2 Get f3 将f3变换成 f7和f8 Put f7 Get f2BFPut f9 f3 f7 f9 f7 f9 f3 f7 f8 Put f8 EDC f8 G A H Put f10 Put f11 Gut f1 f1 f1 f2 f8 f10 f10 f11f10 f11 f3f2 初始结构图初始结构图 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 30 变换分析设计 4. 设计的优化根据设计准则 (1)输入部分的求精 对每个物理输入设置专门模块,以体现系统的外 部接口;其他输入模块并非真正输入

19、,当它与转 换数据的模块都很简单时,可将它们合并成一个 模块。 Get C Get B Get A a b A to B Get B Get A a a b B to C Get C b b c 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 31 (2)输出部分的求精 为每个物理输出设置专门模块,同时 注意把相同或类似的物理输出模块合 并在一起,以减低耦合度。 Put B Put A b a a B to A Put B Put A a 变换分析设计 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 32 (3)变换部分的求精:根据设计准则,

20、 对模块进行合并和调整。 软件结构的求精,具有很大的经验性。 追求“高内聚,低耦合”方法: 设计有独立功能的模块 模块间传递数据型的参数 模块间共享信息尽量少 变换分析设计 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 33 变换分析设计 例: 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 34 变换分析设计 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 35 分房处理分房处理 分房活动分房活动 输出分房结果输出分房结果 获得分房资源获得分房资源 获得空房信息获得空房信息 获得分房队列获得分房队列输出输出 住房

21、住房 结果结果 获得分房申请获得分房申请 计算分数计算分数 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 36 事务分析设计 事务分析的设计步骤和变换分析的设计步骤大部分相 同或类似,主要差别仅在由数据流程图到软件结构的 映射方法不同。由事务流映射成的软件结构包括一个 接收分支和一个发送分支。 映射出接收分支结构的方法和变换分析映射出输入结 构的方法相似,即从事务中心的边界开始,把沿着接收 流通路的处理逻辑映射成模块。 发送分支的结构包含一个调度模块,它控制下层的所 有活动模块;然后把数据流程图中的每一个活动流通 路映射成与它的特征相对应的结构。 上海财经大学信息管

22、理与工程学院 第第8 8章章 软件过程设计软件过程设计 37 总控 调度 A_CTLB_CTLC_CTL 接收 通路 C通路 B通路A通路 事务分析的映射方法事务分析的映射方法 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 38 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 39 分房系统分房系统 合法性检查合法性检查更改信息更改信息 分房处理分房处理调房处理调房处理退房处理退房处理 查询处理查询处理 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 40 综合数据流图的映射 |确定DFD整体上的类型:除明显有事务

23、 类型的,都可认为是变换型。事务型用 于高层DFD变换有平行处理的优点。 |把与全局特性不同的局部区域孤立出来, 确定类型。 |按整体与局部的DFD特性,设计软件结 构。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 41 混合型的结构设计 a b1 b2 c1 d b3 c3 c2 b A C1D BC3 C2 l m k g j f he L K E F G J 主模块 Get dd to kPut k Get b AGet a C1C3C2 事务中心 EJGF Put lK Put mL 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计

24、 42 分层DFD映射:销售管理系统 销售管理系统销售管理系统 读键盘读键盘类别类别 1订货处理订货处理2进货处理进货处理3缺货处理缺货处理4销售统计销售统计 输出备货单输出备货单输入订单输入订单输出统计表输出统计表输出缺货通知单输出缺货通知单输入进货通知单输入进货通知单 主图:主图: 1订货处理订货处理子图子图1: 根据订单及库存确定能否供货根据订单及库存确定能否供货读库存记录读库存记录 缺货订单留底缺货订单留底可供货处理可供货处理 订单留底订单留底根据可供货订单修改库存根据可供货订单修改库存 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 43 分层DFD映射 g

25、4g4 g3g3 g2g2 g1g1 f2f2 f1f1 A1A1 A2A2 A3A3 A4A4 主图:主图: 子图:子图: A AB BC C f f1 1f2f2f3f3f4f4 主模块主模块 Put f3Get f2B AGet f1put f4C A A1A4 A2A3 f2 g3,g4 子图:子图: B1B1B2B2B3B3 f f2 2g1g1g2g2f4f4 f5f5 f4f4 主图:主图: f3f3 f2f2f1f1 A A B B A3A3 思考题:思考题: f1 f2 f1 g1g2 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 44 精化数据流

26、图 DFD类型 区分事务中心和数据接 收通路 区分输入和输出分支 映射成事务结构映射成变换结构 运用模块设计规则,精化软 件结构 描述模块功能、接口和全局 数据结构 复查 详细设计 映射顶层和第一层 事务变换 设计中下层模块结构 结构化设计过程结构化设计过程 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 45 软件详细设计 n 详细设计结果基本上决定了最终程序代码的质量。不仅要逻辑详细设计结果基本上决定了最终程序代码的质量。不仅要逻辑 正确,性能满足,还要简明易懂。正确,性能满足,还要简明易懂。 n 采用自顶向下,逐步求精的程序设计方法。 n 使用三种基本控制结构构

27、造程序:顺序、选择、循环。单入口 ,单出口的共同特点。 n 主程序员的组织形式:一个主程序员、一个后备程序员和一个 程序管理员三人为核心,再加上一些专家、其他技术人员组成 小组。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 46 软件详细设计表示法 常用三种工具:图形、表格和语言。 n 程序流程图(PFC) n PAD图 n 盒图(N-S图) n 过程设计语言 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 47 PFC:三种基本控制结构 A B exp AB FT F expA T A exp F T DO-UNTIL DO-WHILE

28、 DO CASE I CASE 1CASE n FT DO-CASE 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 48 程序流程图 程序流程图,又称程序框图,是描述程序逻辑结构的工具。它使 用的符号与系统流程图的符号很多相同,但是,箭头符号代表控 制流而不是数据流。优点是直观清晰、易于使用。缺点是: 易造成非结构化的程序结构,编码时不加限制的使用GOTO语句, 导致基本控制块多入多出口,与软件设计的原则相违背。 程序流程图本质上不是逐步求精的好工具,诱使过早考虑程序 的控制流程,而不去考虑程序的全局结构。 程序流程图不易表示数据结构。 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 49 详细设计案例分析 程序流程图(visio工具) 策略:自顶向下,逐步求 精的分解 上海财经大学信息管理与工程学院 第第8 8章章 软件过程设计软件过程设计 50 PAD图 问题分析图(Problem Analysis Diagram) 开始 结束 输入A(1)到A(10)的值 输出A(1)到A(10)的值 置初值:n=10 sort sort i=1 WHILE in-1 WHILE jn j= i+ 1,max=A (i) A(i) =max , i= i+ 1 j=j+1 B=max max=A(j) A (j) =B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论