软件工程第五章结构化设计.ppt
《软件工程第五章结构化设计.ppt》由会员分享,可在线阅读,更多相关《软件工程第五章结构化设计.ppt(103页珍藏版)》请在三一办公上搜索。
1、第三部分软件设计与建模,结构化软件设计阳王东,回答问题,什么是软件设计?有哪些阶段和任务?什么是模块化设计?有哪些原理?什么是软件结构和体系结构?二者有什么区别?数据流有哪些类型?如何区分?数据流映射的步骤是什么?什么是结构化程序设计?有哪些工具?什么是JSD方法?具体步骤是什么?,第8章 软件设计,软件设计模块化设计软件架构设计软件结构,软件设计概述,软件设计阶段的基本目标是构造系统“怎么做”的模型描述。“设计先于编码”,这是软件工程“推迟实现”基本原则软件系统设计是把软件需求“变换”为用于构造软件的蓝图。“输入”是需求分析各种模型元素“输出”是软件设计模型和表示软件设计的目标是对将要实现的
2、软件系统的体系结构、系统的数据、系统模块间的接口,以及所采用的算法给出详尽的描述。,软件设计三类活动,总体设计,也称为概要设计,软件结构设计,或高层设计。分析需求规格说明模块划分,形成具有预定功能的模块组成结构表示出模块间的控制关系给出模块之间的接口软件详细设计,也称为(模块)过程设计,或低层设计。设计模块细节确定模块所需的算法和数据结构等测试和复审,软件设计质量原则,设计过程要有全局观念设计对于分析模型应该是可跟踪的设计不应该从头做起设计应该是可实现的设计应该表现出一致性和集成性设计应该能够适应修改设计不是编码应该复审每一步设计,以减少语义性错误,软件模块化设计,模块是一个独立命名的,拥有明
3、确定义的输入、输出和特性的程序实体。软件的模块化设计(Modular Design)。系统是有一个个模块组装而成。软件模块化设计优点可以简化软件的设计和实现提高软件的可理解性和可测试性软件更容易得到维护。软件模块化设计缺点模块划分的数量越多,模块间的联系也越多模块的接口工作量却随着模块数增加而增大,模块数与开发工作量,软件模块化设计的指导思想,分解抽象逐步求精信息隐蔽模块独立性,分解与抽象,分解必然需要抽象的支持。抽象是抓住主要问题,隐藏细节,这样才能容易分解。抽象具有不同的级别。人类解决复杂问题的基本方法之一。只有抓住事物的本质,才能准确分析和处理问题,找到合理的解决方案。,逐步求精,逐步求
4、精,或称逐步细化,是一种自顶向下的设计策略。逐步求精是人类采用抽象到具体的过程把一个复杂问题趋于简单化控制和管理的有效策略。抽象和精化是互补的概念。,信息隐藏,信息隐蔽原则建议模块应该具有的特征是:每个模块对其他所有模块都隐蔽自己的设计决策。信息隐蔽意味着通过一系列独立的模块可以得到有效的模块化。独立的构件或模块之间的“接口”简单而清晰。,模块的独立性,模块独立性是指开发具有独立功能而和其他模块没有过多关联的模块。模块独立性两大优点:独立的模块由于分解了功能,简化了接口,使得软件比较容易开发;独立的模块比较容易测试和维护。模块独立性由两个定性标准度量:模块自身的内聚(Cohesion),也称为
5、块内联系或模块强度,模块之间的耦合(Coupling),也称为块间联系。模块独立性愈高,则块内联系越强,块间联系越弱。,模块内聚性,内聚性是从功能的角度对模块内部聚合能力的量度。高内聚是模块独立性追求的目标。分类:偶然性内聚逻辑性内聚时间性内聚过程性内聚通信性内聚顺序性内聚功能性内聚,内聚性分类,模块耦合性,耦合性是对一个软件结构内不同模块之间互连程度的度量。耦合性的强弱取决于模块间接口的复杂程度,以及通过接口的数据类型和数目。分类:非直接耦合 数据耦合 控制耦合外部耦合公共耦合内容耦合,耦合性分类,模块化设计的优化,改进软件结构提高模块独立性在满足模块化要求的前提下尽量减少模块数量,在满足信
6、息需求的前提下尽可能减少复杂的数据结构模块规模应适中软件结构的深度、宽度、扇入数和扇出数都要适当模块的作用域应该在控制域之内力求降低模块接口的复杂程度,设计单入口、单出口的模块,概要设计,概要设计主要包括三个方面的设计。首先是系统构架设计,然后是软件结构设计与数据结构设计。,软件架构设计(体系结构),软件体系结构是一种总体表达。大型软件系统总是被分解成一系列子系统,由子系统提供一些相关的服务。软件架构设计过程就是识别出这些子系统,并建立子系统控制和通信的框架,最后给出软件体系结构的一个描述。系统构架设计可以按照以下步骤进行定义子系统定义子外部接口定义系统构成模型定义系统控制模型,系统架构设计主
7、要内容,子系统划分方法前台业务办理和后台数据管理数据采集、数据处理和数据管理界面、控制和实体外部接口通信协议SDK消息分布式访问,系统构成模型,以数据为中心的结构模型客户机/服务器结构模型抽象机结构模型,以数据为中心的结构模型,由一组子系统构成,子系统交换信息,协调工作有两种基本方法:全部共享数据放在一个中央数据库中,所有子系统都能从中存取数据。每个子系统用各自的数据库与其他子系统进行数据交互,通过消息传递来实现。共享数据模型的优点是能够高效地共享大量的数据;缺点是子系统一定要与以数据为中心的体系结构模型一致,系统变更或进化比较困难。,数据流体系结构模型,当输入数据经过一系列的计算和操作构件或
8、模块的变换形成输出数据时,可以应用数据流体系结构。管道和过滤器结构通过一组由管道连接的过滤器来变换数据,并向下传递。,管道和过滤器结构,多媒体服务系统结构,两层C/S架构,允许用户界面和应用程序代码直接访问数据库和网络存储的API。应用程序使用数据库中存储的数据模型,但是不需要在该模型之上建立逻辑模型。当开发中的系统是一个原型系统或者已经知道其生命周期较短,期间API不会发生变化的时候,两层应用程序是理想的。典型情形下,这种方式用于小型的应用程序,它们的开发成本和时间都很少。,三层C/S架构,相当频繁的重复使用是一个主要的设计考虑因素,在这种情形下需要建立应用程序模型以允许它的一部分被多个用户
9、界面查看组件重复使用。它有一个指导方针是,在应用程序需要相同数据的多个视图的任何时候,开发者应该考虑使用三层方式代替两层方式。从两层模型迁移到三层模型需要考虑的主要问题包括适当的网络资源的可用性和管理并发数据访问的加锁方案。,抽象机模型,抽象机模型也称为分层模型,是建立子系统的接口模型。它把子系统组织成一系列的层次,每一层提供一组服务,每一层定义为一个抽象机。例如:网络协议OSI参考模型,系统控制模型,集中式控制模型调用返回模型:这是一个自上而下的子过程模型。控制始于系统(程序)的顶层,在子系统(程序)调用过程中,控制逐步传递到更低的层次中。该模型适用于顺序执行的系统。管理者模型:这是一种适用
10、于并发系统的模型。一个系统组件被指定为系统管理者,控制其他系统过程的启动、终止和协调。一个过程就是一个能和其他过程并发执行的子系统或模块。,SOA架构,服务提供者:一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。服务使用者:一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务。服务注册中心:服务发现的支持者;它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。,服务注册中心,服务消费者,
11、服务提供者,注册,发现,调用,并发系统的集中式控制模型,系统控制模型,事件驱动系统广播模型:发生的事件广播到所有子系统,任何能处理该事件的子系统都会响应。该模型适用于基于网络的分布式系统。广播模型中的子系统注册其感兴趣的特别事件广播模型的优点是进化比较简单缺点是子系统都知道是否和什么时候处理事件,这可能会引起冲突。中断驱动模型:由中断处理器对来自外部的中断进行检测,然后在其他组件中处理这些中断。该模型适用于对定时有严格要求的实时系统。只用在硬件实时系统中,要求对一些事件能做出及时响应,总线架构,像水管一样随意接入像PCI总线一样即插即用,BusinessIntelligenceServices
12、,ServiceRegistry,B2BInteractions,CollaborationTools,Portal Service,Applications&Data,软件的体系结构模式,并发性系统必须以一种模拟并行的方式来操作多个任务操作系统进程管理模式任务调度器模式包括一组含有tick()操作的活动对象持久性如果数据从创建它的进程执行以来一直存在,则该数据是持久性存在的数据。数据库管理系统模式将DBMS的存储和存取能力用于应用系统的体系结构中。应用级的持久模式在应用体系结构中建立了持久性特征。分布性强调系统或系统中构件或模块在一个分布的环境中相互通信的方式。分布性问题有两个元素:一是实体
13、间连接方式二是实体间通信的特性代理模式是一种普遍的体系结构模式CORBA就是代理模式的一个范例,小结,设计的基本原理和概念包括模块化、抽象、体系结构、信息隐蔽、模块独立、逐步求精和重构等。软件体系结构提供了待建系统的整体视图,它描述软件构件或模块的结构和组织、构件或模块的性质以及他们之间的连接。,第9章 结构化设计方法,结构化设计阶段数据流设计方法面向数据的设计结构化程序设计案例分析,结构化设计概述,结构化设计方法(Structured Design,SD)是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础上发展起来的。结构化设计方法用模块结构图来表达程序模块之间的关系。软件设计分为
14、两个阶段:概要设计:面向数据流设计方法详细设计:结构化程序设计方法,软件结构设计,软件结构设计也称总体设计,确定软件的结构以及各组成成分(子系统或模块)之间的相互关系。软件结构设计的主要任务是:将系统划分成模块;决定每个模块的功能;决定模块的调用关系;决定模块的界面,即模块间传递的数据。软件结构设计阶段的主要任务是通过数据流图来确定系统的结构图。在软件结构设计阶段,结构化设计主要采用面向数据流的设计方法。,软件结构设计过程,设计供选择的方案选取合理的方案推荐最佳方案功能分解和设计软件结构数据库设计制定软件设计测试计划编制设计文档审查和复审,软件结构图,软件结构图(Structure Chart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第五 结构 设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5641046.html