当前位置:文档之家› 第3章 软件工程概要设计和详细设计

第3章 软件工程概要设计和详细设计


分布式结构的主要优势
① 资源共享:系统中每个服务节点上的资源都 可以被系统使用 ② 开放性高:系统可以方便增删不同软、硬件 结构的节点 ③ 可伸缩性好:系统可以方便的增删新的服务 资源以满足需要 ④ 容错能力强:分布式系统中的信息冗余可以 容忍一定的软、硬件故障 ⑤ 透明性高:系统中的结点一般只需知道服务 的位置而不必清楚系统的结构。
•客户端的功能单一,变得更瘦;
•每一层可以被单独改变;
•降低了部署与维护的开销,提高了灵活性、可伸缩性
•应用程序各部分之间松散耦合,从而使应用程序各部 分的更新相互独立
•业务逻辑集中放在服务器上由所有用户共享,使得系 统的维护和更新变得简单,也更安全。
现在越来越多的应用采用多层结构,以适应不断 变化的用户需求。
三 软件设计目标
软件设计的目标 就是构造一个高内聚低耦合 的软件模型。
高可靠 性 高效率 高可维 护性
软件 设计
软件设计的目标
高可理 解性
可  根据以下准则来衡量软件设计的目标:
⑴ 软件实体有明显的层次结构,利于软件元素间 控制; ⑵ 软件实体应该是模块化的,模块具有独立功能; ⑶ 软件实体与环境的界面清晰; ⑷ 设计规格说明清晰、简洁、完整和无二义性。 常用的设计方法有: SD法、 OOD法、 Jackson法、 HIPO法、 Parnas法、 Warnier法等。
子系统1 子系统2
……
子系统n
中央数据仓库(Repository) 仓库结构
各子系统共享中央数据库中的数据—共享容器模型 各子系统可以有自己的数据库,子系统之间通过消 息传递实现数据交换。
设计编辑器 设计转换器 代码生成器 程序编辑器
项目存储
设计分析器
报告生成器
集成CASE工具集的体系结构
适宜命令控制系统、CAD系统
二、分布式结构(Distributed System Architecture)
仓库模型的特点是各种功能紧紧耦合在一起,所 有计算都在一台主机系统中完成,主机系统压力很大。 解决方案: 1. 采用更强劲的处理器,或者多处理器 2. 采用分布式结构,充分发掘网络计算能力,实现 网络计算 分布式结构中,合作的多方都会利用各自的计算 能力负责一定的计算工作,从而提高整个系统的能力 和效率。
三、 客户机/服务器模型(Client/Server Architectural Model) C/S结构是一种分布式模型,采用发请求、得结 果的模式: 客户机 向服务器发出请求(数据请求、网页请求、 文件传输请求等等), 服务器 响应请求,进行相应的操作,将结果回传给 客户机,客户机再将格式化后的结果呈现给用户。 C/S结构的应用都由三个相对独立的逻辑部分组成:
3.2 软件体系结构设计
软件体系结构提供了结构、行为和属性的高级抽 象,确定了系统的组织结构和拓扑结构,显示了系统 需求和构成系统的元素之间的对应关系,提供了一些 设计决策的基本原理。 体系结构的设计过程的主要活动: 1.系统分解—将系统分解为若干相互作用的子系统。 2.控制建模—建立系统各部分间控制关系的一般模型。
•界面设计是对系统边界的描述,用户界面是用户和 系统进行交互的工具,人机接口直接影响软件的寿命。
二 软件设计阶段
软件设计分为总体设计和详细设计两个阶段。 其工作流程可用下图表示:
修 需求 说明书 软件 总体 结构 设计 改 修 改 设计说 明书
复审
详细 可接受 设计 模块描述
配,可以实现进程迁移。
五、 中间件(Middleware) 现代应用系统的特点: •分布性:整个任务不只是在单机上运行、而是在网络 中多台计算机上的相关应用共同协作完成,这需要考虑 网络传输、数据安全、数据一致性、同步等诸多问题
•异构性:支持应用的计算机硬件、操作系统、网络协 议、数据库系统,以及开发工具种类繁多,需要考虑数 据表示、调用接口、处理方式等诸多问题 •动态协作性:参与协作的应用允许位置透明性、迁移 透明性、负载平衡性等需求。
ORB保证了系统通信的透明性,系统的各个部分无缝 的集成在一起。 流行的ORB技术标准有两种: CORBA(Common Object Request Broker Architecture) DCOM(Distributed Component Object Model) 分布式对象结构具有优良特性: 1.可在系统布署完成后,再具体考虑服务的分布和 如何提供服务的问题。 2.具有开放式结构,提供了极好的灵活性和可伸缩 性。可方便插入服务,可动态加载服务。
例:Two Tier Client/Server Architectural Model
client1
client2
client3
client4
Wide-bandwidth netwok
Catalogue server
video server
catalogue
Film clip files
picture server digitised photographs
在多层模型中,中间层会用到应用服务,包括事务服 务 、 消 息 服 务 等 等 。 常 见 的 事 务 服 务 器 有 Microsoft Transaction Server , 消 息 服 务 器 有 Microsoft Message Queue。
客户端 用户界面
应用服务器1
应用逻辑

应用服务器n
O1 S(O1)
O2
On

S(O2) 软件总线(ORB) S(On)
分布式对象结构
分布式对象结构中对象可能分布在网络的各个 节点而不是集中在某一台硬件服务器上。软件总线 可以将分散的对象提供的服务串起来。 “软件总线(Software Bus)”的中间件(Middleware) 即对象请求代理(Object Request Broker,简称ORB) 分布式对象结构具有很好的开放性和透明性, 用户可以非常方便地在总线上添加、更新或删除组 件对象。
用户界面:数据表示层,实现与用户交互
应用逻辑:业务逻辑层,进行具体运算和数据处理 数据访问:数据访问层,完成数据查询、修改、更新等任务
三种逻辑之间的关系
1. 两层客户机/服务器模型 Two Tier Client/Server Architectural Model
客户1 客户2 客户N 请求 网络 请求 服务器1 服务器2 两层Client/Server结构 服务器M
1、设计阶段结束要交付的文档是设计说明书,根据 设计方法的不同,有不同的设计文档。
2、每个设计步骤完成后,都应进行复审。
•从工程管理的角度来看,软件设计分两步完成;分 为总体设计(概要设计)和详细设计两个阶段。 •首先作总体设计,将软件需求转化为数据结构和软 件的系统结构,划分出系统的物理元素:程序、数据 库、过程、文件、类等;然后是详细设计,即过程设 计,通过对结构表示进行细化,得到软件详细的数据 结构和算法。
C/S应用1 客户端 C/S应用2 C/S应用3
用户界面 逻辑应用
用户界面 客户端逻 辑应用 网 络
用户界面
服务器
数据访问
服务端逻辑 应用
逻辑应用 数据访问
数据访问
应用逻辑层的映射情况
两层C/S架构将数据表示和处理逻辑分开 ,功能相对单一, 维护和升级比集中式结构简单。但应用逻辑和两端之一是紧耦 合的 ,不适宜多用户、多数据库,非安全的网络环境。
3.模块分解 — 将子系统进一步划分为模块。
完整的系统都是由若干功能相对独立的子系统聚合 而成的,每个子系统又都通过某种方式来共享数据。
注意: 往往子系统与模块之间没有明显界限.
体系结构设计是软件设计的第一个阶段,该阶段侧 重于系统宏观结构的设计,而不关心模块的内部算法。
体系结构的分类:
一、仓库模型(The repository model) 也称“容器模型 ”,是一种集中式的模型。各子 系统可以直接访问中央数据仓库存储的共享数据。子 系统之间紧密耦合。
hypertext server
hypertext web
电影图片库系统的体系结构
2.三级/多级应用模型(Three/Multi Tier Model)
第一级是数据库管理结点(database management node)。 第二级或中间级是“商业逻辑结点” (business logic node), 是指具体应用中实施的程序逻辑和法则。 第三级是用户界面级,强调高效、方便易用的用户界面。
•数据设计侧重于软件数据结构的定义。确定数据的 类型,组织、存取方式,相关程度。
•系统结构设计定义软件系统的整体结构,是软件开 发的核心步骤,在设计步骤中,建立软件主要成份之 间的关系。合理的模块划分可以降低软件开发的复杂 度,同时也能提高软件的可重用性。 •过程设计则是把结构成份转换成软件的过程性描述。
分布式结构主要不足
① 复杂性:分布式系统比集中式系统要复杂得多, 集中式系统的性能主要依赖于主机的处理能力, 而分布式系统的性能还依赖于网络带宽
② 安全性:网络环境面临着各种威胁,如病毒、 木马、非法访问,安全问题十分突出
③ 可管理性:开放性造成异构性,造成管理困难 ④ 不可预知性:系统响应时间受网络负载等网络 环境的影响。
ClientA ClientB ClientC ClientD
第三级
客 户 机
business logic node(商业逻辑结点)

服 务 器
Security
(安全)

Event
(事件)

Search
(搜索)
第二级
Database management node
(数据库管理结点)
第一级
结果
C/S的工作模式是一种远程过程调用(RPC,Remote Procedure Call)模式,允许客户端和服务器端有不同的软 硬平台,客户与服务器不是一对一的,体现系统开放性。
相关主题