Capgemini Institut 0144742410
24 rue du Gouverneur général Eboué 92136 Issy les Moulineaux
Développement et Architectures d’Applications Paris
Développement et Architectures d’Applications Paris
DURéE
3 jours
DATES
20-22 novembre 2017
18-20 juin 2018
LIEU
Paris
PRIX
2 615 € ht (3 138 € ttc)
Sommaire du séminaire
    Séminaires technique Institut Capgemini

    Développement et Architectures
    d’Applications

    >  De l’objet aux frameworks, Java xE.NET, les langages, les architectures urbanisées, mobilité, sécurité, parallélisation, etc.




    Ce séminaire aborde les aspects techniques auxquels sont confrontés aujourd’hui chefs de projet et développeurs : l’adaptation à de nouveaux environnements et langages, le changement de repères, le recours aux frameworks. Il fait le point sur l’évolution des serveurs d’applications en tant que fournisseurs de services et sur les changements d’architectures centrales et clients.

    En trois journées denses et concrètes, tout ce que doivent savoir les DSI, chefs de projet et développeurs : une synthèse des outils, méthodes, langages, middlewares et environnements de développement.

    • Les évolutions clés du développement d’applications : abstraction de la conception, modélisation, urbanisme des solutions.
    • Les nouvelles architectures fondées sur la réutilisation et la distribution des composants.
    • Les conteneurs d’applications, nouvelles boîtes à outils des développeurs et les frameworks de référence.
    • Le rôle central de XML, l’architecture SOA, les MSA et confirmation des Web Services.
    • Le panorama des solutions du marché, avantages et inconvénients, exemples concrets de mise en œuvre.
    • Les paradigmes nouveaux du développement : Cloud, langages scripts et dynamiques, forges collaboratives.
    • Les plates-formes de développement.
    • Les problématiques nouvelles : «parallélisation», mobiles, sécurité, économie d’énergie.
    • La mutation du métier de développeur.


    Évolution des fondements : plates-formes, méthodologies, XML


    Changements de repères

    • De l’impératif à l’objet, du spécifique au standard, du jetable au réutilisable.
    • Du modèle propriétaire synchrone : Cobol/ CICS/ DB2, Cobol/TDS/IDSII aux conteneurs d’applications et à la désynchronisation des applications.
    • Distribution et urbanisation des applications : SOA et services Web, MSA.

    Le back-office et les projets de migration lourde

    • La réalité du marché : vraies questions et fausses idées.
    • Les applications de back-office, le rôle des développeurs traditionnels et des langages impératifs.
    • Les problèmes concrets de cartographie et de recours aux compétences spécialisées.
    • La réalité de Cobol et le portage de ses applications.
    • La réutilisation des transactions via les passerelles dédiées.
    • La résurgence des L4G qui se sont adaptés.

    Le nouveau périmètre méthodologique

    • Les trois niveaux de la modélisation : données, processus et orchestration.
    • Méthodologies, langages de modélisation et modeleurs graphiques.
    • UML, BPMN.
    • Les plates-formes de modélisation.
    • Les modèles de données et la forte présence de Merise.

    L’évolution de la gestion de projet

    • Le mouvement des méthodes agiles : du prédictif à l’adaptable.
    • Les méthodes et bonnes pratiques les plus courantes : Lean Software Management, eXtreme Programming et Scrum.
    • La conduite des projets par les tests.
    • Qualité et mesure de la complexité du code.
    • Exemples concrets.

    De l’objet aux composants


    Les principes de base

    • La réutilisation des composants.
    • Les principes fondamentaux de l’objet : classes, packages et espaces de noms, héritage, interface et polymorphisme, encapsulage, surcharge de méthodes, transtypage, gestion des exceptions, agrégation, composition.
    • Les bonnes pratiques de l’objet : la gestion par références.

    La distribution des composants

    • La nécessité d’un middleware de communication.
    • Les référentiels de composants.
    • Les problématiques d’authentification et de sécurité liées à la distribution des composants : vers une véritable gestion des identités.

    Les frameworks techniques et frameworks d’architecture


    L’importance des frameworks

    • Les langages objet indissociables de leur environnement.
    • Liberté d’écriture ou modèle contraint.
    • Un choix Java xE vs.NET qui se pose rarement.

    Les frameworks Java xE

    • Les frameworks fondamentaux : Java SE, Java EE, Java ME.
    • Le modèle EJB vers plus de simplicité.
    • Les apports de Java EE 6 et 7, Java SE 7 et SE 8.
    • L’ouverture de la JVM (JSR 223).
    • Le futur Java EE 8.
    • Le modèle Pojo et le conteneur léger (Spring).
    • Les concepts avancés : IoC, Injection de dépendances, Programmation par aspects.
    • Comparaison de Java EE et Spring. : le plus simple ? le moins contraignant ?
    • Un nouveau venu : TomEE.

    .NET de Microsoft

    • Le modèle fonctionnel : diversité des langages, compilation Just In Time, Assembly.
    • Les langages compatibles et leur modèle de référence CLI.
    • L’espace d’exécution CLR (Common Language Runtime).
    • Les espaces de noms de.NET.
    • .NET 4.X : distinction entre l’OS et le serveur d’applications.
    • La poussée de.NET vers l’Open Source :.NET Core 1.0.

    Les frameworks d’architecture

    • Le recours aux motifs de conception (design patterns).
    • Le motif MVC (SmallTalk) et ses déclinaisons JSF, RoR et Struts.
    • Le motif Hibernate pour le mapping et la persistance.
    • Linq, le requêtage universel de Microsoft.
    • Les frameworks d’intégration (ESB).

    Les serveurs d’applications

    • Le rôle d’un serveur d’applications.
    • La distinction entre container servlet/JSP et container d’EJB.
    • La concentration des serveurs d’applications Java : WildFly (RedHat), WebSphere, Oracle WebLogic, TomEE, Microsoft Windows.

    Les langages modernes : Java, C#, VB.NET, etc.


    Java et la maturité

    • Des concepts nouveaux : inférence de type, « duck typing », etc.
    • Les avancées depuis Java 5 : annotations, assertions, etc.
    • Les JDK 8 et 9 et les projets associés.
    • Un rapprochement architectural de plus en plus net avec C#.
    • La synthèse recherchée par Google.

    Les principaux langages de la galaxie.NET

    • C#.
    • Visual C++.
    • ASP.NET.
    • Visual Basic.NET.

    Les langages script et dynamiques

    • Typage statique et dynamique.
    • La montée en puissance de Javascript : serveurs et clients.
    • Les frameworks Javascript : jQuery, Node.js, Angular.js, etc.
    • Les « compilateurs » Javacript : Coffeescript, Typescript (le transpiling).
    • ASM.js et Web Assembly.
    • PHP et Ruby, des solutions crédibles et les frameworks associés.
    • Dart, un successeur pour Javascript ?
    • Les autres langages : Groovy, Python, R, etc.
    • Le langage Go de Google.
    • Les langages fonctionnels..

    Les architectures éclatées SOA et Web Services


    Vers un modèle générique d’applications composites à composants métiers distribués : les SOA

    • Principes de l’architecture SOA.
    • Services orchestrés ou chorégraphiés : le piège.
    • Les briques de conception d’une architecture SOA.
    • Les écueils de la granularité et de la généricité.
    • Les SOA et les mainframes.
    • Les bonnes pratiques des SOA.
    • MSA : l’urbanisme poussé aux limites et ses liens avec les containers.

    La distribution des applications : les services Web

    • Organisation et mise en œuvre d’une architecture de services Web distribués.
    • Les standards SOAP, WSDL et UDDI, fondés sur XML, REST et Atom fondés sur HTTP.
    • L’authentification des services Web.

    Les architectures « clientes », langages script et dynamiques


    Les nouveaux modèles d’architectures

    • Éclatement du modèle 3-tiers en n-tiers.
    • Nouvelles architectures applicatives en 2017.
    • Allégement du poste client : vers un client léger HTML.

    Les clients riches

    • Principe du client riche.
    • Du pur XML au client riche : Java FX ou Google Native.
    • Dans quels contextes le client riche a-t-il encore une chance ?

    Les applications en mode Web

    • L’arrivée de HTML 5 et la remise en cause des clients riches.
    • Mise en page côté client : JavaScript et programmation Ajax.
    • L’urbanisme des « Web Components ».

    Les plates-formes de développement


    Le problème des forges modernes : AGL (Atelier de Génie Logiciel)

    • Les constituants d’un AGL moderne.
    • Les nouvelles usines à logiciels : Jazz (IBM Rational), Team System (Microsoft).
    • Les concepts d’accompagnement au développement : refactoring, gestion des sources et exécutables, profiling, documentation automatique, analyse de la qualité, génération du code, sécurisation du code.
    • La collaboration dans le développement : l’apport de l’Open Source, les forges.

    Les communautés de développement

    • L’essor d’Eclipse et de son « business model ».
    • Un monde de plug-ins pour Eclipse.
    • VS en Open Source, Visual Studio 2017.
    • Avantages et inconvénients, conditions de mise en œuvre.
    • Les IDE dédiés : JavaScript, Python, Ruby, JavaScript.

    Le développement dans le Cloud

    • Principe de développement dans le Cloud.
    • Les solutions concrètes : Azure de Microsoft, Google App Engine, Cloud Foundry VMWare, Heroku, etc.
    • Avantages et inconvénients.
    • Les limitations actuelles : manque de diversité des langages et de bases de données.

    Les bases de données revisitées

    • L’émergence des bases NoSQL : colonnes, clés-valeurs, documents, hiérarchiques.
    • Les grosses bases de données, Oracle et IBM, orientées performances.
    • Les mouvements autour de MySQL : les offres « concurrentes » Drizzle et Maria DB.
    • Vers une écriture « élégante » de l’accès aux données, sans SQL.
    • Les bases de données distribuées et l’incontournable modèle Hadoop.
    • La gestion de fichiers HDFS et ses implications dans le Big Data.

    Les spécificités du développement


    Open Source

    Le cadre général

    • Les modes de fonctionnement.
    • La problématique des licences.
    • Les précautions à prendre.

    Les aspects concrets d’un développement Open Source

    • L’intégration (parfois difficile) dans un projet Open Source existant : les règles à respecter.
    • La réutilisation contrôlée de composants soumis à licence.
    • Le fonctionnement au quotidien d’un projet Open Source.

    Les problématiques applicatives nouvelles


    Les applications pour terminaux mobiles

    • Les contraintes : taille des scripts, particularismes de l’affichage, consommation de la batterie.
    • Les plates-formes mobiles : Android (Google), Apple iOS, Microsoft Windows 10.
    • Les 4 formes de développement mobile : native, HTML5, hybride, cross-platform.

    L’écriture du code sécurisé

    • Anatomie d’une faille et exemples.
    • Les règles fondamentales de sécurisation du code.

    La parallèlisation des applications

    • Faire coïncider les avantages des architectures multi cœurs et multiprocesseurs avec les programmes.
    • Les principes délicats de conception d’une application parallélisée.
    • API spécialisées et outils d’aide à la parallèlisation.

    Les nouveaux challenges

    • Programmation des interfaces tactiles.
    • Le « Responsive Design » pour les terminaux mobiles.
    • Le « Material Design » et le « Flat Design »
    • La programmation statistique avec le langage R.

    L’évolution des métiers du développement


    Un monde en profonde mutation

    • La migration vers les compétences « nouvelles » (frameworks, objet, etc.).
    • Le problème de la formation aux concepts objet, en préliminaire à celle des langages.
    • L’importance cruciale de la modélisation : une manière difficile mais prometteuse d’aborder la conception des applications.
    • Comment les DSI voient-ils leurs besoins à court et moyen terme ?
    • Les pièges à éviter.

    L’évolution prévisible des métiers

    • Chef de projet applicatif.
    • Architecte de développement
    • Les développeurs dans le monde agile.