Task: Mitigate Uncertainty Factors
Adapt the system goals and requirements to deal with obstacles and factors of uncertainty.
Disciplines: Requirements
Relationships
Parent Practices
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
      Outputs
        Main Description

        There are several sources of uncertainties that can be distinguished in open multi-agent systems. First of all, the behaviour of the user of the system is uncertain, especially if there are complex and numerous ways to interact with the system. A user could, e.g., alter the environment and thus indirectly influence the system. Second of all, external components can behave unreliably or unexpectedly. Third of all, data that is gathered about processes in the environment or within the system can be affected with uncertainty.

        Cheng et al. mainly deal with the first two kinds of uncertainty and provide powerful tools to incorporate such uncertainties into the requirements engineering process. They suggest four possibilities to deal with obstacles and factors of uncertainty:

        1. No refinement: if the uncertainties do not impair the system's ability to reach its goals, no changes are necessary.
        2. Add low-level sub-goals: if it is possible to introduce low-level sub-goals to deal with the uncertainty factors, these sub-goals should be identified and introduced.
        3. Relax goals: if uncertainties can be dealt with by relaxing the goals (e.g., so that a certain condition does not have to hold exactly but approximately), introduce such relaxations in the formulation of the goals.
        4. Add high-level goals: if the uncertainty affects the system on a high level or is of great importance, additional high-level goals can be introduced to deal with it.

        The possibilities should be applied in the order given above. If "No refinement" is not a solution, assess the introduction of a sub-level goal. If this will not mitigate the obstacle, try relaxing one or more goals. If this proves unsuccessful, introduce a new high-level goal. This ensures that the solution to an obstacle with a minimal impact on the current system design is sought first.

        More information can be found in Cheng et al., 2009 - A Goal-Based Modeling Approach to Develop Requirements of an Adaptive System with Environmental Uncertainty.

        If the data gathered about other agents and processes is uncertain, however, the use of trust values allows measuring the uncertainty in the data and incorporating it in decision making processes. More information about using trust in open self-organising systems can be found in Trust-based Interaction Design.

        Steps
        Identify uncertainty factors
        Starting from the lowest level (the requirements), consider possible obstacles, failures, or uncertainties that might jeopardise the correct system functionality. Uncertainty factors can also propagate up the hierarchy of system goals, so make sure to think about consequences of the uncertainties on higher levels of the system. Obstacles found previously can be refined.
        Identify which uncertainty factors the system has to react to

        Not all uncertainty factors can and should be dealt with by the system. If a failure is highly unlikely, e.g., it might not be economical to provide the system with the capability to adapt to it. On the other hand, if uncertain information does not negatively affect system performance, it might be ignored safely. As a rule of thumb, only those factors that propagate upwards and pose a risk to the high-level goals should be considered.

        At the end of this step, only the uncertainty factors that need to be mitigated should be marked for further elaboration.

        Identify and denote data that is affected by uncertainty
        If data is affected by uncertainty, denote this fact by applying the «uncertain» stereotype to the corresponding property in the Conceptual Domain Model. This information can be used in subsequent steps to, e.g., generate an infrastructure for the elicitation of trust values. It clearly defines that the data has to be handled accordingly. This should also be kept in mind when constraining such properties.
        Mitigate uncertainty factors with one of the possibilities
        Different uncertainty factors need to be dealt with differently. Apply one of the four possibilities described above to deal with the uncertainty. Note that this might introduce new requirements or system goals that will have to be examined either in this iteration or the next. Mark the new elements accordingly.
        More Information