Process: Inception and Elaboration - UML

In UP terms and our case studies, imagine we have finished the inception phase and are entering the elaboration phase.

What Happened in Inception?

The inception phase of the case studies may last only one week. Because this is not the requirements phase of the project, the artifacts created should be brief and incomplete, the phase quick, and the investigation light.

Inception is a short step to elaboration. It determines basic feasibility, risk, and scope, to decide if the project is worth more serious investigation. Not all activities that could reasonably occur in inception have been covered; this exploration emphasizes requirements - oriented artifacts. Some likely activities and artifacts in inception include:

  • a short requirements workshop
  • most actors, goals, and use cases named
  • most use cases written in brief format; 10 - 20% of the use cases are written in fully dressed detail to improve understanding of the scope and complexity
  • most influential and risky quality requirements identified
  • version one of the Vision and Supplementary Specification written
  • risk list
    • For example, leadership really wants a demo at the POSWorld trade show in Hamburg, in 18 months. But the effort for a demo cannot yet be even roughly estimated until deeper investigation.
  • technical proof - of - concept prototypes and other investigations to explore the technical feasibility of special requirements ("Does Java Swing work properly on touch - screen displays?")
  • user interface - oriented prototypes to clarify the vision of functional requirements
  • recommendations on what components to buy / build / reuse, to be refined in elaboration
    • For example, a recommendation to buy a tax calculation package.
  • high - level candidate architecture and components proposed
    • This is not a detailed architectural description, and it is not meant to be final or correct. Rather, it is brief speculation to use as a starting point of investigation in elaboration. For example, "A Java client - side application, no application server, Oracle for the database, ..." In elaboration, it may be proven worthy, or discovered to be a poor idea and rejected.
  • plan for the first iteration
  • candidate tools list

On to Elaboration

Elaborationis the initial series of iterations during which, on a normal project:

  • the core, risky software architecture is programmed and tested
  • the majority of requirements are discovered and stabilized
  • the major risks are mitigated or retired

Elaboration is the initial series of iterations during which the team does serious investigation, implements (programs and tests) the core architecture, clarifies most requirements, and tackles the high - risk issues. In the UP, "risk" includes business value. Therefore, early work may include implementing scenarios that are deemed important, but are not especially technically risky.

Elaboration often consists of two or more iterations; each iteration is recommended to be between two and six weeks; prefer the shorter versions unless the team size is massive. Each iteration is timeboxed, meaning its end date is fixed.

Elaboration is not a design phase or a phase when the models are fully developed in preparation for implementation in the construction step - that would be an example of superimposing waterfall ideas on iterative development and the UP.

During this phase, one is not creating throw - away prototypes; rather, the code and design are production - quality portions of the final system. In some UP descriptions, the potentially misunderstood term "architectural prototype"is used to describe the partial system. This is not meant to be a prototype in the sense of a discardable experiment; in the UP, it means a production subset of the final system. More commonly it is called the executable architectureor architectural baseline.

Some key ideas and best practices will manifest in elaboration:

  • do short timeboxed risk - driven iterations
  • start programming early
  • adaptively design, implement, and test the core and risky parts of the architecture
  • test early, often, realistically
  • adapt based on feedback from tests, users, developers
  • write most of the use cases and other requirements in detail, through a series of workshops, once per elaboration iteration

What Artifacts May Start in Elaboration?

Table lists sample artifacts that may be started in elaboration, and indicates the issues they address. Subsequent chapters will examine some of these in greater detail, especially the Domain Model and Design Model. For brevity, the table excludes artifacts that may have begun in inception; it introduces artifacts that are more likely to start in elaboration. Note these will not be completed in one iteration; rather, they will be refined over a series of iterations.

Table 8.1 Sample elaboration artifacts, excluding those started in inception

Sample elaboration artifacts, excluding those started in inception

You Know You Didn't Understand Elaboration When...

  • It is more than "a few" months long for most projects.
  • It only has one iteration (with rare exceptions for well - understood problems).
  • Most requirements were defined before elaboration.
  • The risky elements and core architecture are not being tackled.
  • It does not result in an executable architecture; there is no production - code programming.
  • It is considered primarily a requirements or design phase, preceding an implementation phase in construction.
  • There is an attempt to do a full and careful design before programming.
  • Thereisminimal feedbackandadaptation; usersarenot continually engaged in evaluation and feedback.
  • There is no early and realistic testing.
  • The architecture is speculatively finalized before programming.

It is considered a step to do the proof - of - concept programming, rather than programming the production core executable architecture.

If a project exhibits these symptoms, the elaboration phase was not understood, and waterfall - thinking has been superimposed on the UP.

All rights reserved © 2018 Wisdom IT Services India Pvt. Ltd Protection Status

UML Topics