Séparons conception et programmation.
Citation:
Envoyé par super_navide
Ca c'est vraiment une mode de vouloir séparer la Conception de la Programmation objet .
De vouloir faire un truc indépendant du langage.
Une conception objet est lié a l'implémentation donc au langage
Il y a de très grosse différence technique entre les langages
Smalltalk : (...)
Java 1.5 (...)
C++ (...)
La liste des différences n'est pas complète mais elle montre que des la conception objet il faut pensé au langage avoir un bonne productivité et de bonne performance pour le logiciel (...)
Quelle érudition, je suis impressionné !
Je suis un tout petit peu d'accord avec toi mais pas complètement ;)
Le choix du langage peut parfois se faire dès le cahier des charges, résumons (simplement) les étapes d'un projet logiciel :
- le cahier des charges : expression du besoin par le client (ce que veut le client),
- les spécifications : traduction du cahier des charges sous forme de fonctionnalités et d'exigences (ce que nous devons faire pour répondre aux besoins du client, le quoi),
- la conception : solution proposée pour répondre aux spécifications (comment nous répondons aux spécifications pour donner satisfaction au client),
- la réalisation : implémentation technique, c'est le résultat, ce qui va être utilisable par le client.
Bon je sais c'est un peu simpliste mais cela me semble assez clairement résumé ce que l'on rencontre dans la majorité des projets (sans entrer dans les détails). Il va de soi que tous les cahier des charges ne se ressemblent pas, certains sont assez ouverts et contiennent peu ou pas de préconisations ou exigences tandis que d'autres peuvent être très précis et faire référence à des contraintes techniques (performances, disponibilité, contraintes normatives, etc.).
Le domaine d'application peut conditionner fortement le choix du langage, les exigences dans les domaines comme l'automobile, l'avionique ou le militaire embarqué (à titre d'exemple) ont des contraintes normatives fortes qui empêchent d'office l'utilisation de certains langages.
C'est en cela que je suis d'accord avec toi, bien que faisant de la conception rien n'empêche de commencer à penser à l'implémentation, c'est d'ailleurs en cela que l'on reconnaitra un chef de projet expérimenté qui maitrise les techniques de développements.
Donc ne pas perdre de vue le déroulement d'un projet, la réalisation n'est pas une fin en soit, l'objectif étant de donner satisfaction au client en ayant réussi à respecter les critères : coût, délai et qualité.
Par contre je ne suis pas du tout d'accord avec toi la dessus :
Citation:
avant la conception il faut savoir dans quel langage on va implémenter.
Ceci n'est pas obligatoire et n'est pas toujours possible en fonction du contexte du projet. Comme je l'ai déjà écrit, tant mieux si tout coule de source et que l'on puisse choisir un langage assez tôt en même temps que l'on se charge de la conception.
Mais j'insiste car pour moi ce sont bien deux activités distinctes et séparées, d'un côté la conception et de l'autre la programmation.
Pour finir :
Citation:
il faut penser au langage avoir un bonne productivité et de bonne performance pour le logiciel (...)
Bien que ce ne soit pas le topic juste une petite parenthèse sur "la productivité" et "la performance" que tu cites, tu as oublié "la disponibilité", "la maintenabilité", "la facilité d'utilisation", "la testabilité" et "la fiabilité" (une partie de la norme 9126 à titre d'exemple).
En fonction de la maturité et des bonnes pratiques de chacun, les objectifs recherchés lors du choix d'un langage vont au dela de la "productivité" et de la "performance", je vais me contenter juste d'évoquer le côté normatif du code produit, le niveau de qualité ciblé (ISO, CMMI, DOD ?) le coût de la ligne de code que sera prêt à payer une entreprise, tout est à prendre en compte.
Tu n'as fait qu'effleurer du doigt une des problématique du métier d'ingénieur logiciel, je conçois et réalise (ou bien je fais concevoir et fais réaliser) des logiciels, avec quel niveau de qualité ? à quel coût ? mon logiciel doit-il être pérenne ? la garantie de maintenance s'applique sur quelle durée ?
Bref un vrai sujet à part entière, à aborder dans un autre topic, si vous êtes des ingénieurs alors faites un travail d'ingénieur mais rien ne vous empêche de faire de la technique et donc de la programmation.