Demonstration of refactoring problems on an example of modularization of part of the BlueJ++ program

Thesis title: Demonstrace problémů při refaktoraci na příkladu modularizace části programu BlueJ++
Author: Šíma, Jan
Thesis type: Bakalářská práce
Supervisor: Pecinovský, Rudolf
Opponents: Pavlíčková, Jarmila
Thesis language: Česky
Abstract:
Cílem této práce je na příkladu modularizace části programu BlueJ++ demonstrovat problémy při refaktoraci rozsáhlejších programů.BlueJ++ je samostatná větev výukového vývojového prostředí BlueJ upravená tak, aby maximalizovala podporu výuky podle metodiky Architecture First. Architektura prostředí BlueJ++ převzatá od prostředí BlueJ je nevyhovující, protože aplikaci nelze snadno rozšiřovat.První část práce podrobně rozebírá refaktorování a seznamuje čtenáře s problematikou modularizace a modulů. Současně představuje služby a moduly v jazyce Java.Další část práce obsahuje analýzu výchozího stavu architektury programu BlueJ++, rozebírá výchozí stav zabudovaného editoru a jeho provázanosti se zbytkem programu. Následuje návrh úprav, který demonstruje některé problémy spojené s modularizací a jejich řešení.Výsledkem této práce je osamostatnění modulu editor, který komunikuje s jádrem aplikace prostřednictvím definovaného API. Realizace návrhu API pomocí sady refaktorování vyřešila problém těsné vazby mezi editorem a jádrem aplikace. Použití služeb vyřešilo hrozící cyklické závislosti mezi modulem editoru a jádrem aplikace. Díky novému návrhu API je možné modul editoru kdykoliv vyměnit za jiný bez ztráty funkcionality.
Keywords: BlueJ++; refaktorování; modul; Java
Thesis title: Demonstration of refactoring problems on an example of modularization of part of the BlueJ++ program
Author: Šíma, Jan
Thesis type: Bachelor thesis
Supervisor: Pecinovský, Rudolf
Opponents: Pavlíčková, Jarmila
Thesis language: Česky
Abstract:
The main goal of this thesis is to demonstrate the problems of refactoring of larger pro-grams on an example of modularization of part of the BlueJ++ program.BlueJ ++ is a separate fork of the BlueJ learning development environment modified to maximize teaching support according to Architecture First methodology. The BlueJ++ architecture inherited from the BlueJ environment is unsatisfactory, because the application cannot be easily expanded.The first part of this thesis describes the refactoring and introduces the reader to modulari-zation and modules. It also introduces Java services and modules.The next part of this thesis contains an analysis of the initial state of the BlueJ++ architec-ture, analyzes the initial state of the embedded editor and its interconnection with the rest of the program. This is followed by software design, which demonstrates some of the modularization issues and their solutions.The result of this thesis is an independent editor module, which communicates with the application core via defined API. Realization of the API design using set of refactorings solved tight coupling between the editor and the application core. Use of the service solved the imminent circular dependencies between editor module and the application core. Be-cause of the new API design, the editor module can be replaced at any time without any loss of functionality.
Keywords: BlueJ++; refactoring; module; Java

Information about study

Study programme: Aplikovaná informatika/Aplikovaná informatika
Type of study programme: Bakalářský studijní program
Assigned degree: Bc.
Institutions assigning academic degree: Vysoká škola ekonomická v Praze
Faculty: Faculty of Informatics and Statistics
Department: Department of Information Technologies

Information on submission and defense

Date of assignment: 14. 6. 2018
Date of submission: 10. 12. 2018
Date of defense: 28. 1. 2019
Identifier in the InSIS system: https://insis.vse.cz/zp/66186/podrobnosti

Files for download

    Last update: