- Understand, explain, and apply more systematic methods and techniques for engineering complex software intensive systems, in particular, for elaborating requirements, designing architectures, validating and verifying software models.
- Understand and explain the problems and solutions specific to mission-critical systems, in particular, security-critical and safety-critical applications.
- Be exposed to research: study of relevant bibliography, synthesis and evaluation of ideas, personal contribution, participation to research group discussions.
Main themes
- Requirements engineering: requirements elicitation, evaluation, specification, analysis and evolution..
- Specification techniques --state-based techniques; temporal, deontic, epistemic logics.
- Analysis techniques --model validation by animation; algorithmic and deductive verification of model properties; risk analysis.
- Behavioral software models --construction, synthesis, analysis.
- Modeling and analysing security aspects.
- Architectural design --architectural description languages, pattern languages, self-healing systems.
- Tool support for model specification and analysis: LTSA, SCR toolset, SpecTRM, Alloy, VDMTools, RAISE tools, B, SPIN, NuSMV, PVS, SteP, etc.
Content and teaching methods
Active learning that may integrate various types of activities, e.g., bibliographical search, question-answer sessions,talks, discussion groups, external seminars, and experimentation of various tools on a common case study.
Other information (prerequisite, evaluation (assessment methods), course materials recommended readings, ...)
- Prerequisite
INGI2251 Software Engineering : Development Methods.
- References
A. van Lamsweerde, Requirements Engineering: from systems goals to UML models to software specificationns, Wiley, 2009
- Evaluation
Based on individual and group work during the quadrimester, and on a final report