Le cours se donne pendant le second semestre à partir du lundi 1er février.
Il existe aujourd'hui une grande activité autour de l'analyse et la conception d'applications basées sur les objets. Cette activité, qui est souvent guidée plus par les besoins pratiques des concepteurs d'applications que par des considérations scientifiques dérivées de l'état de l'art en génie logiciel, s'est focalisée ces dernières années autour du “Unified Modeling Language” (UML).
Ce cours donne une analyse critique de UML, en le situant par rapport à d'autres approches de développement d'applications et aux méthodes de génie logiciel, aux fondements scientifiques plus solides. Les travaux pratiques du cours consistent en le développement d'une application sur un langage objet, en passant par chacune des phases du cycle de vie de l'analyse à l'implantation.
Object-Oriented Analysis and Design. Introduction to a Development Process. Defining Models and Artifacts.
Understanding Requirements. Use Cases: Describing Processes. Ranking and Scheduling Use Cases. Relating Multiple Use Cases. Starting a Development Cycle.
Building a Conceptual Model. The Glossary. Packages: Organizing Elements. Object Constraint Language (OCL). System Behavior: System Sequence Diagrams, Behavior-Contracts, State Diagrams.
From Analysis to Design. Describing Real Use Cases. Collaboration Diagrams. Patterns for Assigning Responsibilities. Designing a Solution with Objects and Patterns. Determining Visibility. Design Class Diagrams. Issues in System Design