Chaque fois que je devais construire un projet, je réussissais toujours à le construire, pas avant de concevoir un plan ou une conception, mais après avoir d'abord écrit une classe qui était nécessaire, étoffer tout le projet, construire à partir de la base. Maintenant, je sais que ce n'est pas la bonne façon de créer un logiciel, mais il n'est pas facile pour moi de comprendre ce qu'on appelle l'analyse et la conception orientées objectivement. Je peux plus facilement comprendre la conception procédurale descendante, car elle consiste à simplement décomposer les tâches en sous-tâches, des choses qui ont leur contrepartie en code, des fonctions. Mais l'analyse et la conception orientées objet ne me sont pas faciles à comprendre, car je ne comprends pas comment on peut savoir de quelles classes ils auront besoin et comment ils interagiront, à moins de savoir comment ils les coderont.
Pour une fois que nous introduisons le concept de classes et d'objets dans le processus de conception, nous ne pouvons plus concevoir de haut en bas, car nous ne décomposons plus nos problèmes en ces choses qui peuvent être implémentées en tant que procédures. Au lieu de cela, selon ce que j'ai lu sur le sujet, nous devons déterminer quelles classes sont nécessaires et créer divers artefacts en langage de modélisation unifié, que nous pouvons ensuite utiliser lorsque nous implémentons le logiciel. Mais je ne comprends pas ce genre de processus de conception. Car comment sait-on de quelles classes ils auront besoin et comment ils interagiront, à moins d'avoir déjà conçu l'ensemble du système?
C'est alors mon problème. Je ne comprends pas comment concevoir un système orienté objet, bien que je comprenne les concepts de la programmation orientée objet, et je peux utiliser ces concepts dans n'importe quel langage de programmation orientée objet que je connais. Par conséquent, j'ai besoin que quelqu'un m'explique quel processus simple je peux utiliser pour concevoir des systèmes orientés objets d'une manière qui me semble logique.