The Student Room Group

A level Computer science coursework - Maintennance??

In the mark scheme for OCR A level computer science coursework it mentions that we should discuss 'maintennance features' and possible 'maintennance issues' but I don't know what it means by either of these terms.

Can anyone help?
(edited 1 year ago)
Software maintenance is about keeping the software up-to-date to fix bugs, add new features, close security holes, etc.

Think about the software you use daily (web sites, apps on your phone, software installed on your laptop) - what features do these pieces of software have which aid the process on updating them? Do they automatically detect that a new version is available and alert you? Do they force you to update by a given date? Do that actually handle the update process themselves, or simply nag you to do so. When they do update, what steps do they perform to ensure that any configuration settings are maintained? Do they allow you to roll back to a previous version? Do they allow you to try the "experimental" version before it's officially available?

I assume you've produced some software for your coursework. What similar features could it benefit from? You should discuss those. I very much doubt that you're expected to actually implement such features.
Reply 2
Original post by DataVenia
Software maintenance is about keeping the software up-to-date to fix bugs, add new features, close security holes, etc.

Think about the software you use daily (web sites, apps on your phone, software installed on your laptop) - what features do these pieces of software have which aid the process on updating them? Do they automatically detect that a new version is available and alert you? Do they force you to update by a given date? Do that actually handle the update process themselves, or simply nag you to do so. When they do update, what steps do they perform to ensure that any configuration settings are maintained? Do they allow you to roll back to a previous version? Do they allow you to try the "experimental" version before it's officially available?

I assume you've produced some software for your coursework. What similar features could it benefit from? You should discuss those. I very much doubt that you're expected to actually implement such features.

I have some improvements I could add, would that be what it would mean by maintenance features? or are maintenance features something in the code you would implement to make fixing bugs simpler?

In terms of maintennance issues would this be referring to the issue of updating the software for all users of it? as my software would need to be recompiled and downloaded again by users to get an update
Well, your original post talks about "'maintennance features' and possible 'maintennance features'". It doesn't mention maintenance issues at all.

A maintenance issue normally refers to a approach to the design or code which makes it difficult for the developer to update the code in future. For example, if the variables or methods are poorly named, or there are very few comments then when you come to update the code in six months to add new features, it might take a while to get to grips with the code again. Similarly if the code contains lots of modules which are "tightly coupled" - i.e. they are very dependent on each other - then this can reduce maintainability. It's normally better - from a code maintenance perspective - to made the modules as independent from each other as possible, so if you need to completely replace or rewrite one module, the impact on other modules is kept to a minimum.

A maintenance feature is as I described my earlier post - some features built into the software which make it easier to install a new version or add a new feature. You say that users of your software would need to download it again to get an update. So you could, in theory, add a "check for new version" feature which checks to see if a new version is available automatically each time the application is started, and proves a "one click" approach to downloading a new version.

Note that I'm not saying you need to implement any of the above. You do (by the sound of it) need to discuss these concepts.
Reply 4
Original post by DataVenia
Well, your original post talks about "'maintennance features' and possible 'maintennance features'". It doesn't mention maintenance issues at all.

A maintenance issue normally refers to a approach to the design or code which makes it difficult for the developer to update the code in future. For example, if the variables or methods are poorly named, or there are very few comments then when you come to update the code in six months to add new features, it might take a while to get to grips with the code again. Similarly if the code contains lots of modules which are "tightly coupled" - i.e. they are very dependent on each other - then this can reduce maintainability. It's normally better - from a code maintenance perspective - to made the modules as independent from each other as possible, so if you need to completely replace or rewrite one module, the impact on other modules is kept to a minimum.

A maintenance feature is as I described my earlier post - some features built into the software which make it easier to install a new version or add a new feature. You say that users of your software would need to download it again to get an update. So you could, in theory, add a "check for new version" feature which checks to see if a new version is available automatically each time the application is started, and proves a "one click" approach to downloading a new version.

Note that I'm not saying you need to implement any of the above. You do (by the sound of it) need to discuss these concepts.

ye sorry meant to say 'maintennance features' and 'maintennance issues' in the origional post.
Thanks for the help it is clearer now what these mean
Original post by grhas98
In the mark scheme for OCR A level computer science coursework it mentions that we should discuss 'maintennance features' and possible 'maintennance issues' but I don't know what it means by either of these terms.

Can anyone help?


Think about code quality too. The code you write needs to be "maintainable" and that could be achieved using SOLID design principles. It could be said that code without unit tests can be hard to maintain because you could inadvertently break something and not know it as there's no tests to fail.

I'd say source control is a maintennance feature as it allows you to have multiple people working on new features and you can quickly review code in isolation and control things like software releases.

Quick Reply

Latest