0

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.

JHamill
  • 145
  • 2
  • 4
  • 12
  • Do not forget, that RUP is iterative-incremental methodology and therefore every phase is comprised of several iterations. Every iteration brings an increment to the developed system and therefore it must go through all the practices - implementation as well. The difference between phases lies in distribution of work. Check out the famous RUP image. – Gabriel Ščerbák Jan 30 '11 at 23:57

4 Answers4

1

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.

aquraishi
  • 127
  • 9
1

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.

CesarGon
  • 15,099
  • 6
  • 57
  • 85
  • 1
    In this respect OMG is finally pushing through executable UML, which might be provided with tools able to reason about behavioural semantics of UML models to certain extent, so the architecture captured using UML models would be executable. – Gabriel Ščerbák Jan 30 '11 at 23:50
  • +1 @Gabriel: Yes, Executable UML may be a step forward to achieve true executable architectures. – CesarGon Jan 31 '11 at 19:26
0

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

Julia
  • 1
  • 1
0

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).

Gabriel Ščerbák
  • 18,240
  • 8
  • 37
  • 52