第3章 系统设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.Warnier方法的设计技术 Warnier方法的设计技术 Warnier设计方法基本由以下步骤组成: Warnier设计方法基本由以下步骤组成: (1) 分析和确定输人数据和输出数据的逻辑结构, 并用Warnier图描绘这些数据结构; 并用Warnier图描绘这些数据结构; (2) 依据输入数据结构导出程序结构,并用 Warnier图描绘程序的处理层次; Warnier图描绘程序的处理层次; (3) 画出程序流程图,并自上而下地依次给每个处 理框编排序号; (4) 分类写出伪码指令。 Warnier定义了下列三类指令: Warnier定义了下列三类指令: 输入和输出准备; 分支和分支准备; 计算。
Baidu Nhomakorabea
3.2 系统总体设计
系统总体设计是问题求解及建立解答的 高级策略。系统总体设计的主要任务是将 系统分解成易于管理的子系统,并构造系 统的策略,诸如系统运行的软硬件平台、 数据管理策略等,最终得到系统的体系结 构设计模型。
3.2.1 总体布局
系统的高层结构形式包括 (1) 系统分解 (2) 确定并发性 (3) 处理器及任务分配。 (4) 数据存储管理 (5) 全局资源的处理 (6) 选择软件控制机制 (7) 人机交互接口设计
详细设计阶段的工具可分: 详细设计阶段的工具可分: 1.程序流程图 2.盒图(Nassi-Shneiderman图) .盒图(Nassi-Shneiderman图 3.PAD图 PAD图 4.判定表 5.判定树 6.PDL语言 PDL语言
3.4.4 代码设计
(1)方法建模 (1)方法建模 (2) 属性建模 (3) 状态建模 (4) 关系建模
4.部署子系统 UML部署图反映了系统中软件和硬件的物 UML部署图反映了系统中软件和硬件的物 理架构,表示系统运行时的处理节点以及 节点中组件的配置。
3.2.6 总体设计的工具
1.系统流程图 (1)系统流程图的符号 (1)系统流程图的符号 (2) 分层 2.HIPO图 HIPO图
(1) HIPO图的H图 HIPO图的H (2) IPO图 IPO图
3.信息显示 4.用户支持 ① 错误信息 ② 帮助系统
3.4.7 Jackson程序设计方法 Jackson程序设计方法
给出了三种基本结构的表示。 (1) 顺序结构 (2) 选择结构 (3) 重复结构
JSP方法一般通过以下五个步骤来完成设计: JSP方法一般通过以下五个步骤来完成设计: (1) 分析并确定输入数据和输出数据的逻辑结构, 并用Jackson结构图来表示这些数据结构; 并用Jackson结构图来表示这些数据结构; (2) 找出输入数据结构和输出数据结构中有对应关 系的数据单元; (3) 按一定的规则由输入、输出的数据结构导出程 序结构; (4) 列出基本操作与条件,并把它们分配到程序结 构图的适当位置; (5) 用伪码写出程序。
2.识别设计元素 (1) 如果一个“分析类”比较简单,代表着单一的 逻辑抽象,那么可以将其映射为“设计类”。通 常,主动参与者对应的边界类、控制类和一般实 体类都可以直接映射成设计类。 (2) 如果“分析类”的职责比较复杂,很难由单个 “设计类”承担,则应该将其映射成“子系统接 口”。通常,被动参与者对应的边界类被映射成 子系统接口。 (3) 子系统的划分应该符合高内聚低耦合的原则。
3.2.7 模块结构设计
设计软件模块的结构就是要把软件模块组成良好 的层次系统,描述各模块之间的关系。顶层模块 调用它的下层模块以实现程序的完整功能,每个 下层模块再调用更下层的模块,最下层的模块完 成最具体的功能。 软件设计方法主要有面向数据流的设计方法和面 向数据结构的设计方法,在总体设计阶段,主要 采用面向数据流的结构化设计方法,通过把不够 详细的数据流图进一步细化至适当层次,从而映 射出软件结构,用层次图或软件结构图来描述, 可以直接从数据流程图映射出软件结构。
3.Warnier图 Warnier图 单向花括号“{”来区分数据结构的层次,其 单向花括号“{”来区分数据结构的层次,其 中的所有名字都属于同一类信息; 异或符号“⊕ 异或符号“⊕”表示这些信息不能同时出 现; 名字后面的圆括号“( )”中的数字表明这类 名字后面的圆括号“( )”中的数字表明这类 信息在此数据结构中可以重复出现及出现 的次数。
第3章
系统设计
本章要点 系统设计概述 系统设计 数据库设计 用户界面设计 基于Rational Rose2003的 基于Rational Rose2003的UML 建模
第3章
3.1 3.2 3.5 3.4 3.6
系统设计
系统设计的目的和任务 系统总体设计 经典例题讲解 系统详细设计 应用Visio进行数据库建模 应用Visio进行数据库建模
3.4.5 数据库设计
3.4.5 数据库设计 1. 数据库的设计 数据库的设计指数据存储文件的设计,主 要进行以下几方面设计: (1) 概念设计 (2) 逻辑设计 (3) 物理设计。
2. 关系数据库的基本概念 关系数据库在整个数据库领域中占据主导 地位,目前比较流行的关系数据库包括 Oracle、SQLServer、DB2等产品。 Oracle、SQLServer、DB2等产品。 (1) 表与键 (2) 实体关系图 (3) 存储过程与索引
3.2.8 数据存储设计
数据存储管理是系统存储或检索对象的基本设施,它建立 在某种数据存储管理系统之上,并且隔离了数据存储管理 模式的影响。 目前,常用的数据存储管理有三种方式: 数据文件:数据文件是由操作系统提供的存储形式,应用 系统将数据按字节顺序存储,并定义如何以及何时检索数 据。显然,文件形式给应用系统带来更多的灵活性,但是 应用系统需要自己处理并发访问和数据恢复等问题。 关系数据库:在关系数据库中,数据是以表的形式存储在 预先定义好的成为Schema的类型中。表的每一列表示一 预先定义好的成为Schema的类型中。表的每一列表示一 个属性,每一行将一个数据项表示成一个属性值的元组。 关系数据库是一种成熟的技术,使用费用较高而且会产生 性能上的瓶颈。 面向对象数据库:与关系数据库不同的是,面向对象数据 库将对象和关系作为数据一起存储。它提供了继承和抽象 数据类型,但其查询要比关系数据库慢。
3.4.9 基于组件的设计方法
基于组件的设计是使用可重用的组件或 商业组件建立复杂的软件系统,即在确定 需求描述的基础上,开发人员首先进行组 件分析和选择,然后设计或者选用已有的 体系结构框架,复用所选择的组件,最后 将所有的组件集成在一起,并完成系统测 试。
3.8 小结
软件设计包括分而治之、高内聚低耦合、软件复用等基本 原则。面向对象设计是根据已建立的系统分析模型,运用 面向对象技术进行软件设计,通常包括系统设计和对象设 计(或详细设计)两个层次。 系统设计是选择合适的解决方案策略,并将系统划分成若 干子系统,从而建立整个系统的体系结构;对象设计是细 化原有的分析对象,确定一些新的对象、对每一个子系统 接口和类进行准确详细的说明。 关系数据库在整个数据库领域中占据主导地位,面向对象 的许多概念(诸如类继承、接口、聚合等)并不是关系数 据模型的一部分,因此需要使用适当的方法将面向对象设 计中的类映射到关系数据库中的表。 用户界面设计应该以用户为中心,遵循用户控制、一致性、 容错性、美观性和可适应性等一般原则。用户界面应具备 帮助用户使用系统、便捷操作和从错误中恢复的功能,并 支持用户定制和个性化要求。
3.数据存储策略
目前,常用的数据存储管理有三种方式: (1) 数据文件:数据文件是由操作系统提供的存储形式, 应用系统将数据按字节顺序存储,并定义如何以及何时检 索数据。 (2) 关系数据库:在关系数据库中,数据是以表的形式存 储在预先定义好的成为Schema的类型中。表的每一列表 储在预先定义好的成为Schema的类型中。表的每一列表 示一个属性,每一行将一个数据项表示成一个属性值的元 组。关系数据库是一种成熟的技术,使用费用较高而且会 产生性能上的瓶颈。 (3) 面向对象数据库:与关系数据库不同的是,面向对象 数据库将对象和关系作为数据一起存储。它提供了继承和 抽象数据类型,但其查询要比关系数据库慢。
3. 将对象映射到关系数据库 (1) 属性与类的映射 (2) 继承的映射 (3) 关联与聚合的映射
3.4.6 用户界面设计
1.用户界面设计原则 ① 用户控制 ② 界面一致性 ③ 界面容错性 ④ 界面美观性 ⑤ 界面可适应性
2.用户交互方式 ① 直接操作 ② 菜单选择 ③ 命令 ④ 表格填写 ⑤ 自然语言
3.1 系统设计的目的和任务
在设计阶段,我们将集中研究系统的软件实现问 题,即在分析模型的基础上形成实现环境下的设 计模型。一般情况下,它通常包括系统总体设计 和系统详细设计(或对象设计)两个层次。 系统设计的目标是划分子系统并使子系统之间是 高内聚低耦合的,从而提高软件的可理解性和可 维护性。 在软件需求分析阶段,已经搞清楚了软件“做什 么”的问题,并把这些需求通过规格说明书描述 了出来,这也是目标系统的逻辑模型。进入了设 计阶段,要把软件“做什么”的逻辑模型变换为 “怎么做”的物理模型,即着手实现软件的需求, 并将设计的结果反映在“设计规格说明书”文档 中。
2.抽象 3.信息隐蔽 4.模块独立性 5.模块的耦合 6.模块的内聚 7.软件复用
3.2.4 面向数据流的设计方法
变换流 事物流 变换分析 事务分析 软件模块结构的改进
3.2.5 面向对象的设计方法
1.面向对象设计过程 面向对象设计是根据已建立的系统分析模型,运 用面向对象技术进行软件设计,它通常包括系统 设计和对象设计(或详细设计)两个层次。 (1) 系统设计是选择合适的解决方案策略,并将系 统划分成若干子系统,从而建立整个系统的体系 结构; (2) 对象设计是细化原有的分析对象,确定一些新 的对象、对每一个子系统接口和类进行准确详细 的说明。
3.2.2 设计原则
1.模块化 模块是数据说明、可执行语句等程序对象的集合,包含四 种属性: (1) 输入/输出 输入/ 一个模块的输入/ 一个模块的输入/输出都是指同一个调用者。 (2) 逻辑功能 指模块能够做什么事,表达了模块把输入转换成输出的功 能,可以是单纯的输入/ 能,可以是单纯的输入/输出功能。 (3) 运行程序 指模块如何用程序实现其逻辑功能。 (4) 内部数据 指属于模块自己的数据。
3.4 系统详细设计
3.4.1 详细设计阶段的任务 1.算法设计 2.数据结构设计 .数据结构设计 3.物理设计 .物理设计 4.其他设计 .其他设计 5.编写详细设计说明书 6.评审 .评审
3.4.2 详细设计的原则
1.可复用性 2.可扩展性 3.健壮性 4.协作性
3.4.3 详细设计工具
3.4.8 Warnier程序设计方法 Warnier程序设计方法
1.Warnier方法的基本思想 Warnier方法的基本思想 Warnier程序设计方法另一种面向数据结 Warnier程序设计方法另一种面向数据结 构的设计方法,又称为逻辑地构造程序的 方法,简称LCP( 方法,简称LCP(Logical Construction of Programs)方法。Warnier方法的原理和 Programs)方法。Warnier方法的原理和 Jackson方法类似,也是从数据结构出发设 Jackson方法类似,也是从数据结构出发设 计程序,但是这种方法的逻辑更严格。 Warnier图在Warnier方法中使用的一种专 Warnier图在Warnier方法中使用的一种专 用表达工具。