第3章软件工程概要设计和详细设计_第1页
第3章软件工程概要设计和详细设计_第2页
第3章软件工程概要设计和详细设计_第3页
第3章软件工程概要设计和详细设计_第4页
第3章软件工程概要设计和详细设计_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

1、第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 软件设计就是根据所表示的信息域的软件软件设计就是根据所表示的信息域的软件 需求,以及功能和性能需求,进行数据结构设需求,以及功能和性能需求,进行数据结构设 计、系统结构设计、过程设计(算法设计)、计、系统结构设计、过程设计(算法设计)、 界面设计。界面设计。 软件设计是软件开发的关键步骤,直接影软件设计是软件开发的关键步骤,直接影 响软件质量响软件质量。软件设计阶段要解决软件设计阶段要解决“如何做如何做” 的问题。的问题。 第第3章软件工程概要设计和详细设章软件工

2、程概要设计和详细设 计计 将需求阶段获得的需求说明将需求阶段获得的需求说明 (模型)转换为计算机中可实现的系统。设(模型)转换为计算机中可实现的系统。设 计阶段主要任务是计阶段主要任务是: : 软件体系结构的设计软件体系结构的设计 数据结构的设计数据结构的设计 用户界面的设计用户界面的设计 算法的设计算法的设计 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 软件软件涉及多方面,可分为总体设计和详细设计。涉及多方面,可分为总体设计和详细设计。 过程设计过程设计 系统结构设计系统结构设计数据设计数据设计 界面设计界面设计 软件设计软件设计 任务任务 数据设计侧重数据设计侧重 于

3、软件数据结于软件数据结 构的定义。构的定义。 系统结构设计定义软件系统的整体结构,系统结构设计定义软件系统的整体结构, 是软件开发的核心步骤,在设计步骤中,是软件开发的核心步骤,在设计步骤中, 建立软件主要成份之间的关系。建立软件主要成份之间的关系。 界面设计是对系统边界的描述,界面设计是对系统边界的描述, 是用户和系统进行交互的工具。是用户和系统进行交互的工具。 过程设计则是把结过程设计则是把结 构成份转换成软件构成份转换成软件 的过程性描述。的过程性描述。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 数据设计侧重于软件数据结构的定义。确定数据的数据设计侧重于软件数据结

4、构的定义。确定数据的 类型,组织、存取方式,相关程度。类型,组织、存取方式,相关程度。 系统结构设计定义软件系统的整体结构,是软件开系统结构设计定义软件系统的整体结构,是软件开 发的核心步骤,在设计步骤中,建立软件主要成份之发的核心步骤,在设计步骤中,建立软件主要成份之 间的关系。合理的模块划分可以降低软件开发的复杂间的关系。合理的模块划分可以降低软件开发的复杂 度,同时也能提高软件的可重用性。度,同时也能提高软件的可重用性。 过程设计则是把结构成份转换成软件的过程性描述。过程设计则是把结构成份转换成软件的过程性描述。 界面设计是对系统边界的描述,用户界面是用户和界面设计是对系统边界的描述,用

5、户界面是用户和 系统进行交互的工具,人机接口直接影响软件的寿命。系统进行交互的工具,人机接口直接影响软件的寿命。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 软件设计分为软件设计分为总体设计总体设计和和详细设计详细设计两个阶段。两个阶段。 其工作流程可用下图表示:其工作流程可用下图表示: 总体总体 设计设计 需求需求 说明书说明书 复审复审 软件软件 结构结构 修修 改改 详细详细 设计设计 可接受可接受 模块描述模块描述 复审复审 修修 改改 设计说设计说 明书明书 1 1、设计阶段结束要交付的文档是设计说明书,根据设、设计阶段结束要交付的文档是设计说明书,根据设 计方

6、法的不同,有不同的设计文档。计方法的不同,有不同的设计文档。 2 2、每个设计步骤完成后,都应进行复审。、每个设计步骤完成后,都应进行复审。 二二 软件设计阶段软件设计阶段 软件设计工作流程图软件设计工作流程图 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 从工程管理的角度来看,软件设计分两步完成;分从工程管理的角度来看,软件设计分两步完成;分 为总体设计(概要设计)和详细设计两个阶段。为总体设计(概要设计)和详细设计两个阶段。 首先作总体设计,将软件需求转化为数据结构和软首先作总体设计,将软件需求转化为数据结构和软 件的系统结构,划分出系统的物理元素:程序、数据件的系统结

7、构,划分出系统的物理元素:程序、数据 库、过程、文件、类等;然后是详细设计,即过程设库、过程、文件、类等;然后是详细设计,即过程设 计,通过对结构表示进行细化,得到软件详细的数据计,通过对结构表示进行细化,得到软件详细的数据 结构和算法。结构和算法。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 软件软件就是构造一个高内聚低耦合就是构造一个高内聚低耦合 的软件模型。的软件模型。 软件软件 高可靠高可靠 性性 高可维高可维 护性护性 高可理高可理 解性解性 高效率高效率 软件设计的目标 三三 软件设计目标软件设计目标 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设

8、 计计 可根据以下准则来衡量软件设计的目标:可根据以下准则来衡量软件设计的目标: 软件实体有明显的层次结构,利于软件元素间控软件实体有明显的层次结构,利于软件元素间控 制;制; 软件实体应该是模块化的,模块具有独立功能;软件实体应该是模块化的,模块具有独立功能; 软件实体与环境的界面清晰;软件实体与环境的界面清晰; 设计规格说明清晰、简洁、完整和无二义性。设计规格说明清晰、简洁、完整和无二义性。 常用的设计方法有:常用的设计方法有: SD法、法、 OOD法、法、 Jackson法、法、 HIPO法、法、 Parnas法、法、 Warnier法等。法等。 第第3章软件工程概要设计和详细设章软件工

9、程概要设计和详细设 计计 3.2 3.2 软件体系结构设计软件体系结构设计 软件体系结构提供了结构、行为和属性的高级抽软件体系结构提供了结构、行为和属性的高级抽 象,确定了系统的组织结构和拓扑结构,显示了系统象,确定了系统的组织结构和拓扑结构,显示了系统 需求和构成系统的元素之间的对应关系,提供了一些需求和构成系统的元素之间的对应关系,提供了一些 设计决策的基本原理。设计决策的基本原理。 体系结构的设计过程的主要活动:体系结构的设计过程的主要活动: 1.系统分解系统分解将系统分解为若干相互作用的子系统。将系统分解为若干相互作用的子系统。 2.控制建模控制建模建立系统各部分间控制关系的一般模型。

10、建立系统各部分间控制关系的一般模型。 3.模块分解模块分解 将子系统进一步划分为模块。将子系统进一步划分为模块。 完整的系统都是由若干功能相对独立的子系统聚合完整的系统都是由若干功能相对独立的子系统聚合 而成的,每个子系统又都通过某种方式来共享数据。而成的,每个子系统又都通过某种方式来共享数据。 注意注意: 往往子系统与模块之间没有明显界限往往子系统与模块之间没有明显界限. 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 体系结构设计是软件设计的第一个阶段,该阶段侧体系结构设计是软件设计的第一个阶段,该阶段侧 重于系统宏观结构的设计,而不关心模块的内部算法。重于系统宏观结构的

11、设计,而不关心模块的内部算法。 体系结构的分类:体系结构的分类: 一、仓库模型(一、仓库模型(The repository model) 也称也称“容器模型容器模型 ”,是一种集中式的模型。各子,是一种集中式的模型。各子 系统可以直接访问中央数据仓库存储的共享数据。子系统可以直接访问中央数据仓库存储的共享数据。子 系统之间紧密耦合。系统之间紧密耦合。 中央数据仓库中央数据仓库(Repository) 子系统子系统1子系统子系统2子系统子系统n 仓库结构仓库结构 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 设计编辑器设计编辑器代码生成器代码生成器 设计分析器设计分析器报告生

12、成器报告生成器 设计转换器设计转换器 项项 目目 存存 储储 程序编辑器程序编辑器 集成集成CASE工具集的体系结构工具集的体系结构 各子系统共享中央数据库中的数据各子系统共享中央数据库中的数据共享容器模型共享容器模型 各子系统可以有自己的数据库,子系统之间通过消各子系统可以有自己的数据库,子系统之间通过消 息传递实现数据交换。息传递实现数据交换。 适宜命令控制系统、适宜命令控制系统、CAD系统系统 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 仓库模型的主要优点:仓库模型的主要优点: 1.共享大数据量的有效方法。共享大数据量的有效方法。 2.子系统不必关心其它的子系统如何

13、使用它所产生的数子系统不必关心其它的子系统如何使用它所产生的数 据。据。 3.易于将新子系统集成,若新子系统也采用相同规范易于将新子系统集成,若新子系统也采用相同规范 。 仓库模型的主要缺陷:仓库模型的主要缺陷: 1.为了共享数据,各子系统必须有一致的数据视图为了共享数据,各子系统必须有一致的数据视图 ,不,不 可避免地会影响了整个系统的性能。可避免地会影响了整个系统的性能。 2.子系统的改变,使产生的数据结构也可能发生改变。子系统的改变,使产生的数据结构也可能发生改变。 3.统一的数据库结构统一的数据库结构(备份、安全、访问控制和恢复的策备份、安全、访问控制和恢复的策 略略 ),将影响子系统

14、的效率,将影响子系统的效率 。 4. 集中式的控制使数据和子系统的分布变得非常困难。集中式的控制使数据和子系统的分布变得非常困难。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 二、分布式结构(二、分布式结构(Distributed System Architecture) 仓库模型的特点是各种功能紧紧耦合在一起,所仓库模型的特点是各种功能紧紧耦合在一起,所 有计算都在一台主机系统中完成,主机系统压力很大。有计算都在一台主机系统中完成,主机系统压力很大。 解决方案:解决方案: 1.采用更强劲的处理器,或者多处理器采用更强劲的处理器,或者多处理器 2.采用分布式结构,充分发掘

15、网络计算能力,实现采用分布式结构,充分发掘网络计算能力,实现 网络计算网络计算 分布式结构中,合作的多方都会利用各自的计算分布式结构中,合作的多方都会利用各自的计算 能力负责一定的计算工作,从而提高整个系统的能力能力负责一定的计算工作,从而提高整个系统的能力 和效率。和效率。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 分布式结构的主要优势分布式结构的主要优势 资源共享:系统中每个服务节点上的资源都资源共享:系统中每个服务节点上的资源都 可以被系统使用可以被系统使用 开放性高:系统可以方便增删不同软、硬件开放性高:系统可以方便增删不同软、硬件 结构的节点结构的节点 可伸缩

16、性好:系统可以方便的增删新的服务可伸缩性好:系统可以方便的增删新的服务 资源以满足需要资源以满足需要 容错能力强:分布式系统中的信息冗余可以容错能力强:分布式系统中的信息冗余可以 容忍一定的软、硬件故障容忍一定的软、硬件故障 透明性高:系统中的结点一般只需知道服务透明性高:系统中的结点一般只需知道服务 的位置而不必清楚系统的结构。的位置而不必清楚系统的结构。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 分布式结构主要不足分布式结构主要不足 复杂性:分布式系统比集中式系统要复杂得多,复杂性:分布式系统比集中式系统要复杂得多, 集中式系统的性能主要依赖于主机的处理能力,集中式

17、系统的性能主要依赖于主机的处理能力, 而分布式系统的性能还依赖于网络带宽而分布式系统的性能还依赖于网络带宽 安全性:网络环境面临着各种威胁,如病毒、安全性:网络环境面临着各种威胁,如病毒、 木马、非法访问,安全问题十分突出木马、非法访问,安全问题十分突出 可管理性:开放性造成异构性,造成管理困难可管理性:开放性造成异构性,造成管理困难 不可预知性:系统响应时间受网络负载等网络不可预知性:系统响应时间受网络负载等网络 环境的影响。环境的影响。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 三、三、 客户机客户机/服务器模型服务器模型(Client/Server Archite

18、ctural Model) C/S结构是一种分布式模型,采用发请求、得结结构是一种分布式模型,采用发请求、得结 果的模式:果的模式: 客户机客户机 向服务器发出请求向服务器发出请求(数据请求、网页请求、数据请求、网页请求、 文件传输请求等等文件传输请求等等), 服务器服务器 响应请求,进行相应的操作,将结果回传给响应请求,进行相应的操作,将结果回传给 客户机,客户机再将格式化后的结果呈现给用户。客户机,客户机再将格式化后的结果呈现给用户。 C/S结构的应用都由三个相对独立的逻辑部分组成:结构的应用都由三个相对独立的逻辑部分组成: 用户界面:数据表示层,实现与用户交互用户界面:数据表示层,实现与

19、用户交互 应用逻辑:业务逻辑层,进行具体运算和数据处理应用逻辑:业务逻辑层,进行具体运算和数据处理 数据访问:数据访问层,完成数据查询、修改、更新等任务数据访问:数据访问层,完成数据查询、修改、更新等任务 三种逻辑之间的关系 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 1. 两层客户机两层客户机/服务器模型服务器模型 Two Tier Client/Server Architectural Model 服务器服务器1 网络网络 服务器服务器2服务器服务器M 客户客户1客户客户2客户客户N 两层两层Client/Server结构结构 请求请求 结果结果 请求请求 C/S的工

20、作模式是一种远程过程调用的工作模式是一种远程过程调用(RPC,Remote Procedure Call)模式,允许客户端和服务器端有不同的软模式,允许客户端和服务器端有不同的软 硬平台,客户与服务器不是一对一的,体现系统开放性。硬平台,客户与服务器不是一对一的,体现系统开放性。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 完整的应用包含三个相对独立的逻辑部分,而两层的完整的应用包含三个相对独立的逻辑部分,而两层的 C/S结构只有两个端应用。应用逻辑应该映射到哪一端上结构只有两个端应用。应用逻辑应该映射到哪一端上 呢?呢? 三种情况:胖客户端三种情况:胖客户端C/S、瘦客

21、户端、瘦客户端B/S 、中间平衡、中间平衡 网网 络络 用户界面用户界面 客户端逻客户端逻 辑应用辑应用 服务端逻辑服务端逻辑 应用应用 客户端客户端用户界面用户界面 逻辑应用逻辑应用 数据访问数据访问 用户界面用户界面 逻辑应用逻辑应用 数据访问数据访问 服务器服务器 应用逻辑层的映射情况 数据访问数据访问 C/S应用应用3C/S应用应用1C/S应用应用2 两层两层C/S架构将数据表示和处理逻辑分开架构将数据表示和处理逻辑分开 ,功能相对单一,功能相对单一, 维护和升级比集中式结构简单。但应用逻辑和两端之一是紧耦维护和升级比集中式结构简单。但应用逻辑和两端之一是紧耦 合的合的 ,不适宜多用户

22、、多数据库,非安全的网络环境。,不适宜多用户、多数据库,非安全的网络环境。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 电影图片库系统的体系结构 client1 1client2 2client4 4client3 3 Wide-bandwidth netwok Catalogue server catalogue video server Film clip files picture server digitised photographs hypertext server hypertext web 例:例:Two Tier Client/Server Archit

23、ectural Model 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 2.三级三级/多级应用模型多级应用模型(Three/Multi Tier Model) 第一级是数据库管理结点第一级是数据库管理结点(database management node)。 第二级或中间级是第二级或中间级是“商业逻辑结点商业逻辑结点” (business logic node), 是指具体应用中实施的程序逻辑和法则。是指具体应用中实施的程序逻辑和法则。 第三级是用户界面级,强调高效、方便易用的用户界面。第三级是用户界面级,强调高效、方便易用的用户界面。 Database manageme

24、nt node (数据库管理结点)(数据库管理结点) business logic node(商业逻辑结点)商业逻辑结点) Security (安全)(安全) Event (事件)(事件) Search (搜索)(搜索) ClientA ClientDClientB ClientC 客客 户户 机机 服服 务务 器器第一级第一级 第二级第二级 第三级第三级 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 客户端客户端 用户界面用户界面 服务器服务器 数据访问数据访问 多层应用模型多层应用模型 网网 络络 应用服务器应用服务器1 应用逻辑应用逻辑 应用服务器应用服务器n 应用逻

25、辑应用逻辑 在多层模型中,中间层会用到应用服务,包括事务服务、在多层模型中,中间层会用到应用服务,包括事务服务、 消息服务等等。常见的事务服务器有消息服务等等。常见的事务服务器有Microsoft Transaction Server,消息服务器有,消息服务器有Microsoft Message Queue。 常见的三层结构是常见的三层结构是BWD(Browser, Web server, Database server)。 三层结构的特点就是应用逻辑都是以组件对象的形式集成到三层结构的特点就是应用逻辑都是以组件对象的形式集成到 Web服务器,加重了服务器,加重了Web服务器的负担,解决方法是

26、将应用逻服务器的负担,解决方法是将应用逻 辑分离出来,把三层结构变为多层结构。辑分离出来,把三层结构变为多层结构。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 多层应用模型的优点多层应用模型的优点 : 客户端的功能单一,变得更瘦;客户端的功能单一,变得更瘦; 每一层可以被单独改变;每一层可以被单独改变; 降低了部署与维护的开销,提高了灵活性、可伸缩性降低了部署与维护的开销,提高了灵活性、可伸缩性 应用程序各部分之间松散耦合,从而使应用程序各部应用程序各部分之间松散耦合,从而使应用程序各部 分的更新相互独立分的更新相互独立 业务逻辑集中放在服务器上由所有用户共享,使得系业务

27、逻辑集中放在服务器上由所有用户共享,使得系 统的维护和更新变得简单,也更安全。统的维护和更新变得简单,也更安全。 现在越来越多的应用采用多层结构,以适应不断现在越来越多的应用采用多层结构,以适应不断 变化的用户需求。变化的用户需求。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 四、分布式对象结构四、分布式对象结构(Distributed Objects Architecture) 在在C/S模型中,客户和服务器在服务模型中,客户和服务器在服务/请求上的差别,请求上的差别, 在一定程度上限制了系统的灵活性和可扩展性。在一定程度上限制了系统的灵活性和可扩展性。 采用分布式对象

28、结构采用分布式对象结构 : “对象对象(Object)”提供服务的系统组件提供服务的系统组件(System Component)。 每个对象在逻辑上是平等的,它们可以互相为对每个对象在逻辑上是平等的,它们可以互相为对 方提供所需的服务。方提供所需的服务。 提供服务的对象就是服务器,而提出服务请求的提供服务的对象就是服务器,而提出服务请求的 对象就是客户。对象就是客户。 每个对象都有一个服务接口,便于提每个对象都有一个服务接口,便于提 供服务。供服务。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 分布式对象结构中对象可能分布在网络的各个节分布式对象结构中对象可能分布在网络的

29、各个节 点而不是集中在某一台硬件服务器上。软件总线可点而不是集中在某一台硬件服务器上。软件总线可 以将分散的对象提供的服务串起来。以将分散的对象提供的服务串起来。 “软件总线软件总线(Software Bus)”的中间件的中间件(Middleware) 即对象请求代理即对象请求代理(Object Request Broker,简称,简称ORB) 分布式对象结构具有很好的开放性和透明性,分布式对象结构具有很好的开放性和透明性, 用户可以非常方便地在总线上添加、更新或删除组用户可以非常方便地在总线上添加、更新或删除组 件对象。件对象。 软件总线软件总线(ORB) O1 S(O1) O2 S(O2)

30、 On S(On) 分布式对象结构分布式对象结构 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 ORB保证了系统通信的透明性,系统的各个部分无缝保证了系统通信的透明性,系统的各个部分无缝 的集成在一起。的集成在一起。 流行的流行的ORB技术标准有两种:技术标准有两种: CORBA(Common Object Request Broker Architecture) DCOM(Distributed Component Object Model) 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 五、五、 中间件(中间件(Middleware) 现代应用系统的

31、特点:现代应用系统的特点: 分布性:整个任务不只是在单机上运行、而是在网络分布性:整个任务不只是在单机上运行、而是在网络 中多台计算机上的相关应用共同协作完成,这需要考虑中多台计算机上的相关应用共同协作完成,这需要考虑 网络传输、数据安全、数据一致性、同步等诸多问题网络传输、数据安全、数据一致性、同步等诸多问题 异构性:支持应用的计算机硬件、操作系统、网络协异构性:支持应用的计算机硬件、操作系统、网络协 议、数据库系统,以及开发工具种类繁多,需要考虑数议、数据库系统,以及开发工具种类繁多,需要考虑数 据表示、调用接口、处理方式等诸多问题据表示、调用接口、处理方式等诸多问题 动态协作性:参与协作

32、的应用允许位置透明性、迁移动态协作性:参与协作的应用允许位置透明性、迁移 透明性、负载平衡性等需求。透明性、负载平衡性等需求。 应用中间件系统可以解决现代应用系统的需要。应用中间件系统可以解决现代应用系统的需要。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 中间件是一种处于系统软件(操作系统和网络软件)中间件是一种处于系统软件(操作系统和网络软件) 与应用软件之间的软件,它能使应用软件之间进行跨与应用软件之间的软件,它能使应用软件之间进行跨 网络的协同工作(也就是互操作),并允许各应用软网络的协同工作(也就是互操作),并允许各应用软 件所涉及的件所涉及的“系统结构、操作系

33、统、数据库和其他应系统结构、操作系统、数据库和其他应 用服务用服务”各不相同。各不相同。 网络网络 应用系统应用系统 中间件中间件 网络软件网络软件 操作系统操作系统 协作协作 应用系统应用系统 中间件中间件 网络软件网络软件 操作系统操作系统 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 中间件在软件领域里扮演越来中间件在软件领域里扮演越来 越重要的角色,它使系统之间的集越重要的角色,它使系统之间的集 成变得更加的平滑和简洁,同时使成变得更加的平滑和简洁,同时使 系统维护的成本和开销降到了最低。系统维护的成本和开销降到了最低。 中间件按照其应用领域分为:中间件按照其应用领

34、域分为: 远程过程调用中间件远程过程调用中间件 分布式对象中间件分布式对象中间件 数据库访问中间件数据库访问中间件 事务处理中间件事务处理中间件 消息中间件消息中间件 其他中间件其他中间件 应用案例:应用案例: 1.数据库中间件数据库中间件ODBC 2. 消息中间件消息中间件 Message Queue 3. 分布式事务处理中间件分布式事务处理中间件 Distributed Transaction Middleware 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 六、六、 分层模型分层模型 层次结构模型将系统划分为若干层次,每层提供一组服层次结构模型将系统划分为若干层次,

35、每层提供一组服 务,并且下层只为它的直接上层服务。典型的例子:务,并且下层只为它的直接上层服务。典型的例子: 应用层协议应用层协议 表示层协议表示层协议 会晤层协议会晤层协议 传输层协议传输层协议 物物 理理 介介 质质 应用层应用层 表示层表示层 会话层会话层 传输层传输层 网络层网络层 数据链路层数据链路层 物理层物理层 应用层应用层 表示层表示层 会话层会话层 传输层传输层 网络层网络层 数据链路层数据链路层 物理层物理层 网络层网络层 数据链路层数据链路层 物理层物理层 网络层网络层 数据链路层数据链路层 物理层物理层 中继系统中继系统 中继系统中继系统 主机系统主机系统主机系统主机系

36、统 优点:支持增量式开发。优点:支持增量式开发。 缺点:系统构成,性能保证较困难。缺点:系统构成,性能保证较困难。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 七、控制摸型七、控制摸型 考虑子系统之间的控制流。控制方式分为:考虑子系统之间的控制流。控制方式分为: 1.集中式控制集中式控制 主程序主程序 程序程序1程序程序2程序程序3 程序程序11程序程序12程序程序31程序程序32 控制的调用返回模型 2.事件驱动系统事件驱动系统 由外部产生的事件来驱动系统由外部产生的事件来驱动系统 分为:分为: 广播模型广播模型 中断驱动的模型中断驱动的模型 系统控制器系统控制器 计算

37、进程计算进程用户界面用户界面故障处理器故障处理器 传感器进程传感器进程传动装置进程传动装置进程 实时系统的集中式模型 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 1.1.软件结构的准则软件结构的准则 2. 模块化准则模块化准则 3.3.软件独立性准则软件独立性准则 软件设计是软件开发过程的重要阶段,对保证软件设计是软件开发过程的重要阶段,对保证 软件系统的质量起着关键作用。但是如何保证软件软件系统的质量起着关键作用。但是如何保证软件 设计的质量呢?有以下经过长期考验的设计准则:设计的质量呢?有以下经过长期考验的设计准则: 第第3章软件工程概要设计和详细设章软件工程概要设计

38、和详细设 计计 软件结构表示软件的系统结构,它是软件模块软件结构表示软件的系统结构,它是软件模块 间关系的表示,均表示为层次关系间关系的表示,均表示为层次关系。 软 件 结 构 示 意 图 顶层顶层 1层层 2层层 A BCD EFGH IJKLM N 深度 宽度 扇入为扇入为2 扇出为扇出为3 扇入为扇入为3 宽度 深度 宽度 3层层 4层层 一、软件结构的准则一、软件结构的准则 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 深度深度:表示软件结构中从顶层模块到最底层模块表示软件结构中从顶层模块到最底层模块 的层数的层数; 宽度宽度:表示控制的总分布;表示控制的总分布;

39、扇出数扇出数:指一个模块直接控制下属的模块个数;指一个模块直接控制下属的模块个数; 扇入数扇入数:指一个模块的直接上属模块个数。指一个模块的直接上属模块个数。 一个好的软件结构的形态准则是:顶部宽度小,一个好的软件结构的形态准则是:顶部宽度小, 中部宽度最大,底部宽度次之;在结构顶部有较高的中部宽度最大,底部宽度次之;在结构顶部有较高的 扇出数,在底部有较高的扇入数。扇出数,在底部有较高的扇入数。 有有 关关 指指 标标 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 例如,过程、函例如,过程、函 数、子程序、宏、类等,是构成软件系统结构的基本数、子程序、宏、类等,是构成软件

40、系统结构的基本 元素。元素。 所谓所谓模块化模块化就是将系统划分成若干模块,每个模就是将系统划分成若干模块,每个模 块完成一个子功能,把这些模块集中起来组成一个整块完成一个子功能,把这些模块集中起来组成一个整 体,以满足所要求的整个系统的功能体,以满足所要求的整个系统的功能。 我们利用模块化来降低软件复杂度。注意选择分我们利用模块化来降低软件复杂度。注意选择分 解的最佳模块数。解的最佳模块数。 二、二、模块化准则模块化准则 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 模块化的目的是将系统模块化的目的是将系统“分而治之分而治之”,模块化能,模块化能 够降低问题的复杂性,使软

41、件结构清晰,易阅读、够降低问题的复杂性,使软件结构清晰,易阅读、 易理解,易于测试和调试,因而也有助于提高软件易理解,易于测试和调试,因而也有助于提高软件 的可靠性。的可靠性。 模块化方法已经为所有工程领域所接受。模块化方法已经为所有工程领域所接受。 模块化的主要优点是,模块化设计降低了软件系模块化的主要优点是,模块化设计降低了软件系 统的复杂性,使得系统容易修改,同时使得系统各个统的复杂性,使得系统容易修改,同时使得系统各个 部分可以并行开发,从而提高了软件的生产率。部分可以并行开发,从而提高了软件的生产率。 模块分解的方法主要有结构化方法和面向对象的模块分解的方法主要有结构化方法和面向对象

42、的 方法。方法。 结构化方法采用自顶向下、逐步求精、模块化。结构化方法采用自顶向下、逐步求精、模块化。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 模块化降低软件复杂度的模块化降低软件复杂度的简单证明简单证明 令:令:C C(X X)表示问题)表示问题 X X 的复杂度函数;的复杂度函数; E E(X X)解决问题)解决问题 X X 所需工作量的复所需工作量的复 杂度函数;杂度函数; 若:有问题若:有问题 P1P1,P2 P2 ; C C(P1P1) C C(P2P2);); 显然:显然:E E(P1P1) E E(P2P2) 由经验:由经验:C C(P1+P2P1+P2

43、) C C(P1P1)+ C+ C(P2P2) 于是:于是:E E(P1+P2P1+P2) E E(P1P1)+ E+ E(P2P2) 将问题(将问题(P1+P2P1+P2)划分为两个问题)划分为两个问题P1P1和和P2P2 后,其工作量和复杂度都降低。后,其工作量和复杂度都降低。 并非模块分得越小越好,因为模块之间接口的复杂度和工并非模块分得越小越好,因为模块之间接口的复杂度和工 作量增加。显然,每个软件系统都有一个最佳模块数作量增加。显然,每个软件系统都有一个最佳模块数M M。注意选。注意选 择分解的最佳模块数。上图描述了模块化与软件成本的关系。择分解的最佳模块数。上图描述了模块化与软件成

44、本的关系。 软件总成本 模块化与软件成本的关系 成本 模块 数目 模块成本 接口成本 最小成本区 M 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 三、软件独立性准则三、软件独立性准则 “模块模块”,又称,又称“构件构件”,一般指用一个名字,一般指用一个名字 可调用的一段程序。它一般具有如下三个基本属可调用的一段程序。它一般具有如下三个基本属 性:性: 功能功能 即指该模块实现什么功能,做什么事情。即指该模块实现什么功能,做什么事情。 必须注意:模块功能,应是该模块本身的功能加必须注意:模块功能,应是该模块本身的功能加 上它所调用的所有子模块的功能。上它所调用的所有子模块的

45、功能。 逻辑逻辑 即描述模块内部怎么做。即描述模块内部怎么做。 状态状态 即该模块使用时的环境和条件。即该模块使用时的环境和条件。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 模块独立性(module independence) 所谓模块的独立性,是指软件系统中每个模块所谓模块的独立性,是指软件系统中每个模块 只涉及软件要求的具体的子功能,而和软件系统中只涉及软件要求的具体的子功能,而和软件系统中 其他模块的接口是简单的。即功能专一,模块之间其他模块的接口是简单的。即功能专一,模块之间 无过多的相互作用的模块。无过多的相互作用的模块。 这种类型的模块可以并行开发,开发容易

46、,能这种类型的模块可以并行开发,开发容易,能 减少错误的影响,使模块容易组合、修改及测试。减少错误的影响,使模块容易组合、修改及测试。 模块独立性的度量标准是两个定性准则:模块独立性的度量标准是两个定性准则: 用于描述模块之间联系的紧密程度。用于描述模块之间联系的紧密程度。 用于描述模块内部联系的紧密程度。用于描述模块内部联系的紧密程度。 模块独立性比较强的模块应该是具有高内聚性和模块独立性比较强的模块应该是具有高内聚性和 低耦合度。低耦合度。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 耦合性是指软件结构中模块相互连接的紧密程耦合性是指软件结构中模块相互连接的紧密程 度

47、,是模块间相互连接性的度量。模块分解的一个度,是模块间相互连接性的度量。模块分解的一个 目标是使块间联系尽可能小,块间联系的大小可从目标是使块间联系尽可能小,块间联系的大小可从 三个方面衡量:三个方面衡量: 数据 方式 作用 少 多 数量 控制 混合 直接 调用 过程 调用 块间联系方式有块间联系方式有“直接引用直接引用” 或或“用过程语句调用用过程语句调用”。 块间传送的共用信息(参数)块间传送的共用信息(参数) 类型,可为类型,可为“数据型数据型”、“控制型控制型”或或“ 混合型混合型”(数据(数据/ /控制型)。控制型)。 块间传送的共用信息的数量。块间传送的共用信息的数量。 第第3章软

48、件工程概要设计和详细设章软件工程概要设计和详细设 计计 模块分解的一个目标是使块间联系尽可能小, 达到这个目标可通过以下措施。 每个模块应采用过程语句(或函数)等间 接调用等方式调用其它模块。 模块间传送的参数为数据型。 模块间公用的信息(如参数等)尽量少。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 内容耦合内容耦合 公共耦合公共耦合 控制耦合控制耦合 复合耦合复合耦合 数据耦合数据耦合 一个模块直接访问另一模块的内部数据。一个模块直接访问另一模块的内部数据。 一个模块不通过正常入口转到另一模块的内部。一个模块不通过正常入口转到另一模块的内部。 一个模块有多个入口。一个

49、模块有多个入口。 两个模块有部分代码重迭。两个模块有部分代码重迭。 AB 进入另一模块内进入另一模块内 A B 部分代码重迭部分代码重迭 Entry1 . Entry2 . 多重入口多重入口 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 (2)公共耦合(Common Coupling) 若干模块通过全局的数据环境相互作用, 全局数 据环境中可能含有全局变量、公用区、内存公共复 盖区、任何存储介质上的文件、物理设备等。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 ()控制耦合(Control Coupling) 传递的信息含 有控制信息。控制 耦合通常会

50、增加系 统的复杂性,适当 分解模块可望消除 控制耦合。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 ()复合耦合(Stamp Coupling)-标记耦合 两模块间传递的参数是复合的数据结 构 (5)数据耦合(Data Coupling) 两模块通过参数交换信息,信息仅限于 数据。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 2. 内聚性(cohesion) 块内联系的类型分为六类块内联系的类型分为六类: : 偶然型偶然型 逻辑型逻辑型 瞬时型瞬时型 通信型通信型 顺序型顺序型 功能型功能型 内聚性表示一个模块内部各种数据和各种处内聚性表示一个模块内

51、部各种数据和各种处 理之间联系的紧密程度,它是从功能的角度来度理之间联系的紧密程度,它是从功能的角度来度 量模块间的联系。显然量模块间的联系。显然, ,块内联系愈紧块内联系愈紧, ,即内聚性即内聚性 愈强愈强, ,模块独立性愈好。模块独立性愈好。 软件总体设计的总则是: “降低块间联系,提高块内联 系”。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 3. 信息隐蔽 每个模块的实现细节对于其他模块来说是隐蔽的。也每个模块的实现细节对于其他模块来说是隐蔽的。也 就是说,模块中所包含的信息(数据和过程)不允许其他就是说,模块中所包含的信息(数据和过程)不允许其他 不需要这些信息

52、的模块使用。不需要这些信息的模块使用。 由于一个软件系统由于一个软件系统 在整个软件生存期内要经过多次修改,在整个软件生存期内要经过多次修改,在划分模块时要采在划分模块时要采 取措施,使得大多数过程和数据对软件的其他部分是隐蔽取措施,使得大多数过程和数据对软件的其他部分是隐蔽 的。这样,在将来修改软件时,可将偶然引入错误所造成的。这样,在将来修改软件时,可将偶然引入错误所造成 的影响限制在一个局部范围之内,的影响限制在一个局部范围之内,不致波及到软件的其他不致波及到软件的其他 部分部分。 面向对象技术比面向过程能更有效的实现信息隐藏。面向对象技术比面向过程能更有效的实现信息隐藏。 由由parn

53、asparnas方法提倡的方法提倡的如下:如下: 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 3.4 3.4 结构化设计方法结构化设计方法 SD(Structured Design)法与)法与SA、SP法前后衔法前后衔 接,是结构化开发方法的核心。接,是结构化开发方法的核心。 一、一、SD SD 法的基本概念法的基本概念 1. SD SD 法的两个阶段法的两个阶段 总体设计总体设计 任务:任务: 解决系统的模块结构,即分解模块,解决系统的模块结构,即分解模块,确定确定 模块功能模块功能及系统模块的层次结构,完成系统体系结及系统模块的层次结构,完成系统体系结 构的描述。构的

54、描述。 文档:模块结构图及其模块功能说明。文档:模块结构图及其模块功能说明。 详细设计详细设计 对模块图中每个模块的过程进行描述,常用的描对模块图中每个模块的过程进行描述,常用的描 述的方式有:伪代码,流程图,结构化流程图(述的方式有:伪代码,流程图,结构化流程图(N-S 图),问题分析图(图),问题分析图(PAD图)等。图)等。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 二、二、SD SD 法的设计步骤法的设计步骤 从从DFDDFD图导出初始的模块结构图图导出初始的模块结构图(SC)(SC)。 中心变换型中心变换型(transform center) _ 变换分析变换

55、分析 事务处理型事务处理型(transaction) _ 事务分析事务分析 按照按照SDSD法设计总则,改进模块结构图。法设计总则,改进模块结构图。 SD法设计总则:自顶向下、逐步求精、模块化。法设计总则:自顶向下、逐步求精、模块化。 注意:注意:模块结构图不同于模块结构图不同于“框图框图”。 软件软件 层次性:层次性:反映软件整体的性质反映软件整体的性质 ( (结构图结构图) ) 过程性:反映局部的性质过程性:反映局部的性质 ( (框图框图) ) 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 这类数据流图可看成是对输入数据进行转换而得到这类数据流图可看成是对输入数据进行转

56、换而得到 输出数据的处理。输出数据的处理。 DFDDFD图可以明显分为图可以明显分为“输入输入处理处理输出输出”三部分。三部分。 (物理输入)(物理输入) (逻辑输入)(逻辑输入) (逻辑输出)(逻辑输出) 输输 入入主加工主加工输输 出出 (物理输出)(物理输出) 检查检查 顺序顺序 检查检查 合理性合理性 扩充扩充 代码代码 核对核对 记录记录 修改修改 压缩压缩 代码代码 格式化格式化 修改修改 数据数据 旧文件旧文件 新文件新文件 中心变换型中心变换型 的的 DFD DFD 图图 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 这类数据流图有一个数据处理中心,按加工的

57、结这类数据流图有一个数据处理中心,按加工的结 果选择一个输出数据流继续执行的处理。果选择一个输出数据流继续执行的处理。 如下图所示:如下图所示: 分类分类 报名报名 付款付款 注销注销 查询查询 复审复审 采用采用“事务分析事务分析”(transaction Analysis)技术技术 事务处理型事务处理型 的的 DFD 图图 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 序号序号内内 容容长度(字节)长度(字节)数据类型数据类型可否修改可否修改 1帐号帐号5数字数字否否 2户名户名30数字字母数字字母可可 3地址地址30数字字母数字字母可可 4省省10字母字母可可 5市市

58、15字母字母可可 6邮政编码邮政编码5数字数字可可 7电话电话7数字数字可可 8类型类型1字母字母否否 9信贷员号信贷员号5数字数字可可 10最近一次业务日期最近一次业务日期6数字数字否否 11最近一次付息日期最近一次付息日期6数字数字否否 12余额余额8数字数字否否 13业务总量业务总量8数字数字否否 14限额限额6数字数字否否 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 要求对贷款文件进行修改,修改信息由卡片要求对贷款文件进行修改,修改信息由卡片 输入,卡片上的修改信息格式如下:输入,卡片上的修改信息格式如下: 15位位 69位位 10位起位起 帐号帐号 空空 修改值

59、修改值1 1* 修改值修改值2 2* .* (序号)序号) 需求分析结果需求分析结果DFD DFD 图图, ,是一种混合的是一种混合的 DFD DFD 图。图。 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 修修 改改 记记 录录 写写 记记 录录 卡片卡片 编编 辑辑 卡卡 片片 检检 查查 顺顺 序序 检检 查查 次次 序序 帐帐 号号 相相 等等 错误 顺序卡片顺序卡片 修改信息修改信息 旧记录旧记录 顺序记录顺序记录 要修改要修改 的记录的记录 不修改不修改 的记录的记录 已修改已修改 的记录的记录 新记录新记录 修修 改改 分分 类类 抽抽 出出 修修 改改 顺序

60、顺序 卡片卡片 修改修改 信息信息 2 3 4 5 6 7 9 需求分析结果需求分析结果 DFD 图图 编辑卡片加工分解编辑卡片加工分解 主加工是?主加工是? 报告报告报告报告 修改信息修改信息 顺序记录顺序记录 新记录新记录 第第3章软件工程概要设计和详细设章软件工程概要设计和详细设 计计 将将DFDDFD图转换为图转换为模块结构图模块结构图 贷款文件贷款文件 管理系统管理系统 取顺序取顺序 记录记录 修改修改 记录记录 打印打印 报告报告 打印打印 记录记录 比较比较 帐号帐号 取修改取修改 信息信息 读旧读旧 记录记录 检查检查 顺序顺序 取取 卡片卡片 编辑编辑 卡片卡片 读卡片读卡片

温馨提示

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

最新文档

评论

0/150

提交评论