Outil d'analyse des risques
Effectuer une analyse des risques
Aspose.tasks pour l’API .NET prend en charge la réalisation d’une analyse des risques sur un fichier de données de projet. Ceci est basé sur la simulation Monte Carlo qui prend en charge différentes distributions de probabilité et corrélations. La classe Aspose.tasks.Riskanalysis. Ainsi, une date de fin du projet peut être la sortie d’une telle analyse. L’exemple suivant illustre cette fonctionnalité étape par étape.
Effectuer une analyse des risques
Préparation des paramètres d’analyse
1RiskAnalysisSettings settings = new RiskAnalysisSettings();
2
3// Set number of iterations for Monte Carlo simulation (the default value is 100).
4settings.IterationsCount = 200;
Identifying the Input of Analysis
1Project project = new Project("New Project.mpp");
2Task task = project.RootTask.Children.GetById(17);
3
4// Initialize a risk pattern
5RiskPattern pattern = new RiskPattern(task);
6
7// Select a distribution type for the random number generator to generate possible values from (only two types currently supported, namely normal and uniform)
8// For more details see here: https://en.wikipedia.org/wiki/Normal_distribution)
9pattern.Distribution = ProbabilityDistributionType.Normal;
10
11// Set the percentage of the most likely task duration which can happen in the best possible project scenario
12// The default value is 75, which means that if the estimated specified task duration is 4 days then the optimistic duration will be 3 days
13pattern.Optimistic = 70;
14
15// Set the percentage of the most likely task duration which can happen in the worst possible project scenario
16// The default value is 125, which means that if the estimated specified task duration is 4 days then the pessimistic duration will be 5 days.
17pattern.Pessimistic = 130;
18
19// Set a confidence level that correspond to the percentage of the time the actual values will be within optimistic and pessimistic estimates.
20// You can think of it as a value of standard deviation: the more uncertain about your estimates you are, the more the value of standard deviation used in random number generator is
21pattern.ConfidenceLevel = ConfidenceLevel.CL75;
22
23settings.Patterns.Add(pattern);
1// Analyze the project risks
2RiskAnalyzer analyzer = new RiskAnalyzer(settings);
3RiskAnalysisResult analysisResult = analyzer.Analyze(project);
Use the Results of the Analysis
1// Select the desired output (here we get early finish of the root task)
2RiskItemStatistics rootEarlyFinish = analysisResult.GetRiskItems(RiskItemType.EarlyFinish).Get(project.RootTask);
3Console.WriteLine("Expected value: {0}", rootEarlyFinish.ExpectedValue);
4Console.WriteLine("StandardDeviation: {0}", rootEarlyFinish.StandardDeviation);
5Console.WriteLine("10% Percentile: {0}", rootEarlyFinish.GetPercentile(10));
6Console.WriteLine("50% Percentile: {0}", rootEarlyFinish.GetPercentile(50));
7Console.WriteLine("90% Percentile: {0}", rootEarlyFinish.GetPercentile(90));
8Console.WriteLine("Minimum: {0}", rootEarlyFinish.Minimum);
9Console.WriteLine("Maximum: {0}", rootEarlyFinish.Maximum);
10analysisResult.SaveReport("AnalysisReport_out.pdf");
Conclusion
La fonctionnalité d’analyse des risques d’Aspose.Tasks pour .NET permet aux développeurs d’évaluer l’incertitude des plannings de projet en simulant les variations de durée des tâches à l’aide de méthodes de Monte-Carlo. En configurant des paramètres d’entrée tels que les distributions de probabilité, les corrélations de tâches et les paramètres d’analyse, la classe « RiskAnalyzer » peut estimer des résultats tels que la date de fin du projet.
Cette fonctionnalité est destinée à être intégrée aux workflows de planification de projet nécessitant une analyse quantitative des risques liés au planning. Les résultats peuvent être utilisés pour appuyer la prise de décision ou pour identifier les tâches ayant le plus fort impact potentiel sur la fiabilité du planning.