Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nonfunctional requirement(s) for maintainability should refer to the code, not the SRS #3288

Closed
7 tasks done
samm82 opened this issue Feb 14, 2023 · 5 comments · Fixed by #3735
Closed
7 tasks done
Labels
newcomers Good first issue to work on! stable-fix

Comments

@samm82
Copy link
Collaborator

samm82 commented Feb 14, 2023

As mentioned by @smiths in his review of the ChemCode SRS, an NFR for maintainability should refer to code's maintainability, not the SRS's.

Currently, a common NFR for maintainability is something along the lines of "Maintainable: The traceability between requirements, assumptions, theoretical models, general definitions, data definitions, instance models, likely changes, unlikely changes, and modules is completely recorded in traceability matrices in the SRS and module guide."

This change should be implemented in:

  • GamePhysics (this says "Maintainability: The development time for any of the likely changes should not exceed 10% percent of the original development time," but the value of 10% should be defined as a symbolic parameter)
  • GlassBR
  • NoPCM
  • PDController
  • Projectile
  • SSP
  • SWHS
@samm82 samm82 added stable-fix newcomers Good first issue to work on! easy At quick glance, it should be 'easy,' but you never know what'll happen! labels Feb 14, 2023
@smiths
Copy link
Collaborator

smiths commented Feb 14, 2023

Thanks for noticing this @samm82. I know that we have paid less attention to the NFRs in our case studies. This is an example where we let something through that isn't great. Maintainability is a difficult one to specify. My current thinking is to say something like: "If a likely change is made to the finished software it will take MAINT_FRACTION of the original development time, assuming the same development resources are available." In this MAINT_FRACTION is a symbolic constant for the fraction of the original development time. Maybe MAINT_FRACTION would be 1/10th?

This version of the NFR can be measured. I think it is reasonably unambiguous. The downside is that nobody really knows how much different technologies and processes contribute to achieving this NFR. Unfortunately I think we'll have this problem no matter how we choose to specify maintainability.

@samm82
Copy link
Collaborator Author

samm82 commented Feb 14, 2023

GamePhysics's NFR says "Maintainability: The development time for any of the likely changes should not exceed 10% percent of the original development time," which is a bit closer to what we're looking for.

@balacij balacij removed the easy At quick glance, it should be 'easy,' but you never know what'll happen! label May 4, 2023
@BilalM04
Copy link
Collaborator

BilalM04 commented May 9, 2024

@smiths @samm82 would the NFRs for maintainability be the exact same as the description below for each of the linked examples, or would they be different? If they would be different, how would they differ?

GamePhysics's NFR says "Maintainability: The development time for any of the likely changes should not exceed 10% percent of the original development time," which is a bit closer to what we're looking for.

@smiths
Copy link
Collaborator

smiths commented May 9, 2024

@BilalM04, for all of the examples, let's say "If a likely change is made to the finished software, it will take 10% of the original development time, assuming the same development resources are available." I would prefer the 10% to be a parameter, rather than a hard-coded value. That way it could be varied for each example at the time of generation of the SRS. However, making the 10% a parameter of variation is something we can do later. Making the change presented above will improve the SRS for each example so that is a good starting point.

@BilalM04 BilalM04 self-assigned this May 9, 2024
@BilalM04 BilalM04 removed their assignment May 13, 2024
BilalM04 added a commit that referenced this issue May 22, 2024
BilalM04 added a commit that referenced this issue May 22, 2024
BilalM04 added a commit that referenced this issue May 22, 2024
balacij added a commit that referenced this issue May 27, 2024
Updated NFR for maintainability to refer to code, not SRS: #3288
@BilalM04
Copy link
Collaborator

Fixed by #3735

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
newcomers Good first issue to work on! stable-fix
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants