Automated Software Development (ASD) are technologies for developing customized programs automatically and compositionally from modules. The foundations of ASD are domain-specific algebras, where each program in the target domain maps to a unique expression. Algebraic identities are used to optimize programs automatically. In this keynote, I trace the history of ASD and present a general theory of modularity for ASD that follows from its tenets. Categories and Subject Descriptors D.2.2 Design Tools and Techniques General Terms design Keywords module composition, categories, commuting diagrams, functors
Don S. Batory