Ce cours présente le langage UML qui permet notamment de modéliser des logiciels programmés en orienté objet. Ce cours présente les diagrammes de classes qui permettent de décrire la structure d'un logiciel et les diagrammes d'activité qui permettent de décrire les aspects dynamiques de l'exécution.
Introduction aux diagrammes de classes par des exemples.
Ce cours fait suite à des cours passés qui ont introduit les use cases et diagrammes de séquences.
Les étudiants de l'IUT connaissent lors de l'introduction de ce cours déjà le concept d'objet.
Ce cours présente le langage UML qui permet notamment de modéliser des logiciels programmés en orienté objet. Ce cours présente les diagrammes de classes qui permettent de décrire la structure d'un logiciel et les diagrammes d'activité qui permettent de décrire les aspects dynamiques de l'exécution.
Introduction aux diagrammes de classes par des exemples.
Ce cours fait suite à des cours passés qui ont introduit les use cases et diagrammes de séquences.
Les étudiants de l'IUT connaissent lors de l'introduction de ce cours déjà le concept d'objet.
This document discusses deployment processes and best practices. It defines deployment as the activities that make a software system available for use and involve moving approved releases to test and production environments. The document outlines deployment workflows involving development, staging, and production environments. It also discusses concepts like continuous integration, continuous delivery, continuous deployment, and DevOps practices for automating deployment processes.
- Graph databases like Neo4j use a graph structure with nodes and relationships to represent data. Nodes can represent entities and relationships can represent connections between nodes.
- The example database models movies, people, and their relationships. Movies and people are represented as nodes with labels. Relationships like "ACTED_IN" connect actors to movies they appeared in.
- Cypher is the query language used to interact with Neo4j. Queries can read and modify data, traverse paths in the graph, and use filters to find specific nodes/relationships.
This document provides an overview of using MongoDB with examples of common operations like inserting documents, querying, updating, and indexing. It demonstrates how to:
- Set up and connect to a MongoDB database using Docker
- Insert, find, update, and remove documents from a collection
- Query documents using equality, greater/less than, AND/OR operators
- Sort and limit output with projections
- Create indexes on fields for improved performance
This document provides instructions for using Cassandra with Docker and examples of Cassandra queries for creating and interacting with keyspaces, tables, rows, columns and different data types including sets, lists, and maps. It demonstrates how to create and query tables with a single primary key or composite primary keys, add and modify columns, insert, update, select and delete data. The document concludes with an activity to design and implement an enrollment example using Cassandra.
This document discusses fragments, menus, and contextual modes in Android. It defines fragments as reusable parts of an activity's user interface that have their own lifecycles. The document provides instructions for creating fragments, adding them to activities, and replacing them dynamically. It also discusses using the action bar to define options menus and handling menu item selections. Finally, it covers activating a contextual mode for long presses on an element and defining actions for the contextual menu bar.
This document provides instructions for using Retrofit, an Android library for making REST API calls, to access a weather web service API. It describes how to:
1. Generate POJO classes from the JSON response to map the API data to Java objects.
2. Create an interface to define the API endpoint and methods.
3. Build a Retrofit client and make asynchronous API requests to populate text views with weather data for a given city.
4. Add a parameter to the request method and a spinner to the UI to allow changing the city and updating the weather information dynamically.
This document discusses different storage options in Android applications, including Shared Preferences, internal storage, external storage, and SQLite databases. It provides code examples for storing and retrieving data from Shared Preferences and reading and writing to internal and external files. The exercises guide the reader to create an Android application that uses Shared Preferences to save user preferences, and reads and writes to internal and external files to store application data.
This document discusses different types of adapters and lists in Android. It begins by explaining adapters and the two main types: ArrayAdapter and SimpleCursorAdapter. It then describes an exercise to create a student grades application using a list view, auto-complete text view, and custom list. The last section discusses four methods for implementing a custom list adapter: 1) using a LayoutInflater, 2) recycling views, 3) using a ViewHolder, and 4) using a RecyclerView. The document provides code examples for creating adapters and lists in each case.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".
2. Diagramme de Classes
Le diagramme le plus important de la
modélisation orientée objet : le seul
obligatoire
Décrit la structure interne du système
Fournit une représentation abstraite des
objets du système qui interagissent
ensemble pour réaliser le cas
d’utilisation
Vue statique : pas de facteur temporel
Modélisation des classes du système et
leurs relations
Indépendant du langage de programmation2
3. Classes
Description formelle d’un ensemble d’objets
ayant une sémantique et des caractéristiques
communes
Un objet est une instance de classe
Représentée par un rectangle divisé en 3
compartiments obligatoires et 2 optionnels
Nom de la classe
Attributs
Méthodes
Responsabilités (op) : ensemble des tâches
devant être assurées par la classe mais pour
lesquelles on ne dispose pas d’assez
d’informations
3
4. Caractéristiques d’une
Classe
Visibilité
Public ou + :tout élément qui peut voir la classe
courante peut également voir l’élément indiqué
Protected ou # : seul un élément situé dans la
classe courante ou un de ses descendants peut
voir l’élément indiqué.
Private ou – : seul un élément situé dans la classe
courante peut voir l’élément.
Package ou ~ ou rien : seul un élément déclaré
dans le même paquetage peut voir l’élément.
Nom de la classe
[ <Nom_du_paquetage_1>:: ...
::<Nom_du_paquetage_N> ] <Nom_de_la_classe> [ 4
{
5. Stéréotypes d’une classe
Le stéréotype est le rôle principal
d’une classe
On définit principalement 4
stéréotypes:
Entité
Contrôleur
Interface
Acteur
5
6. Attributs
Données encapsulées dans les objets de
cette classe
Définis par un nom, un type de données, et
une visibilité
A la forme: <visibilité> [/] <nom_attribut> : <type>
['['<multiplicité>']' [{<contrainte>}] ] [ =
<valeur_par_déf.> ]
Exemple : + couleur : int [3] {list}
Attribut de classe
Attribut propre à la classe, pas à l’instance(static
en java)
6
7. Méthodes
Décrit une fonctionnalité de la classe
Doit contenir un nom, un type de retour et
des paramètres
A la forme :
<visibilité> <nom_méthode> ([<paramètre_1>, ...
, <paramètre_N>]) : [<type_renvoyé>]
[{<propriétés>}]
Un paramètre a la forme :
[<direction>] <nom_paramètre>:<type>
['['<multiplicité>']'] [=<valeur_par_défaut>]
Exemple
7
8. Méthodes abstraites
Ne possède pas d’implémentation
Doit être surchargée
Si on appelle une méthode abstraite qui
n’est pas surchargée, on déclenche une
erreur
Utilisée si on désire bâtir un squelette
d’objet qui a plusieurs descendants devant
tous avoir un comportement analogue
Exemple
Dans la classe mère : void print( String
message ); //sans implémentation
Pour les descendants : void print( String
8
9. Interfaces
Type particulier de classes
Classe où toutes les méthodes sont
abstraites
Stéréotype « interface »
Permet de regrouper un ensemble de
propriétés et d’opérations assurant un
service cohérent
Doit être réalisée (implémentée) par au
moins une classe et peut l’être par
plusieurs
Stéréotype « realize»
Une classe peut dépendre d’une
9
10. Relation d’Association
Relation entre deux classes ou plus décrivant
les connexions structurelles entre leurs
instances
Relie des classes au même niveau hiérarchique
4 décorations permettent de spécifier le lien
entre objets :
Nom : nature des relations entre les objets
Direction : direction d’application du nom
Rôle : rôle spécifique de chacune des
classes dans l’association
Cardinalité : nombre d’éléments affectés
Exemple
10
11. Relations d’Agrégation et
de Composition
Agrégation
Définit une relation hiérarchique entre les entités
Définit la relation : « se compose de » et
modélise la notion de « possession » ou de «
tout et partie »
Composition
Définit une contenance structurelle entre les
instances
La destruction de l’objet composite implique la
destruction de ses composants
Une instance du composant appartient au plus à
une instance du composite
11
Agrégation
Composition
12. Relation de Dépendance
La dépendance établit une relation d’utilisation
entre 2 entités d’un même diagramme.
La plupart du temps il s’agit d’une dépendance
d’utilisation :
Argument d’une méthode par exemple
On parle alors de “relation d’utilisation”
Cela permet d’identifier implications possibles
des modifications à apporter dans une entité
Changement du comportement d’une des
classes par exemple
Dépendance
12
13. Relation de
Généralisation
Modélise la relation d’héritage
La généralisation correspond à la notion “est une
sorte de”
Modélisation des relations parents / enfants
Les entités issues d’une généralisation sont
utilisables partout ou leur classe mère peut
l'être (mais pas l’inverse)
Généralisation (classe, classe) ou
(classe, interface)
Cette relation est modélisée par une flèche
pointant sur la classe mère
13
14. Classe-Association
Une association peut avoir des
propriétés, qui ne sont disponibles
dans aucune des classes qu’elle
lie
On définit alors une classe- Entreprise
Personne
employé
employeur
association
Poste
salaire: float
14
15. Association n-aire
Association qui lie plus que 2
classes
Peu utilisée
Gestion des multiplicités délicate
Etudiant
Enseignant
Module
15
16. Les Notes (Commentaires)
Lors des phases de modélisation
et de spécification, il est
nécessaire de documenter ses
modèles :
Contraintes matérielles
Contraintes de performance
Choix techniques réalisés
Références à d’autres docs
Explications techniques, etc.
16
18. Activité 1
Hôtel
Un hôtel
d’au moins deux
chambres. Chaque chambre dispose d’une
salle d’eau qui peut être une douche ou une
salle de bain. L’hôtel héberge
par un des employés. L’hôtel a les
caractéristiques sui- vantes : une adresse, le
nombre de pièces, la catégorie. Une chambre
est caractérisée par le nombre et le type de
lits, le prix et le numéro. On peut calculer le
chiffre d’affaires, le loyer en fonction des
18
occupants.
19. Diagramme d’Objets
Représente des objets (i.e. instances de
classes) et leurs liens (i.e. instances de
relations) pour donner une vue figée de l’état
d’un système à un instant donné
Peut être utilisé pour
illustrer le modèle de classes en montrant un
exemple qui explique le modèle
préciser certains aspects du système en mettant
en évidence des détails imperceptibles dans le
diagramme de classes
exprimer une exception en modélisant des cas
particuliers ou des connaissances non
généralisables qui ne sont pas modélisés dans 20
un
20. Graphiquement
Un objet est représenté comme une
classe, mais le compartiment des méthodes
n’est pas indiqué
Le nom de l’objet est composé du nom de
l’instance, suivi de celui de la classe, et est
souligné
Les attributs reçoivent des valeurs
Si certaines valeurs ne sont pas
renseignées, l’objet est partiellement défini
La relation de généralisation n’est jamais
représentée
21
22. Activité 2:
Bibliothèque
me guerre mondiale », « Les
Aventures de Robin Hood », et deux
exemplaires de « Harry Potter».
me guerre mondiale » et un
exemplaire de « Harry Potter ».
Représenter le diagramme de classes
23