RESEARCH INTERESTS

Jussi Koskinen

Department of Computer Science and Information Systems

University of Jyväskylä, Jyväskylä, Finland

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.

1. Automated software engineering

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, France. June 1995.

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), USA. June 1994.

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. Lund University, Sweden. June 1994.

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. Empirical software engineering

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 Enterprise Information Systems (ICEIS 2007) (Funchal, Madeira, Portugal) (Volume DISI), pp. 280-287. INSTICC Press. June 2007.

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, Jyväskylä University Printing House, Jyväskylä, Finland. 39 p. March 2007.

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.

3. Software engineering education

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)

4. Decision making support

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". Tieto­jenkä­sittelytie­teen julkaisuja, Tutki­muksia 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, Univ. of Jyväskylä, Jyväskylä, Finland. Master’s thesis in Computer Science. 137 p. March 1990.

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. Other research

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, Univ. of Jyväskylä, Jyväskylä, Finland. General published documentation of the work project. About 500 p. May 1989.

 

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