第7讲软件设计方法.ppt

上传人:本田雅阁 文档编号:2552475 上传时间:2019-04-07 格式:PPT 页数:41 大小:659.01KB
返回 下载 相关 举报
第7讲软件设计方法.ppt_第1页
第1页 / 共41页
第7讲软件设计方法.ppt_第2页
第2页 / 共41页
第7讲软件设计方法.ppt_第3页
第3页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第7讲软件设计方法.ppt》由会员分享,可在线阅读,更多相关《第7讲软件设计方法.ppt(41页珍藏版)》请在三一文库上搜索。

1、第 7 讲 软件设计方法,体系结构设计,软件体系结构是软件系统中最本质的东西。 良好的体系结构必须是普适、高效和稳定的。 BAS98:软件的体系结构是系统的一个或多个结构,包含软件构件、构件对外可见的性质以及它们之间的关系。 体系结构是一种表示。 体系结构设计关注构件结构、构件的性质和交互的关系。,体系结构风格 style,体系结构风格包含: 一组构件(components)(如,数据库、计算模块)完成系统所需的某种功能; 一组连接子(connectors),能使构件间通信协调和合作; 约束(constraints),定义构件如何被集成,形成系统; 语义模型(semantic model),使

2、得设计者通过分析构件的已知性质而理解系统的整体性质。,体系结构风格分类,数据为中心的体系结构 目标:实现数据的可集成性 共享数据可以是数据仓库或是黑板。,体系结构风格分类,调用返回体系结构 目标:系统的可更改性和可扩展性 主程序子程序体系结构 将一个程序分层子部分 每个子节点都只由父节点控制 如远程过程调用系统 面向对象或抽象数据类型系统 强调对数据的绑定和对数据操纵及访问方式的掌握 实现可更改性 层次式 可更改 可移植,Web sites of Interest,CMU Composable Systems Group www.cs.cmu.edu/Compose/ CMU Architec

3、ture Based Languages and Environments Research Group www.cs.cmu.edu/able/ The Acme ADL www.cs.cmu.edu/acme/ Worldwide Institute of Software Architects www.wwisa.org,Web Sites of Interest,The WRIGHT Language www.cs.cmu.edu/able/wright/ Meta-H For Real-Time Software Analysis dssa_tools/dssa_tools_mh.

4、html Rapide ADL pavg.stanford.edu/rapide/ C2 Project at UC Irvine www.ics.uci.edu/pub/arch/,面向数据流的设计,结构化开发方法(Structured Developing Method) 是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。 结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成的。 结构化设计方法(SD 法 Structured Design)是结构化开发方法的核心,与SA法,SD法密切联系,主要完成软件系统的总体结构

5、设计。 面向数据流的设计方法又称结构化设计。,面向数据流的设计,基本思想:将系统设计成由相对独立、单一功能的模块组成的结构。 采用方法: DFD System Hierarchy 步骤: 确定数据流类型; 指明数据流的边界; 将DFD映射为程序结构; 根据元素的分解,定义控制的层次; 使用设计测量和启发信息,对结构进行细化和求精; 精化体系结构的描述。,结构图 (Structure chart),A,B,a. 基本形式,A,C,B,D,b. 顺序,A,B,C,c. 选择,A,B,d. 重复,1、Data Flow 的分类 变换流(Transform Flow):,事实上所有信息流都可归结为变换

6、流,面向数据流的设计,变换流,输入,变换,输出, 事务流(Transaction Flow),T = Call one of the several subroutines depending on the type of the incoming transaction request. 当信息流具有明显的“发射中心”时,可归结为事务流。,面向数据流的设计,事务中心,变换流设计,变换流设计是从变换流的DFD到程序结构图的转化。 设计步骤: 找出变换中心及逻辑输入/出; 变换中心描述了系统的主要功能、特征,其特点是:输入/出数据流较多,变换中心可以不至一个。 逻辑输入/出 是指输入/出变换中心

7、的数据流。 输入流 是将物理输入转换为逻辑输入的数据流。 输出流 是将逻辑输出转换为物理输出的数据流。 设计软件结构的顶层; 为每个输入设计一个输入模块,为每个输出设计一个输出模块,同时为变换中心设计一个处理模块。 自顶向下,逐步细化,设计中下层模块。 即上层各个模块的从属模块,顺序一般是从设计输入模块的下层开始。,变换流设计,输入,变换中心,输出,A,B,C,D,E,F,G,H,System 3,Get C,Get B,Get A,Make A into B,Make B into C,Make C into D and E,Put E,Put D,Make E into G,Put G,M

8、ake D into F,Put F,Make G into H,Put H,C,C,D E,E,D,B,B,C,A,A,B,E,G,G,G,H,H,D,F,F,须检查; 每个传递的数据是否必须? 完成模块功能所必须的数据是否都传递了? 传输的数据是否只与单一的功能有关?是否目的明确?,变换流设计,A,B,C,D,M,N,P,System 2,Make B into C,Get B,Put C,X,Y,Z,B,B,C,C,B,N,N,P,M,P,C,M,变换流分析,例:汽车数字仪表板的设计,功能: 通过模 - 数转换实现传感器和微处理机接口; 在发光二极管面板上显示数据; 指示每小时英里数(m

9、ph),行驶的里程,每加仑油行驶的英里数(mpg)等等; 指示加速或减速; 如果车速超过55mph ,则发出警告铃声。,面向数据流的设计,第一步:DFD的分界,先分出I、P、O三块,面向数据流的设计,一般问题的一级分解方法:,面向数据流的设计,第二步:映射,面向数据流的设计,例:,面向数据流的设计,第三步:修改 本着高内聚、低耦合的原则。 例:精化后的数字仪表板系统的软件结构。,注:每个模块应附一简要说明描述 进出该模块的信息(接口描述); 模块内部的信息; 过程陈述,包括主要判定点及任务等; 对约束和特殊特点的简短讨论。,面向数据流的设计,事务流设计,事务流设计是从事务流的DFD到程序结构的

10、转换。 设计步骤: 确定流界: 先从DFD中找出事务流、事务处理中心和事务路径。事务中心前是接收事务、事务中心后是事务路径。进行一级分析,设计顶层模块。 进行一级分析,设计上层模块: 从DFD中导出具有接收和发送分支的软件结构。对事务中心设计为“事务控制”、对事务流为“接收事务”、对事务路径为“发送事务”。 细化该事务结构和每条动作路径的结构。 对于接收分支,采用变换流设计方法设计中下层;对于发送分支,在发送模块下设计每条事务路径的结构。,事务流设计,事务流,事务中心,事务处理,混合流设计,一般采用以变换流为主,事务流为辅的方法。 基本步骤: 利用变换设计,将DFD划分为输入、变换和输出三大部

11、分; 设计软件结构的上层模块,即主模块,及其下层输入模块、变换模块和输出模块; 根据输入、变换和输出DFD的不同特征设计它们的下层模块。,混合流设计,A,B,B1,B2,B3,C1,C2,C3,D,E,F,G,H,J,K,L,M,KK,Put L,LL,Put M,DD,Get C,EE,FF,GG,JJ,Get B,Edit BB,Get A,AA,T1,T2,T3,Operate 1,Operate n,Detail 1,Detail m,优化的前题是:“Get it to work, then make it fast.”,面向数据流的设计过程,精化体系结构设计,为每个模块开发处理说明;

12、 为每个模块提供接口描述; 定义局部和全局数据结构; 给出所有的设计限制或约束; 进行设计评审; 如需要,进行结构设计优化。,SD方法的优点,SD方法是从以下5个方面来获得质量较好的软件结构: 根据描述用户需求的数据流图导出了实现用户需求的结构图。 为了控制大型软件系统复杂性,运用了下面两个手段: 将系统分解成许多个黑盒。 将黑盒组织成适合于用计算机实现的一个层次结构。 用内聚和耦合作为评价软件结构质量的标准。 给出一组设计技巧,如扇入和扇出、模块大小的掌握,作用范围和控制范围等。 用结构图直观地描述软件结构,因此易于理解,并直接可以用于评价、分析和复查等。,SD方法的缺点,SD方法的不足:

13、软件系统的概要设计应该包括两个方面:数据结构的设计和程序结构的设计,两者是密切相关的,但遗憾的是SD方法只考虑后者而不考虑前者,因此在使用 SD方法时,一般还需参考一些有关数据库、文件结构的设计方法。 “高内聚、低耦合”的原则虽已被广为接受,但这两个概念尚无严格的定义,更无健全的理论基础,只能用些例子来解释其含义,因而对实际系统的软件结构还难以作客观的质量评价,这是SD方法的一个缺陷。,面向数据结构的设计,结构化开发方法是一种面向数据流、数据封闭性的开发方法,来源于程序的模块化和功能分解。面向数据结构的设计是将问题的数据结构转换为程序结构,着重于问题的数据结构,不强调模块定义。 Jackson

14、系统开发方法是JSP的扩展,是一种面向数据结构的设计方法,其基本思想是先建立输入输出的数据结构,再将其转换为软件结构。这种方法适用于数据处理类问题,特别是企业管理类的软件系统。,面向数据结构的设计,程序逻辑构造(logical construction of programs, LCP)由Warnier开发,是建立在数据结构和过程结构之间关系上的方法,将I/O数据结构映射为软件详细过程表达。 Wariner-Orr方法是LCP的扩展,除了设计能力之外,还增加了分析能力。,Jackson System Development (JSD),与SD的由DFD导出结构设计不同,JSD是以数据结构(da

15、ta structure)为基础设计每个模块的处理过程。 分析的重点是构造于系统相关的现实世界,并建立现实世界的信息域模型,目标是生成软件的过程性描述。 JSD的特点:获得简单清晰的设计方案,因为这样的方案易于理解、易于修改。 JSD的设计原则:使程序结构同数据结构相对应。,1、Jackson Diagram:,注意: 层次方框图H中的方框表示模块,而JD中的方框代表几个语句构成的简单操作; H表现调用关系,而JD表现组成关系。,Jackson System Development(JSD),例:一个正文文件由若干个记录组成,每个记录是一个字符串。要求统计每个记录中空格字符的个数,以及文件中空

16、格字符的总个数。要求的输出数据格式是:每扫描一行输入字符串之后,换行打印出这个字符串中的空格数,最后打印出文件中空格的总个数。,2、Jackson方法:,Jackson System Development(JSD),第1步:用Jackson图描述 IO 的数据结构,包括顺序、选择和重复,第2步:在两个图中指出有直接因果关系(causality)、可以同时处理的单元(重复的次序,次数均相同),Jackson System Development(JSD),JSD, 经过程序处理由正文文件得到输出表格。, 每处理输入中一个字符串后就得到输出中一个串信息,二者重复次序和次数均相同。, 字符不与多字

17、符组成的字符串对应。, 单个空格不能决定空格数。,用下述三条规则从描述数据结构的Jackson图导出描述程序结构的Jackson图: 第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框(注意,若这对数据单元在输入数据结构和输出数据结构中所处的层次不同,则和它们对应的处理框在程序结构图中所处的层次与它们之中在数据结构图中层次低的那个对应); 第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图中的相应层次分别为它们画上对应的处理框; 第三,根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图中的相应层次分别为它们画上对应的处理框。,第3步:Data structure Program structure,统计空格,分析字符*,注:顺序执行的处理中不允许混有重复执行或选择执行的处理。,第3步:Data structure Program structure,把有对应关系的单元合为一个处理框,画在相应的层次中(不同层以低层为准),第4步:列出所有操作条件,并分配到上幅程序结构图中,

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

当前位置:首页 > 其他


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