This course introduces the fundamental concepts such as object oriented and united modeling language (UML), then mainly explores the requirement elicitation, system analysis, system design, design principles, design pattern, implementation and test. And the programming paradigms and software development methodologies will be discussed.