Modélisation UML

Discutez d'informatique ici !
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

Modélisation UML

par Rockleader » 26 Déc 2014, 18:11

Bonsoir,

j'ai un projet à faire pendant ces vacances en POO.

J'ai commencé à y jeter un œil; on m'a fourni un code source, et le diagramme de modélisation UML qui représente ce code source.


Sauf que, jusqu'à aujourd'hui les profs ont toujours fait comme si on connaissait la modélisation UML; et je n'ai eu des explications que très sommaires là dessus en fouinant un peu sur le net.

J'ai bien compris le concept, mais la syntaxe demeure un peu mystérieuse pour moi.

Je cherche du coup un endroit qui résumerait tout ça...par exemple que le + devant une méthode indique qu'elle est public etc etc ... manière d'avoir une bonne fois pour toutes le socle de connaissances nécessaires là dessus.


L'autre solution serait de parcourir d’emblée la totalité du code, mais ça me semble être la mauvaise méthode, si on nous fournit un diagramme de classe UML; c'est pour s'en servir.













Une autre petite question sans vraiment de rapport...j'ai un stage à faire dans le cadre de ma L3 à la mi avril, et ça commence à m’affoler un peu de ne rien avoir trouvé lol
Pourtant ce n'est pas faute de me renseigner et de chercher; mais tous ce que je vois, ce sont des entreprises qui cherchent des stages de fin d'études et qui ne sont guère intéressées par de pauvres étudiants de licence qui ne connaissent presque rien...

Du coup, selon votre expérience, dans quel secteur de l'informatique je serais susceptible d'avoir plus de chance de dénicher un stage de niveau licence ?

A notre niveau, si je devais résumer mes années de licences, ce serait:

L1: Initiation à l'algorithmique avec le langage ADA.
L2: Renforcement de l'algorithmique avec du C / Système Linux et shell de bourne / Base de donnée sql, php, html
L3: Initiation au concept de POO avec Java et de PF avec Caml

On a également fait de l'archi avec l'arm et du réseau en c; mais je préférerais personnellement éviter ces deux choses étant donné que ce n'est ni mon point fort ni dans mes goûts personnels.

Pourtant, je vais devoir sérieusement me mettre à étudier les concepts de réseau (étudier est peut être un grand mot, je connais les concepts; disons plutôt les appliquer et les programmer). Sa va être une nécessité je pense, de plus en plus des travaux que l'on nous demande utilisent des interactions de type serveur/client pourtant, même si je connais la théorie je suis incapable de le mettre en pratique...rien que de devoir utiliser les socket suffit à me mettre hors course n'ayant jamais eu de cours là dessus.





Merci à tous & bonnes fêtes.
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 26 Déc 2014, 18:40

hello,

les diagrammes de classes sont trivaux à comprendre et n'importe quel cours en ligne devrait faire l'affaire
http://fr.wikipedia.org/wiki/Diagramme_de_classes
as-tu seulement cherché ?

L'autre solution serait de parcourir d’emblée la totalité du code, mais ça me semble être la mauvaise méthode,

par rapport à ton devoir c'est effectivement pas forcément la bonne méthode.
Dans ton futur métier de développeur, c'est pas forcément stupide, car ca te permet de comprendre les flots et de faire des liens plus facilement. Mais tu parccours pas tout évidemment, tu pars d'un point A et tu te diriges vers un point B..

pour ce qui est de ton stage, les pme sont friands de stagiaires qui coutent pas cher en tant que développeur.
La question n'est pas d'avoir les connaissances ou pas, c'est plutot:
- baratiner les mots clés pour ton recruteur
- à être autonome (ce que tu n'es pas encore CAR tu attends de tes profs d'avoir un cours)
ce deuxième point est très très très important si tu t'orientes vers du dev.
Le seul truc que les profs peuvent vraiment t'apporter, c'est plus de l'expérience et de la théorie.
Pourquoi écrire du code c'est mal, pourquoi faire des accesseurs c'est mal, pourquoi faire des tests c'est bien, etc...

donc qqpart, si tu sais que t'as des lacunes c'est bien, étape suivante c'est de les combler, et fort heureusement, en info t'as pas trop besoin d'être malin, juste d'être une éponge.. d'ailleurs les ptits malins sont soient très très bons, soient des catastrophes, et proportions respectées faut pas trop s'amuser à être malin!
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 26 Déc 2014, 20:42

as-tu seulement cherché ?


Ouai, mais de toutes évidences pas avec les bons mots clés...

Déjà tu viens de m'apprendre qu'on appelait ce schéma un diagramme de classe; enfin disons plutôt qu'en fonction du prof à qui on demande on a un nom différent ce qui est pas génial pour aiguiller les recherches^^

Bref merci je vais m'intéresser fortement à tout ça dès ce soir.


- baratiner les mots clés pour ton recruteur


Pour le coup je suis pas sûr que baratiner ce soit la meilleure chose à faire...ou alors il faut être très confiant sur sa capacité à apprendre ce que l'on a baratiné que l'on savait faire sans savoir le faire è_é

Ce qui n'est pas du tout mon cas^^

- à être autonome (ce que tu n'es pas encore CAR tu attends de tes profs d'avoir un cours)


C'est pas vraiment ça en fait, je suis autonome dans le sens ou lorsque je rencontre un problème j'arrive plus ou moins à cerner d'où il vient, là où j'ai du mal c'est que pour résoudre ce genre de problème je suis souvent amené à utiliser des outils inconnu sans être spécialement guidé ou informé.

Au final, je dirais que j'arrive à être autonome si on me donne un plan assez clair de ce que je dois faire. Pas forcement détaillé, mais au moins les grandes lignes.






Pour faire le parallèle avec le dit projet java que j'ai à faire pour la rentrée, je suis persuadé que je vais passer tout mon temps à essayer de comprendre comment fonctionne les interactions entre le serveur et le client; ce qui ne sera pas plus mal pour l'avenir, jserais content de comprendre...mais si je fais ça je n'aurais pas le temps pour travailler réellement le projet...

Je devrais donc accepter que le code source que l'on me donne fonctionne d'après des tests et ne pas chercher plus loin...ça me ressemble pas vraiment, je n'aime pas faire des choses si je ne les comprends pas, ça m'est souvent arrivé d'ailleurs de demander des explications ici pour des problèmes de match dans des devoirs maisons auquels on m'a donné la solution, mais que je n'ai pas rendu car je ne la comprenais pas...


Pour conclure; à mon sens; faire sans comprendre c'est mal, voilà pourquoi je pose énormément de questions sur des trucs qui peuvent paraître insignifiant souvent...
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 26 Déc 2014, 21:24

L'autre solution serait de parcourir d’emblée la totalité du code, mais ça me semble être la mauvaise méthode, si on nous fournit un diagramme de classe UML; c'est pour s'en servir.

j't'apprends rien t'as toi même donné les mots clé.
il faut être très confiant sur sa capacité à apprendre ce que l'on a baratiné que l'on savait faire sans savoir le faire

ben pas forcément, faut juste savoir que ca existe, en comprendre les concepts, t'as pas besoin de faire un projet dessus (même si c'est mieux..)

Je devrais donc accepter que le code source que l'on me donne fonctionne d'après des tests et ne pas chercher plus loin...

ben ca c'est ton problème, rien ne t'empêches d'approfondir une fois le projet fini.

des outils inconnu sans être spécialement guidé ou informé.

globalement t'as juste à chercher un tutorial...
la vie est une fête :)

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 13:25

par Cliffe » 26 Déc 2014, 22:07

Rockleader a écrit:Déjà tu viens de m'apprendre qu'on appelait ce schéma un diagramme de classe;


Attention UML c'est 14 diagrammes officiels et différents.

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 27 Déc 2014, 11:24

Je pense avoir tout saisi, à l'exception de cette partie là que je ne comprends pas vraiment.

Association

Connexion sémantique entre deux classes (relation logique). Une association peut être nommée. L'invocation d'une méthode est une association. Elle peut être binaire, dans ce cas elle est représentée par un simple trait, ou n-aire, les classes sont reliées à un losange par des traits simples. Ces relations peuvent être nommées. L'association n'est utilisée que dans les diagrammes de classe.
multiplicité : comparable aux cardinalités du système Merise, sert à compter le nombre minimum et maximum d'instances de chaque classe dans la relation liant 2 ou plusieurs classes.
navigabilité : indique si on pourra accéder d'une classe à l'autre. Si la relation est entre les classes A et B et que seulement B est navigable, alors on pourra accéder à B à partir de A mais pas réciproquement. Par défaut, la navigabilité est dans les 2 sens.



Par ailleurs, je n'ai vu aucune allusions aux interfaces, dois je en conclure que l'on ne les représente pas dans un diagramme de classe ?
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 13:25

par Cliffe » 27 Déc 2014, 12:03

Tu as plein d'exemple sur google :p

Exemple d'une association :

[CENTER]Image[/CENTER]

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 27 Déc 2014, 12:45

Par ailleurs, je n'ai vu aucune allusions aux interfaces, dois je en conclure que l'on ne les représente pas dans un diagramme de classe ?


regarde les design patterns (il me semble c'est l2 en plus ??), tu verras qu'on représente aussi les interfaces. (par ex l'abstract factory)
la vie est une fête :)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 27 Déc 2014, 13:01

Cliffe a écrit:Tu as plein d'exemple sur google :p

Exemple d'une association :

[CENTER]Image[/CENTER]



Sa me fait plutôt penser à une relation de base de donnée ça^^

Mais en terme de codage pur; si hotel est une classe, personne est une classe. Héberge sa représente quoi ?

regarde les design patterns (il me semble c'est l2 en plus ??), tu verras qu'on représente aussi les interfaces. (par ex l'abstract factory)


Jamais entendu parler de ça en tout cas^^

http://en.wikipedia.org/wiki/Abstract_factory_pattern#UML_Class_Diagram

Je ne vois pas de différence entre l'héritage d'une classe et l'héritage d'un interface ici. On le représente donc de la même façon ?

Si oui, si on n'a pas affaire à un diagramme aussi propre, comment on va différencier un interface sur le diagramme par rapport à une classe abstract par exemple ? D'un point de vue du schéma ce sera la même chose si je ne me trompe pas ?
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 27 Déc 2014, 13:17

ben sur le schéma tu vois bien que il précède <>
par ailleurs, comme dans le code, tu peux prépend un I pour dire IMaClasse

après je suis pas expert de diagramme de classe, mais tu te feras probablement jamais embêter parce que t'as mis un I devant le nom de ta classe...
la vie est une fête :)

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 13:25

par Cliffe » 27 Déc 2014, 14:05

Rockleader a écrit:Mais en terme de codage pur; si hotel est une classe, personne est une classe. Héberge sa représente quoi ?


Chacun le code comme il veut. On indique juste une relation entre deux classes.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite