Sepm Unit 10

2 minute read

Published:

Learning Outcomes Achieved

  1. Explore the implications of computer and network architectures for system-level design and development, as appropriate for risk and quality management

Codio Activity

For the first part of this exercise, students were required to test the various programs on a sample file (I have attached the relevant files below). Thereafter, a discussion was to be had on the differences between the various tools.

By completing this activity, I have achieved learning outcome 2, because I have learned how to manage the quality of software by improving its codebase (a computing-level topic) through the use of linters. This is something I would like to apply in my own work- for the assignment, I’ll try seeing if any linters exist for code written in Kotlin. Since our project is open source, we could add SonarCloud for static analysis, but I don’t think there would be time for this- it’s something we’d need to add to our sprint backlog. I’ll flag it for discussion with my team.

ePortfolio Activity

A task was given this week, which was to discuss how software quality has changed by comparing an old report on it, and a new one. By completing this activity, I achieved learning outcome 2 because I learned about “timeless” factors that influence the quality of software. I aim to use this new knowledge for the assignment, and I will discuss this in the following paragraph.

For the assigment, we chose to follow the MVVM model for the application, which makes it easy to follow some of the principles. For example, testability is easier to implement with the MVVM model since logic is moved into ViewModels- meaning that no expensive UI tests are needed to actually test the logic. This abstraction also improves portability. However, I would say that Understandability is something negatively affected by the use of Kotlin- functional programming is a less popular paradigm and some work is needed to make sense of immutability, compared to a more traditional object-oriented language. I think that maintainability could also be improved- in its current state, the code has a lot of shortcuts and hacks implemented, along with large methods that are hard to make sense of. I think comments are the best way to address this problem, so I will try to add more comments to improve maintainability from this perspective.

Artefacts

Meeting Minutes
Codio Activity (comparison of the different linting tools)
Codio Activity (reports from the different linting tools + file linted)
ePortfolio Activity (software quality report comparison)