2009-01-13 5 views
2

J'ai une question de conception très générale, mais je vais l'encadrer concrètement avec un exemple. Supposons que vous travailliez sur un logiciel embarqué pour une imprimante numérique.Conception logique versus physique

La machine dispose de 4 têtes d'impression (pour chacune des couleurs C, M, Y, K). Chaque tête d'impression effectue la même tâche: récupérer le toner et le placer sur la page. À l'exécution, nous pourrions organiser notre API de deux manières distinctes. Soit nous suivons une conception logique (aussi appelée "fonctionnelle" ou "process"), de sorte que le logiciel client peut contrôler le processus d'impression sur toutes les têtes d'impression (par exemple, changer la luminosité de toutes les couleurs à la fois). Ou nous suivons une conception physique, de sorte que le logiciel client peut contrôler chaque tête d'impression individuellement (par exemple changer la luminosité de seulement la couleur magenta).

Ceci est un dilemme classique dans la conception de logiciels: soit nous organisons par activité ou par architecture. Par fonction ou par forme. Ma question est la suivante: y a-t-il des critères solides pour choisir l'un plutôt que l'autre? Différents projets choisiront différemment et peuvent tous deux être corrects selon leur propre situation; donc je ne demande pas quel est le meilleur, seulement comment choisir. Par exemple. Je serais intéressé par vos idées sur le couplage lâche, la maintenabilité, la superposition, la conception orientée sur les rôles, les modèles de conception architecturale, etc.

Répondre

4

Écrivez une interface qui suit la conception physique. En plus de cela, vous pouvez superposer une interface logique qui utilisera la physique. Alors ne choisissez pas quand vous pouvez avoir les deux.

0

Je suppose que cela dépend de ce que vos clients veulent - les exigences du système du point de vue des clients.

Personnellement, je serais favorable à décomposer le problème en deux parties plus petites/questions:

Le code de bas niveau pour accéder et contrôler les composants physiques - l'API physique. (Cela devra toujours être fait dans n'importe quel scénario de conception que vous choisirez pour que vous puissiez le focaliser et le faire).

Utilisation de l'API ci-dessus fournissent une API structurée plus fonction/processus (si nécessaire)

HTH Len

0

Est-ce que la chose la plus simple qui répond aux exigences du projet.

Le codage des conceptions logiques et physiques peut entraîner des efforts de développement inutiles (et donc des coûts) si la conception logique répond aux exigences du projet.