Goal-Oriented Approach
to Architectural Design


This is the first part on the design of software architecture for the APN-based COBRA system. Using a comprehensive scenario analysis, this part firstly describes the process of specifying requirements on the system in terms of an enterprise model (domain theory), a software system model, and possibly a developer's world model. Each of the three models consists of both functional and non-functional requirements. Using the scenario set, this part then describes the process of identifying and selecting software architectural components.

The approach to architectural component identification is goal-directed, i.e., organizational requirements are treated as goals to be achieved, which are then operationalized in terms of organizational tasks, which are in turn allocated to organizational agents and the system (agent). This process would involve a number of alternative design options for operationalization and a number of alternative allocation options.

As a first-cut approximation, the set of all tasks allocated to the system will be considered as the set of architectural components. Throughout the process, non-functional requirements on the enterprise (to be satisficed partially through non-functional requirements on the system) will, on the one hand, will be satisficed through a number of operationalized tasks, and act as the criteria for selecting among alternatives for functional choices on the other. Hence, the transition between the two processes of requirements engineering and system/software architectural design will be seamless.
 

Rejuvenating Table of Contents
Sections Description
Requirements Context analysis
Using Scenarios for Goal-Oriented Architecting
Collaboration Cycle
The Scenario Assistant in Action
Functional Requirements
Non-Functional Requirements
Componentization Decompose the system into components
Architecting Components are initially ready. How to compose them?

letter r equirements
Total collaboration:collaboration for both requirements engineering and architectural design
Partial collaboration: some collaboration, and some distributed autonomy, for requirements
                                             eliciation, specification, validation, architectural componentization,
                                             architectural connection, architectural design verification,
                                             and collaborative integration if any distributed processing is involved.
The two modes of collaboration can have several variants, and be combined. For example, a goal-oriented compositional requirements modelling would be a variant. Here, the starting point would be an overall
understanding of the high-level objectives and goals to be achieved. Then, each local team may try to optimize system operations (involving various types of agents) at their own organizational units, and later put a concerted effort with other teams for a global optimization.

A goal-oriented compositional architectural design would be another variant. In this kind of architectural design, an architecture is built out of existing software components for most of which implemented systems
are readily available. The design process will still be goal-oriented in that the components are selected, possibly among competing alternatives located at multiple sites over the networks, according to the given requirements, which can possibly be modelled either distributively or collaboratively.

One objective of this project is to investigate a flexible mechanism through which all modes of collaboration can easily be supported.

 


Context Analysis

In the distributed, cooperative processing paradigm, humans are expected to collaborate during observation, understanding, discovery, learning, analysis, problem formulation and solving, evaluation (and of course entertainment too). Central to this paradign is the notion of collaborative knowledge networks - networks of intelligent agents (capable of) performing a wide variety of tasks through reasoning with, and about, knowledge to achieve shared goals. These networks utilize the underlying multimodal communication networks and computers, and intended to enrich the set of existing modalities and their interactions.

To conquer the inherent complexity of a collaborating society, the COBRA tool set will assist the distributed agents with sharing of knowledge, detection and resolution of conflicts, coordination of distributed tasks, individualization, differentiation and integration of products. Ultimately the tool set is intended for quicker adaptation of the project to changes, flexible sharing of resources, more accurate system modelling, reduction in duplicated efforts, decreased cost of travel, more flexible scheduling of deadlines and task durations, easier coordination, reduction in project cycle and cost, more creative productivity, etc. 



drinking water Using Scenarios for Goal-Oriented Software Architectural Design

Scenario analysis facilitates goal-oriented analysis of a system supporting the distributed, cooperative processing paradigm. During scenario analysis, goals are identified of both functional and non-functional for the system as well as  for its context/enterprise (and possibly the development world as well). During scenario analysis, goals are related and co-related to each other, operationalized, supported by evidences or denied by counter-evidences, and prioritized.

Scenarios can be used:

in modelling requirements (forward engineering)
in designing architectures (forward engineering)
in evaluating if existing architectures/components can meet new requirements (reverse engineering)
in constructing old requirements or in bridging the gap between existing
       architectures/components and defective old requirements (reverse engineering)
in system evolution

The Scenario Assistant (SA) is used to analyze the behavior of a particular software system, e.g., a mobile communication system, being developed by a particular organization. The Scenario Assistant will work together
with the Goal Assistant (the FR Assistant and the NFR Assistant) and the Architecture Assistant  to define the
requirements as the problem to be solved and to construct an architecture as a solution to the problem.

Functional SA
Functionality of the organization, e.g., produce a model of (software) system behavior
Functionality of the system, e.g., support the production through basic model constructor, simulator, animator, etc.
Relationship between the two, to establish both forward and backward traceabilities
Non-Functional SA
Quality concerns of the organization, e.g., increased competitiveness, maximum resource sharing, reduced production cost and cycle, increased product quality
Quality concerns on the software system, e.g., maximum support for coordination, maximum support for conflict & synergy detection, fast communication, maximum transparency of locality
Relationship between the two, e.g., maximum support for conflict detection HELPs increased product quality, but could HURT fast system response
Agent Dependency SA

Functionality of the organization --Task allocation-->
Functionality of domain agents, hardware agents, and system agent
Functionality of system agent -->Task allocation-->
Operationalization of functional goals, e.g.,
  • domain agents: requirements engineers go through (distributed) RAD to build a model of system behavior
  • system agent: keeps track of meetings, records information, and possibly produces a preliminary version of a model of system behavior
Operationalization of non-functional goals, e.g.,
Relationship between agents in the organization and the system agent, to identify whose work will be supported by the system (backward traceability) and to assure domain goals and tasks are effectively supported by the system
Script/Sequence SA
Refine domain functions, system functions, and domain agents to carry out domain functions and use system functions, which have been identified though Functional, Non-Functional and Agent Dependency SAs.
For each use, construct episodes and scripts
Conflict & Synergy SA
Detect conflicts and synergy between NFRs during operationalization
Detect conflicts and synergy between FRs during operationalization
Detect conflicts and synergy between NFRs and FRs during operationalization
Through episodes and scripts, carry out more complete analysis of conflicts and synergy between NFRs, FRs, NFRs and FRs, during operationalization
Class & Instance SA
From classes to instances, for agents, episodes and scripts
From instances to classes, for agents, episodes and scripts
Criticality & Domain Characteristics SA
vital few trivial many, priority and dominance for NFRs, FRs, Agent Dependency
workload on domain and system tasks, availability of domain and system agents
Component SA
System functions as components of the software architecture hang together when subjected to classes and instances of episodes and scripts with criticality and domain characterstics appropriately taken into consideration.
This is to illustrate both normal sequences of interactions, between the agents in the environment and the system, and "what can go wrong" lines of hypothetical reasoning that can be applied to the mostly normal scenario set for the distributed, cooperative process. This is also to take a deeper look at the mostly normal and failure scenario sets by raising "who, when and where" kinds of questions, in order to ensure that the set is satisfactorily complete, sound, consistent, and clear. Ultimately, then, we will have confidence in the completeness, soundness and clarity of our investigation into the problems of user-centered Knowledge Network (KN) and into potential solutions utilizing the underlying communication network.


Collaboration Cycle

Preparatory collaboration
Prepare a preliminary schedule (initial, interim and final progresses and evaluations). Determine who will participate, when, and any special arrangements Draft a criteria to judge when the work can be said to be complete
Make sure all participants expected are virtually present Let the first session get started, with all participants as a whole or split in several groups.
During collaboration
Work according to the preliminary schedule. Make sure expected participants do participate according to the schedule. Make sure all special arrangements are met.
Keep track of work progress. Find any deviation of the work from the expected quality, time, and cost. Detect, record, negotiate and resolve any conflicts. Detect, record, and maximally complement each other and utilize synergy.
At the end of collaboration
Get a consensus that the work is completed Ensure the work is readily evolvable with a proper version management Detect, record, negotiate and resolve any conflicts. Detect, record, and maximally complement each other and utilize synergy.


The Scenario Assistant in Action

Ontario: Hi, everyone. I'm starting to work on the project. Now I have two states and one transition, which I hope you also see on your screens. {#s=2, #t=1}
Texas: Yes, I see them. I have added another state.
North Carolina: Yes, I see them. I have added three other states and one transition. In total, I see five states and two transitions. {#s=5, #t=2}
North Carolina: Pause... Wait a minute, now I also see another state (S11) defined by Texas. {#s=6, #t=2}
Texas: Oops, I was about to delete S11. Ok, now you, Ontario and North Carolina, shouldn't see S11.
Texas: Ok, I see what North Carolina sees. Now, I have added three other states and four transitions. {#s=9, #t=6}
Ontario: I have added an arc. Please tell me if this is acceptable to you both.
Ontario: Pause... Looking at the whole thing, I feel one of the states defined by North Carolina is not quite right (S21). Can you look into this? In the meantime, we have a freeze on the potentially erroneous state. I'll work on another part of the project which does not seem very much related to the potential error.
Texas: Ok, I'll wait for North Carolina to respond. In the mean time, I'll also work on another part. By the way, please send me everything you have when done not just the changes.
North Carolina: I need to think about it carefully, but I do not want to hold you for too long. So, I have divided the specification into two parts, one that is unlikely to be affected, and the other definitely affected. The first one likely to be affected is: {T14->S21<-T20}
Texas: Good idea, North Carolina. By the way, I am about to go over what Ontario and North Carolina have done. Ontario, can you see more carefully then if my part suits the needs on your end?

Would we want to impose certain constraints on the way the different branches act, and interact with each other? The answer seems to be yes, if we want a "good enough" specification to be developed in a reasonable amount of time and cost, and if such constraints are flexible. KN (Knowledge Network) level observations:



Functional Requirements

The tool set under development will assist in handling distributed, cooperative processing. To start with, it will offer basic utilities for defining and validating (e.g., through animation and simulation) a system behavioral model. Towards an enabling technology for the new paradigm, a number of functions will be offered for:

communication --- both synchronous and asynchronous, both simple and more complex, both immediate and delayed, etc.;
coordination --- plan (who does what and when), do, check (has everything done according to the plan?), act (if any deviation from the plan, any defects, rectify them);
integration --- detect boundaries and differences between the models developed by different agents, negotiate if any inconsistencies are found, merge consistent parts;
and
negotiation --- resolve inconsistencies through individual decisions and consensus
.

The tool set will also use the NFR Assistant to define vital "-ilities" for realizing the new paradigm, to investigate methods for achiving them, to built them into the new process, and to validate during operation that they are indeed met. As a test-bed, we are working on the modelling and analysis of system behavior using Augmented Petri Net (APN), a formalism which is expressively more powerful than Finite State Machines. Just like Petri Net, APN offers three modelling features, i.e., decision making, concurrency, and synchronization. However, APN is expressively more powerful conceptually than Petri net, as it allows for general expressions to be associated with transitions as triggering/activation conditions (e.g., agent interaction <>, temporal events, internal events), and for various forms of actions to be associated with transitions as atomic transactions (e.g., agent interaction <>, temporal event generation, internal event generation --- which bring about changes).

The tool set will be implemented using Java/JavaBeans so as to enhance platform-independence, interoperability, composability (plug-and-play), and distributability. An incremental approach will be used in developing the tool set so as to have a running system throughout the project. Members of the COBRA project, as well as non-member practitioners in industry can play with the tool to debug deficiencies in both the problem statement and its solution.

At the most general level, the COBRA tool will be used to model possible scenarios of the new paradigm: i) distributed (and centralized cooperation); ii) distributed and cooperative. Through these (meta-models of) scenarios as both a starting point and an aid for analysis, models of the paradigm will be built, analyzed and understood. This process will be repeated until a high level of confidence in the problem statement is reached.

One particular concern at this level lies in the modelling and analysis of distributed, cooperative, multimedia-based workflows. The result of this part of our research will help understand how to make a smooth transition from the traditional groupware technology, which enforces more of fixed routes, rules and roles, to any enabling technology for the new distributed, cooperative processing paradigm, which should allow for more flexibility for the planning of routes, rules and roles, for the tracking of work progress, and for the adjustment of the old plan. Identifying synchronization and concurrency control patterns

Using the NFR Assistant to analyze the quality of the general distributed, cooperative process model, improve it, and make it amenable to customization for the modelling of the particular types of processes.

At the most specific level, the COBRA tool will be used to model the behavior of a variety of system types, including a mobile communication system. Hence, we will be using a particular scenario for the particular system chosen to be modelled.


Non-Functional Requirements

Decomposition of "-Ilities"

Each architectural choice can make either positive or negative contributions towards the satisficing of non-functional requirements (NFRs). There are two cases:



Componentization



The Generative Process

The quality of the architecture is as good as the decisions. Rely on your intuition, consider a small number of alternatives at each decision point, prune the tree by making informed decisions considering "-ilities", and generate a first-cut approximation both functionality-wise and quality-wise. Repeat the process while making improvements by considering more alternatives and making better decisions at various decision points by considering more "-ilities" and perhaps a different prioritization scheme.

Guidelines:

The process of system/software architectural design can take into consideration the following guidelines:


Back to my home page Requirements Next to Architecture Top