On the Criteria To Be Used in Decomposing Systems into Modules This paper discusses modularization as a mechanism for improving the flexibility ad comprehensibility of a system while allowing the shortening of its development time. The effectiveness of a "modularization" is dependent upon the criteria used in dividing the system into modules. A system design problem is presented and both a conventional and unconventional decomposition are described. It is shown that the unconventional decompositions have distinct advantages for the goals outlined. The criteria used in arriving at the decompositions are discussed. The unconventional decomposition, if implemented with the conventional assumption that a module consists of one or more subroutines, will be less efficient in most cases. An alternative approach to implementation which does not have this effect is sketched. CACM December, 1972 Parnas, D. L. software, modules, modularity, software engineering, KWIC index, software design 4.0 CA721208 JB January 27, 1978 11:09 AM 2247 5 2247 2247 5 2247 2247 5 2247 2480 5 2247 2738 5 2247 2867 5 2247 3004 5 2247 3030 5 2247 3155 5 2247 1425 6 2247 1749 6 2247 1749 6 2247 2080 6 2247 2204 6 2247 2204 6 2247 2247 6 2247 2247 6 2247 2247 6 2247 2247 6 2247 2247 6 2247 2247 6 2247 2356 6 2247 2356 6 2247 2356 6 2247 2379 6 2247 2456 6 2247 2457 6 2247 2651 6 2247 2777 6 2247 2958 6 2247 2972 6 2247 3073 6 2247 3186 6 2247 799 6 2247