Académique Documents
Professionnel Documents
Culture Documents
SEMINAIRE INFORMATIQUE
A l’usage des étudiants de Deuxième année de Licence en
Conception de systèmes d’informations
Janvier 2024
2
De nos jours, l’informatique occupe une place de choix car elle a un double
aspect : scientifique et technique. Une manière, parmi d’autres, de s’interroger
sur la nature d’une science ou d’une technique est de s’interroger sur les objets
que cette science étudie ou que cette technique fabrique.
3.2.2. Concepts
3.2.2.1. Concepts fondamentaux
a) Information
b) Machine
c'est une place trop importante pour certains, comme Edsger Dijkstra ;
c'est une source de dévalorisation, pour d'autres car cela tend à réduire
l'informatique à une technologie.
A partir de ces deux concepts fondamentaux ont été élaborés d'autres concepts
que nous dirons opérationnels tels que :
structure de données ;
algorithme ;
programme ;
objet.
3.2.2.2.1. De l’algorithme
Bien souvent, effectivement, l'informatique est ainsi réduite à l'algorithmique,
science des processus systématiques de résolution, par le calcul, d'un
problème. Une science associée au verbe faire. Les termes traitement, calcul,
automatisme, processus, ... sont parfois aussi employés.
technologies de son siècle dans les deux sens, comme utilisatrice des résultats
de ces autres sciences et technologie mais aussi comme étant fournisseur de
moyens d'obtenir de nouveaux résultats dans ces autres disciplines, des
progrès lui aussi demandé par les autres sciences et technologies (ainsi la
cryptographie et la pré-informatique ont progressé ensemble pendant les
années de la seconde guerre mondiale avec la machine Enigma et le
calculateur Colossus).
L'informatique est investie par les autres sciences et technologie, c'est un lieu
commun, l'informatique est partout, elle bénéficie des avancées des autres et
fait bénéficier les autres de ses propres avancées.
Il semble qu'il y ait un avis assez général parmi les informaticiens pour dire
qu'un résultat n'est pas encore tout à fait validé tant qu'il n'y a pas eu de
validation pratique. Une grande confiance est placée dans la confrontation au
réel.
1.1. Historique
1.2. Fondements
1.3.1. Caractéristiques
Scrum est un schéma d’organisation de développement de produits
complexes. Il est défini par ses créateurs comme un « cadre de travail
holistique itératif qui se concentre sur les buts communs en livrant de
manière productive et créative des produits de la plus grande valeur possible
». Le framework s'appuie sur le découpage d'un projet en boîtes de temps,
nommées « sprints ». Les sprints peuvent durer entre quelques heures et un
mois (avec une préférence pour deux semaines). Chaque sprint commence
par une estimation suivie d'une planification opérationnelle. Le sprint se
termine par une démonstration de ce qui a été achevé. Avant de démarrer un
nouveau sprint, l'équipe réalise une rétrospective. Cette technique analyse le
déroulement du sprint achevé, afin d'améliorer ses pratiques. Le flot de
travail de l'équipe de développement est facilité par son auto-organisation, il
n'y aura donc pas de gestionnaire de projet. La création de framework de
développement logiciel hybride couplant Scrum et d'autres frameworks est
commune puisque Scrum ne couvre pas le cycle de développement de
produit.
1. Transparence :
Scrum met l'accent sur le fait d'avoir un langage commun entre l'équipe et le
management. Ce langage commun doit permettre à tout observateur d'obtenir
rapidement une bonne compréhension du projet.
2. Inspection :
3. Adaptation :
Si une dérive est constatée pendant l'inspection, le processus doit alors être
adapté. Scrum fournit des rituels, durant lesquels cette adaptation est possible.
Il s'agit de la réunion de planification de sprint, de la mêlée quotidienne, de la
revue de sprint ainsi que de la rétrospective de sprint.
1.3.3. Rôles
3. Équipe de développement :
L'équipe de développement est constituée de 3 à 9 personnes et a pour
responsabilité de livrer à chaque fin d'itération une nouvelle version de
l'application enrichie de nouvelles fonctionnalités et respectant le niveau de
qualité nécessaire pour être livrée.
L'équipe ne comporte pas de rôles prédéfinis ; elle est « structurée et habilitée
par l'entreprise à organiser et gérer son propre travail ».
Elle est auto-organisée et choisit la façon d'accomplir son travail, sans que ce
soit imposé par une personne externe. Il n'y a pas non plus de notion de
hiérarchie interne : toutes les décisions sont prises ensemble. Ce mode
d'organisation a pour objectif d'augmenter l'efficacité de travail de l'équipe.
Elle est pluridisciplinaire et comporte toutes les compétences pour réaliser son
projet, sans faire appel à des personnes externes à celle-ci. L'objectif de
l'équipe est de livrer le produit par petits incréments. Ainsi, à tout instant, il
existe une version du produit « potentiellement utilisable » disponible.
L'équipe s'adresse directement au propriétaire du produit, et ne prend ses
instructions que de lui. Son activité est issue du carnet de produit uniquement.
Elle ne peut pas être multiproduits.
16
1.3.4. Evènements
1.4.1. Origine
Son but principal est de réduire les coûts du changement. Dans les méthodes
traditionnelles, les besoins sont définis et souvent fixés au départ du projet
informatique ce qui accroît les coûts ultérieurs de modifications. XP s'attache
à rendre le projet plus flexible et ouvert au changement en introduisant des
valeurs de base, des principes et des pratiques. Les principes de cette
méthode ne sont pas nouveaux : ils existent dans l'industrie du logiciel depuis
des dizaines d'années et dans les méthodes de management depuis encore
plus longtemps. L'originalité de la méthode est de les pousser à l'extrême
puisque :
- la revue de code est une bonne pratique, elle sera faite en permanence (par
un binôme)
- les tests sont utiles, ils seront faits systématiquement avant chaque mise en
œuvre
1.4.6.Valeurs
L'extreme programming repose sur cinq valeurs fondamentales :
5. Respect :
1.4.7. Pratiques
Le machine learning (ML) est une forme d’intelligence artificielle (IA) qui est
axée sur la création de systèmes qui apprennent, ou améliorent leurs
performances, en fonction des données qu’ils traitent.
TYPE D’APPRENTISSAGE
Apprentissage supervisé
L'apprentissage supervisé est sûrement le plus courant. Il est utilisé pour des
tâches d'estimation, de prévision, de régression ou de classification.
Dans l'apprentissage supervisé, un ensemble d'exemples est fourni à
l'algorithme d'apprentissage. Celui-ci va comparer la sortie obtenue par le
réseau avec la sortie attendue.
Les poids sont ensuite modifiés pour minimiser cette erreur, jusqu'à ce que les
résultats soient satisfaisants pour tous les exemples fournis.
Cette approche est utilisée à chaque fois que les exemples sont présentés au
réseau de neurones les uns à la suite des autres, sans liens entre eux.
26
C'est le cas en estimation où une valeur doit être calculée en fonction d'autres
fournies : la consommation d'une maison en fonction de ses caractéristiques,
la lettre dessinée en fonction des pixels noirs et blancs, la modification d'une
valeur en bourse en fonction de son historique des dernières heures ou
derniers jours, etc.
27
4.1. Notions
Le système informatique, présente des failles susceptibles d'être
exploitées par les tierces personnes de façon illicite, c'est pourquoi il est
important de maitriser rigoureusement et méthodiquement la sécurité de
systèmes d'informations et de réseau des télécommunications.
3. Intégrité : les données doivent être celles que l'on attend, et ne doivent
pas être altérées de façon fortuite, illicite ou malveillante. En clair, les
éléments considérés doivent être exacts et complets. Cet objectif utilise
généralement des méthodes de calcul de checksum ou de hachage.
4. Disponibilité : l'accès aux ressources du système d'information doit être
permanent et sans faille durant les plages d'utilisation prévues. Les
services et ressources sont accessibles rapidement et régulièrement.
D'autres aspects peuvent aussi être considérés comme des objectifs de la
sécurité des systèmes d'information, tels que :
- La maladresse ;
- L’inconscience ou l’ignorance ;
- La malveillance ;
- L’espionnage ;
- Etc.
29
Ils sont liés aux défauts ou aux pannes inévitables que connaissent tous les
systèmes matériels et logiciels. Ces incidents sont plus moins fréquents selon
le soin apporté lors de fabrication et l’application de procédures de test
effectuées avant que les ordinateurs et les programmes ne soit mise en service.
A cet effet, il y a :
Le but d'une telle attaque n'est pas de dérober des informations sur
une machine distante, mais de paralyser un service ou un réseau complet. Les
utilisateurs ne peuvent plus alors accéder aux ressources. Les deux exemples
principaux, sont le « ping flood » ou l’envoi massif de courrier électroniques
pour saturer une boîte aux lettre (mailbombing). La meilleure parade est le
firewall ou la répartition des serveurs sur un réseau sécurisé.
4.4.4. Intrusion
L'intrusion dans un système informatique a généralement pour but
la réalisation d’une menace et est donc une attaque. Les conséquences
peuvent être catastrophiques : vol, fraude, incident diplomatique, chantage…
Le principal moyen pour prévenir les intrusions est le coupe-feu
("firewall"). Il est efficace contre les fréquentes attaques de pirates amateurs,
mais d’une efficacité toute relative contre des pirates expérimentés et bien
informés. Une politique de gestion efficace des accès, des mots de passe et
l’étude des fichiers « log » (traces) est complémentaire.
Une fois invoqué, un service web est en mesure de fournir ses fonctionnalités
au client qui l’invoque. Le client invoque une série d’appels de service web
par le biais de requêtes envoyées au serveur qui héberge le service. Ces
requêtes sont effectuées par le biais d’appels de procédure distante (Remote
Procedure Calls).
Par exemple, Amazon propose un service web fournissant les prix pour des
produits vendus en ligne via Amazon.com. Le front end ou la couche de
présentation peuvent être en .Net ou en Java, mais ces deux langages de
programmation auront la capacité de communiquer avec le service web.
Le principal composant d’un service web sont les données transférées entre le
client et le serveur. Ces données sont en XML (Extensible Markup Language).
Le XML est la contrepartie du HTML. Pour faire simple, on peut le décrire
comme un langage intermédiaire compris par la plupart des langages de
programmation. Ainsi, les applications communiquent entre elles en XML.
33
Pour envoyer les données XML entre les applications, les services web
utilisent le SOAP (Simple Object Access Protocol). Les données envoyées du
service web vers l’application sont appelées des messages SOAP. Il s’agit tout
simplement d’un document au format XML.
Avantages
Par ailleurs, les services web permettent une interopérabilité entre les
applications. Ils permettent en effet à diverses applications de communiquer
entre elles, et de partager des données et des services. Ainsi, plutôt que d’avoir
à écrire un code spécifique pouvant être compris uniquement par des
applications spécifiques, il est possible d’écrire un code générique pouvant être
compris par toutes les applications.
Un autre avantage des services web est qu’ils utilisent un protocole industriel
standardisé pour la communication. Les quatre couches (Service Transport,
XML Messaging, Service Description et Service Discovery) utilisent des
protocoles bien définis.