In this study, we revisit the question of identifying the characteristics of “optimum” software components. Specifically, we focus on those characteristics that are expected to minimize defect densities uncovered during the testing phases of software development. Although a number of such models have been examined in the past, these models have embodied some methodological difficulties that we attempt to remedy. Using data from Ada and C subprograms, we examine the optimum number of lines of code for subprograms and the optimum relationship between the internal and external complexities of subprograms. Our results show that the optimal size for subprograms is between 80-100 lines of code and that for these optimally sized subprograms the optimal number of calls is about 14.