码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 系统结构设计原则、聚合与耦合


    目录

    一、系统结构设计原则

    1、分解-协调原则

    2、自顶向下的原则

    3、信息隐蔽、抽象的原则

    4、一致性原则

    5、明确性原则

    6、模块的扇入系统和扇出系数要合理

    7、模块的规模适当

    8、考点:系统结构设计原则的具体项目

    二、聚合与耦合(重点)

    1、聚合与耦合是衡量模块独立性的标准

    2、聚合是衡量模块内各个元素的精密程度

    3、耦合是衡量模块之间的紧密程度

    4、考点

    (1)七种聚合的排列顺序、七种耦合的排列顺序

    (2)七种聚合的概念理解、七种耦合的概念理解

    5、聚合

    (1)偶然聚合

    (2)逻辑聚合

    (3)时间聚合

    (4)过程聚合

    (5)通信聚合

    (6)顺序聚合

    (7)功能聚合

    6、耦合

    (1)非直接耦合

    (2)数据耦合

    (3)标记耦合

    (4)控制耦合

    (5)外部耦合

    (6)公共耦合

    (7)内容耦合

    7、高内聚低耦合

    三、聚合与耦合考点

    1、确定聚合类型/聚合程度高低

    2、确定耦合类型/耦合程度高低

    3、模块设计的原则


    一、系统结构设计原则

    1、分解-协调原则

    • 在整个软件生命周期中概要设计将系统划分成很多个小的模块;
    • 这个分解的过程就是将系统看做一个整体,根据系统工程的思想,自顶向下逐层进行分解。
    • 分解出来的各个模块会共同协调完成特定的功能。

    2、自顶向下的原则

    3、信息隐蔽、抽象的原则

    • 通过封装技术、把一些比较机密的信息封装在模块内,给用户看到的只是输入和输出的信息。这个数据的处理逻辑是如何实现的,用户是看不到的。
    • 把具体的对象、行为、特征,进行分类总结后一步一步抽象成类、或者更高层的对象。

    4、一致性原则

    5、明确性原则

    6、模块的扇入系统和扇出系数要合理

    • 模块的扇入系数:是指直接调用该模块的上级模块的个数,扇入大,说明这个模块的通用性越强,重复利用的机会就比较高。
    • 模块的扇出系数:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。扇出系数不宜过大或过小,不然模块划分就会有些问题。

    7、模块的规模适当

    • 软考中的参考值是代码不超过500行。

    8、考点:系统结构设计原则的具体项目

     

    二、聚合与耦合(重点)

     

    1、聚合与耦合是衡量模块独立性的标准

    2、聚合是衡量模块内各个元素的精密程度

    3、耦合是衡量模块之间的紧密程度

    4、考点

    (1)七种聚合的排列顺序、七种耦合的排列顺序

    (2)七种聚合的概念理解、七种耦合的概念理解

    (3)考察方式:题干给具体的场景描述,让考生判定具体属于哪一种聚合或者耦合。

    5、聚合

    (1)偶然聚合

    • 指的是模块完成动作之间的元素没有任何的关系,或者说仅仅是一种非常松散的关系。
    • 简单理解就是把一些代码元素放到了这个模块中,但他们与这个模块功能的实现没有必然的关系。

    (2)逻辑聚合

    • 指的是模块内部的各个组成,在逻辑上有相似的处理动作,但功能用途上彼此无关。

    (3)时间聚合

    • 强调的是模块内部的各个组成部分所包含的处理动作,必须在同一时间执行。

    (4)过程聚合

    • 指的就是模块内部各组成部分所完成的动作虽然没有一个必然的联系,但必须按照特定的次序完成。
    • 简单理解就是完成一件事情,先后动作一定要按事先预定好的要求来。

    (5)通信聚合

    • 指的是模块中各个部分完成的动作都使用了同一输入数据,或者产生了同一输出数据。

    (6)顺序聚合

    • 模块内的各个部分,前一部分动作的输出是后一部分动作的输入。各部分的执行顺序是有先后顺序的,前一部分的执行结果会影响到后一部分。

    (7)功能聚合

    • 聚合程度是最强的,也是程序所追求的聚合状态。
    • 指的是模块内部各个组成部分都为同一功能服务。换句话讲,就是这个模块内缺失任意一部分,这个功能就无法实现。

    6、耦合

    (1)非直接耦合

    • 两个模块之间没有必然直接的联系。
    • 是通过主模块的控制和调用实现联系的,所以两个模块间的独立性会比较好。
    • 所以修改其中一个模块时,无需考虑另一个模块。

    (2)数据耦合

    • 两个模块之间有直接的关系。
    • 两个模块之间是通过数据参数交换信息的,也就是说两个模块之间存在通信。

    (3)标记耦合

    • 两个模块之间是通过一组数据结构的子结构来传递信息记录的。

    (4)控制耦合

    • 两个模块之间传递给彼此的信息包含有控制信息。

    (5)外部耦合

    • 两个模块之间通过一个全局简单变量进行数据的传送。

    (6)公共耦合

    • 两个模块之间有一个公共的数据区域来传递信息。

    (7)内容耦合

    • 一个模块执行的时候需要跑到另一个模块的内部去获取信息。
    • 耦合程度是最高的。

    7、高内聚低耦合

    • 符合这个标准,意味着模块的独立型好,后期的可维护性就比较高。

    三、聚合与耦合考点

    1、确定聚合类型/聚合程度高低

     
    • 一个模块中包含多个功能肯定不是功能聚合,例如题中该模块分别实现了 读、修改、存回三个功能。
    • 同一时间执行动作才是时间聚合,题干中有先后,所以肯定不是时间聚合。
    • 逻辑聚合需要各个部分有相似的处理动作,读、些、修改很明显没有类似的处理动作。
    • 过程聚合指的就是模块内部各组成部分所完成的动作虽然没有一个必然的联系,但必须按照特定的次序完成。题干中必须先读出产品信息,才能进行修改,修改完才能存回数据库。
    • 高聚合模块独立性才好,过程聚合不是最高的聚合,所以模块独立性也不好。

    2、确定耦合类型/耦合程度高低

    3、模块设计的原则

     
  • 相关阅读:
    21天学习挑战赛-《Autosar从入门到精通-实战篇》
    大学生《Web课程谁》期末网页制作 HTML+CSS+JavaScript 网页设计实例 瑜伽网站企业网站制作
    甘露糖-聚乙二醇-马来酰亚胺 mannose-PEG-MAL 马来酰亚胺-PEG-甘露糖
    聊聊MySQL的10大经典错误
    Go语言的安装与环境配置
    flutter 使用getx 框架系统日历 showDatePicker && selectTimeWidget 多语言切换终极解决方案
    PAT 1124 Raffle for Weibo Followers
    流畅的Python——序幕
    ES相关问题
    Docker Toolbox下载安装运行镜像
  • 原文地址:https://blog.csdn.net/qq_46071165/article/details/126647960
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号