Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Architecture logicielle - Pour une approche organisationnelle, fonctionnelle et technique (2e édition)

Architecture logicielle Pour une approche organisationnelle, fonctionnelle et technique (2e édition)

Informations

Livraison possible dès le 25 novembre 2024
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-7460-9921-0
  • EAN : 9782746099210
  • Ref. ENI : DP2ARC

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-00189-5
  • EAN : 9782409001895
  • Ref. ENI : LNDP2ARC
Ce livre s'adresse aux DSI, chefs de projets, maîtres d'ouvrage, architectes, administrateurs ou développeurs ; il peut également intéresser les étudiants en informatique ou toute personne impliquée dans un projet logiciel exigeant. Tout au long du livre, l'auteur propose une approche didactique et accessible qui permet de donner au lecteur une vision claire de la dimension architecturale des systèmes informatiques. Le livre révèle...
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Initié à Confirmé
  • Nombre de pages 474 pages
  • Parution avril 2016
  • Niveau Initié à Confirmé
  • Parution avril 2016
Ce livre s'adresse aux DSI, chefs de projets, maîtres d'ouvrage, architectes, administrateurs ou développeurs ; il peut également intéresser les étudiants en informatique ou toute personne impliquée dans un projet logiciel exigeant. Tout au long du livre, l'auteur propose une approche didactique et accessible qui permet de donner au lecteur une vision claire de la dimension architecturale des systèmes informatiques.

Le livre révèle les liens tissés par les disciplines afférentes à la réalisation d'un projet logiciel d'envergure, agile et réactif. Il permet au lecteur de comprendre comment bâtir un système qui soit à la fois capable de répondre aux besoins du client, de réaliser les objectifs métiers de l'entreprise, tout en optimisant sa production, en facilitant sa maintenance, en s'intégrant aux infrastructures existantes, en rationalisant les coûts et en anticipant sa montée en charge.

Le lecteur progresse du niveau fonctionnel jusqu'à la technique pure. Il commence par appréhender les processus de développement les plus répandus, qu'ils soient agiles ou formels. Il découvre ensuite les techniques de recueil des exigences et d'élaboration des cas d'utilisation. Il aboutit enfin aux différents concepts d'architectures multi-tiers, distribuées, orientées services/messages et mobiles avant d'approfondir les tests automatisés, la modélisation, la conception orientée objet, la programmation fonctionnelle et les design patterns en passant par les bases de données NoSQL.

Cette deuxième édition s'enrichit de trois nouveaux chapitres couvrant les briques fondamentales du Big Data, tant au niveau des modes de stockage distribués que des techniques de traitements massivement parallèles, les principes de λ-Architecture et le design d'applications réactives grâce à la programmation fonctionnelle.


Les chapitres du livre :
Avant-propos – Ingénierie pilotée par les modèles – Approche processus – Méthodes agiles – Spécifications – Cas d'utilisation – Test et assurance qualité – Architectures d'application – Architectures d'intégration – Conception orientée objet – Stockages distribués – Traitements et architectures distribués – Modélisation – Design patterns – Programmation fonctionnelle – Boîte à outils – Bibliographie
Avant-propos
  1. Objectifs
  2. Public visé
  3. Organisation de l’ouvrage
Ingénierie pilotée par les modèles
  1. Sémantique introductive
    1. 1. Designer
    2. 2. Finitude
    3. 3. Conjectures
  2. Architecture logicielle
    1. 1. Architecte
    2. 2. Points clés d’une architecture
    3. 3. Challenges
    4. 4. Agilité
    5. 5. Spécification
      1. a. Le System Architecture Document (SAD)
      2. b. Le Guide de design des composants
      3. c. Le Prototype architectural
      4. d. Le Modèle
    6. 6. Workflow
      1. a. Spécification des exigences
      2. b. Analyse architecturale
      3. c. Design architectural
      4. d. Design orienté objet
  3. Architecture pilotée par les modèles (MDA)
    1. 1. Fondations
      1. a. MOF
      2. b. XMI
      3. c. UML
      4. d. OCL
    2. 2. Architecture MDA
      1. a. Cycle de vie du développement
      2. b. Modèle indépendant de la plateforme(PIM)
      3. c. Modèle spécifique à laplateforme (PSM)
      4. d. Code
    3. 3. Exemple
      1. a. PIM
      2. b. PSM base de données
      3. c. PSM Java
      4. d. Code
    4. 4. Conclusion
Approche processus
  1. Management
    1. 1. Arborescence
    2. 2. Machine à café
    3. 3. Organisation
    4. 4. Kanban
    5. 5. PMBOK
  2. Processus
    1. 1. Manifeste
    2. 2. Cycle vertueux
    3. 3. Qualité
    4. 4. Classification
    5. 5. Choix cornélien
  3. Maturité
  4. Épistémologie
    1. 1. Le formalisme libère !
    2. 2. Waterfall
    3. 3. Prototype
    4. 4. Spirale
    5. 5. Itération
    6. 6. SADD
  5. Agilité
    1. 1. Manifeste Agile
    2. 2. Principes
    3. 3. Gourous
    4. 4. Le grand mix
    5. 5. Détracteurs
Méthodes agiles
  1. Extreme Programming
    1. 1. Quatre valeurs
    2. 2. Douze pratiques
      1. a. Développement piloté par les tests(TDD)
      2. b. Le jeu du planning
      3. c. Client dans l’équipe
      4. d. Petites livraisons
      5. e. Usage des métaphores
      6. f. Design simple
      7. g. Refactorisation à outrance
      8. h. Propriété collective
      9. i. Programmation par binômes
      10. j. Intégration continue
      11. k. Rythme de travail raisonnable
      12. l. Conventions de nommage
    3. 3. Particularités
      1. a. Humanisme
      2. b. Vélocité
      3. c. YAGNI
      4. d. Espace
    4. 4. Conclusion
      1. a. Architecture émergente
      2. b. Exosquelette
      3. c. Entropie
  2. Scrum
    1. 1. Concept
    2. 2. Processus
    3. 3. Rôles
      1. a. Product Owner
      2. b. Team
      3. c. Scrum Master
    4. 4. Backlog
    5. 5. Sprint Planning
    6. 6. Daily Scrum
    7. 7. Burndown Chart
    8. 8. Bénéfices
    9. 9. Questions socratiques
    10. 10. Tour d’ivoire
  3. Processus Unifié Ouvert (Open UP)
    1. 1. Rational Unified Process (RUP)
    2. 2. Open UP
    3. 3. Principes
    4. 4. Organisation
      1. a. Zone de contenu
      2. b. Rôles
    5. 5. Cycle de vie du projet
      1. a. Inception
      2. b. Élaboration
      3. c. Construction
      4. d. Transition
    6. 6. Itérations
Spécifications
  1. Exigences
    1. 1. Formulations
      1. a. Café
      2. b. Code
      3. c. Tests
      4. d. Modèle
      5. e. Backlog
      6. f. Documents
    2. 2. Les parties prenantes
    3. 3. Typologie des exigences
      1. a. Fonctionnalité
      2. b. Exigences fonctionnelles
      3. c. Cas d’utilisation
      4. d. Prototype
    4. 4. Exigences non fonctionnelles
      1. a. Disponibilité
      2. b. Fiabilité
      3. c. Souplesse
      4. d. Flexibilité
      5. e. Performance
      6. f. Montée en charge
      7. g. Réutilisation
      8. h. Sécurité
  2. Ingénierie
    1. 1. Capture
    2. 2. Analyse
    3. 3. Documentation
    4. 4. Validation
    5. 5. Gestion
  3. Vision
    1. 1. Exigences d’entreprise
      1. a. Fondements
      2. b. Opportunité commerciale
      3. c. Objectifs commerciaux et critères de succès
      4. d. Besoins clients
      5. e. Risques métier
    2. 2. Vision de la solution
      1. a. Énoncé de la vision
      2. b. Fonctionnalités majeures
      3. c. Hypothèses et dépendances
      4. d. Périmètre et limitations
      5. e. Périmètre de la version initiale
      6. f. Périmètre des versions ultérieures
      7. g. Limitations et exclusions
    3. 3. Contexte métier
      1. a. Profil des parties prenantes
      2. b. Priorités du projet
      3. c. Environnement d’exécution
  4. Spécification
    1. 1. Introduction
      1. a. Intention
      2. b. Conventions
      3. c. Audience
      4. d. Cadre du projet
      5. e. Références
    2. 2. Description générale
      1. a. Perspective du produit
      2. b. Fonctionnalités du produit
      3. c. Classes d’utilisateurs
      4. d. Environnement opérationnel
      5. e. Contraintes de design et d’implémentation
      6. f. Documentation utilisateur
      7. g. Hypothèses et dépendances
    3. 3. Fonctionnalités du système
    4. 4. Exigences des interfaces externes
      1. a. Interfaces utilisateur
      2. b. Interfaces matérielles
      3. c. Interfaces logicielles
      4. d. Interfaces de communication
      5. e. Exigences non fonctionnelles
    5. 5. Appendices
  5. Modélisation
    1. 1. Modèle fonctionnel
      1. a. Exigences
      2. b. Reporting
      3. c. Diagrammes d’exigences
      4. d. Diagrammes de cas d’utilisation
    2. 2. Gestion du changement
      1. a. Traçabilité
      2. b. Matrice
Cas d’utilisation
  1. Histoires d’usage
    1. 1. Historique
    2. 2. Terminologie
      1. a. Acteur
      2. b. Scénario
      3. c. Étape
    3. 3. Formalisme
      1. a. Tout habillé
      2. b. Relaxe
    4. 4. Rédaction
    5. 5. Erreurs classiques
  2. Diagrammes
  3. Use Case points
    1. 1. Pourquoi l’utiliser ?
    2. 2. Adoption
    3. 3. Auteurs
    4. 4. Méthode de Karner
  4. Étude de cas
    1. 1. Exigences
    2. 2. Cas d’utilisation
      1. a. Version intégrale
      2. b. Version allégée
    3. 3. Modèle UML
    4. 4. Estimation de coûts
      1. a. Estimation
      2. b. Conclusion
Test et assurance qualité
  1. Contexte
    1. 1. Utilisation
      1. a. Agilité
      2. b. Refactorisation
      3. c. Intégration continue
    2. 2. Granularité
      1. a. Tests d’acceptance
      2. b. Tests unitaires
    3. 3. Plan de test
      1. a. Smoke testing
      2. b. Positive/Negative testing
      3. c. Performance testing
      4. d. Stress testing
    4. 4. Testabilité
      1. a. Membres statiques
      2. b. Encapsulation
      3. c. Non-MVC
      4. d. IOC
      5. e. Factory
  2. Outils
    1. 1. JUnit
    2. 2. JMeter
    3. 3. Code coverage
  3. Techniques
    1. 1. Boîte noire
      1. a. Exemple
      2. b. Corollaire de Gödel
    2. 2. Boîte blanche
    3. 3. Tests d’interface
    4. 4. Mock object
Architectures d’application
  1. Principes d’architecture
  2. Couches
    1. 1. Présentation
    2. 2. Logique métier
    3. 3. Accès aux données
  3. Tier
    1. 1. Monolithique
      1. a. Mise à jour automatique
      2. b. Compatibilité
      3. c. Business model
    2. 2. Le deuxième tier
    3. 3. Architectures n-tier
      1. a. Schéma conceptuel
      2. b. Avantages
      3. c. Linéarité
      4. d. Client léger
      5. e. Middle-tier
  4. MVC
    1. 1. Bénéfices
    2. 2. Workflow
    3. 3. Différences
  5. Applications mobiles
    1. 1. Développement natif
    2. 2. Application web
    3. 3. Approche hybride
  6. Exemple
    1. 1. Architecture
      1. a. 3-tier
      2. b. Modèle MVC
    2. 2. Implémentation
      1. a. Vue
      2. b. Contrôleur
      3. c. Modèle
    3. 3. Conclusion
Architectures d’intégration
  1. Paysage IT
    1. 1. Évolution des SI
    2. 2. Les limites de l’objet
  2. Architecture orientée services (SOA)
    1. 1. Le concept de service
    2. 2. Vue d’ensemble
    3. 3. Service
      1. a. Contrat
      2. b. Interface
      3. c. Implémentation
      4. d. Logique métier
      5. e. Données
    4. 4. Bus de services
      1. a. Journalisation
      2. b. Sécurité
      3. c. Transaction
    5. 5. Dépôt de services
      1. a. Utilité
      2. b. Liaison
    6. 6. Application front-end
  3. Technologies
    1. 1. Systèmes distribués
      1. a. Objets distribués (ORB)
      2. b. Middleware orienté messages (MOM)
      3. c. Serveurs d’application
    2. 2. Services web
      1. a. WSDL
      2. b. SOAP
      3. c. UDDI
      4. d. BPMN
      5. e. BPEL
    3. 3. RESTful web services
      1. a. REST
      2. b. WADL
    4. 4. Stubs et Dispatcher
      1. a. Top/Down
      2. b. Bottom/Up
      3. c. MDA
Conception orientée objet
  1. L’avènement des objets
    1. 1. Quelles sont les différences ?
    2. 2. Complexité
      1. a. Modularité
      2. b. Abstraction
      3. c. Polymorphisme
    3. 3. Entropie
  2. Principes élémentaires
    1. 1. Encapsulation
      1. a. Comment l’appliquer ?
      2. b. Exemple
    2. 2. Cohésion
    3. 3. Couplage
  3. Principes avancés
    1. 1. Responsabilité unique (SRP)
      1. a. Comment l’appliquer ?
      2. b. Exemple
    2. 2. Ouverture/fermeture (OCP)
      1. a. Comment l’appliquer ?
      2. b. Exemple 1
      3. c. Exemple 2
    3. 3. Substitution de Liskov (LSP)
    4. 4. Ségrégation d’interfaces(ISP)
    5. 5. Inversion de dépendances (DIP)
    6. 6. Inversion de contrôle (IOC)
      1. a. Service locator
      2. b. Injection par container
  4. Conclusion
Stockages distribués
  1. Introduction
  2. Big Data et scalabilité
    1. 1. Les enjeux
    2. 2. Les nouveaux métiers
    3. 3. Les cas d’usage
      1. a. Modélisation des risques
      2. b. Analyse de la perte des clients (churn)
      3. c. Moteur de recommandations
      4. d. Ciblage publicitaire
      5. e. Prédiction de pannes par analyse réseau
      6. f. Détection de fraudes
      7. g. Recherche
      8. h. Bac à sable
    4. 4. Les distributions
    5. 5. Les grands acteurs
  3. Hadoop et le Big Data
    1. 1. HDFS : un système de fichiers distribué
      1. a. Architecture HDFS
      2. b. Réplication des données
    2. 2. Paradigme MapReduce
    3. 3. Orchestration des jobs avec YARN
    4. 4. Un exemple en Java
  4. Stockages NoSQL
    1. 1. NoSQL ou la fin des formes normales
    2. 2. Schémas et formats de sérialisation
      1. a. Protocoles d’échange de données
      2. b. Apache Parquet
    3. 3. HBase, une base de données clé/valeurorientée colonnes
    4. 4. Lucene et les moteurs de recherche
      1. a. Les annuaires inversés
      2. b. Le sharding pattern
    5. 5. Bases de données orientées graphes
      1. a. Que peut-on faire avec des graphes ?
      2. b. Quid des performances ?
Traitements et architectures distribués
  1. Introduction
  2. Écosystème Hadoop
    1. 1. Acquisition des données
      1. a. Sqoop
      2. b. Flume
      3. c. Storm
      4. d. Kafka
    2. 2. Traitements
      1. a. Pig
      2. b. Hive
    3. 3. Traitements itératifs avec Spark
      1. a. Faiblesses d’Hadoop
      2. b. Jeux de données résilients et distribués(RDD)
      3. c. Modèle d’exécution
      4. d. MapReduce avec Spark
  3. Lambda-Architecture
    1. 1. Principes et avantages
      1. a. Batch layer
      2. b. Realtime layer
      3. c. Serving layer
    2. 2. Conclusions
    3. 3. Pile technologique
    4. 4. Architecture log-centric
      1. a. Concept de log
      2. b. Systèmes distribués
      3. c. Intégration des données
Modélisation
  1. MERISE
    1. 1. Origine
    2. 2. Cycle de vie
    3. 3. Modèle conceptuel de données (MCD)
      1. a. Entités
      2. b. Associations
      3. c. Cardinalités
      4. d. Dimension
      5. e. Méthode
      6. f. Formes normales
    4. 4. Modèle logique des données (MLD)
      1. a. Tables
      2. b. Relations n/m
      3. c. Relations 1/n
    5. 5. Modèle physique des données (MPD)
  2. UML
    1. 1. Modèles et vues
    2. 2. Éléments
      1. a. Classe
      2. b. Interface
      3. c. Package
      4. d. Composant
      5. e. Nœud
      6. f. État
    3. 3. Relations
      1. a. Types
      2. b. Multiplicité
    4. 4. Notes et stéréotypes
    5. 5. Diagrammes
      1. a. Diagramme de classes
      2. b. Diagramme de structure composite
      3. c. Diagramme de composants
      4. d. Diagramme de déploiement
      5. e. Diagramme d’objets
      6. f. Diagramme de packages
      7. g. Diagramme de profils
      8. h. Diagramme d’activité
      9. i. Diagramme de cas d’utilisation
      10. j. Machine à états
      11. k. Diagramme de timing
      12. l. Diagramme de séquence
      13. m. Diagramme de communication
      14. n. Diagramme global d’interaction
Design patterns
  1. Introduction
    1. 1. Genèse
    2. 2. Origine
    3. 3. Définition
    4. 4. Intérêt
    5. 5. Formalisme
  2. Patterns
    1. 1. Création
      1. a. Abstract Factory
      2. b. Builder
      3. c. Factory Method
      4. d. Prototype
      5. e. Singleton
    2. 2. Structure
      1. a. Adapter
      2. b. Bridge
      3. c. Composite
      4. d. Decorator
      5. e. Facade
      6. f. Flyweight
      7. g. Proxy
    3. 3. Comportement
      1. a. Chain of Responsibility
      2. b. Command
      3. c. Interpreter
      4. d. Iterator
      5. e. Mediator
      6. f. Memento
      7. g. Observer
      8. h. State
      9. i. Strategy
      10. j. Template Method
      11. k. Visitor
Programmation fonctionnelle
  1. Introduction
  2. Programmation fonctionnelle
    1. 1. Brève introduction à Scala
      1. a. Mutable/Immutable
      2. b. Fonction
      3. c. Une classe simple
      4. d. Les collections
      5. e. Les itérations
      6. f. Fonctions récursives
      7. g. Petit script pour compter les mots dans un fichier
    2. 2. Principes de programmation fonctionnelle
      1. a. Effets de bord
      2. b. Transparence référentielle et fonctionspures
      3. c. Des états immutables
      4. d. Options et pattern matching
      5. e. Boucles for-comprehension
      6. f. Fainéantise et structures infinies
  3. Théorie des catégories et design patterns
    1. 1. Monoïdes
      1. a. Quelques exemples mathématiques simples
      2. b. Généralisation de la première équation :la fermeture
      3. c. Généralisation de la deuxième équation :l’associativité
      4. d. Généralisation de la troisième équation :l’élément neutre
      5. e. Récapitulatif
      6. f. Usage des monoïdes
      7. g. Définition théorique en Scala
    2. 2. Monades
      1. a. Un exemple concret
      2. b. La monade Option[T]
      3. c. Utilisation fonctionnelle de la monade Option
      4. d. Travail sur les listes et les boucles for-comprehension
      5. e. Try[T] au secours des exceptions
      6. f. Définition théorique d’unemonade
      7. g. Les lois des monades
  4. Systèmes réactifs
    1. 1. Reactive manifesto
    2. 2. Le modèle d’acteurs
      1. a. Concepts fondamentaux
      2. b. Un système d’acteurs
      3. c. Un exemple avec Akka
      4. d. Conclusion
Boîte à outils
  1. Métrologie
    1. 1. Productivité
      1. a. Métriques d’ordre général
      2. b. Lignes de code (LOC)
    2. 2. Qualité du design
      1. a. Complexité cyclomatique
      2. b. Couplage entre objets (CBO)
      3. c. Manque de cohésion des méthodes(LCOM)
    3. 3. Qualité de service
      1. a. Durée moyenne de panne (MTTF)
      2. b. Défauts par ligne de code
    4. 4. Exemple
      1. a. Classe à l’étude
      2. b. Résultats
  2. Outils CASE
    1. 1. Références
      1. a. ArgoUML
      2. b. Rational software
      3. c. PowerAMC
      4. d. Objecteering
      5. e. Enterprise Architect
    2. 2. Génie logiciel
      1. a. Génération de code
      2. b. Reverse engineering
      3. c. Synchronisation
    3. 3. Documentation
    4. 4. Analyse d’exécution
  3. Traité d’esthétisme
    1. 1. Théorie constructale
    2. 2. Le nombre d’or
    3. 3. Émergence
Bibliographie
  1. Bibliographie
Auteur : Thomas  BAILET

Thomas BAILET

Thomas BAILET est consultant en Architecture Logicielle. Mathématicien diplômé de l'université de Toulouse, il a effectué une carrière professionnelle dans le génie logiciel auprès de grandes entreprises dans le domaine de la micro-électronique comme Motorola, au sein de sociétés de service et de start-up innovantes. Il a fondé un studio de création multimédia, a participé à la conception de logiciels de synchronisation de données, d'applications mobiles et d'applications distribuées. Son expérience de l'élaboration de processus de développement agiles est riche. Il la partage à travers ce livre pour fournir au lecteur un manuel didactique qui expose de façon claire l'essentiel de l'architecture logicielle.
En savoir plus

Nos nouveautés

voir plus