Beruflich Dokumente
Kultur Dokumente
Architecture
1
Proceedings of the Ninth Asia-Pacific Software Engineering Conference (APSEC’02)
0-7695-1850-8/02 $17.00 © 2002 IEEE
some techniques[8,9] have adopted statistical models, e.g., of concerns. Architects capture their design decisions in
Markov Chain Model and Queuing models. On the other four views and use the fifth view to illustrate and validate
hand, the ADL(Architecture Description Language) them. Also, this use of multiple views allows for handling
research communities have developed various kinds of separately the functional and non-functional requirements.
languages to represent architectural information relevant
to their specific quality attributes, and they have analyzed 2.3. Software requirements
architecture using them[10]. But these approaches tend to
require considerable efforts from the software engineer Software requirements are statements of need intended
for creating specifications and making predictions. In to convey the understanding about a desired result. They
addition, the applicability of a particular model or an can be defined as consisting of functional requirements
ADL is restricted by the power of its representation. and non-functional requirements (also referred to as
quality requirements)[15]. Functional requirements
2.1.2. Techniques using simulations or prototypes. capture the functionality of a system, and non-functional
These techniques require that the main components of the requirements constrain the solutions that might be
architecture are implemented and other components are considered. In general, non-functional requirements tend
simulated resulting in an executable system[3]. But, these to be related to one or more functional requirements. In
techniques require information about the system under addition, non-functional requirements fall under two main
development that is not available during the architectural categories of quality: qualities such as availability,
design. Additionally, creating a detailed simulation or performance, flexibility, integrity, and reliability from a
prototype for the purpose of evaluation is typically user’s point of view and qualities such as maintainability,
expensive[6]. portability, and reusability from a developer and
maintainer’s point of view.
2.1.3. Scenario-based evaluation techniques. A
scenario-based technique is used to attempt to reduce the 3. Our approach to software architecture
problematic nature of evaluating a high-level design with
evaluation
respect to software quality attributes[3]. To assess a
particular quality attribute, a set of scenarios has to be
Our approach is divided into three main areas of
developed to make concrete the actual meaning of the
activities: preparing the evaluation, executing the
quality requirements. The technique focuses on
evaluation, and completing the evaluation. More
architectural features, which will reveal design biases and
specifically, they are activities that make data useful for
flaws early in the life cycle of the system. In these
actual evaluation, activities for finding design decisions
techniques, however, there are a number of uncertainties
and reasoning about them, and activities that organize
such as the granularity of representation and how
evaluation results, respectively. Figure 1 shows the
representative the scenarios are in respects to their
overall steps of the proposed approach.
evaluation steps[11]. In [1,2,3,12], scenario-based
Phase1.Prepare Step1. Define the template for requirements
techniques have been introduced. Step2. Generate an evaluation contract
the evaluation
Step3. Define the template for architecture
2.2. Architectural documentation
Phase2.Execute Step4. Identify the architectural subdesigns
Having good architectural documentation is crucial to the evaluation using functional requirements
Step5. Determine the set of architectural
the success of any architectural evaluation method[13].
design decisions
The large variance of a quality assessment based on Step6. Determine the rationale for each of the
architectural analysis is associated with the granularity of architectural design decisions
the system description necessary to perform an evaluation. Step7. Identify the relationships among the
decisions
The goals of architecture documentation are to record the
architects’ decisions and to communicate the architecture. Step8. Group the set of decisions
Phase3.Complete
To meet these goals, the documentation must be complete the evaluation Step9. Generate the prediction data
and unambiguous. For these reasons, different views can
be used to enhance the understandability of the Figure 1: Evaluation steps of our approach
architecture and to focus separately on particular concerns,
as Kruchten pointed out[14]. In this respect, the 4+1 view Phase1. Prepare the evaluation
model[14] of architecture is one solution to obtain good
architectural documentation. The 4+1 view model In this phase, we plan the goals and scope of our
organizes a description of software architecture using five architectural evaluation and document the architecture as
concurrent views, each of which addresses a specific set well. Our approach uses the features of a 4+1 view model
2
Proceedings of the Ninth Asia-Pacific Software Engineering Conference (APSEC’02)
0-7695-1850-8/02 $17.00 © 2002 IEEE
of architecture with UML, and handles the functional and components and their interconnection can be described in
non-functional requirements separately. deployment view. Also, architectural style or pattern can
be described in each view. Due to this consensus of
Step1. Define the template for requirements: The first architecture-level information, more explicit evaluation is
step in our approach is to separate functional possible.
requirements from non-functional requirements. It serves Table 1: Architectural information in 4+1 view model
two main purposes: Views Architectural information
ƒ It supports the generation of an evaluation contract. Use case -an abstraction of important requirements
ƒ It helps find architectural decisions afterwards. -the principal purposes of system
As a result, we have an associated template, which is a Logical -a set of abstractions and their relationships
form for documenting functionality and non-functionality -logical inter-connection mechanism
Development -the organization of the actual software
separately as shown in Figure 2. In the template, each
elements (i.e., components or subsystems)
non-function is related to one or more functions. -the components’ interfaces
Functional Req. (FR) Non-Functional Req. (NFR) Process -the concurrency and synchronization
FR1: - - - - - - - - - - - NFR1: - - - - - - - - - - Deployment -physical distribution of software
FR2: - - - - - - - - - - - NFR2: - - - - - - - - - -
components
FR3: - - - - - - - - - - - .....
Phase2. Execute the evaluation
FR4: - - - - - - - - - - -
..... When we have completed the previous steps, we are in
Figure 2: The template for requirements a position to perform an actual architectural evaluation.
During this phase, we determine what is useful data such
Functional requirements are used to determine interesting as subdesigns, architectural design decisions, and their
designs, and non-functional requirements are used to rationale, which are all helpful in selecting or improving
identify quality attributes. Also, the relations between architecture. We illustrate the steps for this phase in the
functional and non-functional requirements are used to following.
co-relate information such as quality attributes, rationale,
design decisions, and subdesigns. Step4. Identify the architectural subdesigns using
functional requirements: Once the functional
Step2. Generate an evaluation contract: Generating an requirements have been defined and an architectural
evaluation contract determines how many requirements documentation has been proposed, we can find the
will be handled and the kinds of qualities that will be subdesigns comprising the architectural model with
dealt with. It is essential to clarify the scope and goals of respects to each functional requirement within the scope
an evaluation because an architecture evaluation will be of the evaluation. To find them, we perform the following
derived from them. During this step, an evaluation activities.
contract, which tells the scope and goals of an evaluation ƒ Identify use cases describing the primary purposes of
and the relevant quality attributes, is defined. To produce the system.
such a contract, the following activities need to be ƒ Determine views from quality attributes related to the
performed: functional requirements.
ƒ To rank and clarify the scope of the functional ƒ Identify subdesigns using the sequence of actions of
requirements. each use case.
ƒ To determine the set of non-functional requirements. The result of this step is the set of subdesigns, on which
ƒ To identify the required qualities and their relationships. the evaluation is focused.
As an aftereffect, expectations from the evaluation can be
concluded and negotiated. Step5. Determine the set of architectural design
decisions: Architectural design decisions are defined as
Step3. Define the template for architecture: The next the selection of solutions to design problems faced during
step is to represent the candidate architectures in the 4+1 architectural design. According to this definition, step5
view model using UML. That is, the template for contains two subsequent activities that determine the
architecture is defined as the 4+1 view model. Through architectural decisions. They are as follows:
this work, good architectural documentation can be ƒ Determine the decision variables, which denote design
acquired. In our 4+1 view model, architectural problems. For functional requirements within an
information is summarized as shown in Table 1. For evaluation contract, one or more design issues are
instance, component concurrency and their determined from their actual designs.
synchronization can be described in process view, and
3
Proceedings of the Ninth Asia-Pacific Software Engineering Conference (APSEC’02)
0-7695-1850-8/02 $17.00 © 2002 IEEE
ƒ Determine decision values, which denote the selected Qualities
solution to each problem. These values are reasoned Rationale
about and compared with other architectural alternatives.
During this step, the design decisions are determined by Architectural design decisions
both the decision variable and its value.
Subdesigns
Step6. Determine the rationale for each of the Figure 3: The structure of prediction data
architectural design decisions: Once the architectural
design decisions have been found, the rationale for each The end result of this step is not only helpful in
of them must be analyzed in isolation. As shown in Table identifying areas of risk in a design, but also useful in
2, each rationale contains rationale-id, architectural understanding an architecture’s fitness with respect to its
design decision, candidate alternative, and consequences. quality attributes. In addition, it can support gradual
To complete these contents, each decision has to be evaluation and control the complexity by extending the
reasoned through. scope of the evaluation.
So far, we have briefly introduced our approach to
Table 2: The contents of the rationale
Rationale ID rationale identity
software architecture evaluation. In summary,
Architectural design the selection of solutions to design architecture evaluation is prepared, executed, and
decisions problems during architectural design completed systematically through three phases based on
Candidate the possible solutions to design the 4+1 view model.
alternatives problem
Consequences effects on quality attributes 4. An example
When we reason through the decisions, we may use the To address the practical applicability and features of
various design theories[16], or refer to other alternatives our approach, we have chosen an example that has
from competing architectures. So, we elicit statements already been extensively applied in the research literature,
about the design decisions’ effects on particular quality that of the automatic teller machine system (discussed in
attributes. [17] and elsewhere). In this example, particularly, we
describe ATM system’s architecture based on
Step7. Identify the relationships among the decisions: architectural information summarized in Table 1. We
Here, the dependencies among the decisions are focus on the applicability and understanding of our
determined. That is, a decision is identified in how it will approach in the real world. In addition, the point here is
affect quality attributes in relation to other decisions. It to show that the process of performing an evaluation on
helps in determining the tradeoffs among quality the ATM system produces useful bits of information to
attributes. assess its quality attributes systematically.
4
Proceedings of the Ninth Asia-Pacific Software Engineering Conference (APSEC’02)
0-7695-1850-8/02 $17.00 © 2002 IEEE
Phase1. Prepare the evaluation system as use cases, which are an abstraction of the most
Step1. Define the template for requirements: Firstly, important requirements.
the functional and non-functional requirements are
summarized in isolation as described in Figure 4. This is
System Startup
just the subset of ATM system requirements. <<extend>>
Invalid PIN Extension
Functional requirements <<extend>>
Operator
The ATM system must be able to provide the following
Cash Withdrawal Transaction
services to the customer.
<<extend>>
-A customer must be able to make a cash withdrawal from
any suitable account linked to the card.
<<include>> Deposit Transaction
-A customer must be able to make a deposit to any account Customer
<<extend>>
dispenseCash()
no architectural description of an ATM system, so we had cardNumber()
PIN()
ejectCard() entered on
retainCard() Transaction
to create one. In building the architectural models of the doInvalidPI NExtension() getMenuChoice()
issueReceipt() sendToBank()
ATM system, we determined various architectural design <<security=conf identiality>> getTransaction()
Cashier <<security=conf identiality>> finis hTransaction()
factors in each view as can be seen in Table 3. Station +performed
Development finishWithdrawal()
initiateDeposit()
getBalance()
setBalance() *
Performance -distributed transaction model Process finishDepos it( )
Cash Card
bank_code
Deployment card_code
serial_number
Here, we will discuss only the meaningful parts of ATM (a) the abstractions of ATM system and their relationships
system’s architecture related to the contents of Table 3.
Figure 5 shows us the primary purposes of an ATM
5
Proceedings of the Ninth Asia-Pacific Software Engineering Conference (APSEC’02)
0-7695-1850-8/02 $17.00 © 2002 IEEE
P1:Bank Forw1:Forwarder Recv1:Receiver Recv2:Receiver Forw2:Forwarder P2:Bank ATMUser:Customer :ATM :Account :Bank CardAgency:Customer
deliver enter_password
lock
IPC msg
grant
receive
unmarshal verify_card_with_bank
bank_account_OK
m arshal
demand payment(account, amount)
deliver lock
IPC msg
not grant
receive
unlock
unmarshal
unlock
lock-X
unlock
Subsequently, Figure 7 shows the system description as timed out
aspects of a process view. In Figure 7(a), dynamic
behaviors for replication and synchronization of an timed out
account while performing transactions are shown. Figure
(c) concurrent accesses and the states of Account
7(b) shows the transaction model used in performing
Figure 7: Process view
transactions. Moreover, Figure 7(c) shows the situation of
concurrent access to the Account component and the
Finally, the components’ composition and their
internal states of it. These handle the quality attributes
deployment are shown in Figure 8. An ATM system
such as concurrency, availability, and performance, which
contains the four major components, which are deployed
can be addressed in the process view of architecture.
ATM Transaction AccountDB AccountBackupDB
according to client-server structure.
server: BankServer
request_transaction
request_info
<<DB>> <<BackupDB>>
re ply_info Account BAccount
process_transaction <<BackupDB>>
BAccount
Transactions
update_account <<DB>>
reply_transaction update_account Account Update
Transactions
Update
(a) dynamic behaviors for replication client: ATMKiosk
ATM Transaction Account
ATM-GUI
request_transaction BEGIN
ATM-GUI
QUERY
getBalance()
COMMIT
reply_transaction
request_transaction
BEGIN (a) development view (b) deployment view
QUERY
setBalance()
Figure 8: Development view and deployment view
COMMIT
reply_transaction
Phase2. Execute the evaluation
6
Proceedings of the Ninth Asia-Pacific Software Engineering Conference (APSEC’02)
0-7695-1850-8/02 $17.00 © 2002 IEEE
and 8 show subdesigns in relation to functional
requirements within the scope of the evaluation shown in Table 6: Group of decisions per quality
Figure 4. Quality Group Variables
Heterogeneity positive Dp2pCommunication
Step5. Determine the set of architectural design Concurrency positive DstateOfaccount
decisions: In our example, some decisions have been negative DmodelOftransaction
identified. Table 4 briefly illustrates decision variables Security positive DlocationOfsecurity
and their meaning. Their decision values can be found Availability positive DreplicationOfdb
positive DmodelOftransaction
from each of the views shown in Figure 6, 7, and 8.
Performance DlocationOfsecurity,
Table 4: Decision variables and their meaning negative
DreplicationOfdb
Decision variables Meaning
Dp2pCommunication peer-to-peer communication
DstateOfaccount State of account Step9. Generate the prediction data: Finally, Figure 10
DlocationOfsecurity Location of security mechanism shows the structured form of the evaluation result. This
DreplicationOfdb Replication unit and synchronization structure illustrates the upward relations from identified
DmodelOftransaction Transaction model in DB operations subdesigns to qualities. Thus, it helps us understand the
fitness of architecture with respect to its quality attributes
Step6. Determine the rationale for each of the or improve it to meet those quality attributes.
architectural design decisions: As an example, a Heterogeneity Concurrency Security Availability Performance
7
Proceedings of the Ninth Asia-Pacific Software Engineering Conference (APSEC’02)
0-7695-1850-8/02 $17.00 © 2002 IEEE
are close to the ambiguities in the architectures [3] Bosch, J., Design and Use of Software Architectures,
themselves and thus these ambiguities can be reduced by Addison-Wesley, 2000.
determining the set of architectural information in the [4]Clements, P., Kazman, R., and Klein, M., Evaluating
architecture. In our approach, therefore, we proposed Software Architectures, Addison-Wesley, 2002.
using the 4+1 view model in UML to reduce the [5] Allen, R., “A Formal Approach to Software Architectures”,
ambiguities in the architectures studied, and presented CMU-CS-97-144, Carnegie Mellon University, May 1997.
steps for evaluating an architecture explicitly based on the [6] Abowd, G., et al., “Recommended Best Industrial Practice
proposed model. Compared with related works described for Software Architecture Evaluation”, CMU/SEI-96-TR-025,
in Section 2, the features of our approach can be Canegie Mellon University, January 1997.
summarized as follows: [7] Eriksson, H. and Penker, M., UML Toolkit, Addison-Wesley,
1998.
ƒ Quality attributes is widely covered. In our approach,
various quality attributes to be addressed in the 4+1 view [8]Klein, M. and Kazman, R., “Attribute-Based Architectural
Styles”, CMU/SEI-99-TR-022, Carnegie Mellon University,
model, e.g., performance, maintainability, availability,
October 1999.
security, reliability, and interoperability, can be evaluated.
[9]Inverardi, P., Mangano, C., Russo, F., and Balsamo, S.,
ƒ Granularity level of system description is appropriate.
“Performance Evaluation of a Software Architecture: A Case
In our approach, an architecture includes the information Study”, Proceedings of the 9th International Workshop on
determined by the 4+1 view model using UML. Thus, the Software Specification and Design, April 1998, pp.116-125.
architecture can be described in the appropriate level of [10] Medvidovic, N., “A Classification and Comparison
abstraction for wide-spread application. Framework for Software Architecture Description Languages”,
ƒ Evaluation process is well defined. In our approach, UCI-ICS-97-02, University of California, Irvine, February 1996.
architectural evaluation can be explicitly performed based [11] Clements, P., Bass, L., Kazman, R., and Abowd, G.,
on the 4+1 view model without the difficulties presented "Predicting Software Quality by Architecture-Level Evaluation”,
by other techniques such as ADL techniques, simulation Proceeding of the 5th International Conference on Software
and prototype techniques, and scenario-based techniques. Quality, October 1995, pp.485-498.
In conclusion, we presented an approach to software [12]Dobrica, L. and Niemela, E., “A Survey on Software
architecture evaluation with the 4+1 view model of Architecture Analysis Methods”, IEEE Transactions on
architecture. In addition, we applied the proposed Software Engineering, IEEE Computer Society, Vol. 28, No. 7,
approach to an automatic teller machine(ATM) system to July 2002, pp.638-653.
illuminate the approach. [13] Kazman, R., et al., “Experience with Performing
In the future, we will refine our approach and show its Architecture Tradeoff Analysis”, Proceedings of the 21st
International Conference on Software Engineering, May 1999,
substantiality through lots of experimental results. Also,
pp.54-63.
we will discuss some interesting issues, such as handling
[14]Kruchten, P., “The 4+1 View Model of Software
ambiguities in software requirements and dealing with
Architecture”, IEEE Software, Vol. 12, No. 6, November 1995,
bad architectural decisions. pp.42-50.
[15]Kotonya, G. and Sommerville, I., “Requirements
6. References Engineering with Viewpoints”, Software Engineering Journal,
January 1996, pp.5-18.
[1] Kazman, R., et al., “The Architecture Tradeoff Analysis [16]Buschmann, F., et al., Pattern-Oriented Software
Method”, The 4th IEEE International Conference on Architecture – A System of Patterns, John & Sons, 2000.
Engineering of Complex Computer Systems, August 1998, [17]Composable Systems Group at Carnegie Mellon,
pp.68-78. http://www-2.cs.cmu.edu/People/ModProb/.
[2] Bass, L., Clements, P., and Kazman, R., Software [18]Slama, D., Grabis, J., and Russel, P., Enterprise CORBA,
Architecture in Practice, Addison-Wesley, 1998. Prentice Hall PTR, 1999.
8
Proceedings of the Ninth Asia-Pacific Software Engineering Conference (APSEC’02)
0-7695-1850-8/02 $17.00 © 2002 IEEE