5 CONCLUSIONS & FURTHER
RESEARCH
By applying the taxonomy on the development and
deployment platform that we have presented in our
previous research efforts we are now able to
evaluate it as a software maintenance mechanism
and identify its strengths, along with its weaknesses.
The most important strengths are:
Our platform is a run-time change support
mechanism since deployed platforms do not
need to be restarted in order for changes to
become effective. This is very important
feature for systems that undertake frequent
changes and / or for systems that are business
critical and require high availability.
Our platform is a fully versioned change
support mechanism since it supports the
runtime coexistence of multiple versions of
the deployed applications (within a single
installation of the platform).
Our platform should be considered as a semi-
automated change support tool as it will
support the developer in the implementation
of changes at the database and application (in
a future version) level.
On the other hand, the most important weakness
is that since source code can be changed in an
arbitrary way and classes are recompiled and loaded
just before the execution of a method, the deployed
applications seem to be vulnerable to runtime
errors. In order to limit the possibility of unwanted
runtime scenarios we should elaborate on auxiliary
mechanisms at two-levels: (a) at implementation
level in order to assist the developer, (b) at test-level
in order new versions to be thoroughly tested before
there are delivered to end-users.
REFERENCES
Biesack, D., 2007. Create dynamic applications with
javax.tools. http://www.ibm.com/developerworks/
java/library/j-jcomp/index.html
Chapin, N., Hale, J., Khan, K., Ramil, J., Than, W.-G.,
2001. Types of software evolution and software
maintenance. Journal of software maintenance and
evolution, pages 3–30.
Evans, H., 2004. DRASTIC and GRUMPS: design and
implementation of two runtime evolution frameworks.
IEE Proceedings - Software 151(2): 30—48.
IEEE, 1993. IEEE Std. 1219: Standard for Software
Maintenance. Los Alamitos CA., USA. IEEE
Computer Society Press.
Lehman, M.M., Belady, L.A., 1985. Program Evolution –
Process of Software Change. Acad. Press, London.
Lientz, B. P., Swanson, E. B., 1980. Software maintenance
management: a study of the maintenance of computer
application software in 487 data processing
organizations. Addison-Wesley.
McKee, J., 1984. Maintenance as a function of design.
Proceedings of the AFIPS National Computer
Conference, 187—193.
Mens, T., Buckley, J., Zenger, M., Rashid, A., 2003.
Towards a taxonomy of software evolution. In Proc.
2nd International Workshop on Unanticipated
Software Evolution, Warsaw, Poland.
Nosek, J., Palvia, P., 1980. Software maintenance
management: changes in the last decade. Journal of
Software Maintenance: Research and Practice 2 (3),
157—174.
Pukall, M., Kuhlemann, M., 2007. Characteristics of
Runtime Program Evolution. RAM-SE, 51—58.
Sommerville, I., 2000. Software Engineering. 6
th
Edition.
Addison-Wesley.
Voulalas, G., Evangelidis, G., 2007. A framework for the
development and deployment of evolving applications:
The domain model. In 2nd International Conference
on Software and Data Technologies (ICSOFT),
Barcelona, Spain.
Voulalas, G., Evangelidis, G., 2008. Introducing a
Change-Resistant Framework for the Development
and Deployment of Evolving Applications. In Filipe,
J., Shishkov, B., and Helfert, M., editors,
Communications in Computer and Information
Science, Volume 10, 293–306. Springer Berlin
Heidelberg.
Voulalas, G., Evangelidis, G., 2008. Developing and
deploying dynamic applications: An architectural
prototype. In 3rd International Conference on
Software and Data Technologies (ICSOFT), Porto,
Portugal.
Warren, H., 1988. Sharing the Wealth: Accumulating and
Sharing Lessons Learned in Empirical Software
Engineering Research. Empirical Software
Engineering 3(1), 7—8.
Zdun, U., 2004. Supporting incremental and experimental
software evolution by runtime method
transformations. Sci. Comput. Program, 52, 131—163.
ICSOFT 2009 - 4th International Conference on Software and Data Technologies
38