Software

The software (or in some cases project related to software development) has mostly been created as a result of bacherol or master theses that I have supervised. The source code of all this software is open source and has been published to facilitate further development. The theses are available through the digital library of TalTech. Although most of the theses are in Estonian there is annotation in English in all the theses documents.

Perhaps one of the most notable projects is pgApex. It is intended to be an analogy of Oracle-APEX and provides low-code development environment for creating metadata-driven web applications on top of PostgreSQL databases. Another project that I would like to point out are queries for searching design flaws from PostgreSQL databases.

The common denominator of most of the software is that it is based on PostgreSQL DBMS or is intended to help developers of PostgreSQL databases and database applications.

Modeling Aids

  1. A UML Profile for Developing Databases that Conform to The Third Manifesto
  2. A UML Profile and PostgreSQL Code Generator for the Design and Implementation of SQL Databases
  3. I supervised the bachelor thesis Generalizing Code Smells to System Analysis Models (In Estonian). The author used a catalog of code smells to write down model smells about system analysis models. Later we published a paper on the topic and published the catalog of code smells.
  4. I supervised the bachelor thesis A Software to Generate Human Language Sentences from Enterprise Architect CASE Tool's UML Class Diagrams (In Estonian). The author created an extension to Enterprise Architect (EA) modeling tool (CASE tool) that generates natural language (human language) sentences from UML (Unified Modeling Language) class diagrams. The result can be used to check whether a model correctly represents the modeled world. The result can also be used to make the models understandable to people (for instance, client representatives) who do not know UML well enough or at all. By default, the software is capable of generating sentences in English and in Estonian. Moreover, the system allows adding support for new languages. The system provides an alternative representation of visual models (diagrams). Thus, the generation of sentences is in essence a translation from one language (UML) to another (natural language). It is written in Java and uses EA's scripting facility to get information in JSON format as the input to the Java program. The software is open source and published with the MIT licence.

Database Programming Aids

  1. I supervised the master thesis A Generator for Generating Implementation of Anchor Modelling Models in PostgreSQL (in Estonian). The author implemented a PostgreSQL SQL generator for the web-based anchor modeling software.
    HERE is my set of slides (in English) about the anchor modeling. HERE (in a zip file) is a small anchor model (in XML format - one can open it in the modeler) and the SQL code for PostgreSQL that has been generated based on it.

    Later is supervised the master thesis Further Development of an Anchor Model-based SQL Code Generator for PostgreSQL (in Estonian). The author improved the PostgreSQL code generator - he fixed some mistakes and added generation of database objects that were missing in the original generator. The author also made experiments with query performance in a PostgrSQL anchor model-based database. He updated the generator based on the results of this experiment.

  2. I supervised the master thesis Design and Implementation of a Tool for Generating PostgreSQL Functions Based on Contracts of Database Operations (In English). The author developed an utility for generating PostgreSQL functions based on contracts of database operations. For this purpose the author designed two domain specific languages (DSLs). One is used to represent contracts and another is used to describe the context of the contracts, i.e., the structure of database tables and possibly the mapping between conceptual data model elements (entity types and attributes) and SQL database objects (tables and columns). The software is open source and published with the GPL version 3 licence.
  3. NB!I supervised the master thesis Creating a Plugin for Source Code Editor Notepad++ that Simplifies SQL Programming in MS Access Databases (in Estonian). The author developed a plugin for Notepad++ source code editor that has two tasks. Firstly, it allows its users to execute SQL statements in MS Access databases (including Data Definition Language statements - CREATE, ALTER, and DROP). Secondly, it checks MS Access SQL statements in terms of 28 different mistakes and gives feedback to the user. The software is open source and published with the MIT licence.

    Later I supervised the bacherol thesis Abstract Further Development of a Plugin for Source Code Editor Notepad++ that Simplifies SQL Programming in MS Access and PostgreSQL (in Estonian). The author further developed a plugin for Notepad++ source code editor that can ececute SQL statements. The work added support of PostgreSQL, i.e., the user can connect to a database, look its structure elements, and execute SQL statements. Moreover, the plugin is able to predetect 38 different types of errors in PostgreSQL SQL statements and 40 different types of errors in MS Access SQL statements. Out of 40 different error types in MS Access, 12 were added by the author. The software is open source and published with the MIT licence.

  4. I supervised the master thesis Extending PostgreSQL Database Management System to Add Support of Data Masking (in English). The author implemented a proof-of-concept prototype of PostgreSQL extension for static data masking.

Improving Database Design

  1. NB! PostgreSQL system-catalog based queries for getting an overview of the state of the database design or finding the occurrences of specific problems in it. From the page one finds reference to the catalog.
  2. I supervised the master thesis One Possible Approach of Temporal Data Management Using PostgreSQL Database Management System as an Example (in English). The author implemented in the example of PostgreSQL (9.3) a large subset of functionality for managing temporal data that is proposed in the book Date C.J., Darwen, H., Lorentzos, N., 2002. Temporal Data & the Relational Model. Morgan Kaufmann.
  3. I supervised the bachelor thesis Creating a PostgreSQL Extension for Uniforming the Names of Base Table Constraints (in Estonian). The author implemented a PostgreSQL extension for uniforming the names of base table constraints. The extension is open source and published with the MIT licence. The manual and the source code are available at:

Application Development

  1. NB!I supervised the master thesis A PostgreSQL-based Rapid Development Environment for the Metadata-driven Web Applications (in Estonian). The author implemented based on PostgreSQL the first version of an open-source system similar to the Oracle Application Express development environment.

    Later is supervised the bachelor thesis Further Development of a PostgreSQL-Based Rapid Development Environment for the Metadata-Driven Web Applications (in Estonian) that added to the original pgApex support of creating table forms, detailed views, subreports as well as added possibility to use APP_USER system variable (which value is the username of the currently logged-in user).

    Later is supervised the bachelor thesis Giving the Ability to Create CRUD Web Applications With pgApex Development Environment (in Estonian) that added to the pgApex possibility to fully implement CRUD applications (including subforms, optimistic locking, support of new WYSIWYG textarea fields, choosing date from a calendar menu) and made other improvements in the development environment.

Miscellaneous

  1. I supervised the bachelor thesis Developing PostgreSQL Visual Query Design Software (in Estonian). The goal of the thesis was to create an open source and web-based application that allows users to create PostgreSQL SELECT statements, i.e., queries, by using a visual user interface. The application can be used to create SQL statements without writing SQL code. It could be used to save time while creating statements and could be used by users who are uncomfortable with writing source code, i.e., it could extend the range of users who can make themselves queries based on a database.

    Later I supervised the master thesis Further Development of a PostgreSQL Visual Query Design Software (in Estonian) that added support to using subqueries in search conditions, limiting rows in the result, and conducting set operations (UNION, UNION ALL, INTERSECT, EXCEPT).

    Later I supervised the bacherol thesis Adding Support of Data Manipulation to a PostgreSQL Web-based Visual Query Design Software (in Estonian) that migrated the tool from Node.js 8 to Node.js 18 and added support to constructing visually INSERT, UPDATE, and DELETE statements.

  2. I supervised the bachelor thesis A Standalone Self Service Web Application for Changing Passwords in Existing Applications (in Estonian). The author developed an open-source standalone self service web application for changing passwords in existing applications.
  3. I supervised the bachelor thesis Creating a Software for Presenting and Enacting Processes (in English). The author created a web-based software that could be used for creating interactive representations of processes that can be accessed by other users who are then able to move through the different steps of a published process. This is supposed to be more interactive than alternative representations of procedural guidelines and could encourage users to experiment with choosing different options and arriving at different outcomes.

Back to the homepage