首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

模块区划的原则及方法

2013-11-02 
模块划分的原则及方法首先解释一下模块的概念,对客户端应用程序开发来说,dll(pe文件)是模块的表现形式;对w

模块划分的原则及方法
首先解释一下模块的概念,对客户端应用程序开发来说,dll(pe文件)是模块的表现形式;对web项目来说,包是模块的表示形式。
一、基本原则:1. 模块功能要单一;2. 新增功能时,尽量减少对已有模块的改动,在新增模块中实现功能;3. 功能调整或修改bug时,影响的模块数量要尽可能少;4. 功能调整或修改bug时,受影响的模块要尽可能的小(指客户端应用程序开发,比如dll文件);5. 模块间要松耦合,模块接口尽可能少、并且简单;
二、划分方式:1. 按功能划分;
2. 按层划分,持久化层(数据库访问层)、网络层、业务逻辑层、界面展示层;
三、划分方法:1. 首先按功能划分模块;2. 根据功能特性多少,决定是否要划分子功能模块;3. 功能模块内部,根据实际情况,决定是否需要按层划分模块(从复用性、独立性角度考虑);4. 在代码级别,不同层必须分离,即一个源文件,只能负责一个层(界面、业务、网络等)的事情;5. 如果涉及到较多的第三方合作内容,将合作内容作为一个独立模块;
四、经验:1. 通常来说,界面和业务逻辑是紧密关联的,业务又和网络紧密相连,所谓紧密关联,是指一个变了,另一个通常也会变,因此这3个层通常可以合并为一个模块;2. 有些实用类,包括业务逻辑,需要在项目内共用,要提出来做为单独的模块;3. 持久化层,如数据库访问层,通常需要不断调优、数据库表结构升级,这种变动需求通常与业务本身无关,因此可以将持久化层设计为单独模块;
五、FAQ:【问】为什么模块要先按功能划分,再按层划分?【答】相对于产品功能本身的变化,统一对某一个层面进行集中调整(比如网络层、界面层)的可能性不大,这一类调整通常是对原有技术方案的调整,影响很大,需要完整的程序和测试计划,这种情况出现时,必然会违背基本原则3,而与先功能划分,还是先按层划分没有关系。

热点排行