High-Quality Modules ------------------------------------------------------------------------ * Does the module have a central purpose? * Is the module organized around a common set of data? * Does the module offer a cohesive set of services? * Are the module's services complete enough so that other modules don't have to meddle with its internal data? * Is the module independent of other modules? Is it loosely coupled? * Does the module hide implementation details from other modules? * Are the module's interfaces abstract enough so that you don't have to think about how its services are implemented? Can you treat it as a black box? * Have you thought about subdividing the module into component modules and subdivided it as much as you can? * If you're working in a language that doesn't fully support modules, have you implemented programming conventions that support them? ------------------------------------------------------------------------ Copyright © 1996-1998 Construx Software Builders, Inc.