• Your selection is empty.

    Register the diplomas, courses or lessons of your choice.

Object-oriented design

  • School / Prep

    ENSEIRB-MATMECA

Internal code

EI9PG301

Description

Speakers: Georges Eyrolles, Philippe Narbel
This course will present the general principles of software architecture design, with a particular focus on object-oriented architectures. The five so-called SOLID principles (single responsibility, open/closed, Liskov substitutability, interface segregation, dependency inversion) will be defined and developed in detail, in terms of their implementation, consequences, qualities and shortcomings. These principles will also be illustrated and related to classic Design Patterns, such as Adapter, Composite, Decorator, Mediator, Strategy and Visitor. The latter will also be introduced and defined.
Although the notions and concepts will be presented with all the rigor they deserve, this course will give pride of place to experiments, practical exercises and case studies.
BIBLIOGRAPHY: - Agile Software Development. Robert Martin. Prentice Hall. 2003. - Working Effectively with Legacy Code. Feathers, Prentice Hall. 2005. - Design Patterns. Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Addison-Wesley. 1995 (also called "GoF" for "Gang of Four") - Pattern Hatching: Design Patterns Applied. John Vlissides. Addison-Wesley. 1998. - Object-oriented Software Construction. Bertrand Meyer. Prentice-Hall. 1988, 1997. - Object-Oriented Modeling and Design with UML. Blaha and Rumbaugh. Prentice Hall. 1991, 2005. - Large-Scale C++ Software Design. John Lakos. Addison-Wesley. 1996. - Design Patterns for Object-Oriented Software Development. W. Pree. Addison-Wesley. 1995. - Structured Analysis and System Specification. DeMarco. Prentice Hall. 1979. - Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Yourdon and Constantine. 1979. - The Practical Guide to Structured Systems Design. Page-Jones. Prentice Hall. 1988
PLAN :
- Software architectures, components, dependencies. - Substitutability. - Coupling and cohesion. - Responsibilities, role separation. - Segregation. - Open/closed concept.

Read more

Teaching hours

  • CIIntegrated courses26h
  • TIIndividual work10h

Mandatory prerequisites

- Object-oriented programming (PG202/203). - Good knowledge of Java.

Read more

Syllabus

- Software architectures, components, dependencies. - Substitutivity. - Coupling and cohesion. - Responsibilities, role separation. - Segregation. - Open/closed concept.

Read more

Assessment of knowledge

Initial assessment / Main session - Tests

Type of assessmentType of testDuration (in minutes)Number of testsTest coefficientEliminatory mark in the testRemarks
Final inspectionWritten1201without document without calculator

Second chance / Catch-up session - Tests

Type of assessmentType of testDuration (in minutes)Number of testsTest coefficientEliminatory mark in the testRemarks
Final testWritten901without document