




已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件设计的目标和任务 软件需求 解决 做什么 软件设计 解决 怎么做 软件设计的任务 以软件需求规格说明书为依据 进行数据设计系统结构设计过程设计 软件设计的目标和任务 数据设计侧重于数据结构的定义系统结构设计定义软件系统各主要成分之间的关系过程设计则是把结构成分转换成软件的过程性描述 在编码步骤 根据这种过程性描述 生成源程序代码 然后通过测试最终得到完整有效的软件 软件设计的重要性 是软件开发时期的第一个步 最终影响软件实现的成败和软件维护的难易程度 软件设计的两个阶段 从工程管理的角度来看 软件设计分两步完成 总体设计 将软件需求转化为数据结构和软件的系统结构 详细设计 即过程设计 通过对结构表示进行细化 得到软件的详细的数据结构和算法 软件设计的两个阶段 第5章 总体设计 第5章总体设计 5 1设计过程5 2设计原理5 3启发规则5 4描绘软件结构的图形工具5 5面向数据流的设计方法5 6小结习题 重点和难点 重点 软件设计过程中应遵循的基本原理面向数据流设计方法难点 变换分析 事务分析法过程和应用 总体设计的步骤 5 1设计过程 5 1设计过程 设想供选择的方案选取合理的方案系统流程图组成系统的物理元素清单成本 效益分析实现这个系统的进度计划推荐最佳方案功能分解设计软件结构 模块化思想 总体设计的步骤 设计数据库制定测试计划书写文档系统说明用户手册测试计划详细的实现计划数据库设计结果审查和复审 5 1设计过程 设计原理 模块化抽象逐步求精信息隐藏和局部化模块独立 5 2设计原理 一 模块化 模块 模块是由边界元素限定的相邻程序元素 例如 数据说明 可执行的语句 的序列 而且有一个总体标识符代表它 如 OO的对象 方法 模块化思想 模块化就是把程序划分成独立命名且可独立访问的模块 每个模块完成一个子功能 把这些模块集成起来构成一个整体 可以完成指定的功能满足用户的需求 分而治之 是模块化思想的依据 把复杂的问题分解为若干个易于处理的小问题 5 2设计原理 一 模块化 令C X 问题X的复杂程度 E X 解决X问题所需的工作量规律1 若两个问题P1 P2C P1 C P2 则E P1 E P2 规律2 某问题P可以分成P1 P2 P P1 P2则 C P1 P2 C P1 C P2 所以 E P1 P2 E P1 E P2 5 2设计原理 一 模块化 结论 分而治之 各个击破 将模块无限分割下去 单个模块的开发成本小 几乎可忽略不计 模块之间接口的开发成本呢 5 2设计原理 一 模块化 模块数目为M时 软件开发成本最小 模块数目与软件成本的关系 5 2设计原理 二 抽象 抽象 把一定事物 状态或过程中共性的方面集中和概括起来 暂时忽略它们之间的差异 抽象的思想 处理复杂系统的惟一有效的方法是用层次的方式构造和分析它 抽象层次 软件设计中的两类抽象 过程抽象 功能 过程 函数数据抽象 数据对象定义 描述 数据类型名 最高抽象级别 面向问题的语言较低抽象级别 面向问题和实现的语言最低抽象级别 面向实现的语言 5 2设计原理 二 抽象 CAD图形软件包可以画各种直线和曲线 能完成所有几何图形的计算 图形设计的结果存于图形文件中 图形文件可包含几何的 正文的和其它各种设计信息 抽象1 总体结构层次的抽象图形软件包软件任务图形用户界面创建二维图形任务显示图形任务管理图形文件任务End图形软件包 例子 讨论一个在不同抽象级别上的软件设计所具有的形式 5 2设计原理 二 抽象 抽象2 过程层次的抽象 仅以管理图形文件任务为例 PROCEDUREdrawingfilemanagementtaskIFOpenFileTHENinputfilename openthefile displaythefile ELSEIFSaveFileTHENinputsavefilename savethefile ENDIFENDPROCEDURE 抽象3 实现层次的抽象 程序设计语言描述 5 2设计原理 二 抽象 CAD软件中的数据抽象举例 STRUCTcoordinate intx inty CLASSDrawing parentclass PUBLIC coordinatestartpoint endpoint CLASSLine PUBLICDrawing CLASSCurve PUBLICLine CLASSStraightLine PUBLICLine CurveobjCurve1 objCurve1isainstanceofCurveStraightLineobjSL2 objSL2isainstanceofStraightLine 5 2设计原理 三 逐步求精 逐步求精 为了能集中精力解决主要问题而尽量推迟对问题细节的考虑 逐步求精的思想 对一个事物的认识是一个从高层次抽象向低层次抽象逐步转化和过渡的过程 Miller法则 一个人在任何时候都只能把注意力集中在 7 2 个知识块上 5 2设计原理 求精实际上是细化过程求精要求设计者细化原始陈述 随着每个后续求精 即细化 步骤的完成而提供越来越多的细节 抽象与求精是一对互补的概念抽象使得设计者能够说明过程和数据 同时却忽略低层细节 事实上 可以把抽象看作是一种通过忽略多余的细节同时强调有关的细节 而实现逐步求精的方法 求精则帮助设计者在设计过程中逐步揭示出低层细节 这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型 三 逐步求精 5 2设计原理 四 信息隐藏和局部化 信息隐藏思想 模块应该设计得使其所含的信息 过程和数据 对那些不需要这些信息的模块不可访问 模块之间仅仅交换那些为完成系统功能所必需交换的信息 隐藏 模块的实现细节 而不是所有信息 优点 1 模块的独立性更好2 支持模块的并行开发 设计和编码 3 便于测试和维护 减少错误向外传播4 便于增加新的功能 新增加的模块和原有的模块关系不大5 在较高层次上进行软件开发 有助于提高软件质量和生产效率 5 2设计原理 四 信息隐藏和局部化 局部化 把一些关系密切的软件元素在物理上放得彼此靠近 例如 在模块中使用局部数据元素有助于信息隐藏 5 2设计原理 五 模块独立 模块独立性 每个模块只完成系统要求的独立的子功能 与其他模块的联系最少且接口简单 模块独立的概念是模块化 抽象 信息隐藏和局部化三个基本原理的直接结果 模块独立重要的理由 有效的模块化的软件比较容易开发独立的模块比较容易测试和维护衡量模块独立程度的标准 耦合 内聚 5 2设计原理 五 模块独立 1 耦合性 耦合 指模块之间联系的紧密程度 模块之间联系越紧密 其耦合性越强 独立性就越差 模块耦合度越低越好 1 独立性 2 减少错误传播 模块的耦合性从低到高可分为以下几种类型 非直接耦合 nodirectcoupling 二个模块都不依赖对方而独立存在数据耦合 datacoupling 二个模块通过参数交换信息 而信息仅限于数据控制耦合 controlcoupling 二个模块通过参数交换信息 传递的信息中有控制信息 5 2设计原理 五 模块独立 1 耦合性 标记耦合 特征耦合 stampcoupling 二个模块通过传递数据结构加以联系 数据结构以参数形式进行交换 或都与一个数据结构有关当被调模块只使用数据结构中的一部分数据元素时 产生标记耦合 被调模块可使用的数据多于它所需要的数据 从而导致对数据的访问失去控制 给非法操作提供了机会 5 2设计原理 五 模块独立 1 耦合性非直接耦合举例 两个模块之间没有直接关系 它们之间的联系完全是通过主模块的控制和调用来实现的 这种耦合的模块独立性最强 5 2设计原理 五 模块独立 1 耦合性数据耦合举例 一模块调用另一模块时 被调用模块的输入 输出都是简单的数据 若干参数 属松散耦合 开发票 计算水费 单价 数量 金额 5 2设计原理 五 模块独立 1 耦合性标记 特征耦合举例 住户情况 是一个数据结构 图中模块都与之有关 计算水电费 和 计算水费 传递的是数据结构 它们之间是标记偶合 计算水费 和 计算电费 本无关 由于引用了此数据结构产生依赖关系 它们之间也是标记偶合 5 2设计原理 五 模块独立 1 耦合性标记 特征耦合举例 把标记耦合修改为 数据耦合 非直接耦合 5 2设计原理 五 模块独立 1 耦合性控制耦合举例 控制耦合二个模块通过参数交换信息 传递的信息中有控制信息去除控制耦合的方法 1 将被调用模块内的判定上移到调用模块中进行 2 被调用模块分解成若干单一功能模块 5 2设计原理 五 模块独立 1 耦合性 公共耦合 commoncoupling 二个模块通过公共数据环境相互作用全程变量 共享的通信区 内存的公共覆盖区 任何存储介质上的文件 物理设备如果两个模块共享的数据很多 都通过参数传递可能很不方便 5 2设计原理 五 模块独立 1 耦合性公共耦合举例 公共数据耦合存在的问题 公共数据区及全程变量无保护措施 慎用公共数据区和全程变量 软件可维护性差软件可靠性差 软件可理解性降低诊断错误困难 5 2设计原理 内容耦合 contentcoupling 一个模块访问另一个模块的内部数据 一个模块不通过正常入口而转到另一个模块的内部 两个模块有一部分程序代码重叠 只可能出现在汇编程序中 一个模块有多个入口 这意味着一个模块有几种功能 五 模块独立 1 耦合性 5 2设计原理 五 模块独立 1 耦合性内容耦合举例 5 2软件设计的概念及原理 最不好的耦合形式 一个模块不通过正常入口而进入另一个模块内部 如病毒 说明这个模块有多个功能 许多高级程序设计语言已经设计成不允许任何形式的内容耦合 五 模块独立 1 耦合性 5 2设计原理 五 模块独立 1 耦合性 例 试指出下述用C语言编写的函数声明所代表的模块的耦合的类型 voidfun0 voidfun1 int voidfun2 int typedefstruct DF DFfun4 int voidfun5 staticx fun6 x intfun6 intx return x 内容耦合 fun6可以访问fun5的内部数据 公共耦合 无耦合 数据耦合 标记耦合 5 2设计原理 五 模块独立 1 耦合性 在软件设计中 提高模块的独立性 建立模块间尽可能松散的系统 是模块化设计的目标 为了降低模块间的耦合度 可以采取以下措施 1 在耦合方式上降低模块间接口的复杂性 2 在传递信息类型时的设计原则 尽量采用数据耦合 避免使用控制耦合 慎用或有控制地使用公共耦合 完全不用内容耦合 在实践中要根据实际情况综合考虑 5 2设计原理 五 模块独立 2 内聚性 内聚性 模块内部各个元素彼此结合的紧密程度 它是信息隐藏和局部化概念的自然扩展 高内聚往往以意味着模块间的低耦合 内聚性 低高 偶然内聚 coincidentalcohesion 逻辑内聚 logicalcohesion 时间内聚 timecohesion 过程内聚 proceduralcohesion 通信内聚 communicationalcohesion 顺序内聚 sequentialcohesion 功能内聚 functionalcohesion 5 2设计原理 五 模块独立 2 内聚性 1 偶然内聚 偶然内聚 一个模块内的各处理元素之间没有任何联系 如一个模块内各个成分为完成一组功能而结合在一起 他们相互之间关系松散 模块M中的三个语句没有任何联系 缺点 可理解性差 可修改性差 5 2设计原理 逻辑内聚 一个模块完成的任务在逻辑上属于相同或相似的一类 如一个模块完成的诸任务逻辑上是相关的 如一个模块产生各种类型的全部输出 缺点 增强了耦合程度 控制耦合 不易修改 效率低 五 模块独立 2 内聚性 2 逻辑内聚 5 2设计原理 五 模块独立 2 内聚性 3 时间内聚 时间内聚 一个模块内所包含的诸任务必须在同一时间段内执行 这些功能只因素关联因时间在一起 例如 初始化系统模块系统结束模块紧急故障处理模块 5 2设计原理 五 模块独立 2 内聚性 4 过程内聚 过程内聚 模块内处理元素彼此相关且必须按特定的次序执行 使用程序流程图作为工具设计软件时 常常通过研究流程图确定模块的划分 这样得到的往往是过程内聚的模块 5 2设计原理 五 模块独立 2 内聚性 5 通信内聚 通信内聚 模块内所有元素都使用相同的输入数据或者产生相同的输出数据 例 产生职工工资报表并计算平均工资模块 5 2设计原理 五 模块独立 2 内聚性 6 顺序内聚 7 功能内聚 顺序内聚 一个模块中各个处理元素都密切相关于同一功能且必须顺序执行 前一处理元素的输出数据就是下一处理元素的输入数据 功能内聚 模块内所有处理元素属于一个整体 完成一个单一的功能 最强的内聚 5 2设计原理 五 模块独立 2 内聚性 5 2设计原理 五 模块独立 3 总结 耦合性与内聚性是模块独立性的两个定性标准 将软件系统划分模块时 尽量做到高内聚 低耦合 提高模块的独立性 内聚和耦合是密切相关的 模块内的高内聚往往意味着模块间的松耦合 内聚和耦合都是进行模块化设计的有力工具 但是实践表明内聚更重要 应该把更多注意力集中到提高模块的内聚程度上 5 2设计原理 七条启发式规则 1 模块的划分 高内聚 低耦合 保持相对独立性2 模块的大小 模块规模应该适中3 形成的结构 深度 宽度 扇出和扇入都应适当 顶层扇出较高 中间扇出较小 底层模块高扇入 4 模块的控制 模块的作用域应该在控制域之内5 模块的接口 简单 清晰 含义明确6 设计单入口单出口的模块7 模块功能应该可以预测 5 3启发规则 1 改进软件结构提高模块独立性 分析初步设计结构 通过合并或分解以降低模块之间的耦合 提高模块的内聚 例如 多个模块公有的一个子功能可以独立成一个模块 由这些模块调用 有时可以通过分解或合并模块以减少控制信息的传递及对全程数据的引用 并且降低接口的复杂程度 5 3启发规则 1 改进软件结构提高模块独立性 5 3启发式规则 软件结构图反映了整个系统的功能实现 控制层次体系 往往用树状或网状结构的图形来表示 a 树状结构 b 简单网状结构 c 复杂网状结构 2 模块规模应该适中 模块规模过大 降低可理解程度 模块过小 模块开销大于有效操作 且系统的接口复杂 过大模块 进一步分解 保证模块独立性 过小模块 几个合并 尤其只被一个模块调用时 每个模块最好控制在60行语句以内 语句数超过30以后 模块可理解性迅速下降 5 3启发规则 软件设计的两个阶段 设计原理 模块化抽象逐步求精信息隐藏和局部化模块独立 5 2设计原理 五 模块独立 1 耦合性 5 2设计原理 五 模块独立 2 内聚性 5 2设计原理 七条启发式规则 1 模块的划分 高内聚 低耦合 保持相对独立性2 模块的大小 模块规模应该适中3 形成的结构 深度 宽度 扇出和扇入都应适当 顶层扇出较高 中间扇出较小 底层模块高扇入 4 模块的控制 模块的作用域应该在控制域之内5 模块的接口 简单 清晰 含义明确6 设计单入口单出口的模块7 模块功能应该可以预测 5 3启发规则 3 深度 宽度 扇入 扇出都应该适中 5 3启发规则 3 深度 宽度 扇入 扇出都应该适中 分解或合并模块以调整扇入 扇出数 5 3启发规则 4 模块的作用域应该在控制域之内 作用域 受该模块内的一个判定影响的所有模块的集合控制域 模块本身及所有直接或间接从属于它的模块的集合 A的控制域为 A B C D E F 5 3启发规则 4 模块的作用域应该在控制域之内 表示判定条件 它可影响另一个模块中用到的全局变量或静态变量 例1 例2 4 模块的作用域应该在控制域之内 例3 例4 5 3启发规则 4 模块的作用域应该在控制域之内 作用域不在控制域内的修改方法 1 将判定点上移到足够高的位置 5 3启发规则 4 模块的作用域应该在控制域之内 2 将那些在作用域内但不在控制域内的模块下移到控制域内 5 3启发规则 5 力争降低模块接口的复杂度 目标 仔细设计模块接口 使得信息传递简单并且和模块的功能一致 标记耦合 数据耦合 5 3启发规则 6 设计单入口单出口模块 每个模块只有唯一入口和唯一出口 5 3启发规则 7 模块的功能应该可以预测 同样的输入可以产生同样的输出带有内部 存储器 如 静态变量 的模块 其输出可能取决于内部存储器的状态 当前值 即 静态变量的当前值 模块的功能不可预测 如上例 在另一个类的方法中创建一个counter类的对象 这个方法的功能就不可预测但不应过分强调功能的可预见性而使模块失去灵活性 无法重用模块 5 3启发规则 一 层次图 5 4描绘软件结构的图形工具 层次图用来描绘软件的层次结构 矩形框代表模块 方框之间的连线表示调用关系 图5 3正文加工系统的层次图 一 层次图 层次图 层次方框图层次图 模块方框之间的连线表示调用关系 用于设计阶段层次方框图 模块方框之间的连线表示组成关系 用于需求分析阶段 第3 7节 5 4描绘软件结构的图形工具 二 HIPO图 HierarchyInput Process OutputDiagram HIPO图 层次图 H图 IPO图 输入 处理 输出 除最顶层的方框外 所有的方框加编号 编号规则同数据流图中的编号 对层次图中的各个模块 采用IPO图的方式说明该模块的处理功能 每张IPO图内应标出该模块在H图中的编号 5 4描绘软件结构的图形工具 二 HIPO图 HierarchyInput Process OutputDiagram 5 4描绘软件结构的图形工具 三 结构图 由Yourdon提出结构图 层次图 调用信息方框 模块的名字或功能箭头 或直线 模块的调用关系 通常用直线带注释的箭头 模块调用过程中来回传递的信息尾部是空心圆 传递的是数据尾部是实心圆 传递的是控制信息 5 4描绘软件结构的图形工具 图结构图的例子 5 4描绘软件结构的图形工具 三 结构图 另外的附加符号 模块的选择调用或循环调用 每个传递的数据是否必需 完成模块功能所必须的数据是否都传递到了 传输的数据是否只与单一的功能有关 是否目的明确 三 结构图 结构图一般不入文档 仅用于检查设计的正确性和模块的独立性 若图上模块间的联系不容易解释 则应考虑设计上是否有问题入文档的通常为层次图 再加上IPO图和数据字典 就可导出结构图 5 4描绘软件结构的图形工具 5 5面向数据流的设计方法 需求分析阶段 结构化分析SA StructuralAnalysis 是面向数据流自顶向下逐步求精进行需求分析的方法 设计阶段 结构化设计SD StructuredDesign 是以需求分析阶段产生的数据流图为基础 按一定的步骤映射成软件结构 也称为面向数据流的设计方法 一 信息流的类型1 变换流 5 5面向数据流的设计方法 信息流映射成软件结构事实上所有信息流都可归结为变换流 一 信息流的类型1 变换流 5 5面向数据流的设计方法 信息流的类型2 事务流 5 5面向数据流的设计方法 数据沿输入通路到达事务中心 该中心根据输入数据的类型在若干个动作序列中选择一个来对该数据进行处理 具有这种特征的数据流称为事务流 事务中心任务 接收输入数据 分析每个事务 确定类型 根据事务类型选取一活动通路 事务中心 T 活动通路 面向数据流方法的设计过程 变换分析的设计步骤1 复查基本系统模型 2 复查并精化数据流图3 确定数据流图具有变换特性还是事务特性4 确定输入流和输出流的边界 从而划分出变换中心5 完成第一级分解6 完成第二级分解7 使用设计度量和启发式规则对第一次分割得到的软件结构进行精化 二 变换分析 5 5面向数据流的设计方法 二 变换分析 5 5面向数据流的设计方法 1 复查基本系统模型 指0层数据流图和第1层数据流图 确保系统的输入数据和输出数据符合实际 2 复查并精化数据流图确保给出了正确的逻辑模型 而且每个处理都代表一个规模适中相对独立的子功能 四 实例分析 实例1 5 5面向数据流的设计方法 汽车数字仪表板的设计主要功能 1 通过模数转换实现传感器和微处理机接口 2 在发光二级管面板上显示数据 3 指示每小时英里数mph 行驶的里程 每加仑油行驶的英里数mpg 4 指示汽车正处于加速或减速状态 5 超速警告 车速超过55英里 小时 响警告铃声 图5 11数字仪表板系统的数据流图 3 确定数据流图具有变换特性还是事务特性一般来说所有数据流图都可认为具有变换特性 但当具有明显的事务特性时采用事务分析 二 变换分析 5 5面向数据流的设计方法 4 确定输入流和输出流的边界 从而划分出变换中心 具有边界的数据流图 5 完成第一级分解 确定顶层模块和由顶层直接控制的模块 通常分为输入模块 变换模块和输出模块 方法 设计三个模块CI 输入控制模块CP 变换控制模块CO 输出控制模块 二 变换分析 5 5面向数据流的设计方法 顶层模块的基本功能是控制 协调输入模块 变换模块 输出模块 变换部分 输入部分 输出部分 二 变换分析 5 5面向数据流的设计方法 图5 14数字仪表板系统的第一级分解 二 变换分析 5 5面向数据流的设计方法 6 完成第二级分解 将数据流图中的每个处理映射成软件结构中的一个适当模块 I 由边界向外回溯 将每个遇到的处理映成相应的层模块 P 每个处理直接对应一个下层模块O 由边界向外推 方法与I类似 A D C B 未精化的数字仪表板系统的软件结构 5 5面向数据流的设计方法 数据转换控制 驱动仪表板 接收传感器信号 计算gph 读燃料流 转换成rpm 收集sps 读旋转信号 确定加 减速 计算mph 计算mpg 计算里程 加 减速显示 显示mph 显示mpg 显示里程 发出铃声 发光二极管显示 二 变换分析 模块的简要说明进出该模块的信息 接口描述 模块内部的信息 过程陈述 包括主要判定点及任务等 对约束和特殊特点的简短讨论 7 根据设计度量和启发式规则对第一次分割得到的软件结构进行精化 5 5面向数据流的设计方法 图5 19精化后的数字仪表板系统的软件结构 5 5面向数据流的设计方法 二 变换分析 5 5面向数据流的设计方法 整个过程并不复杂 画好后根据实际情况对软件结构进行优化 也就是进行必要的合并或分解 以求设计出高内聚低耦合的模块组成的 具有良好特性的软件结构 2 5北京某高校可用的电话号码有以下几类 校内电话号码由4位数字组成 第1位数字不是0 校外电话又分为本市电话和外地电话两类 拨校外电话需先拨0 若是本市电话则再接着拨8位数字 第1位不是0 若是外地电话则拨3位区码再拨8位电话号码 第1位不是0 请用定义数据字典的方法 定义上述的电话号码 作业及解答 第2章 2 5北京某高校可用的电话号码有以下几类 校内电话号码由4位数字组成 第1位数字不是0 校外电话又分为本市电话和外地电话两类 拨校外电话需先拨0 若是本市电话则再接着拨8位数字 第1位不是0 若是外地电话则拨3位区码再拨8位电话号码 第1位不是0 请用定义数据字典的方法 定义上述的电话号码 作业及解答 第2章 定义数据的方法符号含义举例 被定义为 与x a b 或 或x a b x a b 或m n重复x a x 3 a 8 可选x a 基本数据元素x a 连结符x 1 9 作业及解答 第2章 电话号码 校内电话号码 校外电话号码 电话号码分为校内电话和校外电话两类校内电话号码 非零数字 3位数字 校内电话号码由4位数字组成 第1位数字不是0校外电话号码 本市号码 外地号码 校外电话又分为本市电话和外地电话两类本市号码 数字零 8位数字 拨校外电话需先拨0 若是本市电话则再接着拨8位数字 第1位不是0 作业及解答 第2章 外地号码 数字零 3位数字 8位数字 拨校外电话需先拨0 若是外地电话则拨3位区码再拨8位电话号码 第1位不是0 非零数字 1 2 3 4 5 6 7 8 9 数字零 03位数字 3 数字 3 3至3个数字8位数字 非零数字 7位数字7位数字 7 数字 7数字 0 1 2 3 4 5 6 7 8 9 作业及解答 第2章 3 3银行计算机储蓄系统的工作过程大致如下 储户填写的存款单或取款单由业务员键入系统 如果是存款则系统记录存款人姓名 住址 或电话号码 身份证号码 存款类型 存款日期 到期日期 利率及密码 可选 等信息 并印出存单给储户 如果是取款而且存款时留有密码 则系统首先核对储户密码 若密码正确或存款时未留密码 则系统计算利息并印出利息清单给储户 请用数据流图描绘本系统的功能 并用实体 联系图描绘系统中的数据对象 作业及解答 第3章 作业及解答 第3章 作业及解答 第3章 ER模型本问题中共有两类实体 分别是 储户 和 储蓄所 在它们之间存在 存取款 关系 因为一位储户可以在多家储蓄所存取款 一家储蓄所拥有多位储户 所以 存取款 是多对多 M N 关系 储户的属性主要有姓名 住址 电话号码和身份证号码 储蓄所的属性主要是名称 地址和电话号码 而数额 类型 到期日期 利率和密码则是关系类型存取款的属性 作业及解答 第3章 作业及解答 第3章 设计原理 模块化抽象逐步求精信息隐藏和局部化模块独立 5 2设计原理 五 模块独立 1 耦合性 5 2设计原理 五 模块独立 1 耦合性 在软件设计中 提高模块的独立性 建立模块间尽可能松散的系统 是模块化设计的目标 为了降低模块间的耦合度 可以采取以下措施 1 在耦合方式上降低模块间接口的复杂性 2 在传递信息类型时的设计原则 尽量采用数据耦合 避免使用控制耦合 慎用或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025二手房预售转让合同
- 2025无产权是否影响房屋网签合同效力
- 技术咨询与服务实施合同书
- 2025企业销售代表劳动合同书
- 淄博春考二模题目及答案
- 自然作文:环境描述技巧与实践应用教案
- 2025年深圳市凭样品买卖合同
- 业务团队工作流程优化指南
- 合作开发项目成果分配协议规范
- 自然与人生态度的哲理启示:陶渊明白诗赏析教案
- 2025年电动港机装卸机械司机(高级技师)职业技能鉴定理论考试题库(含答案)
- 股权代持协议英文版10篇
- 2024年会计法规综合考查试题及答案
- GA 1812.2-2024银行系统反恐怖防范要求第2部分:数据中心
- 鉴定机构运营管理制度
- 《帕金森病的护理》课件
- 《劳动项目四 扫地》(教案)-2024-2025学年人教版劳动二年级上册
- 2025年江苏东台市国有资产经营有限公司招聘笔试参考题库含答案解析
- 信息技术(基础模块)课件 第5章-新一代信息技术概述
- “教联体”在家校社协同育人中的实践
- 2025年道教人员考试试题及答案
评论
0/150
提交评论