软件工程与实践第3章 软件设计

上传人:xuz****an 文档编号:186554517 上传时间:2021-07-19 格式:PPT 页数:55 大小:1.24MB
返回 下载 相关 举报
软件工程与实践第3章 软件设计_第1页
第1页 / 共55页
软件工程与实践第3章 软件设计_第2页
第2页 / 共55页
软件工程与实践第3章 软件设计_第3页
第3页 / 共55页
软件工程与实践第3章 软件设计_第4页
第4页 / 共55页
软件工程与实践第3章 软件设计_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《软件工程与实践第3章 软件设计》由会员分享,可在线阅读,更多相关《软件工程与实践第3章 软件设计(55页珍藏版)》请在金锄头文库上搜索。

1、第第 三三 章章 软件设计是软件开发的关键步骤,直接影响软 件质量。软件设计阶段要解决“如何做”的问题。 一、一、软件设计阶段的任务软件设计阶段的任务 将分析阶段获得的需求说明转换为计算机中可 实现的系统。包括: 3.1 3.1 软件设计概述软件设计概述 软件体系结构的设计 用户界面的设计 数据结构的设计 算法的设计 即软件设计的任务是通过多项设计,构造一个 高内聚低耦合的软件模型。 过程设计 系统结构设计数据设计 界面设计 软件设计 从工程管理的角度来看,软件设计分两步完成,分 为总体设计(概要设计)和详细设计两个阶段。 概要设计。将软件需求转化为数据结构和软件的系 统结构。 详细设计。通过

2、对结构表示进行细化,得到软件详 细的数据结构和算法。 软件设计工作流程 需求 说明书 复 审 软件结构可接受 模块描述 复 审 修 改修 改 总体 设计 详细 设计 二、软件设计的工作流程二、软件设计的工作流程 三、软件设计的目标三、软件设计的目标 软件设计的目标就是构造一个高内聚低耦合的 软件模型。 软件 设计设计 高可靠 性 高可维 护性 高可理 解性 高效率 软件设计的目标 衡量软件设计的目标的准则: 软件实体有明显的层次结构,利于软件元素间控制; 软件实体应该是模块化的,模块具有独立功能; 设计规格说明清晰、简洁、完整和无二义性。 软件实体与环境的界面清晰; 3.1.1 软件体系结构设

3、计 软件体系结构确定了系统的组织结构和拓扑结构 ,显示了系统需求和构成系统的元素之间的对应关系 ,提供了一些设计决策的基本原理。 体系结构的设计过程的主要活动: 1.系统分解将系统分解为若干相互作用的子系统。 2.控制建模建立系统各部分间控制关系的一般模型。 3.模块分解 将子系统进一步划分为模块。 注意:往往子系统与模块之间没有明显界限. 体系结构设计是软件设计的第一个阶段,该阶段侧 重于系统宏观结构的设计,而不关心模块的内部算法。 分为集中式的仓库模型、分布式结构等 一、仓库模型(The repository model) 也称“容器模型 ”,是一种集中式的模型。中央数 据仓库存储各个子系

4、统共享的数据,其它的子系统可 以直接访问这些共享数据。子系统之间紧密耦合。 中央数据仓库(Repository) 子系统1子系统2子系统n 仓库结构 一、仓库模型(The repository model) 设计编辑器代码生成器 设计分析器报告生成器 设计转换器 项 目 存 储 程序编辑器 集成CASE工具集的体系结构 各子系统共享中央数据库中的数据共享容器模型 各子系统有自己的数据库,子系统之间通过消息传 递实现数据交换。 适宜命令控制系统、CAD系统 仓库模型的主要优缺点: 优点: 1.共享大数据量的有效方法。 2.子系统不必关心其它的子系统如何使用它所产生的数 据。 3.易于将新子系统集

5、成,若新子系统也采用相同规范 。 缺陷: 1.为了共享数据 ,各子系统必须有一致的数据视图 ,不 可避免地会影响了整个系统的性能。 2.子系统的改变,使产生的数据结构也可能发生改变。 3.统一的数据库 结构(备份、安全、访问控制和恢复的 策 ),将影响子系统的效率 。 二、 客户机/服务器模型(Client/Server Architectural Model) C/S结构是一种分布式模型,采用发请求、得结 果的模式: 客户机 向服务器发出请求(数据请求、网页请求、 文件传输请求等等), 服务器 响应请求,进行相应的操作,将结果回传给 客户机,客户机再将格式化后的结果呈现给用户。 C/S结构的

6、应用都由三个相对独立的逻辑部分组成: 用户界面 应用逻辑 数据访问 三种逻辑之间的关系 1. 两层客户机/服务器模型 2. Two Tier Client/Server Architectural Model 服务器1 网络 服务器2服务器M 客户1客户2客户N 两层Client/Server结构 请求 结果 请求 C/S的工作模式是一种远程过程调用(RPC,Remote Procedure Call)模式,允许客户端和服务器端有不同 的软硬平台。 电影图片库的系统的体系结构 client1client2client4client3 Wide-bandwidth netwok Catalogu

7、e server catalogue video server Film clip files picture server digitised photographs hypertext server hypertext web 例:Two Tier Client/Server Architectural Model 完整的应用包含三个相对独立的逻辑部分,而两层的 C/S结构只有两个端应用。应用逻辑应该映射到哪一端上 呢? 三种情况: 网 络 用户界面 客户端逻 辑应用 服务端逻辑 应用 客户端用户界面 逻辑应用 数据访问 用户界面 逻辑应用 数据访问 服务器 应用逻辑层的映射情况 数据访问

8、 C/S应用3C/S应用1C/S应用2 两层C/S架构将数据表示和处理逻辑分开 ,但应用逻 辑和两端之一是紧耦合的 ,不适宜多用户、多数据库、 非安全的网络环境。 2.三层/多层应用模型(Three/Multi Tier Model) 第一级是数据库管理结点(database management node)。 第二级或中间级是“商业逻辑结点” (business logic node),是指 具体应用中实施的 程序逻辑和法则。 第三级是用户界面级,强调高效、方便易用的用户界面。 Database management node (数据库管理结点) business logic node(商业

9、逻辑结点) Security (安全) Event (事件) Search (搜索) ClientA ClientDClientB ClientC 服 务 器 客 户 机第一级 第二级 第三级 客户端 用户界面 服务器 数据访问 多层应用模型 网 络 应用服务器1 应用逻辑 应用服务器n 应用逻辑 在多层模型中,中间层会用到应用服务,包括事务服 务、消息服务等等。常见的事务服务器有Microsoft Transaction Server,消息服务器有Microsoft Message Queue。 三、分布式对象结构(Distributed Objects Architecture) 在C/S

10、模型中,客户和服务器在服务/请求上的差别 ,在一定程度上限制了系统的灵活性和可扩展性。 采用分布式对象结构 : “对象(Object)”提供服务的系统组件(System Component)。 每个对象在逻辑上是平等的,它们可以互相为对 方提供所需的服务。 提供服务的对象就是服务器,而提出服务请求的 对象就是客户。 “软件总线(Software Bus)”的中间件(Middleware) 即对象请求代理(Object Request Broker,简称ORB) 分布式对象结构具有很好的开放性和透明性,用 户可以非常方便地在总线上添加、更新或删除组件对 象。 软件总线(ORB) O1 S(O1)

11、 O2 S(O2) On S(On) 分布式对象结构 流行的ORB技术标准有: 1.CORBA(Common Object Request Broker Architecture) 2. 公共对象请求代理体系结构。由对象管理组织OMG (Object Management Group)提出的应用软件体系结构 和对象技术规范。 3.2.COM(Distributed Component Object Model) 4. 组件对象模型。为组件之间、组件与应用程序之间 的通信和互操作提供了统一的标准和技术规范,使不同语 言开发的组件可进行基于组件的软件开发。 3. EJB(Enterprise Ja

12、va Bean) 由Sun公司定义的规范,EJB构件是实现EJB规范的 Java构件,完成企业级应用中的业务逻辑。EJB构件驻留在 EJB容器中。 四、 抽象机模型 又称为分层模型,通常用于建立子系统的接口模型。每 层提供一组服务,每层定义一个抽象机。典型的例子: 应用层协议 表示层协议 会晤层协议 传输层协议 物 理 介 质 应用层 表示层 会晤层 传输层 网络层 数据链路层 物理层 应用层 表示层 会晤层 传输层 网络层 数据链路层 物理层 网络层 数据链路层 物理层 网络层 数据链路层 物理层 中继系统 中继系统 主机系统主机系统 ISO/OSI ISO/OSI 开放系统互连参考模型开放

13、系统互连参考模型 优点:支持增量式开发。 缺点:系统构成,性能保证较困难。 五、控制摸型 考虑子系统之间的控制流。控制方式分为: 1.集中式控制 主程序 程序1程序2程序3 程序11程序12程序31程序32 控制的调用返回模型 2.事件驱动系统 由外部产生的事件来驱动系统 分为: 广播模型 中断驱动的模型 系统控制器 计算进程用户界面故障处理器 传感器进程传动装置进程 实时系统的集中式模型 1.软件结构的准则 2. 模块化准则 3.软件独立性准则 3.2 3.2 软件设计准则软件设计准则 软件设计是软件开发过程的重要阶段,对保证 软件系统的质量起着关键作用。但是如何保证软件 设计的质量呢?有以

14、下经过长期考验的设计准则: 这些设计准则直接影响到体系结构的设计过程 的主要活动系统分解和模块分解。 软件结构表示软件的系统结构,它是软件模块 间关系的表示,均表示为层次关系。 软 件 结 构 示 意 图 顶层 1层 2层 A BCD EFGH IJKLM N 深度 宽度 扇入为2 扇出为3 扇入为3 宽度 深度 宽度 3层 4层 一、软件结构的准则 深度:表示软件结构中从顶层模块到最底层模块 的层数; 宽度:表示控制的总分布; 扇出数:指一个模块直接控制下属的模块个数; 扇入数:指一个模块的直接上属模块个数。 一个好的软件结构的形态准则是:顶部宽度小, 中部宽度最大,底部宽度次之;在结构顶部

15、有较高的 扇出数, 在底部有较高的扇入数。 有 关 指 标 所谓模块化就是将系统划分成若干模块,每个模 块完成一个子功能,把这些模块集中起来组成一个整 体,以满足所要求的整个系统的功能。 我们利用模块化来降低软件复杂度。注意选择分 解的最佳模块数。 二、模块化准则 三、软件独立性准则 软件独立性的含义是指开发具有功能专一,模 块之间无过多相互作用的模块。又称为模块独立性准 则。 这种类型的模块可以并行开发,开发容易,能减 少错误的影响,使模块容易组合、修改及测试。 耦合性 用于描述模块之间联系的紧密程度。 内聚性 用于描述模块内部联系的紧密程度。 软件独立性的度量标准是两个定性指标: 耦合性的

16、几种类型耦合性的几种类型 内容耦合 公共耦合 控制耦合 复合耦合 数据耦合 高高耦合性耦合性 低低 偶然型 逻辑型 瞬时型 通讯型 顺序型 弱弱内聚性 内聚性 强强 功能型 内聚性的几种类型内聚性的几种类型 3.3 结构化设计方法 SD(Structured Design)法与SA、SP法前后衔接 ,是结构化开发方法的核心。 一、SD 法的基本概念 1、SD 法的两个阶段 总体设计 任务: 解决系统的模块结构,即分解模块,确定 模块功能及系统模块的层次结构。 文档:模块结构图及其模块功能说明。 详细设计 对模块图中每个模块的过程进行描述,常用的 描述的方式有:伪代码,流程图,N-S图,PAD图 等。 2、SD 法的设计步骤 从DFD图导出初始的模块结构图(SC)。 按照SD法设计总则,改进模块结构图。 注意:模块结构图不同于“框图”。 软件 层次性 : 反映软件整体的性质 (结构图) 过程性 : 反映局部的性质 (框图) 3、DFD图的分类 中心变换型(transform center) _ 变换分析 事务处理型(transaction) _ 事务分析 3.3 结构化设计方法(续) 这

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

当前位置:首页 > 高等教育 > 大学课件

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