The main objective of this courseware is to develop new concepts and methods that will enable a wide variety of users and students to make effective use of CASE tools and integrated software engineering environments which are based on well-known and established software engineering principles and practice. Thus, students will learn not only the traditional software engineering methodologies but also benefit from tools that automate those methodologies and principles.