- Enseignant: DIFI DJAMEL
- Enseignant: Samir Meradi
- Enseignant: Hatem Mezaache
- Enseignant: Abdelmalek Nidhal
- Enseignant: Larbi Guezouli
This course aims to primarily introduce students to the systematic and reproducible design of computer applications. It encourages them to identify and establish the functionalities of an application and model them as use cases and scenarios. Additionally, it aims to search for the necessary classes and actors for application design. Specifically, this course aims to:
- Provide students who have completed this course with good design practices, such as the use of design patterns, architectural layering, structuring into packages, and prototyping.
- Master software engineering techniques, focusing on object-oriented and component-based approaches.
- Present an overview of the state-of-the-art in software engineering.
- Expose the main schools of thought in software development.
- Propose a set of pragmatic practices that allow for surviving a software development project.
- Enseignant: Athmani Samir
- Enseignant: Athmani Samir

