Tactics are measures implemented to improve quality The implementation of tactics improves the level of its qual- attributes. Tactics that do the same thing are grouped into ity attribute. However, tactics may also These design concerns are selected following the quality attribute have side effects on other quality attributes.
These side effects are scenarios. For example, security can be improved by resisting usually negative. The tactics relations. An architecture pattern is a solution to an architec- within each category are implementations of the category. A pattern may have different variants, and in fact, the In some cases, tactics are alternate ways of implementing a variant used is often based on the tactics used Bachmann et al.
For example, a design concern for availability often The solution of architecture patterns consists of components 4. Interaction of patterns and tactics and connectors between them; together, these comprise the pat- tern participants. The pattern participants are interrelated; they As noted above, quality attributes are addressed through the depend on each other.
The pattern participants have both a struc- implementation of tactics. The implementation of tactics is done ture and a behavior.
The pattern provides a generic solution as a within the architectural structure of the system, including the collaboration among the pattern participants. The pattern imple- structures of the architecture patterns used. In of all its components and connectors. The code used to implement tactics can reside impact each in various ways, which are described below.
In Fig. However, implementing tactics often requires participants, or tactics. For simplicity, we have omitted other enti- changes to the pattern participants: in some cases, it is merely nec- ties usually employed in Architecture Description Languages such essary to replicate a pattern participant.
We describe these changes in detail in later improved through the implementation of runtime tactics. The tac- sections. For tem. Its Architec- Shaw, Each pattern consists of tactics and the pattern participants. It shows the pattern participants, ily implemented, depending on what the pattern participants are, but as is typical in architecture diagrams, it does not explicitly show and how they depend on each other. We explore this relationship tactics.
Comments in italics describe the pattern participants and in depth below. Of these, security and reliability are the implementation of tactics. Because tactics are implemented Quality Attributes. Interaction of patterns and tactics. Type of structure change Description Impact. Implemented in The tactic is implemented within a component of the Only a single component must change, and in a minor pattern. The external interface of the component does fashion.
This is the easiest type of change to not have to change. This is a special case of the Modify implement. Replicates A component is duplicated. This is usually done to Small changes are often required in the duplicated implement redundancy, for reliability, or to implement component, as well as components that interface to it.
This is a degenerate These changes are still usually easy to implement. Add, in the pattern A new instance of a component is added to the The component must be written, of course, but the architecture.
These changes are easy or of the architecture pattern. Add, out of the pattern A new component is added to the architecture which In addition to adding the new component, other does not follow the structure of the pattern.
Delete A component is removed We have never observed it. One might consider the selection of a simpler variant of a pattern some sort of a delete; for example, using a variant of MVC that combines the model and view. It is certainly the case that changes to the The structure and behavior of a system are obviously inter- components may cause corresponding changes in the associated twined, but are generally discussed and documented separately.
We then describe the magnitude of the interactions, and We show examples of each of the changes below. Short descrip- end this section by showing an example of tactic data for a quality tions of the patterns and tactics used here can be found in attribute and a few patterns. Interaction of structure in patterns and tactics Table 2 Changes to pattern connectors. The information may be used to modify the pattern, or if one Implemented in No change.
The replicated components and other types of structure change are listed in general order of amount of components. They may be within impact on the structure of the pattern; that is, the earlier types gen- the structure of the pattern. However, the amount Add, in the pattern New connectors added within the pattern structure. Each pattern structure.
Magnitude of impact will be discussed after the discussion needed, probably outside the pattern structure. Modify: Consider a Blackboard architecture. The reliability tac- and the components responding to the ping messages with an tic Checkpoint and Rollback is to be implemented. Because the echo. The server components simply one can roll back. This requires a small change to the messaging pro- very idea of a Blackboard.
An alternative might be to log all inputs tocol the connector , but the change can be lessened further. In this storage. Changes to connectors would be minor or even unnecessary. Replicates: In a client—server architecture, improved perfor- mance is often needed, so the Introduce Concurrency tactic 4. Interaction of behavior in patterns and tactics is used. It simply duplicates the server component. A connec- tor between the servers may be added to allow the duplicated Within behavior, one can consider the actions of the software, servers communicate and share load.
We will focus on the used in web-based download servers that have local mirror sites. Add, in the pattern: Security of a layered system can be enhanced accomplished by an action. Within actions, we see two notable by adding the Authentication tactic as an additional layer on issues: top of everything.
The security layer is a new component and associated connector, but it is within the structure of the Layers architecture. Changes to the other parts of the system will likely 1.
Add, out of the pattern: Consider a Pipes and Filters-based sys- between different components. Timing of actions: Some actions must be completed within a requires a component to manage the pinging, and to know who certain time limit. Different actions are taken if the action does does not answer. In some cases, such as hard didate components, so one must be added. The new archi- We discuss each below. Type of structure change Typical behavior change Impact.
Implemented in Actions are added within the sequence of the This type of behavior change is easy to component. Timing changes are mainly limited to the implement.
Timing of the component is well component. The timing of the component can be modeled or compared to the previous version, which can be used to assess the impact on system realtime requirements. Replicates When a component is replicated, its sequence of Changes in the actions are limited to the actions is copied intact, most likely to different controlling components, and as such are quite hardware.
Ideally, their behavior does not change at easy to implement. In unusual cases, the all. Whatever component that controls the replicated parallelism of replicated components can component requires actions added, normally within its slightly improve timing, if it is properly sequence. Add, in the pattern The new component added comes with its own This action is moderate work, because new behavior.
In most cases, the behavior will have to actions must be developed. Timing changes are follow the constraints of the pattern; the new mainly limited to the added component. Add, out of the pattern The component added will have its own behavior. However, every point where the new component interacts with the existing components must somehow deal with asynchronous actions of the new component. This implies, for example, interrupt processing.
Modify The change to the structure of a component implies The magnitude of the work needed depends on changes or additions within the action sequence of the the situation. By the way, this implementation also as action sequences.
These charts depict the essential common sequences of 5. Add, out of the pattern: Consider adding the security tactic, Intru- actions in systems using these patterns. Tactics also have behavior, sion Detection to the Layers pattern.
Intrusion Detection runs as namely the sequence of actions that satisfy the quality attribute an independent process that monitors the open ports on a sys- concern. The behavior of tactics can change the behavior of the tem for attempts to intrude. It is added as a component out of the pattern by adding or modifying action sequences of the tactic to pattern.
Its actions are completely independent of the applica- those of the pattern. It makes it straightforward to implement. But what should The following are examples: it do when it detects intrusion attempts? Should it raise a warn- ing immediately? If so, the Layers system must handle interrupts 1.
Should it simply log the events? In this case, the actions can be part of the 2. Modify: Consider a Layers architecture in which the reliabil- actions in the system. It also adds timing behavior: sending the ity tactic Passive Redundancy warm spare is implemented. Of pings is controlled by time, and the responses must come within course there is replication of the most of the system all except a certain time or the tardy component is considered to be dead.
Then behavior must be added to a cer- tain layer to send updates to the warm spare. This requires more substantial action additions, because the system must determine Behavior changes are associated with structural changes.
Table 3. Let us look at some examples: 4. Time behavior It is important to consider not only actions but timing of actions. The behavior of the tem to change in some way. Because functionality is being added, tactic is to periodically send ping messages to selected compo- in most cases, the timing change means that the overall process- nents, and they reply. Exceptions include adding parallel processing requests from clients, and distribute the requests to appropriate and other performance-related tactics.
The timing change is often servers. In many cases, changes in the timing of the system to decide when to send ping messages, just as it sends client or component are small enough that the timing change can easily requests out. It must add behavior to keep track of responses. However, if there are any critical timing constraints in The servers must add behavior to respond to ping messages right any part of the system, the impact of implementing the tactic on away.
We discuss timing in 2. Replicates: Consider the Hot Spare tactic implemented in the detail in a later section. Broker pattern. A server is replicated, and the broker controls The timing changes caused by the implementation of a tactic it. The servers have no changes in their actions.
Sequences may or may not be of concern, depending on the nature of the tactic of actions are added to the broker as follows: broker sends and the timing constraints of the system. Timing can be a system- requests to two servers. If different compo- 3. Add, in the pattern: consider the addition of the Authentica- nents share the same processor, changes in the actions of one can tion security tactic to the Layers pattern.
An additional layer for impact the timing of the others. It adds Tactics impact the timing of the system in two main ways. First, behavior to handle the authentication, which must come before the tactic may add new timing constraints to the system. Second, other actions in the system. For example, requests for service the tactic may change the timing of the system in a meaningful way must pass through the authentication layer to ensure that the i.
Each of these ways requestor is authenticated, then the normal sequence of actions can be either explicit or implicit. We explain each in more detail proceeds. Another example of addition within the pattern is adding the Encryption tactic to the Pipes and Filters pattern. This is interest- ing to consider because there are two obvious ways encryption 1. Adding new timing, explicit: In this case, the tactic contains might be added.
Therefore, the time behavior of all the respond- for encryption after it. For exam- 2. However, certain timing replicating the layers, and adding a small distribution layer on constraints can be inferred in the behavior of the tactic. For top. Although another layer is added, it is entirely consistent with example, the Passive Redundancy Warm Standby reliability the pattern. In this tactic, a standby compo- 3. There is an nal. The tactic is implemented independently of the pattern, implicit requirement that the warm standby be able to process and receives neither help nor hindrance from it.
For example, each state update message before the next one comes. But MVC has no natural place for handling catches up.
Therefore, MVC neither helps performance problems. Changing Existing Timing, Explicit: These are tactics that explic- cant. More no new behavior. Naturally, manages simultaneous user sessions. Implementing a Rollback there are no tactics that explicitly i. Changing Existing Timing, Implicit: This case is where a tactic 5. The structure of the ing to take longer, although in many cases, the timing change is pattern begins to be obscured.
Adding the tactic requires the too small to be of concern. Virtually all tactics introduce some addition of behavior that is different from the original behavior of change in timing.
An interesting example the pattern. For example, introducing Ping—Echo into a Pipes and is the Voting reliability tactic. In this tactic, different components Filters pattern requires a new central controlling component, work on the same problem.
The the ping in a timely manner. Thus While the above list gives an overview of the levels of mag- the performance is limited by the slowest voter. Clearly, as the number 4. Magnitude of impact of participants that change increases, effort for implementation, maintenance, and understanding increase. And the opportunities The sections above describe the ways in which structure and for errors increase. An important consideration is the size of the impact.
The size replication or adding in or outside the pattern; see above. Typi- of the impact — how much a pattern must change — is an indicator cally, this requires adding a corresponding connector, and changing of the work required to implement the tactic, how error-prone the an existing component that communicates with the component.
However, although one can get for impact. Therefore, connector as well as the component it communicates with. It is based on the It is not uncommon for a tactic to involve more than one type of impact on the structure and behavior of the pattern.
The descrip- change; for example, add in the pattern adding a new component tions, expanded from Harrison and Avgeriou, b , follow: and connector and Modify an existing component. In such a case, one would consider the upper and lower ranges of both types of 1. In this example, add in the pattern 2 changes has a range with the structural needs of the tactic.
For example, the Broker A particular consideration is the case where a tactic aligns with architecture strongly supports the Ping—Echo tactic because the a previous tactical decision. Within the meta-model, two tactics broker component already communicates with other compo- would affect the same pattern participants in the same way; they nents, and is a natural controller for the ping messages. Obviously, the effort to implement the 2. Behavior tactic by considering that it is implemented in the architecture as changes are minor, and generally encapsulated within pattern it now stands — including the previously implemented tactic.
Change type Number of changes Impact range Comments. This nent. Depending on the application, the above table. Recovery — Preparation and Repair Note that while we consider impact on development effort, a. Create the receiving component the impact other quality attributes; e. To distribute the input to the different voting improve security often have a detrimental effect on performance. Add in the pattern, but the work of the architectural tradeoff analysis one must do Bass et al.
Send the 4. Each paragraph mance; a common goal in Pipes and Filters. As in voting, the adds implementing the tactic in a Pipes and Filters architecture. In order to be complete for reliability tactics, each common c. A pipe mon architecture patterns. Add in the pattern, 1. It is a bit easier to add distributes the work.
Duplication with simple add in the pattern, not have to respond to an interrupt. This is particularly problematic in legacy state when it comes back up. Therefore, it is important to be of the pattern. However, once the existing ones. If you must use it, use a monitoring process and views of the architecture IEEE, ; Kruchten, Add out of the pattern, plus major tionships associated with them Clements et al.
Clements changes to components. Prevention types, which highlight different characteristics of the architecture a. Kruchten et al.
Add out of the pattern. In spite of b. Shaw et al. However, the diagram styles vary widely; there c. Harrison and Avgeriou, a. These points lead to three requirements on a tactic documenta- tion method:. Implementing tactics in patterns 1. In order to meet the needs of existing architectures, it should be possible to apply it to existing architecture diagrams. Further- How does one use the model presented above in the implemen- more, it should be clear what changes were made, and that the tation of a system?
There are numerous processes for architectural design 2. It should be adaptable to differing amounts of formality in the Hofmeister et al. Therefore, it should be semantic-free, but architecture patterns Harrison and Avgeriou, b. Regardless ideally should allow for adding semantics as desired by the user. Any method of documenting tactics must be compatible with which patterns and tactics to use.
When one is considering which different architecture diagramming styles. It must be easy to add to the diagrams. Where in an architecture under consideration would a tactic be implemented?
We propose a method of annotating architecture diagrams 2. What is the magnitude of the impact of a given tactic on a given with tactic implementation information. It is a clear way to doc- architecture? It is If a legacy system is under consideration, one also needs to based on the types of changes to architecture patterns as described know the implementation constraints when adding new tactics. For example, if the Passive Redundancy tactic is added in order to There is a great deal of variation in styles of architecture dia- improve the reliability quality attribute, one needs to know the grams.
In our studies of 47 architecture diagrams Harrison and conditions and methods of data storage including which reposi- Avgeriou, a , we found that while all used boxes and lines, tory architecture pattern is used — see Avgeriou and Zdun, , the meanings of the boxes and lines differed. Few explicitly used and where it sits in the architecture e. Therefore, a key advan- pattern. Regardless of the architecture notation style used, these questions see related work section for details. In order to people can continue to use it and add the annotation to show help them do so, we show a method of annotating architecture the tactics added and changes required.
This is especially true diagrams with tactic information. One can add annotations to boxes or lines as needed. This annotation can be used to evaluate alternatives during And other methods besides the circles may be used. For example, initial architecture, and can be used to show tactic information of UML components can be annotated through stereotypes or notes existing systems.
LNCS, vol. Wood, W. Gamma, E. Schmidt, D. Avgeriou, P. Brooks, F. Hofmeister, C. Aguilera, M. Rozanski, N. Booch, G. Scott, J. Tekinerdogan, B. Abowd, G. Maranzano, J. Clements, P. Gokhale, S. IEEE Trans. Dependable Secur. Software architecture designers inevitably work with both architecture patterns and tactics. Architecture patterns describe the high-level structure and behavior of software systems as the solution to multiple system requirements, whereas tactics are design decisions that improve individual quality attribute concerns.
Tactics that are implemented in existing architectures can have significant impact on the architecture patterns in the system. Similarly, tactics that are selected during initial… Expand. View via Publisher. Save to Library Save. Create Alert Alert. Share This Paper. Background Citations. Methods Citations. Results Citations. Figures, Tables, and Topics from this paper. Citation Type. Has PDF. Publication Type.
More Filters. Improving quality attributes of software systems through software architecture patterns. View 2 excerpts, cites background.
0コメント