What is meant by the Executable Architecture in the Elaboration phase?

1.6k views Asked by At

I am having some difficulty getting my head round something that should be carried out in the Elaboration phase;

"An executable architecture that realizes architecturally significant use cases" (Taken from Wikipedia: http://en.wikipedia.org/wiki/Rup)

I have done a lot of reading on the Internet as to what the 'Executable architecture' is meant to be. Some papers I have read suggest building a basic version of the system, which will then be built upon later in the Construction phase. Other papers suggest that it refers to the modelling of the system, using diagrams such as a Class Diagram.

The latter makes more sense to me, because otherwise it would seem that if I needed to develop something in the Elaboration phase, it is sort of overlapping with the Construction phase.

4

There are 4 answers

2
CesarGon On BEST ANSWER

Basically, "Executable Architecture" is RUP's parlance for a description of the system's architecture that can be more or less directly converted into code and other low-level artefacts.

This is in opposition to how architectures are sometimes specified, i.e. as informal descriptions or box-and-arrow diagrams that are fine as human communication mechanism, but close to useless as far as the computer is concerned. In a model-driven scenario (which the OMG tries to push, of course), the system architecture must be specified in such a way that code, configuration files, deployment artefacts other lower-level models can be generated in an automated or assisted fashion by the application of tools.

0
Gabriel Ščerbák On

Executable architecture is as said in other answer architecture formal enough to be put into practice. You can use architecture prototyping (called spikes in XP terms) or modeling (even the real formal approaches).

0
aquraishi On

I know this answer is coming late however I feel a need to correct something. Executable architectures need have nothing to do with auto-generated code although this is one way of creating them.

The questioner asked,

Some papers I have read suggest building a basic version of the system, which will then be built upon later in the Construction phase. Other papers suggest that it refers to the modelling of the system, using diagrams such as a Class Diagram.

The correct answer is that,

An executable architecture is produced during the Elaboration Phase as the architecture is refined. An executable architecture is a partial implementation of the system, built to demon- strate that the architectural design will be able to support the key functionality and, more im- portantly, to exhibit the right properties in terms of performance, throughput, capacity, reli- ability, scalability, and other “-ilities” [Kruchten 04]

So it corresponds to the first - it should ideally be of sufficient quality to serve as the foundation of an evolutionary architecture which is developed throughout the Construction iterations.

0
Julia On

This architecture is created in easy-to-code or can-be-automatically-coded way. An analog to executable architecture is an executable specification. Instead of human-friendly "offer 5% discount for those who buy 10 t-shirts" you put down:

item: t-shirt quantity: 9 discount: 0

item: t-shirt quantity: 10 discount: 5

item: mug quantity: 11 discount: 0