Complex software intensive systems permeate every aspect of our lives. These systems are among the most complex products humankind has ever tackled. Software Engineering is the disciplined application of proven principles, techniques, and tools to the creation and maintenance of cost effective, user friendly software systems that solve real problems.