Assumptions and Dependencies

From Webhuis wiki
Jump to navigation Jump to search

Assumptions, Dependencies, and Constraints[edit]

Field 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

Version History[edit]

Version Date Author Status Change Summary
0.1 2026-03-17 Draft Derived from source analysis



Table of Contents[edit]

  1. Purpose
  2. How to Use This Register
  3. Assumptions
  4. Dependencies
  5. Constraints
  6. Risk Summary
  7. Open Issues



1. Purpose[edit]

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.



2. How to Use This Register[edit]

Best practice — generic[edit]

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:

  1. State the assumption precisely (not vaguely).
  2. Identify who should confirm or refute it.
  3. Assign a risk severity if the assumption is wrong.
  4. 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.

Severity scale[edit]

Severity 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



3. Assumptions[edit]

ID Assumption Confirmed by Confirmed date Severity if wrong 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 next-divider (ident=2), which requires a row with ident=2 to exist. [UNCONFIRMED] High Open
A-02 The primes 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 asc_ident sequence is reset to 1 before each generation run (achieved by running reset-primes.sql). 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 primes.prt 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 localhost:5432 when any program that calls primes.cbl is executed. [UNCONFIRMED] High Open
A-07 The PostgreSQL schema primes and the user primes_user 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 primes_cbsql.out (the pre-compiler listing) is a historical artefact of an earlier version of primes.cbl and the primesdb connection alias it references is no longer active. [UNCONFIRMED] Medium Open



4. Dependencies[edit]

ID Dependency Type Version required Owner 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 primes database and schema Runtime DBA Must exist; created by primes_schema.sql
DEP-05 primes_user account Runtime DBA Must exist with INSERT, SELECT privileges on primes.primes
DEP-06 Writable working directory Runtime OS / operator Needed for primes.prt
DEP-07 reset-primes.sql executed before each generation run Operational Operator Required for idempotent generation
DEP-08 Prime 2 seeded in primes.primes before first generation Operational Operator Required for divider lookup to work from candidate 3



5. Constraints[edit]

ID Constraint Source Impact
C-01 Target runtime is Linux only. SPECIAL-NAMES. CONSOLE IS scherm is platform-specific. GnuCOBOL platform support Cannot run on Windows or mainframe without porting
C-02 Database must be PostgreSQL. The connection string prefix pgsql:// 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 primesgen.cbl line 91 Cannot be changed without recompilation
C-04 Database credentials are hard-coded in primes.cbl WORKING-STORAGE. Source code; technical debt Credential rotation requires recompilation and redeployment
C-05 Print record width is fixed at 132 characters. primesui.cbl FD and table layout Report format cannot be changed without recompiling primesui
C-06 The two operational modes (generate / report) are mutually exclusive per invocation. primesmain.cbl 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



6. Risk Summary[edit]

Items with High severity that are still unconfirmed represent the greatest project risk:

Risk Assumptions involved 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 primesmain (file/DB accessibility tests)
Pre-compiler listing alias mismatch causes disconnect failure A-10 Inspect current primes.cbl disconnect path and confirm alias is primes



7. Open Issues[edit]

ID Issue Owner Target 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

Terug naar: Design standards | Cobol and PostgreSQL