节 指导思想
俗话说‘没有砖瓦,何以建大厦’,再庞大的再复杂的事物都是有小的简单的事物组成,要解决复杂问题,步就是分解问题,把一个大问题分成若干小问题,分而治之,各个击破,终解决大问题。
软件开发是一个系统工程,也是一个极其复杂的问题,早期,个人英雄辈出,单打独斗:通常一个项目按一个模块一个人来完成开发工作,如图1-1。后来,应用越来越广泛,要解决的问题越来越复杂,团队开发思想出现,追求协同作战:把一个项目按业务特征分成若干模块,由不同人来分担模块的开发工作,通过函数接口把各模块整合成一个系统,如图1-2。再后来,分层开发思想出现,科学定位的呼声高涨,可谓百家争鸣:一般按项目(如图1-3)或按模块(如图1-4)划分为界面层(UI,即展现层)、逻辑层(BLL)和数据访问层(DAL)。
按项目划分依据是功能特征,比如都是处理界面的、实现业务逻辑的,负责存取数据的代码放到同一层次,是横向的,水平方向的开发(如图1-3),这种层次化的开发模式称为横向开发、水平开发。
按模块划分的依据是业务特征,比如用户管理、日志管理、报表管理等每个模块都有自己的界面层、业务逻辑层和数据访问层,是按纵向的,垂直方向的开发(如图1-4),这种先模块化后层次化的开发模式称为纵向开发、垂直开发。