Introduction to modern software development principles and practices, including
the use of  software processes  in actual product  development: life cycle models, IDE,  version   control   system,  user  requirements   gathering,  object   oriented software  and UML, software architecture,  software design and implementation, testing, software refactoring.