3 SOME IDEAS
Traditionally, models were mainly used at the initial
stages of analysis and development. As opposed to
this in modern development strategies and methods
models are not necessarily just developed at a single
stage; but a refactoring process takes place with
modeling, which is seen as a continuous process.
Modern processes are focused on concepts like best
practices, case tool support and the idea of having
several processes, rather than steps or stages as
traditionally presented.
Information modeling deals with presenting real
world views to different stakeholders. Models can be
diagrammatic or formal. Models can represent
conceptual, logical or physical views (Moody,
2009). Many new different modeling notations exist
because of new technologies and distributed systems
(Jeusfeld et al., 1998), (Jeusfeld et al., 2009). As a
case in point, the UML (Collier, O’Hare, and
Rooney, 2004) contains several notations and
hundreds of elements are specified in the
superstructure documentation. But are these really
relevant to proper design?
If the view of system architectural complexity is
considered, the count of things like entities,
connections and patterns are factors that have to be
considered for modern systems which are obviously
software intensive systems (Booch, 2008). Here the
concept of relative vs absolute complexity is
considered and it is only possible to focus on the
essence, using principles of abstraction. States in the
real world are extremely important and sometimes
unorganized complexity exists (Cao et al., 2009).
The solution proposed by (Booch, 2008) is i) focus
on fundamental problems, ii) define abstractions, iii)
employ good separation of concerns, iv) proper
responsibilities. I.e. it is possible to deduce that the
general idea would be to simplify and focus on the
essence of modeling.
Complexity can obscure or hide the essential
elements of a system. The uniqueness, elegance and
aesthetical value of a solution, imply that simple
architectures have more value than complicated ones
for representation and modeling purposes.
Simplicity is easier to comprehend and measure
rather than complexity.
In fundamental modeling concepts (FMC, 2013)
it is also suggested that diagrammatic notations
should follow certain aesthetic principles. The main
principles behind the FMC idea are i) abstraction, ii)
simplicity, iii) universality, iv) separation of
concerns and v) aesthetics and secondary notation.
The key principles behind FMC have been
successfully applied at SAP in the form of TAM
(technical architectural modeling) (FMC, 2013)
which combines the salient principles of FMC with
those of some UML modeling notations, creating
better diagrammatic notations for analysing and
representing customer requests (Knopfel et al.,
2006).
Even the lines, harmonization and aesthetical
way of drawing artifacts all sum up to a rational way
of modeling systems (Knopfel et al., 2006).
Systems can fail because the systems architect
selects a fundamentally wrong architecture or
something that is too complex to properly
implement. Sometimes systems can fail because of
the continuous adding of parts and little bits. A
system or software development that started off as a
simple task sums up into a cumbersome ordeal that
lacks structure or proper representation. Software
engineering is a discipline that requires the
reasonable combination of dynamic and static
forces.
Architectural refactoring implies the use of
patterns that help manage complex system design.
Patterns help with the observation and classification
in a natural ordered way. I.e. the mental concept that
is observed is easily repeated and represented for
future work and support.
MDE (model driven engineering) has kicked off
research on domain specific languages (OMG,
2013). The idea of MDE rests on the construction of
proper software models that are used to create PIMs
(Platform independent models). MDD (model driven
development) is based on models and architectures
that have to be properly represented for successful
implementation. The idea of PIMs signifies that a
model should be conform to certain rules but
simultaneously express universality for different
platforms.
In light methods such as Agile, Scrum or the UP
(unified process) and even XP (extreme
programming) proper modeling is a must, even
though the models must be kept concise and simple
for quick use.
The principles that can be learned from different
processes, methods and ideas are applicable
independently of the process itself. These can be
easily combined with different methods or
techniques without being limited.
Universality is a form of understanding the
diverse types of modeling notations that can be
confusing and frustrating. Software engineering is a
complex discipline, depending on many different
types of constructs and their proper selection.
ICSOFT-EA2014-9thInternationalConferenceonSoftwareEngineeringandApplications
346