web-dev-qa-db-fra.com

Approche totale vs ascendante lors de la conception d'une bibliothèque de classe

Je concevons une bibliothèque de classe pour représenter des concepts de théorie musicale de tempérament égal de l'occidentaux dans le but de composer de la musique notée avec code (je me rends compte qu'il existe d'autres bibliothèques et programmes pour cela, mais je veux concevoir le mien). Le problème que j'ai, c'est que lorsque je commence par le concept le plus fondamental (pitchclass) et commencer à construire vers le haut, je suis très rapidement en colère contre le contrôle avec trop de complexité dans la conception. Je finis par le frapper et recommencer.

Je pense à une nouvelle approche. Commencez par écrire un programme (qui ne compilera pas) qui démontre comment je souhaite utiliser la bibliothèque à la fin. Par exemple, écrivez les échantillons de programmes qui pourraient d'abord accompagner une bibliothèque, dans le cadre du processus de conception. J'espère que cela pourrait m'aider avec des décisions de conception de niveau inférieur afin de ne pas me perdre dans la complexité de conception.

Cette approche est analogue à la conception pilotée par testruction, mais différente de celle du programme d'échantillon n'est pas isolée à une seule classe ou à une seule fonction, mais démontre plutôt l'interface de nombreuses classes de haut niveau.

Question
[.____] est la méthodologie de conception descendante que je décris ici une approche valide? A-t-il un nom? Je travaille seul, mais les équipes utilisent-elles déjà une approche comme celle-ci ?

Ceci ne répond pas à la question car il est spécifiquement de concevoir une interface utilisateur Web et de faire face aux différences de navigateur.

Ceci n'est pas pertinent car il s'agit des spécifications frontales back-end vs.

Ceci n'est pas une duplication car elle s'approche spécifiquement d'une pile MVC.

7

Vous décrivez (( Acceptation Développement axé sur le test .

Le principe de base de ATDD est que chaque exigence logicielle est accompagnée d'un test d'acceptation qui, lorsqu'il est exécuté, fournit une preuve que l'exigence a été satisfaite.

enter image description here

Les tests d'acceptation sont créés lorsque les exigences sont analysées et avant le codage. Ils peuvent être développés en collaboration par exigence demandeur (propriétaire du produit, analyste des affaires, représentant du client, etc.), développeur et testeur. Les développeurs mettent en œuvre le système à l'aide des tests d'acceptation. Les tests d'échec fournissent des commentaires rapides que les exigences ne sont pas remplies.

Les tests sont spécifiés dans les conditions du domaine des affaires. Les termes forment ensuite une langue omniprésente partagée entre les clients, les développeurs et les testeurs.

Les tests et les exigences sont interdépendants. Une exigence qui manque d'essai peut ne pas être mise en œuvre correctement. Un test qui ne fait pas référence à une exigence est un test inutile. Un test d'acceptation qui est développé après la mise en œuvre commence représente une nouvelle exigence.

Je suis personnellement un grand fan d'ATDD. Les exigences qui ne sont pas accompagnées d'un test d'acceptation ne sont pas des exigences du tout; ce sont des souhaits.

9
Robert Harvey