Advanced Software Engineering

Graduate course (current and previous semesters)

Course Description

About advanced software engineering course


Welcome to our advanced software engineering course in the computer engineering school at Iran University of Science and Technology. Software engineering is a dynamic and live field. The changes are so fast. This course is aimed at teaching the latest topics and advances in the field of software engineering to the students who are already familiar with basic subjects. Here we will share are relevant materials and resources with you.

Course Materials

Common and necessary files for all semesters


  • Object-Oriented-Software-Engineering by Ivar Jacobson
  • Clean code and clean architecture by Robert C. Martin
  • Refactoring_Improving the Design of Existing Code by Martin Fowler
  • Software project management [pdf] [pptx]
  • Dashboard Systems [pdf] [pptx]

Useful Links

Sample Exams

  • Semester 1395-2
  • Semester 1394-2

Current Semester (Spring 2020)

IUST Semester 1398-2

Course Slides

Lecture 01: Requirements Elicitation

Lecture 04: Architectural Views

Lecture 07: Clean Code

Lecture 02: Requirements Modelling

Lecture 05: Modularity and Modular Design

Lecture 08: Software Smells

Lecture 03: Use-case Modelling

Lecture 06: Test Driven Development

Lecture 09: Roslyn

Supplementary Slides

ANTLR (Part1)

Extracting Architectural Model

ANTLR (Part2)

ANTLR (old slides, Fall 2016)

ANTLR (Part3)

Team Projects

Online Smell Detector

An automatic code smell and clean code principles violation detector tool for C#.NET  based on clean code principles by Robert C. Martin. The tool is now availabe online.

ReModularization tool

The tool is able to extract the architectural model of software from the source code, remodularze it, and produce the Rational Rose output.

Previous Semesters

The main archived notes and files


In this course, my main intention is to enrich the software development lifecycle with dashboard systems analysis and design. The underlying knowledge concepts could be taken from business intelligence. Goal analysis for requirement analysis in software engineering could be enriched with the ideas of breaking down the goals as applied in strategy maps and road maps.  Road maps are currently applied as a basis for detection of key performance indicators (KPIs). Instead of the road maps, I apply my enriched goal models to detect the KPIs. Another issue is to provide an environment to detect the impact of the KPIs on each other. Modeling the impacts of the KPIs on a given KPI as a hyper-plain, we could investigate the effects of variations in the value of the KPI on the others, geometrically.


  • 1397-02-04: HW03 was published.
  • 1397-02-02: Welcome to advanced SE course by Dr. Saeed Parsa!

Course Instructors

  • Dr. Saeed Parsa

Teaching Assistants

Class Time and Location

  • Semester 1396-2 (Spring 2018)
  • Main Lecture: Saturdays and Mondays, 10:00 – 12:00
  • Location: Classroom D104
  • Teaching Assistant: Morteza Zakeri
  • TA Class: Mondays, 12:00 – 13:00, Classroom D104

Grading Policy

  • Comming soon . . .