Teaching and Services

Advisory, Consulting & Evaluation of Projects

Dr. Mazo is accredited by French Ministry of Higher Education and Scientific Research as expert to review and evaluate projects (Expert agréé CIR auprès du Ministère de l'Enseignement Supérieur et de la Recherche).

Teaching & Training

Please find below the list of my current courses and seminars.

DATABASE PROGRAMMING

Objectifs de l'enseignement

  1. Apprendre à manipuler une base de données relationnelle
  2. Maitriser la sécurité et intégrité d'une base de données
  3. Développer des traitements applicatifs avec SQL/PSM au sein du SGBD
  4. Maitriser le moniteur transactionnel et de récupération du SGBD
  5. Apprendre à optimiser les requêtes SQL

Contenu du cours

Le cours est composé de 5 sujets :

Avant de commencer il faut installer et apprendre à utiliser (utilisation basique) MySQL (TP0, séances de travail 1)

1. Apprendre à manipuler une base de données relationnelle (séance de travail 2)

1.1. Show, create, drop, insert, update... (TP1.1)

1.2. Select (TP1.2)

2. Maitriser la sécurité et l'intégrité d'une base de données (séance de travail 3) (TP2)

2.1 Schémas de sécurité

2.2 Intégrité (assertions & constraints)

3. Développer des traitements applicatifs avec SQL/PSM au sein du SGBD (séances de travail 5 et 6)

3.1. Procedures

3.2. Structures de contrôle

3.3. Cursors & handlers (TP3.1)

3.4. Fonctions

3.5. Triggers

3.6. Events (TP3.2)

4. Maitriser le moniteur transactionnel et de récupération du SGBD (séance de travail 7) (TP4)

5. Apprendre à optimiser les requêtes SQL (séances de travail 8 et 9)

5.1. Indexer les attributs les plus utilisés dans les requêtes

5.2. Réécrire les requêtes (TP5.1)

5.3. Appliquer d'abord les opérations qui réduisent la taille des résultats intermédiaires

5.4. Suppression de contraintes, selects et tries inutiles (TP5.2)

ARCHITECTURE OF COMPONENT-BASED WEB APPLICATIONS

1. Web engineering and its technical challenge

2. Solving the challenge: Web applications and servlets

3. Solving the challenge: Web applications and JSPs

4. Solving limitations of servlets and JSPs: Architecting Web Applications to implement Modular Components

5. Working with the Front Controller pattern

6. Frameworks as a means to implement control inversion

7. Model-View-Controller (MVC) design pattern

8. Minimizing Control-Model Dependency: Factorization & Plug-in + Externalization + Servlet Context memory

9. Using the DAO Pattern (CRUD interfaces for each Entity) and JNDI (externalized Data Source + connection pooling)

10. Using the Hibernate framework to implement the Model-Database relation

11. Improving the Control-Model relation: Using Spring to implement the relations between the "Model" objects (Containers &

Dependency Injection)

12. Using aspect programming to implement in Spring to implement quality requirements (of the whole MVC application) as

reusable components

PRODUCT LINE ENGINEERING

Following this course, the students will understand the concept of Software Product Line Engineering as a new production paradigm which helps to create software factories by industrialising software production.

The students will also learn why the applications of Software Product Line Engineering techniques in the software industry are convincing and promising. In this course, students will learn why and how to implement a software product line.

We will also discuss some trends and remaining challenges in this field of software engineering.

The content of this course is summarised as follows

1. Introduction to software product line engineering and variability management

2. Preliminary analysis of a software product line project (scoping)

3. Domain engineering

Requirement engineering of a domain

Product line modeling

Implementation and test of reusable domain components

Transformation of product line models

Reasoning on product line models

4. Configuration

Different types of configuration

Interactive and guided configuration

5. Application engineering

From a configuration to a product definition

Product derivation and assembling

ENGINEERING CONFIGURABLE SYSTEMS (ERP systems)

Following this course, the students will understand how to define, design, simulate, select and implement systems that can be adapted by configuration (e.g., ERP systems).

The content of this training course is summarised as follows (not necessarily in that order):

1. Introduction to configurable systems

2. Development of ERP systems

3. Selection of ERP systems

4. Implementation of ERP systems (the ASAP method of SAP)

TOWARDS SELF-ADAPTIVE (SOFTWARE) SYSTEMS

Some of the systems that need to adapt themselves to optimally manage the resources are, for instance, irrigation, telecommunication (networks and communication devises like sensors and smartphones), banking, aerospace, hospital systems. We will also discuss some trends and remaining challenges in this field of software engineering.

The content of this training course is summarised as follows (not necessarily in that order):

1. What is a system and & difference between complex and complicated systems?

2. What do you understand by software systems and what really a software system is?

3. Let’s practice: Arduino fundamentals

4. What is a self-adaptive (software) system?

5. Why self-adaptive (software) systems?

6. Let’s practice: Arduino sensors

7. Finite State Machines, Turing Machines and relative timing

8. Let’s practice: Relative Timing and Turing Machines with Arduino

9. Introduction to Control Engineering

Introduction to control systems, Key uses of feedback: robustness to uncertainty, Key uses of feedback: design of dynamics, System dynamics, System dynamics modeling, System dynamics: lags/delays, System dynamics: stability, System dynamics: order, System Dynamics – First Order Plus Dead Time Model (FOPDT), System Dynamics – Second Order Plus Dead Time Model (SOPDT), How to identify the mathematical model that represents the behavior of a real system (manually and using Matlab), Control definition, Control variations for different requirements, Control Systems Architecture, Control Systems Architecture Detailed, Setpoint (SP), Measurement (Y), Error (E), ON/OFF Controller, Proportional Controller (P), Proportional-Integral Controller (PI), Proportional-Integral-Derivative Controller (PID), Proportional influence in system dynamics, Proportional-Integral influence in system dynamics, Proportional-Integral-Derivative influence in system dynamics, PID Controller Tuning, Control Tuning – Step by Step

10. Let’s practice: Case of a light control system with feedback

11. Variability Management (Manual and tool-support design and simulation of the GridStix case

12. Let’s practice Variability management: Adaptable IoT weather system

13. Process to engineer self-adaptive software systems

CERTIFICACION (en Español) EN INGENIERIA DE REQUISITOS (International IREB certification, Foundation Level)

1. Introducción

2. Redacción de requisitos

3. Educción de requisitos

4. Negociación de requisitos

5. Formalización de requisitos

6. Simulacro y (opcional) examen de certificación IREB