如何将系统模块化.doc_第1页
如何将系统模块化.doc_第2页
如何将系统模块化.doc_第3页
如何将系统模块化.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何将系统模块化摘要:如何将系统模块化一文阐述了系统模块化的重要性,应遵守的高内聚低耦合的原则,以及常用大粒度的划分方法,并对一些原则进行了相应的补充说明。当然要编写出高质量的软件程序,还需要理清需求,把控好设计,使用恰当的技术,处理好业务逻辑,编写高质量的代码,更需要一遍又一遍的重构改进废话:很久没有写代码了,也很久没有从事软件开发设计的工作,想想之前设计编写代码日以夜继的日子,还是蛮怀念的最近在带领人员做一些项目的时候,发现开发出来的软件可改进的空间还是蛮大的,如系统模块划分不清,代码编写质量不高等,当然要编写出一个好的程序不是一件容易的事,需要理清需求,把控好设计,使用恰当的技术,处理好业务逻辑,编写高质量的代码,更需要一遍又一遍的重构改进.当然追求完美,本身就不完美,绝大部分的情况下,也没有充足的时间允许这样做。不过追求完美的心态还是值得肯定的,不然也没有动力改善自身的技能水平,若能有经验的长者加以引导,少走一些弯路,那对人员的成长大有裨益,当然修行还是靠自身。提升自我,正视自我的不足,也会使得人员备感压力,值得欣慰的事,人员还是挺上进努力的,只是任重道远,简言之,革命尚未成功,同志还需努力!扯远了,回正题,这里先将软件需求以及代码编写质量的内容暂且置于一旁,这些也非三言两语所能说完,况且自身的修为也不够,这里还是集中精力重点说下系统模块化的划分,顺便也借此温故而知新:系统模块化的重要性:对于绝大部分的项目而言,系统模块化的重要性不言而喻。一个良好的模块划分可以使得系统,具有以下好处:1更高的可靠性,将系统划分成一个个相对独立的模块,有利于开发人员缩小问题域,集中精力解决单一模块存在的各种问题异常,通过局部改进,最终使得软件的可靠性得以改善.2更稳定的结构,遵循高内聚低耦合,将不同领域的模块分隔开来,并保留简单高效严谨的通信接口,能够有效的避免一个功能模块的问题扩散到另一模块3更强的维护性,良好的结构划分,清晰的代码逻辑,具有更好的可读性,便于开发人员理解维护4代码可重用性更强,系统模块化能够使开发人员更好的理清业务逻辑结构,提取出公共的模块,从而提高代码的可重用性5缩短项目开发周期,采取分而治之的策略,分块解决问题,使得问题更易于处理,且更加可控,减少问题处理反复所投入的不必要时间系统模块化的原则根据软件设计的模块化,抽象,信息隐藏和局部分等原则,可以得出模块化的独立性概念。所谓模块独立性,即模块内部逻辑相对独立完整单一,模块间联系尽可能少,具体表现为高内聚低耦合。符合高内聚低耦合的模块,通常功能完整独立,数据接口简单,程序易于实现,易于理解维护,同时也限制了错误的作用范围,使错误易于排除,因而可使软件开发速度快,质量高。内聚度内聚度是指模块内部的联系紧密程度,联系越紧,则内聚度越高,模块独立性越强,系统越易于理解维护。具有良好内聚度的模块应能较好的满足于信息局部化的原则,功能完整单一。同时,模块的高内聚必然导致模块的低耦合度。理想的情况是:一个模块只使用局部数据变量,完成一个功能。按由弱到强的顺序,模块的内聚度可分为以下几类:1偶然内聚:块内的各个任务没有什么有意义的联系,仅于偶然位于同块,若非时空限制,不应使用2逻辑内聚:一个模块完成的任务在逻辑上属于相同或相似的一类(如根据参数不同,模块输出多种结果),但这种内聚的模块存在一些致命的问题,如修改困难,模块内部改动,需要考虑到其它模块的调用影响;模块内部需要判别调用者,使得模块外部间的联系增加;内部判断陷阱的产生以及装载整块所带来的性能下降等等3时间内聚:是指一个模块中包含的任务需要在同一时间内执行(如初始化,结束等所需的操作)4过程内聚:一个模块内的各个处理元素是相关的,而且必须按固定的次序执行,表现为有次序的流程,面向过程化的思维更多的是采用这种方式进行模块/函数的划分5通信内聚:一个模块中的各处理元素 需要引用共同的数据6顺序内聚:一相模块内各处理元素关系密切,必须按规定的处理次序顺序执行,后执行的语句/段往往依赖先执行的语句/段7功能内聚:模块仅完成一个单一的功能,且该模块的所有部分是实现这一功能所必须的,没有多余的语句。功能内聚是内聚度最高的一种模块类型,结构紧凑,逻辑清晰,易于理解,便于维护,可靠性强,稳定性高,因功能单一,复用性高。在划分模块的时候,应追求此类型。耦合度耦合度是从模块外部考察模块的独立性程度,用来衡量多个模块间的相互联系,一般情况下耦合度应从以下三方面考虑:耦合内容的数量:模块间发生联系的数据和代码的多少,多则高,少则低;模块的调用方式:模块间代码数据共享的方式,直接调用,依赖调用,加载调用等模块间的耦合类型:耦合类型有以下几种方式:独立耦合,模块间彼此独立,没有直接联系,且属于同个软件系统或隶属同一上层模块数据耦合,模块间彼此交互数据,接受返回值,传递数据参数,通常应保持模块间的关系为数据耦合控制耦合,模块间传递的是控制参数而非数据参数,用于控制另一模块的处理逻辑,这说明另一模块内部存在多个并列的逻辑路径,通过提高被调用模块的内聚性,可以彻底的去除这种联系。由于增加了设计理解的复杂度,应避免使用该耦合方式。公共耦合,又称公共环境耦合或数据区域耦合。若模块间对同一数据区域进行存取操作,则模块间的关系为公共耦合。内容耦合,一个模块直接访问另一模块内部代码或数据,出现内容耦合。内容耦合严重破坏了模块的独立性和系统结构化,代码互相纠缠,运行错综复杂,应完全不使用内容耦合系统模块化方法以下列举常见的大粒度模块划分方法基于需求功能划分:根据用户需求归类的不同,对模块进行大粒度的划分,如用户管理模块,订单流程模块等基于系统层次划分:根据模块上下级,同层类别的关系进行模块划分,如展现层,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论