| Category | Assignment | Subject | Computer Science |
|---|---|---|---|
| University | University of Leeds | Module Title | COMP5911M Advanced Software Engineering |
| Assessment Type | Coursework 2 |
|---|---|
| Academic Year | 2025-26 |
This assignment is based on the lecture material dealing with software metrics. There are two separate tasks, with a total of 40 marks available.
Task 1 has several questions associated with it. You should submit your answers to these questions using Gradescope. Task 2 involves programming, and your code should also be uploaded to Gradescope.
This assignment contributes 15% to your overall module grade.
Download task1.zip from the ‘Coursework 2’ folder in Minerva. Unzip task1.zip and then delete it. This should leave you with two directories named before and after. These directories contain code for the Car Rental example used in the lectures and exercise, before and after the refactorings of Exercise 4 have been applied.
1.Compute the following metrics for source code provided in the before directory:
A total of 9 marks are available for these calculations.
2.Compute the same set of metrics for the code in the after directory. Again, these calculations are worth 9 marks.
3.Compare the values of the metrics before and after refactoring. Relate this to what has been achieved by the refactoring. Do the metrics tell us anything useful about how the software has changed? Are they misleading in any way? [4 marks]
Develop a software tool that can does one of the following calculations:
1We use package in the same sense as Java package here. You might also see this described as a ‘module’ or a ‘namespace’.
You can develop your tool in any sensible modern programming language. If you are unsure whether your choice would be suitable, please speak to Nick.
Your tool can analyze code written in any sensible modern programming language. Note: this does not need to be the same as the language used to implement the tool! For example, you could write a tool in Python that analyzes code written in Java if you wanted . . .
Your submission should include a README file giving instructions on how to build your tool (if that is required) and how to run it. It should be possible to do all of this via the command line; your tool should not depend on the use of any particular development environment.
The mark awarded will depend on the level of challenge posed by the chosen metric (see above), the sophistication of the approach you have used, and the quality of your implementation.
Think carefully about an approach that would be effective in solving the problem. You might find that regular expressions are a useful tool. Most modern languages provide good support for using them.
More sophisticated approaches might make use of the reflection capabilities of your chosen implementation language. Java, for example, has a powerful reflection API allowing a Java program to analyze the characteristics of other Java code. C# and Python have similar capabilities.
Another possibility, if you are feeling ambitious enough, would be to use a dedicated parser for the language that your tool analyzes. If following this approach, note that you would definitely NOT be expected to implement such a parser from scratch; instead, we would expect to see you using a parser generator tool such as ANTLR to produce the parser code.
If you have questions about any of this, please ask them in Microsoft Teams.
Question answers and code should be submitted to the ‘Coursework 2’ assignment on Gradescope. You can access this via the link in the ‘Submit My Work’ folder in Minerva.
Your code submission for Task 2 must be in the form of a single Zip archive (not any other archive format such as tarfile, gzipped tarfile or RAR file). This Zip file should include the README file mentioned earlier. It should not contain an executable or any other build artifacts.
Hire Experts to solve your COMP5911M Advanced Software Engineering Coursework 2 before Deadline
Pay & Buy Non Plagiarized AssignmentNeed expert help with your COMP5911M Advanced Software Engineering assignment? At University of Leeds, we provide AI-free and plagiarism-free law coursework assistance. Our team of professional writers delivers top-quality assignments that are original and crafted without AI tools, ensuring the highest academic standards. We also offer a free list of assignment samples, written by experts, to guide your work. Get your assignment checked with an AI and plagiarism report for complete peace of mind. Contact us today for reliable, expert Assignment Help UK and boost your grades!
Hire Assignment Helper Today!
Let's Book Your Work with Our Expert and Get High-Quality Content