调用返回风格软件体系结构

上传人:n**** 文档编号:118702162 上传时间:2019-12-23 格式:PDF 页数:19 大小:771.68KB
返回 下载 相关 举报
调用返回风格软件体系结构_第1页
第1页 / 共19页
调用返回风格软件体系结构_第2页
第2页 / 共19页
调用返回风格软件体系结构_第3页
第3页 / 共19页
调用返回风格软件体系结构_第4页
第4页 / 共19页
调用返回风格软件体系结构_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《调用返回风格软件体系结构》由会员分享,可在线阅读,更多相关《调用返回风格软件体系结构(19页珍藏版)》请在金锄头文库上搜索。

1、软件体系结构概述 主讲教师:陈星 助教:曾雪娥、刘艳萍等 福州大学 数学与计算机科学学院 福建省网络计算与智能信息处理重点实验室 软件设计模式与体系结构软件设计模式与体系结构 软件体系结构概述软件体系结构概述 软件体系结构软件体系结构 概念:软件体系结构是系统的基本组织结构,包括系统概念:软件体系结构是系统的基本组织结构,包括系统 构成要素、这些构成要素相互之间以及与运行环境之间构成要素、这些构成要素相互之间以及与运行环境之间 的关系,还包括系统设计及演化时应遵循的原则。的关系,还包括系统设计及演化时应遵循的原则。 意义:意义: 软件体系结构是早期关键设计决策的体现。 软件体系结构是软件相关人

2、员之间进行交流的手段。 软件体系结构是一种高层次的设计复用手段。 2 经典软件体系结构 主讲教师:陈星 助教:曾雪娥、刘艳萍等 福州大学 数学与计算机科学学院 福建省网络计算与智能信息处理重点实验室 软件设计模式与体系结构软件设计模式与体系结构 经典软件体系结构概述经典软件体系结构概述 内容内容 调用-返回风格软件体系结构 数据流风格软件体系结构 基于事件的软件体系结构 层次软件体系结构 MVC软件体系结构 4 6.1 6.1 调用- -返回风格软件体系结构 主讲教师:陈星 助教:曾雪娥、刘艳萍等 福州大学 数学与计算机科学学院 福建省网络计算与智能信息处理重点实验室 软件设计模式与体系结构软

3、件设计模式与体系结构 非结构化编程简介非结构化编程简介 非结构化编程技术是最早的编程范型。一个由非结构化语言编写的程序通常包非结构化编程技术是最早的编程范型。一个由非结构化语言编写的程序通常包 含一系列有序的命令(语句),通常是每个语句占一行,每行都有标记一个行含一系列有序的命令(语句),通常是每个语句占一行,每行都有标记一个行 号或者标签,允许程序执行流可以依据行号从一行跳到程序的其他指定的行。号或者标签,允许程序执行流可以依据行号从一行跳到程序的其他指定的行。 非结构化编程引入基本的循环、分支与跳跃等控制流的概念。非结构化编程中非结构化编程引入基本的循环、分支与跳跃等控制流的概念。非结构化

4、编程中 的子程序允许有多个入口和多个出口,允许程序在任何地方转入子程序或退出的子程序允许有多个入口和多个出口,允许程序在任何地方转入子程序或退出 子程序。子程序。 6 以下为一个简单的COBOL程序片段 000100 IDENTIFICATION DIVISION. 000200 PROGRAM ID.HAPPYNEWYEAR. 000300 100000 PROCEDURE DIVISION. 100100 100200 MAIN LOGIC SECTION. 100300 BEGIN. 100400 DISPLAY“ ” LINE 1 POSITION 1 ERASE EOS. 10050

5、0 DISPLAY “Happy New Year!” LINE 15 POSITION 10. 100600 STOP RUN. 100700 MAIN LOGIC EXIT. 100800 EXIT. 调用调用- -返回风格软件体系结构的概念返回风格软件体系结构的概念 利用调用利用调用-返回风格软件体系结构设计的软件系统使用的是分而治之策略,其主返回风格软件体系结构设计的软件系统使用的是分而治之策略,其主 要思想是将一个复杂的大系统分解为一些子系统,以便降低复杂度,并且增加要思想是将一个复杂的大系统分解为一些子系统,以便降低复杂度,并且增加 可修改性。这种系统的程序执行顺序通常只由一个单线

6、程控制。可修改性。这种系统的程序执行顺序通常只由一个单线程控制。 每个软件构件都设计为有一个唯一的程序执行起点和一个唯一的程序执行终点;每个软件构件都设计为有一个唯一的程序执行起点和一个唯一的程序执行终点; 程序从其执行起点开始执行该构件的代码,程序执行结束,将控制返回给程序程序从其执行起点开始执行该构件的代码,程序执行结束,将控制返回给程序 调用构件,其中,程序构件通常叫做子程序,从一个构件到另外一个构件的控调用构件,其中,程序构件通常叫做子程序,从一个构件到另外一个构件的控 制传递叫做子程序调用。制传递叫做子程序调用。 7 主程序主程序- -子程序软件体系结构子程序软件体系结构 主程序主程

7、序-子程序软件体系结构在设计上使用层次化的划分方法,该体系结构中使子程序软件体系结构在设计上使用层次化的划分方法,该体系结构中使 用由编程语言直接支持的单一的控制线程。用由编程语言直接支持的单一的控制线程。 子程序的结构是明确的,子程序通常组成程序模块。子程序的调用呈现层次状,子程序的结构是明确的,子程序通常组成程序模块。子程序的调用呈现层次状, 其正确与否往往取决于其调用的子程序的正确与否。其正确与否往往取决于其调用的子程序的正确与否。 8 主程序主程序- -子程序软件体系结构子程序软件体系结构 自顶向下功能化设计方法(结构化程序设计)的设计思想是,系统从功能的角自顶向下功能化设计方法(结构

8、化程序设计)的设计思想是,系统从功能的角 度进行设计,从高层开始,逐步细化为详细设计。该设计从系统要完成的功能度进行设计,从高层开始,逐步细化为详细设计。该设计从系统要完成的功能 需求出发,首先将一个整体问题分为几个子问题,然后再考虑将每个子问题再需求出发,首先将一个整体问题分为几个子问题,然后再考虑将每个子问题再 次划分为几个更小的子问题,依次下去,直到不可再分为止。次划分为几个更小的子问题,依次下去,直到不可再分为止。 结构化设计从数据流图开始,然后将数据流图转换为程序结构图。这些图需要结构化设计从数据流图开始,然后将数据流图转换为程序结构图。这些图需要 用规范的用规范的DFD描述,达到系

9、统在建立前有关信息就能被充分理解的目的。在设描述,达到系统在建立前有关信息就能被充分理解的目的。在设 计时要求严格划分开发阶段,用规范的方法与图表工具精确描述各阶段的工作,计时要求严格划分开发阶段,用规范的方法与图表工具精确描述各阶段的工作, 每个阶段都以规范的文档资料作为其成果,最终得到满足用户需要的系统。每个阶段都以规范的文档资料作为其成果,最终得到满足用户需要的系统。 9 主程序主程序- -子程序软件体系结构子程序软件体系结构 自顶向下的程序设计方法存在如下问题自顶向下的程序设计方法存在如下问题 (1 1)功能演化困难)功能演化困难 自上而下的方法创建了符合最初需求的较好的软件系统模型。

10、但是当系统自上而下的方法创建了符合最初需求的较好的软件系统模型。但是当系统 改变或者增加新的需求时,功能结构变得越来越笨拙。由于软件被设计为树形改变或者增加新的需求时,功能结构变得越来越笨拙。由于软件被设计为树形 结构,修改与更新通常要求广泛的“剪枝”与“嫁接”,使系统维护变得越来结构,修改与更新通常要求广泛的“剪枝”与“嫁接”,使系统维护变得越来 越困难。越困难。 (2 2)现实中的系统功能不容易描述)现实中的系统功能不容易描述 大型交互系统很难从功能方面进行刻画。很多大型系统没有“顶部”,例大型交互系统很难从功能方面进行刻画。很多大型系统没有“顶部”,例 如,一个设计数据查询、数据改变与保

11、持数据一致性的软件系统,如果按照功如,一个设计数据查询、数据改变与保持数据一致性的软件系统,如果按照功 能化的自顶向下的设计,则该系统可能被设计成为一个基于一个唯一的“虚拟”能化的自顶向下的设计,则该系统可能被设计成为一个基于一个唯一的“虚拟” 顶点并且会产生非常复杂的结构。顶点并且会产生非常复杂的结构。 (3 3)功能化设计丢掉了数据与数据结构。)功能化设计丢掉了数据与数据结构。 因为系统分解只突出问题的功能方面,数据结构对问题的影响被丢失了。因为系统分解只突出问题的功能方面,数据结构对问题的影响被丢失了。 (4 4)由功能设计得到的软件产品产生的可复用的代码较少。)由功能设计得到的软件产品

12、产生的可复用的代码较少。 每个程序单元的设计都仅仅考虑极为有限的需求,因为这些特定的需求不每个程序单元的设计都仅仅考虑极为有限的需求,因为这些特定的需求不 太可能出现于下个问题中,所以产生的设计与代码没有普遍性与通用性。太可能出现于下个问题中,所以产生的设计与代码没有普遍性与通用性。 10 面向对象软件体系结构面向对象软件体系结构 面向对象设计与编程方法可以使程序员将数据封装起来,使数据的访问受到限面向对象设计与编程方法可以使程序员将数据封装起来,使数据的访问受到限 制。制。 一个对象是将数据与那些为了访问和维护这些数据的操作(即函数或方法)捆一个对象是将数据与那些为了访问和维护这些数据的操作

13、(即函数或方法)捆 绑在一起的一个实体。对象提供了一些简单易用的、规范化的方法对其数据进绑在一起的一个实体。对象提供了一些简单易用的、规范化的方法对其数据进 行某种操作,而隐瞒了其具体的执行任务的繁琐细节。行某种操作,而隐瞒了其具体的执行任务的繁琐细节。 在面向对象设计中,系统看作由一些对象的集合组成(而不是由函数或者方法在面向对象设计中,系统看作由一些对象的集合组成(而不是由函数或者方法 组成),消息从一个对象发送到另外一个对象。每个对象都有其相关的功能。组成),消息从一个对象发送到另外一个对象。每个对象都有其相关的功能。 11 面向对象软件体系结构面向对象软件体系结构 优点优点 (1)容易

14、维护:因为一个对象将其内部表示对客户程序隐藏起来,所以可以改)容易维护:因为一个对象将其内部表示对客户程序隐藏起来,所以可以改 变其内部实现而不影响那些客户程序。变其内部实现而不影响那些客户程序。 (2)可复用性好:对象为适合复用的构件。)可复用性好:对象为适合复用的构件。 (3)映射现实世界:对于许多软件系统都存在明显的现实世界的实体到系统的)映射现实世界:对于许多软件系统都存在明显的现实世界的实体到系统的 对象。对象。 (4)容易对一个系统进行剖分:面向对象设计将数据与数据访问、操纵方法绑)容易对一个系统进行剖分:面向对象设计将数据与数据访问、操纵方法绑 定在一起形成类,由类产生对象。使得

15、软件设计者将整个问题剖分为一系列的定在一起形成类,由类产生对象。使得软件设计者将整个问题剖分为一系列的 互相交互的对象的集合。互相交互的对象的集合。 缺点缺点 (1)面向对象程序占用内存较大。这是因为在程序运行中,每个新被创建的对)面向对象程序占用内存较大。这是因为在程序运行中,每个新被创建的对 象都必须占用一块内存,而在面向对象程序中,往往有大量的对象被创建。象都必须占用一块内存,而在面向对象程序中,往往有大量的对象被创建。 (2)一个对象要和另外一个对象交互,该对象必须知道另外一个对象的身份,)一个对象要和另外一个对象交互,该对象必须知道另外一个对象的身份, 包括对象名、方法名和参数类型等

16、。包括对象名、方法名和参数类型等。 12 案例分析案例分析 本案例要设计一个文档更新系统,对符合一定格式的输入文档进行更新。系统本案例要设计一个文档更新系统,对符合一定格式的输入文档进行更新。系统 分为几个功能:分为几个功能: (1)政治问题。将文档中出现的所有的“)政治问题。将文档中出现的所有的“Republic of China”改为“”改为“Taiwan”。”。 (2)两千年()两千年(Y2K)问题。对文档中所出现的两位数日期形式“)问题。对文档中所出现的两位数日期形式“xx”改为”改为 “19xx”,如将”,如将89改为改为1989。 (3)按行进行字典排序。)按行进行字典排序。 具体的说,希望程序的功能如下。具体的说,希望程序的功能如下。 13 原始文件: Printer $3300 Germany 89-02-01 Refrigerator $3800 Republic of China 95-12-11 Printer $3600 Germany 8

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号