- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程Software Engineering 总之,耦合是影响软件复杂程度的一个重要因素。为了降低模块间的耦合程度,应该采取下述设计原则: 尽量使用数据耦合,少用控制耦合,限制公共环境耦合,完全不用内容耦合。 内聚 内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。 设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。 内聚的种类: 偶然内聚:模块内部各部分之间没有联系,或者即 使有联系,这种联系也很松散。 逻辑内聚:此模块把几种相关的功能组合在一起。 时间内聚:模块的各个功能的执行与时间有关,通 常要求所有功能必须在同一时间段内执行。 通信内聚:如果一个模块内各功能部分都使用了 相同的输入数据,或产生了相同的输出数据。 顺序内聚:又称信息内聚,这种模块完成多个功 能,各个功能都在同一数据结构上操作,每一项功 能有一个唯一的入口点。 功能内聚:一个模块内各个部分都是完成某一具体 功能必不可少的组成部分。 内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。内聚和耦合都是进行模块化设计的有力工具,但是实践表明内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。 模块独立性比较强的模块应是高内聚低耦合的模块。 4.2.4 软件结构设计优化准则 1. 提高模块独立性 2. 模块接口的准则 模块的接口要简单、清晰,含义明确,便于理解,易于实现、测试与维护。 3. 模块的作用范围应在控制范围之内 4. 模块的深度、宽度、扇出和扇入应适当 5. 模块的大小应适中 4.3 软件结构设计的图形工具 4.3.1 层次图 通常使用层次图描绘软件的层次结构,特别适合于在自顶向下设计时使用。在层次图中一个矩形框代表一个模块,除顶层之外,每个方框都加编号,且每个处理的下层处理的编号在上层编号后加“.”号及序号。序号可用数字也可用英文字母。 框间的连线表示调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。 医疗费管理系统的HIPO图 正文加工系统(如Word)的层次图 正文加 工系统 输入 1.0 输出 2.0 编辑 3.0 加标题 4.0 添加 3.1 删除 3.2 插入 3.3 修改 3.4 合并 3.5 列表 3.6 存储 5.0 检索 6.0 编目录 7.0 格式化 8.0 4.3.2 结构图 结构图是进行软件结构设计的另一个有力工具。结构图反映程序中模块之间的层次调用关系和联系,结构图用于表达系统内部各分量之间的逻辑结构和相互关系。 1. 结构图的符号 (1)方框代表模块,框内注明 模块的名字和主要功能。 (2)方框之间的大箭头或直线 表示模块的调用关系。 (3)带注释的小箭头表示模块 调用时传递的信息及其传 递方向。 尾部加空心圆的小箭头表 示传递数据信息。 尾部加实心圆的小箭头表 示传递控制信息。 (4)选择结构 (5)循环结构,模块 H 循环 调用模块 A,B,C。 ① 模块:模块用矩形框表示,并用模块的名字标记它。 模块的表示方法 ② 模块的调用关系和接口:模块之间用单向箭头联结,箭头从调用模块指向被调用模块。 模块的调用关系和接口 ③ 模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行。而被调用模块在执行过程中又把它产生的数据或控制信息回送给调用模块。 ④ 在模块A的箭头尾部标以一个菱形符号,表示模块A有条件地调用另一个模块B。当一个在调用箭头尾部标以一个弧形符号,表示模块A反复调用模块C和模块D。 2. 结构图的绘制 结构图只描述一个模块调用哪些模块,没有描述调用次序,也没有表明模块内部的成分,通常上层模块除了调用下层模块的语句之外还可以有其他语句,结构图上体现不出这种情况。画结构图可以作为检查设计正确性和模块独立性的方法,通过检查数据传递情况分析数据传递是否齐全,是否正确,是否有多余的、不必要的数据传递,还可分析模块分解或合并的合理性,以便选用最佳方案。 【例4-6】学生成绩管理系统的结构图 4.4 概要设计方法 4.4.1 结构化方法 结构化方法又称面向数据流设计方法(Structured Design,SD)。 设计步骤是先根据系统数据流图建立系统逻辑模型,再进行结构设计。 1. 建立系统
文档评论(0)