版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章结构化设计北京大学研究生软件工程课程Contents课程目录结构化设计方法与实践,从基础概念到设计模式的完整课程体系。01结构化设计基本概念与框架02初始模块结构图的设计方法03模块精化原则:耦合与内聚04设计模式与典型结构分析05总体设计案例与实践演练CHAPTER01结构化设计基本概念与框架从需求到实现的桥梁——理解软件设计的定义、目标与整体框架SoftwareDesign软件设计的定义与目标软件设计是将需求规约转化为可实现的软件结构的关键活动,核心目标是在抽象层上建立包含体系结构与处理算法的系统模型,并通过总体设计与详细设计两个阶段逐步细化方案。定义与本质定义实现需求规约所需软件结构的开发活动,本质上要回答"如何解决问题",给出从需求到实现的软件解决方案需求→实现抽象建模目标在抽象层上建立系统软件模型,涵盖软件体系结构与详细处理算法,最终产出设计规格说明书设计规格说明书两阶段递进总体设计确定系统整体模块结构及调用关系,详细设计深入描述每个模块内部实现,逐层细化总体+详细SOFTWAREDESIGN设计阶段与设计内容框架软件设计从技术角度可分为体系结构设计、接口设计、数据设计和模块内部设计四个维度,其中体系结构设计属于总体设计阶段,而模块内部的算法与数据结构设计属于详细设计阶段,接口设计与数据设计贯穿两个阶段。01体系结构设计定义软件模块及其之间的关系,从分析模型(如数据流图)导出模块结构图(MSD),是总体设计的核心产出。Architecture·MSD02接口设计外部接口依据顶层数据流图确定,涵盖用户界面及与其他系统的交互;内部接口定义系统内部元素间的通信约定。Interface·API03数据设计根据数据字典确定软件涉及的文件系统结构及数据库表结构,实现需求定义中数据对象的逻辑表示。Data·Schema04模块内部设计详细描述每个模块的算法和数据结构,属于详细设计阶段的核心工作,为编码阶段提供直接指导。Algorithm·DetailStructuredDesign结构化设计方法的需求与核心术语结构化设计方法的产生源于三个核心需求:提供设计术语体系、提供模型表达工具、提供过程指导。在此基础上引入'模块'与'调用'两个基本术语,并通过模块结构图(MSD)表达软件的静态结构,形成完整的方法论框架。01术语体系构建提供可体现设计原理的一组术语和符号,形成特定抽象层,用于表达设计中所使用的部件,如'模块'和'调用'等概念。02模型表达工具依据术语所形成的空间给出表达软件模型的工具,即模块结构图(MSD),用于可视化表达软件系统的静态结构。03过程指导方法给出设计的过程指导,明确从数据流图DFD到模块结构图MSD的转化步骤,确保设计过程有章可循。04核心术语定义'模块'定义为可独立标识的软件成分,'调用'描述模块间的依赖关系,二者构成MSD的基本元素。SoftwareDesignMethodology总体设计的三阶段执行框架总体设计是将DFD转化为MSD的系统性过程,分为初始设计、精化设计和设计复审三个阶段。初始设计完成从DFD到MSD的初步映射,精化设计依据高内聚低耦合原则优化结构,设计复审则对高层结构进行最终验证,确保设计质量。01初始设计在复审和精化数据流图的基础上,将DFD转化为初始模块结构图,根据穿越系统边界的数据流初步确定系统与外部的接口DFD→MSD02精化设计依据"高内聚低耦合"原则精化初始模块结构图,设计全局数据结构以及每个模块的接口,提升结构合理性高内聚·低耦合03设计复审对前两个阶段得到的高层软件结构进行复审评审,必要时进一步精化,确保设计方案完整实现需求分析中的功能和性能要求质量验证CHAPTER02初始模块结构图的设计方法从数据流图到模块结构图——掌握变换型与事务型两大核心映射路径DataFlowDiagram数据流图的两大分类数据流图按信息流特征分为变换型和事务型两大类:变换型DFD呈现"输入-变换-输出"的线性流水线结构;事务型DFD呈现"接收-分发"的扇出结构。变换型数据流图数据沿输入通路进入系统,经变换中心处理后沿输出通路离开,呈现"输入-变换-输出"的线性流水线结构。具有较明显的输入与变换界面,以及变换与输出的界面,可清晰划分三个功能区域。典型应用场景包括数据转换系统、计算密集型处理模块,以及需要顺序执行的数据处理流程,强调数据在系统中的流动与转换过程。输入→变换→输出线性流水线事务型数据流图数据到达事务中心后,根据事务类型分发到多条处理通路,呈现"接收-分析-分发"的扇出结构。事务中心是关键节点,负责分析输入数据类型并选择相应动作序列。适用于条件分支处理的系统,如菜单驱动程序、事件处理系统、交易处理平台等,强调根据数据特征进行路径选择与分发决策。接收→分析→分发扇出结构STRUCTUREDDESIGNMETHOD变换设计的基本步骤变换设计是将变换型数据流图映射为模块结构图的核心方法,关键在于识别变换中心、界定逻辑输入与逻辑输出、建立顶层主控模块,然后自顶向下分解为输入控制、变换控制和输出控制三层结构。01确定变换中心确定DFD中的变换中心,即系统最核心的数据处理部分,负责将输入数据转换为输出数据,需要设计师基于数据流特征做出判断。DFD02界定逻辑输入输出区分物理输入(穿越系统边界的外部数据)与逻辑输入(经预处理后进入变换中心的数据),输出同理进行区分。逻辑边界03设计顶层主控模块作为整个系统的调度核心,负责协调输入、变换和输出三个子系统的运行,建立最高层控制结构。调度核心04自顶向下逐层分解分别设计输入控制模块、变换控制模块和输出控制模块及其下级模块,形成完整的初始模块结构图。三层结构STRUCTUREDDESIGN事务设计的基本步骤事务设计针对事务型数据流图,核心是识别事务中心和各动作通路,然后建立包含接收分支与发送分支的模块结构。01识别事务中心与动作通路事务中心负责接收输入数据,并根据事务类型分发到对应的处理通路。02设计顶层模块结构包含事务控制模块作为核心,下设接收分支和发送分支两大子系统。03设计接收分支将事务中心之前的数据接收和预处理流程映射为模块结构,方法类似变换设计中的输入分支。04设计发送分支为每条动作通路建立对应的处理模块,事务控制模块根据输入事务类型选择调用相应通路。DesignStrategy混合型数据流图的设计策略实际软件系统中的数据流图往往是变换型与事务型的混合体。设计策略是"自顶向下,分层处理":全局层面根据数据流主要特征选择主导设计方法,局部子模块则灵活采用适合其数据流特征的设计策略,关键在于保持模块边界清晰与功能单一。混合特征识别大型系统全局可能呈事务型(按请求类型分发),而每个子模块内部呈变换型(输入-处理-输出),需逐层分析数据流特征同一系统的不同子系统可能呈现不同类型特征,设计师需要具备在不同粒度上识别数据流模式的能力分层设计策略顶层根据数据流图的主要特征选择变换设计或事务设计作为主导方法,低层子模块根据局部特征灵活选择设计策略分解过程中必须保持模块边界清晰和功能单一,避免因混合使用两种方法导致模块职责模糊或耦合度过高CHAPTER03模块精化原则:耦合与内聚评价软件设计质量的核心标准——从高内聚低耦合视角审视模块结构优化Modularity模块化:概念与必要性模块化是将系统分解为逻辑上相对独立的模块的过程,每个模块大小适中、职责明确。模块化的核心价值在于降低系统复杂性、提高可维护性和支持并行开发,而衡量模块化质量的核心标准就是"高内聚、低耦合"。Definition模块的定义模块是程序中逻辑上相对独立的单元,具有可独立标识的特性,大小适中且承担明确的功能职责。独立性:模块内部功能完整,对外部依赖最小化可替换性:遵循相同接口规范的模块可以相互替换可复用性:经过良好设计的模块可在多个系统中重复使用CoreValue模块化的核心价值降低复杂性:将庞大系统分解为可控的小单元,使每个模块可以独立理解和开发,避免全局认知负担提高可维护性:功能修改只需关注相关模块而不必改动整个系统,故障定位和修复的效率显著提高支持并行开发:不同开发人员可同时开发不同模块,通过明确定义的接口进行集成,缩短开发周期SoftwareCoupling耦合的七种类型(从高到低)耦合衡量模块间相互依赖程度,按强度从高到低分为内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合七种类型。设计目标是尽量采用数据耦合和非直接耦合,严格避免内容耦合,限制公共耦合和控制耦合的使用。耦合类型对比表耦合类型定义与特征耦合度内容耦合一个模块直接访问或修改另一个模块的内部数据,或跳转到模块内部最高公共耦合多个模块共享访问同一个全局数据结构,修改可能影响所有模块高外部耦合模块与外部环境(I/O设备、通信协议、格式规范)直接绑定较高控制耦合模块间传递控制信号(如标志位、开关量),影响对方执行逻辑中标记耦合模块间传递完整数据结构,但接收方仅使用其中部分字段较低数据耦合模块间仅传递简单的数据参数(值参),每个参数都有明确用途低非直接耦合模块间无直接调用关系,通过上级模块进行协调通信最低耦合度从高到低排列,设计目标是尽量使用数据耦合,避免内容耦合和公共耦合应避免可接受推荐SOFTWARECOHESION内聚的七种类型(从低到高)内聚衡量模块内部各元素间功能关联的紧密程度,按强度从低到高分为七种类型。设计目标是追求功能内聚。内聚类型定义与特征内聚度偶然内聚模块内各操作之间无逻辑关系,因代码重复或偶然原因被组合在一起最低逻辑内聚模块包含逻辑上相似的操作(如处理所有类型错误),由调用方选择执行哪个低时间内聚模块内操作需在同一时间段内执行,如系统初始化或关闭时的各项操作较低过程内聚模块内操作按特定过程顺序执行,但各操作服务于不同功能目的中通信内聚模块内各操作使用相同的输入数据或产生相同的输出数据,但各自功能不同较高顺序内聚模块内前一操作的输出是后一操作的输入,形成功能处理链高功能内聚模块内所有操作共同完成一个不可再分的单一功能,缺一不可最高内聚度从低到高排列,设计目标是追求功能内聚,避免偶然内聚和逻辑内聚MODULARDESIGN耦合与内聚的关系与设计策略耦合与内聚是衡量模块化设计质量的两个互补维度,二者高度相关:高内聚通常自然导致低耦合,低耦合也往往意味着较高的内聚度。实际设计中应以追求功能内聚为主要目标,同时主动审查和消除不必要的耦合关系。01内在关联高内聚模块功能单一且完整,不依赖外部模块即可完成自身任务,自然导致低耦合度,二者呈正相关趋势。模块职责越聚焦,对外部环境的依赖就越少。低耦合模块不依赖外部内部细节,自身必须是自包含的,因此往往也具备较高的内聚度。这种自包含特性使模块易于理解、测试和维护。●正相关关系:内聚度↑→耦合度↓02例外与权衡公共耦合的模块可能各自内聚度不低,但共享全局数据带来的耦合风险仍然很大,需单独审查。全局变量会隐藏模块间的隐式依赖,增加系统复杂度。实际设计建议:以追求功能内聚为主要目标,同时主动检查模块间的耦合类型,消除不必要的高耦合关系。优先使用数据耦合,避免内容耦合和控制耦合。⚠关键原则:内聚优先,耦合审查DesignPrinciples模块精化的核心操作原则模块精化以高内聚低耦合为总纲,辅以模块大小适中、扇入扇出合理、信息隐藏和一致性四项操作原则,构成评价和改进初始模块结构图的完整标准体系。模块大小适中单个模块代码量建议控制在50-150行之间,过小增加管理复杂度,过大则难以理解和维护50–150行扇入扇出合理扇出建议3-9个,扇入越高表示复用性越好,合理的扇入扇出确保结构清晰可控3–9个扇出信息隐藏原则模块应设计为"黑箱",外部仅能使用接口说明中的信息,内部实现细节封装不可见黑箱封装一致性原则整个系统使用一致的概念、符号和术语,程序内外接口保持一致,降低理解与维护成本统一术语标准CHAPTER04设计模式与典型结构分析从抽象原则到具体实践——解析常见软件结构模式及其适用场景SoftwareDesignPrinciples软件设计的四大基本原则软件设计遵循四大基本原则:抽象原则通过分层控制复杂性,信息隐藏原则通过封装降低模块间依赖,模块化原则通过功能分解实现独立开发,一致性原则通过统一标准降低系统理解成本。四者共同构成高质量软件设计的理论基石。抽象抽取事物最基本特性和行为,采用分层次抽象控制复杂性,每层只关注当前层次的关键问题。分层控制信息隐藏采用封装技术将模块实现细节隐藏,外部仅能访问接口说明中的信息,使模块接口尽量简单。封装接口模块化使程序由多个逻辑上相对独立的模块组成,模块大小适中,追求高内聚低耦合的结构。高内聚低耦合一致性全系统使用一致的概念、符号和术语,内外接口保持统一,需数据字典等工具支持。统一标准STRUCTUREPATTERN变换型结构模式分析变换型结构呈现典型的"输入-变换-输出"三明治形态,适用于数据处理管线类系统。其核心优势是逻辑清晰、层次分明,设计要点是将格式转换和数据校验封装在输入输出模块中,让变换模块专注于纯粹的业务逻辑处理。结构特征与适用场景典型形态为三层结构:顶层主控模块调度中间变换控制模块,底层分别对应输入控制和输出控制模块三层架构适用于编译器、数据转换工具、报表生成器等"读取-处理-输出"管线式系统,数据流方向明确单一Pipeline设计要点变换中心应保持功能内聚,只关注纯粹的业务逻辑;输入输出模块负责格式转换、数据校验和缓冲管理功能内聚输入与输出模块可进一步分解为多级子模块,处理物理I/O到逻辑数据的层层转换,保持变换中心简洁逐层转换ArchitecturePattern事务型结构模式分析事务型结构以事务分析模块为核心扇出分发,扩展性好,新增类型只需添加分支,符合开闭原则。01结构特征以事务分析模块为核心,接收输入后根据事务类型分发到不同处理分支,呈现明显的扇出结构特征。扇出分发类型路由02适用场景适用于操作系统调度器、网络请求分发器、订单处理系统等需根据输入类型执行不同操作序列的系统。调度系统订单处理03模块解耦事务分析模块只负责分发调度,不包含具体业务逻辑;每个处理分支应相互独立,互不干扰。职责分离独立扩展04数据标准化接收分支负责统一的输入预处理和数据格式化,确保送到事务分析模块的数据是标准化的。预处理格式统一OPTIMIZATIONSTRATEGY模块结构优化的实用策略初始模块结构图需要通过系统性优化来改进质量,核心策略包括合并过小模块以降低管理开销、分解过大模块以明确职责边界、调整扇出扇入以平衡结构层次、消除重复代码以提升复用度,最终达到高内聚低耦合的设计目标。合并功能过小模块仅几行代码且只被一个上级调用的模块应合并到上级中,减少不必要的调用开销和管理复杂度REDUCEOVERHEAD分解功能过大模块承担多职责的模块按功能边界拆分为多个子模块,确保每个子模块只负责一个单一功能SINGLERESPONSIBILITY调整扇出与扇入扇出过大时引入中间层模块分担管理职责;提取多模块的相似功能为共享模块以提高扇入和复用度BALANCESTRUCTURE消除重复代码重复代码是设计不良的信号,通过提取公共功能模块来消除冗余,提高系统一致性和可维护性DRYPRINCIPLEChapter05总体设计案例与实践演练从数据流图到优化结构图——完整走完总体设计全流程数据流图分析案例:确定逻辑输入与逻辑输出变换设计的首要步骤是在数据流图中精确识别逻辑输入和逻辑输出。二者之间的区域即为变换中心。输入侧识别物理输入a、b为穿越系统边界的原始数据流,经过获取数据、格式转换、校验等预处理步骤后转化为逻辑输入g、h逻辑输入g、h已完成所有预处理,可直接进入变换中心参与核心计算,是界定变换中心左边界的关键物理输入→预处理→逻辑输入输出侧识别变换中心产出的中间结果经格式化、编码等后处理步骤后转化为物理输出x、y,离开系统边界逻辑输出是变换中心直接产出的结果数据,尚未经过任何后处理,是界定变换中心右边界的关键逻辑输出→后处理→物理输出结构化设计·模块分解案例:建立初始模块结构图初始模块结构图的建立从顶层主控模块开始,向下分解为输入控制、变换控制和输出控制三大子模块,再继续逐层分解为具体的功能模块。初始MSD是数据流图的直接映射产物,结构较为粗糙,后续需要依据精化原则进行系统优化。顶层设计主控模块输入控制处理物理输入、格式转换与校验获取数据处理物理输入预处理数据格式转换、校验变换控制对应DFD变换中心的处理过程业务变换处理子模块每个子模块对应DFD中变换中心的一个处理过程,实现核心业务逻辑的逐层分解与功能映射。输出控制完成后处理与物理输出格式化数据后处理输出数据物理输出CASESTUDY·结构精化案例:输入部分的精化输入部分的精化将初始的单一输入控制模块分解为物理输入层、预处理层和数据缓冲层三层结构,每层职责单一且功能内聚。REFINEMENTSTRATEGY·精化策略多职责拆分——物理I/O交互、格式转换校验、缓冲管理分别由独立子模块承担数据耦合设计——模块间传递明确定义的数据参数,确保数据耦合而非控制耦合THREE-LAYERARCHITECTURE·三层结构物理输入层负责与外部设备或文件系统交互,处理原始数据读取,屏蔽硬件差异和I/O协议细节PhysicalI/O预处理层负责格式转换、类型校验和异常处理,将物理数据转化为标准化逻辑数据Preprocessing数据缓冲层平衡数据生产和消费速度差异,提供流量控制和异步处理能力DataBufferOUTPUTREFINEMENT案例:输出部分的精化输出部分的精化与输入部分对称,将初始输出控制模块分解为后处理层、物理输出层和输出校验层三层结构,设计质量显著提升。STRUCTURE精化后的三层结构01后处理层负责将逻辑结果进行格式化、编码、排序等处理,产出符合输出规范的标准数据02物理输出层负责将格式化数据写入外部设备或文件,屏蔽硬件差异和输出协议细节03输出校验层OPTIONAL负责数据完整性校验、输出日志记录和异常告警,确保输出结果的正确性和可追溯性OUTCOME精化效果总结输入输出精化后,系统获得三项核心改善:功能内聚每个模块只做一件事数据耦合模块间传递简单参数质量提升整体设计质量显著改善3LayersRefinedDELIVERABLES概要设计文档规范概要设计说明书详细描述系统模块结构、功能说明、模块间调用关系和接口定义,是编码阶段的直接参考依据。文档需明确模块职责边界与数据流转路径,为后续开发提供清晰的技术蓝图。核心交付:接口定义数据库设计说明书包括逻辑结构设计、表结构定义、索引设计和数据字典,确保数据层设计的完整性与一致性。规范字段命名规则与约束条件,建立可维护的数据模型文档体系。核心交付:数据字典集成测试计划根据模块间调用关系和接口定义制定测试策略、测试用例和验收标准,指导系统集成验证。覆盖正常流程与异常场景,确保各模块协同工作的稳定性与可靠性。核心交付:验收标准设计评审报告记录评审过程中的问题发现、修改意见和最终确认结果,确保设计方案经过充分论证和验证。建立可追溯的评审记录,为设计变更提供决策依据与历史参考。核心交付:评审确认Summary课程核心知识点总结本章系统讲授了结构化设计的完整方法论体系:从设计概念与框架出发,经过DFD到MSD的映射方法、耦合内聚的精化原则、典型结构模式的分析,最终落地为标准化的概要设计文档产出,形成了从理论到实践的完整闭环。01设计阶段划分:软件设计分为总体设计(确定模块结构与调用关系)和详细设计(描述模块内部算法与数据结构)两个递进阶段02核心映射方法:根据DFD类型选择变换设计或事务设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 武汉初中化学竞赛试题及答案解析
- 赣州印刷法规练习题及答案展示
- 石材产业地理知识试题及答案解析
- 制药公司临床试验准则
- 四年级心理健康教育
- 新生儿气漏综合症及护理
- 某汽车制造厂设备租赁制度
- 某家电厂品牌管理制度
- 2026中国大宗商品供应链金融风控体系完善策略分析
- 2026中国食品添加剂行业法规监管与市场发展趋势深度调研及分析报告
- 小车指标协议书
- 2026年泰安小升初数学小升初分班考卷:分班考全真模拟与附加题(重点高中联盟第1套)含参考答案、逐题解析与评分细则
- 商业项目招商运营管理方案
- 2026年4月自考08119管理会计试题及答案含评分参考
- 2026年眼镜验光员技能大赛题库及参考答案详解(模拟题)
- 住宅楼批量精装修施工方案模板
- 解读常见医疗检查结果
- 《沁园春 雪》朗诵节奏
- 睡眠药物依赖的预防
- 2025年军考真题试卷及答案
- 2025年人教版八年级英语上学期单词字帖(衡水体)
评论
0/150
提交评论