RESEARCH INTERESTS
Department
of Computer Science and Information Systems
Date: Sept.
30, 2011
The current research interests of
Dr. Koskinen relate to information systems science and software systems.
Research areas are versatile including empirical and automated aspects of
software engineering; especially as related to software maintenance and
evolution (SME), software quality and open source software systems (OSSs). They
relate also e.g. to improving issues such as: method evaluations, software
quality evaluations, software metrics, software ecosystems, program
comprehensibility, information retrieval, software hypertext systems, decision
making support, economical analyses, license analysis, impact analysis, program
analysis, program slicing, outsourcing, teaching software engineering,
automated chess, and data transformations.
Software engineering
and software systems
Software
engineering aims at systematically supporting the different aspects of
engineering and maintaining software systems. Two of the important main
branches of studying and supporting software engineering are automated software engineering (ASE) and
empirical software engineering (ESE).
The scientific research interests include automated and empirical aspects of
software engineering especially as related to software maintenance and evolution (SME) and open source software systems (OSSs). These four large areas are
investigated e.g. in the following well-known scientific journals: Automated Software Engineering, Empirical Software Engineering, Journal of Software Maintenance and
Evolution: Research and Practice and International
Journal of Open Source Software and Processes, respectively.
Software maintenance and system evolution
Software
maintenance is the last part of the software life-cycle. Traditionally,
maintenance has been defined to start when the software product has first been
delivered to its customers. Software maintenance and evolution is clearly the
most expensive and time consuming of the major system life-cycle phases or
elements. Traditionally maintenance-related activities have caused around
50-75% of the total system life-cycle costs. Thereby, SME has considerable economical
significance. The subareas of maintenance which have traditionally been covered
best in scientific studies include the technical aspects of software and partly
also the effects of the attributes of the persons maintaining software.
Therefore, they are known best. Other areas; such as the requirements as a
basis for the maintenance tasks, the actual cognitive processes of maintainers
and the organizational environment in which the maintenance is performed, have
traditionally been studied less intensively.
Maintenance problems
In the
actual maintenance manipulating source code (such as adding source code
elements, removing them, changing their places, and otherwise modifying them)
is clearly the central task. Self-evidently, the size and complexity of the programs to be maintained often
complicate maintenance. It is usually increasingly hard to maintain growing and
deteriorating software systems. Because successful systems have to evolve to
reflect the changing requirements (such as emerging new user requirements and
requirements due to technological changes) they tend to grow. Consequently,
maintenance usually becomes harder and increasingly serious maintenance
problems tend to emerge during the system evolution. Problems related to
software maintenance can be alleviated in various ways. Proper allocation of
resources for achieving sufficient level of software
quality (and its subfactors, including: maintainability,
comprehensibility, and reliability) already during the initial
development of the software is one important main strategy. In principle, all
changes should be made such that no negative side-effects emerge. In principle, this goal could be approached
via complete regression testing. In
case of large software, however, complete testing is not possible due to
practical resource limitations. Therefore, test cases have to be selected
wisely and errors which still remain need to be corrected when they are noted
(in worst case, during the operational use of the system). The level of errors
which can be tolerated in operational use is highly dependent on the nature of
the application.
Program comprehension
Despite
even the best intentions regarding designing and testing of software systems
their maintenance usually can not be avoided. Thereby, reading and interpreting
large programs and comprehending their structure, operation, and purpose will
remain a central, and often problematic and time-consuming sub-task of software
engineering in whole foreseeable future. Proper comprehension of the relevant
issues in a specific maintenance situation of a software system is a necessary
condition for safe and successful fulfillment of maintenance tasks. Documentation may in best cases support
maintenance very well, but the quality of documentation has traditionally been
relatively weak in case of many systems (due to issues such as non-existent,
insufficient, and misleading system documentation or source code comments). Due
to these reasons, there is a clear need for tools which help in satisfying the
typical information needs of maintainers. Software tools and their study is
part of automated software engineering. For example, the so-called reverse engineering tools provide their
users various abstracted views of the source code under maintenance to support
various program comprehension
processes of the maintainers.
Software and system evolution decisions
Also the
long-term evolution of the software and the made central evolution decisions
have significant economical consequences due to their effects on the costs of
maintenance. Different system evolution options may include, for example,
modernization of the system to meet the new technological demands and
possibilities, reengineering or refactoring the source code (totally or
partially) to enhance its internal technical quality, complete replacement of
the system with another one (hopefully still meeting most of the requirements
of the customers), outsourcing maintenance, continuing conventional maintenance
of the system by providing enhancements e.g. at a rate similar to the most
important competitors, or reducing maintenance to the minimum level which has
been guaranteed to the remaining customers in service level agreements; such as
only correcting such errors which cause system failures which can be replicated.
More profound scientific understanding is needed especially related to the
nature of maintenance and system evolution in industrial settings. Empirical
software engineering methods are well suited, for example, to study such
issues. Decision makers who are in charge of the SME-decisions also need
methods which support planning, making, and monitoring the decisions, used
decision criteria and arguments, and the effects of the made decisions.
Software quality assurance and measurement
Quality is
a term with a very wide scope and many slightly differing definitions in
business and technology. In software engineering quality may relate to the
software product, its engineering process or its use. Software as such is
expected to satisfy both functional requirements and non-functional
requirements. Functional quality relates to the fitness for purpose, whereas
the non-functional requirements typically relate to the underlying quality
concepts enabling the general level fitness of the product. Software quality
may also be divided into internal and external quality. Internal quality
relates to the quality of the technical solutions and enables external quality
which is directly observable by the users. Typical important quality attributes
which are related to the software include correctness, reliability,
dependability, maintainability, flexibility, efficiency, security etc. For
example maintainability is affected by various background factors such as: code
comprehensibility, complexity of the algorithms, level of reuse, cohesion,
coupling, quality of documentation, portability, flexibility, extensibility,
redundancy, level of following rules of discourse, followed programming styles
etc. Quality attributes can be evaluated via specific metrics. For determining the
code level metrics there are many automated tools available. The metrics
profiles in turn may be used as a basis for maintenance effort estimates and
cost/benefit models. Software quality may be evaluated also based on
non-automated means such as software inspections.
Open source software systems
Open-source software (OSS) is available in source code form. For OSS some of the rights normally reserved for copyright holders are granted under a software license. Depending on the specific license type the license may, for example, permit the users of a specific OSS to study, change, improve, or distribute it. Since the source code is typically publicly available it forms a lucrative basis for empirical studies. For example, the Source Forge repository contains data related to more than 200,000 OSS projects and has more than 2 million users. Aspects which are relevant to empirical investigations include software evolution and various metrics related to software quality. A concept which closely relates to OSS is FLOSS (free/libre/open-source software). FLOSS covers both OSS and free software. Free software focuses on the philosophical freedoms it gives to its users, whereas open source focuses on the benefits of its peer-to-peer development model.
In case of
maintaining poorly documented, large or otherwise hard-to-manipulate software,
supporting techniques and tools are needed. These include reverse engineering, reengineering, restructuring, redocumentation,
modernization, renovation and refactoring. Specific techniques include static
and dynamic program analysis, program
slicing, simulation, and systematic configuration management. There also exists
multiple tools for these purposes.
1.1.
Hypertext support for software maintenance (HyperSoft)
HyperSoft (Automated Hypertext Support for Software
Maintenance) (1994-). Software maintainers have situation-dependent information needs while maintaining software. HyperSoft
is an automated approach for satisfying these needs. HyperSoft applies static
program analysis and transient hypertext representation. Program comprehension
is supported by the formed THASs (Transient Hypertextual Access Structures).
THASs support unlinear browsing of
the source code. HyperSoft applies linear, hypertextual, hierarchical and
graphical views. Potentially cross-linked graphs are linked also to source
code. Hypertext has earlier been applied both to manual cross-document linkage
and to automated intra-modular linkage in so-called software hypertext systems. HyperSoft's specialities include:
transient, fully automated cross-module linkage and automated formation of
abstracted graphs with hypertextual links to source code. Keywords: software
maintenance, program comprehension, reverse engineering, legacy systems,
hypertext representation, software hypertext systems, program slicing, impact
analysis.
Main publications:
o Jussi Koskinen "Maintenance". Encyclopedia of Software Engineering, pp. 442-453. Book chapter. Taylor & Francis Group. Nov. 2010.
o Jussi Koskinen, Airi Salminen & Jukka Paakki "Hypertext support for the information needs of software maintainers". Journal of Software Maintenance and Evolution: Research and Practice 16 (3), pp. 187-215. May 2004.
o Jussi Koskinen "Experimental evaluation of hypertext
access structures". Journal of Software Maintenance and
Evolution: Research and Practice 14 (2), pp. 83-108. March 2002.
o Jukka Paakki, Jussi Koskinen & Airi
Salminen "From relational
program dependencies to hypertextual access structures". Nordic
Journal of Computing 4 (1), pp.
3-36. Febr. 1997.
o Jukka Paakki, Airi Salminen & Jussi
Koskinen "Automated
hypertext support for software maintenance".
The Computer Journal 39 (7), pp. 577-597. July 1996.
o Jussi Koskinen & Tero Lehmonen "Analysis of ten reverse
engineering tools". Advanced Techniques in Computing Sciences and
Software Engineering, pp. 389-394. Book chapter. Springer. Dec. 2009
(published on-line: Dec. 2008).
o Jussi Koskinen "Evaluation framework of
hypertext access for program comprehension support". Innovative
Techniques in Instruction Technology, E-learning, E-assessment, and Education, pp. 235-240.
Book chapter. Springer. June 2008 (published on-line: Dec. 2007).
o Jussi Koskinen
& Airi Salminen "Supporting impact
analysis in HyperSoft and other maintenance tools". Proceedings of
the 2nd IASTED International Conference on Software Engineering (SE
2005) (Innsbruck, Austria), pp. 187-192. ACTA Press. Febr. 2005.
o Jussi Koskinen "Automated transient
hypertext support for software maintenance".
Jyväskylä Studies in Computing 4, Univ. of Jyväskylä,
Jyväskylä, Finland. Ph.D.
thesis in Information Systems Science (Software Engineering). 98 p. (250 p.). April 2000.
o Jussi Koskinen "Empirical evaluation of
hypertextual information access from program text". Proceedings of the 7th International Workshop on Program
Comprehension (IWPC 1999) (Pittsburgh, PA, USA), pp. 162-169.
IEEE
Computer Society. May 1999.
o Jussi Koskinen, Mika Nieminen & Timo
Suominen "HyperSoft (v. 1.0)". Dept. of Computer
Science and Information Systems, Univ. of
Jyväskylä, Jyväskylä, Finland.
Software. 34000 LOCs. March 1997.
o Jussi Koskinen "HyperSoft: Backend
components". Computer Science
and Information Systems Reports, Technical Report TR-17, Dept. of
Computer Science and Information Systems, Univ. of Jyväskylä, Jyväskylä,
Finland. 122 p. Febr. 1997.
o Jussi Koskinen "Creating transient
hypertextual access structures for C programs". Proceedings of the 7th Israeli Conference on Computer
Systems and Software Engineering (ICCSSE 1996) (Herzliya/Tel
Aviv, Israel), pp. 56-65. IEEE Computer Society. June 1996.
o Jussi Koskinen "HyperSoft: A hypertext
approach to software maintenance support".
2nd Doctoral Consortium on Advanced Information Systems Engineering, pp.
30-31. As part of: 7th International Conference on Information Systems
Engineering: Current Practice and Future Prospects (CAiSE 1995)
(Jyväskylä, Finland). Position paper. Institut National des Télécommunications,
o Airi Salminen, Jukka Paakki & Jussi
Koskinen "Incorporating
hypertext functionality into software maintenance environments". Workshop on Corporating Hypertext
Functionality into Software Systems. As part of: Proceedings of the
ACM European Conference on Hypermedia Technologies (ECHT 1994)
(Edinburgh, UK) (paper 8), 3 p. Position paper. ACM Press. Sept. 1994.
o Jussi Koskinen, Jukka Paakki & Airi
Salminen "Program
text as hypertext - Using program dependences for transient linking". Proceedings of the 6th International
Conference on Software Engineering and Knowledge Engineering (SEKE
1994) (Jurmala/Riga, Latvia), pp.
209-216. Knowledge Systems Institute (KSI),
o Jussi Koskinen, Airi Salminen & Jukka
Paakki "HyperSoft:
An environment for hypertextual software maintenance". Proceedings of the 6th Nordic Workshop on Programming Environment
Research (NWPER 1994) (Lund, Sweden), LU-CS-TR: 94-127,
pp. 25-37.
1.2. Program slicing
(GRACE)
Program slicing can be used to support various tasks of
software maintenance. The two main variants of slicing are backward slicing and
forward slicing. Backward slicing is especially useful in debugging and forward slicing in impact analysis. The efficiency of slicing is improved by using
program dependence graphs as a way to store the needed program information.
Keywords: program slicing, program dependence graphs, forward slicing, static
analysis, impact analysis, Java, Visual Basic.
Main publications:
o Jaakko
Korpi & Jussi Koskinen "Constructive dynamic
program slicing research". International
Journal of Advancements in Computing Technology 2 (2), pp. 7-23. June 2010.
o Jaakko Korpi & Jussi Koskinen "Program dependence
graph based slicing for Java". Proceedings of the 11th IASTED
International Conference on Software Engineering and Applications (SEA
2007) (Cambridge, MA, USA), pp. 453-458. ACTA Press. Nov. 2007.
o Jaakko Korpi
& Jussi Koskinen "GRACE: Automated
slicing for Visual Basic". Proceedings of the 4th IASTED
International Conference on Software Engineering (SE 2007)
(Innsbruck, Austria), pp. 204-209. ACTA Press. Febr. 2007.
o Jaakko Korpi & Jussi Koskinen "Supporting impact analysis by program dependence graph based forward slicing". Advances and Innovations in Systems, Computing Sciences & Software Engineering (Volume 1), pp. 197-202. Book chapter. Springer. Aug. 2007 (published on-line: Dec. 2006).
Intermediary results:
We are
currently working on a survey of constructive static program slicing research
to be published as an international journal article.
1.3. Maintenance/evolution studies on Free/Libre/Open Source Software (FLOSS)
FLOSS development
has specific characteristics in terms of maintenance and therefore specific
reverse engineering capabilities are needed. These characteristics include
software licensing. Keywords: FLOSS, open source software, reverse engineering,
software licenses.
Main publications:
o Timo Tuunanen, Jussi Koskinen & Tommi
Kärkkäinen "Automated software license analysis". Automated
Software Engineering 16 (3), pp. 455-490.
June 2009.
o Timo Tuunanen, Jussi Koskinen & Tommi
Kärkkäinen "Retrieving
open source software licenses". IFIP International
Federation for Information Processing 203, Open Source
Systems; Proceedings of the 2nd International Conference on Open Source
Systems (OSS 2006) (Como, Italy), pp. 35-46. Springer. June 2006.
o Timo Tuunanen, Jussi Koskinen & Tommi Kärkkäinen "ASLA: Reverse engineering approach for software license information retrieval". Proceedings of the 10th European Conference on Software Maintenance and Reengineering (CSMR 2006) (Bari, Italy), pp. 289-292. IEEE Computer Society. March 2006.
1.4. Open source software ecosystems
Studying the stability, sustainability, and
vitality of open source software ecosystems (OSSE) has become increasingly
important for software companies. We plan to apply automated software
engineering, reverse engineering, data mining and empirical software
engineering methods to social networks analysis in recent future. Keywords:
open source software ecosystems, open source software, software engineering,
reverse engineering, empirical software engineering, automated software
engineering, social network analysis, data mining.
Intermediary results:
An
unpublished submitted project plan.
1.5. Data mining
Data mining means nontrivial extraction of implicit,
previously unknown, and potentially useful information from data. Research in the intersection of data
mining and reverse engineering clearly has good future potential as a basis for
sophisticated reverse engineering tools.
Intermediary results:
An unpublished
preliminary survey of the area.
1.6. Symbolic evaluation for program
comprehension support
Application of symbolic analysis and program simulation to
program comprehension support, reverse engineering and reengineering. Keywords:
software maintenance, program comprehension, reverse engineering, legacy
systems, symbolic analysis, program simulation, reengineering.
Intermediary results:
The
research cooperation has so far produced two unpublished manuscripts.
2.1. Extending the
life-time of information systems (ELTIS)
ELTIS (Extending the Life-Time of
Information Systems) (2002-). ELTIS studies decision making support related
to the large-scale software evolution choices. Generally the proportion of
software maintenance and evolution activities is 50-75% of the total software
life-cycle costs and there seems to be a slightly increasing trend. Nowadays
the proportion can sometimes in case of successful systems with long lifetime
but poor maintainability be even as high as 90%. Since the proportion of the
maintenance costs is large it is important to estimate the induced needed
effort and costs of maintenance and modernization activities. There is also a
need to evaluate software evolution
alternatives. Successful systems with long life-time are often problematic
in the sense of insufficient maintainability
and thus modifiability. They are called legacy
systems. Being large investments with poor flexibility their complete discard
often is undesirable but radical modernizations are hard to implement
successfully. Main general-level evolution options include: continued
conventional maintenance, reduced maintenance, modernization and replacement.
Continued conventional maintenance is a viable option while both the economic
and technical values of the system are high. Reduced maintenance is lucrative
while the technical value is sufficient but the economic value low.
Modernization is the prime option while the economic value is high but the
technical value is low. Finally, replacement is suggested while both the
economic and technical values of the system are low. Industrial decision making
processes related to the evaluation of software evolution alternatives should
be supported by empirically based methods. ELTIS includes theoretical
comparative studies, empirical industrial case studies, and method development
and validation activities. Keywords: software evolution, software maintenance,
legacy systems, modernization, software benefits, software costs, return on
investment (ROI).
Main publications:
o Jussi
Koskinen, Jarmo J. Ahonen, Irja Kankaanpää, Henna Sivula & Tero Tilus "Developing support for industrial
software evolution decision making". Communications in Dependability
and Quality Management 11 (1),
pp. 98-106. March 2008.
o Miia-Maarit Saarelainen, Jussi Koskinen,
Jarmo J. Ahonen, Irja Kankaanpää, Henna Sivula, Heikki Lintinen, Päivi Juutilainen
& Tero Tilus "Group
decision-making processes in industrial software evolution". The
2nd International Conference on Software Engineering Advances (ICSEA
2007) (Cap Esterel, France) (paper 78), 6 p. IEEE Computer Society. Aug.
2007 (Best Paper Award).
o Irja Kankaanpää, Päivi Tiihonen, Jarmo J.
Ahonen, Jussi Koskinen, Tero Tilus & Henna Sivula "Legacy system evolution
- A comparative study of modernisation and replacement initiation factors".
Proceedings of the 9th International Conference on
o Tero
Tilus, Jussi Koskinen, Jarmo J. Ahonen, Heikki Lintinen, Henna Sivula &
Irja Kankaanpää "Industrial
application and evaluation of a software evolution decision model". Technologies
for Business Information Systems, pp. 417-427. Book chapter. Springer. Jan.
2007.
o Irja
Kankaanpää, Jussi Koskinen, Tero Tilus, Henna Sivula, Heikki Lintinen
& Jarmo J. Ahonen "IS
evolution benefit assessment: Challenges with economic investment criteria".
Technologies for Business Information
Systems, pp. 183-191. Book
chapter. Springer. Jan. 2007.
o Jussi
Koskinen, Henna Sivula, Tero Tilus, Irja Kankaanpää, Jarmo J. Ahonen &
Päivi Juutilainen "Assessing
software replacement success: An industrial case study applying four approaches".
Lecture Notes in Computer Science (LNCS) 4257; Software
Process Improvement, 13th European Conference (EuroSPI 2006)
(Joensuu, Finland), pp. 183-194. Springer. Oct. 2006.
o Jussi
Koskinen, Jarmo J. Ahonen, Irja Kankaanpää, Heikki Lintinen, Henna Sivula &
Tero Tilus "Checklist-based
information system change decision making support method". Proceedings
of the 13th European Conference on Information Technology Evaluation (ECITE
2006) (Genoa, Italy), pp. 324-332.
Academic Conferences Ltd. Sept. 2006.
o Jarmo J. Ahonen, Henna Sivula, Jussi Koskinen,
Heikki Lintinen, Tero Tilus, Irja Kankaanpää & Päivi Juutilainen "Defining the process for making
software system modernization decisions". Lecture Notes in Computer Science (LNCS) 4034; Product-Focused Software Process
Improvement - 7th International
Conference (PROFES
2006) (Amsterdam,
The Netherlands), pp. 5-18. Springer. June 2006.
o Miia-Maarit Saarelainen, Jarmo J. Ahonen,
Heikki Lintinen, Jussi Koskinen, Irja Kankaanpää, Henna Sivula, Päivi
Juutilainen & Tero Tilus "Software
modernization and replacement decision making in industry: A qualitative study".
10th International Conference on Evaluation and Assessment in Software
Engineering (EASE 2006) (Keele University, Staffordshire, UK) (paper
3), 10 p. British Computer Society (eWiC). April 2006.
o Jussi
Koskinen, Jarmo J. Ahonen, Tero Tilus, Henna Sivula, Irja Kankaanpää, Heikki
Lintinen & Päivi Juutilainen "Developing software
evolution estimation methods for software industry". Proceedings of
the 3rd IASTED International Conference on Software Engineering (SE
2006) (Innsbruck, Austria), pp. 323-328. ACTA Press. Febr. 2006.
o Jussi
Koskinen, Heikki Lintinen, Tero Tilus, Henna Sivula, Irja Kankaanpää, Jarmo J.
Ahonen & Päivi Juutilainen "Industrial case
study of software maintenance evaluations". Proceedings of the 3rd
IASTED International Conference on Software Engineering (SE 2006)
(Innsbruck, Austria), pp. 335-340. ACTA Press. Febr. 2006.
o Jussi
Koskinen, Heikki Lintinen, Jarmo J. Ahonen, Tero Tilus & Henna Sivula
"Empirical study of
industrial decision making for software modernizations". Proceedings
of the 4th International Symposium on Empirical Software Engineering (ISESE
2005) (Noosa Heads, Australia), pp. 235-244. IEEE Computer Society. Nov.
2005.
o Irja
Kankaanpää, Henna Sivula, Jarmo J. Ahonen, Tero Tilus, Jussi Koskinen &
Päivi Juutilainen "ISEBA - A framework for
IS evolution benefit assessment". Proceedings of the 12th
European Conference on Information Technology Evaluation (ECITE
2005) (Turku, Finland), pp. 255-264. Academic Conferences Ltd. Sept. 2005.
o Jussi Koskinen, Jarmo J. Ahonen, Tero Tilus,
Henna Sivula & Heikki Lintinen "Using NIMSAD meta
framework in three software engineering contexts". Proceedings of
the 8th International Conference on Business Information Systems (BIS
2005) (Poznan, Poland), pp. 355-367.
The Poznan Univ. of Economics, Poland. April 2005.
o Jussi
Koskinen, Jarmo J. Ahonen, Henna Sivula, Tero Tilus, Heikki Lintinen & Irja
Kankaanpää "Software modernization
decision criteria - An empirical study". Proceedings of the 9th
European Conference on Software Maintenance and Reengineering (CSMR
2005) (Manchester, UK), pp.
324-331. IEEE Computer Society. March 2005.
o Jussi Koskinen, Heikki Lintinen, Henna Sivula & Tero Tilus "Evaluation of software modernization estimation methods using NIMSAD meta framework". Publications of the Information Technology Research Institute 15, Univ. of Jyväskylä, Jyväskylä, Finland. 70 p. Sept. 2004.
Intermediary results:
We plan to
publish an extended version of our earlier comparison of the different
evaluation methods for SME (based on applying a meta framework) as an
international journal article. We also plan to support modeling and evaluating
software modernization pressures further.
2.2. Software metrics
Software metrics mean measures of some properties of a piece of software or its specifications. Software metrics cover many quality aspects. They are needed, for example, as a basis for the software evolution evaluation methods. We have gathered empirical data concerning open source software systems and studied the relations between internal and external quality attributes statistically.
Main publications:
o Denis Kozlov, Jussi Koskinen, Markku Sakkinen & Jouni
Markkula "Assessing
maintainability change over multiple software releases". Journal
of Software Maintenance and Evolution: Research and Practice 20 (1),
pp. 31-58. Jan. 2008.
o Denis Kozlov, Jussi Koskinen, Markku Sakkinen & Jouni
Markkula "An exploratory empirical study of internal quality attributes of
open source software systems". International
Joint Conferences on Computer, Information, and Systems Sciences, and
Engineering (CISSE 2010) (Bridgeport, CT, USA),
6 p. Springer. Dec. 2010.
o Denis Kozlov, Jussi Koskinen, Markku Sakkinen & Jouni Markkula
"Exploratory analysis of the relations between code cloning and open
source software quality". 7th
International Conference on the Quality of Information and Communication
Technologies (QUATIC 2010)
(Porto, Portugal), 6 p. IEEE Computer Society. Oct. 2010.
o Denis Kozlov, Jussi Koskinen, Markku Sakkinen & Jouni Markkula
"Exploratory analysis of open source software forks". 14th World Multiconference on Systemics,
Cybernetics and Informatics (WMSCI 2010) (Orlando, FL, USA), 5
p. July 2010.
o Denis Kozlov, Jussi Koskinen, Jouni Markkula & Markku Sakkinen "Evaluating the impact of adaptive maintenance process on open source software quality". Proceedings of the 1st International Symposium on Empirical Software Engineering and Measurement (ESEM 2007) (Madrid, Spain), 186-195. IEEE Computer Society. Nov. 2007.
Intermediary results:
We are
currently preparing three articles for publication in international scientific
journals focusing on different kinds of quality aspects of open source software
systems; including maintainability, reliability, and security.
2.3.
Software inspections
Software
inspections mean peer reviews of software artifacts. Software inspections can
be applied to increase quality of software already prior to testing therefore
reducing the needed corrective effort. Both the technical and organizational
aspects of inspections have been studied in the scientific literature since the
1980s. The studies include e.g. different kinds of inspection techniques and
some reverse engineering tools for supporting the inspections. We have
conducted both a literature survey and empirical industrial case studies
related to software inspections.
Main publications:
o Sami Kollanus & Jussi Koskinen "Survey of software inspection research". The Open Software Engineering Journal 3, 15-34. May 2009.
o Sami
Kollanus & Jussi Koskinen "Software inspections in practice:
Six case studies". Lecture
Notes in Computer Science (LNCS)
4034; Product-Focused Software Process Improvement -
7th International
Conference (PROFES
2006) (Amsterdam,
The Netherlands), 377-382. Springer.
June 2006.
o Sami Kollanus & Jussi
Koskinen "Survey of software inspection research: 1991-2005". Computer Science and Information Systems Reports,
Working Papers WP-40,
2.4.
Software outsourcing
Outsourcing
means factors which are external to an organization to perform its functions,
whereas offshore outsourcing relies on using foreign resources. Thanks to
globalization and the internet there are constantly improving possibilities to
apply offshore outsourcing. Due to tightening price competition on free markets
there is also a constant pressure to apply it. We study offshore outsourcing of
software engineering activities and information and communication technology
support services.
Intermediary results:
We have
submitted one article to an international scientific journal based on data from
three countries and are currently finalizing another one.
SME (Software Maintenance Education) (2001-). The conducted research
focuses on software maintenance and evolution; especially on the effects and
factors affecting teaching software maintenance and evolution successfully via
interactive seminars. The underlying essential problem is that; despite its
importance, maintenance rarely deserves proper treatment in software
engineering education. One reason to this is the tradition of covering other
subject areas; which have been established much earlier, instead of maintenance
in the past; and even the current educational curricula. Another related reason
is that the general software engineering books deal with software maintenance
and evolution only at a shallow level; allocating typically only 5-10% of the
text coverage for it, as compared to the 50-90% cost proportion which it
induces. Seminars on the other hand allow motivating interactivity and covering
a wide range of scientifically relevant and new theoretical advances. Students
need that sort of knowledge in order to become mature enough to commit
themselves into large applicative SME work projects. Therefore, seminars and
other similar forms of teaching are needed and they should also be studied
scientifically. Keywords: software maintenance, education.
Main publications:
o Jussi Koskinen "Seminars on software maintenance and evolution: An empirical study of the background factors affecting student success". The Open Software Engineering Journal 3, pp. 39-71. June 2009.
o Jussi Koskinen "Experiences from software
maintenance seminars: Organizing three seminars with 127 groups". Technological
Developments in Education and Automation, pp. 339-344. Book chapter.
Springer. June 2009 (published on-line: Dec. 2008).
o Jussi Koskinen
"Three software
maintenance seminars: Preliminary analysis of 127 seminar groups". The
4th International Symposium on Empirical Software Engineering (ISESE
2005) (Noosa Heads, Australia), 13 p. Poster. Nov. 2005.
o Jussi Koskinen (Ed.) "Ohjelmistojen ylläpidon
seminaari - 2003" (in Finnish) ("Software Maintenance Seminar -
2003"). Jyväskylän Yliopistopaino, Jyväskylä, Finland. 259 p. Aug. 2003.
o Jussi Koskinen (Ed.) "Ohjelmistojen ylläpidon
seminaari - 2002" (in Finnish) ("Software Maintenance
Seminar - 2002"). Jyväskylän Yliopistopaino, Jyväskylä, Finland. 251 p.
Aug. 2002.
o Jussi Koskinen, Markku Sakkinen & Jukka
Paakki "Ohjelmistotekniikka"
(2nd revised edition) (in Finnish) ("Software Engineering"). Tietojenkäsittelytieteen
julkaisuja, Opetusmonisteita OM-10, Dept. of Computer Science and
Information Systems, Univ. of Jyväskylä, Jyväskylä, Finland. 234 p.
Dec. 2001.
o Jussi Koskinen (Ed.) "Ohjelmistojen ylläpidon
seminaari - 2001" (in Finnish) ("Software Maintenance Seminar -
2001"). Dept. of Computer
Science and Information Systems, Univ. of Jyväskylä, Jyväskylä, Finland. Jyväskylän Yliopistopaino,
Jyväskylä, Finland. 173 p. Aug. 2001.
Organized courses:
o Software
Maintenance (TJTSS63)
o Software
Maintenance Tasks (TJTSS61)
o Software Maintenance Techniques (TJTSS62)
o Software Maintenance Cost
Estimation (TJTSS64)
Organized seminars:
o 3rd Software
Maintenance Seminar (SMS 2003)
o 2nd Software
Maintenance Seminar (SMS 2002)
o 1st Software
Maintenance Seminar (SMS 2001)
Decision support systems are computer-based information systems that support decision making activities. In addition to the here summarized branches of specific novel applications and general decision making theories, and surveys, the earlier described ELTIS-project has extensively studied decision making support in the context of software evolution; including group decision making, economical analyses, processes for decision making and different aspects and techniques of software evaluation as a basis for making informed decisions concerning modernizations, replacements and other major choices related to the evolution of software systems.
4.1. Automated chess
The future
research will include data mining related to the grand-master databases and
automated learning based on positional similarities. Chess is used as a
well-known application area to experiment and determine the potential of
different novel techniques of artificial and computational intelligence in a
rigorous fashion by using empirical; statistical research methods. The results
are expected to be generalizable to economically important application areas.
Main publications:
o Jussi Koskinen "Chess Analyzer (v. 1.0)". Dept. of
Computer Science and Information Systems, Univ.
of Jyväskylä, Jyväskylä,
Finland. Software. 2700 LOCs. Dec. 1993.
4.2.
Decision making theories
Main publications:
o Kari Kivelä & Jussi Koskinen "Päätöksenteon teoriat" (in Finnish) ("Decision making theories"). In: "Organisaatioteoriat ja tietotekniikka". Tietojenkäsittelytieteen julkaisuja, Tutkimuksia TU-13, pp. 51-97. Dept. of Computer Science, Univ. of Jyväskylä, Jyväskylä, Finland. April 1992.
4.3. Expert systems
Main publications:
o Jussi Koskinen "Suomalaisten asiantuntijajärjestelmähankkeiden
menestystekijöiden kartoitus"
(in Finnish) ("Survey of Finnish expert system projects' success
factors"). Finnish Artificial Intelligence Symposium, Suomen
Tekoälytutkimuksen Päivät (STeP 1990) (Oulu, Finland), pp.
408-417. Finnish Artificial Intelligence
Soc. June 1990.
o Jussi Koskinen "Asiantuntijajärjestelmien
rakentamisen menestystekijät" (in
Finnish). ("Success
factors of developing expert systems"). Dept. of Computer Science,
4.4. Data transformations
FluidSoft (Fluidity
in Software Systems) (2000-). The idea is to apply fluid information
representations and data transformations in the software engineering context.
This is an oncoming project. Keywords: data transformations, fluid information
representations, artificial and computational intelligence, adaptability, pattern
recognition, analogical reasoning, fuzzy logic, data mining, structured documents, software documents.
Intermediary results:
An
unpublished research plan.
5.1. Office automation (ITU)
ITU
(1988-1989). An early work and research project on office automation based on
application of two different information system development methods (OSSAD and
Ethics) and gathering information on their use. Keywords: office automation,
information system development methods, OSSAD, Ethics.
Results:
o Jussi
Koskinen, Mikko Kovalainen, Jarkko Lempiö & Antti Pudas "ITU-projekti
(1988-1989)" (in Finnish). Tietojärjestelmäprojekti, ITU project,
Dept. of Computer Science,
List of publications => http://www.cs.jyu.fi/~koskinen/public.htm
Curriculum Vitae => http://www.cs.jyu.fi/~koskinen/CV-medium-eng.htm
Recognitions => http://users.jyu.fi/~koskinen/recognitions.htm