Software engineering is a profession as well as field of study related to all aspects of the software life cycle, covering the design, implementation, modification and maintenance of software in a systematic and quantifiable fashion. The various methodologies in this rapidly expanding field of endeavour are derived from the framework and principles associated with traditional engineering disciplines, and have as their end goal the creation of higher quality, cheaper, efficient and easily maintainable software. Its relevance and application is increasing rapidly in a large variety of domains in business, science, entertainment and education today; where software applications that are deployed continue to evolve in complexity and functionality.