Model, C++ & Tools

Model: system overview 

Entities

Model: Low level Design

3 axes to describe a system

  1. Functional => what
    • use case / user story
  2. Static => structure => how
    • Layers
    • Class diagram (UML)
      [heritage, association, aggregat, composition]
    • Component diagram (UML)
    • Database (sql)
  3. Dynamic => behavour => when
    • Message Sequence Chart (UML)
    • State machine (UML)
    • Real time stucture

C++ mechanism

(think data instead of function)

 

Abstraction / Specialisation 

  • Encapsulation & surcharge (inside a class)
  • Heritage & polymorphisme (surchage between object)

 

Canvas

  • Template (class & function)

C++ syntaxe

 

  • class & struct
  • reference vs pointer
  • enum & class enum
  • object canonical form
  • key words meaning
    • const usage
    • static usage
  • template (class & function)
  • namespace
  • C++11, C++14 

 

C++ tool box

 

  • STL
    • list
    • vector
  • Template
    • mixin
    • trait
  • Design Pattern
    • singleton
    • interface
    • facade
    • factory, visitor
    • state machine
  • Boost = C++ lab

C++ methodology

 

  • interface & dependances injection
  • unit test stub & moc

C++ memory management

 

  • placement new
  • allocator & free list

Tools

 

  • IDE
    • emacs & rtag
  • Model & Code
    • PlantUML (model => graphical view)
    • BOUML (model <=> code)
    • State Machine: SMC (model => code + graphical view)

Model, C++ &

By Mathieu KAPFER

Model, C++ &

  • 165