Editing
Non-Functional Requirements
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== 5. Maintainability == <span id="nfr-main-01-three-tier-separation"></span> === NFR-MAIN-01 β Three-tier separation === '''Requirement:''' No SQL shall appear outside <code>primes.cbl</code>. No file I/O (other than console DISPLAY) shall appear outside <code>primesui.cbl</code>.<br /> '''Rationale:''' Tier separation is the principal architectural rule of this system; violating it makes changes to one tier affect others.<br /> '''Test approach:''' Grep all <code>.cbl</code> files for EXEC SQL and for SELECT/WRITE file statements; verify only the expected programs contain them.<br /> '''Priority:''' Must Have<br /> '''Source:''' Architecture design principle; observed and partially met (primesgen has an unused FD declaration β minor violation).<br /> '''Status:''' Partially met. <span id="nfr-main-02-copybook-as-interface-contract"></span> === NFR-MAIN-02 β Copybook as interface contract === '''Requirement:''' Changes to any copybook must be reviewed for impact on all programs that COPY it before the change is applied.<br /> '''Rationale:''' Copybooks are shared; a field-size change in a copybook breaks every program that uses it without any compile-time warning in all cases.<br /> '''Test approach:''' Impact analysis process; verified by recompiling all programs after any copybook change.<br /> '''Priority:''' Must Have<br /> '''Source:''' Standard COBOL maintenance practice<br /> '''Status:''' [CONFIRMED as a process requirement β no tooling enforcement in place] <span id="nfr-main-03-code-commentary"></span> === NFR-MAIN-03 β Code commentary === '''Requirement:''' Every paragraph shall carry a comment line stating its purpose. Every EXEC SQL block shall carry a comment stating what it does and why.<br /> '''Rationale:''' Current source has minimal commentary; future maintainers depend on the specification documents, which is insufficient.<br /> '''Test approach:''' Code review checklist.<br /> '''Priority:''' Should Have<br /> '''Source:''' COBOL coding best practice<br /> '''Status:''' '''NOT MET''' in current source. <span id="nfr-main-04-testability"></span> === NFR-MAIN-04 β Testability === '''Requirement:''' Each tier (primesgen, primes, primesui) shall be callable in isolation with a synthetic control block, without requiring the full three-tier stack.<br /> '''Rationale:''' Unit testing individual tiers is only possible if they can be called with a test harness.<br /> '''Test approach:''' Write a minimal test driver for each program; verify it compiles and runs independently.<br /> '''Priority:''' Should Have<br /> '''Source:''' Testability principle; the method-dispatch pattern makes this achievable by design.<br /> '''Status:''' [UNCONFIRMED β no test harnesses exist] ----- <span id="portability-and-compatibility"></span>
Summary:
Please note that all contributions to Webhuis wiki are considered to be released under the GNU Free Documentation License 1.3 or later (see
Project:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Voorpagina
Cobol and PostgreSQL
PostgreSQL
CFEngine
Proxmox
Webhuis Kennisbank
Basale infra
Webhuis bouwstenen
Webhuis configuratie
Webhuis Infra
Webhuis Support
Webhuis Raspberry
Opzet Applicaties
Business Applicaties
Community portal
Current events
Recent changes
Random page
Help
sitesupport
Tools
What links here
Related changes
Special pages
Page information