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

Updated NFR for maintainability to refer to code, not SRS: #3288 #3735

Merged
merged 18 commits into from
May 27, 2024

Conversation

BilalM04
Copy link
Collaborator

@BilalM04 BilalM04 commented May 13, 2024

Updated the NFR for maintainability to the following description:

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.

Change applied to the following examples:

TO DO: Instead of hard-coding the "10%", it should be a parameter than can vary at the time of SRS generation.

closes #3288

Copy link
Collaborator

@smiths smiths left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with the feedback from @samm82, including that the word percent shouldn't be there and the percentage symbol should not be in italics. Those changes will make the change fine from the point of view of stable. How the changes are done should also be investigated. Specifically, we don't want the same Drasil code repeated.

@BilalM04
Copy link
Collaborator Author

BilalM04 commented May 14, 2024

@samm82 @smiths

It seems the "%" symbol is always generated between an <em></em> tag in HTML, which by default renders the contained text in italics. The issue is currently present in the existing SRS documents, for example in the Input Data Constraints table in the SRS for Projectile.

In regards to the code duplication, I am unsure where to define the requirement so it can be accessed by various examples. Currently, it appears that requirements are defined for each example, with no place for "common" requirements. One possible module I was looking at is code/drasil-docLang/lib/Drasil/Sections/Requirements.hs which has the following description in its README:

Contains the functions to generate the Requirements section

@smiths
Copy link
Collaborator

smiths commented May 16, 2024

@samm82 @smiths

It seems the "%" symbol is always generated between an \<em\>\</em\> tag in HTML, which by default renders the contained text in italics. The issue is currently present in the existing SRS documents, for example in the Input Data Constraints table in the SRS for Projectile.

The percent symbol isn't a priority. We can leave it as it is for now.

In regards to the code duplication, I am unsure where to define the requirement so it can be accessed by various examples. Currently, it appears that requirements are defined for each example, with no place for "common" requirements. One possible module I was looking at is code/drasil-docLang/lib/Drasil/Sections/Requirements.hs which has the following description in its README:

Contains the functions to generate the Requirements section

@samm82 or @balacij can likely point you to the best way to add common requirements. Much of the boilerplate in the requirements documents are shared between examples. @samm82 was working on a way to standardize common requirements, like the input and output requirements. Ideally the structure of the requirements will be the same between examples, but they will be parametrized by the percentage of time needed for the change, so that different examples can have different percentages. There really isn't a compelling reason for a specific value for any of our examples, but in general not every future maintainability requirement is going to be identical.

@JacquesCarette
Copy link
Owner

  • percent in italics should be made into a separate issue. It's likely bound up with other issues, so that changing that might not be so easy
  • hopefully you've had the functions that deal with boilerplate pointed out to you (offline). They definitely exist!

@balacij
Copy link
Collaborator

balacij commented May 21, 2024

One possible module I was looking at is code/drasil-docLang/lib/Drasil/Sections/Requirements.hs which has the following description in its README:

Looking at the contents of that file, I think you've found a good spot, @BilalM04.

Aside: in that file, I don't quite like how reqIntroStart and the likes are used -- it de-duplicates Sentences, but not the generic shape of the section introductions. There should be a single "generic section introduction builder" that contains those strings and a list of "contents" in the section that are added to the generic section introduction as needed.

@BilalM04 BilalM04 requested a review from balacij as a code owner May 22, 2024 15:04
@BilalM04 BilalM04 requested a review from samm82 May 22, 2024 15:05
@BilalM04 BilalM04 requested a review from samm82 May 22, 2024 17:07
Copy link
Collaborator

@balacij balacij left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Certainly cleans up the code nicely 😄

code/drasil-docLang/package.yaml Outdated Show resolved Hide resolved
code/drasil-docLang/lib/Drasil/Sections/Requirements.hs Outdated Show resolved Hide resolved
@BilalM04 BilalM04 requested a review from balacij May 23, 2024 18:27
@JacquesCarette
Copy link
Owner

Up to @balacij to verify that the changes he'd asked for have been done.

@balacij balacij merged commit 35b170c into master May 27, 2024
5 checks passed
@balacij balacij deleted the nfrMaintainability branch May 27, 2024 16:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Nonfunctional requirement(s) for maintainability should refer to the code, not the SRS
5 participants