Research in Software Maintenance
Research in Software Maintenance
Tatiana Yaldaie
The subject of migration, which occurs regularly over the years due to the need to move existing
systems to new technology, languages and platforms, is of interest. Therefore, there are more
stable cycles in which innovations are used, and years in which technological changes occur more
often, and more important are migration activities. (Journal of Software, 2013)
Several articles were allocated to the documentation and tools. Topics such as maintenance,
evolution, system analysis, or, among others, static and dynamic analysis can be considered
traditional hot topics in the CSMR series for many years. In decreasing order, the three most
populated categories in CSMR history are:
Development, maintenance and effort
Evolution
Static analysis and dynamic analysis. (Journal of Software, 2013)
According to Al-Azzoni et al. (2011), technology advancements and economic pressure pressured
many companies to consider moving their existing structures to newer platforms. Legacy
programs usually provide mission-critical resources which are essential to the business needs of
an organization. Typically these networks are very wide and highly complex with no
documentation or no. Moreover, less people can grasp those structures and manage them.
Although there are many techniques to validate the migrated system's functionality, there are still
insufficient methods in the literature to accurately determine the performance impact of software
migration. Within this paper a new approach explicitly designed to tackle performance evaluations
within software migration projects was suggested. The new approach uses simple models and
combines model validation techniques and the visualization of resource demand for performance
assessment and capacity planning.
Koschke (2003) states that software visualization is concerned with static visualization and
software artifact animation, such as source code, executable programs, and the data they
manipulate, and their attributes, such as size, complexity, or dependency. Visualization of
software techniques is commonly used in the fields of software repair, reverse engineering, and
reengineering, where generally massive. In his paper he presents the findings of the survey on
the software repair, reverse engineering and software visualisation perspectives of 82
researchers.
Kimura et al (2012) claims that software source code is refactored to reduce coupling and improve
cohesion. Previous research efforts to suggest candidates of these refactorings are focused on
static analysis, which obtains from source code relations between classes or methods. Such
methods, however, can not obtain runtime information such as loop count repetition, dynamic
dispatch and actual execution path. For this reason, previous methods may miss some
opportunities for refactoring. To address this issue, a technique for identifying candidates for
refactoring by analyzing traces of the process is proposed. Based on the suggested methodology,
a prototype method was implemented and the methodology on two software systems was tested.
A lot is written regarding the software maintenance costs. For example, Banker Rajiv (1993)
examines the effects of software complexity on the cost of Cobol maintenance projects within a
large commercial bank and the impact of software complexity on the cost of software maintenance
projects in a typical IS setting that is calculated using a previously established software
maintenance economic model. The model uses a multidimensional approach to quantify program
complexity; the model monitors certain project variables which can be managed by managers and
which are assumed to influence project maintenance costs. Computer maintenance costs in terms
of module size, process size, and branching complexity have shown to be substantially influenced
by program complexity.
A lot of research is done on software maintenance tools. Management has switched to software
development tools designed to help maintaining software as a possible solution for reliability
maintenance and quality issues. Nevertheless, such methods are still not used until implemented
by an organization. A research model is built based on a task–technology fit (TTF) model to clarify
the factors that contribute to the use of the software maintenance support tools. The model, which
discusses the complexity of the fit between the functionality of the software tool and the
maintenance task specifications, consists of a TTF model augmented with a maintenance task
model and a software maintenance tool model. (Dishaw, M. T. & Strong, D. M., 1998)
Lethbridge and Singer (n.d) in their paper on “Understanding Software Maintenance Tools: Some
Empirical Research” discussed the tools for software maintenance, where tools vary from large-
scale integrated CASE items to simple single-function commands or functions. The aim of this
research is to learn more about the work of software engineers with and the tool needs, so that
they can become more successful.
Software maintenance is still a major challenge for software companies and developers in the
21st century, as the industry needs to reduce the cost of software maintenance. The variety of
approaches to production contributes to different maintenance methods and innovations that are
regularly modernized. Conferences such as CSMR and others in the sector seek to introduce new
strategies aimed at minimizing the effort and the stress of maintenance processes, as most of
them are still performed manually. The retrospective review reveals that conventional research
areas for software maintenance are mixed with modern topics, such as SOA. In other instances,
it recommends new maintenance methods and tools, further maintenance task automation, or
adaptation of maintenance processes to recent software development approaches. (Journal of
Software, 2013)
Recently more and more reports of experience and scientific maintenance studies have appeared,
but this field still needs further data to illustrate the practical application of maintenance
techniques and their effects both in the short and long term. In conclusion, the transition of legacy
systems to more modern solutions can be strengthened and assured for the sake of greater
research effort in the field of software maintenance. (Journal of Software, 2013)
References
Al-Azzoni et al. (2011) Performance Evaluation for Software Migration. Karlsruhe, Germany.
Banker, Rajiv D., et al. "Software complexity and maintenance costs." Communications of the
ACM, vol. 36, no. 11, Nov. 1993, p. 81.
Dishaw, M. T., & Strong, D. M. (1998). Supporting software maintenance with software
engineering tools: A Computed task–technology fit analysis. Journal of Systems and Software,
44(2), 107–120. doi:10.1016/s0164-1212(98)10048-1.
Kimura S. & Higo, Y. & Igaki, H. & Kusumoto, S. (2012) Move code refactoring with dynamic
analysis," 2012 28th IEEE International Conference on Software Maintenance (ICSM), Trento,
2012, pp. 575-578. doi: 10.1109/ICSM.2012.6405324.
Lethbridge, T. C. & Singer, J. (n.d.) Understanding Software Maintenance Tools: Some Empirical
Research.