OVH Cloud OVH Cloud

[gentoo-user-fr] [HS] Gérer un projet en C

2 réponses
Avatar
grillot sebastien
(re)bonjour,
Voila enfin un vrai HS de chez HS ;)

Comme je l'ai deja dis, notre association va participer à la coupe de
france de robotique. Pour ce faire nous allons coder notre bestiolle
en C. C'est une grande premiere pour moi de travailler en C sur un
projet aussi "important" et sur de l'electronique (enfin un truc
different d'une gestion_de_je_sais_pas_quoi comme nous pouvons faire
en BTS IG par exemple :).

Alors voila, j'ai pas mal de question :
- Comment peut-on analyser le code que nous aurons à produire? Par
quoi devons nous commencer. Je suis un habitué du systeme MERISE pour
analyser les besoins. Dans notre ecole on nous parle tout le temps
d'UML. Mais ne devrais-je pas simplement decouper mon projet en
fonction des differents PIC que je vais avoir sur ma bestiolle ? De
plus, nous allons avoir un GNU/Linux qui fera tourner un ARM (Gumstix
ou routeur asus) pour le traitement de l'image et "l'inteligence" du
robot.

De plus, je decouvre tout les outils (lclint, gprof...) pour analyser
le code. Comment dois-je travailler avec ce genre d'outils, à chaque
fois que j'ai terminé d'ecrire une fonction, à chaque fois que je
viens de coder un "mouvement" dans mon robot, à la fin de chez la fin?
Je presume que si c'est à la fin il faut absoluement se prevoir un
"délais" pour ne faire que ca. L'audit du code doit se faire par la
personne qui à codé, par quelqu'un d'autre ? Est-ce reelement une
etape utile, sachant que je penses que oui car le systeme se
retrouvera embarqué donc dans des limites importantes...

Si vous avez des remarques, des questions, des idées... je vous en
pris, lachez vous ;)

Amicalement

Seb

--
Regist. Linux User #344952

Experience is the name everyone gives to their mistakes.
-- Oscar Wilde

--
gentoo-user-fr@gentoo.org mailing list

2 réponses

Avatar
Neo Yoyo
------=_Part_7937_2039146.1133997382745
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Le 07/12/05, grillot sebastien a écrit :

(re)bonjour,
Voila enfin un vrai HS de chez HS ;)




Salut,

Effectivement c'est hors sujet .. Je me demande s'il vas durer longtemps
!!! Wait & See

Comme je l'ai deja dis, notre association va participer à la coupe de
france de robotique. Pour ce faire nous allons coder notre bestiolle
en C.




Le C c'est pas bien compliqué :) Le C++, c'est un peu plus compliqué ,
donc j'espere pour toi que ca va rester du C :))
Mais bon cet avis ne regarde que moi .. D'autre te dirons que la
programmation en générale ce n'est pas compliqué.

C'est une grande premiere pour moi de travailler en C sur un
projet aussi "important" et sur de l'electronique (enfin un truc
different d'une gestion_de_je_sais_pas_quoi comme nous pouvons faire
en BTS IG par exemple :).




Une fois que tu auras compris le fonctionnement du point de vue electroniqu e
du robot, la partie programmation sera un jeu d'enfant pour faire faire a
ton robot ce que tu veux.

Alors voila, j'ai pas mal de question :
- Comment peut-on analyser le code que nous aurons à produire? Par
quoi devons nous commencer. Je suis un habitué du systeme MERISE pour
analyser les besoins. Dans notre ecole on nous parle tout le temps
d'UML.




UML est une méthode orientée objet qui, je trouve est plus facile a
appréhender que merise. Et dans ton cas devrait mieux s'adapter.

Mais ne devrais-je pas simplement decouper mon projet en
fonction des differents PIC que je vais avoir sur ma bestiolle ?




Vi, la decoupe en petit morceau est la clé.

De
plus, nous allons avoir un GNU/Linux qui fera tourner un ARM (Gumstix
ou routeur asus) pour le traitement de l'image et "l'inteligence" du
robot.

De plus, je decouvre tout les outils (lclint, gprof...) pour analyser
le code. Comment dois-je travailler avec ce genre d'outils, à chaque
fois que j'ai terminé d'ecrire une fonction, à chaque fois que je
viens de coder un "mouvement" dans mon robot, à la fin de chez la fin?




Bon courage avec toutes ces nouveautés. J'espère que tu as du temps dev ant
toi pour comprendre tous ca.

Je presume que si c'est à la fin il faut absoluement se prevoir un
"délais" pour ne faire que ca. L'audit du code doit se faire par la
personne qui à codé, par quelqu'un d'autre ? Est-ce reelement une
etape utile, sachant que je penses que oui car le systeme se
retrouvera embarqué donc dans des limites importantes...




Je n'ai pas trop de connaissance dans ce domaine, mais je dirais que tester
ce que tu fais petit à petit ne serait pas un mal. Car debugger tout d'un
coup risque de ne pas etre facile.

Si vous avez des remarques, des questions, des idées... je vous en
pris, lachez vous ;)




J'essayerais


Amicalement

Seb





Bon courage dans ton projet .

--
Regist. Linux User #344952

Experience is the name everyone gives to their mistakes.
-- Oscar Wilde

--
mailing list





------=_Part_7937_2039146.1133997382745
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<br><br><div><span class="gmail_quote">Le 07/12/05, <b class="gmail_sen dername">grillot sebastien</b> &lt;<a href="mailto: .com"></a>&gt; a écrit :</span><blockquote clas s="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margi n: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
(re)bonjour,<br>Voila enfin un vrai HS de chez HS ;)</blockquote><div><br>S alut,<br><br>Effectivement c'est hors sujet ..&nbsp;&nbsp; Je me demande s' il vas durer longtemps !!! Wait &amp; See <br></div><br><blockquote class ="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin : 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Comme je l'ai deja dis, notre association va participer à la coupe de<br> france de robotique. Pour ce faire nous allons coder notre bestiolle<br>en C. </blockquote><div><br>Le C c'est pas bien compliqué :)&nbsp;&nbsp;&nbs p; Le C++, c'est un peu plus compliqué, donc j'espere pour toi que ca va rester du C :))
<br>Mais bon cet avis ne regarde que moi .. D'autre te dirons que la progra mmation en générale ce n'est pas compliqué.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); m argin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
C'est une grande premiere pour moi de travailler en C sur un<br>projet auss i &quot;important&quot; et sur de l'electronique (enfin un truc<br>differen t d'une gestion_de_je_sais_pas_quoi comme nous pouvons faire<br>en BTS IG p ar exemple :).
</blockquote><div><br>Une fois que tu auras compris le fonctionnement du po int de vue electronique du robot, la partie programmation sera un jeu d'enf ant pour faire faire a ton robot ce que tu veux.<br></div><br><blockquote c lass="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); ma rgin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Alors voila, j'ai pas mal de question :<br>- Comment peut-on analyser le co de que nous aurons à produire? Par<br>quoi devons nous commencer. Je suis un habitué du systeme MERISE pour<br>analyser les besoins. Dans notre ec ole on nous parle tout le temps
<br>d'UML.</blockquote><div><br>UML est une méthode&nbsp; orientée obje t qui, je trouve est plus facile a appréhender que merise. Et dans ton ca s devrait mieux s'adapter.<br></div><br><blockquote class="gmail_quote" s tyle="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8e x; padding-left: 1ex;">
Mais ne devrais-je pas simplement decouper mon projet en<br>fonction des d ifferents PIC que je vais avoir sur ma bestiolle ? </blockquote><div><br>Vi , la decoupe en petit morceau est la clé.<br></div><br><blockquote class ="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin : 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
De<br>plus, nous allons avoir un GNU/Linux qui fera tourner un ARM (Gumstix <br>ou routeur asus) pour le traitement de l'image et &quot;l'inteligence&q uot; du<br>robot.<br><br>De plus, je decouvre tout les outils (lclint, gpro f...) pour analyser
<br>le code. Comment dois-je travailler avec ce genre d'outils, à chaque< br>fois que j'ai terminé d'ecrire une fonction, à chaque fois que je<br >viens de coder un &quot;mouvement&quot; dans mon robot, à la fin de chez la fin?
</blockquote><div><br>Bon courage avec toutes ces nouveautés. J'espère que tu as du temps devant toi pour comprendre tous ca.&nbsp;</div><br><bloc kquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Je presume que si c'est à la fin il faut absoluement se prevoir un<br>&qu ot;délais&quot; pour ne faire que ca. L'audit du code doit se faire par l a<br>personne qui à codé, par quelqu'un d'autre ? Est-ce reelement une< br>etape utile, sachant que je penses que oui car le systeme se
<br>retrouvera embarqué donc dans des limites importantes...</blockquote> <br>Je n'ai pas trop de connaissance dans ce domaine, mais je dirais que te ster ce que tu fais petit à petit ne serait pas un mal. Car debugger tout d'un coup risque de ne pas etre facile.
<br><br><blockquote class="gmail_quote" style="border-left: 1px solid r gb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Si vous a vez des remarques, des questions, des idées... je vous en<br>pris, lachez vous ;)
</blockquote><div><br>J'essayerais<br><br></div><br><blockquote class="gm ail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Amicalement<br><br>Seb</blockquote><div>
<br><br>Bon courage dans ton projet . <br></div><br><blockquote class="gm ail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">--<br>Regist. Linux User #344952<br><br>
Experience is the name everyone gives to their mistakes.<br>&nbsp;&nbsp;-- Oscar Wilde<br><br>--<br><a href="mailto:">gento </a> mailing list<br><br></blockquote></div><br>

------=_Part_7937_2039146.1133997382745--
--
mailing list
Avatar
Laurent Steffan
Salut,

Le 07.12.2005 07:06, grillot sebastien a écrit :
(re)bonjour,
Voila enfin un vrai HS de chez HS ;)



Ahhhh! ça nous manquait

Comme je l'ai deja dis, notre association va participer à la coupe de
france de robotique. Pour ce faire nous allons coder notre bestiolle
en C. C'est une grande premiere pour moi de travailler en C sur un
projet aussi "important" et sur de l'electronique (enfin un truc
different d'une gestion_de_je_sais_pas_quoi comme nous pouvons faire
en BTS IG par exemple :).

Alors voila, j'ai pas mal de question :
- Comment peut-on analyser le code que nous aurons à produire? Par



Avant même de commencer à "analyser", il faut faire une liste de ce que
vous voulez faire, en terme de fonctions (les besoins étant supposés
connus...).

Est-ce que l'architecture matérielle du robot (au sens électronique) est
déjà décidée ? parce que dans les systèmes embarqués il y a souvent des
compromis entre matériel et logiciel, et si on fige le matériel on
écarte implicitement certaines solutions. D'un autre côté, la conception
est beaucoup plus simple.

quoi devons nous commencer. Je suis un habitué du systeme MERISE pour
analyser les besoins. Dans notre ecole on nous parle tout le temps
d'UML. Mais ne devrais-je pas simplement decouper mon projet en
fonction des differents PIC que je vais avoir sur ma bestiolle ? De
plus, nous allons avoir un GNU/Linux qui fera tourner un ARM (Gumstix
ou routeur asus) pour le traitement de l'image et "l'inteligence" du
robot.



UML est quand même très orienté objet, je ne sais pas si c'est vraiment
utile pour faire du C. D'autant qu'un gros intérêt d'UML est la
génération automatique de code, et je ne suis pas sûr que ça génère du
C... Ceci dit, tu peux au moins exploiter les "use cases" pour exprimer
les besoins.

Merise en général est plutôt utilisé pour décrire les données, je ne
l'ai jamais vu utilisé pour des systèmes temps réel ou embarqués (bien
sûr ça veut pas forcément dire grand chose).

De plus, je decouvre tout les outils (lclint, gprof...) pour analyser
le code. Comment dois-je travailler avec ce genre d'outils, à chaque
fois que j'ai terminé d'ecrire une fonction, à chaque fois que je
viens de coder un "mouvement" dans mon robot, à la fin de chez la fin?
Je presume que si c'est à la fin il faut absoluement se prevoir un
"délais" pour ne faire que ca. L'audit du code doit se faire par la
personne qui à codé, par quelqu'un d'autre ? Est-ce reelement une
etape utile, sachant que je penses que oui car le systeme se
retrouvera embarqué donc dans des limites importantes...



De façon plus générale, il faut choisir une méthode de développement
avant tout, et choisir ensuite les outils adaptés. Un exemple : est-ce
que vous serez plusieurs à coder ? si c'est le cas, il est presque
certain qu'il vous faudra un système genre CVS.

C'est le test qui est la partie la plus importante pour un système temps
réel ou embarqué (au fait, tu situes votre robot dans quelle catégorie?
juste pour avoir une idée des contraintes). A ce sujet, je recommande
chaudement l'optique "Test Driven Development" (TDD) de Kent Beck, qui
fait partie des techniques popularisées (enfin, plus ou moins ;-) ) par
le Agile Programming (notamment Extreme Programming). Il faut pour tirer
parti des tests les écrire dès que possible (certains disent, avant même
d'écrire le code, et j'applique moi-même cette règle) et les faire
passer avec un système adapté. Pour les tests unitaires je recommande
CUnit (http://cunit.sourceforge.net). Au passage, je signale que TDD est
une méthode de développement, pas seulement de test.

Les outils comme lclint, splint, doivent généralement être utilisés du
début à la fin. Le mot-clé étant "début". Pour le "profiling", mon point
de vue c'est que pour du temps réel si on n'a pas des performances
suffisantes *avant* le profiling on n'a aucune chance d'y arriver : le
plus critique pour les performances en effet c'est souvent
l'architecture globale (communication inter-tâches, etc.)

Quant à l'audit du code, il est recommandé de le faire, mais là encore
les méthodes sont différentes selon les gens. Dans tous les cas, l'audit
doit être fait par une personne qui n'a pas codé. Il peut être plus ou
moins formalisé (réunions de revue de code, discussions avec le
partenaire dans le cas du "peer programming", etc.).

Bon j'arrête, sinon je sens que je vais soûler tout le monde. Mais enfin
aussi quelle idée de poser des questions sur des sujets intéressants! :-D

Si vous avez des remarques, des questions, des idées... je vous en
pris, lachez vous ;)



Je crois que c'est fait.

Amitiés,
Laurent



--
mailing list