A major challenge for software engineering today is to improve the software production process. Nowadays, most software systems ~re handcrafted, whde soltware project management is primarily based on tenuous conventions. Software engineering faces the challenge of replacing the conventional mode of operation by computer-based technology. This theme underlies the Software Engineering Institute that the DoD has established at Carnegie. Mellon University.Among the contributors to software development technology are ideas, such as object-oriented programming, hardware improvements related to personal workstations, and programming environments that provide integrated sets of tools for software development and project management. Facilities and tools are by themselves not sufficient tc achieve an order of magnitude improvement in the software production process. Future directions in software engineering must emphasize a constructive approach to the design of reusable software and to automatic generation of programs. We will briefly explore the promising technology that can be used to implement these ideas.