精华内容
下载资源
问答
  • 兖州矿业(集团)有限责任公司开展了继电保护软、硬件设计的模块化,标准化原则研究,保证系统自身独立性及与其他系统的兼容性。①分解模块以功能为核心。模块是以通用部件(模块)组合的一种产品构成模式。模块是具有确定...
  • 程序设计原则-模块化

    2019-10-08 22:13:13
    面向过程程序设计模块化原则和面向对象程序设计模块化原则通遵循此原则: 面向数据逻辑模块化原则数据逻辑:站在数据逻辑角度进行问题分析,依据数据逻辑模块化原则进行分析设计。 面向程序逻辑模块化原则程序...

    面向过程程序设计模块化原则和面向对象程序设计模块化原则通遵循此原则:

    1. 面向数据逻辑模块化原则 数据逻辑:站在数据逻辑角度进行问题分析,依据数据逻辑模块化原则进行分析设计。
    2. 面向程序逻辑模块化原则 程序逻辑:站在程序逻辑角度进行问题分析,依据程序逻辑模块化原则进行分析设计。

    数据逻辑:

      ……

    程序逻辑:

    1. 客户基本需求
    2. 问题需求分析
    3. 明确要解决的问题
    4. 将大问题分解为若干独立的易于解决的问题片段
    5. 逐步明确各个问题片段的解决方案
    6. 总体规划设计
    7. 编码实现
    8. 程序测试
    9. 部署维护

    转载于:https://www.cnblogs.com/ljmatlight/archive/2012/10/31/2747573.html

    展开全文
  • 模块化程序设计的原则

    千次阅读 2013-01-29 18:45:17
    对于一个大型应用软件,如何做到恰当的模块划分 是一个比较困难事。

    对于一个大型的应用软件,如何做到恰当的模块划分 是一个比较困难的事。

     

    展开全文
  • 软件模块化设计的思路

    万次阅读 2017-10-24 22:08:50
    【关键词】软件模块化设计、职责分离原则、可移植性、稳定性 一、问题提出 软件模块化目的是建立可重用软件组件,在不需要修改或仅作少量修改情况下,可再次用来组建新软件系统,提高软件开发周期和...

    【摘要】

    本文讨论了软件模块化设计过程中的若干重要问题解决的一般思路。

    【关键词】软件模块化设计、职责分离原则、可移植性、稳定性

    一、问题的提出

    软件模块化的目的是建立可重用的软件组件,在不需要修改或仅作少量修改的情况下,可再次用来组建新的软件系统,提高软件的开发周期和可靠性。由于软件模块有在不同的系统中使用的需求,决定了软件模块的设计和专用于单一系统的软件代码存在差别,这具体体现在以下方面:

    1. 软件模块需要更好的弹性,增加适用范围;

    2. 软件模块需要有更好的可移植性,增加适用范围;

    3. 软件模块需要更清晰地定义接口,避免模糊含混;

    4. 软件模块需要有更好的稳定性,避免错误影响范围扩散;

    5. 软件模块需要有更好的独立性,避免引用牵连模块,形成依赖链。

    二、解决思路

    2.1如何提供更好的设计弹性

    长期的软件实践表明,良好的弹性来自于抽象。引入更多的更高层次的抽象会增加软件的弹性。而一个抽象的层次高低来自于设计者对问题域的本质认识的深刻程度,所以要设计更有弹性的模块,首先需要提高自己对模块所解决的问题的认识。额外的抽象层次基本上都会带来性能损失,所以设计上应该考虑到性能和弹性的平衡,但在性能问题没有确证之前,弹性优先。弹性带来的另一个问题是复杂性,过于复杂的软件会带来理解和维护上的困难,所以过度的弹性设计也是不可取的。

    改进模块弹性的一般的手段有:

    1. 采用接口提供服务而非具体实例。通过不同的方案实现接口,可提供弹性,而对客户不产生影响;

    2. 采用单一职责的简单模块而非复杂庞大的。实践证明细粒度的软件单元有更好的适用范围,不同职责的服务应该使用分离(物理的或逻辑上)的接口,不要在一个模块中提供2个以上的服务;

    3. 提供可扩展机制,允许客户自行添加新的功能来强化模块;

    4. 提供配置选项,允许客户定制模块的部分行为。

    2.2如何提供更好的可移植性

    可移植性是指让软件在不同平台上运行的难易程度,不需要任何修改就可以运行的就称为跨平台的。实际上真正跨平台的软件是不存在的,任何跨平台的软件必须有一个抽象的底层来支撑,这个支撑的部分是需要在不同的平台上重新实现的,也就是软件的需移植部分。认识到这一点,就可以看到,增加一个软件模块的可移植性,需要做两件事:分离不需要移植和需要移植的部分、减小需要移植部分的复杂度以方便移植。

    要确定一个软件模块是否是可移植的,首先需要确定这个模块的目标平台。必须仔细分析所有目标平台的异同,才能够确定哪些是可以在所有平台上都支持的,这些就是不需要移植(可移植)的部分,而并非所有平台都支持只要有一个不支持)的部分则是需要移植的。选择技术方案时,优先选择可移植方案。对模块中无可移植方案的部分,采用接口抽象出一个可移植层,在不同的平台上分别实现此接口,此接口的实现就是整个模块的需要移植部分,在做移植工作时,只要将关注点放在这里即可。

    通常,采用C语言开发的软件,标准C库是很好的可移植库;采用C++开发的软件,选择STL也会获得很好的可移植性;对于网络编程,socket api 也是受绝大多数系统平台支持的,有很好的可移植性。不同的编译器之间也会存在差异,编码时采用标准C/C++语法,避免使用特定编译器的扩展语法,也会改进可移植性。采用一些跨平台第三方库一般也能带来较好的可移植性,但在采用之前需要考虑是否开放源代码、是否收费等因素。

    总之,一个软件模块的可移植性好坏,也是取决于设计者对所有目标编译/运行平台的熟悉程度。增加对各个目标的平台了解,有助于设计出具有更好可移植性的模块。

    2.3如何提供更清晰的接口定义

    当一个模块不考虑可重用时,有时可能不会对接口考虑得非常仔细,接口说明可能就以口头约定或项目内部约定为准。这在单一项目内部一般不会造成很大问题,但一旦模块需要重用到其他项目,这种不太严谨的方法就会带来诸如语义含混、理解困难、功能定义不明确等问题。因此可重用模块的接口的定义需要比内部使用的模块更严格,一般需要考虑以下方面:

    1. 该模块提供的具体服务的详细描述,清晰地阐明该模块提供了哪些服务,以及如何提供;

    2. 每一个接口函数(操作)的语义说明,包括所有的参数的含义、传递方向、有效范围、异常处理、前提/后置条件等;

    3. 在多任务环境下的并发访问安全性的说明,这对多任务开发非常重要;

    4. 模块本身的适用范围需要详细描述,清晰界定模块可以工作的环境;

    5. 提供完整的示例代码演示正确的使用方法,很多时候demo是最好的文档。

    2.4如何提供更好的稳定性

    稳定性体可细分了功能上的稳定性和设计上的稳定性。功能上的稳定性表现为模块多次运行不会出现错误;设计上的稳定性表现为多次复用不会需要修改。

    功能上的稳定性可以通过单元测试等手段来达到。根据接口设计足够多的测试用例,可以在很大程度上保证功能。同时,注重编程规范、严格检查各种前提/后置条件、编写更多的保护性代码、采用更好的错误处理机制,这些手段都有利于提升模块的功能稳定性。

    设计上的稳定性则需要设计者对问题域有深刻的认识,在设计时采用更多的前瞻性、考虑跟多的兼容性、兼顾更多的可移植性。这对设计者提出了更高的要求。很多时候,完全不要修改而直接复用的可能性是比较小的,但一般通过努力分析问题域,可以做到基本框架和接口的设计不做任何修改,而只需要针对新的应用环境做移植和扩展。这种比较稳定的框架设计可以通过在若干个复用过程中反复重构而获得,但需要设计者善于从旧有的设计中提炼总结。参考一些成熟框架也是提升设计稳定性的不错的选择。

    2.5如何提供更好的独立性

    一个模块如果依赖其他模块,那么在复用时,其依赖的模块也需要一并复用。这种依赖会形成一个链,如果其中任何一个不可复用,将导致整个链上的都不可复用。所以,如果可能,以可复用为目标的软件模块在设计时,尽量要考虑做成独立的组件。

    设计独立的软件模块时,可考虑下列方面:

    1. 避免采用存在复用风险(如缺乏源代码)的其他模块,只考虑使用平台的基本服务或有持续支持的其他模块;

    2. 将依赖的模块集成到本模块内部,使得外部依赖成为内嵌部分;

    3. 将可能存在风险的外部依赖模块通过额外的抽象层隔离,使得本模块可以独立于依赖模块而变化;

    4. 选择具有较短依赖链的外部模块作为依赖模块,缩短整个依赖链。

    全文地址:点击打开链接

    展开全文
  • CSS模块化设计 设计原则  可复用能继承要完整  周期性迭代 设计方法  先整体后部分再颗粒化  先抽象再具体 JS组件设计 设计原则  高内聚低耦合  周期性迭代 设计方法  先整体后部分再颗粒化  尽...

    CSS模块化设计

    1. 设计原则
       可复用能继承要完整
       周期性迭代
    2. 设计方法
       先整体后部分再颗粒化
       先抽象再具体

    JS组件设计

    1. 设计原则
       高内聚低耦合
       周期性迭代
    2. 设计方法
       先整体后部分再颗粒化
       尽可能的抽象

    自适应

    1. 基本概念
       CSS像素、设备像素、逻辑像素、设备像素比
       Viewport
       Rem
    2. 工作原理
       利用viewport和设备像素比调整基准像素
       利用px2rem自动转换css单位

    SPA设计

    1. 设计意义
       前后端分离
       减轻服务器压力
       增强客户体验
       Prerender预渲染优化SEO
    2. 工作原理
       History API(onpopstate、pushState)
       Hash(hashchange、lication.hash)
    展开全文
  • 软件设计的原则:模块化、抽象和信息隐藏
  • 通过分析公理化和模块化理论的原则、特征、作用及优点,探求二者之间关系和各种结合方式可行性,从而得出最合理、最有效结合方式为:先利用公理化设计理论对产品进行设计,再由模块化设计理论进行完善....
  • 零配置Spring框架搭建,使用模块化原则去定义Bean配置形式,设计直观,优雅,高可用框架
  • 其次,利用模块化设计中的模块划分原则生成子装配体,通过将模块化设计方法整合入混合图模型中,得到模块化设计的混合图拆卸模型,利用该模型可以有效地解决图论模型中边与顶点产生"组合爆炸"的问题; 最后,以模块化
  • 模块化设计

    千次阅读 2013-03-27 12:23:01
    我们习惯地从功能上划分模块,保持“功能独立”是模块化设计的基本原则。因为,“功能独立”的模块可以降低开发、测试、维护等阶段的代价。但是“功能独立”并不意味着模块之间保持绝对的孤立。一
  • 1.在结构化的程序设计中,模块划分的原则是() 各模块硬包括尽量多功能 各模块的规划应尽量大 各模块之间联系尽量紧密 模块内具有高内聚度,模块间具有低耦合度 解答:D 高内聚,低耦合 高类聚就是...
  • 一般嵌入式软件的设计都需要进行开机初始配置,在关机前,需要保存用户的设置。所以我们需要有始有终。 问题:那么如何强制使开发人员遵循这个原则呢? 我们可以在类的设计的时候将析构函数成为纯虚函数,...
  • 摘要:介绍了Xilinx FPGA配置原理和FPGA模块化设计流程以及划分重构模块的原则。通过一个实例介绍了采用模块化设计方法实现Virtex-E FPGA动态部分重构过程,能使重构模块在系统运行时改变其逻辑功能,而固定模块...
  • 带DDD的模块化整体 具有域驱动设计方法的完整模块化Monolith .NET应用程序。 CI 前端应用 前端应用程序: 目录 1.简介 1.1此存储库的目的 ...演示域模型的单元测试的实现(考虑可测试的设计) 介绍集
  • 在软件行业,模块化编程早已深入人心,通过模块划分能有效地减小软件系统复杂度,模块化其实就是将系统“分而治之”方法。在嵌入式系统中,每一个模块存在初始化函数相对比较普遍,但是并不是每一个模块都...
  • 摘要:介绍了Xilinx FPGA配置原理和FPGA模块化设计流程以及划分重构模块的原则。通过一个实例介绍了采用模块化设计方法实现Virtex-E FPGA动态部分重构过程,能使重构模块在系统运行时改变其逻辑功能,而固定模块...
  • 基于可重构模块化现代设计思想,研究了立式三四边封袋包装机可重构模块化设计问题。从面向设计、制造和装配角度出发,并遵循了模块划分原则,为立式袋包装机现代化和数字化设计提供了基础。
  • 软件工程 3:模块化设计

    千次阅读 2020-03-21 17:05:41
    文章目录软件工程 3面向过程:模块化设计模块设计原则:高内聚、低耦合函数设计:不知道如何下手怎么办错误处理:每个函数都有错误处理模块编译和链接面向对象:万事万物皆对象类:一组相似事物统称对象:一个...
  • CSS里也包含了设计模式6大原则,今天讲讲聚合/组合原则--多用组合,少用继承
  • 高度模块化的设计是Nginx体系结构的基础。 Nginx服务器分为多个模块。 每个模块都是一个功能模块,仅负责其自身的功能。 这些模块严格遵循“高内聚,低耦合”的原则。 核心模块 核心模块是Nginx服务器正常运行必不...
  • 关于软件模块化设计方法

    千次阅读 2013-03-13 19:55:56
    模块化设计的有点: 1、提高代码重复利用率 2、便于调试排错 3、易于扩展 4、便于修改、升级 适合比较大型一点的软件开发。   如果在写一个软件的过程中,发现自己越写越慢,越来越难写下去,每增加一个功能...
  • 高内聚,低耦合 高内聚:一个C文件里面函数...低耦合:一个完整系统,模块模块之间,尽可能使其独立存在。也就是说,让每一个模块尽可能独立完成某个特定子功能。模块模块之间接口应该尽量少而简单。
  • C语言的模块化设计和面向对象编程

    千次阅读 2011-03-02 21:04:00
    来自网易杭州研发技术总监“云风”BLOG的几篇面向对象设计的文章 C 语言对模块化支持的欠缺 ...模块化是最高原则之一(在 《Unix 编程艺术》一书中, Unix 哲学第一条即:模块原则),我们就当考虑如何简
  • 在此先感谢 文烧饼 同学纠正文中一处...三、模块化设计原则 3.1 面向接口 3.2 数据驱动 3.3 模块隔离 四、模块化框架设计 4.1 数据源 4.1.1 数据源协议 4.1.2 模块组件管理 4.1.3 数据流向 4.2 模块组件 4...
  • css模块化设计 1. 设计原则 可复用能继承完整 周期性迭代 1) 可复用能继承完整 如上图,如果我们对该进行css模块抽象,大家会怎么分块呢?有会说右边两个可以分一块,因为字们长得很像。还有会想'下载APP送...
  • Java 9 模块化开发:核心原则与实践

    千次阅读 2018-12-21 23:30:20
    当需要创建灵活且易于维护代码时,模块化是一个关键架构设计原则。本书给出了 Java 模块系统明确概述,并演示了如何通过创建模块化应用程序来帮助管理以及降低复杂性。 作者引导我们了解了模块系统中相关...
  • 模块化设计是指将软件分解为多个独立模块,不同模块具有不同功能和职责。每个模块可以独立进行开发、测试,最后组装成完整软件。   模块独立性是指软件系统中每个模块只涉及软件要求子功能,而与软件系统...
  • 1. 准备工作 编辑器vscode,需要安装liveServer插件...由于公司业务比较复杂,并且有很多重复性功能,所以尽量采用高可复用的原则,该系统采用完全分离开发方式,所有数据采用接口调用,所以由于功能模块较...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,203
精华内容 881
关键字:

模块化设计的设计原则