VLDB 2026 Research / reviewers in the wild / expert
Ivica Crnkovic
dblp:c/IvicaCrnkovic
· DBLP profile ↗
71ranked-venue papers
18as first author
3since 2021 · last 2022
0000-0002-5278-755XORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 57 · 15 first-author · 2 since 2021Applied, interdisciplinary, general and emerging computing · 8Human-computer interaction and ubiquitous computing · 6 · 1 first-authorSystems, architecture and hardware · 3 · 1 first-authorDatabases, data management, data science and information retrieval · 2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Obituary Dr. Ivica Crnkovic
Ivica Crnkovic |
Inf. Softw. Technol. | 1 |
| 2021 | AI Engineering -- Meeting New Challenges in System and Software Development of AI-based Systems
Ivica Crnkovic |
CLOSER | 1 |
| 2021 | Software Deployment on Heterogeneous Platforms: A Systematic Mapping StudyabstractContext: Multiple types of processing units (e.g., CPUs, GPUs and FPGAs) can be used jointly to achieve better performance in computational systems. However, these units are built with fundamentally different characteristics and demand attention especially towards software deployment. Objective: The goal of this work is to summarize the state-of-the-art of software deployment on heterogeneous platforms. We provide an overview of the research area by searching for and categorizing relevant studies, as well as discussing gaps and trends of the field. We are interested in the main concerns (RQ1) and the approaches used (RQ2) when deploying software on heterogeneous platforms. Method: In order to achieve our goal, we performed a systematic mapping study, which refers to a method for reviewing literature with basis on predefined search strategies and a multi-step selection process. Results: We selected and analyzed 146 primary studies from multiple sources and found that the area of research is dominated by solution proposals. The majority of the studies discuss concerns about scheduling, the quality of the software, and its architecture. A large number of studies focuses on the problem of scheduling tasks and processes. We found approaches that are applied at different binding times (i.e., design time, runtime, orthogonal). Conclusion: The evaluation of the proposed solutions in an industrial context is missing. Also, the proposed methods have not been evaluated in development processes. Most of the methods address a particular concern, or a few concerns, while there is a lack of a holistic approach. Hugo Sica de Andrade, Jan Schroeder, Ivica Crnkovic |
IEEE Trans. Software Eng. | 3 |
| 2020 | Principles for Re-architecting Software for Heterogeneous PlatformsabstractThe demands on software continues to increase through the constant addition of functionalities and high expectations from users. In particular, performance has been the focus in many projects with the goal of fulfilling complex and hard requirements across a variety of domains. One way to achieve satisfactory levels of performance is through heterogeneous computing, i.e., systems that contain more than one type of processing unit, such as CPUs, GPUs, and FPGAs. However, applications are typically designed to be executed on CPUs, and re-architecting software for execution on such heterogeneous hardware architectures entails several challenges that must be addressed. In this paper, we propose a framework that supports engineers in the process of making architectural decisions to re-architect software for execution on heterogeneous platforms. We present several relevant aspects that should be addressed in the process, along with suggestions on how to create design solutions using different existing approaches. The framework was developed based on multiple interactions with three industrial partners and evaluated through a computer vision application in the automotive domain. Hugo Sica de Andrade, Christian Berger 0001, Ivica Crnkovic, Jan Bosch |
APSEC | 3 |
| 2020 | Refactoring Software in the Automotive Domain for Execution on Heterogeneous PlatformsabstractThe most important way to achieve higher performance in computer systems is through heterogeneous computing, i.e., by adopting hardware platforms containing more than one type of processor, such as CPUs, GPUs, and FPGAs. Several types of algorithms can be executed significantly faster on a heterogeneous platform. However, migrating CPU-executable software to other types of execution platforms poses a number of challenges to software engineering. Significant efforts are required in such type of migration, particularly for re-architecting and re-implementing the software. Further, optimizing it in terms of performance and other runtime properties can be very challenging, making the process complex, expensive, and error-prone. Therefore, a systematic approach based on explicit and justified architectural decisions is needed for a successful refactoring process from a homogeneous to a heterogeneous platform. In this paper, we propose a decision framework that supports engineers when refactoring software systems to accommodate heterogeneous platforms. It includes the assessment of important factors in order to minimize the risk of recurrent problems in the process. Through a set of questions, practitioners are able to formulate answers that will help in making appropriate architectural decisions to accommodate heterogeneous platforms. The contents of the framework have been developed and evolved based on discussions with architects and developers in the automotive domain. Hugo Sica de Andrade, Ivica Crnkovic, Jan Bosch |
COMPSAC | 2 |
| 2020 | From a Data Science Driven Process to a Continuous Delivery Process for Machine Learning Systems
Lucy Ellen Lwakatare, Ivica Crnkovic, Ellinor Rånge, Jan Bosch |
PROFES | 2 |
| 2020 | Large-scale machine learning systems in real-world industrial settings: A review of challenges and solutions
Lucy Ellen Lwakatare, Aiswarya Raj Munappy, Ivica Crnkovic, Jan Bosch, Helena Olsson |
Inf. Softw. Technol. | 3 |
| 2019 | Software Challenges in Heterogeneous Computing: A Multiple Case Study in IndustryabstractOne way to improve the performance of embedded systems is through heterogeneous platforms, i.e., using hardware containing more than one type of processor, like CPU + GPU or CPU + FPGA. This approach has shown improved performance, particularly in the domain of artificial intelligence, in which computationally demanding models must be trained and executed. However, these computational environments pose various challenges to software engineering, since applications must be designed and developed differently while accounting for target hardware architectures that are inherently different. Companies interested in migrating to heterogeneous platforms must be aware of the changes to the software development processes that are required to accommodate such solution. In this paper, we conducted a multiple case study that aims to discover the challenges and common practices when developing software for heterogeneous platforms in industrial contexts. First, we organized semi-structured interviews with companies on the automotive, automation, and telecommunication domains. Then, we analyzed and structured the data in order to create a classification describing the software engineering challenges faced by companies using heterogeneous platforms. The companies involved in this study are in different stages of maturity concerning the use of heterogeneous platforms. Thus, the classification takes into consideration these levels to describe the challenges accordingly. Hugo Sica de Andrade, Lucy Ellen Lwakatare, Ivica Crnkovic, Jan Bosch |
SEAA | 3 |
| 2019 | A Taxonomy of Software Engineering Challenges for Machine Learning Systems: An Empirical InvestigationabstractAbstract Artificial intelligence enabled systems have been an inevitable part of everyday life. However, efficient software engineering principles and processes need to be considered and extended when developing AI- enabled systems. The objective of this study is to identify and classify software engineering challenges that are faced by different companies when developing software-intensive systems that incorporate machine learning components. Using case study approach, we explored the development of machine learning systems from six different companies across various domains and identified main software engineering challenges. The challenges are mapped into a proposed taxonomy that depicts the evolution of use of ML components in software-intensive system in industrial settings. Our study provides insights to software engineering community and research to guide discussions and future research into applied machine learning. Lucy Ellen Lwakatare, Aiswarya Raj Munappy, Jan Bosch, Helena Olsson, Ivica Crnkovic |
XP | 5 |
| 2019 | An extensible framework for software configuration optimization on heterogeneous computing systems: Time and energy case study
Ivan Svogor, Ivica Crnkovic, Neven Vrcek |
Inf. Softw. Technol. | 2 |
| 2019 | Managing Diversity in Distributed Software Development Education - A Longitudinal Case StudyabstractTeaching Distributed Software Development with real distributed settings is a challenging and rewarding task. Distributed courses are idiosyncratically more challenging than standard local courses. We have experienced this during our distributed course, which has been run for 14 consecutive years. In this article, we present and analyze the emerging diversities specific to distributed project-based courses. We base our arguments on our experience, and we exploit a three-layered distributed course model, which we use to analyze several course elements throughout the 14-years lifetime of our distributed project-based course. In particular, we focus on the changes that the course underwent throughout the years, combining findings obtained from the analyzed data with our own teaching perceptions. Additionally, we propose insights on how to manage the various diversity aspects. Ivana Bosnic, Federico Ciccozzi, Ivica Crnkovic, Igor Cavrak, Elisabetta Di Nitto, Raffaela Mirandola, Mario Zagar |
ACM Trans. Comput. Educ. | 3 |
| 2019 | Safety for mobile robotic systems: A systematic mapping study from a software engineering perspective
Darko Bozhinoski, Davide Di Ruscio, Ivano Malavolta, Patrizio Pelliccione, Ivica Crnkovic |
J. Syst. Softw. | 5 |
| 2018 | A Review on Software Architectures for Heterogeneous PlatformsabstractThe increasing demands for computing performance have been a reality regardless of the requirements for smaller and more energy efficient devices. Throughout the years, the strategy adopted by industry was to increase the robustness of a single processor by increasing its clock frequency and mounting more transistors so more calculations could be executed. However, it is known that the physical limits of such processors are being reached, and one way to fulfill such increasing computing demands has been to adopt a strategy based on heterogeneous computing, i.e., using a heterogeneous platform containing more than one type of processor. This way, different types of tasks can be executed by processors that are specialized in them. Heterogeneous computing, however, poses a number of challenges to software engineering, especially in the architecture and deployment phases. In this paper, we conduct an empirical study that aims at discovering the state-of-the-art in software architecture for heterogeneous computing, with focus on deployment. We conduct a systematic mapping study that retrieved 28 studies, which were critically assessed to obtain an overview of the research field. We identified gaps and trends that can be used by both researchers and practitioners as guides to further investigate the topic. Hugo Sica de Andrade, Ivica Crnkovic |
APSEC | 2 |
| 2018 | Architecture optimization: speed or accuracy? both!abstractEmbedded systems are becoming more and more complex, thus demanding innovative means to tame their challenging development. Among others, early architecture optimization represents a crucial activity in the development of embedded systems to maximise the usage of their limited resources and to respect their real-time requirements. Typically, architecture optimization seeks good architecture candidates based on model-based analysis. Leveraging abstractions and estimates, this analysis usually produces approximations useful for comparing architecture candidates. Nonetheless, approximations do not provide enough accuracy in estimating crucial extra-functional properties. In this article, we provide an architecture optimization framework that profits from both the speed of model-based predictions and the accuracy of execution-based measurements. Model-based optimization rapidly finds a good architecture candidate, which is refined through optimization based on monitored executions of automatically generated code. Moreover, the framework enables the developer to leverage her optimization experience. More specifically, the developer can use runtime monitoring of generated code execution to manually adjust task allocation at modeling level, and commit the changes without halting execution. In the article, our architecture optimization mechanism is first described from a general point of view and then exploited for optimizing the allocation of software tasks to the processing cores of a multicore embedded system; we target extra-functional properties that can be concretely represented and automatically compared for different architectural alternatives (such as memory consumption, energy consumption, or response-time). Federico Ciccozzi, Juraj Feljan, Jan Carlson, Ivica Crnkovic |
Softw. Qual. J. | 4 |
| 2018 | Choosing Component Origins for Software Intensive Systems: In-House, COTS, OSS or Outsourcing? - A Case SurveyabstractThe choice of which software component to use influences the success of a software system. Only a few empirical studies investigate how the choice of components is conducted in industrial practice. This is important to understand to tailor research solutions to the needs of the industry. Existing studies focus on the choice for off-the-shelf (OTS) components. It is, however, also important to understand the implications of the choice of alternative component sourcing options (CSOs), such as outsourcing versus the use of OTS. Previous research has shown that the choice has major implications on the development process as well as on the ability to evolve the system. The objective of this study is to explore how decision making took place in industry to choose among CSOs. Overall, 22 industrial cases have been studied through a case survey. The results show that the solutions specifically for CSO decisions are deterministic and based on optimization approaches. The non-deterministic solutions proposed for architectural group decision making appear to suit the CSO decision making in industry better. Interestingly, the final decision was perceived negatively in nine cases and positively in seven cases, while in the remaining cases it was perceived as neither positive nor negative. Kai Petersen, Deepika Badampudi, Syed Muhammad Ali Shah, Krzysztof Wnuk, Tony Gorschek, Efi Papatheocharous, Jakob Axelsson, Séverine Sentilles, Ivica Crnkovic, Antonio Cicchetti |
IEEE Trans. Software Eng. | 9 |
| 2017 | System Level Partitioning for Embedded SystemsabstractPlatforms with different computation resource, e.g. CPUs and FPGAs, become one of the first choices to deploy performance-requiring embedded applications. On this technology, functionalities can be implemented either as hardware (HW) or software (SW) components. Here, we extend the MultiPar methodology to support the selection of optimal partitioning solutions with respect to system properties. We show the feasibility of the proposed methodology and validate the composition rules for properties used in the partitioning decision process. Gaetana Sapienza, Nunzio Meli, Jonas Eriksson, Roger Jansson, Tiberiu Seceleanu, Ivica Crnkovic |
COMPSAC (2) | 6 |
| 2017 | Hall of Fame Nomination Paper: Distributed Software Development CourseabstractDistributed Software Development course is a joint project-based course involving three universities, from Croatia, Sweden and Italy, running each year since 2003. Distributed student teams work on all phases of a complex software engineering project, solving several challenges of working in a global environment, thus obtaining a valuable experience for their future careers. The course is very well received by both the students and course partners from the industry. Igor Cavrak, Ivana Bosnic, Mario Zagar, Federico Ciccozzi, Elisabetta Di Nitto, Raffaela Mirandola, Ivica Crnkovic |
CSEE&T | 7 |
| 2017 | Introduction to the special issue on "New frontiers in software architecture"
Danny Weyns, Raffaela Mirandola, Ivica Crnkovic |
J. Syst. Softw. | 3 |
| 2016 | Twenty-eight years of component-based software engineering
Tassio Vale, Ivica Crnkovic, Eduardo Santana de Almeida, Paulo Anselmo da Mota Silveira Neto, Yguaratã Cerqueira Cavalcanti, Silvio Romero de Lemos Meira |
J. Syst. Softw. | 2 |
| 2015 | Systematic evaluation of three data marshalling approaches for distributed software systemsabstractCyber-physical systems like robots and self-driving vehicles comprise complex software systems. Their software is typically realized as distributed agents that are responsible for dedicated tasks like sensor data handling, sensor data fusion, or action planning. The modular design allows a flexible deployment as well as algorithm encapsulation to exchange software modules where needed. The distributed software exchanges data using a data marshalling layer to serialize and deserialize data structures between a sending and receiving entity. In this article, we are systematically evaluating Google Protobuf, LCM, and our self-adaptive delta marshalling approach by using a generic description language, of which instances are composed at runtime. Our results show that Google Protobuf performs well for small messages composed mainly by integral field types; the self-adaptive data marshalling approach is efficient if four or more fields of type double are present, and LCM outperforms both when a mix of many integral and double fields is used. Hugo Sica de Andrade, Federico Giaimo, Christian Berger 0001, Ivica Crnkovic |
DSM@SPLASH | 4 |
| 2014 | Cloud Computing education strategiesabstractCloud Computing is changing the services consumption and delivery platform as well as the way businesses and users interact with IT resources. It represents a major conceptual shift that introduces new elements in programming models and development environments that are not present in traditional technologies. The evolution of Cloud Computing motivates teaching Cloud Computing to computer science senior students and graduate students so that they can gain broad exposure to the main body of knowledge of Cloud Computing and get prepared for occupations in industry. There is thus a strong need for having a Cloud Computing education course that (i) has a broad coverage of different roles interacting with a cloud; and (ii) leverages Cloud Computing concepts, technology and architecture topics at both introductory and advanced level. In this paper, we describe the demand for understanding the impact of Cloud Computing in computer science higher education. We propose education strategies for teaching Cloud Computing, including key knowledge areas for an enduring Cloud Computing course. Hongyu Pei Breivold, Ivica Crnkovic |
CSEE&T | 2 |
| 2014 | Architectural Decisions for HW/SW Partitioning Based on Multiple Extra-Functional PropertiesabstractGrowing advances in hardware technologies are enabling significant improvements in application performance by the deployment of components to dedicated executable units. This is particularly valid for Cyber Physical Systems in which the applications are partitioned in HW and SW execution units. The growing complexity of such systems, and increasing requirements, both project- and product-related, makes the partitioning decision process complex. Although different approaches to this decision process have been proposed during recent decades, they lack the ability to provide relevant decisions based on a larger number of requirements and project/business constraints. A sound approach to this problem is taking into account all relevant requirements and constraints and their relations to the properties of the components deployed either as HW or SW units. A typical approach for managing a large number of criteria is a multicriteria decision analysis. This, in its turn, requires uniform definitions of component properties and their realization in respect to their HW/SW deployment. The aim of this paper is twofold: a) to provide an architectural metamodel of component-based applications with specifications of their properties with respect to their partitioning, and b) to categorize component properties in relation to HW/SW deployment. The metamodel enables the transition of system requirements to system and component properties. The categorization provides support for architectural decisions. It is demonstrated through a property guideline for the partitioning of the System Automation and Control domain. The guideline is based on interviews with practitioners and researchers, the experts in this domain. Gaetana Sapienza, Ivica Crnkovic, Pasqualina Potena |
WICSA | 2 |
| 2013 | Towards Automatic Client-Side Feature Reuse
Josip Maras, Jan Carlson, Ivica Crnkovic |
WISE (2) | 3 |
| 2013 | Embedded Systems Software Architecture
Ivica Crnkovic, Judith A. Stafford |
J. Syst. Archit. | 1 |
| 2013 | Identifying Code of Individual Features in Client-Side Web ApplicationsabstractWeb applications are one of today's fastest growing software systems. Structurally, they are composed of two parts: the server side, used for data access and business logic, and the client side, used as a user interface. In recent years, with developers building complex interfaces, the client side is playing an increasingly important role. Unfortunately, the techniques and tools used to support development are not as advanced as in other disciplines. From the user's perspective, the client side offers a number of features that are relatively easy to distinguish. However, the same cannot be said for their implementation details. This makes the understanding, maintenance, and reuse of code difficult. The goal of the work presented in this paper is to improve reusability, maintainability, and performance of client-side web applications by identifying the code that implements a particular feature. We have evaluated the approach based on three different experiments: extracting features, extracting library functionalities, and page optimization. The evaluation shows that the method is able to identify the implementation details of individual features, and that by extracting the identified code, a considerable reduction in code size and increase in performance can be achieved. Josip Maras, Maja Stula, Jan Carlson, Ivica Crnkovic |
IEEE Trans. Software Eng. | 4 |
| 2012 | Will They Report It? Ethical Attitude of Graduate Software Engineers in Reporting Bad NewsabstractHiding critical information has resulted in disastrous failures of some major software projects. This paper investigates, using a subset of Keil's test, how graduates (70% of them with work experience) from different cultural backgrounds who are enrolled in a postgraduate course on global software development would handle negative information that is critical in a project. The subjects were mainly from Europe and Asia. The results showed that the subjects are highly likely to report critical information to their immediate supervisors (t(36)=-11, p<;0.0005), but are undecided on whether they would take the matter further up the organisational hierarchy if the supervisor ignored their report. There was no significant difference between participants of different regions, or between those with and without work experience. The consequences of negative information not reaching the level where remedial actions can be taken could be serious in software projects. The results of this experiment point to the need to incorporate in software engineering curriculum the teaching of the ethical responsibility of effective communication of bad news. A. S. M. Sajeev, Ivica Crnkovic |
CSEE&T | 2 |
| 2012 | Collaboration patterns in distributed software development projectsabstractThe need for educating future software engineers in the field of global software engineering is recognized by many educational institutions. In this paper we outline the characteristics of an existing global software development course run over a period of nine years, and present a flexible project framework for conducting student projects in a distributed environment. Based on data collected from fourteen distributed student projects, a set of collaboration patterns is identified and their causes and implications described. Collaboration patterns are a result of the analysis of collaboration links within distributed student teams, and can assist teachers in better understanding of the dynamics found in distributed projects. Igor Cavrak, Marin Orlic, Ivica Crnkovic |
ICSE | 3 |
| 2012 | Ten tips to succeed in Global Software Engineering educationabstractThe most effective setting for training in Global Software Engineering is to provide a distributed environment for students. In such an environment, students will meet challenges in recognizing problems first-hand. Teaching in a distributed environment is, however, very demanding, challenging and unpredictable compared to teaching in a local environment. Based on nine years of experience, in this paper we present the most important issues that should be taken into consideration to increase the probability of success in teaching a Global Software Engineering course. Ivica Crnkovic, Ivana Bosnic, Mario Zagar |
ICSE | 1 |
| 2012 | Extracting client-side web application codeabstractThe web application domain is one of the fastest growing and most wide-spread application domains today. By utilizing fast, modern web browsers and advanced scripting techniques, web developers are developing highly interactive applications that can, in terms of user-experience and responsiveness, compete with standard desktop applications. A web application is composed of two equally important parts: the server-side and the client-side. The client-side acts as a user-interface to the application, and can be viewed as a collection of behaviors. Similar behaviors are often used in a large number of applications, and facilitating their reuse offers considerable benefits. However, due to client-side specifics, such as multi-language implementation and extreme dynamicity, identifying and extracting code responsible for a certain behavior is difficult. In this paper we present a semi-automatic method for extracting client-side web application code implementing a certain behavior. We show how by analyzing the execution of a usage scenario, code responsible for a certain behavior can be identified, how dependencies between different parts of the application can be tracked, and how in the end only the code responsible for a certain behavior can be extracted. Our evaluation shows that the method is capable of extracting stand-alone behaviors, while achieving considerable savings in terms of code size and application performance. Josip Maras, Jan Carlson, Ivica Crnkovic |
WWW | 3 |
| 2012 | A systematic review of software architecture evolution research
Hongyu Pei Breivold, Ivica Crnkovic, Magnus Larsson |
Inf. Softw. Technol. | 2 |
| 2012 | Software architecture evolution through evolvability analysis
Hongyu Pei Breivold, Ivica Crnkovic, Magnus Larsson |
J. Syst. Softw. | 2 |
| 2011 | Client-side web application slicingabstractHighly interactive web applications that offer user experience and responsiveness of standard desktop applications are becoming prevalent in the web application domain. However, with these benefits come certain drawbacks. For example, the event-based architectural style, and poor support for code organization, often lead to a situation where code responsible for a certain behavior is intermixed with irrelevant code. This makes development, debugging and reuse difficult. One way of locating code implementing a certain behavior is program slicing, a method that, given a subset of a program's behavior, reduces the program to a minimal form that still produces that behavior. In this paper we present a semi-automatic client-side web application slicing method, describe the web page dependency graph, and show how it can be used to extract only the code implementing a certain behavior. Josip Maras, Jan Carlson, Ivica Crnkovic |
ASE | 3 |
| 2011 | A Classification Framework for Software Component ModelsabstractIn the last decade, a large number of different software component models have been developed, with different aims and using different principles and technologies. This has resulted in a number of models which have many similarities, but also principal differences, and in many cases unclear concepts. Component-based development has not succeeded in providing standard principles, as has, for example, object-oriented development. In order to increase the understanding of the concepts and to differentiate component models more easily, this paper identifies, discusses, and characterizes fundamental principles of component models and provides a Component Model Classification Framework based on these principles. Further, the paper classifies a large number of component models using this framework. Ivica Crnkovic, Séverine Sentilles, Aneta Vulgarakis Feljan, Michel R. V. Chaudron |
IEEE Trans. Software Eng. | 1 |
| 2010 | Customers' Role in Teaching Distributed Software DevelopmentabstractThis paper describes different aspects of teaching distributed software development, regarding the types of project customers: industry and academia. These approaches enable students to be more engaged in real-world situations, by having customers from the industry, local or distributed customers in universities, distributed customers in software engineering contests or being involved in an ongoing project, thus simulating the company merging. The methods we describe are used in a distributed project-oriented course, which is jointly carried out by two universities from Sweden and Croatia. The paper presents our experiences of such projects being done during the course, the differences in each approach, issues observed and ways to solve them, in order to create a more engaging education for better-prepared engineers of tomorrow. Ivana Bosnic, Igor Cavrak, Mario Zagar, Rikard Land, Ivica Crnkovic |
CSEE&T | 5 |
| 2010 | Project Monitoring and Control in Model-driven and Component-based Development of Embedded Systems - The CARMA Principle and Preliminary Results
Rikard Land, Jan Carlson, Stig Larsson 0002, Ivica Crnkovic |
ENASE | 4 |
| 2010 | Performing a Project in a Distributed Software Development Course: Lessons LearnedabstractDistributed software development approaches have to face with several issues like cultural differences, collaboration and communication mechanisms, which can undermine the overall development success if not handled in a proper manner. In order to provide a real environment for students placed in different countries to learn and apply the best practices in distributed software development, a course has been developed jointly by two european universities. The course aims at providing the students an insight in the complexity of distributed development and giving the possibility to work in distributed teams for actual implementations, in order to minimize the gap between theory and practice. This paper describes the course design, challenges, results and success factors, from a students perspective. Federico Ciccozzi, Ivica Crnkovic |
ICGSE | 2 |
| 2009 | Towards Guidelines for a Development Process for Component-Based Embedded Systems
Rikard Land, Jan Carlson, Stig Larsson 0002, Ivica Crnkovic |
ICCSA (2) | 4 |
| 2009 | Save-IDE - A tool for design, analysis and implementation of component-based embedded systemsabstractThe paper presents Save-IDE, an integrated development environment for the development of component-based embedded systems. Save-IDE supports efficient development of dependable embedded systems by providing tools for design of embedded software systems using a dedicated component model, formal specification and analysis of component and system behaviors already in early development phases, and a fully automated transformation of the system of components into an executable image. Séverine Sentilles, Anders Pettersson, Dag Nyström, Thomas Nolte, Paul Pettersson, Ivica Crnkovic |
ICSE | 6 |
| 2009 | phpModeler - A Web Model ExtractorabstractThis paper presents phpModeler, a tool for reverse engineering of legacy php web applications that generates static UML diagrams showing resources which the current web page is using, its functions and dependencies it has on other web pages. Once the models describing individual web pages have been generated, phpModeler can analyze them and generate dependency models that for each entity in every page model show all entities dependent on it. phpModeler can also be used to highlight the difference between page models - a feature that, when combined with a SVN repository shows the way how the current web page has evolved over time. phpModeler is a plugin for the Eclipse IDE. Josip Maras, Maja Stula, Ivica Crnkovic |
ASE | 3 |
| 2009 | Software product integration: A case study-based synthesis of reference models
Stig Larsson 0002, Petri Myllyperkiö, Fredrik Ekdahl, Ivica Crnkovic |
Inf. Softw. Technol. | 4 |
| 2008 | Analyzing Software EvolvabilityabstractSoftware evolution is characterized by inevitable changes of software and increasing software complexities, which in turn may lead to huge costs unless rigorously taking into account change accommodations. This is in particular true for long-lived systems in which changes go beyond maintainability. For such systems, there is a need to address evolvability explicitly during the entire lifecycle. Nevertheless, there is a lack of a model that can be used for analyzing, evaluating and comparing software systems in terms of evolvability. In this paper, we describe the initial establishment of an evolvability model as a framework for analysis of software evolvability. We motivate and exemplify the model through an industrial case study of a software-intensive automation system. Hongyu Pei Breivold, Ivica Crnkovic, Peter J. Eriksson |
COMPSAC | 2 |
| 2008 | Analyzing Software Evolvability of an Industrial Automation Control System: A Case StudyabstractEvolution of software systems is characterized by inevitable changes of software and increasing software complexity, which in turn may lead to huge maintenance and development costs. For long-lived systems, there is a need to address evolvability (i.e. a systempsilas ability to easily accommodate changes) explicitly in the requirements and early design phases, and maintain it during the entire lifecycle. This paper describes our work in analyzing and improving the evolvability of an industrial automation control system, and presents (1) evolvability subcharacteristics based on the problems in the case and available literature; (2) a structured method for analyzing evolvability at the architectural level - the ARchitecture Evolvability Analysis (AREA) method. This paper includes also the main analysis results and our observations during the evolvability analysis process in the case study. The evolvability subcharacteristics and the method should be generally applicable, and they are being validated within another domain at the time of writing. Hongyu Pei Breivold, Ivica Crnkovic, Rikard Land, Magnus Larsson |
ICSEA | 2 |
| 2008 | COTS Selection Best Practices in Literature and in Industry
Rikard Land, Laurens Blankers, Michel R. V. Chaudron, Ivica Crnkovic |
ICSR | 4 |
| 2008 | Save-IDE: An Integrated Development Environment for Building Predictable Component-Based Embedded SystemsabstractIn this paper we present an Integrated Development Environment Save-IDE, a toolset that embraces several tools: a tool for designing component-based systems and components, modeling and predicting certain run-time properties, such as timing properties, and transforming the components to real-time execution elements. Save-IDE is specialized for the domain of dependable embedded systems, which in addition to standard design tools requires tool support for analysis and verification of particular properties of such systems. Séverine Sentilles, Paul Pettersson, Ivica Crnkovic, John Håkansson |
ASE | 3 |
| 2008 | Editorial
Paul Grünbacher, Ivica Crnkovic, Paul Müller 0001 |
J. Syst. Archit. | 2 |
| 2007 | Towards a European Master Programme on Global Software EngineeringabstractThis paper presents a European Master programme on global software engineering (SE), being put forward by four leading institutions from Sweden, UK, Netherlands and Italy. The Global SE European Master (GSEEM) programme aims to provide students with an excellence in SE based on sound theoretical foundations and practical experience, as well as prepare them to participate in global development of complex and large software systems. GSEEM has been designed with three noteworthy aspects: 1) Three specialization profiles in which the consortium excels: Software Architecting, Real-time Embedded Systems Engineering, and Web Systems and Services Engineering. 2) Two market-driven routes: "professional" to work as professionals, and "scientific" to continue the education towards research degrees. 3) An innovative concept of "shared modules", delivered together by multiple institutions. Four types of shared modules are foreseen: "parallel" twin modules which run remotely between universities, "shifted" modules which teach SE concepts incrementally with shifts in study locations and timeline ,"complementary" modules in which complementary SE concepts are taught in parallel through shared projects, and "common" modules which share the presentations and the project. The profiles realize "integrated knowledge" by complementing partial knowledge available at partner institutions. The paper explains how GSEEM achieves the objectives of educating global software engineers. Patricia Lago, Henry Muccini, Ljerka Beus-Dukic, Ivica Crnkovic, Sasikumar Punnekkat, Hans van Vliet |
CSEE&T | 4 |
| 2007 | Driving the selection of cots components on the basis of system requirementsabstractIn a component-based development process the selection of components is an activity that takes place over multiple lifecycle phases that span from requirement specifications through design to implementation-integration. Automated tool support for component selection would be very helpful in each phase. In this paper we introduce a framework that supports the selection of COTS components in the requirements phase. The framework lays on a tool that builds and solves an optimization model, whose solution provides the optimal COTS component selection. The selection criterion is based on cost minimization of the whole system while assuring a certain degree of satisfaction of the system requirements. The output of the model solution indicates the optimal combination of single COTS components and assemblies of COTS that satisfy the requirements while minimizing costs Vittorio Cortellessa, Ivica Crnkovic, Fabrizio Marinelli 0001, Pasqualina Potena |
ASE | 2 |
| 2007 | Software systems in-house integration: Architecture, process practices, and strategy selection
Rikard Land, Ivica Crnkovic |
Inf. Softw. Technol. | 2 |
| 2007 | Guest Editorial
Ivica Crnkovic, George T. Heineman, Heinz W. Schmidt, Judith A. Stafford, Kurt C. Wallnau |
J. Syst. Softw. | 1 |
| 2007 | Software Configuration Management
René L. Krikhaar, Ivica Crnkovic |
Sci. Comput. Program. | 2 |
| 2006 | Component-Based Development Process and Component LifecycleabstractThe process of component- and component-based system development differs in many significant ways from the "classical" development process of software systems. The main difference is in the separation of the development process of components from the development process of systems. This fact has a significant impact on the development process. Since the component-based approach is a relatively young approach in software engineering, the main emphasis in the area has been in development of technologies, while process modeling is still an unexplored area. This paper analyses the basic characteristics of the component-based approach and its impact on the development process and lifecycle models. The generic lifecycle of component-based systems and the lifecycle of components are discussed, and the different types of development processes are discussed in detail: architecture-driven component development, productline development and COTS-based development. Finally a short case study illustrates the principles and specifics of component-based processes. Ivica Crnkovic, Michel R. V. Chaudron, Stig Larsson 0002 |
ICSEA | 1 |
| 2005 | Component-based software engineering for embedded systemsabstractAlthough attractive, CBD has not been widely adopted in domains of embedded systems. The main reason is inability of these technologies to cope with the important concerns of embedded systems, such as resource constraints, real-time or dependability requirements. However an increasing understanding of principles of CBD makes it possible to utilize these principles in implementation of different component-based models more appropriate for embedded systems. The aim of this tutorial is to point to the opportunity of applying this approach for development and maintenance of embedded systems. The tutorial gives insights into basic principles of CBD, the main concerns and characteristics of embedded systems and possible directions of adaptation of component-based approach for these systems. Different types of embedded systems and approaches for applying CBD are presented and illustrated by examples from research and practices. Also, challenges and research directions of CBD for embedded systems are discussed. Ivica Crnkovic |
ICSE | 1 |
| 2005 | A component-based development framework for supporting functional and non-functional analysis in control system designabstractThe use of component-based development (CBD) is growing in the software engineering community and it has been successfully applied in many engineering domains such as office applications and in web-based distributed applications. Recently, the need of CBD is growing also in other domains related to dependable and embedded systems, namely, in the control engineering domain. However, the widely used commercial component technologies are unable to provide solutions to the requirements of embedded systems as they require too much resources and they do not provide methods and tools for developing predictable and analyzable embedded systems. There is a need for new component-based technologies appropriate to development of embedded systems. In this paper we briefly present a component-based development framework called SAVEComp. SAVEComp is developed for safety-critical real-time systems. One of the main characteristics of SAVEComp is syntactic and semantic simplicity which enables a high analyzability of properties important for embedded systems. We discuss how SAVEComp is able to provide an efficient support for designing and implementing embedded control systems by mainly focusing on simplicity and analyzability of functional requirements and of real-time and dependability quality attributes. In particular we discuss the typical solutions of control systems in which feedback loops are used and which significantly complicate the design process. We provide a solution for increasing design abstraction level and still being able to reason about system properties using SAVEComp approach. Finally, we discuss an extension of SAVEComp with dynamic run-time property checking by utilizing run-time spare capacity that is normally induced by real-time analysis. Johan Fredriksson, Massimo Tivoli, Ivica Crnkovic |
ASE | 3 |
| 2005 | Case Study: Software Product Integration Practices
Stig Larsson 0002, Ivica Crnkovic |
PROFES | 2 |
| 2005 | Components and Services Session ReportabstractThis paper shortly summarises the working session "Components and Services" held at WICSA 2005 (Working International Conference on Software Architecture). Both components and services are strongly related to software architecture and have now an increased focus in research and practitioners’ communities. Both component-based and serviceoriented development, use the same technologies and same or similar principles in architecting of software systems. Still there have not been many interactions between the "components" and "services" communities. For this reason the events like this working session are very important to bring the communities together, to increase the mutual understanding, to exchange experience and to share solutions. Ivica Crnkovic, Vikram Jamwal |
WICSA | 1 |
| 2005 | Architectural Concerns When Selecting an In-House Integration Strategy - Experiences from IndustryabstractConsider the scenario where two or more software systems have been developed in-house, for different purposes. Over time, the systems have been evolved to contain more functionality, until a point where there is some overlap in functionality and purpose. The same situation occurs, only more drastically, as a result of company acquisitions and mergers. A new system combining the functionality of the existing systems would improve the situation both from an economical and maintenance point of view, and from the point of view of users, marketing and customers. Rikard Land, Laurens Blankers, Stig Larsson 0002, Ivica Crnkovic |
WICSA | 4 |
| 2005 | Automated Component-Based Software Engineering
Ivica Crnkovic, Heinz W. Schmidt, Judith A. Stafford, Kurt C. Wallnau |
J. Syst. Softw. | 1 |
| 2005 | Guidelines for a graduate curriculum on embedded software and systemsabstractThe design of embedded real-time systems requires skills from multiple specific disciplines, including, but not limited to, control, computer science, and electronics. This often involves experts from differing backgrounds, who do not recognize that they address similar, if not identical, issues from complementary angles. Design methodologies are lacking in rigor and discipline so that demonstrating correctness of an embedded design, if at all possible, is a very expensive proposition that may delay significantly the introduction of a critical product. While the economic importance of embedded systems is widely acknowledged, academia has not paid enough attention to the education of a community of high-quality embedded system designers, an obvious difficulty being the need of interdisciplinarity in a period where specialization has been the target of most education systems. This paper presents the reflections that took place in the European Network of Excellence Artist leading us to propose principles and structured contents for building curricula on embedded software and systems. Paul Caspi, Alberto L. Sangiovanni-Vincentelli, Luís Almeida 0001, Albert Benveniste, Bruno Bouyssounouse, Giorgio C. Buttazzo, Ivica Crnkovic, Werner Damm, Jakob Engblom, Gerhard Fohler, Marisol García-Valls, Hermann Kopetz, Yassine Lakhnech, François Laroussinie, Luciano Lavagno, Giuseppe Lipari, Florence Maraninchi, Philipp Peti, Juan Antonio de la Puente, Norman Scaife, Joseph Sifakis, Robert de Simone, Martin Törngren, Paulo Veríssimo, Andy J. Wellings, Reinhard Wilhelm, Tim A. C. Willemse, Wang Yi 0001 |
ACM Trans. Embed. Comput. Syst. | 7 |
| 2004 | Quality Improvements by Integrating Development ProcessesabstractSoftware is an increasing and important part of many products and systems. Software, hardware, and system level components have been developed and produced following separate processes. However, in order to improve the quality of the final complex product, requirements and prospects for an automatic integrated process support are called for. Product data management (PDM) has focused on hardware products, while software configuration management (SCM) has aimed to support software development. Several attempts to integrate tools from these domains exist, but they all show small visible success. The reason for this is that integration goes far beyond tool issues only. According to our experiences, three main factors play a crucial role for a successful integration: tools and technologies, processes, and people. This paper analyses the main characteristics of PDM and SCM, describes the three integration factors, identifies a model for the integration process, and pin-points the main challenges to achieve a successful integration of hardware and software development. The complexity of the problems is shown through several case studies. Annita Persson Dahlqvist, Ivica Crnkovic, Ulf Asklund |
APSEC | 2 |
| 2004 | Real World Influences on Software Architecture - Interviews with Industrial System ExpertsabstractIndustrial systems are examples of complex and often long-lived systems in which software is playing an increasingly important role. Their architectures play a crucial role in maintaining the properties of such systems during their entire life cycle. In this paper, we present the results of a case study based on a series of interviews and a workshop with key personnel from research and development groups of successful international companies in their Swedish locations. The main goal of the investigation was to find the significant factors which influence system and software architectures and to find similarities and differences between the architecture-determining decisions and the architectures of these systems. The role of the architect was an important subject of the investigation. Our findings result in recommendations relating to the design and evolution of system architectures and suggestions regarding areas in which future research would be beneficial. Goran Mustapic, Anders Wall, Christer Norström, Ivica Crnkovic, Kristian Sandström, Joakim Fröberg, Johan Andersson |
WICSA | 4 |
| 2003 | Is Software Engineering Training Enough for Software Engineers?abstractMost software engineering courses focus exclusively on the software development process, often referring to problems related to the complexity of software products and processes. In practice, however, many problems of a complex nature arise in which system engineering and other engineering disciplines are important in the development of systems. In such cases software engineers may have difficulty in coping with the entire problem, in the same way that engineers in other fields may have difficulty in understanding the software part. This suggests that the software engineering education of today is inadequate in certain respects. This paper presents a case study of a software engineering course and discusses the difficulty for computer science students to understand and to develop a system which also requires skills in engineering of a non-software nature. Ivica Crnkovic, Rikard Land, Andreas Sjögren |
CSEE&T | 1 |
| 2003 | 6th ICSE Workshop on Component-Based Software Engineering: Automated Reasoning and PredictionabstractThis report gives an overview of the 6th ICSE Workshop on Component-Based Software Engineering held at 25th International Conference on Software Engineering. The workshop brought together researchers and practitioners from three communities: component technology, software architecture, and software certification. The primary goal of the workshop was to continue clarifying the concepts, identifying the main challenges and findings of predictable assembly of certifiable software components. This report gives a comprehensive summary of the position papers, of the workshop, its findings, and its results. Ivica Crnkovic, Heinz W. Schmidt, Judith A. Stafford, Kurt C. Wallnau |
ICSE | 1 |
| 2003 | Software Systems Integration and Architectural Analysis - A Case StudyabstractSoftware systems no longer evolve as separate entities but are also integrated with each other. The purpose of integrating software systems can be to increase user-value or to decrease maintenance costs. Different approaches, one of which is software architectural analysis, can be used in the process of integration planning and design. This paper presents a case study in which three software systems were to be integrated. We show how architectural reasoning was used to design and compare integration alternatives. In particular, four different levels of the integration were discussed (interoperation, a so-called enterprise application integration, an integration based on a common data model, and a full integration). We also show how cost, time to delivery and maintainability of the integrated solution were estimated. On the basis of the case study, we analyze the advantages and limits of the architectural approach as such and conclude by outlining directions for future research: how to incorporate analysis of cost; time to delivery; and risk in architectural analysis, and how to make architectural analysis more suitable for comparing many aspects of many alternatives during development. Finally we outline the limitations of architectural analysis. Rikard Land, Ivica Crnkovic |
ICSM | 2 |
| 2003 | Guest Editorial
Ivica Crnkovic, Heinz W. Schmidt, Judith A. Stafford, Kurt C. Wallnau |
J. Syst. Softw. | 1 |
| 2002 | Case Study: Componentization of an Industrial Control SystemabstractWhen different business units of an international company are responsible for the development of different parts of a large system, a component-based software architecture may be a good alternative to more traditional, monolithic architectures. The new common control system, developed by ABB to replace several existing control systems, must incorporate support for a large number of I/O systems, communication interfaces, and communication protocols. An activity has therefore been started to redesign the system's architecture, so that I/O and communication components can be implemented by different development centers around the world. This paper reports on experiences from this. effort, describing the system, its current software architecture, the new component-based architecture, and the lessons learned so far. Frank Lüders, Ivica Crnkovic, Andreas Sjögren |
COMPSAC | 2 |
| 2002 | 5th ICSE workshop on component-based software engineering: benchmarks for predictable assemblyabstractThis workshop brings together researchers and practitioners from the community interested in predictable assembly from certifiable components. The goal of this workshop is to ensure continued collaboration among the members of this community. One output of the workshop will be an understanding of composition theory and how it applies to community model problems that were suggested at the workshop on component-based software engineering held at ICSE in 2001. A second output will be the identification of research opportunities that lie on the perimeter of predictable assembly. Ivica Crnkovic, Heinz W. Schmidt, Judith A. Stafford, Kurt C. Wallnau |
ICSE | 1 |
| 2002 | A Component-Based Software Architecture for Industrial Control
Frank Lüders, Ivica Crnkovic, Andreas Sjögren |
WICSA | 2 |
| 2002 | Challenges of component-based development
Ivica Crnkovic, Magnus Larsson |
J. Syst. Softw. | 1 |
| 2001 | 4th ICSE Workshop on Component-Based Software Engineering: Component Certification and System Prediction
Ivica Crnkovic, Heinz W. Schmidt, Judith A. Stafford, Kurt C. Wallnau |
ICSE | 1 |
| 2000 | Implementation of a software engineering course for computer science studentsabstractExperience from industry shows that graduates in computer science generally lack many of the skills required in software development projects. This presents a challenge to academic institutions. We describe our experiences in implementing a course in software engineering at a Swedish university. A set of challenges is presented and it is described how these were met using a combination of lectures and project work. The results of the projects, the lessons we have learned, and the feedback from the students are discussed. Ivica Crnkovic, Magnus Larsson, Frank Lüders |
APSEC | 1 |
| 2000 | A case study: demands on component-based developmentabstractBuilding software systems with reusable components brings many advantages. The development becomes more efficient, the realibility of the products is enhanced, and the maintenance requirement is significantly reduced. Designing, developing and maintaining components for reuse is, however, a very complex process which places high requirements not only for the component functionality and flexibility, but also for the development organization. In this paper we discuss the different levels of component reuse, and certain aspects of component development, such as component generality and efficiency, compatibility problems, the demands on development environment, maintenance, etc. The evolution of requirements for products generates new requirements for components, if components are not enough general and mature. This dynamism determines the component life cycle where the component first reaches its stability and later degenerates in an asset that is difficult to use, difficult to adapt and maintain. When reaching this stage, the component becomes an obstacle for efficient reuse and should be replaced. Questions related to use of standard and de-facto standard components are addressed specifically. As an illustration of reuse issues, we present a successful implementation of a component-based system which is widely used for industrial process control. Ivica Crnkovic, Magnus Larsson |
ICSE | 1 |