courses‎ > ‎

CS 308 Software Engineering 2016

 Preamble
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 /
Assignments
Housekeeping Orientation   
The Software Problem
Introduction to Software Engineering,

Lecture1-2
Lecture 3-4

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

Assignment-1
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
 
Assignment-3
 
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
Modeling
Object-Modeling-1
  
OO Analysis & Modeling



OOD-1,
OOD-2

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-Introduction
 

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
 
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 ase.submission@gmail.com Please also note that I will not accept submissions to any other portal/email address.
Comments