Home
Table of contents
About
This course will provide an overview of the principles and foundations of modern software engineering techniques (primarily design based). Topics include software modelling, refactoring, design patterns and software architecture with a focus on application of these concepts to concrete software problems. Credit where its due, the course structure was designed by Dr. Raghu Reddy.
Lecture hours
The lectures will be in-person and will held on every Tuesday and Friday 2:00 PM to 3:30 PM in Room no: H-105 (Himalaya Block). The lecture materials (slides, lecture notes if any and links to supporting resources) can be accessed here.
Office Hours
Every Thursday 11:00 AM to 12:00 PM. Apart from this if more meetings or help is required, feel free to drop in an email to one of the teaching assistants
Resources
Useful textbooks:
- UML@classroom: An Introduction to Object-Oriented Modeling by Martina Seidl, Marion Scholz, Christian Huemer and Gerti Kappel
- M. Fowler. Refactoring: Improving the design of existing Code, 2000. Addison Wesley. ISBN 0-201-48567-2.
- Design Patterns Elements of Reusable Object Oriented Software by Enrich Gamma, Richard Helm, Ralph Johnson and John Vlissides
- Software Architecture in Practice (Third/Fourth edition) by Len Bass, Paul Clements and Rick Kazman, Addison-Wesley.
Useful tools:
UML - There are plenty of UML tools available such as StarUML, MagicDraw, etc. As far as this course is concerned it would be more than enough to use an open source UML tools such as: Eclipse Papyrus UML or Gaphor. If you prefer text based modelling then PlantUML can be an excellent choice. Please don’t make use of any normal diagramming tools for this course.
Java IDE - This course will involve development in Java. There are many IDEs for Java available. We suggest to either use Eclipse or Intellij IDEA Community edition.
Assignments and Projects
All the assignments, their grading policy will be posted here.