This course will focus on discussing the principles and techniques used in software engineering. It will cover the essential topics including UML, Requirements Elicitation, Analysis, System Design, Object Design, and Testing. In addition, we will discuss common security practices in the software engineering framework. This class is targeted at both undergraduate and graduate students who have adequate background in computer science, computer engineering, or related areas. Students who successfully complete this course will be capable of effectively participating in software engineering activities