This course provides the study of software engineering by closely examining the software development process, including software life-cycle and its models, requirements analysis, designing and construction stages, software engineering process infrastructure, process management.  During the course the students will be involved with a real problem solving/ software development situation.   Students will work in teams to analyze and develop software requirements, to prepare management plans, to design program (using UML models), to make cost estimation of software, to code and test computer systems, including critical ones. This course gives students experiential learning on a development of a large software project.