Introduction to Software Engineering and well engineered software, Introduction to software development, Introduction to software requirements, Levels and types of requirements Use case modeling, Documenting user requirements and use case modeling, Use case modeling ,Domain Modeling, Data flow modeling, Data flow modeling, User Interface and prototyping, Introduction to Software Design, Coupling and Cohesion, Introduction to object-oriented analysis and design, Object Oriented Analysis - Abbots approach, Object Modeling using UML and OOD heuristics, OOD heuristics and OOA using Coads methodology, Coads methodology, OOA and OOD - an example using Coad methodology, Example , Dynamic Modeling using UML Dynamic Modeling using UML, Introduction to software architecture, Software architecture - Krutchen model, Architectural Models Architectural Models, Introduction to design patterns, Design patterns , Coding Practices for industrial strength software and style guides, Coding Practices for industrial strength software and style guides, Coding Practices for industrial strength software and style guides, Coding Practices for industrial strength software and style guides –continued, Coding Practices for industrial strength software and style guides, Coding Practices for industrial strength software and style guides, Portability, Exception handling, Introduction to software verification and validation, Introduction to software testing ,Black box testing and Equivalence partitioning White box testing, Unit testing, Inspection, Introduction to debugging, Bug classes and effective debugging, Holistic approach to debugging Summary and conclusion.