A theory of modularity for automated software development (keynote)
designing reusable classes .