Live monitoring of software ecosystems
Software ecosystems is one of the newest challenge that appeared in the last years in the software engineering field. A software ecosystem is a collection of self-sustained entities that are synergizing efficiently and generate more significant information as a group than as individuals in the same environment. Through this thesis we try to resolve the challenges of the software ecosystems. The main challenges of a software ecosystem are the high complexity of the software environment, heterogeneity of the systems and guarantee quality of the ecosystem. This thesis addresses the software engineering in the Smart Farming Living Lab from Fraunhofer IESE. Smart Farming is a lab software ecosystem that Fraunhofer IESE use to explore possible solutions to software ecosystem challenges. In this project the Smart Ecosystems ecosystem is generating a significant interest for customers and a great challenge for developers. The Smart Ecosystems ecosystem is generating, through its demonstrator, different views of the ecosystem. The demonstrator is a vital system in the ecosystem, that has the purpose of generating different views (monitors) of the ecosystem, to enhance the user's perspectives. Until now a dynamical overview of the ecosystem was not available, the current views of the ecosystem address only the requirements, architecture, development and security of the ecosystem. Due to the previous mentioned challenges of the software ecosystems and the lack of a dynamical overview of our ecosystem, we identified a problem that had to be addressed. Our goal in this thesis is to reduce the complexity of comprehending the ecosystem and to extend the demonstrator's infrastructure in order to visualize the ecosystem at runtime. In particular, the interconnected systems and the data they exchange. We manage to address this problem by creating a tool that monitories the ecosystem at runtime. For that we had to dig into the literature for related work, identify what technology to use, understand the technologies that are already used in the ecosystem, come up with a design for the tool, couple the tool with the ecosystem, come up with an experiment for analyzing the tool and the created bindings, and derive the conclusions and lessons learned.
Kaiserslautern, TU, Master Thesis, 2014