Powerpoint

publicité
CSI1502
Introduction au génie logiciel
Chapitre 1:
Introduction aux systèmes
informatiques
Objectifs du cours:





Comprendre les enjeux de la modélisation de
problèmes.
Voir en quoi les capacités de modélisation
sont cruciales.
Décrire les différents niveaux de
conceptualisation lors de la programmation.
Comprendre un premier programme Java et
ses structures élémentaires.
Sources: Les sections 1.3 à 1.5 du livre de
cours.
Rappel: Prérequis supposés
connus.
Concepts informatiques de base.

Les composants matériels de l’ordinateur:
 CPU, I/O, mémoire principale / secondaire.

Ordinateurs numériques et nombres binaires.

Reseaux:
 Connexions réseaux.
 LAN, WAN
 Internet
 Le Web
Si le besoin se fait sentir, veuillez lire les sections 1.0 à 1.2 du livre
de cours.

Modéliser un problème avec un
langage de programmation.




Supposer que nous ayons un problème à
résoudre.
Nous décidons de concevoir et implémenter
un programme informatique pour le résoudre.
 Nous nous appuyons sur un langage
informatique pour réaliser le programme.
Rappelez-vous votre cours GNG1101….
Modéliser un problème avec un
langage de programmation.



Un language de programmation spécifie
les mots et symboles disponibles pour écrire
un programme.
Un language de programmation utilise un
ensemble de règles définissant l’élaboration
d’instructions de programmation valides
à partir des symboles et mots disponibles.
Exemples de languages de programmation:

Fortran, Cobol, C++, C, Delphi, Pascal, Smalltalk,
JAVA.
Que’est-ce que la modélisation
de problème?


Dans notre cas il s’agit d’écrire un programmation
résolvant le problème.
Les étapes principales en sont les suivantes:
 Comprendre le problème.
 Décomposer le problème en sous problèmes plus
simples.
 Elaborer une solution.
 Considérer des solutions alternatives et les affiner.
 Implémenter la solution retenue.
 Tester la solution et en résoudre les problèmes
(bogues).
Approche: « Diviser pour
régner »
Plusieurs projets logiciels échouent par
manque de compréhension du problème.
 Eviter les suppositions et expliciter les
ambiguïtés !
 Quand les problèmes deviennent compliquer,
il faut s’efforcer de les décomposer en sousproblèmes plus simples: « Diviser pour
régner ».
 Techniques fondamentale en génie logiciel.

Différents niveaux de
conceptualisation / programmation

Il y a 4 niveaux de programmation:






Langage
Langage
Langage
Langage
machine.
assembleur.
de haut niveau.
de 4ème génération.
Chaque type de CPU a son propre langage
machine.
Les langages supérieurs ont été créés afin de
faciliter l’écriture et la lecture de
programmes.
Une modélisation
orientée-objet


On organise notre solution en entités
appelées classes et objets. Ceci est
en soi une appoche « orientée-objet ».
« Si vous désirez manger un éléphant,
prenez une bouchée à la fois ! »
Développement ordinaire d’un
programme:
Ecriture, sauvegarde
du programme
erreurs
Compilation
erreurs
Exécution et évaluation des résultats
Résolution de problème à
l’aide de Java



Le langage Java a été créé par Sun
Microsystems, Inc.
Il a été présenté en 1995 et sa
popularité a grandi depuis.
C’est un langage orienté-objet.
Structure d’un programme
Java

En Java:






Un programme se compose d’une ou plusieurs
classes.
Une classe contient une ou plusieurs méthodes.
Une méthode contient une ou plusieurs
instructions.
Ces termes seront présentés tout au long du
cours.
Un programme Java contient toujours une
méthode main.
Voir Lincoln.java (page 30)
Structure d’un programme
Java
// Commentaires sur la classe.
public class MyProgram
{
// nom de la classe
// Corps de la classe entre accolades.
// Les commentaires peuvent être placés entre accolades.
}
Structure d’un programme
Java
// Commentaires sur la classe.
public class MyProgram
{
public static void main(String [] argv) // déclaration de la méthode
{
// Corps de la méthode entre accolades.
}
}
Un example simple en Java:
// Exemple de programme Java:
public class Hello {
//--------------------// Tâche: imprimer « Hello World »
//
public static void main(String []argv) {
System.out.println(“Hello World”);
}
}
Langages de programmation:

Composants de base:






Commentaires
Noms
(mots-clé)
Symboles ( i.e <,>,=, etc…)
Syntaxe et règles sémantiques
Erreurs
Qu’est-ce qu’un commentaire?




Les commentaires d’un programme peuvent être considérés
comme documentation en ligne.
Ils ont pour but d’expliquer le but d’une portion de code.
Ils n’ont pas d’effet sur le programme.
Il peuvent être déclarer sous 3 formes:

// Ceci est un commentaire sur une ligne.
 /* Ceci
est commentaire sur plusieurs lignes.
*/
 /** Ceci est un commentaire pour la documentation Java */
L’importance des
commentaires


Expliquent: QUI, QUOI, COMMENT, PAR QUI.
Très utiles pour la réutilisation du code:



Pour comprendre un code une année plus tard…
Pour améliorer la productivité du programmeur.
Il faut les écrire au fûr et à mesure du
dévelopement !
Que sont les noms?



Les noms sont les mots utilisés par le
programmeur.
Parfois ils sont choisis par le
programmeur (exemple: Lincoln).
D’autres fois nous réutilisons un code et
utilisons donc des noms définis par
d’autres programmeurs (println).
Les noms en Java




Un nom peut être composé de lettres, chiffres, des caractères ‘_’
et ‘$’.
Les noms ne peuvent commencer par un chiffre.
Java est sensible à la casse: Total, total, et TOTAL sont
considérés comme différents.
Par convention, les programmeurs utilisent:
 Des noms commençant avec une majuscule pour les noms
de classe - Total
 Des noms commençant avec une minuscule pour les objets totalDesStocks
 Des noms tout en majuscules pour les constantes - TOTAL.
Que sont les mots-clé ?


Certains noms ont une signification
propre dans le langage de
programmation. Ce sont des mots-clé.
En aucun cas leur signification ne peut
être changée.

i.e if (temp < 30) then
Mots-clé de Java:
abstract boolean
break
byte case
catch
char class const continue
default
do
double
else extends
final
finally float for
future generic
goto if
implements import inner instanceof
int
interface
long native new null
operator
outer
package
private
protected
public rest return short
static
super switch synchronized this
throw throws
transient
try
var
void volatile
while
Syntaxe et règle sémantiques

Les règles de syntaxe d’un langage
définissent la manière dont sont
assemblés les mots.


i.e if (height > tallest) then
{ tallest = height;}
Les règles de sémantique d’un langage
définissent le sens des mots, leur rôle.

Le bout de code précédent déterminait la
personne la plus grande.
Syntaxe et sémantique



Un programme syntaxiquement correct n’est
pas forcément sémantiquement /
logiquement correct.
Un programme n’effectue que ce que nous lui
disons de faire et non pas ce que nous
souhaiterions qu’il fasse !!!
Une erreur classique: inégalités incorrectes.

i.e (height > tallest) au lieu de (height >= tallest)
Que sont les espaces ?





Les caractères espace ‘ ’, lignes sautées, tabulations sont
dénommés espaces.
Ils sont utilisés pour séparer les mots du programme.
Les caractères espace ‘ ’ supplémentaires sont ignorés.
Un programme Java peut être mis en forme de différentes
manières.
Les programmes DOIVENT être MIS EN FORME
(indentation) pour améliorer la lisibilité !!!
 Voir Lincoln2.java page 37.
 Voir Lincoln3.java page 38.
Un programme illisible…
public class d42_SVVEZ{public static void main(String
[]abvfue){ System.out.println(“ Hello World”);}}
Interprétation du langage de
programmation





Un programme doit être traduit en langage
machine pour pouvoir être exécuté par un
CPU.
Ceci peut se faire de plusieurs manières.
Un compilateur est un outil portant un
langage de programmation en un langage
cible.
Souvent les langages cibles sont des langages
machine propres à certains CPU…
Java fonctionne différemment.
L’interprétation en Java
Code source Java
Bytecode Java
Compilateur Java
Interpréteur Java
Compilateur de bytecode
Code machine
L’interpretation Java





Le compilateur Java traduit le code source en
un type de données appelé bytecode.
Le bytecode ne peut être utilisé par les CPU
ordinaires.
Un outil logiciel nommé interpréteur traduit le
bytecode en langage machine et l’exécute.
Ainsi le compilateur java est indépendant de
toute machine.
Java est donc considéré architecturalement
neutre.
A propos des erreurs

Un programme peut avoir 3 types d’erreurs:



Erreurs de compilation: erreurs de syntaxe,
primaires détectées par le compilateur. S’il y en a,
aucune version exécutable n’est produite.
Erreurs d’exécution: Le problème de peut être
détecté qu’à l’exécution (division par zéro,etc…) 
interruption anormale du programme.
Erreurs logiques: le programme tourne mais
produit des résultats erronés.
Ecrire un programme:
environnements de developpement
Sun Java Development Kit (JDK)
 Sun Forte for Java
 Borland Jbuilder
 MetroWerks CodeWarrior
 Microsoft Visual J++
 Symantec Café
 Monash BlueJ
 jGrasp (utilisé sur le CD du livre de cours)
 realJ (www.realJ.com)  Used in Lab B02
Ces différents environnements de programmation sont différents
mais leurs fonctionnements sont similaires.


Résumé


Ce chapitre était centré autour de la
programmation et des langages utilisés pour.
Ce que vous devez savoir:




Savoir ce qu’implique la résolution d’un problème.
Connaître l’importance des techniques de
résolution.
Décrire les différents niveaux de programmation.
Comprendre un programme Java et sa structure
primaire.
Téléchargement