Cela dépend de ce que vous modélisez. Compte tenu de votre exemple ci-dessus, voulez-vous pouvoir trouver le membre de l'équipe le mieux adapté à un problème donné?
Si tel est le cas, je recommanderais quelque chose comme ceci: Imaginez des rôles et des compétences en tant que sommets dans un graphe non orienté. Un rôle donné est lié (via un avantage) à chaque compétence dont il est capable (en supposant que les compétences sont données par rôle et ne sont pas uniquement basées sur un individu). Maintenant, connectez tous les membres de l'équipe à tous les rôles qu'ils ont dans l'équipe et les membres de l'équipe aux équipes appropriées. Ce graphique modélise maintenant les associations entre vos équipes, les membres de l'équipe, leurs rôles et les compétences qu'ils auraient dû donner à leurs rôles. Maintenant, pour cartographier un problème donné à un membre de l'équipe (ou même à une équipe), prenez un problème et connectez-le à chacune des différentes compétences dont vous pensez avoir besoin (Email, DB, Web UI, Web Services, etc). etc.). Vous pouvez maintenant relier les problèmes à ces entités.
Je ne reviendrai pas sur tous les types de rapports que vous pourriez exécuter avec ceci, mais en voici un simple.Si vous voulez trouver une seule personne (si elles existent) qui peuvent résoudre ce problème, je recommande un traversal graphique comme celui-ci:
class Problem
{
find_problem_solvers()
{
var problem_solvers = null
for each (skill in skills_required)
{
var possible_problem_solvers = skill.find_problem_solvers()
if(problem_solvers == null)
{
problem_solvers = new list().add_range(possible_problem_solvers)
}
else
{
for each problem_solver in problem_solvers:
{
if(problem_solver not in possible_problem_solvers)
problem_solvers.remove(problem_solver)
}
}
//No point continuing if we eliminated everyone!
if(problem_solvers is empty) break;
}
return problem_solvers
}
}
Comme vous pouvez le voir à cet égard, je n'ont pas beaucoup d'une utilisation pour les motifs des autres affiches. Si vous essayez de modéliser la sécurité du domaine ou une autre logique métier quelconque. Leurs techniques pourraient très bien être les bonnes. Par ailleurs, il faut noter que l'algo ci-dessus n'est pas optimal.
Cela devient un peu plus compliqué quand peut attribuer des rôles et des compétences à l'équipe et des rôles et des compétences aux particuliers, puis prendre en héritage compte des équipes . En outre, vous devez penser à avoir un utilisateur privilégié qui contrôle une équipe dont vous ne voulez pas hériter de –
Oui, mais je voudrais quand même aborder le problème dans cette direction. Hm. Eh bien ... si cela devait être modifié à ce que vous dites, il serait plus utile de le changer un peu ... – Cheery