
软件工程3-史济民.pdf
91页湘 潭 大 学第三章 结构化分析与设计概述结构化 系统分析结构化系统设计模块化设计3.1 概述• 结构化分析与设计的由来• 结构化分析与设计最初系由结构化程序设计扩展而来• 20世纪 70年代先后提出结构化设计( SD)的软件设计技术,以及结构化分析( SA)技术合称为结构化分析与设计方法是第一代软件工程时期最有代表性的应用系统开发方法结构化分析与设计的由来• 瀑布模型的首次实践• 瀑布模型由传统的生存周期过程演变而来作为一种系统开发方法,结构化分析与设计是瀑布模型的首次实践该模型一般可划分为以下阶段:• 需求定义与分析 → 总体设计 → 详细设计 → 编码 → 测试 → 使用维护结构化分析与设计的由来• SA与 SD的流程系统的整个开发流程可简明表示为:• 结构化分析(工具: DFD、 PSPEC) 分析模型(分层 DFD图) + SRS• 结构化设计(工具: SC图)分析模型 映射 初始设计模型(初始 SC图)初始设计模型(初始 SC图) 优化 最终设计模型(最终 SC图)• SA与 SD的流程是为待开发系统建立分析模型和设计模型的过程结构化分析与设计的由来• 基本任务与指导思想• 结构化分析•建立分析模型:功能模型、数据模型、行为模型•编写需求说明:软件需求规格说明书( SRS)标准的主要内容为引言、信息描述、 功能描述、行为描述、质量保证、接口描述等。
SRS标准强调 SRS应具有准确性、应防止二义性、应直观易改•主要指导思想:抽象与分解• 结构化设计•软件设计 = 总体设计 + 详细设计•软件结构图( SC)须分两步完成 :初始 SC,优化后的最终 SC•指导思想:分解和细化6结构化的需求建模方法数据字典功能模型行为模型数据模型SA分析模型结构化分析建模分析模型的结构数据字典 :描述软件使用或产生的所有数据对象实体 -关系图 :描述数据对象之间的关系数据流图: 指出当数据在软件系统中移动时怎样被变换;描述变换数据流的功能和子功能状态转换图 :描绘系统的各种行为模式以及在不同状态间转换的方式结构化分析模型的描述工具• 数据流图 ( DFD, Data Flow Diagram)• 指明数据在系统中移动时如何被变换 , 描述对数据流进行变换的功能和子功能 • 组成符号• 圆框代表加工(或处理);• 箭头代表数据的流向,数据名称总是标在箭头的边上;• 方框表示数据的源点和终点;• 双杠(或单杠)表示数据存储(数据文件或数据库)• 数据字典 ( DD, Data Dictionary)• 对软件中的每个数据规定一个定义条目 • 加工说明 ( PSPEC, Process SPECification)• 对数据流图中出现的每个加工 /处理的功能描述• 主要工具:结构化语言 , 判定树或判定表软件需求规格说明(SRS: Software Requirements Specification)• 通过需求分析除了创建分析模型之外,还应该写出软件需求规格说明,它是分析阶段的最终成果。
• 下面的简略大纲可以作为软件需求规格说明的框架软件需求规格说明Ⅰ. 引言A .系统参考文献B .整体描述C .软件项目约束Ⅱ. 信息描述A .信息内容B .信息流1 .数据流2 .控制流★ 陈述软件的目标,可能是计划文档中描述的软件范围★ 陈述软件必须解决的问题,描述信息内容,信息关系,信息流和信息结构,还描述硬件、软件和人机界面软件需求规格说明Ⅲ. 功能描述A .功能分解B .功能描述1 .处理说明2 .限制3 .性能需求4 .设计约束5 .支撑图C .控制描述1 .控制规格说明2 .设计约束★ 给出每个功能说明完成每个功能的处理过程;叙述并论证设计约束;描述性能特征,软件功能与其他系统元素的相互影响软件需求规格说明Ⅳ .行为描述A .系统状态B .事件和动作Ⅴ .确认标准A .性能范围B .测试种类C .预期的软件响应D .特殊考虑Ⅵ .参考书目Ⅶ .附录★ 说明作为外部事件和内部产生控制结果的软件操作★ 写出确认标准是对其他所有需求的隐式复审★ 列出与软件有关的文档★ 原型和用户手册,手册重点描述用户的输入和软件的输出结构化设计模型的组成与描述• 包含 数据设计 、 体系结构设计 、 接口设计与 过程设计 。
• 体系结构设计是用来确定软件结构的,其描述工具为 结构图 ,简称 SC图 • 过程设计 主要指模块内部的详细设计过 程 设计接口 设计体系 结构设计数 据 设计SD模型的 组 成结构化设计模型的描述工具• Yourdon提出的 SC图的组成符号• 矩形框 来表示模块, 带箭头的连线 表示模块间的调用,并在调用线的两旁标出传入和传出模块的 数据流AB C DAB CAB C( a) 简单调 用 ( b) 选择调 用 ( c) 循 环调 用SC图 中模 块调 用 关 系的表示层次图和 HIPO图• 通常使用层次图描绘软件的层次结构在层次图中一个矩形框代表一个模块,框间的连线表示调用关系 (位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块 )图 4.4 正文加工系统的层次图HIPO图• 是美国 IBM公司发明的 “ 层次图加输入 /处理 /输出图 ” 的英文缩写为了使 HIPO图具有可追踪性,在 H图 (即层次图 , Hierarchy)里除了顶层的方框之外,每个方框都加了编号数据流图的编号方法相同,例如,把图 4.4加了编号之后得到图 4.5• 对应与 H图中的每个方框,应有一张 IPO图描绘这个方框代表的模块的处理过程。
图 4.5 正文加工系统的 H图图 4.6 IPO图的一个例子(主文件更新)图 4.7 改进的 IPO图 (IPO表 )的形式3.2 结构化系统分析• T.DeMarco的定义• 结构化分析就是使用 DFD、 DD、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档• 结构化分析的基本步骤• 自顶向下对系统进行功能分解,画出分层 DFD图• 由后向前定义系统的数据和加工,编制 DD和 PSPEC• 最终写出 SRS 2014/9/14 22结构化的需求建模方法数据字典功能模型行为模型数据模型SA分析模型结构化分析模型的描述工具SA模型的描述工具:• DFD、 DD和 PSPEC:这是早期 SA模型的基本组成部分;• CFD、 CSPEC和 STD:是早期 SA模型的扩展成分,适应实时软件的建模需要;• E-R图 :适用于描述具有复杂数据结构的软件数据模型;STD图DFD图E-R图DD控制 规 格 说 明( CSPEC)分析模型243.2.1 SA方法的功能模型 =数据流图 数据流图( DFD)服务于两个目的: 指明数据在系统中移动时如何被变换; 描述对数据流进行变换的功能 (和子功能 )。
编 号处 理 名 称数 据 文 件输 入 数 据输 出 数 据25数据流图基本思想: 化整为零,各个击破从抽象到具体,逐层分解X132 3.13.33.2中 间层 底 层顶层 ( 0层 , =关联图 )26数据流图 符号外部实体加工 /处 理数据流数 据 存 储external entityprocessdata flowdata store数据流图27•DFD的简例源点数 据流数 据加工文件终 点数据流图的层次结构数据流图的层次结构• 在多层数据流图中,顶层流图仅包含一个加工(处理) ,它代表被开发系统它的输入流是该系统的输入数据,输出流是系统所输出数据• 底层流图是指其加工不需再做分解的数据流图,它处在最底层• 中间层流图则表示对其上层父图的细化它的每一加工可能继续细化,形成子图分层 DFD的画法• 分层 DFD示例1层图功能原子(不再精化,可存在于不同层上)3031分层 DFD的画法• 一致性问题示例--画分层数据流图• 示例 教材购销系统的顶层 DFD 学生教 材购销系 统书库 保管员--画分层数据流图• 教材购销系统的第二层 DFD 领书单 进书 通知进书 通知购书单 缺 书单1销售2采购书库保管员学生F1教 材存量表F2缺 书 登 记 表--画分层数据流图• 教材购销系统的第三层 DFD— 采购子系统2 .3修改 教 材 库存和待 购 量2 .1按 书号汇总 缺 书2 .2按出版社统计 缺 书书库保管 员F2缺 书 登 记 表F1教 材存量表 F5待 购教 材表 F6教 材一 览 表进书 通知 进书 通知缺 书单1销 售数据字典• 数据字典包含的信息:• 名字:数据、控制项、数据存储或外部实体的主要名称。
• 别名:第一项中对象的其他名字• 使用地点与方式:使用数据或控制项的处理的列表,以及使用这些对象的方式 (例如作为处理的输入,从处理输出,作为数据存储,作为外部实体 )• 内容描述:描述数据或控制项内容的符号• 补充信息:关于数据类型、预置值、限制等的其他信息数据字典• 数据字典中的定义是对数据自顶向下的分解当分解到不需要进一步定义,每个与工程有关的人也都清楚其含义的元素时,分解过程就结束• 由数据元素组成数据的方式只有 3种基本类型1)顺序 即以确定次序连接 2个或多个分量;2)选择 即从 2个或多个可能的元素中选取一个;3)重复 即把指定的分量重复 0次或多次派生出:4)可选 即一个分量是可有可无的(重复 0次或 1次)数据字典• 虽然可以使用自然语言描述由数据元素组成数据的关系,但是为了更加清晰简洁起见,建议用下列符号:• =意思是等价于 (或定义为 );• +意思是和 (即,连接两个分量 );• [ ]意思是或 (即,从方括弧内列出的若干个分量中选择一个 ),通常用 “ | ” 号分开供选择的分量;• { }意思是重复 (即,重复花括弧内的分量 );• ( )意思是可选 (即,圆括弧里的分量可有可无 )。
• 例子:在数据字典中定义标识符• 标识符 =字母字符 +字母数字串• 字母数字串 =0{字母或数字 }7• 字母或数字 =[字母字符 |数字字符 ]• 字母字符 =[A|„|Z|a|„|z]• 数字字符 =[0|1|„|9]--确定数据定义与加工策略• 从数据的终点开始定义数据和加工• 数据定义 — DD• 例如:发票•发票 = 学号+姓名+{书号+单价+数量+总价}+书费合计• 加工策略 — PSPEC• 分层 DFD图产生了系统的全部数据和加工,通过对这些数据和加工的定义,常常对分析员提出一些新问题,促使新的调查和思考,并可能导致对DFD的修改画 DFD,定义加工和数据,再画,再定义,如此循环,直至产生一个为用户和分析员一致同意的文档 —— SRS40数据模型 数据模 型 回答:系统处理哪些主要的数据对象?每个数据对象的组成如何?这些对象当前位于何处?每个对象与其他对象有哪些关系?对象和变换它们的处理之间有哪些关系? 数据模型包含:数据对象、描述数据对象的属性和数据对象相互连接的关系数据建模• 检查数据对象的独立处理• 注意力集中在数据域• 创建客户级抽象的模型• 指出数据对象之间的相互联系41什么是数据对象• 数据对象必须由软件理解的复合信息表示。
•复合信息 — 具有若干不同的特征或属性的事物• 可能是外部实体(例如产生或使用信息的任何东西),事物(例如报告或显示),偶发事件或事件,角色,组织单位,地点或结构• 描述包括了数据对象及其所有属性• 数据对象只封装数据 —— 在数据对象中没有操作数据的引用42数据对象和属性。
