第3章 软件设计_第1页
第3章 软件设计_第2页
第3章 软件设计_第3页
第3章 软件设计_第4页
第3章 软件设计_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 软件设计3.1 软件设计的基本概念软件设计就是把需求规格说明书里归纳的需求转换为可行的解决方案,并把解决方案反映到设计说明书里 3.1.1 软件设计的意义和目标软件设计在软件开发过程中处于核心地位,它是保证质量的关键步骤 指导评价良好设计演化的3个特征设计必须实现所有包含在分析模型中的明确需求,而且必须满足用户期望的所有隐含需求 设计必须是可读的、可理解的指南 设计必须提供软件的全貌,从实现的角度说明数据域、功能域和行为域 3.1 软件设计的基本概念3.1.2软件设计原则3.1.2.1 模块化模块:由边界元素限定的相邻的程序元素的序列 模块化:把程序划分成可独立命名且独立访问的模块,每

2、个模块完成一个子功能 3.1 软件设计的基本概念模块化和软件成本 3.1 软件设计的基本概念评价设计方法定义有效的模块系统能力的标准模块可分解性 模块可组装性模块可理解性模块连续性模块保护性3.1 软件设计的基本概念3.1.2.2 抽象抽象就是抽出事物的本质特性而暂时不考虑它们的细节3.1.2.3 逐步求精为了能集中精力解决主要问题而尽量推迟对问题细节的考虑 3.1.2.4 信息隐藏一个模块的实现细节对于其他模块来说,是不能访问的 3.1 软件设计的基本概念3.1.3软件设计分类从活动任务来看数据设计 体系结构设计接口设计构件设计部署设计 从工程管理角度来看 概要设计详细设计3.1 软件设计的

3、基本概念概要设计目标系统的总体架构每个模块的功能描述、数据接口描述及模块之间的调用关系数据库、数据定义和数据结构等详细设计过程设计:描述系统中每个模块的实现算法和细节 数据设计:对各模块所用到的数据结构的进一步细化接口设计:软件系统各模块之间的关系或通信方式以及目标系统与外部系统之间的联系 3.1 软件设计的基本概念3.1.4 模块独立开发具有独立功能而且和其他模块之间没有过多的相互作用的模块 模块的独立程度可以由两个定性标准来度量内聚耦合3.1 软件设计的基本概念3.1.4.1 耦合耦合是对各个模块之间互连程度的度量,不同模块之间互相依赖得越紧密则耦合程度越高 为了提高模块的独立性,应该尽量

4、降低模块之间的耦合程度 3.1 软件设计的基本概念耦合的等级划分 3.1 软件设计的基本概念3.1.4.2 内聚内聚是指模块内部各个元素之间彼此结合的紧密程度模块的高内聚通常意味着低耦合在软件设计时,应该尽量提高模块的内聚程度 3.1 软件设计的基本概念内聚的等级划分 3.1 软件设计的基本概念3.1.5 启发规则改进软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入都应适当 模块的作用域应该在控制域之内力争降低模块接口的复杂程度设计单入口单出口的模块 模块功能应该可以预测 3.2 结构化软件设计方法3.2.1 表示软件结构的图形工具3.2.1.1 层次图和HIPO图通常使用层次图描

5、绘软件的层次结构 一个矩形框代表一个模块框间的连线表示调用关系 HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写 3.2 结构化软件设计方法正文加工系统的层次图 3.2 结构化软件设计方法正文加工系统的H图 3.2 结构化软件设计方法IPO图的一个例 3.2 结构化软件设计方法改进的IPO图(IPO表)的形式 3.2 结构化软件设计方法3.2.1.2 结构图一个方框代表一个模块,框内注明模块的名字或主要功能 方框之间的箭头(或直线)表示模块的调用关系 带注释的箭头表示模块调用过程中来回传递的信息 箭头尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息3.2 结构化

6、软件设计方法结构图的例子产生最佳解的一般结构 3.2 结构化软件设计方法3.2.2 面向数据流的设计方法依据一定的映射规则,将需求分析阶段得到的数据描述从系统的输入端到输出端所经历的一系列变换或处理的数据流图转换为目标系统的结构描述 数据流变换型数据流事务性数据流3.2 结构化软件设计方法变换型数据流 事务型数据流 3.2 结构化软件设计方法针对变换型数据流的设计可以分为以下几个步骤 区分变换型数据流中的输入数据、变换中心和输出数据,并在数据流图上用虚线标明分界线分析得到系统的初始结构图对系统结构图进行优化 3.2 结构化软件设计方法学生档案管理系统的数据流图 3.2 结构化软件设计方法学生档

7、案管理系统的具有边界的数据流图 3.2 结构化软件设计方法学生档案管理系统的系统结构图 3.2 结构化软件设计方法学生档案管理系统优化的系统结构图 3.2 结构化软件设计方法针对事务型数据流的设计可以分为以下几个步骤 确定以事务为中心的结构,找出事务中心、接收数据、处理路径三个部分将数据流图转换为初始的系统结构图分解和细化接收分支和处理分支 3.2 结构化软件设计方法产品管理系统的数据流示意图3.2 结构化软件设计方法产品管理系统的系统结构图 3.2 结构化软件设计方法3.2.3 面向数据结构的设计方法3.2.3.1 Jackson图数据元素的逻辑关系:顺序,选择和重复 顺序结构 选择结构 重

8、复结构3.2 结构化软件设计方法Jackson图的优点便于表示层次结构,而且是对结构进行自顶向下分解的有力工具形象直观可读性好既能表示数据结构也能表示程序结构(因为结构程序设计也只使用上述3种基本结构) 3.2 结构化软件设计方法3.2.3.2 改进的Jackson图改进的Jackson图 3.2 结构化软件设计方法Jackson图和层次图区别层次图中的一个方框通常代表一个模块,Jackson图中一个方框只代表几条语句 层次图表现的是调用关系,Jackson图表现的是组成关系 3.2 结构化软件设计方法3.2.3.3 Jackson方法Jackson结构程序设计方法的步骤 分析并确定输入数据和

9、输出数据的逻辑结构,并用Jackson图描绘这些数据结构找出输入数据结构和输出数据结构中有对应关系的数据单元3.2 结构化软件设计方法用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框 根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框 根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框列出所有操作和条件,并且把它们分配到程序结构图的适当位置 用伪码表示程序 3.3 结构化软件设计的工

10、具3.3.1 流程图 程序流程图顺序型、选择型、先判定型循环(WHILE-DO)、后判定型循环(DO-WHILE)和多分支选择型 程序流程图的基本符号 3.3 结构化软件设计的工具程序流程图的控制结构 程序流程图示例 3.3 结构化软件设计的工具程序流程图的主要优点 采用简单规范的符号,画法简单结构清晰,逻辑性强便于描述,容易理解 程序流程图的主要缺点 不利于逐步求精的设计图中可用箭头随意地对控制进行转移,与结构化程序设计精神相悖不易于表示系统中所含的数据结构当目标系统比较复杂时,流程图会变得很繁杂、不清晰 3.3 结构化软件设计的工具3.3.2 盒图(N-S图)N-S图的基本符号 3.3 结

11、构化软件设计的工具N-S图的主要特点 不允许随意的控制转移,有利于严格的结构化程序设计可以很方便地确定一个特定控制结构的作用域,以及局部数据和全局数据的作用域可以很方便地表示嵌套关系以及模块之间的层次关系 N-S图示例 3.3 结构化软件设计的工具3.3.3 PAD图(问题分析图)一条竖线代表一个层次,最左边的竖线是第一层控制结构,随着层次的加深,图形不断地向右展 PAD图的基本控制符号 3.3 结构化软件设计的工具PAD图的主要特点表示的程序结构的执行顺序是自最左边的竖线的上端开始,自上而下,自左向右表示的程序片断结构清晰、层次分明支持自顶向下、逐步求精的设计方法只能用于结构化的程序设计不仅

12、可以表示程序逻辑,还能表示数据结构 3.3 结构化软件设计的工具3.3.4 判定表判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系 判定表的组成左上部列出所有条件左下部是所有可能做的动作右上部是表示各种条件组合的一个矩阵右下部是和每种条件组合相对应的动作 3.3 结构化软件设计的工具3.3 结构化软件设计的工具3.3.5 判定树判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系判定树的优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用 3.3 结构化软件设计的工具用判定树表示计算行李费的算法 3.3 结构化软件设计的工具3.3.

13、6 过程设计语言(PDL,伪码)PDL应该具有下述特点 关键字的固定语法,它提供了结构化控制结构、数据说明和模块化的特点 自然语言的自由语法,它描述处理特点 数据说明的手段 模块定义和调用的技术,应该提供各种接口描述模式 3.3 结构化软件设计的工具PDL的优点可以作为注释直接插在源程序中间 可以使用普通的正文编辑程序或文字处理系统,很方便地完成PDL的书写和编辑工作 已经有自动处理程序存在,而且可以自动由PDL生成程序代码 PDL的缺点不如图形工具形象直观 描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单 3.4 数据库结构设计数据库结构设计包括概念结构设计、逻辑结构设计和物理结构

14、设计 概念结构:描述系统最基础的数据结构 逻辑结构:提供比较接近数据库内部构造的逻辑描述物理结构:数据库的物理数据模型 数据库结构设计 3.4 数据库结构设计数据库的概念结构通常用ER图 “学生”与“课程”的E-R图 3.4 数据库结构设计设计数据库的逻辑结构的过程中,首先要将概念结构中的实体、属性、联系映射为数据表结构 映射规则将数据库概念结构中的“实体”映射为逻辑结构中的“数据表”,实体的属性可以用数据表中的字段来表示,实体的主关键字作为数据表的主键数据库概念结构中的1:1联系可以映射为一个独立的数据表,也可以与跟它相连的任意一端或两端的实体合并组成数据表数据库结构中的1:n联系可以映射为一个独立的数据表,也可以与跟它相连的n端实体合并组成数据表数据库结构中的m:n关系可以映射为一个独立的数据表,各实体的主关键字的组合形成数据表的主键 3.4 数据库结构设计关系型数据库范式第一范式:所有关系中的每一个分量都必须是不可分的数据项。第一范式是建立关系型数据表的最基本的要求第二范式:满足第一范式的条件,并且每个非键属性都由整个键决定第三范式:满足第二范式的条件,并且每个非键属性不依赖于其他非键属性值 3.5 人机界面设计界面设计的“黄金原则”置

温馨提示

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

最新文档

评论

0/150

提交评论