Si les gens qui analysent la sortie et les résultats d'un algorithme être conscient de sa conception?
Par analyse, je veux dire trouver des cas où l'algorithme a échoué et retourné de mauvais résultats.séparation de conception et l'algorithme d'analyse
Répondre
Il existe deux types de tests, est d'abord des essais techniques pour vous assurer que le code incarnant les fonctions de l'algorithme, en particulier dans les limites spécifiées par la conception, et en particulier au cas bord.
La deuxième forme est le test fonctionnel pour voir si les sorties créées par l'algorithme correspondent à l'intention de conception. Pour cela, vous n'avez pas nécessairement besoin de connaître la mise en œuvre et il y a un argument raisonnable à faire pour dire que c'est fait plus objectivement si vous ne le faites pas.
Bien sûr, si l'algorithme est trivial et tous les résultats possiblel peut être connu, teste alors il est tout simplement une question de produire des données d'essai qui exerçables les conditions aux limites.
Cependant, en fonction de l'algorithme, qui peut ne pas être possible. Dans les cas où l'algorithme analyse des données dans un espace qui n'est pas facilement visualisable (disons qu'il a 27 dimensions et des points de données 1M) alors seulement les cas triviaux peuvent être testés pour la précision fonctionnelle. Cela devient pire s'il n'y a pas de «bonne» réponse à partir de l'analyse, mais un ensemble de résultats plausibles. Dans ces cas, un analyste expérimenté est nécessaire pour examiner les résultats afin de voir s'ils ont un sens. Parfois, c'est la même personne qui implémente le code, parfois non. Dans ces cas, la mise en œuvre sera presque certainement remise en question en essayant de comprendre les résultats, qui seront eux-mêmes complexes.
Donc, réponse courte est oui, si possible, mais ce n'est pas toujours nécessaire de l'algorithme est tout à fait explicable.
Il existe deux types de tests unitaires différents:
- Blackbox
- Glassbox
sont à la fois extrêmement important. Les tests Blackbox doivent être écrits uniquement sur la base de la documentation de la fonction (ses entrées déclarées, ses conditions préalables, ses sorties déclarées, ses postconditions, ses cas d'erreur et son comportement/résultats dans le cas de telles erreurs). Les tests Glassbox tentent de s'assurer que toutes les branches de l'implémentation fonctionnent correctement et nécessitent de regarder l'implémentation. De tels tests fournissent généralement quelques exemples d'entrées pour chaque branche d'exécution. Quant à l'analyse ... généralement quand on parle d '"analyse algorithmique", il ne s'agit pas d'une implémentation particulière, mais plutôt d'une analyse théorique de l'algorithme, usant habituellement de son pseudo-code, et habituellement dans le but de prouver l'exactitude de l'algorithme et une limite supérieure sur son pire cas ou son temps d'exécution prévu. De telles analyses requièrent généralement le pseudo-code (ou au moins une autre description formelle du comportement de l'algorithme) afin de raisonner et d'en prouver les propriétés.
- 1. Blueprint CSS et séparation de la présentation et du contenu lors de la conception de formulaires
- 2. Est-il possible de supprimer des vues de conception (et de séparation) à partir de Visual Studio 2005/2008?
- 3. onglet problème de séparation
- 4. Animations dynamiques, commandes et séparation des préoccupations
- 5. Lua et C++: séparation des tâches
- 6. DSpace et séparation physique des documents
- 7. ligne de séparation laid ListView
- 8. Déploiement de DotNetNuke et séparation de l'application ASP.NET - Problèmes possibles?
- 9. WCF - contrats de service de séparation et dérivation partielle?
- 10. Séparation de code dans cakePHP
- 11. URL de séparation requête http
- 12. application séparation des préoccupations
- 13. séparation d'expression SQL
- 14. Séparation des virgules TSQL
- 15. Séparation d'objets et de sources avec un fichier makefile
- 16. séparation de la logique et l'interface utilisateur en titane (javascript)
- 17. séparation des noms
- 18. Concepts et conception de PluginController
- 19. EF et motif de conception
- 20. MFC: Affichage/masquage des volets de séparation
- 21. Twitter Data Mining: Degrés de séparation
- 22. Flex4 - Architecture de codage, séparation vue/modèle
- 23. Séparation d'une base de données SQL Server
- 24. séparation MySQL Users table (Ruby on Rails et Authlogic)
- 25. En-têtes C++ - séparation entre l'interface et les détails d'implémentation
- 26. Séparation physique des requêtes Web sécurisées et non sécurisées
- 27. ASP.NET MVC DDD E-commerce - Administration et séparation frontale
- 28. Séparation appropriée pour le fournisseur d'appartenance et le code modèle
- 29. Séparation des préoccupations dilemme dans Rails
- 30. Commandes de séparation pour VB 6.0