Automatized Software Architecture and Dependency Graph Design
This project aims to improve the quality of developed software and enhance the software development process by employing the well-known software architecture and design principles (like SOLID principles) into the development phase. Specifically, it aims to develop automated assistance of the process of developing a good software architecture from artifacts that describe the project.
In this project you will design and implement a tool to assist the creation of software architecture and dependency graph according to given requirements. The input might consist of the following: the requirements of the project, the data model to be used, the type of sofware, information about which parts of the requirements are more likely to change in the future, i.e. the information a software architect requires before designing an architecture. The desired outputs include the suggested class diagram, a dependency graph, recommended design patterns, and the layered overall software architecture.
This project will form the foundations of a subsequent senior project. The main goal of this project is to establish the conceptional foundations, and identify the requirements and to design the prototype that will be implemented during the senior project.