Soft skills are recognized as crucial for engineers as technical work is becoming more and more collaborative and interdisciplinary. Today many engineering educations fail to give appropriate training in soft skills. Linköping University has therefore developed a completely new course “Professionalism for Engineers” for two of its 5-year engineering programs in the area of computer science. The course stretches over the first 3 years with students from the three years taking it together. The purpose of the course is to give engineering students training in soft skills that are of importance during the engineering education as well as during their professional career. The examination is based on the Dialogue Seminar Method developed for learning from experience and through reflection. The organization of the course is innovative in many ways.

Mobile application development and testing involves even greater challenges than traditional software development, given that the large number of existing devices, each with unique hardware configuration and operating system needs to be considered. Software testing constitutes a big and important part of development, where the majority of the tests are performed manually. This is time consuming and expensive. The purpose of this thesis project is therefor to examine the current test process at the company Dewire, in an effort to find ways to improve it by introducing automated tests for the Android mobile platform. The automation frameworks Appium and Espresso will be evaluated and combined with existing systems like Jenkins that already applied in Dewires agile work procedure. A test environment been implemented during this thesis project as a proof of concept, where tests are run on a real device as the application is being built. Test cases from an ongoing development project has been implemented and the results evaluated. This thesis project has shown that the framework Espresso together with a Jenkins build-server has great potential to reduce manual testing and streamline the test process. It has also shown that test automation should be implemented from start of a project, where tests are continuously kept up to date during development to be profitable. At the same time results show that test automation involves a significant time investment before time and money can be saved.

This thesis analyses if the change of auditory feedback can improve the effectiveness of performance in the interaction with a non-visual system, or with a system used by individuals with visual impairment. Two prototypes were developed, one with binaural audio and the other with stereo audio. The interaction was evaluated in an experiment where 22 participants, divided into two groups, performed a number of interaction tasks. A post-interview were conducted together with the experiment. The result of the experiment displayed that there were no great difference between binaural audio and stereo regarding the speed and accuracy of the interaction. The post-interviews displayed interesting differences in the way participants visualized the virtual environment that affected the interaction. This opened up interesting questions for future studies.

This is a thesis about different methods that can be used to detect spyware. Methods included are Layered Service Provider, Internet Protocol Helper API, TDI filtering and API hooking. Some firewall testing applications, leak tests, that use methods that can be used by real spyware program to penetrate firewalls have also been examined. The goal was to develop a Windows 2000/XP program that is able to detect as many of our examined leak tests as possible. Our program uses the methods TDI filtering and API hooking for detection of spyware because our study showed that these methods were the best. To evaluate the program it was tested against our examined leak test programs. Our program managed to detect all leak tests except one.

Requirements Engineering has two main directions, Bespoke (product developed for one customer) and Market-Driven (several potential customers for the same product). These two are in some ways very much alike but in some aspects very different. Over the last couple of years the software development industry has tended to shift more and more to Market-Driven Requirements Engineering. This has brought attention to the challenges facing a Market-Driven development organization, without focusing on the actual shift from Bespoke development. Based on the differences and similarities between Bespoke and Market-Driven Requirements Engineering, this thesis presents a framework for shifting from the former to the latter. The framework (BESMART) involves three steps. Firstly, the organization assesses their potential to become more Market-Driven. Secondly they assess their current way of working to identify which areas that may need to be improved. Finally, BESMART provides multiple suggestions that address the identified improvement areas. The organization is then able to choose the one that best suits their needs. This also lets the organization choose a solution that they find feasible. The framework was used at a case organization during its development. This way it was ensured that the theoretical framework could actually be used in a real world setting. The practical use of BESMART resulted in some refinements aimed at making it more applicable in industry. Once the framework had been applied, it was evaluated by representatives from the case organization. The industry evaluation resulted in some improvement suggestions but showed that the framework was both useful and usable and provided an improvement plan that seemed promising enough to pilot in the organization.

The goal of this project was to streamline and automate a business system. This was achieved through the implementation of four subtasks. This report describes what parts of the system that needed to be updated and why. It also describes how the development was carried out and what results the project ultimately led to.

The project's tasks were to: Create a report generator designed to generate Excel documents.

Develop a symbol generator where a user, through a web-based interface, could generate

symbols. The symbols could then be used in the company's mobile application. Create an

interface for a web service, and to develop an add-in for the modeling software Revit

SMLocalizer combines the availability of ImageJ with the power of GPU processing for fast and accurate analysis of single molecule localization microscopy data. Analysis of 2D and 3D data in multiple channels is supported.

ABB and Prevas have initiated a collaboration to sell a system to optimize steel industry furnaces, called FOCS. The purpose of this thesis is to investigate possibilities for integrating Prevas FOCS and ABB 800xA.

The result of the investigation is used for an implementation of a prototype of the integrated system. The study shows a general method that can be used when implementing two software systems. The prototype of the integrated systems is made with usability principles in mind. This is a very important aspect in order to create a good working environment for the operators of a steel plant. It is also important to follow communication standards when integrating software systems. In an industrial network used in the steel industry OPC is a standard for communication. We recommend ABB and Prevas to follow this standard when possible to make the integration smoother. To keep the cost of the integration to a minimum it is also recommended to reuse existing resources. This can however have a negative effect on usability and it is therefore important to keep a balance between cost and usability.

The prototype made in this thesis accomplishes the goal of transferring the functionalities used by operators of Prevas FOCS to 800xA so that operators can control the processes using only one integrated system.

The management and coordination of globally distributed development poses many new challenges, including compensating for informal implicit communication, which is aggravated by heterogeneous social and engineering traditions between development sites. Although much research has gone into identifying challenges and working with practical solutions, such as tools for communication, little research has focused on comparing communication mechanisms in terms of their ability to provide large volumes of rich information in a timely manner. Data was collected through in-depth interviews with eleven practitioners and twenty-eight responses through a web-based questionnaire from three product lines at an international software development organization. This paper assesses the relative importance of ten commonly used communication mechanisms and practices across local and global development sites. The results clearly indicate that some communication mechanisms are more important than others in providing large volumes of rich information in a timely manner. The prevalence of architecture in providing rich information in large volumes for both local and global communication can be clearly observed.

Requirements engineering is recognized as a creative process where stakeholders jointly discover new creative ideas for innovative and novel products that eventually are expressed as requirements. This paper evaluates four different creativity techniques, namely Hall of Fame, Constraint Removal, Brainstorming, and Idea Box, using creativity workshops with students and industry practitioners. In total, 34 creativity workshops were conducted with 90 students from two universities, and 86 industrial practitioners from six companies. The results from this study indicate that Brainstorming can generate by far the most ideas, while Hall of Fame generates most creative ideas. Idea Box generates the least number of ideas, and the least number of creative ideas. Finally, Hall of Fame was the technique that led to the most number of requirements that was included in future releases of the products.

Successful or failed software projects have been discussed in literature for many years. Successful software projects are often defined as meeting business objectives, deliver on time and within budget, and meeting requirements. Different factors that contribute to software project success have been identified in the literature. Some of the most common factors that lead to software project success are: user involvement, management support, realistic requirements, and having good estimations. However, there are different opinions about what a successful software project is. Linberg found in a study that managers had a different perception from software practitioners (developers, testers etc.) about what a successful software project is. Since there are different perceptions of what a successful project is among different roles in software development, there may be differences from other perspectives too. This observation relates to the overall research questions in the thesis: Could there be different perceptions about what success factors are for software projects among different countries and customer-supplier relationships? Do people from different countries have different perceptions about what success factors are for software products? This study investigated if there are any differences and similarities between Swedish and Australian companies. In addition, a comparison between bespoke and market driven and bespoke and in-house customer-supplier relationships was made. The result shows that there are differences of which factors that lead to software project success among the two countries as well as between different types of customer-supplier relationships.

This report covers a case study performed at Linköping University. The project consists of the development of a web application of type e-commerce, named Delish, which is a service for trading lunch boxes among students. The report treats the compilation of a theoretical framework, the development and its results followed by a discussion. The web application serves as a foundation in order to examine how an application should be designed to ensure high navigability and simplicity while establishing user trust. Information is gathered in order to define a theoretical and methodical framework. The development is accompanied by an evaluation of the products fulfilment of earlier set goals, by conducting market surveys and usability testing. Navigability is achieved through the implementation of different navigational systems and the application is perceived as simple as a result of effective use of colours and typography. Through the implementation of a ranking system and communication of data integrity, the application is perceived as trustworthy.

One of the problems when developing software is the difficulty of knowing how much that is done in a project. This is a basic condition to be able to estimate the remaining efforts with increased accuracy over time. To get accurate progress information it is important that the progress tracking is done in an objective way and also in an as simple way as possible. Our focus in this work has been software projects in general but a case study has also been performed at Ericsson Software Technology AB in Ronneby. We have studied the organization and performed interviews with project managers to find out if this really is a problem and if the process can be improved in some way to ease the task of progress tracking. This case study together with our literature study has resulted in a proposition for a solution. Our approach has been to use automated testing as a way to make progress tracking more objective. The result presented in this thesis is a base for a system that could ease the tracking of progress. In short, the system extracts information from an automated testing process and compares it with estimated figures to be able to automatically generate progress information.

Knowledge transfer is a critical factor in ensuring the success of offshore outsourcing software development projects and is, in many cases, neglected. Compared to in-house or co-located projects, however, such globally distributed projects feature far greater complexity. In addition to language barriers, factors such as cultural differences, time zone variance, distinct methods and practices, as well as unique equipment and infrastructure can all lead to problems that negatively impact knowledge transfer, and as a result, a project's overall success. In order to help minimise such risks to knowledge transfer, we conducted a research study based on expert interviews in six projects. Our study used German clients and focused on offshore outsourcing software development projects. We first identified known problems in knowledge transfer that can occur with offshore outsourcing projects. Then we collected best-practice solutions proven to overcome the types of problems described. Afterward, we conducted a follow-up study to evaluate our findings. In this subsequent stage, we presented our findings to a different group of experts in five projects and asked them to evaluate these solutions and recommendations in terms of our original goal, namely to find ways to minimise knowledge-transfer problems in offshore outsourcing software development projects. Thus, the result of our study is a catalog of evaluated solutions and associated recommendations mapped to the identified problem areas.

In this paper we investigate the current state of work regarding alignment of Business, Architecture, Process, and Organisation (BAPO) perspectives in a software product development context. We planned to do that by conducting a systematic literature study to capture the state of the art in alignment of BAPO in software development. But, as it turned out we found that almost no substantial information is available about the alignment of BAPO in software development. Thus, based on the available literature and a small qualitative study, we defined a conceptual model of the alignment of BAPO including five levels of alignment that can be used as a basis for future empirical studies.

Conway’s law assumes a strong association between the system’s architecture and the organization’s communication structure that designs it. In the light of contemporary software development, when many companies rely on geographically distributed teams, which often turn out to be temporarily composed and thus having an often changing communication structure, the importance of Conway’s law and its inspired work grows. In this paper, we examine empirical research related to Conway’s law and its application for cross-site coordination. Based on the results obtained we conjecture that changes in the communication structure alone sooner or later trigger changes in the design structure of the software products to return the sociotechnical system into the state of congruence. This is further used to formulate a concept of a rubber band effect and propose a replication study that goes beyond the original idea of Conway’s law by investigating the evolution of socio-technical congruence over time.

On-demand resource provisioning is an important feature of cloud, which offers several benefits such as scalability, enhanced performance, low maintenance cost, elasticity, adequate storage, ubiquitous accessibility, minimum infrastructure etc. At the same time, usage of mobile phones is becoming increasingly common throughout the world. Also, these phones are coming in the market with appealing features like fast processing unit, internal and external memory up to MBs and GBs respectively, web browsing, inbuilt sensors, powerful cameras etc. This master’s thesis project proposes a novel approach of utilizing all these features of semi-autonomous mobile devices (especially smart phones) and cloud infrastructure altogether.

The specific aim of project is to design, implement and present a framework for multi-featured smart phone on top of cloud infrastructure. Proposed framework is implemented and tested for two different communication methods known as client poll and server push. In the second phase, performance analysis of implemented framework is carried out via simulation to compare two methods of interaction and to observe server’s load. As a result, first it is found that the server-initiated communication (i.e. server push) requires 40% to 50% less times as compared to the client-initiated communication (i.e. client poll). Second, it is observed that the application server load of framework is not affected too much regarding increasing number of client’s requests.

323.

Bhatti, Ansar Malook

et al.

Blekinge Institute of Technology, School of Engineering, Department of Systems and Software Engineering.

Abdullah, Hafiz Muhammad

Blekinge Institute of Technology, School of Engineering, Department of Systems and Software Engineering.

Software measurement process is a significant part of process improvement in software organizations. The organizations usually follow a measurement process that includes measures selection, data collection, and analysis to improve their processes. Most of the software organizations face difficulties in deciding the measures to collect since there is no universal set of measures for all types of organizations and projects. Experience shows that measurement can be more successful if the measures are collected based on the goals of the organization or the project which it will serve. A few methodologies exist to aid the software organizations. Goal Question Metric (GQM) is one of the most widely known and used one. However, one of the major constraints for the organizations is the associated cost when collecting the measures. Therefore, software organizations also require selecting the optimum set of measures which are good enough for the organization. This thesis study aims to provide solution for this problem. We propose a model, named ‗Optimum Measure Set Decision Model (OMSD)‘, which is an extension of GQM paradigm. The model is based on a heuristics approach, which aims to provide the optimum set of measures from a large number of possible measures. To develop the model, we identified the factors which are significant in selecting the optimum set of measures based on the literature survey results. Then, we evaluated those factors by conducting an empirical study. As the empirical research strategy, we used traditional fixed non-experimental design strategy. We performed a survey by distributing a structured questionnaire in order to evaluate the important factors we identified when selecting the optimum number of measures to be collected in an organization. We evaluated the heuristics rules by means of some sample cases we created. Moreover, we provided an idea for an alternative solution to optimize the number of measures to be collected for the future research.

Most of the software organizations face difficulties in choosing the measures to collect since there is no universal set of measures for all types of organizations and projects. Experience shows that measurement can be more successful if the measures are collected based on the goals of the organization or the project which it will serve. However, one of the major constraints for the organizations is the associated cost for the resources needed when collecting the measures. Therefore, based on their goals, the software organizations require collecting not only as few measures from a large number of possible measures as possible but an optimum set of measures as well. In this paper, we propose a model, called ‘Optimum Measures Set Decision (OMSD) Model’, which is an extension of the well-known Goal Question Metric (GQM) paradigm using a heuristics approach. We performed a survey by distributing a structured questionnaire to a number of people from the industry in order evaluate and get feedback on these factors. We evaluated the rules of the model by means of some sample cases we created. In this paper, we discuss OMSD as well as the empirical studies we conducted in order to develop it.

Context: Software testing is an integral part of software development life cycle. To improve the quality of software there are different testing approaches practiced over the years. Traditionally software testing is carried out by following approach focusing on prior test design. While exploratory testing is an approach to test software where the tester does not require to follow a specific test design. But rather, exploratory testing should facilitate the tester in testing the complete system comprehensively. Exploratory testing is seen by some, as a way to conduct simultaneous learning, test design and execution of tests simultaneously. While others point to exploratory testing enabling constant evolution of tests in an easy manner. Objectives: In this study we have investigated the field of exploratory testing in literature and industry to understand its perception and application. Further among the stated claims by practitioners, we selected defect detection efficiency and effectiveness claim for empirical validation through an experiment and survey. Methods: In this study, a systematic literature review, interview, experiment and survey are conducted. In the systematic review a number of article sources are used, including IEEE Xplore, ACM Digital Library, Engineering village, Springer Link, Google Scholar and Books database. The systematic review also includes the gray literature published by the practitioners. The selection of studies was done using two-phase and tollgate approach. A total of 47 references were selected as primary studies. Eight semi-structures interviews were conducted with industry practitioners. Experiment had total 4 iterations and 70 subjects. The subjects were selected from industry and academia. The experimental design used was one factor with two interventions and one response variable. Results: Based on our findings from literature review and interviews, the understanding of exploratory testing has improved over the period but still lacks empirical investigation. The results drawn from experimental and survey data shows that exploratory testing proved effective and efficient in finding more critical bugs in limited time. Conclusions: We conclude that exploratory testing has a lot of potential and much more to offer to testing industry. But more empirical investigation and true facts and figures are required to motivate the testing industry to adapt it. We have reported a number of advantages, disadvantages, challenges and factors in this study. We further investigated the claims stated by the ET practitioners through an experiment and survey. The statistical tests were conducted on the collected data to draw meaningful results. We found statistical significance difference in number of true defects found. Using exploratory testing approach testers found far more defects than test case based testing. Although, there was no statistical significance difference between the two approaches for false defects.

Usability Supporting Architectural Patterns (USAP) has already introduced a concept in software architecture for coping usability issues in better style and revealing its obscured dimensions. A support is also needed to develop the safety systems in such a way that they employ the same rules and get a better understanding of safety, its requirements and the architecture. A way to determine safety requirements from the patterns and working with the responsibilities of patterns was the aim for this thesis report. On the other hand, a useful tool with the name “ArchWiz” was to be developed further from its prototypical form-an assisting tool for architects to look for requirements and evaluation of their architecture. The mature development of ArchWiz tool, and incorporating the safety perspective with respect to USAP vogue was also the goal of the thesis.

In a development process, architecture designing is a crucial and vital part of software system. During architecture designing process very first decisions and information are gained to validate if the system has the potential to meet its requirements and intended behaviours. Along with other important quality attributes, safety architecture has played an important role in developing today’s critical software and automated systems. These safety issues especially in software architecture are to protect, recover, discover and mitigate the hazards, faults, failures and catastrophic perils. The deficiency and obscurity of these inherent dangers can be reduced by understanding the safety in general and analysing its requirements from unseen perspectives. Later, these requirements can be traced into the architecture of a similar system as a knowledge base or experience gained.

Architectural patterns and their investigation in safety provide a broad horizon for requirement and solution in various aspects. They help to bring out the requirements in refined way and in general manners too. The report, therefore, presents the suggestion to formalize the suggestions in safety with respect to requirement engineering in architectural context as well as reusable solution for these issues; alike in USAP style.

Requirements engineering (RE) is the primary task (process) that is done when agreed upon to develop a software product. The success of the software product is gauged on its ability to meet the intended needs of the stakeholders. There is abundant literature emphasizing the significance of RE and its influence on the entire software project, apart from its importance as the first step for a successful development endeavor. There are several established methodologies that are acknowledged to support the RE process and assist in creating a reliable structure of creating software. Despite the availability of such techniques and solutions, it was observed that umpteen number of software product failures are attributed to unsatisfactory RE practices. In this thesis, we have conducted a study with six organizations to emphasize the gap between the state of the art and the state of the practice, and consequently identify the factors that hinder the industrial community to implement state of the art RE. As a result of this empirical research we have found that to a great extent, state of the art practices are unpopular, more specifically in small organizations. Interestingly the majority of the problems associated with RE are associated to non technical issues.

Tool chains are expected to increase the productivity of product development by providing automation and integration. If, however, the tool chain does not have the features required to support the product development process, it falls short of this expectation. Tool chains could reach their full potential if it could be ensured that the features of a tool chain are aligned with the product development process. As part of a systematic development approach for tool chains, we propose a verification method that measures the extent to which a tool chain design conforms to the product development process and identifies misalignments. The verification method can be used early in tool chain development, when it is relatively easy and cheap to perform the necessary corrections. Our verification method is automated, which allows for quick feedback and enables iterative design. We apply the proposed method on an industrial tool chain, where it is able to identify improvements to the design of the tool chain.

The development of complex systems requires tool support for the different phases of the system life cycle. To allow for an efficient development process, the involved tools need to be integrated, e.g. by exchanging tool data or providing trace ability between the data. Despite the availability of tool integration platforms and frameworks, it is labor-intensive and costly to build tool integration solutions. Industrial tool integration initiatives such as OSLC (Open Services for Lifecycle Collaboration) demand complex configurations and the adherence to integration standards. This further complicates building an integration solution. We propose an approach that uses formalized specifications to systematize tool integration and specialized code generators to automate the process of building tool adapters. We evaluate our approach with the implementation of a code generator that creates service-oriented tool adapters conforming to the OSLC industry initiative.

The engineering of software-intensive systems is supported by a variety of development tools. While development tools are traditionally desktop tools, they are more and more complemented and replaced by web-based development tools. The resulting blend of desktop and web-based tools is difficult to integrate into a seamless tool chain, which supports product development by data, control and presentation integration. Moreover, the construction of such tool chains is a significant engineering challenge. We propose an approach for the efficient, automated construction of tool chains, which integrate both web-based and desktop development tools; and provide a proof of concept of the approach in a case study. Our approach suggests that companies can selectively take advantage of hosted web-based development tools, while maintaining a seamless flow of integration with legacy desktop tools.

Facing the task to design, simulate or optimize a complex system itis common to find models and data for the system expressed in differentformats, implemented in different simulation software tools. When a newmodel is developed, a target platform is chosen and existing componentsimplemented with different tools have to be converted. This results inunnecessary work duplication and lead times. The Modelica languageinitiative [2] partially solves this by allowing developers to move modelsbetween different tools following the Modelica standard. Another possi-bility is to exchange models using the Functional Mockup Interface (FMI)standard that allows computer models to be used as components in othersimulations, possibly implemented using other programming languages[1]. With the Modelica and FMI standards entering development, there isneed for an easy-to-use tool that supports design, editing and simulationof such multilingual systems, as well as for retracting system informationfor formulating and solving optimization problems.A prototype solution for a graphical block diagram tool for design, edit-ing, simulation and optimization of multilingual systems has been createdand evaluated for a specific system. The tool is named Composer [3].The block diagram representation should be generic, independent ofmodel implementations, have a standardized format and yet support effi-cient handling of complex data. It is natural to look for solutions amongmodern web technologies, specifically HTML5. The format for represent-ing two dimensional vector graphics in HTML5 is Scalable Vector Graphics(SVG). We combine the SVG format with the FMI standard. In a firststage, we take the XML-based model description of FMI as a form for de-scribing the interface for each component, in a language independent way.Simulation parameters can also be expressed on this form, and integratedas metadata into the SVG image.

The prototype, using SVG in conjunction with FMI, is implementedin JavaScript and allow creation and modiﬁcation of block diagrams directly in the web browser. Generated SVG images are sent to the serverwhere they are translated to program code, allowing the simulation ofthe dynamical system to be executed using selected implementations. Analternative mode is to generate optimization problem from the systemdeﬁnition and model parameters. The simulation/optimization result is

returned to the web browser where it is plotted or processed using otherstandard libraries.The ﬁber production process at SCA Packaging Obbola [4] is used asan example system and modeled using Composer. The system consists oftwo ﬁber production lines that produce ﬁber going to a storage tank [5].The paper machine is taking ﬁber from the tank as needed for production.A lot of power is required during ﬁber production and the purpose of themodel was to investigate weather electricity costs could be reduced byrescheduling ﬁber production over the day, in accordance with the electricity spot price. Components are implemented for dynamical simulationusing OpenModelica and for discrete event using Python. The Python implementation supports constraint propagation between components andoptimization over speciﬁed variables. Each component is interfaced as aFunctional Mock-up Unit (FMU), allowing components to be connectedand properties speciﬁed in language independent way. From the SVGcontaining the high-level system information, both Modelica and Pythoncode is generated and executed on the web server, potentially hosted ina high performance data center. More implementations could be addedwithout modifying the SVG system description.We have shown that it is possible to separate system descriptions onthe block diagram level from implementations and interface between thetwo levels using FMI. In a continuation of this project, we aim to integratethe FMI standard also for co-simulation, such that components implemented in diﬀerent languages could be used together. One open questionis to what extent FMUs of the same component, but implemented withdiﬀerent tools, will have the same model description. For the SVG-basedsystem description to be useful, the FMI model description must remainthe same, or at least contain a large overlap, for a single component implemented in diﬀerent languages. This will be further investigated in futurework.

Facing the task to design, simulate or optimize a complex system itis common to find models and data for the system expressed in differentformats, implemented in different simulation software tools. When a newmodel is developed, a target platform is chosen and existing componentsimplemented with different tools have to be converted. This results inunnecessary work duplication and lead times. The Modelica languageinitiative [2] partially solves this by allowing developers to move modelsbetween different tools following the Modelica standard. Another possi-bility is to exchange models using the Functional Mockup Interface (FMI)standard that allows computer models to be used as components in othersimulations, possibly implemented using other programming languages[1]. With the Modelica and FMI standards entering development, there isneed for an easy-to-use tool that supports design, editing and simulationof such multilingual systems, as well as for retracting system informationfor formulating and solving optimization problems.A prototype solution for a graphical block diagram tool for design, edit-ing, simulation and optimization of multilingual systems has been createdand evaluated for a specific system. The tool is named Composer [3].The block diagram representation should be generic, independent ofmodel implementations, have a standardized format and yet support effi-cient handling of complex data. It is natural to look for solutions amongmodern web technologies, specifically HTML5. The format for represent-ing two dimensional vector graphics in HTML5 is Scalable Vector Graphics(SVG). We combine the SVG format with the FMI standard. In a firststage, we take the XML-based model description of FMI as a form for de-scribing the interface for each component, in a language independent way.Simulation parameters can also be expressed on this form, and integratedas metadata into the SVG image.

The prototype, using SVG in conjunction with FMI, is implementedin JavaScript and allow creation and modiﬁcation of block diagrams directly in the web browser. Generated SVG images are sent to the serverwhere they are translated to program code, allowing the simulation ofthe dynamical system to be executed using selected implementations. Analternative mode is to generate optimization problem from the systemdeﬁnition and model parameters. The simulation/optimization result is

returned to the web browser where it is plotted or processed using otherstandard libraries.The ﬁber production process at SCA Packaging Obbola [4] is used asan example system and modeled using Composer. The system consists oftwo ﬁber production lines that produce ﬁber going to a storage tank [5].The paper machine is taking ﬁber from the tank as needed for production.A lot of power is required during ﬁber production and the purpose of themodel was to investigate weather electricity costs could be reduced byrescheduling ﬁber production over the day, in accordance with the electricity spot price. Components are implemented for dynamical simulationusing OpenModelica and for discrete event using Python. The Python implementation supports constraint propagation between components andoptimization over speciﬁed variables. Each component is interfaced as aFunctional Mock-up Unit (FMU), allowing components to be connectedand properties speciﬁed in language independent way. From the SVGcontaining the high-level system information, both Modelica and Pythoncode is generated and executed on the web server, potentially hosted ina high performance data center. More implementations could be addedwithout modifying the SVG system description.We have shown that it is possible to separate system descriptions onthe block diagram level from implementations and interface between thetwo levels using FMI. In a continuation of this project, we aim to integratethe FMI standard also for co-simulation, such that components implemented in diﬀerent languages could be used together. One open questionis to what extent FMUs of the same component, but implemented withdiﬀerent tools, will have the same model description. For the SVG-basedsystem description to be useful, the FMI model description must remainthe same, or at least contain a large overlap, for a single component implemented in diﬀerent languages. This will be further investigated in futurework.

The problem of performance and scalability of web applications is challenged by most of the software companies. It is difficult to maintain the performance of a web application while the number of users is continuously increasing. The common solution for this problem is scalability. A web application can handle incoming and outgoing requests using blocking or non-blocking Input/Output operation. The way that a single server handles requests affects its ability to scale and depends on a web framework that was used to build the web application. It is especially important for Resource Oriented Architecture (ROA) based applications which consist of distributed Representational State Transfer (REST) web services. This research was inspired by a real problem stated by a software company that was considering the migration to the non-blocking web framework but did not know the possible profits. The objective of the research was to evaluate the influence of web framework's type on the performance of ROA based applications and to provide guidelines for assessing profits of migration from blocking to non-blocking JVM web frameworks. First, internet ranking was used to obtain the list of the most popular web frameworks. Then, the web frameworks were used to conduct two experiments that investigated the influence of web framework's type on the performance of ROA based applications. Next, the consultations with software architects were arranged in order to find a method for approximating the performance of overall application. Finally, the guidelines were prepared based on the consultations and the results of the experiments. Three blocking and non-blocking highly ranked and JVM based web frameworks were selected. The first experiment showed that the non-blocking web frameworks can provide performance up to 2.5 times higher than blocking web frameworks in ROA based applications. The experiment performed on existing application showed average 27\% performance improvement after the migration. The elaborated guidelines successfully convinced the company that provided the application for testing to conduct the migration on the production environment. The experiment results proved that the migration from blocking to non-blocking web frameworks increases the performance of web application. The prepared guidelines can help software architects to decide if it is worth to migrate. However the guidelines are context depended and further investigation is needed to make it more general.

Background: Since the 1950s explicit software process models have been used for planning, executing and controlling software development activities. To overcome the limitation of static models at capturing the inherent dynamism in software development, Software Process Simulation Modelling (SPSM) was introduced in the late 1970s. SPSM has been used to address various challenges, e.g. estimation, planning and process assessment. The simulation models developed over the years have varied in their scope, purpose, approach and the application domain. However, there is a need to aggregate the evidence regarding the usefulness of SPSM for achieving its intended purposes. Objective: This thesis aims to facilitate adoption of SPSM in industrial practice by exploring two directions. Firstly it aims to establish the usefulness of SPSM for its intended purposes, e.g. for planning, training and as an alternative to study the real world software (industrial and open source) development. Secondly to define and evaluate a process for conducting SPSM studies in industry. Method: Two systematic literature reviews (SLR), a literature review, a case study and an action research study were conducted. A literature review of existing SLRs was done to identify the strategies for selecting studies. The resulting process for study selection was utilized in an SLR to capture and aggregate evidence regarding the usefulness of SPSM. Another SLR was used to identify existing process descriptions of how to conduct an SPSM study. The consolidated process and associated guidelines identified in this review were used in an action research study to develop a simulation model of the testing process in a large telecommunication vendor. The action research was preceded by a case study to understand the testing process at the company. Results: A study selection process based on the strategies identified from literature was proposed. It was found to systemize selection and to support inclusiveness with reasonable additional effort in an SLR of the SPSM literature. The SPSM studies identified in literature scored poorly on the rigor and relevance criteria and lacked evaluation of SPSM for the intended purposes. Lastly, based on literature, a six-step process to conduct an SPSM study was used to develop a System Dynamics model of the testing process for training purposes in the company. Conclusion: The findings identify two potential directions for facilitating SPSM adoption. First, by learning from other disciplines having done simulation for a longer time. It was evident how similar the consolidated process for conducting an SPSM study was to the process used in simulation in general. Second the existing work on SPSM can at best be classified as strong ``proof-of-concept’’ that SPSM can be useful in the real world software development. Thus, there is a need to evaluate and report the usefulness of SPSM for the intended purposes with scientific rigor.

Context: Value stream mapping (VSM) as a tool for lean development has led to significant improvements in different industries. In a few studies, it has been successfully applied in a software engineering context. However, some shortcomings have been observed in particular failing to capture the dynamic nature of the software process to evaluate improvements i.e. such improvements and target values are based on idealistic situations. Objective: To overcome the shortcomings of VSM by combining it with software process simulation modeling, and to provide reflections on the process of conducting VSM with simulation. Method: Using case study research, VSM was used for two products at Ericsson AB, Sweden. Ten workshops were conducted in this regard. Simulation in this study was used as a tool to support discussions instead of as a prediction tool. The results have been evaluated from the perspective of the participating practitioners, an external observer, and reflections of the researchers conducting the simulation that was elicited by the external observer. Results: Significant constraints hindering the product development from reaching the stated improvement goals for shorter lead time were identified. The use of simulation was particularly helpful in having more insightful discussions and to challenge assumptions about the likely impact of improvements. However, simulation results alone were found insufficient to emphasize the importance of reducing waiting times and variations in the process. Conclusion: The framework to assist VSM with simulation presented in this study was successfully applied in two cases. The involvement of various stakeholders, consensus building steps, emphasis on flow (through waiting time and variance analysis) and the use of simulation proposed in the framework led to realistic improvements with a high likelihood of implementation. (C) 2015 Elsevier B.V. All rights reserved.

Context Software process simulation modelling (SPSM) captures the dynamic behaviour and uncertainty in the software process. Existing literature has conflicting claims about its practical usefulness: SPSM is useful and has an industrial impact; SPSM is useful and has no industrial impact yet; SPSM is not useful and has little potential for industry. Objective To assess the conflicting standpoints on the usefulness of SPSM. Method A systematic literature review was performed to identify, assess and aggregate empirical evidence on the usefulness of SPSM. Results In the primary studies, to date, the persistent trend is that of proof-of-concept applications of software process simulation for various purposes (e.g. estimation, training, process improvement, etc.). They score poorly on the stated quality criteria. Also only a few studies report some initial evaluation of the simulation models for the intended purposes. Conclusion There is a lack of conclusive evidence to substantiate the claimed usefulness of SPSM for any of the intended purposes. A few studies that report the cost of applying simulation do not support the claim that it is an inexpensive method. Furthermore, there is a paramount need for improvement in conducting and reporting simulation studies with an emphasis on evaluation against the intended purpose.

Software Engineering is an applied discipline and concepts are difficult to grasp only at a theoretical level alone. In the context of a project management course, we introduced and evaluated the use of software process simulation (SPS) based games for improving students’ understanding of software development processes. The effects of the intervention were measured by evaluating the students’ arguments for choosing a particular development process. The arguments were assessed with the Evidence-Based Reasoning framework, which was extended to assess the strength of an argument. The results indicate that students generally have difficulty providing strong arguments for their choice of process models. Nevertheless, the assessment indicates that the intervention of the SPS game had a positive impact on the students’ arguments. Even though the illustrated argument assessment approach can be used to provide formative feedback to students, its use is rather costly and cannot be considered a replacement for traditional assessments.

A large number of statistic services exist today, which shows that there is a great interest in knowing more about the visitors on a web site. But how reliable is the result the services are giving? The hypothesis examined in the thesis is: Web-based statistic services do not show an accurate result The purpose of the thesis is to find out how accurate the web-based statistic services are regarding unique visitors and number of pages viewed. Our hope is that this thesis will bring more knowledge about the different statistic services that exists today and the problems surrounding them. We will also draw attention to the importance of knowing how your statistic software works to be able to interpret the results correctly. To investigate this, we chose to do practical tests on a selection of web-based statistic services. The services registered the traffic from the same web site during a test period. During the same period a control program registered the same things and stored the result in a database. In addition to the test, we have done an interview with a person working with web statistics. The investigation showed that there are big differences between the results from the web-based statistic services in the test and that none of them showed an accurate result, neither for the total number of page views nor unique visitors. This led us to the conclusion that web-based statistic services do not show an accurate result, which verifies our hypothesis. Also the interview confirmed that there is a problem with measuring web statistics.

This candidate report describes how a group of students can develop a smartphone applicationwithout any prior knowledge in the field. To make the project more realistic there is also a clientwho has requests and wishes regarding the finished product.The document describes the methods used to produce the application and also includesexperiences that the group gained. How the interaction with the client has been performed togain a good understanding of what they wished the product to become is also accounted for.The research questions focus on how the development has proceeded and how one can learnsomething new in a relatively short timespan as a group.

The RET (Requirements Engineering and Testing) workshop provides a meeting point for researchers and practitioners from the two separate fields of Requirements Engineering (RE) and Testing. The goal is to improve the connection and alignment of these two areas through an exchange of ideas, challenges, practices, experiences and results. The long term aim is to build a community and a body of knowledge within the intersection of RE and Testing. One of the main outputs of the 1st workshop was a collaboratively constructed map of the area of RET showing the topics relevant to RET for these. The 2nd workshop will continue in the same interactive vein and include a keynote, paper presentations with ample time for discussions, and a group exercise. For true impact and relevance this cross-cutting area requires contribution from both RE and Testing, and from both researchers and practitioners. For that reason we welcome a range of paper contributions from short experience papers to full research papers that both clearly cover connections between the two fields.

Weak alignment of requirements engineering (RE) with verification and validation (VV) may lead to problems in delivering the required products in time with the right quality. For example, weak communication of requirements changes to testers may result in lack of verification of new requirements and incorrect verification of old invalid requirements, leading to software quality problems, wasted effort and delays. However, despite the serious implications of weak alignment research and practice both tend to focus on one or the other of RE or VV rather than on the alignment of the two. We have performed a multi-unit case study to gain insight into issues around aligning RE and VV by interviewing 30 practitioners from 6 software developing companies, involving 10 researchers in a flexible research process for case studies. The results describe current industry challenges and practices in aligning RE with VV, ranging from quality of the individual RE and VV activities, through tracing and tools, to change control and sharing a common understanding at strategy, goal and design level. The study identified that human aspects are central, i.e. cooperation and communication, and that requirements engineering practices are a critical basis for alignment. Further, the size of an organisation and its motivation for applying alignment practices, e.g. external enforcement of traceability, are variation factors that play a key role in achieving alignment. Our results provide a strategic roadmap for practitioners improvement work to address alignment challenges. Furthermore, the study provides a foundation for continued research to improve the alignment of RE with VV.

[Context] It is an enigma that agile projects can succeed ‘without requirements’ when weak requirementsengineering is a known cause for project failures. While agile development projects often manage well withoutextensive requirements test cases are commonly viewed as requirements and detailed requirements are documented astest cases.[Objective] We have investigated this agile practice of using test cases as requirements to understand how test casescan support the main requirements activities, and how this practice varies.[Method] We performed an iterative case study at three companies and collected data through 14 interviews and 2focus groups.[Results] The use of test cases as requirements poses both benefits and challenges when eliciting, validating,verifying, and managing requirements, and when used as a documented agreement. We have identified five variants ofthe test-cases-as-requirements practice, namely de facto, behaviour-driven, story-test driven, stand-alone strict andstand-alone manual for which the application of the practice varies concerning the time frame of requirementsdocumentation, the requirements format, the extent to which the test cases are a machine executable specification andthe use of tools which provide specific support for the practice of using test cases as requirements.[Conclusions] The findings provide empirical insight into how agile development projects manage andcommunicate requirements. The identified variants of the practice of using test cases as requirements can be used toperform in-depth investigations into agile requirements engineering. Practitioners can use the providedrecommendations as a guide in designing and improving their agile requirements practices based on projectcharacteristics such as number of stakeholders and rate of change.

It is a conundrum that agile projects can succeed 'without requirements' when weak requirements engineering is a known cause for project failures. While Agile development projects often manage well without extensive requirements documentation, test cases are commonly used as requirements. We have investigated this agile practice at three companies in order to understandhow test cases can fill the role of requirements. We performed a case study based on twelve interviews performed in a previous study.The findings include a range of benefits and challenges in using test cases for eliciting, validating, verifying, tracing and managing requirements. In addition, we identified three scenarios for applying the practice, namely as a mature practice, as a de facto practice and as part of an agile transition. The findings provide insights into how the role of requirements may be met in agile development including challenges to consider.

In order to evaluate and increase modularity this paper combines a method for visualizing and measuring software architectures and two algorithms for decoupling. The combination is tested on a software system at Ericsson. Our analysis show that the system has one large cluster of components (18% of the system, a Core), all interacting with each other. By employing cluster and dominator analysis we suggest 19 dependencies to be removed in order to decouple the Core. Validating the analysis output with experts at Ericsson six of the suggested dependencies where deemed impossible to remove. By removing the remaining 13 dependencies Ericsson would improve the architecture of their system considerably, e.g. core size would go down to 5%.

In this thesis we will examine a telecom industry case, where combining synchronous and asynchronous interfaces causes problems. A solution to the problem is being presented in form of an interface controller framework that is based on patterns of common functionality of interface controllers. The solution is implemented using four different implementation methods (Java, Erlang, XDE, Executable UML), and compared in lines of code, performance and throughput.

The climate crisis has caused many countries around the world to invest in large amounts of renewable energy. To be able to handle the intrinsic unreliability and geographic de- pendency of many renewable energy sources, HVDC technology is considered due to its low cost when transferring electricity across great distances. Traditional AC grids are controlled with 15-minute intervals at control centers, but HVDC grids require a faster control due to more power fluctuations within the grid. The aim of this project was to propose an architecture for a gateway in a control center for an HVDC grid. The gateway was programmed in C and C++ and the data was sent using UDP packets. Testing of the gateway was done using a real-time simulation of an HVDC grid. The data was sent with intervals smaller than a second which satisfied the speed requirements for this project. A gateway like the one developed in this project can be implemented at control centers to display and process data and to improve the overall reliability of an HVDC grid.

Performing product development means to simultaneously develop product systems, production processes and marketing efforts. Product Development processes are often complex as they are time dependent and contain many inter-dependencies e.g. between parts and individuals involved Due to the complexity in these processes the methods for research on integrated product development processes need to be designed differently than traditional research methods used. The study of details of totalities can work for mechanical systems but less well for complex systems. For a deeper knowledge of complex systems substantial researcher involvement and participation in real time is essential, which Insider Action Research (IAR) is designed for. IAR can be performed from the three main positions as observer, team member or project leader. The-following conclusions have been drawn (Bjork 2003): The IAR approach is beneficial in most types of development processes and projects when the aim of the research is to achieve increased knowledge and understanding. A mix of detailed and narrative descriptions of a research project provides also practitioners with an opportunity to adopt the findings. The implementation of research results would thereby become facilitated, which is an effect that most researchers as well as practitioners would benefit from.