Discusses software reusability and how it can increase programmer productivity; re-engineering, or how software automation can be used to address software maintenance problems; and repositories, the foundation for an integrated CASE (Computer Aided Software Engineering) environment.