当前位置:首页 » 编程软件 » 模块化编程

模块化编程

发布时间: 2022-01-08 01:37:45

A. c语言中是如何实现模块化的

c语言是模块化编程的工具,模块如何组织,模块之间如何交互应该是个大问题。我觉得有以下几个值得注意的地方(不对的地方请大家指正):
1、每个源文件就是一个独立的模块,它应该能够在不连接任何其它模块、不需要其它源文件的情况下独立编译
2、模块之间是通过函数、常量、变量、结构定义、宏(似乎也是常量的一种)进行交互的
3、每个模块应该包括导入和导出两个部分,比如要调用另外一个模块的函数foo(),需要
extern int foo();
这应该属于模块的导入部分
而由该模块提供的函数,应该在相应的头文件中声明,作为模块的导出部分。
模块的导出部分应该放在该模块的头文件中。
4、如果只在本模块使用的变量,在本模块中定义成static的就可以了;否则就是全局变量,全局变量在头文件中声明一下,同时也作为模块的导出部分。
5、宏既可以定义在头文件中,也可以定义在源文件中。如果宏只是模块中用到,相当于局部常量,放到源文件中好了;如果其它模块也要用到,那么把它放到头文件中去。
6、结构定义似乎都放在头文件中。是不是应该另外有一个头文件,专门用来定义结构???

首先,我不知道自己的想法是否正确;其次,关于到底应该怎么样组织文件,我想应该也是有个标准的,可惜我没找到这样的资料。希望有高人能站出来指点一下,谢谢

B. java 模块化编程

你好,我来为你解答:
常见的十四种Java开发工具的特点

1、JDK(JavaDevelopmentKit)Java开发工具集

从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显着特点是随着Java(J2EE、J2SE以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常困难,不能进行复杂的Java软件开发,也不利于团体协同开发。

2、JavaWorkshop

3、NetBeans与SunJavaStudio5

NetBeans是开放源码的Java集成开发环境(IDE),适用于各种客户机和Web应用。

SunJavaStudio是Sun公司最新发布的商用全功能JavaIDE,支持Solaris、Linux和Windows平台,适于创建和部署2层JavaWeb应用和n层J2EE应用的企业开发人员使用。NetBeans是业界第一款支持创新型Java开发的开放源码IDE。开发人员可以利用业界强大的开发工具来构建桌面、Web或移动应用。同时,通过NetBeans和开放的API的模块化结构,第三方能够非常轻松地扩展或集成NetBeans平台。NetBeans3.5.1主要针对一般Java软件的开发者,而JavaOneStudio5则主要针对企业做网络服务等应用的开发者。Sun不久还将推出ProjectRave,其目标是帮助企业的开发者进行软件开发。NetBeans3.5.1版本与其他开发工具相比,最大区别在于不仅能够开发各种台式机上的应用,而且可以用来开发网络服务方面的应用,可以开发基于J2ME的移动设备上的应用等。在NetBeans3.5.1基础上,Sun开发出了JavaOneStudio5,为用户提供了一个更加先进的企业编程环境。在新的JavaOneStudio5里有一个应用框架,开发者可以利用这些模块快速开发自己在网络服务方面的各种应用程序。

4、Borland的JBuilder

Jbuilder进入了Java集成开发环境的王国,它满足很多方面的应用,尤其是对于服务器方以及EJB开发者们来说。下面简单介绍一下Jbuilder的特点:

1)Jbuilder支持最新的Java技术,包括Applets、JSP/Servlets、JavaBean以及EJB(EnterpriseJavaBeans)的应用。

2)用户可以自动地生成基于后端数据库表的EJBJava类,Jbuilder同时还简化了EJB的自动部署功能.此外它还支持CORBA,相应的向导程序有助于用户全面地管理IDL(分布应用程序所必需的接口定义语言InterfaceDefinitionLanguage)和控制远程对象。

3)Jbuilder支持各种应用服务器。Jbuilder与InpriseApplicationServer紧密集成,同时支持WebLogicServer,支持EJB1.1和EJB2.0,可以快速开发J2EE的电子商务应用。

4)Jbuilder能用Servlet和JSP开发和调试动态Web应用。

5)利用Jbuilder可创建(没有专有代码和标记)纯Java2应用。由于Jbuilder是用纯Java语言编写的,其代码不含任何专属代码和标记,它支持最新的Java标准。

6)Jbuilder拥有专业化的图形调试接口,支持远程调试和多线程调试,调试器支持各种JDK版本,包括J2ME/J2SE/J2EE。JBuilder环境开发程序方便,它是纯的Java开发环境,适合企业的J2EE开发;缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,比较吃内存,这时运行速度显得较慢。

5、Oracle的JDeveloper

Oracle9iJDeveloper(定为9.0版,最新为10g)为构建具有J2EE功能,XML和Webservices的复杂的,多层的Java应用程序提供了一个完全集成的开发环境。它为运用Oracle9i数据库和应用服务器的开发人员提供特殊的功能和增强性能,除此以外,它也有资格成为用于多种用途Java开发的一个强大的工具。

Oracle9iJDeveloper的主要特点如下:

①具有UML(UnifiedModelingLanguage,一体化建模语言)建模功能。可以将业务对象及e-business应用模型化。

②配备有高速Java调试器(Debuger)、内置Profiling工具、提高代码质量的工具“CodeCoach”等。

③支持SOAP(SimpleObjectAccessProtocol)“简单对象访问协议”、UDDI(UniversalDescription,DiscoveryandIntegration)“统一描述、发现和集成协议”

、WSDL()“WEB服务描述语言”等Web服务标准。JDeveloper不仅仅是很好的Java编程工具,而且是OracleWeb服务的延伸,支持ApacheSOAP,以及9iAS,可扩充的环境和XML和WSDL语言紧密相关。Oracle9iJdeveloper完全利用Java编写,能够与以前的Oracle服务器软件以及其他厂商支持J2EE的应用服务器产品相兼容,而且在设计时着重针对Oracle9i,能够无缝化跨平台之间的应用开发,提供了业界第一个完整的、集成了J2EE和XML的开发环境,允许开发者快速开发可以通过Web、无线设备及语音界面访问的Web服务和交易应用,以往只能通过将传统Java编程技巧与最新模块化方式结合到一个单一集成的开发环境中之后才能完成J2EE应用开发生命周期管理的事实,从根本上得到改变。缺点就是对于初学者来说,较复杂,也比较难。

6、IBM的VisualAgeforJava

VisualAgeforJava是一个非常成熟的开发工具,它的特性以于IT开发者和业余的Java编程人员来说都是非常用有用的。它提供对可视化编程的广泛支持,支持利用CICS连接遗传大型机应用,支持EJB的开发应用,支持与Websphere的集成开发,方便的bean创建和良好的快速应用开发(RAD)支持和无文件式的文件处理。

IBM为建设Web站点所推出的及其包含的Visual

AgeforJavaProfessionalEdition软件已全面转向以Java为中心,这样,Java开发人员对WebSphere全套工具的感觉或许会好了许多。Studio所提供的工具有:Web站点管理、快速开发JDBC页向导程序、HTML编辑器和HTML语法检查等。这确实是个不错的HTML站点页面编辑环境。Studio和VisualAge集成度很高,菜单中提供了在两种软件包之间快速移动代码的选项。这就让使用Studio的Web页面设计人员和使用VisualAge的Java程序员

可以相互交换文件、协同工作。VisualAgeforJava支持团队开发,内置的代码库可以自动地根据用户做出改动而修改程序代码,这样就可以很方便地将目前代码和早期版本做出比较。与VisualAge紧密结合的WebsphereStudio本身并不提供源代码和版本管理的支持,它只是包含了一个内置文件锁定系统,当编辑项目的时候可以防止其他人对这些文件的错误修改,软件还支持诸如MicrosoftVisualSourceSafe这样的第三方源代码控制系统。VisualAgeforJava完全面向对象的程序设计思想使得开发程序非常快速、高效。你可以不编写任何代码就可以设计出一个典型的应用程序框架。VisualAgeforJava作为IBM电子商务解决方案其中产品之一,可以无缝地与其他IBM产品,如WebSphere、DB2融合,迅速完成从设计、开发到部署应用的整个过程。VisualAgeforJava独特的管理文件方式使其集成外部工具非常困难,你无法让VisualAgeforJava与其他工具一起联合开发应用。

7、BEA的WebLogicWorkshop

BEAWebLogicWorkshop是一个统一、简化、可扩展的开发环境,使所有的开发人员都能在BEAWebLogicEnterprisePlatform之上构建基于标准的企业级应用,从而提高了开发部门的生产力水平,加快了价值的实现。WebLogicWorkshop除了提供便捷的Web服务之外,它能够用于创建更多种类的应用。作为整个BEAWebLogicPlatform的开发环境。不管是创建门户应用、编写工作流、还是创建Web应用,Workshop8.1都可以帮助开发人员更快更好地完成。WebLogicWorkshop的主要特点如下:

①使J2EE开发切实可行,提高开发效率

BEAWebLogicWorkshop使开发人员远离J2EE内在的复杂性,集中精力专注业务逻辑,无须操心单调乏味的基础结构代码。这种创新意味着,已被企业验证的J2EE的强大功能,最终被大多数不熟悉Java和J2EE的应用开发人员所掌握,从而使IT部门的工作效率提高一个数量级。可视化设计器以及直观的概念,如事件、属性和控件等,实现了基于事件的开发。Workshop简化的程序设计模型,使开发人员不必掌握复杂的J2EEAPI和面向对象的程序设计原理。所有开发人员,包括J2EE专家和具有可视化和过程化语言技能的应用开发人员在内,都可以共同工作在BEAWebLogicEnterprisePlatform之上。Workshop的可视化开发环境,创建带有代码注释的标准Java文件,用来说明由运行时框架实施的企业级需求。J2EE和其他高级开发人员,借助功能强大的代码编辑功能,可以访问Java源代码,从而弥补了可视化设计器的不足。

②构建企业级应用

通过在可伸缩、安全可靠的企业级架构上实施各种应用,BEAWebLogicWorkshop大大降低了开发风险。而且,所有应用的创建都使用标准的J2EE组件,既保护了您的技术投资,又保持了最大的灵活性。BEAWebLogicWorkshop运行框架,是统一整个架构的汇聚层,使单一、简化的程序设计模型扩展到所有的BEAWebLogicEnterprisePlatform应用类型。通过解释设计时创建的注释代码,运行时框架可以实现必要的J2EE组件,并且提取出与J2EE应用开发有关的所有底层细节。

③降低IT复杂性BEAWebLogicWorkshop提供各种Java控件,使得与IT资源的连接更轻而易举。另外,在构建任何BEAWebLogicPlatform的应用中,Java控件不仅可扩展而且完全相同。这种强大、有效的方法能够:降低IT技术的复杂性,优化信息的可用性,推动包含"最佳业务方案"的可重用服务的开发,使开发人员能以更低的成本、更短的时间实现更大的产出。

利用BEAWebLogicWorkshop,任何开发人员都能以最大的生产效率,构建各种Web服务、Web应用、门户和集成项目。BEAWebLogicWorkshop是BEA的产品战略核心,它帮助客户接触和利用面向服务架构(SOA)的强大功能。BEAWeblogicWorkshop8.1极大简化了当前实际企业集成环境中企业级应用和服务的构建,并成为全面支持关键企业级应用(如异步、真正松耦合和粗粒度消息传送等)的自然选择。它的缺点就是过于复杂,对于初学者来说,理解起来较为困难。

8、WebGain的VisualCafeforJavaVisualCafe是只能在Symantec公司的Java虚拟机、Netscape公司的Java虚拟机和Microsoft虚拟机上工作的调试器。这对于开发者来讲是一个重要的特性,因为用户开发的Java代码中的许多软件bug就可能中会在某种特定的虚拟机上起作用。在修改后进行编译基继续进行调试时,VisualCafe会自动将文件存盘,使用VisualCafe创建的原生应用具有许多特点。除了明显的速度提高之外,Symantec使类库的二进制方式比正常的JDK小VisualCafe为所指定的关系自动生成或更新必要的Java代码。利用VisualCafe,用户可以从一个标准对象数据库中集合完整的Java应用程序和Applet,而不必再编写源代码。VisualCafe还提供了一个扩充的源代码开发工具集。VisualCafe综合了Java软件的可视化源程序开发工具,它允许开发人员在可视化视图和源视图之间进行有效地转换。在可视化视图中进行的修改立即反映在源代码中。对源代码的改变自动更新可视化视图。VisualCafe具有许多源文件方面的特性,如全局检索和替换。绝大多数Java开发工具的文献的问题在于简单地挨个介绍开发工具的每部分组件,但用户在开应用时还需要一个面向任务的手册,利用这个手册你可以不必知道工具每一部分的特定功能就可以开始创建自己的应用。VisualCafe提供了非常全面的用户指南,它对最开始的安装到创建第一个Java应用和Applet都提供了全面的帮助,VisualCafe将自动生成所指明关系的必要Java代码。VisualCafe可以在Windows95和WindowsNT平台下运行,Symantec公司为Java开发工作提供一个在Macintosh操作系统下可以运行的RAD工具。VisualCafe编译器速度很快,在国际化支持方面比较突出;缺点就是对于初学者来说,较复杂,也比较难。

9、Macromedia的JRUN

Macromedia公司的JRun是一个具有最广阔适用性的Java引擎,用于开发及实施由JavaServlets和JavaServerPages编写的服务器端Java应用。JRun是第一个完全支持JSP1.0规格书的商业化产品,全球有超过80,000名开发人员使用JRun在他们已有的Web服务器上添加服务器端Java的功能。其中Web服务器包括了MicrosoftIIS,NetscapeEnterpriseServer,Apache等。JRun是开发实施服务器端Java的先进引擎。如果我们希望在我们的Web应用中添加服务器端Java功能,那么JRun将成为我们的正确选择。JRun目前有3个版本,它是第一个支持JavaServerPages(JSP)规格书1.0的商业化产品。JSP是一种强大的服务器端技术,它是用于创建复杂Web应用的一整套快速应用开发系统。JRun可以使我们开始开发并测试Java应用。它最多接受5个并发的连接并且包括全部JavaServletAPI,支持JavaServerPages(JSP),支持所有主要的Webservers和计算机平台。JRunPro能够在生产环境下承受大访问量的负载,帮助我们实施应用、服务或Web站点(包括内联网)。JRunPro支持无限量并发式连接运行多个Java虚拟机,包括多个并发的Java虚拟机(JVM)。提供一个远程管理applet以及一个远程可再分布式的管理applet。JRunProUnlimited包括了所有JRunPro的功能,除次以外,还可以运行无限量的,并发的JVM。JRun依靠其内置的JRunWebServer可以单独运行。使用服务器端Java,用户可以开发出复杂的商业应用系统。最重要的一点是,由于servlets的平台独立性,以及更加简单的开发、更快速的实施、更经济的维护成本,它是CGI(CommonGatewayInterface)或Perlscripts的极佳的替代产品。缺点就是对于初学者来说,较复杂,也比较难。10、JCreator

JCreator是一个Java程序开发工具,也是一个Java集成开发环境(IDE)。无论你是要开发Java应用程序或者网页上的Applet元件都难不倒它。在功能上与Sun公司所公布的JDK等文字模式开发工具相较之下来得容易,还允许使用者自订义操作窗口界面及无限Undo/Redo等功能。JCreator为用户提供了相当强大的功能,例如项目管理功能,项目模板功能,可个性化设置语法高亮属性、行数、类浏览器、标签文档、多功能编绎器,向导功能以及完全可自定义的用户界面。通过JCreator,我们不用激活主文档而直接编绎或运行我们的JAVA程序。JCreator能自动找到包含主函数的文件或包含Applet的Html文件,然后它会运行适当的工具。在JCreator中,我们可以通过一个批处理同时编绎多个项目。JCreator的设计接近Windows界面风格,用户对它的界面比较熟悉。其最大特点是与我们机器中所装的JDK完美结合,是其它任何一款IDE所不能比拟的。它是一种初学者很容易上手的java开发工具,缺点是只能进行简单的程序开发,不能进行企业J2EE的开发应用。

11、MicrosoftVJ++

VisualJ++是Microsoft公司推出的可视化的Java语言集成开发环境(IDE),为Java编程人员提供了一个新的开发环境,是一个相当出色的开发工具。无论集成性、编译速度、调试功能、还是易学易用性,都体现了Microsoft的一惯风格。VisualJ++具有

下面的特点:

1)VisualJ++把Java虚拟机(JVM)作为独立的操作系统组件放入Windows,使之从浏览器中独立出来。

2)Microsoft的应用基本类库(AFC,)对SUN公司的JDK作了扩展,使应用基本类库更加适合在Windows下使用。

3)VisualJ++的调试器支持动态调试,包括单步执行、设置断点、观察变量数值等。

4)VisualJ++提供了一些程序向导(Wizards)和生成器(Builders),它们可以方便地帮助用户快速地生成Java程序,帮助你在自己的工程中创建和修改文件。

5)VisualJ++界面友好,其代码编辑器具有智能感知、联机编译等功能,使程序编写十分方便。VisualJ++中建立了Java的WFC,这一新的应用程序框架能够直接访问Windows应用程序接口(API),使你能够用Java语言编写完全意义上的Windows应用程序。

6)VisualJ++中表单设计器的快速应用开发特性使用WFC创建基于表单的应用程序变得轻松、简单。通过WFC可以方便地使用ActiveX数据对象(ADO,ActiveXDataObjects)来检索数据和执行简单数据的绑定。通过在表单设计器中使用ActiveX数据对象,可以快速地在表单中访问和显示数据。VisualJ++能结合微软的一贯的编程风格,很方便进行Java的应用开发,但它的移植性较差,不是纯的Java开发环境。

12、Eclipse

Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显着改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。Eclipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse联盟已经宣布将在2004年中期发布其3.0版软件。这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来比较困难。

13、Ant

AnotherNeatTool(Ant)是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make,但没有make的缺陷。因为Ant的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。类似于make的工具本质上是基于shell(语言)的:他们计算依赖关系,然后执行命令(这些命令与你在命令行敲的命令没太大区别)。这就意味着你可以很容易地通过使用OS特有的或编写新的(命令)程序扩展该工具;然而,这也意味着你将自己限制在了特定的OS,或特定的OS类型上,如Unix。Ant就不同了。与基于shell命令的扩展模式不同,Ant用Java的类来扩展。(用户)不必编写shell命令,配置文件是基于XML的,通过调用target树,就可执行各种task。每个task由实现了一个实现了特定Task接口的对象来运行。Ant支持一些可选task,一个可选task一般需要额外的库才能工作。可选task与Ant的内置task分开,单独打包。这个可选包可以从你下载Ant的同一个地方下载。ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。Ant是Apache提供给Java开发人员的构建工具,它可以在WindowsOS和UnixOS下运行,它不仅开放源码并且还是一个非常好用的工具。Ant是ApacheJakarta中一个很好用的Java开发工具,Ant配置文件采用XML文档编写,所以Java程序员对其语法相当熟悉,Ant是专用于Java项目平台,能够用纯Java来开发,它能够运行于Java安装的平台,即体现了它的跨平台功能。它的缺点显示执行结果只能是DOS字符界面,不能进行复杂的java程序开发。

14、IntelliJ

IntellijIDEA是一款综合的Java编程环境,被许多开发人员和行业专家誉为市场上最好的IDE。它提供了一系列最实用的的工具组合:智能编码辅助和自动控制,支持J2EE,Ant,JUnit和CVS集成,非平行的编码检查和创新的GUI设计器。IDEA把Java开发人员从一些耗时的常规工作中解放出来,显着地提高了开发效率。具有运行更快速,生成更好的代码;持续的重新设计和日常编码变得更加简易,与其它工具的完美集成;很高的性价比等特点。在4.0版本中支持Generics,BEAWebLogic集成,改良的CVS集成以及GUI设计器。

IntelliJIDEA能尽可能地促进程序员的编程速度。它包括了很多辅助的功能,并且与Java结合得相当好。不同的工具窗口围绕在主编程窗口周围,当鼠标点到时即可打开,无用时也可轻松关闭,使用户得到了最大化的有效屏幕范围。以技术为导向的IDEA集成了调试器,支持本地和远程的调试,即使我们需要修改一些设置上的东西使我们的工作顺利进展。另外,它还提供了通常的监视,分步调试以及手动设置断点功能,在这种断点模式下,我们可以自动地在断点之外设置现场访问,甚至可以浏览不同的变量的值。IDE支持多重的JVM设置,几个编译程序和Ant建造系统,并且,它使得设置多重的自定义的类途径变得简单。IntelliJIdea是一个相对较新的JavaIDE。它是Java开发环境中最为有用的一个。高度优化的IntelleJIdea使普通任务变得相当容易,Idea支持很多整合功能,更重要的使它们设计的好容易使用。Idea支持XML中的代码实现,Idea同时还会校正XML,Idea支持JSP的结构。作用于普通Java代码的众多功能同样适用于JSP(比如整合功能),同时支持JSP调试;支持EJB,尽管它不包括对个别应用服务器的特殊支持。Idea支持Ant建立工具,不仅是运行目标它还支持编译与运行程序前后运行目标,另外也支持绑定键盘快捷键。在编辑一个Ant建立XML文件时,Idea还对组成Ant工程的XML部分提供支持。IntelliJIDEA被称为是最好的JAVAIDE开发平台,这套软件就是以其聪明的即时分析和方便的refactoring功能深获大家所喜爱。缺点是较复杂,对初学者来说,理解起来比较困难。

小结

现在常用的Java项目开发环境有:JBuilder、VisualAgeforJava、ForteforJava,VisualCafe、Eclipse、NetBeansIDE、JCreator+J2SDK、jdk+记事本、EditPlus+J2SDK等等。一般开发J2EE项目时都需要安装各公司的应用服务器(中间件)和相应的开发工具,在使用这些开发工具之前,我们最好能熟知这些软件的优点和缺点,以便根据实际情况选择应用。编程工具只是工具,为了方便人们工作而开发的,各有特点,因此,选工具主要的依据自己将要从事的领域是什么,而不是盲目的认为那种工具好,那种工具不好。最后希望大家都能找到自己合适的java开发工具

C. c语言模块化程序设计

1.模块化编程是指将一个庞大的程序划分为若干个功能独立的模块,对各个模块进行独立开发,然后再将这些模块统一合并为一个完整的程序。这是C语言面向过程的编程方法,可以缩短开发周期,提高程序的可读性和可维护性。

2.在单片机程序里,程序比较小或者功能比较简单的时候,我们不需要采用模块化编程,但是,当程序功能复杂、涉及的资源较多的时候,模块化编程就能体现它的优越性了。如前面我们写过的HT1380驱动程序、独立按键扫描程序和12864程序,每一个程序都是只用一个源文件编写就能完成,但是,当您制作一个12864液晶日历的时候,需要用到HT1380驱动程序、独立按键扫描程序和12864显示程序,如果把这三个程序全部集中在一个源文件里,将导致主体程序臃肿且杂乱,这样做并非不可取,只是降低了程序可读性、可维护性和代码的重用率。如果把这三个程序当做三个独立的模块放到你的主体工程进行模块化编程,效果就不一样了。实际上,模块化编程就是模块合并的过程,就是建立每个模块的头文件和源文件并将其加入到主体程序的过程。主体程序调用模块的函数是通过包含模块的头文件来实现,模块的头文件和源文件是模块密不可分的两个部分,缺一不可。所以,模块化编程必须提供每个模块的头文件和源文件。

D. plc编程的怎样实现模块化

可编程控制器(Programmable Controller)是计算机家族中的一员,是为工业控制应用而设计制造的。早期的可编程控制器称作可编程逻辑控制器(Programmable Logic Controller), 简称PLC,它主要用来代替继电器实现逻辑控制随着技术的发展这种装置的功能已经大大超过了逻辑控制的范围,因此,今天这种装置称作可编程控制器,简称PC。但是为了避免与个人计算机(Personal Computer)的简称混淆,所以将可编程控制器简称PLC。

一、PLC 的由来

在60 年代,汽车生产流水线的自动控制系统基本上都是由继电器控制装置构成的。当时汽车的每一次改型都直接导致继电器控制装置的重新设计和安装。随着生产的发展,汽车型号更新的周期愈来愈短,这样,继电器控制装置就需要经常地重新设计和安装,十分费时,费工,费料,甚至阻碍了更新周期的缩短。为了改变这一现状,美国通用汽车公司在1969 年公开招标,要求用新的控制装置取代继电器控制装置,并提出了十项招标指标,即:

1.编程方便现场可修改程序;

2.维修方便采用模块化结构;

3.可靠性高于继电器控制装置;

4.体积小于继电器控制装置;

5.数据可直接送入管理计算机;

6.成本可与继电器控制装置竞争;

7. 输入可以是交流115V;

8.输出为交流115V 2A 以上能直接驱动电磁阀接触器等;

9.在扩展时原系统只要很小变更;

10.用户程序存储器容量至少能扩展到4K。

1969 年,美国数字设备公司(DEC) 研制出第一台PLC,在美国通用汽车自动装配线上试用,获得了成功。这种新型的工业控制装置以其简单易懂,操作方便,可靠性高,通用灵活,体积小,使用寿命长等一系列优点,很快地在美国其他工业领域推广应用。到1971 年,已经成功地应用于食品饮料冶金造纸等工业。

这一新型工业控制装置的出现,也受到了世界其他国家的高度重视。1971 日本从美国引进了这项新技术,很快研制出了日本第一台PLC。1973年,西欧国家也研制出它们的第一台PLC。我国从1974 年开始研制,于1977年开始工业应用。

二、PLC 的定义

PLC 问世以来,尽管时间不长,但发展迅速。为了使其生产和发展标准化,美国电气制造商协会NEMA(National Electrical Manufactory Association) 经过四年的调查工作,于1984 年首先将其正式命名为PC(Programmable Controller),并给PC 作了如下定义

“PC 是一个数字式的电子装置,它使用了可编程序的记忆体储存指令。用来执行诸如逻辑,顺序,计时,计数与演算等功能,并通过数字或类似的输入/输出模块,以控制各种机械或工作程序。一部数字电子计算机若是从事执行PC 之功能着,亦被视为PC,但不包括鼓式或类似的机械式顺序控制器。”

以后国际电工委员会(IEC)又先后颁布了PLC 标准的草案第一稿,第二稿,并在1987 年2 月通过了对它的定义:

“可编程控制器是一种数字运算操作的电子系统,专为在工业环境应用而设计的。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。可编程控制器及其有关外部设备,都按易于与工业控制系统联成一个整体,易于扩充其功能的原则设计。”

总之,可编程控制器是一台计算机,它是专为工业环境应用而设计制造的计算机。它具有丰富的输入/输出接口,并且具有较强的驱动能力。但可编程控制器产品并不针对某一具体工业应用,在实际应用时,其硬件需根据实际需要进行选用配置,其软件需根据控制要求进行设计编制。

三、PLC 的特点

1. PLC 的主要特点

(1)高可靠性

1)所有的I/O 接口电路均采用光电隔离,使工业现场的外电路与PLC 内部电路之间电气上隔离。

2)各输入端均采用R-C滤波器,其滤波时间常数一般为10~20ms。

3)各模块均采用屏蔽措施,以防止辐射干扰。

4)采用性能优良的开关电源。

5)对采用的器件进行严格的筛选。

6)良好的自诊断功能,一旦电源或其他软、硬件发生异常情况,CPU立即采用有效措施,以防止故障扩大。

7)大型PLC 还可以采用由双CPU 构成冗余系统或有三CPU 构成表决系统,使可靠性更进一步提高。

(2)丰富的I/O 接口模块

PLC针对不同的工业现场信号,如:

• 交流或直流;

• 开关量或模拟量;

• 电压或电流;

• 脉冲或电位;

• 强电或弱电等。

有相应的I/O 模块与工业现场的器件或设备,如:

• 按钮

• 行程开关

• 接近开关

• 传感器及变送器

• 电磁线圈

• 控制阀

直接连接另外为了提高操作性能,它还有多种人-机对话的接口模块;为了组成工业局部网络,它还有多种通讯联网的接口模块,等等。

(3)采用模块化结构

为了适应各种工业控制需要除了单元式的小型PLC 以外绝大多数PLC 均

采用模块化结构PLC 的各个部件包括CPU 电源I/O 等均采用模块化设计由

机架及电缆将各模块连接起来系统的规模和功能可根据用户的需要自行组合

(4)编程简单易学

PLC的编程大多采用类似于继电器控制线路的梯形图形式对使用者来说

不需要具备计算机的专门知识因此很容易被一般工程技术人员所理解和掌握

(5)安装简单维修方便

PLC不需要专门的机房可以在各种工业环境下直接运行使用时只需将现

场的各种设备与PLC 相应的I/O 端相连接即可投入运行各种模块上均有运行和

故障指示装置便于用户了解运行情况和查找故障

由于采用模块化结构因此一旦某模块发生故障用户可以通过更换模块的

方法使系统迅速恢复运行

2.PLC 的功能

(1) 逻辑控制

(2) 定时控制

(3) 计数控制

(4) 步进(顺序)控制

(5) PID 控制

(6) 数据控制

PLC 具有数据处理能力

(七) 通信和联网

(八) 其它

PLC还有许多特殊功能模块,适用于各种特殊控制的要求,如:定位控制模块,CRT 模块。

四、PLC 的发展阶段

虽然PLC 问世时间不长,但是随着微处理器的出现,大规模、超大规模集成电路技术的迅速发展和数据通讯技术的不断进步,PLC 也迅速发展,其发展过程大致可分三个阶段:

1.早期的PLC(60 年代末—70 年代中期)

早期的PLC一般称为可编程逻辑控制器。这时的PLC 多少有点继电器控制装置的替代物的含义,其主要功能只是执行原先由继电器完成的顺序控制、定时等。它在硬件上以准计算机的形式出现,在I/O 接口电路上作了改进以适应工业控制现场的要求。装置中的器件主要采用分立元件和中小规模集成电路,存储器采用磁芯存储器。另外还采取了一些措施,以提高其抗干扰的能力。在软件编程上,采用广大电气工程技术人员所熟悉的继电器控制线路的方式—梯形图。因此,早期的PLC 的性能要优于继电器控制装置,其优点包括简单易懂,便于安装,体积小,能耗低,有故障指使,能重复使用等。其中PLC 特有的编程语言—梯形图一直沿用至今。

2.中期的PLC(70 年代中期—80 年代中后期)

在70 年代微处理器的出现使PLC 发生了巨大的变化。美国,日本,德国等一些厂家先后开始采用微处理器作为PLC 的中央处理单元(CPU)。

这样,使PLC 得功能大大增强。在软件方面,除了保持其原有的逻辑运算、计时、计数等功能以外,还增加了算术运算、数据处理和传送、通讯、自诊断等功能。在硬件方面,除了保持其原有的开关模块以外,还增加了模拟量模块、远程I/O模块、各种特殊功能模块。并扩大了存储器的容量,使各种逻辑线圈的数量增加,还提供了一定数量的数据寄存器,使PLC 得应用范围得以扩大。

3.近期的PLC(80 年代中后期至今)

进入80 年代中、后期,由于超大规模集成电路技术的迅速发展,微处理器的市场价格大幅度下跌,使得各种类型的PLC 所采用的微处理器的当次普遍提高。而且,为了进一步提高PLC 的处理速度,各制造厂商还纷纷研制开发了专用逻辑处理芯片。这样使得PLC 软、硬件功能发生了巨大变化。

五、PLC 的分类

1.小型PLC

小型PLC 的I/O 点数一般在128 点以下,其特点是体积小、结构紧凑,整个硬件融为一体除了开关量I/O 以外,还可以连接模拟量I/O 以及其他各种特殊功能模块。它能执行包括逻辑运算、计时、计数、算术运算、数据处理和传送、通讯联网以及各种应用指令。

2.中型PLC

中型PLC 采用模块化结构,其I/O点数一般在256~1024 点之间。I/O的处理方式除了采用一般PLC 通用的扫描处理方式外,还能采用直接处理方式,即在扫描用户程序的过程中,直接读输入,刷新输出。它能联接各种特殊功能模块,通讯联网功能更强,指令系统更丰富,内存容量更大,扫描速度更快。

3.大型PLC

一般I/O点数在1024点以上的称为大型PLC。大型PLC的软、硬件功能极强。具有极强的自诊断功能。通讯联网功能强,有各种通讯联网的模块,可以构成三级通讯网,实现工厂生产管理自动化。大型PLC 还可以采用三CPU构成表决式系统,使机器的可靠性更高。

六、PLC 的基本结构

PLC 实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同,如图所示:

1.中央处理单元(CPU)

中央处理单元(CPU)是PLC 的控制中枢。它按照PLC 系统程序赋予的功能接收并存储从编程器键入的用户程序和数据:检查电源、存储器、I/O 以及警戒定时器的状态,并能诊断用户程序中的语法错误,当PLC 投入运行时,首先它以扫描的方式接收现场各输入装置的状态和数据,并分别存入I/O 映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后按指令的规定执行逻辑或算数运算的结果送入I/O 映象区或数据寄存器内。等所有的用户程序执行完毕之后,最后将I/O 映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。

为了进一步提高PLC 的可靠性,近年来对大型PLC 还采用双CPU 构成冗余系统,或采用三CPU 的表决式系统。这样,即使某个CPU 出现故障,整个系统仍能正常运行。

2.存储器

存放系统软件的存储器称为系统程序存储器。

存放应用软件的存储器称为用户程序存储器。

(1) PLC 常用的存储器类型

1)RAM (Random Assess Memory)

这是一种读/写存储器(随机存储器)其存取速度最快由锂电池支持。

2)EPROM (Erasable Programmable Read Only Memory)

这是一种可擦除的只读存储器在断电情况下存储器内的所有内容保持不变。(在紫外线连续照射下可擦除存储器内容)

3)EEPROM(Electrical Erasable Programmable Read Only Memory)

这是一种电可擦除的只读存储器。使用编程器就能很容易地对其所存储的内容进行修改。

(2) PLC 存储空间的分配

虽然各种PLC的CPU的最大寻址空间各不相同,但是根据PLC的工作原理其存储空间一般包括以下三个区域:

系统程序存储区

系统RAM 存储区(包括I/O 映象区和系统软设备等)

用户程序存储区

1)系统程序存储区

在系统程序存储区中存放着相当于计算机操作系统的系统程序。包括监控程序、管理程序、命令解释程序、功能子程序、系统诊断子程序等。由制造厂商将其固化在EPROM 中,用户不能直接存取。它和硬件一起决定了该PLC 的性能。

2)系统RAM 存储区

系统RAM 存储区包括I/O 映象区以及各类软设备,如:

逻辑线圈

数据寄存器

计时器

计数器

变址寄存器

累加器

等存储器

A.I/O 映象区 由于PLC 投入运行后,只是在输入采样阶段才依次读入各输入状态和数据,在输出刷新阶段才将输出的状态和数据送至相应的外设。因此,它需要一定数量的存储单元(RAM)以存放I/O 的状态和数据,这些单元称作I/O 映象区。

一个开关量I/O 占用存储单元中的一个位(bit),一个模拟量I/O 占用存储单元中的一个字(16 个bit)。因此整个I/O 映象区可看作两个部分组成:

开关量I/O 映象区

模拟量I/O 映象区

B.系统软设备存储区

除了I/O 映象区区以外,系统RAM 存储区还包括PLC 内部各类软设备(逻辑线圈、计时器、计数器、数据寄存器和累加器等)的存储区。该存储区又分为具有失电保持的存储区域和无失电保持的存储区域,前者在PLC 断电时,由内部的锂电池供电,数据不会遗失;后者当PLC 断电时,数据被清零。

1) 逻辑线圈

与开关输出一样,每个逻辑线圈占用系统RAM 存储区中的一个位,但不能直接驱动外设,只供用户在编程中使用,其作用类似于电器控制线路中的继电器。另外,不同的PLC 还提供数量不等的特殊逻辑线圈,具有不同的功能。

2)数据寄存器

与模拟量I/O 一样,每个数据寄存器占用系统RAM 存储区中的一个字(16bits)。另外,PLC 还提供数量不等的特殊数据寄存器,具有不同的功能。

3) 计时器

4) 计数器

(3)用户程序存储区

用户程序存储区存放用户编制的用户程序。不同类型的PLC,其存储容量各不相同。

3.电源

PLC 的电源在整个系统中起着十分重要得作用。如果没有一个良好的、可靠得电源系统是无法正常工作的,因此PLC 的制造商对电源的设计和制造也十分重视。

一般交流电压波动在±10%(±15%)范围内,可以不采取其它措施而将PLC 直接连接到交流电网上去。

七、PLC 的工作原理

最初研制生产的PLC 主要用于代替传统的由继电器接触器构成的控制装置,但这两者的运行方式是不相同的:

继电器控制装置采用硬逻辑并行运行的方式,即如果这个继电器的线圈通电或断电,该继电器所有的触点(包括其常开或常闭触点)在继电器控制线路的哪个位置上都会立即同时动作。

PLC 的CPU 则采用顺序逻辑扫描用户程序的运行方式,即如果一个输出线圈或逻辑线圈被接通或断开,该线圈的所有触点(包括其常开或常闭触点)不会立即动作,必须等扫描到该触点时才会动作。

为了消除二者之间由于运行方式不同而造成的差异,考虑到继电器控制装置各类触点的动作时间一般在100ms 以上,而PLC 扫描用户程序的时间一般均小于100ms,因此,PLC采用了一种不同于一般微型计算机的运行方式—扫描技术。这样在对于I/O 响应要求不高的场合,PLC 与继电器控制装置的处理结果上就没有什么区别了。

1.扫描技术

当PLC 投入运行后,其工作过程一般分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间,PLC 的CPU 以一定的扫描速度重复执行上述三个阶段。

(1) 输入采样阶段

在输入采样阶段,PLC以扫描方式依次地读入所有输入状态和数据,并将它们存入I/O 映象区中的相应得单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O 映象区中的相应单元的状态和数据也不会改变。因此,如果输入是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。

(2) 用户程序执行阶段

在用户程序执行阶段,PLC总是按由上而下的顺序依次地扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边的由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算,然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM 存储区中对应位的状态;或者刷新该输出线圈在I/O 映象区中对应位的状态;或者确定是否要执行该梯形图所规定的特殊功能指令。

即,在用户程序执行过程中,只有输入点在I/O 映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O 映象区或系统RAM 存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的程序起作用。

(3)输出刷新阶段

当扫描用户程序结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC 的真正输出。

比较下二个程序的异同:

程序1

程序2

这两段程序执行的结果完全一样但在PLC中执行的过程却不一样。

程序1 只用一次扫描周期,就可完成对%M4 的刷新;

程序2 要用四次扫描周期,才能完成对%M4 的刷新。

这两个例子说明:同样的若干条梯形图,其排列次序不同,执行的结果也不同。另外,也可以看到:采用扫描用户程序的运行结果与继电器控制装置的硬逻辑并行运行的结果有所区别。当然,如果扫描周期所占用的时间对整个运行来说可以忽略,那么二者之间就没有什么区别了。

一般来说,PLC 的扫描周期包括自诊断、通讯等,如下图所示,即一个扫描周期等于自诊断、通讯、输入采样、用户程序执行、输出刷新等所有时间的总和。

2.PLC 的I/O 响应时间

为了增强PLC 的抗干扰能力,提高其可靠性,PLC的每个开关量输入端都采用光电隔离等技术。

为了能实现继电器控制线路的硬逻辑并行控制,PLC 采用了不同于一般微型计算机的运行方式(扫描技术)。

以上两个主要原因,使得PLC 得I/O 响应比一般微型计算机构成的工业控制系统满的多,其响应时间至少等于一个扫描周期,一般均大于一个扫描周期甚至更长。

所谓I/O 响应时间指从PLC 的某一输入信号变化开始到系统有关输出端信号的改变所需的时间。其最短的I/O 响应时间与最长的I/O 响应时间如图所示:

最短I/O 响应时间:

最长I/O 响应时间:

八、PLC 的I/O 系统

1.I/O 寻址方式

PLC的硬件结构主要分单元式和模块式两种。前者将PLC 的主要部分(包括I/O 系统和电源等)全部安装在一个机箱内。后者将PLC 的主要硬件部分分别制成模块,然后由用户根据需要将所选用的模块插入PLC 机架上的槽内,构成一个PLC 系统。

不论采取哪一种硬件结构,都必须确立用于连接工业现场的各个输入/输出点与PLC 的I/O 映象区之间的对应关系,即给每一个输入/输出点以明确的地址确立这种对应关系所采用得方式称为I/O 寻址方式。

I/O寻址方式有以下三种

固定的I/O 寻址方式

这种I/O 寻址方式是由PLC 制造厂家在设计、生产PLC 时确定的,它的每一个输入/输出点都有一个明确的固定不变的地址。一般来说,单元式的PLC 采用这种I/O寻址方式。

开关设定的I/O 寻址方式

这种I/O 寻址方式是由用户通过对机架和模块上的开关位置的设定来确定的。

用软件来设定的I/O 寻址方式

这种I/O 寻址方式是有用户通过软件来编制I/O 地址分配表来确定的。

E. C语言的模块化编程还是不太理解,还请各位大神指点!

C语言是面向过程的语言。

把一件事情分多步骤,细分,这样更有条理。比如今天你要最晚餐。
第一种方法:你要考虑:去买菜;,去哪里买,买什么,坐什么交通工具去买,怎么回来,煮饭做饭,用什么厨具,蒸的?煮的?炒的?做哪种家里人觉得好吃,以及洗碗,打扫卫生等等
这没有觉得这种方法很乱。第二种方法就是先分块:
首先我要考虑的问题(1)买菜(2)做饭(3)洗碗 就6个字,3大块,不用考虑过多,先把整件事情的步骤列出。然后再在每一块细分。(1)买菜;(1.1)去哪里买(1.2)买什么。这样第一大块(买菜)里面又有两块(1.1 和 1.2),当然还可以细分,对于(1.1)去哪里买 再细分 (1.1.1)交通工具 等等。

是不是觉得做个晚餐 还要弄得这么恶心, 一步一步的来? 一开始我也是这样想的,但是你用C语言编程,这样就会很方便,很清晰的。

F. 最近看到有一种模块化编程叫做积拼编程,这种编程跟传统的积木式编程有什么不同

积拼编程很适合小朋友,是一种针对中小学年龄段学生设计的教学性的,在网页上运行的图形化编程平台。它的特点是:使用者可用鼠标拖动、安排模块,然后对模块进行链结和编程,从而进行基础的编程学习和简单的硬件实验。如果真正学编程可以选择Jave,C++,C,Pascal,Basic等。

G. 模块化编程的菜鸟问题

举例来说吧,比如你设计了3个不同用途的系统,而3个系统都恰好要用到同一个外部设备,假设这个外部设备是个液晶显器吧,那你就仅仅只要写一个液晶驱动(而不用写三个),设定好入口函数,3个不同用途的系统就都能用了,是不是很省事呢?
其他也一样,比如使用传感器,常常要多次采样取平均值,以提高准确性,那就可以做一个通用的计算平均值的子程序,需要的时候拿来用就行了,不用管这次是温度传感器、压力传感器还是加速度感器,全部通用,就不用每次都编了.这样就提高效率了嘛。
至于把各模块连接起来,这本来概念上就不对。模块不是连接的,而是被调用的。设计程序时应当先设计主程序的流程图,再逐步细化,细化到一定程度自然就变成一个个模块的组合了。而在主程序中只是设置一些参数,然后调用模块完成相应的功能。

H. c语言模块化编程。

所谓模块化编程,就是将程序功能分成若干模块,每个模块执行一部分功能,由主程序来决定是否调用和如何调用这些模块来完成任务。
模块可以不知道是谁调用了自己,只要能完成自己的任务就可以了。

I. 软件开发中,“模块化开发”是什么意思

软件产品可以被看作是由一系列具有特定功能的组件组成,作为一个完整的系统也可以被分解成一系列功能模块,这些模块之间的相互作用就形成了系统的所有功能。

所谓模块是指可组成系统的、具有某种确定独立功能的半自律性的子系统,可以通过标准的界面和其他同样的子系统按照一定的规则相互联系而构成的更加复杂的系统。每个模块的研发和改进都独立于其他模块的研发和改进,每个模块所特有的信息处理过程都被包含在模块的内部,如同一个“黑箱”,但是有一个或数个通用的标准界面与系统或其他模块相互连接。

在软件的模块化开发过程中,把一个源代码的结构分割成一个元系统和一系列的模块。

元系统指的是一个能够保持系统运转的最小的系统。

模块是一个较大系统的独特的部件,它能够由设计者独立设计出来,同时又可以作为一个整体在系统中运转。

把一个大系统切割成互相独立的不同的小系统,可以使一些并不是经常见面的开发者减少必要的交流次数。

另外,一个旧版本的模块可以被新版的模块所替换,同时却又不影响整个系统的运转。

这样,在新模块中所增加的功能就可以及时在现存的系统中体现出来,同时也不需要更改系统中的其他模块。

高度模块化的源代码结构给软件开发者和使用者均带来了极大的好处。

开发者可以对具有某种特定功能的模块进行独立开发而不需要花时间去协调与其他模块之间的关系。

并且模块化开发不仅允许模块之间的水平开发,而且可以通过对类似模块之间的创新和竞争(开发新的模块或者对原有的模块进行改进)充分改善系统的功能。

另外,作为最终的用户来说,在安装系统的时候可以就个人的需求与偏好选择适合自己的模块。

模块化是复杂系统的一个共同特征,模块化的代码结构是由松散的组件构成的,是对一个系统完全意义上的分割,而不像完全集成的代码,各个组件之间存在很强的依赖关系,并不是完全通过界面来交换信息。

总结:

第一, 把一个系统分解成各个不同的子模块,不同的开发者专注于对其中某一模块的开发,一方面实现了劳动的分工,另一方面也提高了自由软件开发的效率。基于模块化的性质,每个模块在开发出来以后都可以通过一个被称作是内核的原系统进行信息交流,发挥整个模块的功能,同时也并不会影响其他模块功能的发挥。而且在各个不同的模块整合在一起后,由于外部性的存在,会使整个系统增加的功能要超过该模块本身的功能。在此过程中实现了价值的分割与整合。

第二, 对于开发者而言,基于模块化的自由软件开发具有更大的吸引力,其在参与开发过程中可以得到更高的期望收益。

第三, 在非模块化的软件开发过程中,存在着严重的“搭便车”现象,当一个开发者选择参与开发,其余的开发者就会选择“搭便车”,最终会导致软件的供给不足;在基于模块化的开发过程中,所有的开发者都更倾向于参与开发不同的模块,从而实现整个系统的开发。

MIS软件开发中的组件模式开发比较复杂,主要的阻力不在代码的实现过程中,因为这个工作通常只应该占据软件开发工作量的30%,而对业务需求的深度剖析、业务子系统的划分和业务组件的规划会占据约40-50%的工作量。

这些工作体现在设计阶段主要是对业务的广度、深度分析,把业务领域的对象元素进行细化,将业务操作划分为原子性功能,以此为基础构成业务组件,进而形成模块和子系统,同时业务操作之间的约束则需要逻辑化(代码系统可识别的逻辑);在此过程中,原系统也就形成了,它便是在业务领域中必须的组件、模块和子系统的集合;外延的组件在原系统上通过组合或热差拔即能够满足不同规模、深度、特性的业务模式运转。

J. 什么是模块化编程

就是尽量由由多个小函数组成一个大程序 而不是一个大函数解决所有的问题。比如你制造一个人类的模仿程序尽量不要把所有的代码都写到一个main函数里,而是把一个大功能分成好多种小功能一个一个的写。

热点内容
名词算法 发布:2024-11-25 01:24:54 浏览:675
我的电脑玩cf卡该换什么配置 发布:2024-11-25 01:20:38 浏览:871
云加密服务是什么情况 发布:2024-11-25 01:18:16 浏览:881
租云服务器会提供ip吗 发布:2024-11-25 01:18:13 浏览:451
安卓原生刷机包在哪里下载 发布:2024-11-25 01:13:16 浏览:298
安卓怎么改字体 发布:2024-11-25 01:12:32 浏览:477
我的世界java服务器怎么设置主城 发布:2024-11-25 01:12:22 浏览:634
安卓虚拟机为什么会卡顿 发布:2024-11-25 01:07:57 浏览:558
云服务器网关系列 发布:2024-11-25 01:00:42 浏览:971
图灵姬编程 发布:2024-11-25 00:52:40 浏览:314