According to this philosophy, created models
should not affect the agility principles of a given pro-
cess. As long as a model can be created and exploited
within a production cycle (usually 1-3 weeks), it is
suitable for agile modeling. This is a promising ap-
proach, but it does not state much about the possible
modeling tools - actually, the approach de-emphasizes
the need for tools, and focuses on people. A model is
suitable for the approach as long as it can be exploited
within a production cycle.
Due to this requirement, most modeling is based
on high-level abstract modeling languages with little
formalism. They are easy to learn, simple to use and
fit well within a given time period. However, they of-
fer more to easier problem domain abstraction than
to automatic productivity increase. Under our best
knowledge, no productivity-related empirical valida-
tion has been done for agile model-driven develop-
ment.
4 BOTTOM-UP MODELING
We argue that productivity gains chased with model-
driven engineering should be combined with agile
development models by examining the productivity
problems that are encountered on project level. If
a given productivity problem gives a feeling that its
root cause is associated with the problem of lack of
abstraction, or incorrect level of abstraction, then it
could be a possible candidate for building a higher
level model for that particular part of the software.
We call this approach as bottom-up agile model-
driven development. In this approach bottom-up
models are a way to introduce light-weight modeling
to agile development process.
Instead of applying top-down methods, which re-
cursively decomposes the problem to smaller pieces,
we can alternate to a bottom-up approach. This ap-
proach identifies smaller problems and develops solu-
tions to these. When this bottom-up cycle is repeated,
gradually the solution for the whole emerges. Given a
program domain, a bottom-up approach identifies sub
domains that are amenable to modeling
Agile bottom-up modeling constraints the identi-
fication process to such tools and techniques that can
be applied in an agile process model. Its application is
thereby limited to a small number of tools, which can
be evaluated and applied within a tightly time-boxed
iteration. Yet, although this search and discover ap-
proach theoretically produces non-optimal solutions,
it guarantees that progress is not stalled while search-
ing for the optimal solution. This way, a bottom-up
approach to modeling dodges the heavy up-front plan-
ning phase.
An essential property of bottom-up modeling in
agile process is that the building of model languages
and models can be decomposed into sprintable form.
We mention both model languages and models be-
cause the essence of bottom-up modeling is to find
suitable abstractions to the problem at hand, and of-
ten this means inventing a new language or reusing an
existing language for modeling. This notion is con-
tradictory to common wisdom of using the best exist-
ing tool for the job at hand. However, given the large
number of different tools and techniques available on
the market, it is not possible to do a throughout tool
evaluation within the time frame of an iteration. For
this reason, agile teams often need to build their own
abstractions for modeling.
These abstractions or languages are not neces-
sarily complex, meaning that there is no mandatory
need to building complex modeling languages with
associated tool support. Instead, existing languages
can be piggy-backed and reused as is common with
domain-specific languages (Mernik et al., 2005). Also
a domain-specific modeling tool can be employed,
once an initial understanding of the problem at hand
has emerged. However, the obvious downside of this
approach is that repetitive application of ad hoc mod-
eling constructs might gradually erode the overall ar-
chitecture of the software.
Bottom-up modeling does not limit the format of
source models, as long as the model is expressible in
machine-readable form. This means that the model-
ing language does not need to be a graphical boxes-
and-arrows -type tool. Actually, although the tradi-
tional boxes-and-arrows kind of modeling can be ben-
eficial in the drafting board, the lack of exact inter-
pretation for the used symbols hinders productivity
when forwarding these models to any type of auto-
matic code generation or runtime interpretation. Of-
ten used alternatives are external domain-specific lan-
guages, but an interesting choice is to use the source
code as the source model. This option is interest-
ing for practical programming, as using the source
code as the source model for further transformations
builds increased robustness against modifications into
the software.
5 A CASE STUDY
In order to illustrate the idea of using the bottom-
up approach to modeling, we show a case of using
bottom-up modeling for implementing a feature mod-
eling (Kang et al., 1990) environment in a bottom-up
way. Feature modeling is a formalized way of build-
ICEIS2012-14thInternationalConferenceonEnterpriseInformationSystems
398