courses‎ > ‎

CS 308 Software Engineering 2016

Writing programs to fulfill some academic requirements for an academic degree is a radically different exercise compared to how a state-of-art software is developed in industry. The main objective of this course to understand and learn how complexity and change is engineered during large software development. Here, we would focus on the methodologies (processes), techniques (methods), and tools that can be used to successfully design and validate large software. Wherever relevant, we will make use of UML to represent  various aspects of software development.

Course Contents [ ] [ ]

In this course, we discuss

 Topics  Lecture Slides  Recommended Readings
 Exercises /
Housekeeping Orientation   
The Software Problem
Introduction to Software Engineering,

Lecture 3-4

RB-1 (Chapter-1)
Review questions for the practice exercise - Problem Definition for Mess Management Software 

SDLC, Software process, Software process models, CMM
Other Processes
RB-1 (Chapter-2) 
Software Requirements gathering,  analysis, and specifications, SRS,
Use cases, Use case modeling and specifications.

Requirement Engineering

Use case Modeling
RB-2 (Chapter-4)

RealState example , ATM example
Modeling Complexity
Object-Oriented Modeling
and Function-Oriented Modeling, Analysis Modeling,

System and Subsystem Design, Architectural Styles, Design goals,

Object Design, and Specifying Interfaces
Design Patterns
OO Analysis & Modeling


DP-1, DP-2  DP-3

RB-3 (Chapter 3)
RB-2 (Chapter-5)

RB-2 (Chapter 6, 7, 8, 9)

"Head First Design Patterns" Book Patterns - Strategy, Factory Method, Abstract Factory, Singleton, Adapter, Facade, Observer, Decorator
Exercises in Use cases and Analysis Modeling
Exercises in Object-Modeling
Software Testing, Unit testing, Integration testing, System testing, Regression testing

Black-box and White-box techniques,

Static Techniques like code inspections, static analysis and dynamic analysis

Testing Techniques
Static Techniques
1.  What is software testing and why it is so hard?
2.  A Brief Essay on Software Testing
3.  Validation, Verification, and Testing of Computer Software
4. Testing: A roadmap
5.  JUnit exercise for Queue

Design and Code Inspections to Reduce Errors in Program Development
Software Project Planning,  Estimation, Scheduling,
Risk Management, Quality Management, Software Configuration Management, Project Plan

OO-Modeling, UML and OCL
(For Self Reading)
UMLOCL 1. UML Distilled by Martin Fowler
2. RB-2
3. RB-2 (Chapter-2)
A short introduction of
UML diagrams
OCL examples-1
OCL- Introduction


Main Book References

    1. RB-1: Pankaj Jalote. "An Integrated Approach to Software Engineering", 3rd Edition, Narosa, 2005
    2. RB-2: Bernd Bruegge, Allen Dutoit: “Object-Oriented Software Engineering: Using UML, Patterns, and Java”, Prentice Hall, 2003.
    3  RB-3: Blaha and Rumbaugh. "Object-Oriented Analysis and Modeling using UML, 2nd Edition, TMH 2005.
    4. RB-4: "Head First Design Pattern" Book

Web Resources on

UML Resource Page @OMG
UML Reources @IBM
   A short introduction of UML diagrams
 Software Testing
A Brief Essay on Software Testing. A. Bertolino and E. Marchetti  Technical report, 2004.
Software Testing @ CMU    
Software Testing: A short Notes
 Resources on Course Projects
UML Modeling Tools
(Open Source)

 Design patterns
 Design Patterns
Software Development Methodologies (RUP, XP, TDD, SCRUM)
Agile Modeling
Rational Unified Process
Basic Unified Process
 Resources on Term Paper
1. productivity tools in software engineering

Meeting Time

   Monday  10.00-11.00 AM
   Tuesday 11.00-12.00 AM
   Thursday 12.00- 1.00 PM


Course Project

    [See Instructions and Hints ]
    help can be found here! See RealState example , ATM example    SRS Template [word file

    The Course Project Deadlines [Course Project List]

1. SRS
2. Domain Models (Use case + Sequence Diagrams + Domain Class diagrams)
3. Design Models (System Design + Object Design)
4. Code 
5. Test cases and Testing report

Semester Exams
    Mid Semester Test Paper      Solution
    End Semester Test Paper

Evaluation (Grading)

    30% Course Project/Term Paper
    20% Mid Semester
    30% End-Semester
    20% Quizzes

There will be bonus marks (max 10%) for undertaking additional work on course objectives.

Course Submission Portal
Please note that for all your submissions, please mail them to Please also note that I will not accept submissions to any other portal/email address.