关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » 算法设计 »从模拟真实世界中理解软件设计原则

    从模拟真实世界中理解软件设计原则

    2014-12-16 00:00:00 出处:ITJS
    分享

    软件设计原理的理论在大多数学生眼里既枯燥又乏味——那是因为他们从没做过真正的软件项目,以致于这些概念在他们眼里似是而非。

    例如,他们了解耦合性、内聚性、MVC和ESB。但是当被问到为什么要掌握这些概念以及何时使用的时候就一问三不知哑口无言了。记住一些UML图是一件很容易的事,但是要想掌握具体使用情况以及如何稍作修改以便于适应具体应用需求就难了。

    为了更好地理解软件的设计理念,有些教授想出了一些很有意思的点子——那就是模拟真实场景,这使得这些概念更易于学生的理解和掌握。

    举个关于低耦合原则的真实事例:

    Mike想要申请一本护照,他到了相关部门之后遇到了Jack

    两天后,他将所需要的资料带来,但是却是Patricia接待了他

    在现实世界中,Patricia的行为明显毫无逻辑可言,因为该服务并不是依赖Jack才能办理的,作为服务的提供者,她应该也为Mike办理护照。

    其具体流程也非常简单,如果你想要申请护照,那就准备好具体的资料即可。但是没说一定要让Jack受理。

    这个故事的寓意是:如果此服务高度依赖于Jack,那么一旦出现突发情况就会产生问题。而如果Jack一直在那,我们是意识不到他的重要性的,但是一旦他没在,那就会影响服务系统了。

    这个道理很浅显,是吧?但是在软件设计中,很多开发人员还是会犯这种错误,因为他们没有考虑到高耦合是否符合逻辑。然后,等以后因为做某种改变导致整个架构出现问题的时候,就追悔莫及了——不得不投入更多的时间和资金去解决这些问题。

    我们最好能够可视化这些软件编程概念,而不仅仅只是让学生掌握理论。此外,有些图表工具,例如依赖图、依赖矩阵和树映射技术等,可以让我们可视化源代码发生的各种变化。例如对于Java,可以使用JDepend,JArchitect和Structure101,对于C / C++,CppDpend则很不错。

    DSM

    设计结构矩阵(DSM)用一种方阵的形式,简单紧凑又可视化地表现一个系统或项目。

    下面就是一个在Architect使用DSM的例子,从矩阵中我们很容易检测出常用程序包、依赖周期和非常用程序包。

    树映射

    树映射以一种嵌套矩阵的形式显示层次(树形结构)数据。树的每个分支都有一个矩阵,然后再分支得到更小的矩阵。叶节点的矩阵按比例映射到指定大小的数据容器中。

    下面就是一个在Architect使用树映射的例子,使用一个String类来映射所有的类。

    上图可谓是将源代码形象化了,通过这种投射到现实世界的方式,有助于我们更好地掌握软件背后的设计原则。很多情况下,掌握理论并不足以理解一个概念。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    商业智能成CIO优先关注点 技术落地方显成效(1)

    用linux安装MySQL时产生问题破解

    JAVA中关于Map的九大问题

    windows 7旗舰版无法使用远程登录如何开启telnet服务

    Android View 事件分发机制详解

    MySQL用户变量的用法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。