CS504 - Software Engineering I
Course Page
Mcqs
Q & A
Video
Downloads
Course Category: Computer Science/Information Technology
Course Level: Imdregraduate
Credit Hours: 3
Pre-requisites: CS101 CS201 CS304

Course Synopsis

The course focuses on the development techniques for industrial level software. The intent of the course is to equip students with the concepts to help them get a strong base in software industry. In particular the course discusses initial software engineering related concepts, different development methodologies (like structured development, object-oriented development etc), Software architecture, effective coding practices and testing in broad.

Course Learning Outcomes

At the end of the course, you should be able to:
  • Extract and analyze software requirements
  • Develop some basic level of software Architecture/Design
  • Apply standard coding practices
  • Apply different testing techniques
  • Describe debugging and its effectiveness

Course Contents

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 - Abbot's approach, Object Modeling using UML and OOD heuristics, OOD heuristics and OOA using Coad's methodology, Coad's methodology, OOA and OOD - an example using Coad's methodology, Example , Dynamic Modeling using UML Dynamic Modeling using UML, Introduction to software architecture, Software architecture - Krutchen's 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.

Course Related Links

Software Engineering main page at Wikipedia
Software Engineering Institute (SEI) Home Page
Link to book "Software Engineering: A Practitioner’s Approach" Fifth Edition by Roger S. Pressman
This is BEST SITE for Software Quality Assurance and Testing Resources
Switch Statement with Examples - Lecture # 31
Design Patterns Explanation with Examples including Example of "Facade Pattern" -Lecture # 27
Software Design Patterns with detailed Description and Examples
Course Instructor

Dr. Fakhar Lodhi
D.Sc. (CS) George
Washington University, USA
Books

Software Engineering: A Practitioner’s Approach by Roger S. Pressman

The Unified Modeling Language User Guide by Grady Booch