Editing
Assumptions and Dependencies
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!
<span id="assumptions-dependencies-and-constraints"></span> = Assumptions, Dependencies, and Constraints = {| !width="23%"| Field !width="76%"| Value |- | Document ID | PGCBL-SAD-002 |- | Document Type | Assumptions, Dependencies, and Constraints Register |- | System | pgcobol β Prime Numbers Application v1.0 |- | Version | 1.0 |- | Status | Draft β requires stakeholder confirmation |- | Owner | Lead Developer |- | Author | [reverse-engineered from source artifacts] |- | Created | 2026-03-17 |- | Last modified | 2026-03-17 |- | Classification | Internal |- | Parent document | PGCBL-BRD-001 |} <span id="version-history"></span> == Version History == {| !width="13%"| Version !width="17%"| Date !width="11%"| Author !width="11%"| Status !width="44%"| Change Summary |- | 0.1 | 2026-03-17 | β | Draft | Derived from source analysis |} ----- <span id="table-of-contents"></span> == Table of Contents == # [[#1-purpose|Purpose]] # [[#2-how-to-use-this-register|How to Use This Register]] # [[#3-assumptions|Assumptions]] # [[#4-dependencies|Dependencies]] # [[#5-constraints|Constraints]] # [[#6-risk-summary|Risk Summary]] # [[#7-open-issues|Open Issues]] ----- <span id="purpose"></span> == 1. Purpose == This register captures every assumption made during the design, every dependency the system relies on, and every constraint that limits the design space. It exists so that: * If an assumption turns out to be wrong, the impact on the design can be assessed quickly. * If a dependency is unavailable, the team knows what is blocked. * Constraints are documented with their source, so they can be challenged if the source changes. Items marked '''[UNCONFIRMED]''' were inferred from source code analysis and have not been verified with a stakeholder. ----- <span id="how-to-use-this-register"></span> == 2. How to Use This Register == <span id="best-practice-generic"></span> === Best practice β generic === An assumption is something the team '''believes to be true''' but has not verified. Every assumption carries a risk: if the assumption is wrong, some part of the design or implementation will fail. Good practice is to: # State the assumption precisely (not vaguely). # Identify who should confirm or refute it. # Assign a risk severity if the assumption is wrong. # Track confirmation explicitly β an unconfirmed assumption is a risk item. A dependency is something '''external to the system''' that must exist or be in a known state for the system to function. Dependencies are not assumptions β they are facts that must be managed. A constraint is a '''limit imposed from outside''' the design team (a regulation, a platform choice, a budget) that restricts what solutions are possible. <span id="severity-scale"></span> === Severity scale === {| !width="50%"| Severity !width="50%"| Meaning |- | High | If wrong/unmet, the system cannot run or produces incorrect results |- | Medium | If wrong/unmet, a feature is degraded or a workaround is needed |- | Low | If wrong/unmet, a minor inconvenience; easily remediated |} ----- <span id="assumptions"></span> == 3. Assumptions == {| !width="9%"| ID !width="15%"| Assumption !width="18%"| Confirmed by !width="21%"| Confirmed date !width="25%"| Severity if wrong !width="10%"| Status |- | A-01 | Prime 2 is manually inserted into the database before the first generation run. The algorithm starts at candidate 3 and immediately calls <code>next-divider</code> (ident=2), which requires a row with ident=2 to exist. | [UNCONFIRMED] | β | High | Open |- | A-02 | The <code>primes</code> table is empty at the start of a fresh generation run. No de-duplication logic exists in the INSERT path; re-running generation will insert duplicate primes. | [UNCONFIRMED] | β | High | Open |- | A-03 | The <code>asc_ident</code> sequence is reset to 1 before each generation run (achieved by running <code>reset-primes.sql</code>). If the sequence is not reset, the ident values used by the divider lookup will be wrong. | [UNCONFIRMED] | β | High | Open |- | A-04 | The working directory at runtime is writable by the process owner, so <code>primes.prt</code> can be created. | [UNCONFIRMED] | β | High | Open |- | A-05 | GnuCOBOL 4.0 and the GixSQL pre-processor are installed and on PATH before compilation. | [UNCONFIRMED] | β | High | Open |- | A-06 | PostgreSQL is running on <code>localhost:5432</code> when any program that calls <code>primes.cbl</code> is executed. | [UNCONFIRMED] | β | High | Open |- | A-07 | The PostgreSQL schema <code>primes</code> and the user <code>primes_user</code> exist and have been granted the necessary privileges before first run. | [UNCONFIRMED] | β | High | Open |- | A-08 | The system is run by a single operator at a time; no concurrent execution is expected. | [UNCONFIRMED] | β | Medium | Open |- | A-09 | The 132-character print record width matches the target printer or viewer. | [UNCONFIRMED] | β | Low | Open |- | A-10 | <code>primes_cbsql.out</code> (the pre-compiler listing) is a historical artefact of an earlier version of <code>primes.cbl</code> and the <code>primesdb</code> connection alias it references is no longer active. | [UNCONFIRMED] | β | Medium | Open |} ----- <span id="dependencies"></span> == 4. Dependencies == {| !width="12%"| ID !width="21%"| Dependency !width="10%"| Type !width="29%"| Version required !width="12%"| Owner !width="14%"| Status |- | DEP-01 | GnuCOBOL compiler | Build-time | 4.0 or later | Developer environment | Must be installed |- | DEP-02 | GixSQL pre-processor | Build-time | Compatible with GnuCOBOL 4.0 | Developer environment | Must be installed |- | DEP-03 | PostgreSQL server | Runtime | 11 or later | DBA | Must be running on localhost:5432 |- | DEP-04 | <code>primes</code> database and schema | Runtime | β | DBA | Must exist; created by <code>primes_schema.sql</code> |- | DEP-05 | <code>primes_user</code> account | Runtime | β | DBA | Must exist with INSERT, SELECT privileges on <code>primes.primes</code> |- | DEP-06 | Writable working directory | Runtime | β | OS / operator | Needed for <code>primes.prt</code> |- | DEP-07 | <code>reset-primes.sql</code> executed before each generation run | Operational | β | Operator | Required for idempotent generation |- | DEP-08 | Prime 2 seeded in <code>primes.primes</code> before first generation | Operational | β | Operator | Required for divider lookup to work from candidate 3 |} ----- <span id="constraints"></span> == 5. Constraints == {| !width="20%"| ID !width="34%"| Constraint !width="22%"| Source !width="22%"| Impact |- | C-01 | Target runtime is Linux only. <code>SPECIAL-NAMES. CONSOLE IS scherm</code> is platform-specific. | GnuCOBOL platform support | Cannot run on Windows or mainframe without porting |- | C-02 | Database must be PostgreSQL. The connection string prefix <code>pgsql://</code> and GixSQL dialect are PostgreSQL-specific. | GixSQL driver | Not portable to DB2, Oracle, or SQL Server without code changes |- | C-03 | Upper generation limit is hard-coded at 999,999,999. | Source code <code>primesgen.cbl</code> line 91 | Cannot be changed without recompilation |- | C-04 | Database credentials are hard-coded in <code>primes.cbl</code> WORKING-STORAGE. | Source code; technical debt | Credential rotation requires recompilation and redeployment |- | C-05 | Print record width is fixed at 132 characters. | <code>primesui.cbl</code> FD and table layout | Report format cannot be changed without recompiling <code>primesui</code> |- | C-06 | The two operational modes (generate / report) are mutually exclusive per invocation. | <code>primesmain.cbl</code> EVALUATE structure | Cannot generate and report in the same run |- | C-07 | GnuCOBOL 4.0-early-dev was used; behaviour may differ from stable GnuCOBOL 3.x. | Compiler listing header | Compatibility with stable GnuCOBOL releases unverified |} ----- <span id="risk-summary"></span> == 6. Risk Summary == Items with High severity that are still unconfirmed represent the greatest project risk: {| !width="33%"| Risk !width="33%"| Assumptions involved !width="33%"| Recommended action |- | Generation produces wrong results or crashes on fresh DB | A-01, A-02, A-03 | Write a pre-run setup script and document it as a mandatory step |- | Program fails silently at runtime due to missing infrastructure | A-04, A-05, A-06, A-07 | Add pre-flight checks to <code>primesmain</code> (file/DB accessibility tests) |- | Pre-compiler listing alias mismatch causes disconnect failure | A-10 | Inspect current <code>primes.cbl</code> disconnect path and confirm alias is <code>primes</code> |} ----- <span id="open-issues"></span> == 7. Open Issues == {| !width="18%"| ID !width="18%"| Issue !width="18%"| Owner !width="21%"| Target !width="21%"| Status |- | OI-01 | All assumptions are unconfirmed. A stakeholder/developer review session is needed to confirm or correct each one. | Lead Dev | β | Open |- | OI-02 | No pre-run setup script exists. DEP-07 and DEP-08 are manual steps with no enforcement. | Developer | β | Open |} <hr/> Terug naar: [[Design standards]] | [[Cobol and PostgreSQL]]
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