SlideShare une entreprise Scribd logo
Architecture logicielle : Introduction
1. The Big Picture
Software architecture
Software architecture is the high level structure of a
software system, the discipline of creating such structures,
and the documentation of these structures. It is the set of
structures needed to reason about the software system, and
comprises the software elements, the relations between
them, and the properties of both elements and relations.
Source : http://en.wikipedia.org
Architectural pattern
An architectural pattern is a general, reusable solution to a
commonly occurring problem in software architecture
within a given context. Architectural patterns are similar to
software design patterns but have a broader scope.
Source : http://en.wikipedia.org
Framework
A software framework is a universal, reusable software
environment that provides particular functionality as part of
a larger software platform to facilitate development of
software applications, products and solutions.
Source : http://en.wikipedia.org
Software architecture & team (1)
Software architect is a computer manager or expert who
makes high-level design choices and dictates technical
standards, including software coding standards, tools, and
platforms.
Source : http://en.wikipedia.org
Software architecture & team (2)
Product manager Software architect
Engineering manager Programmer
Lead engineer
Stakeholders
Software architecture & team (3)
*K€ brut/an – Source Urban Linker pour l’IDF
2. Student to Architect
Etape 1 : Amateur
Comment créer un site internet ?
Comment apprendre à programmer ?
CMS / Dreamweaver /Website builder /
Korben / Codecademy
Etape 2 : Initié
Comment écrire du code qui marche ?
Comment travailler à plusieurs ?
HTML / CSS / PHP / MYSQL
Open Classroom /W3School
Etape 3 : Padawan
Comment augmenter la qualité de mon code ?
Comment mettre en production mon application ?
OOP / GIT / PHP / Framework / UML
developpez.com / Alsacréation / Blogs FR
Step 4 : Chevalier Jedi
Comment produire du code réutilisable ?
Comment m’assurer que mon code ne régresse pas ?
Comment limiter les bugs liés à l'environnement ?
Fullstack /TDD / Continuous integration / API
Stack Overflow / Github
Step 5 : Maitre Jedi
You have only begun to discover your power …
Multi langage / Design Pattern / Open Source
Hacker News / Books / Podcast
3. Architecture logicielle & Gestion de projet
1912
Diagramme de Gantt
-
1970
Modèle en cascade
-
1957
Cycle enV
Une histoire de la gestion de projet informatique (1)
1999
eXtreme Programming
-
2001
Le manifeste agile
-
2001
Scrum
-
2003
Lean / Kanban
-
2009
DevOps
Une histoire de la gestion de projet informatique (2)
2.1 Organisation du projet
2.1 Méthodes linéaires
Axiomes et Prémisses (1)
On ne peut pas construire la toiture avant les
fondations.
Les conséquences d'une modification en amont du
cycle ont un impact majeur sur les coûts en aval.
Axiomes et Prémisses (2)
Il est possible de totalement détacher la phase de
conception d'un projet de sa phase de réalisation
Pour une bonne communication entre les différents
partenaires du projet, il est nécessaire d'établir des
documents de référence.
Modèle en cascade
Recueil des besoins
Spécifications
Conception
Réalisation
Tests
Livraison
Cycle en V
Analyse des besoins
Spécifications
Conception
architecturale
Conception
détaillée
Codage
Tests unitaires
Tests d’intégrations
Tests de validation
Recette
Functional Work Teams
Design Development Operations
Head of design Head of development Head of Operations
Méthode d’architecture
Big Design
Up Front
2.2 Méthodes itératives
Les individus et leurs interactions plus que les processus et les outils
-

Des logiciels opérationnels plus qu’une documentation exhaustive
-

La collaboration avec les clients plus que la négociation contractuelle
-

L’adaptation au changement plus que le suivi d’un plan
Manifeste pour le développement Agile de logiciels - Valeurs
Axiomes et Prémisses
Les utilisateurs ne savent ce qu’ils veulent qu’après
avoir vu une première version du logiciel.
Les besoins changent souvent durant le processus
de développement du logiciel.
Spécifier intégralement un système interactif est
impossible.
Modèle agile
Recueil des besoins
Réalisation Spécifications
Conception
Cross-functional & self-directed Teams
Feature 1 Feature 2 Feature 3
Méthode d’architecture
Emergent
Design
To be continued …

Contenu connexe

Tendances

Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
Mohammed Amine Mostefai
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
mourad50
 
Java Software Development
Java Software DevelopmentJava Software Development
Java Software Development
Edkins Gael Kouna Eteme
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
Franck SIMON
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
ENSET, Université Hassan II Casablanca
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vieHarun Mouad
 
Génie Logiciel : les tests
Génie Logiciel : les testsGénie Logiciel : les tests
Génie Logiciel : les tests
Mohammed Amine Mostefai
 
J2 ee
J2 eeJ2 ee
cycle de vie
cycle de vie cycle de vie
cycle de vie
Shili Mohamed
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
Ines Ouaz
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
Erradi Mohamed
 
Cy35558564
Cy35558564Cy35558564
Cy35558564
IJERA Editor
 
Livemeeting - Windows Azure
Livemeeting - Windows AzureLivemeeting - Windows Azure
Livemeeting - Windows Azure
Jason De Oliveira
 
Cours spring
Cours springCours spring
Cours spring
mohamed el haddad
 

Tendances (17)

J2 ee
J2 eeJ2 ee
J2 ee
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
Java Software Development
Java Software DevelopmentJava Software Development
Java Software Development
 
Architectures distribuées
Architectures distribuéesArchitectures distribuées
Architectures distribuées
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vie
 
Génie Logiciel : les tests
Génie Logiciel : les testsGénie Logiciel : les tests
Génie Logiciel : les tests
 
J2 ee
J2 eeJ2 ee
J2 ee
 
cycle de vie
cycle de vie cycle de vie
cycle de vie
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
Génie Logiciel - Cours 5 - analyse
Génie Logiciel - Cours 5 - analyseGénie Logiciel - Cours 5 - analyse
Génie Logiciel - Cours 5 - analyse
 
Cy35558564
Cy35558564Cy35558564
Cy35558564
 
Livemeeting - Windows Azure
Livemeeting - Windows AzureLivemeeting - Windows Azure
Livemeeting - Windows Azure
 
Cours spring
Cours springCours spring
Cours spring
 
Objecteering
ObjecteeringObjecteering
Objecteering
 

En vedette

Chp5 - Sécurité des Services
Chp5 - Sécurité des ServicesChp5 - Sécurité des Services
Chp5 - Sécurité des Services
Lilia Sfaxi
 
Cours architecture
Cours architectureCours architecture
Cours architecture
Abdelaziz Elbaze
 
PHP #3 : tableaux & formulaires
PHP #3 : tableaux & formulairesPHP #3 : tableaux & formulaires
PHP #3 : tableaux & formulaires
Jean Michel
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookies
Jean Michel
 
Dev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummiesDev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummies
Jean Michel
 
Wordpress #1 : introduction
Wordpress #1 : introductionWordpress #1 : introduction
Wordpress #1 : introduction
Jean Michel
 
Architecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto frameworkArchitecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto framework
Jean Michel
 
Gestion de projet #3 : besoin client
Gestion de projet #3 : besoin clientGestion de projet #3 : besoin client
Gestion de projet #3 : besoin client
Jean Michel
 
Wordpress #2 : customisation
Wordpress #2 : customisationWordpress #2 : customisation
Wordpress #2 : customisation
Jean Michel
 
Javascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobsJavascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobs
Jean Michel
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
Jean Michel
 
Javascript #2.2 : jQuery
Javascript #2.2 : jQueryJavascript #2.2 : jQuery
Javascript #2.2 : jQuery
Jean Michel
 
WebApp #2 : responsive design
WebApp #2 : responsive designWebApp #2 : responsive design
WebApp #2 : responsive design
Jean Michel
 
Architecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezoneArchitecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezone
Jean Michel
 
Startup & entrepreneuriat #2.1: disrupt me
Startup & entrepreneuriat #2.1: disrupt meStartup & entrepreneuriat #2.1: disrupt me
Startup & entrepreneuriat #2.1: disrupt me
Jean Michel
 
Gestion de projet #4 : spécification
Gestion de projet #4 : spécificationGestion de projet #4 : spécification
Gestion de projet #4 : spécification
Jean Michel
 
PHP & MYSQL #5 : fonctions
PHP & MYSQL #5 :  fonctionsPHP & MYSQL #5 :  fonctions
PHP & MYSQL #5 : fonctions
Jean Michel
 
Javascript #5.1 : tp1 zombies!
Javascript #5.1 : tp1 zombies!Javascript #5.1 : tp1 zombies!
Javascript #5.1 : tp1 zombies!
Jean Michel
 
Javascript #10 : canvas
Javascript #10 : canvasJavascript #10 : canvas
Javascript #10 : canvas
Jean Michel
 
Projet timezone
Projet timezoneProjet timezone
Projet timezone
Jean Michel
 

En vedette (20)

Chp5 - Sécurité des Services
Chp5 - Sécurité des ServicesChp5 - Sécurité des Services
Chp5 - Sécurité des Services
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
PHP #3 : tableaux & formulaires
PHP #3 : tableaux & formulairesPHP #3 : tableaux & formulaires
PHP #3 : tableaux & formulaires
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookies
 
Dev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummiesDev Web 101 #2 : development for dummies
Dev Web 101 #2 : development for dummies
 
Wordpress #1 : introduction
Wordpress #1 : introductionWordpress #1 : introduction
Wordpress #1 : introduction
 
Architecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto frameworkArchitecture logicielle #5 : hipsto framework
Architecture logicielle #5 : hipsto framework
 
Gestion de projet #3 : besoin client
Gestion de projet #3 : besoin clientGestion de projet #3 : besoin client
Gestion de projet #3 : besoin client
 
Wordpress #2 : customisation
Wordpress #2 : customisationWordpress #2 : customisation
Wordpress #2 : customisation
 
Javascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobsJavascript #4.1 : fonctions for noobs
Javascript #4.1 : fonctions for noobs
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
 
Javascript #2.2 : jQuery
Javascript #2.2 : jQueryJavascript #2.2 : jQuery
Javascript #2.2 : jQuery
 
WebApp #2 : responsive design
WebApp #2 : responsive designWebApp #2 : responsive design
WebApp #2 : responsive design
 
Architecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezoneArchitecture logicielle #2 : TP timezone
Architecture logicielle #2 : TP timezone
 
Startup & entrepreneuriat #2.1: disrupt me
Startup & entrepreneuriat #2.1: disrupt meStartup & entrepreneuriat #2.1: disrupt me
Startup & entrepreneuriat #2.1: disrupt me
 
Gestion de projet #4 : spécification
Gestion de projet #4 : spécificationGestion de projet #4 : spécification
Gestion de projet #4 : spécification
 
PHP & MYSQL #5 : fonctions
PHP & MYSQL #5 :  fonctionsPHP & MYSQL #5 :  fonctions
PHP & MYSQL #5 : fonctions
 
Javascript #5.1 : tp1 zombies!
Javascript #5.1 : tp1 zombies!Javascript #5.1 : tp1 zombies!
Javascript #5.1 : tp1 zombies!
 
Javascript #10 : canvas
Javascript #10 : canvasJavascript #10 : canvas
Javascript #10 : canvas
 
Projet timezone
Projet timezoneProjet timezone
Projet timezone
 

Similaire à Architecture logicielle #1 : introduction

At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
Emmanuel Hugonnet
 
Cours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.pptCours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.ppt
Sylia3
 
Mohamed.marouan
Mohamed.marouanMohamed.marouan
Mohamed.marouan
Marouan MOHAMED
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1DIALLO Boubacar
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
hbadir
 
Gestion de projet #2 : méthodes
Gestion de projet #2 : méthodesGestion de projet #2 : méthodes
Gestion de projet #2 : méthodes
Jean Michel
 
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!
Alexandre Touret
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
Sid Ahmed Benkraoua
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
informatiquehageryah
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
Stéphane Traumat
 
OCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCS
OCCIware
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
Laurent Broudoux
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des Charges
Lilia Sfaxi
 
developpement web framework cms developpement brute
developpement web framework cms developpement brutedeveloppement web framework cms developpement brute
developpement web framework cms developpement brute
YounesOuladSayad1
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
Johan Moreau
 
Analyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfAnalyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdf
JordaniMike
 
coursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfcoursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdf
HervKoya
 
2-Composants.docx
2-Composants.docx2-Composants.docx
2-Composants.docx
bochramiinfo
 
Presentation GTI792 - Télémétrie JAUS
Presentation GTI792 - Télémétrie JAUSPresentation GTI792 - Télémétrie JAUS
Presentation GTI792 - Télémétrie JAUSplcstpierre
 

Similaire à Architecture logicielle #1 : introduction (20)

At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Cours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.pptCours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.ppt
 
Mohamed.marouan
Mohamed.marouanMohamed.marouan
Mohamed.marouan
 
Gl rappels ac
Gl rappels acGl rappels ac
Gl rappels ac
 
Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
 
Gestion de projet #2 : méthodes
Gestion de projet #2 : méthodesGestion de projet #2 : méthodes
Gestion de projet #2 : méthodes
 
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptxProcessus_Unifie_et_Approche_Agile chapitre 1.pptx
Processus_Unifie_et_Approche_Agile chapitre 1.pptx
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
OCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCSOCCIware presentation au groupe de travail Big Data du SCS
OCCIware presentation au groupe de travail Big Data du SCS
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des Charges
 
developpement web framework cms developpement brute
developpement web framework cms developpement brutedeveloppement web framework cms developpement brute
developpement web framework cms developpement brute
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Analyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdfAnalyse des besoins et gestion des projets besoin.pdf
Analyse des besoins et gestion des projets besoin.pdf
 
coursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdfcoursABGP-miage-1112-4p1.pdf
coursABGP-miage-1112-4p1.pdf
 
2-Composants.docx
2-Composants.docx2-Composants.docx
2-Composants.docx
 
Presentation GTI792 - Télémétrie JAUS
Presentation GTI792 - Télémétrie JAUSPresentation GTI792 - Télémétrie JAUS
Presentation GTI792 - Télémétrie JAUS
 

Plus de Jean Michel

Startup #7 : how to get customers
Startup #7 : how to get customersStartup #7 : how to get customers
Startup #7 : how to get customers
Jean Michel
 
HTML & CSS #10 : Bootstrap
HTML & CSS #10 : BootstrapHTML & CSS #10 : Bootstrap
HTML & CSS #10 : Bootstrap
Jean Michel
 
Javascript #11: Space invader
Javascript #11: Space invaderJavascript #11: Space invader
Javascript #11: Space invader
Jean Michel
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvc
Jean Michel
 
Wordpress #3 : content strategie
Wordpress #3 : content strategieWordpress #3 : content strategie
Wordpress #3 : content strategie
Jean Michel
 
Architecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented designArchitecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented design
Jean Michel
 
PHP #7 : guess who?
PHP #7 : guess who?PHP #7 : guess who?
PHP #7 : guess who?
Jean Michel
 
PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles
Jean Michel
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
Jean Michel
 
Startup #5 : pitch
Startup #5 : pitchStartup #5 : pitch
Startup #5 : pitch
Jean Michel
 
WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs
Jean Michel
 
Javascript #8 : événements
Javascript #8 : événementsJavascript #8 : événements
Javascript #8 : événements
Jean Michel
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
Jean Michel
 
WebApp #1 : introduction
WebApp #1 : introductionWebApp #1 : introduction
WebApp #1 : introduction
Jean Michel
 
Javascript #7 : manipuler le dom
Javascript #7 : manipuler le domJavascript #7 : manipuler le dom
Javascript #7 : manipuler le dom
Jean Michel
 

Plus de Jean Michel (16)

Startup #7 : how to get customers
Startup #7 : how to get customersStartup #7 : how to get customers
Startup #7 : how to get customers
 
HTML & CSS #10 : Bootstrap
HTML & CSS #10 : BootstrapHTML & CSS #10 : Bootstrap
HTML & CSS #10 : Bootstrap
 
Javascript #11: Space invader
Javascript #11: Space invaderJavascript #11: Space invader
Javascript #11: Space invader
 
Architecture logicielle #4 : mvc
Architecture logicielle #4 : mvcArchitecture logicielle #4 : mvc
Architecture logicielle #4 : mvc
 
Wordpress #3 : content strategie
Wordpress #3 : content strategieWordpress #3 : content strategie
Wordpress #3 : content strategie
 
Architecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented designArchitecture logicielle #3 : object oriented design
Architecture logicielle #3 : object oriented design
 
PHP #7 : guess who?
PHP #7 : guess who?PHP #7 : guess who?
PHP #7 : guess who?
 
PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles PHP #2 : variables, conditions & boucles
PHP #2 : variables, conditions & boucles
 
PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
 
Startup #5 : pitch
Startup #5 : pitchStartup #5 : pitch
Startup #5 : pitch
 
WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs WebApp #4 : Consuming REST APIs
WebApp #4 : Consuming REST APIs
 
Javascript #8 : événements
Javascript #8 : événementsJavascript #8 : événements
Javascript #8 : événements
 
Projet timezone
Projet timezoneProjet timezone
Projet timezone
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
 
WebApp #1 : introduction
WebApp #1 : introductionWebApp #1 : introduction
WebApp #1 : introduction
 
Javascript #7 : manipuler le dom
Javascript #7 : manipuler le domJavascript #7 : manipuler le dom
Javascript #7 : manipuler le dom
 

Architecture logicielle #1 : introduction

  • 2. 1. The Big Picture
  • 3. Software architecture Software architecture is the high level structure of a software system, the discipline of creating such structures, and the documentation of these structures. It is the set of structures needed to reason about the software system, and comprises the software elements, the relations between them, and the properties of both elements and relations. Source : http://en.wikipedia.org
  • 4. Architectural pattern An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context. Architectural patterns are similar to software design patterns but have a broader scope. Source : http://en.wikipedia.org
  • 5. Framework A software framework is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate development of software applications, products and solutions. Source : http://en.wikipedia.org
  • 6. Software architecture & team (1) Software architect is a computer manager or expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms. Source : http://en.wikipedia.org
  • 7. Software architecture & team (2) Product manager Software architect Engineering manager Programmer Lead engineer Stakeholders
  • 8. Software architecture & team (3) *K€ brut/an – Source Urban Linker pour l’IDF
  • 9. 2. Student to Architect
  • 10. Etape 1 : Amateur Comment créer un site internet ? Comment apprendre à programmer ? CMS / Dreamweaver /Website builder / Korben / Codecademy
  • 11. Etape 2 : Initié Comment écrire du code qui marche ? Comment travailler à plusieurs ? HTML / CSS / PHP / MYSQL Open Classroom /W3School
  • 12. Etape 3 : Padawan Comment augmenter la qualité de mon code ? Comment mettre en production mon application ? OOP / GIT / PHP / Framework / UML developpez.com / Alsacréation / Blogs FR
  • 13. Step 4 : Chevalier Jedi Comment produire du code réutilisable ? Comment m’assurer que mon code ne régresse pas ? Comment limiter les bugs liés à l'environnement ? Fullstack /TDD / Continuous integration / API Stack Overflow / Github
  • 14. Step 5 : Maitre Jedi You have only begun to discover your power … Multi langage / Design Pattern / Open Source Hacker News / Books / Podcast
  • 15. 3. Architecture logicielle & Gestion de projet
  • 16. 1912 Diagramme de Gantt - 1970 Modèle en cascade - 1957 Cycle enV Une histoire de la gestion de projet informatique (1)
  • 17. 1999 eXtreme Programming - 2001 Le manifeste agile - 2001 Scrum - 2003 Lean / Kanban - 2009 DevOps Une histoire de la gestion de projet informatique (2)
  • 20. Axiomes et Prémisses (1) On ne peut pas construire la toiture avant les fondations. Les conséquences d'une modification en amont du cycle ont un impact majeur sur les coûts en aval.
  • 21. Axiomes et Prémisses (2) Il est possible de totalement détacher la phase de conception d'un projet de sa phase de réalisation Pour une bonne communication entre les différents partenaires du projet, il est nécessaire d'établir des documents de référence.
  • 22. Modèle en cascade Recueil des besoins Spécifications Conception Réalisation Tests Livraison
  • 23. Cycle en V Analyse des besoins Spécifications Conception architecturale Conception détaillée Codage Tests unitaires Tests d’intégrations Tests de validation Recette
  • 24. Functional Work Teams Design Development Operations Head of design Head of development Head of Operations
  • 27. Les individus et leurs interactions plus que les processus et les outils -
 Des logiciels opérationnels plus qu’une documentation exhaustive -
 La collaboration avec les clients plus que la négociation contractuelle -
 L’adaptation au changement plus que le suivi d’un plan Manifeste pour le développement Agile de logiciels - Valeurs
  • 28. Axiomes et Prémisses Les utilisateurs ne savent ce qu’ils veulent qu’après avoir vu une première version du logiciel. Les besoins changent souvent durant le processus de développement du logiciel. Spécifier intégralement un système interactif est impossible.
  • 29. Modèle agile Recueil des besoins Réalisation Spécifications Conception
  • 30. Cross-functional & self-directed Teams Feature 1 Feature 2 Feature 3