in project evolution, the exploratory wiki application
and the innovative nomadic blogging functionality
are all in a sense consequences. All these introduce a
number of changes to existing practices.
The user-participative evolution is essentially a
voluntary activity. Not only it differs from
conventional approaches (Madhavji et al., 2006) that
establish routine evolutionary processes but also
requires specific approaches which promote user
cooperation – in our case through improved usability
of the evolution support function. Our architectural
approach is based on the decision-oriented variant of
architecture definition (Jansen and Bosch, 2005;
Gilb, 2005), and explicitly integration of problem
and solution spaces - different from conventional
approaches to software architecture (IEEE 1471,
2000). It has had far-reaching consequences for
architecture assessment methods in our evolution
support – the possibility for evaluating architectures
with regard to both requirements and design
artefacts, in terms of end-user characteristics, e.g.,
system properties such as usability. The revised
methods could be used to equip the collaboration
tool such as wiki with more support for various
stakeholders as compared with more conventional
approaches, e.g., by Bachmann and Merson (2005).
The nomadic flavour created many new interesting
applications of the conventional blogging function
(Blood, 2004) but perhaps more interesting is the
innovative exploratory and evolutionary way in
which we propose to discover, analyse and validate
these new applications.
On the implementation side the web and
pervasive solutions tend to use conventional
technology (Hansmann et al., 2004). On the other
hand, with reference to the conventional model of
product line engineering (Pohl et al., 2005), we
introduce a revised orthogonal variability model that
better supports variation and selection processes of
evolutionary development for software systems.
Another proposed change was a closer cooperation
between the processes of domain and application
requirements engineering. We also offload some
non-functional attribute process areas from product
management and shift them to requirements
engineering. Consequently, the product roadmap
artefact that links the two process areas (Pohl et al.,
2005) changes respectively. On the other hand
product management takes responsibility of more
extensive evolutionary variation support. It is also
proposed that responsibilities regarding other new
process areas, such as evolutionary selection
support, are divided between product management,
integrated requirements engineering and the
variability model.
7 CONCLUSION
Evolutionary approaches can be applied to software
development projects of various sizes under
considerable uncertainty of requirements,
technologies, markets and regulations. In doing so
we should carefully investigate issues connected
with realizing the evolutionary strategy. Revisions to
conventional approaches may prove necessary. We
propose a user-friendly evolutionary methodology
for complex web systems. The methodology is still
in its validation stage. We illustrated the concept and
proposed solutions with selected results from a
recent project.
ACKNOWLEDGEMENTS
This work was partly supported by project E!2023
ITEA Nomadic Media.
REFERENCES
Bachmann, F., and Merson, P., 2005. Experience Using
the Web-Based Tool Wiki for Architecture
Documentation. Technical Note CMU/SEI-2005-TN-
041, Software Engineering Institute, September 2005.
Bass, L., Clements, P., and Kazman, R., 2003. Software
Architecture in Practice, 2
nd
Ed. Addison-Wesley
Blood, R., 2004. How Blogging Software Reshapes the
Online Community, Comm. ACM, 47, Nr. 2.
Bosch, J., 2000. Design and Use of Software
Architectures. Addison-Wesley.
Faulkner, X., 2000. Usability Engineering, Macmillan
Press, London.
Gilb, T., 2005. Competitive Engineering: A Handbook For
Systems Engineering, Requirements Engineering, and
Software Engineering Using Planguage, Butterworth-
Heinemann.
Hansmann, M., et al., 2004. Pervasive Computing, 2
nd
Ed.,
Springer.
IEEE 1471, 2000. ANSI/IEEE Std 1471-2000,
Recommended Practice for Architectural Description
of Software Intensive System. IEEE, October 2000.
ISO/IEC, 1998. DIS 9241-11. Part 11: Guidance on
usability. ISO/IEC.
Jansen, A., and Bosch, J., 2005. Software Architecture as a
Set of Architectural Design Decisions. 5th Working
IEEE/IFIP Conference on Software Architecture,
WICSA 2005. IEEE, pp. 109 – 120.
SIMPLE EVOLUTION OF COMPLEX WEB SYSTEMS
345