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