Refine
Document Type
- Diploma Thesis (1)
- Study Thesis (1)
Keywords
- Softwareentwicklung (2) (remove)
Institute
Software projects typically rely on several, external libraries. The interface provided by such a library is called API (application programming interface). APIs often evolve over time, thereby implying the need to adapt applications that use them. There are also reasons which may call for the replacement of one library by another one, what also results in a need to adapt the applications where the library is replaced. The process of adapting applications to use a different API is called API migration. Doing API migration manually is a cumbersome task. Automated API migration is an active research field. A related field of research is API analysis which can also provide data for developing API migration tools.
The following thesis investigates techniques and technologies for API analysis and API migration frameworks. To this end, design patterns are leveraged. These patterns are based on experience with API analysis and migration within the Software Languages Team.
Im Rahmen dieser Arbeit soll das Software-Modellierungstool Enterprise Architect so erweitert werden, dass die Trennung der Belange entsprechend dem erweiterten Hyperspace-Modell von Lohmann ermöglicht wird. Daneben soll auch die Bestimmung so genannter Slices ermöglicht werden. Bei einem Slice handelt es sich um die Menge aller Belange und syntaktischen Einheiten, welche mit einem oder mehreren Belangen direkt oder transitiv verknüpft sind. Die Idee der Bestimmung solcher Slices ist graphenorientiert: Die transitive Hülle der ausgewählten Belange und der mit diesen verknüpften Belange wird bestimmt. Dies kann auf bestimmte Kantenarten, welche die Arten der Verknüpfung von Belangen widerspiegeln, eingeschränkt werden. Bevor dies implementiert werden kann, muss untersucht werden, ob die Funktionalität mit den im Enterprise Architect gegebenen Möglichkeiten realisiert werden kann. Ist dies nicht der Fall, so müssen Modelle aus dem Enterprise Architect zunächst mit Hilfe von JGraLab in Graphen überführt werden, damit anschließend die Slices unter Anwendung der Graphenabfragesprache Graph Repository Query Language (GreQL) bestimmt werden können. Die Funktionalitäten sollen in einem gemeinsamen Software-Baustein realisiert werden, der sich konform zu den für den Enterprise Architect vorgegebenen Schnittstellen verhalten muss und keine Konflikte im Programmablauf verursachen kann.