软件工程第五章结构化设计课件_第1页
软件工程第五章结构化设计课件_第2页
软件工程第五章结构化设计课件_第3页
软件工程第五章结构化设计课件_第4页
软件工程第五章结构化设计课件_第5页
已阅读5页,还剩98页未读, 继续免费阅读

下载本文档

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

文档简介

第三部分软件设计与建模结构化软件设计阳王东回答问题什么是软件设计?有哪些阶段和任务?什么是模块化设计?有哪些原理?什么是软件结构和体系结构?二者有什么区别?数据流有哪些类型?如何区分?数据流映射的步骤是什么?什么是结构化程序设计?有哪些工具?什么是JSD方法?具体步骤是什么?第8章软件设计软件设计模块化设计软件架构设计软件结构软件设计概述软件设计阶段的基本目标是构造系统“怎么做”的模型描述。“设计先于编码”,这是软件工程“推迟实现”基本原则软件系统设计是把软件需求“变换”为用于构造软件的蓝图。“输入”是需求分析各种模型元素“输出”是软件设计模型和表示软件设计的目标是对将要实现的软件系统的体系结构、系统的数据、系统模块间的接口,以及所采用的算法给出详尽的描述。软件设计三类活动总体设计,也称为概要设计,软件结构设计,或高层设计。分析需求规格说明模块划分,形成具有预定功能的模块组成结构表示出模块间的控制关系给出模块之间的接口软件详细设计,也称为(模块)过程设计,或低层设计。设计模块细节确定模块所需的算法和数据结构等测试和复审软件设计质量原则设计过程要有全局观念设计对于分析模型应该是可跟踪的设计不应该从头做起设计应该是可实现的设计应该表现出一致性和集成性设计应该能够适应修改设计不是编码应该复审每一步设计,以减少语义性错误软件模块化设计模块是一个独立命名的,拥有明确定义的输入、输出和特性的程序实体。软件的模块化设计(ModularDesign)。系统是有一个个模块组装而成。软件模块化设计优点可以简化软件的设计和实现提高软件的可理解性和可测试性软件更容易得到维护。软件模块化设计缺点模块划分的数量越多,模块间的联系也越多模块的接口工作量却随着模块数增加而增大模块数与开发工作量开发工作量模块数最小成本区模块成本接口成本总成本软件模块化设计的指导思想分解抽象逐步求精信息隐蔽模块独立性分解与抽象分解必然需要抽象的支持。抽象是抓住主要问题,隐藏细节,这样才能容易分解。抽象具有不同的级别。人类解决复杂问题的基本方法之一。只有抓住事物的本质,才能准确分析和处理问题,找到合理的解决方案。逐步求精逐步求精,或称逐步细化,是一种自顶向下的设计策略。逐步求精是人类采用抽象到具体的过程把一个复杂问题趋于简单化控制和管理的有效策略。抽象和精化是互补的概念。信息隐藏信息隐蔽原则建议模块应该具有的特征是:每个模块对其他所有模块都隐蔽自己的设计决策。信息隐蔽意味着通过一系列独立的模块可以得到有效的模块化。独立的构件或模块之间的“接口”简单而清晰。模块的独立性模块独立性是指开发具有独立功能而和其他模块没有过多关联的模块。模块独立性两大优点:独立的模块由于分解了功能,简化了接口,使得软件比较容易开发;独立的模块比较容易测试和维护。模块独立性由两个定性标准度量:模块自身的内聚(Cohesion)),也称为块内联系或模块强度,模块之间的耦合(Coupling),也称为块间联系。模块独立性愈高,则块内联系越强,块间联系越弱。模块内聚性内聚性是从功能的角度对模块内部聚合能力的量度。高内聚是模块独立性追求的目标。分类:偶然性内聚逻辑性内聚时间性内聚过程性内聚通信性内聚顺序性内聚功能性内聚内聚性分类偶然性内聚弱逻辑性内聚时间性内聚过程性内聚通信性内聚顺序性内聚功能性内聚强低内聚中内聚高内聚模块耦合性耦合性是对一个软件结构内不同模块之间互连程度的度量。耦合性的强弱取决于模块间接口的复杂程度,以及通过接口的数据类型和数目。分类:非直接耦合

数据耦合

控制耦合外部耦合公共耦合内容耦合耦合性分类非直接耦合弱数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合强弱耦合中耦合强耦合较强耦合模块化设计的优化改进软件结构提高模块独立性在满足模块化要求的前提下尽量减少模块数量,在满足信息需求的前提下尽可能减少复杂的数据结构模块规模应适中软件结构的深度、宽度、扇入数和扇出数都要适当模块的作用域应该在控制域之内力求降低模块接口的复杂程度,设计单入口、单出口的模块概要设计概要设计主要包括三个方面的设计。首先是系统构架设计,然后是软件结构设计与数据结构设计。软件架构设计(体系结构)软件体系结构是一种总体表达。大型软件系统总是被分解成一系列子系统,由子系统提供一些相关的服务。软件架构设计过程就是识别出这些子系统,并建立子系统控制和通信的框架,最后给出软件体系结构的一个描述。系统构架设计可以按照以下步骤进行定义子系统定义子外部接口定义系统构成模型定义系统控制模型系统架构设计主要内容子系统划分方法前台业务办理和后台数据管理数据采集、数据处理和数据管理界面、控制和实体外部接口通信协议SDK消息分布式访问系统构成模型以数据为中心的结构模型客户机/服务器结构模型抽象机结构模型以数据为中心的结构模型由一组子系统构成,子系统交换信息,协调工作有两种基本方法:全部共享数据放在一个中央数据库中,所有子系统都能从中存取数据。每个子系统用各自的数据库与其他子系统进行数据交互,通过消息传递来实现。共享数据模型的优点是能够高效地共享大量的数据;缺点是子系统一定要与以数据为中心的体系结构模型一致,系统变更或进化比较困难。数据流体系结构模型当输入数据经过一系列的计算和操作构件或模块的变换形成输出数据时,可以应用数据流体系结构。管道和过滤器结构通过一组由管道连接的过滤器来变换数据,并向下传递。管道和过滤器结构过滤器过滤器过滤器过滤器过滤器过滤器过滤器过滤器多媒体服务系统结构网络目录服务器目录视频服务器电影文件图片服务器图片文件web服务器超文本文件客户1客户2客户n………两层C/S架构允许用户界面和应用程序代码直接访问数据库和网络存储的API。应用程序使用数据库中存储的数据模型,但是不需要在该模型之上建立逻辑模型。当开发中的系统是一个原型系统或者已经知道其生命周期较短,期间API不会发生变化的时候,两层应用程序是理想的。典型情形下,这种方式用于小型的应用程序,它们的开发成本和时间都很少。三层C/S架构相当频繁的重复使用是一个主要的设计考虑因素,在这种情形下需要建立应用程序模型以允许它的一部分被多个用户界面查看组件重复使用。它有一个指导方针是,在应用程序需要相同数据的多个视图的任何时候,开发者应该考虑使用三层方式代替两层方式。从两层模型迁移到三层模型需要考虑的主要问题包括适当的网络资源的可用性和管理并发数据访问的加锁方案。抽象机模型抽象机模型也称为分层模型,是建立子系统的接口模型。它把子系统组织成一系列的层次,每一层提供一组服务,每一层定义为一个抽象机。例如:网络协议OSI参考模型通信介质应用层表示层会话层传输层网络层数据链路层物理层用户B应用层表示层会话层传输层网络层数据链路层物理层用户A系统控制模型集中式控制模型调用—返回模型:这是一个自上而下的子过程模型。控制始于系统(程序)的顶层,在子系统(程序)调用过程中,控制逐步传递到更低的层次中。该模型适用于顺序执行的系统。管理者模型:这是一种适用于并发系统的模型。一个系统组件被指定为系统管理者,控制其他系统过程的启动、终止和协调。一个过程就是一个能和其他过程并发执行的子系统或模块。SOA架构服务提供者:一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。服务使用者:一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务。服务注册中心:服务发现的支持者;它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。服务注册中心服务消费者服务提供者注册发现调用并发系统的集中式控制模型系统控制器故障处理器用户界面传感器进程传动装置进程计算进程系统控制模型事件驱动系统广播模型:发生的事件广播到所有子系统,任何能处理该事件的子系统都会响应。该模型适用于基于网络的分布式系统。广播模型中的子系统注册其感兴趣的特别事件广播模型的优点是进化比较简单缺点是子系统都知道是否和什么时候处理事件,这可能会引起冲突。中断驱动模型:由中断处理器对来自外部的中断进行检测,然后在其他组件中处理这些中断。该模型适用于对定时有严格要求的实时系统。只用在硬件实时系统中,要求对一些事件能做出及时响应总线架构像水管一样随意接入像PCI总线一样即插即用Business

Intelligence

ServicesService

RegistryB2BInteractionsCollaboration

ToolsPortal

ServiceApplications&Data软件的体系结构模式并发性系统必须以一种模拟并行的方式来操作多个任务操作系统进程管理模式任务调度器模式包括一组含有tick()操作的活动对象持久性如果数据从创建它的进程执行以来一直存在,则该数据是持久性存在的数据。数据库管理系统模式将DBMS的存储和存取能力用于应用系统的体系结构中。应用级的持久模式在应用体系结构中建立了持久性特征。分布性强调系统或系统中构件或模块在一个分布的环境中相互通信的方式。分布性问题有两个元素:一是实体间连接方式二是实体间通信的特性代理模式是一种普遍的体系结构模式CORBA就是代理模式的一个范例小结设计的基本原理和概念包括模块化、抽象、体系结构、信息隐蔽、模块独立、逐步求精和重构等。软件体系结构提供了待建系统的整体视图,它描述软件构件或模块的结构和组织、构件或模块的性质以及他们之间的连接。第9章结构化设计方法结构化设计阶段数据流设计方法面向数据的设计结构化程序设计案例分析结构化设计概述结构化设计方法(StructuredDesign,SD)是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。结构化设计方法用模块结构图来表达程序模块之间的关系。软件设计分为两个阶段:概要设计:面向数据流设计方法详细设计:结构化程序设计方法软件结构设计软件结构设计也称总体设计,确定软件的结构以及各组成成分(子系统或模块)之间的相互关系。软件结构设计的主要任务是:将系统划分成模块;决定每个模块的功能;决定模块的调用关系;决定模块的界面,即模块间传递的数据。软件结构设计阶段的主要任务是通过数据流图来确定系统的结构图。在软件结构设计阶段,结构化设计主要采用面向数据流的设计方法。软件结构设计过程设计供选择的方案选取合理的方案推荐最佳方案功能分解和设计软件结构数据库设计制定软件设计测试计划编制设计文档审查和复审软件结构图软件结构图(StructureChart,简称SC)是软件系统的模块层次结构,反映了整个系统的功能实现。软件结构以层次表示程序的系统结构,即一种控制的层次体系,并不表示软件的具体过程。软件结构图的主要元素有:模块控制关系信息传递循环调用和选择调用软件结构图软件结构图的形态特征: 深度:指结构图控制的层次,也是模块的层数。宽度:指一层中最大的模块个数。扇出:指一个模块直接下属模块的个数。扇入:指一个模块直接上属模块的个数。画结构图应注意的事项:模块不能重名。调用关系只能从上到下。软件结构图MNOPQGHICDATJKLEFBRS重构重构是一种重新组织的技术,可以简化构件或模块的设计或编码而无需改变其功能或行为。重构是一种改进程序内部结构但不改变代码或设计的外部行为。“先使它转起来,再使它快起来”。面向数据流设计根据基本系统模型,数据信息必须以“外部”信息形式进入软件系统,经过内部处理以后再以“外部”的形式离开系统。有三种数据流类型:变换型数据流事务型数据流混合型数据流变换流信息沿输入通路进入系统,同时由外部的形式变换为内部形式,进行系统通过变换程序进行加工处理后在沿着输出通路变换外部形式输出。事务流数据沿着输入通路到达一个调度模块,调度模块根据输入数据的类型的不同而选择相应的程序流程来执行处理过程。混合型数据流在一个大型系统的DFD中,变换流和事务流往往会同时出现。例如,在一个事务型的DFD中,分支动作路径上的信息流也可能会体现出变换流的特征。这种具有将事务流和变换流组合出现,就是混合型数据流,简称混合流。混合型数据流混合型数据流变换3……变换2传出数据传入数据事务中心变换1结果面向数据流设计过程确定数据流类型确定数据流的方向进行变换或事务分析映射软件结构导出接口描述和数据结构复查进入下一步详细设计面向数据流设计步骤设计步骤复查并精化数据流图。初步分析:确定数据流图具有变换特性还是事务特性。确定输入流和输出流的边界,从而孤立出变换中心和事务中心。变换中心包括:输入通道,输出通路,处理过程事物中心包括:输入通路,事物调度,可执行程序流程完成“第一级分解”。完成“第二级分解”。使用设计度量和启发规则对第一次分割得到的软件结构进一步精化。在线考试系统(1)基本系统模型功能级模型试题录入者在线考试系统考生试题信息试卷答案试题库试题录入者试题信息生成试题组卷考试考生考试信息试题考试信息试题试卷答案评卷系统答卷考试信息录入者初步分析变换处理生成试卷组卷事务处理考试在线考试系统(4)试题录入者试题检查转换定制考试考试信息录入者组卷考生答题输入试题导入试题登录提交试题库考试信息考生信息答卷信息试题信息试题信息试题信息试题信息试题试题考试信息试卷考生信息考生信息答案考试状态考生信息变换中心试题生成输入通道:界面输入、文件导入输出通路:导入数据库处理过程:试题检查和转换定制考试输入通道:界面输入输出通路:导入数据库处理过程:考试信息转换(配置参数,时间等)组卷输入通道:数据库检索输出通路:试卷界面处理过程:试题选择事务中心登录输入通路:登录界面调度:登录验证可执行的程序流程登录考试系统拒绝登录答题输入通路:界面提交、时间提交调度:答题控制可执行的程序流程提交答案到服务器拒绝提交存储答案于本地提交输入通路:界面提交、时间提交调度:提交控制可执行的程序流程提交考试信息到服务器拒绝提交重新提交存储本地变换中心第一级分解分解方法对于输入通路设置输入控制模块(Ca)变换处理设置控制模块(Ct)对于输出通路输出信息产生和显示模块(Ce)试题生成试题生成获取试题信息试题转换试题存储输入控制变换控制输出控制定制考试定制考试获取考试信息考试信息转换考试信息存储组卷组卷从试题库查询试题试题选择和组织试卷输出显示变换中心第二级分解输入模块细化数据获取数据检查数据传递数据封装控制模块细化数据预处理数据格式转换数据内部属性生成输出模块细化输出格式转换显示格式设置数据传递输出数据生成试题生成试题生成获取试题信息试题转换试题存储从界面读取信息文件选择检查输入信息的完整性和有效性文件格式检查文件内容的完整性和有效性检查试题格式转换试题编号生成数据库链接数据库SQL生成数据库SQL执行界面录入试题导入外部试题定制考试定制考试获取考试信息考试信息转换考试信息存储从界面读取信息检查输入信息的完整性和有效性考试配置参数生成考试编号生成数据库链接数据库SQL生成数据库SQL执行事务中心第一级分解输入控制模块事务处理模块事务调度模块事务传递模块登录登录获取登录信息登录信息验证登录考试系统拒绝登录登录调度提交考试提交考试界面提交时间提交提交控制提交到服务器拒绝提交重新提交存储本地提交调度考试终止继续考试事务中心第二级分解输入控制模块数据获取数据检查数据传递数据封装事务处理模块事务处理步骤分解事务调度模块调度监控调度分配事务传递模块事务通信事务现场处理事务后续处理登录登录获取登录信息登录信息验证登录考试系统拒绝登录登录调度输入用户名和口令输入有效性检查用户名检查口令验证检查写登录日志进入考试界面记录考生登录信息错误提示界面重新登录提交考试提交考试界面提交时间提交提交控制提交到服务器拒绝提交重新提交存储本地提交调度考试终止继续考试取系统时钟定时器传输到服务器存储考试信息拒绝状态判定拒绝提交提示记录提交状态重新提交提示创建本地文件写考试信息到文件面向数据流设计小结变换流和事务流分析变换模块和事务模块的划分模块的分解数据库设计逻辑设计物理设计逻辑设计逻辑设计的任务,就是采取一定的策略,按照若干准则将概念模型转换为关系数据库管理系统所能接受的一组关系模式,并利用规范化的理论和方法对这组关系模式进行处理。关系模式设计关系模式规范化模式的评价与改进关系模式设计E-R图是由实体、属性和联系组成的,而关系数据库逻辑设计的结果是一组关系模式的集合。所以将E-R图转换为关系模型实际上就是将实体、属性和联系转换成关系模式。在转换中要遵循以下原则:一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。一个联系转换为一个关系模式,与该联系相连的各实体的键以及联系的属性均转换为该关系的属性。该关系的键有三种情况:如果联系为1:1,则每个实体的键都是关系的候选键如果联系为1:n

,则n端实体的键是关系的键如果联系为n:m,则各实体键的组合是关系的键教务管理系统学生课程教师课表成绩关系模式规范化应用规范化理论对上述产生的关系的逻辑模式进行初步优化,以减少乃至消除关系模式中存在的各种异常,改善完整性、一致性和存储效率。确定范式级别实施规范化处理物理设计数据库最终要存储在物理设备上。对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程,称为数据库物理设计。物理设计的任务是为了有效地实现逻辑模式,确定所采取的存储策略。此阶段是以逻辑设计的结果作为输入,结合具体DBMS的特点与存储设备特性进行设计,选定数据库在物理设备上的存储结构和存取方法。确定物理结构,在关系数据库中主要指存取方法和存储结构评价物理结构,评价的重点是时间和空间效率确定物理结构存储记录结构的设计聚簇索引访问方法的设计缓存索引数据存放位置的设计分区阵列备份系统配置的设计数据库安全和维护设计安全策略用户机制授权机制加密机制备份策略增量备份完全备份介质备份什么是详细设计针对一个个模块的设计,是过程设计、算法设计。详细设计采用结构化程序设计方法.详细设计仅仅是设计出程序的“蓝图”,是编码的先导,但不是编写程序。设计高效率的程序是基于良好的数据结构与算法,而不是基于编程小技巧 结构化程序设计方法结构化程序设计的理念是在20世纪60年代,由Dijkstra等人提出并加以完善的。结构化的程序一般只需要用三种基本的逻辑结构就能实现。这三种基本逻辑结构是顺序结构、选择结构和循环结构。结构化程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。详细设计的任务每个模块内的数据结构每个模块的控制算法内部接口描述为每一模块设计出一组测试用例(testcases),因为详细设计人员对模块的功能、逻辑、接口等最了解。评审详细设计原则每一种数据结构与算法都有其时间、空间的开销和收益。与开销和收益有关的是时间——空间的权衡。程序员应该充分地了解一些常用的数据结构与算法,避免不必要的重复设计工作。数据结构与算法为应用服务。结构程序设计的类型经典的结构程序设计Seq;if-then-else;do-While扩展的结构程序设计增加case;do-until修正的结构程序设计允许continue;break过程设计过程设计在概要设计完成之后进行,它是详细设计阶段应该完成的主要任务过程设计方法流程图N-S图PAD图判定表HIPO图流程图结构(a)顺序结构(b)IF-THEN-ELSE型选择(c)DO-WHILE型循环结构(d)DO-UNTIL型循环结构(e)多分支结构程序结构(续)(d)(e)程序流程图的标准符号试错限制流程图的实例-系统登录口令验证用户名验证开始输入用户名查询用户名是否存在该用户名输入口令根据用户名比对口令口令是否相符清空输入口令登录系统试错次数加1关闭登录界面试错次数等于3结束NYYNYN试错次数置0流程图分析程序结构用户名验证口令验证试错限制需要补充完善之处用户名不存在,增加到注册连接验证码验证口令验

温馨提示

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

评论

0/150

提交评论