Exploring the applicability of Generative AI and LLM on Software Architecture
a. Project Description
Generative AI has attracted a lot of attention recently from the research community. Its ability to generate complex solution from similar examples has made it an interesting solution for problems that require a certain degree of creativity. Design processes that are necessary in software architecture require similarly creative solutions. In addition, the problem of translating natural text requirements into design and architecture artifacts is non-linear and in most cases unstructured. In this sense, design processes can also benefit from the use of large language models (LLM), known for their ability to understand and generate natural language. The objective of this project is to explore the ability of LLMs and generative AI to produce functional and performant software architectures given free-text requirement descriptions. The developed models will need to parse these descriptions, extract functional and non-functional requirements and produce architectural and high-level designs, as UML diagrams, following proper design principles and patterns, and architectural styles. Explainability and justifiability are of utmost importance for the produced designs.
b. Tasks and responsibilities
The hired student will work towards the review of relevant technologies and its applications on Software Engineering so far, as well as on the use of current technologies for the generation of software architecture examples. The student will develop the theoretical foundation as well as practical experience on the use of generative AI and LLM tools and methods on Software Engineering. The student will aim to publish in top-tier journals, including IEEE Transactions on Software Engineering, Elsevier Journal of Systems and Software, and conferences, such as ICSA, ECSA, ICSE, and others. The student will also be responsible for supervising and mentoring MSc and BSc students working on the project. The position is open for Winter, Summer or Fall 2024.
c. Required Skills
The student will be asked to demonstrate adequate understanding or expertise in the following topics through relevant courses (on undergraduate or graduate level) or through relevant publications in international conferences or journals. The student should consider applying if they have the expert-level skills and at least 50% of the good-level skills.
- Expert programming skills, preferably in Java or Python.
- Good knowledge on software architecture, software design, distributed and cloud systems.
- Adequate knowledge on AI, machine learning, deep learning and relevant technologies.
d. Application process
Upon contacting the professor to inquire for the position, the student is also asked to submit the following documents:
- A copy of the most recent version of their CV or Resume.
- A copy of the transcripts of their undergraduate and/or master studies, if available.
- The aforementioned documents are also required by the EECS application process for the PhD or MSc programs (along with a statement of purpose). The candidate student is highly encouraged to complete the EECS application in parallel to contacting the professor. More information about the EECS application can be found here: https://lassonde.yorku.ca/eecs/academics/graduate/future-students/#phd.
- The names and contact information of 3 referees.
-
A review for one of the three following articles. The review (maximum one page) should contain a summary of the paper, its strengths and weaknesses and comments about the improvement or extension of the work presented in the paper.
- Böhm, K. and Schedlberger, L.M., 2023. The use of Generative AI in the domain of human creations–a case for co-evolution?.
- Ahmad, A., Waseem, M., Liang, P., Fahmideh, M., Aktar, M.S. and Mikkonen, T., 2023, June. Towards human-bot collaborative software architecting with chatgpt. In Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering (pp. 279-285).
- Nguyen-Duc, A., Cabrero-Daniel, B., Przybylek, A., Arora, C., Khanna, D., Herda, T., Rafiq, U., Melegati, J., Guerra, E., Kemell, K.K. and Saari, M., 2023. Generative Artificial Intelligence for Software Engineering–A Research Agenda. arXiv preprint arXiv:2310.18648.
- Calegario, F., Burégio, V., Erivaldo, F., Andrade, D.M.C., Felix, K., Barbosa, N., Lucena, P.L.D.S. and França, C., 2023. Exploring the intersection of Generative AI and Software Development. arXiv preprint arXiv:2312.14262.
- (Only for PhD candidates) An example of a proposal (as evidence of writing) written by the student for a research project relevant to the position or of a topic selected by the student. The proposal should include background, motivation, methodology and a plan for evaluation. The proposal should be maximum 2 pages.
- The candidate student should submit these documents by email to the professor with the subject “Software Architecture PhD 2024” for PhD candidates or “Software Architecture MSc 2024” for MSc candidates). No email will be considered unless it has this subject and the required attachments (CV, transcripts, review, proposal). In the email, the student should express their interest to the position and provide the corresponding evidence to the required skills as this appears in the attached documents.