This course will enable students to study formal methods used for the analysis of software systems to ensure software's qualities, including formal methods for specifying, validating and verifying the software systems. Topics cover formal methods used in software architecture, cleanroom software engineering, formal methods in Agent- Oriented software, robotics and integrated formal methods, applying formal methods for software engineering, reconstructing software architecture, formal method techniques, and software quality Assurance