Objective

The course covers the main software engineering methods including object-oriented, agile, formal as well as traditional approaches. At the end of this course, the students should be able to:

  1. Understand and select the appropriate method or methods for the software development project at hand and for the various types of software systems such as critical-safety systems, interactive consumer services, enterprise applications, hardware software, etc.
  2. Master the importance of modeling techniques in software engineering and the diverse types of models. Students should be able to explain the concepts of models, meta-models, platforms dependent and independent models, model-to-model transformations, automated code generation from models.
  3.  Manage, plan, analyze and contribute to the requirements, design, implementation and maintenance of large software products.
  4. Understand how human, social and technical factors may have both positive and negative influences on software engineering methods and practices.
  5. Identify the challenges facing the software engineering research community as well as the avenues for further investigations.

Professor, Ph.D., PEng. HDR. Ahmed Seffah

Key Topics

  • Software Engineering Body of Knowledge (SWEBOK)
  • Agile software development
  • Formal methods
  • Prototyping techniques
  • Object-oriented design and analysis
  • Data-centric methods. Model-driven architecture (MDA)
  • Modeling techniques
  • Importance of modeling in software development projects
  • Software engineering tools
  • Information, structure and behavioral modeling
  • Systematic literature review and large case studies on specific models and methods, their uses and abuses such as UML, use cases, user task-based prototypes, Z, B, G-Express and BPMN (Business Process Modeling Notation)

The course is designed to be a forum for a scientific discussion and presentations by students and guests’ researchers. Except an introductory lectures, the professor will be mainly acting as a senior project manager and a researcher advising students regarding literature review, reliable information sources on software engineering as well as how to select, review and present a case study on software engineering methods. The students will have to work in a team of 2-3; each team will make 2 presentations in class; each student will have to contribute to the writing of a research paper. All together, the presentations provide a systematic framework for selecting the appropriate methods for complex software systems development projects.

Translate »