Goal-Oriented Approach to Self-Managing Systems Design
Authors: Steven J. Bleistein, Pradeep Ray
Source: http://dpnm.postech.ac.kr
Authors: Steven J. Bleistein, Pradeep Ray
Source: http://dpnm.postech.ac.kr
This paper is intended to identify issues in design methodology of sophisticated self-managing systems. Whereas self-managing systems are intended to achieve increasingly sophisticated business-level objectives, current agent- oriented design methodologies begin requirements gathering and analysis at much lower levels. This leaves a hazardous gap in the system analysis phase of self- managing system design. This paper proposes desiderata for design methodology that include requirements gathering from high-level abstract business goals. It proposes structured and systematic means of decomposing and mapping high-level business objectives down to the finer requirements necessary to agent-oriented methodologies. It explores the possibility of applying experience gained from goal- oriented software engineering techniques as well as methodologies in integrated management of networks and services. Finally, this paper proposes an evolving high-level notation of design patterns to model self-managing systems in an integrated way.
Self-managing systems have been proposed as the next level of advancement in computer technology. The number of networks, systems, and devices as well as advances in hardware have grown at such an exponential rate that it is no longer possible for human managers to keep pace, nor is the human talent pool sufficient to supply the managers. Self-managing systems are an artificial intelligence solution that proposes to fill the need for management of highly complex networks autonomously, relieving the demand for human intervention, maintenance, and management.[5]
While autonomic computing is meant to achieve increasingly higher-level business objectives in a sophisticated manner, design methodologies of self-managing systems have not kept pace. Systems requirement gathering in current methodologies presumes requirements at lower-levels of abstraction to be given, and do not provide a means for gathering and validating requirements from higher-level business objectives. As the business objectives of self-managing systems become increasingly ambitious and move upward into the strategic-level of organizations, being able to design systems in alignment with high-level abstract business goals becomes critical for success.
The paper is organized as follows: it starts with the definition of self-managing systems in section 2. It then moves on to a discussion of agent-oriented methodologies and their shortcomings in section 3. Section 4 discusses a goal-oriented approach to agent-oriented design to “fill the gap,” and defines a set of desiderata for goal-oriented design methodology. Section 5 discusses a framework for goal-oriented methodology proposing a high-level, layered design pattern and some techniques borrowed from goal- oriented methodologies in software requirements engineering. Sections 6 illustrates an example of a goal-oriented approach to design of self-managing systems.
Self-managing systems are computing systems that can manage themselves according to high-level
objectives that system administrators define for them.[8]
IBM refers to these kinds of systems as
autonomous computing
[2] citing four aspects self-management: self-configuration, self-optimization,
self-healing, and self-protection. [3]
For the present, these aspects are treated as distinct solutions of self-
managing systems. In the future, IBM foresees gradual steps of evolutions in self-managing systems in
which the distinctions become blurred, ultimately becoming general properties of “self-maintenance”
in a general architecture.
8
IBM envisions the application of this technology in highly strategic ways, beyond the vision of network maintenance. The IBM Autonomic Computing Manifesto cites examples in mass distribution retail, healthcare, and e-services. [5]
Self-managing Systems are in fact interactive collections of autonomous elements
[8]
, or more
precisely, autonomous agents. These agents manage their internal behavior and relationships with
other autonomous agents in accordance with policies established by human managers or other agents.
The behaviors of autonomous elements are programmed in higher-level, goal-oriented terms. This
leaves agents with the responsibility to resolve details of behaviors, relationships, and connections on
the fly.
[13]
Therefore, design of self-managing system in part depends on agent-oriented design
methodologies.
This paper proposes a paradigm for design methodology of self-managing based on goal-oriented methodologies, as well as evolving, high-level design patterns. This paper lays out desiderata for such a methodology, and explores recent techniques in software requirements engineering, goal modeling, and integrated management of networks and services.
At the conceptual level, current agent-oriented methodologies tend to start requirements gathering at a lower level with respect to business objectives and goals of the proposed solution. They tend to focus primarily on individual agent modeling, and then move one layer above to model the interaction between agents, in what is called “society” modeling.
Most of the methodologies are in fact extensions of object-oriented software engineering
methodologies, and thus tend to resemble those methodologies in various ways.
[6]
In terms of agent
modeling, the focus is on the roles and responsibilities of individual agents. A higher societal-level
approach treats the interactions of the agents in the system primarily in terms of individual roles and
responsibilities like an organization.
[14]
Some of the methodologies claim to be top-down
in terms of modeling societies
of interactive
agents within them based on the individual roles and responsibilities of the agents. Essentially
societies are decomposed top-down into agents. The roles and responsibilities of the agents are meant
to satisfy higher-level engineering requirements that presumably support the business-level goals.
However, top-down
implies only a direction of analysis. It implies nothing about the starting point.
While the methodologies may in fact be top-down in terms of the direction of the analysis, they rely on
a fairly well defined set of requirements at the outset. They do little to support design when the starting
set of requirements is in terms of much higher business-level goals and objectives. Therefore, there is a
gap in the current design methodologies for sophisticated self-managing systems in terms of aligning
system requirements with high-level business strategies and objectives.
Figure 1. The gap in top-down analysis levels of self-managing systems
How should the system designer handle requirements that are given in much higher-level, abstract, business terms? How should the system designer validate requirement alignment with overall business objectives?
Agent-oriented methodologies tend not to provide a structured and systematic means of discovering
business-level goals much less decomposing them down to an agent-based societal
level model.
Moreover, these methodologies also tend not to provide a clear means of linking the agent-models,
consisting of roles and responsibilities, back up to high-level business goals for validating purposes.
The dangers in leaving these aspects out of the design methodology are as follows:
These risks are realized in terms of failed projects or results misaligned with business objectives.
Wooldridge and Jennings cite an number of pitfalls in agent-oriented development through their accumulated experience with agent projects. [15] Among these pitfalls are a number that are arguably the consequence of a lack of business-goal orientation during the analysis and design phases, two of which are presented below.
Here the authors cite “You don’t understanding why you want agents.” They observe managers “initiating projects without clear goals.” They refer to managers’ being seduced by “big promises” in IT literature, as well as their lacking “clear visions of how agents will enhance existing product lines or generate new ones.” To describe the author’s experience in more general terms, these observations are attributable to lack of formal framework for evaluation in terms of business objectives, as well as a lack of framework to support project requirement alignment with business goals.
Here the authors cite “You don’t know what agents are good for.” The authors claim that this pitfall is related to the one above in that it “concerns a general lack of clarity of the purpose of the technology and the lack of understanding about the degree of its applicability.” They cite observation of IT departments, energized from having developed one or two agents successfully, to begin looking for other applications, in a kind of ad-hoc solution-looking-for-a-problem type of strategy. They argue that this invariably “…leads to mismatches and dissatisfaction, either because the full potential of what an agent could add to the application is not achieved (because agents have the wrong functionality or emphasis), or else because only a subset of the agent’s capabilities get exploited…”
This kind of pitfall is clearly a case of bottom-up analysis of requirements, with neither a complete picture of business goals nor a clear understanding of the links to higher-level business objectives. There is a lack of linkage analysis between the agent model and higher-level objectives for the purpose of validation.
The authors vigorously discourage managers from this kind of arbitrary approach. They encourage understanding of “…how and where your new technology can most usefully be applied.” The authors’ advice goes beyond simply understanding the technology on a technical level. It is in essence advice to understand the requirements in terms of the high-level business needs of a complete system, and how agents are applied to those needs.
Self-managing, autonomic computing systems are in essence goal-oriented. They maintain themselves according to high-level, overall business goals. The intent behind autonomic computing is to free systems administrators from the details of systems operations and maintenance, and to provide users with machines that run at peak performance continuously. [8]
This intent, expressed in terms of autonomous integrated management of networks and services, is in fact nothing less than a high-level, abstract business goal. Realizing this business goal is a matter of decomposing it into smaller subgoals. At the most granular level, the subgoals are allocated to autonomous agents. In this respect, the complete discovery of business-level goals, their correct decomposition, and proper allocation to autonomous agents is critical to the design of well-functioning self-managing systems that support the higher-level business objectives.
Therefore, this paper proposes that a goal-oriented approach to design of self-managing systems as means to bridge the gap between high-level business objectives and agent-oriented design methodologies.
Figure 2. Goal-oriented approach to bridge the gap downward
In recent years, a number of advances have been made in the field of goal modeling in terms of paradigms and methodologies, primarily as applied to the field of software requirements engineering. This paper argues that parts of these methodologies have application in the design of self-managing systems. This is an active area of research, and this assertion is still subject to validation.
Before suggesting a possible set desiderata for such a methodology, let us examine some terminology in goal modeling. Goal-oriented modeling and software requirements engineering have some specific terminology defined here that will be used in the rest of this paper.
Most software engineers are familiar with the concept of functional requirements (FR). In modeling system requirements, non-functional requirements (NFR) are often just as important, and can make or break a project depending on how well they are satisfied. NFRs are defined as system requirements that are not tied to any particular functionality. [1] Examples of non-functional requirements include system-wide requirements such as performance, accessibility, and security. In this respect, modeling NFRs is relevant to modeling requirements of self-managing systems in that the four aspects cited by IBM of self-configuring, self-optimizing, self-healing, and self-protecting are all in fact non-functional requirements by this definition.
Goals are distinguished between hard and soft. The distinction between the two is that of measurability. Hardgoals are satisfied when measurable criteria have been achieved. Softgoals however, have no concrete measurable criteria. Their status is thus “fuzzy.” Instead of discussing softgoals in terms of being satisfied, which implies an absolute completeness regarding goal achievement, softgoals are “satisficed.” [1] Similar to the use of the term in domain of decision support systems, the nuance is that a goal has been satisfied to a degree that is “good enough” to accept.
The importance in the distinction between hard and soft goals is that NFRs are often represented in terms of softgoals. [1] Moreover, high-level business goals are very “soft” in nature. Therefore, representation and treatment of softgoals is important in design of self-managing systems.
Hardgoals at the lowest level are satisfied via tasks. Processes are a representation of knowledge organized into the design of an action whose results are intended to satisfy or contribute to a goal. [12] Processes define tasks. The end result of a process is achievement of or toward a goal. Softgoals at the lowest level are satisfied by “operationalizations.” The distinction here is that agents do not necessarily achieve goals by a fixed set of tasks. Agents modify their behavior according to the environment, motivated by achievement of goals assigned to them. [10] The specific behavior required to achieve such goals is not known until run-time. 16
The following proposed desiderata are based on commonality of practices in goal-oriented software requirements engineering methodologies [1] [17] [18] as well as specific practices that have applicability to resolving design issues mentioned above.
In recent years, a number of sophisticated tools in the field of goal modeling of business requirements applied to software requirements engineering have been developed. These include L’Ecritoire as part of the ESPRIT CREWS Project [17] , non-functional requirements engineering using “softgoals,” [1] and Goal-Oriented Requirements Language (GRL). These are elaborate and sophisticated tools for eliciting and modeling of software engineering requirements of complex systems from a high level, but are not completely appropriate to desiderata cited above. Experience from each of these approaches, however, yields insight into good and novel practices that can serve as part of the framework for goal-oriented design of self-managing systems.
Many software requirements engineering methodologies discuss the need to model requirements from business goals. Business goals tend to be more abstract in nature than functional and non-functional software requirements when considered in the context of an information system. It is the job of the systems designer to translate the business-level abstraction to concrete logical architectures. This can be a cumbersome and confusing process because it requires bridging two complex and disparate domains: information systems and business management. Often, this results in communication breakdowns and fluctuating requirements. [11] This leads ultimately to misaligned results, failed projects, and frustration among business managers and engineers alike.
To address problems such as these in the field of electronic commerce, researchers at IBM have proposed e-business design patterns for reliable, robust, reusable component solutions for common issues in e-business just as in software engineering. [4] IBM proposes patterns that address the solution at different layers from (highest to lowest) “business integration and composite patterns” to “application patterns” and then to “runtime patterns.”
Ray has generalized this concept to use layered design patterns as a means of developing integrated management solutions for e-business networks and services, mapping solutions from the high-level business management pattern layer, down through the logical pattern layer describing e-business management applications, and ultimately down to the platform or physical layer. [13] The mapping of the IBM layers to Ray’s generalized framework is illustrated in Figure 3 below.
Figure 3. E-business management patterns[13]
The e-business pattern framework proposes a solution integrating business-level, logical-level, and physical-level representation as a means of aligning solutions implementations at all levels. While it is not the intention of this paper to propose specific design patterns for self-managing systems, this paper builds on Ray’s design pattern concept in terms integrating design solutions from business-objectives down. Therefore, this paper thus proposes a new paradigm in design patterns for self-managing systems illustrated in Figure 4.
Figure 4. Layers of top-down integrated design for self-managing systems
This paper proposes achieving integration of design pattern models at different layers though the following:
Without identifying goals at the business management layer in a complete way, it is not possible to validate with a high-level of certainty the proposed solutions at the logical and architectural layers. In essence, goal decomposition is a tree-like structure. If a systems analyst identifies requirements at the lower levels and then maps upward toward higher level goals, he may be able to validate that his lower level requirement does indeed support the higher-level objectives; however, without performing a top- down analysis beginning with the higher-level goals, the business analysts risks developing an incomplete model at the lower levels. In the end, this leads to incomplete or misunderstood requirements.
Figure 5. Solution positioning in strategic hierarchy
Goal modeling must begin at the highest business goal level of a project. Most methodologies tend to deal with requirements at a lower level than in the area of business strategy. It is important to know where a proposed solution positions itself in terms of the strategy hierarchy of a business. In this way, it is easier to understand where the highest-level business objectives of the solution scope exists so as to know where to begin the top-down goal analysis and decomposition (see Figure 5).
Some simple guiding questions can also help situate the level of the proposed project or solution:
The above distinctions may seem abstract, so let us take an example:
IBM discusses paradigms of self-managing systems of different business levels. One paradigm is in terms of automatic maintenance and management of networks as discussed above [4] ; however, IBM also discusses strategic-level examples in its Autonomic Computing Manifesto. [5]
In this example, IBM illustrates an “e-sourcing provider” using autonomic computing as an integral part of the services the company is selling. Thus, the requirements of the self-managing system originate at the highest level of the company’s strategy, and are in fact intertwined with it. A change to the self-managing system would mean a fundamental change to the core business of the company, and in essence a change to the services it is selling to its customers.
Compare this case to a company that is using a self-managing system for its intranet as a means of more efficient network management. A change to this system might require hiring of more human managers, but it does not change the core business of the company.
In the e-sourcing provider example, understanding the goals of the business strategy is the same as understanding the requirements of the self-managing system. Every lower-level goal down to the logical and architectural requirements ought to be traceable back up to supporting a strategic-level business goal. Thus, understanding the strategic-level business goals of the self-managing system at the beginning of the design process is absolutely critical to the success of the project, and indeed to the success of the business.
There has been a large amount of literature on business goal discovery through scenario analysis, [7] which this paper will not cover. Scenario analysis originated in methodologies in human-computer- interaction and computer-supported cooperative work. Since that time, use case analysis has become standard practice in software design and development using UML, and more recently, use-case mappings. Use case mappings are a more sophisticated extension of UML use cases that have been proposed in combination with GRL as a standard for User Requirements Notation currently under consideration by the ITU-T. [9] Eliciting goals through scenarios has many advantages that will not be treated here, but the primary disadvantage of this process is that it is in effect bottom-up.
A scenario is an instance of a process. Processes are a representation of knowledge organized into the design of an action whose results are intended to satisfy or contribute to a goal. [12] Scenario analysis is in effect a means of extrapolating goals from instances of processes; however, this bottom-up methodology neither ensures completeness nor validity of a goal model.
The CREWS L’Ecritoire project addressed this issue directly with a methodology that couples goals with scenarios. L’Ecritoire provides a means to check validity and completeness through a systematic bidirectional analysis of goals and scenarios, in this case meaning top-down and bottom-up. Essentially, the systems analyst uses scenarios to elicit goals, and then uses goals to validate scenarios. Goal analysis can also be used to elicit further scenarios, and so on. [17] In this way it is possible to build a complete goal model and validate it. Therefore, in terms of satisfying the desiderata above, this paper proposes adoption a similar approach: goal-scenario coupling, bidirectional analysis, and discovery of both goals and scenarios from each other.
When eliciting and discovering goals, it is important to understand what kind of goals they are and where they are situated in relation to others. Subgoals are called refinements. While the discovery supergoals from subgoals is matter of asking questions like “Why?”, the discovery of refinements from goals is a matter of asking questions of “How?” Among refinements, there exist two types of patterns: alternative and compositional.
Compositional patterns consist of multiple refinement goals that must be satisfied in order to satisfy a supergoal (Figure 6). Discovering composite goals involves asking questions like “What else is necessary?”
Figure 6. Alternative goal pattern
Alternative goal patterns consist of subgoals, any of which may be achieved to satisfy a supergoal (Figure 7). Discovering alternative goal patterns invoices asking questions like “How else can this be achieved?”
Figure 7. Compositional goal pattern
L’Ecritoire as a tool is also able to handle the concept of a “softgoal” like GRL; however, its approach to softgoals is different. L’Ecritoire aims at continual decomposition of softgoals into increasingly concrete refinements until they are reduce to concrete elements. [17] By contrast, GRL and non- functional requirements engineering seem to accept the some softgoals will always be soft and impossible to reduce to concrete subgoals.
While this is an open area of research, it appears that no matter how “soft” a goal may be, it is always possible to decompose it a bit more as L’Ecritoire presumes. For the purposes of the desiderata above, this paper proposes adoption of this concept for handling the more abstract goals.
The set of modeling tools in non-functional requirements engineering1 and GRL9 represents goals in terms of both hardgoals and softgoals as intentional elements. It also includes tasks and resources as elements, and an array of modeling the relationships between the elements. [19]
This is fine for conventional software engineering purposes; however, for the purposes of decomposing goals for self-managing systems, goal decomposition down to the finest level just above task or operationalization ought to be sufficient to lay the groundwork for goal allocation to autonomous agents.
As current methodologies in agent modeling define agents in terms of roles and responsibilities, the responsibilities can be allocated in terms of the refined goals. The collection of responsibilities of an agent defines its role. In this way, the purpose of an agent in a self-managing system can be traced back up through the goal structure all the way to the strategic-level business objectives.
Let us return our attention to the IBM’s example of the e-sourcing provider who is acting as a service broker. [5] Below is a goal model of system. This example is far from complete and exhaustive, but it is intended to illustrate some of the goal-oriented concepts of this paper. In this example, a generic notation for goal modeling is being used rather than the more sophisticated GRL for simplicity.
Let us take a fairly simple strategic goal of “Double sales volume of services.” For simplicity, the goal model has been intentionally limited. We can begin refining this goal by asking “How?” questions and developing scenarios. In interviews with stakeholders, a number of scenarios for increasing customers might arise. It would be up to the systems analyst to recognize the commonality in the scenarios and elicit a goal of increasing customer base; however, analyzing the goal coupled with the scenarios again downward, the systems analyst may discover alternative goals for maintaining and acquiring customers. Further decomposition and scenario analysis yields more refined goals as illustrated. Ultimately, the designer arrives at goals that are so granular that further refinement would mean defining tasks and operationalizations. These goals are filled in white below. This is where the systems analyst stops.
The final subgoals are as follows: - Negotiate offer price (from service providers) - Find providers - Validate credit and performance history (of providers) - Negotiate SLA - Enforce SLA
Each of these subgoals can be traced upward to supporting higher-level goals of the overall strategic objective of the system.
The end subgoals in white also represent the collection of responsibilities to be allocated to the autonomous elements of the self-managing system. For example, we could allocate roles and responsibilities as follows: - Role: Provider Negotiator – responsible for (1) Negotiating SLA, (2) Negotiating price - Role: Provider Sourcer – responsible for (1) Finding providers, (2) Checking credit and performance history - Role: Contract Enforcer – responsible for SLA Enforcement
Perhaps we would want to split the Sourcer role into a Finder agent to find providers, and a Risk Manager to check the suppliers found, but at this point we are passing into agent-oriented methodology.
Thus, goal modeling does indeed enable decomposition from high-level abstract business objectives to autonomous agent roles and responsibilities at the top of the agent-oriented design methodology.
Figure 8. Partial goal model for e-service provider example
As self-managing systems become ever more sophisticated, and as their uses increasingly enter the realm of business strategy, there is a need to link design methodologies to higher-level business objectives. This paper proposes that this end is achievable through a goal-oriented approach. Moreover, this paper proposes evolving, high-level design patterns to integrate solutions from the goal, business, logical, down to physical pattern layers. Having defined a set of desiderata for a goal- oriented design methodology for self-managing systems, this paper illustrates an approach that leverages experience gained from goal modeling techniques as applied to software requirements engineering. Finally, this paper illustrates how such a goal-oriented method would be applied, linking lower-level systems requirements to high-level business objectives of self-managing systems.