View Proposal


Proposer
Kostas Liaskos
Title
Automated code quality metrics for concurrent software
Goal
The aim of this project is to develop a tool that automates code quality metrics in the context of concurrent software. The core of this project is to investigate common code quality metrics utilised for non-concurrent software and suggest appropriate metrics for concurrent systems.
Description
Code quality metrics (e.g. lines of code (LOC) [1], cyclomatic complexity [2] etc.) are extensively utilised in the context of Software Quality Assurance. However, concurrency introduces new challenges in terms of the adequacy of such metrics. The aim of this project is to develop a tool that automates code quality metrics in the context of concurrent software. The core of this project is to investigate common code quality metrics utilised for non-concurrent software and suggest appropriate metrics for concurrent systems. The key tasks and challenges in this project include: 1. Reviewing common code quality metrics utilised for non-concurrent software and suggest appropriate metrics for concurrent software. 2. Investigation and implementation of the suggested metrics for concurrent software. 3. Evaluating the tool by applying it to a range concurrent systems.
Resources
[1] https://en.wikipedia.org/wiki/Source_lines_of_code, [2] https://www.tutorialspoint.com/software_testing_dictionary/cyclomatic_complexity.htm, [3] https://docs.oracle.com/javase/tutorial/essential/concurrency/
Background
Strong Java programming skills are essential. Furthermore, the student must familiarise with the fundamentals of the Java concurrency package [3].
Url
Difficulty Level
Variable
Ethical Approval
None
Number Of Students
2
Supervisor
Kostas Liaskos
Keywords
java concurrency, software quality, static analysis, programming, software engineering, code metrics
Degrees
Bachelor of Science in Computer Science
Bachelor of Science in Computer Systems
Master of Engineering in Software Engineering
Master of Science in Computing (2 Years)
Master of Science in Software Engineering
Bachelor of Science in Computing Science