<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:contributor>Lanza, Michele</dc:contributor>
  <dc:creator>Lungu, Mircea F.</dc:creator>
  <dc:date>2009-10-12</dc:date>
  <dc:description xmlns:ns0="xml" ns0:lang="en">Reverse engineering is an active area of research concerned with the  development of techniques and tools that support the understanding of  software systems. All the techniques that were pro- posed until now  study individual systems in isolation. However, software systems are  seldom developed in isolation; instead, they are developed together with  other projects in the wider context of an organization. We call the  collection of projects that are developed in such a con- text a software  ecosystem. Understanding the code base, the inter-project relationships  and the emergent social structure of an ecosystem is critical for the  efficient functioning of the organiza- tion. In this thesis we propose  ecosystem reverse engineering as a technique for ecosystem under-  standing. We then introduce Revenge, a methodology for reverse  engineering entire software ecosystems, we present in detail multiple  steps of the process, we provide tools that support the methodology,  and we validate both the methodology and tools on multiple case  studies.Revenge is based on analyzing the super-repository associated  with an ecosystem and gen- erating ecosystem viewpoints, visual  representations that capture complementary aspects of the ecosystem.  The viewpoints can be either holistic and present the entire ecosystem  as a whole, or focused and present a single component of the  ecosystem in the broader context. The viewpoints are interactive and a  user can navigate between them during the analysis process. One  essential type of exploration is vertical navigation, which allows  zooming in on a single project in the ecosystem, and provides a bridge  between ecosystem level analysis and single-system analysis, in our  case, architecture recovery. The Revenge methodology includes  architecture recovery as a sub- process whose goal is to generate  architectural views of the individual systems when this is necessary for  ecosystem understanding. Since generating architectural views can not  be performed in a fully automated manner, we introduce two techniques  that increase the degree of automation of the process. First we  annotate possible exploration paths based on the classification of  modules in a set of structural patterns. Second we automate the filtering  of dependencies in the architectural views based on the classification  of the inter-module dependencies in a set of evolution patterns. Once an  architectural view of a system is obtained, it can be enriched with  information that regards the interaction of the system with the entire  ecosystem. To validate our contributions we applied our tools and  techniques on a set of ecosystem case studies that belong to one  industrial software house, two academic research groups, and one  open-source community. At the architectural level, we validated our  techniques on several well- known open source software systems.</dc:description>
  <dc:format>application/pdf</dc:format>
  <dc:identifier>https://localhost:5000/ark:/12658/srd1318234</dc:identifier>
  <dc:identifier>https://susi.usi.ch/global/documents/318234</dc:identifier>
  <dc:identifier>https://susi.usi.ch/documents/318234/files/2009INFO006.pdf</dc:identifier>
  <dc:language>eng</dc:language>
  <dc:relation>info:eu-repo/semantics/altIdentifier/urn/urn:nbn:ch:rero-006-108019</dc:relation>
  <dc:relation>info:eu-repo/semantics/altIdentifier/ark/12658/srd1318234</dc:relation>
  <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
  <dc:rights>License undefined</dc:rights>
  <dc:subject xmlns:ns1="xml" ns1:lang="en">Software engineering</dc:subject>
  <dc:subject xmlns:ns2="xml" ns2:lang="en">Software ecosystems</dc:subject>
  <dc:subject xmlns:ns3="xml" ns3:lang="en">Reverse engineering</dc:subject>
  <dc:subject xmlns:ns4="xml" ns4:lang="en">Architecture recovery</dc:subject>
  <dc:subject xmlns:ns5="xml" ns5:lang="en">Software visualization</dc:subject>
  <dc:subject xmlns:ns6="xml" ns6:lang="en">Software evolution</dc:subject>
  <dc:subject>info:eu-repo/classification/udc/004</dc:subject>
  <dc:title xmlns:ns7="xml" ns7:lang="en">Reverse engineering software ecosystems</dc:title>
  <dc:type>http://purl.org/coar/resource_type/c_db06</dc:type>
</oai_dc:dc>
