<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.webhuis.nl:443/index.php?action=history&amp;feed=atom&amp;title=Business_requirements</id>
	<title>Business requirements - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.webhuis.nl:443/index.php?action=history&amp;feed=atom&amp;title=Business_requirements"/>
	<link rel="alternate" type="text/html" href="https://wiki.webhuis.nl:443/index.php?title=Business_requirements&amp;action=history"/>
	<updated>2026-09-11T08:02:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.webhuis.nl:443/index.php?title=Business_requirements&amp;diff=4766&amp;oldid=prev</id>
		<title>Martin: Created page with &quot;&lt;span id=&quot;business-requirements-document&quot;&gt;&lt;/span&gt; = Business Requirements Document =  &#039;&#039;&#039;Project:&#039;&#039;&#039; pgcobol — Prime Numbers Application&lt;br /&gt; &#039;&#039;&#039;Version:&#039;&#039;&#039; 1.0 (reverse-engineered)&lt;br /&gt; &#039;&#039;&#039;Date:&#039;&#039;&#039; 2026-03-17&lt;br /&gt; &#039;&#039;&#039;Status:&#039;&#039;&#039; Baseline   -----  &lt;span id=&quot;purpose&quot;&gt;&lt;/span&gt; == 1. Purpose ==  The system generates prime numbers and stores them in a relational database, and provides a printed report of all stored primes. It demonstrates a three-tier COBOL application ar...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.webhuis.nl:443/index.php?title=Business_requirements&amp;diff=4766&amp;oldid=prev"/>
		<updated>2026-03-25T16:43:26Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;span id=&amp;quot;business-requirements-document&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; = Business Requirements Document =  &amp;#039;&amp;#039;&amp;#039;Project:&amp;#039;&amp;#039;&amp;#039; pgcobol — Prime Numbers Application&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;Version:&amp;#039;&amp;#039;&amp;#039; 1.0 (reverse-engineered)&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;Date:&amp;#039;&amp;#039;&amp;#039; 2026-03-17&amp;lt;br /&amp;gt; &amp;#039;&amp;#039;&amp;#039;Status:&amp;#039;&amp;#039;&amp;#039; Baseline   -----  &amp;lt;span id=&amp;quot;purpose&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; == 1. Purpose ==  The system generates prime numbers and stores them in a relational database, and provides a printed report of all stored primes. It demonstrates a three-tier COBOL application ar...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;span id=&amp;quot;business-requirements-document&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Business Requirements Document =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Project:&amp;#039;&amp;#039;&amp;#039; pgcobol — Prime Numbers Application&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version:&amp;#039;&amp;#039;&amp;#039; 1.0 (reverse-engineered)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Date:&amp;#039;&amp;#039;&amp;#039; 2026-03-17&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Status:&amp;#039;&amp;#039;&amp;#039; Baseline&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;purpose&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 1. Purpose ==&lt;br /&gt;
&lt;br /&gt;
The system generates prime numbers and stores them in a relational database, and provides a printed report of all stored primes. It demonstrates a three-tier COBOL application architecture running on Linux against a PostgreSQL database.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;stakeholders&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 2. Stakeholders ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;| Role&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;| Concern&lt;br /&gt;
|-&lt;br /&gt;
| Developer / operator&lt;br /&gt;
| Runs generation and reporting jobs from the command line&lt;br /&gt;
|-&lt;br /&gt;
| Database administrator&lt;br /&gt;
| Manages schema, credentials, and data retention&lt;br /&gt;
|-&lt;br /&gt;
| End user&lt;br /&gt;
| Receives the printed prime-number report&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;business-requirements&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 3. Business Requirements ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;br-01-prime-number-generation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== BR-01 — Prime Number Generation ===&lt;br /&gt;
&lt;br /&gt;
The system shall compute all prime numbers from 3 up to 999,999,999 using a trial-division algorithm and store each confirmed prime in the database.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Acceptance criteria:&amp;#039;&amp;#039;&amp;#039; - Every integer stored in the primes table is a prime number. - No prime in the range 3–999,999,999 is omitted. - The sequence column records insertion order via an auto-incrementing identity.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;br-02-prime-number-reporting&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== BR-02 — Prime Number Reporting ===&lt;br /&gt;
&lt;br /&gt;
The system shall produce a formatted printed report listing all primes currently stored in the database.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Acceptance criteria:&amp;#039;&amp;#039;&amp;#039; - Every row in the primes table appears in the report. - Rows are presented in database-cursor order (insertion order by ident). - The report is paginated with headings, column headers, and page numbers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;br-03-operational-modes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== BR-03 — Operational Modes ===&lt;br /&gt;
&lt;br /&gt;
The system shall support two mutually exclusive operational modes selectable at invocation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Mode&lt;br /&gt;
! Argument&lt;br /&gt;
! Effect&lt;br /&gt;
|-&lt;br /&gt;
| Generate&lt;br /&gt;
| &amp;lt;code&amp;gt;generate&amp;lt;/code&amp;gt;&lt;br /&gt;
| Compute primes and persist to DB&lt;br /&gt;
|-&lt;br /&gt;
| Report&lt;br /&gt;
| &amp;lt;code&amp;gt;report&amp;lt;/code&amp;gt;&lt;br /&gt;
| Read DB and produce print file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Any argument other than &amp;lt;code&amp;gt;generate&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;report&amp;lt;/code&amp;gt; shall cause the program to log an error and terminate without processing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;br-04-audit-trail-console-logging&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== BR-04 — Audit Trail / Console Logging ===&lt;br /&gt;
&lt;br /&gt;
All significant processing events (session start/stop, database connection, cursor open, fetch errors, write confirmation) shall be written to the system console in real time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;br-05-data-persistence&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== BR-05 — Data Persistence ===&lt;br /&gt;
&lt;br /&gt;
Prime numbers shall be stored persistently in a PostgreSQL database so that the report can be produced independently of and after the generation run.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;br-06-report-format&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== BR-06 — Report Format ===&lt;br /&gt;
&lt;br /&gt;
The printed report shall: - Carry a page heading (“primes overview”) and a column header row on every page. - Present six prime entries per print line (sequence number + prime value). - Carry a page-number footing at the bottom of each page. - Be written to a line-sequential file (&amp;lt;code&amp;gt;primes.prt&amp;lt;/code&amp;gt;) with 132-character records.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;constraints&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 4. Constraints ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;| ID&lt;br /&gt;
!width=&amp;quot;50%&amp;quot;| Constraint&lt;br /&gt;
|-&lt;br /&gt;
| C-01&lt;br /&gt;
| Target runtime is GnuCOBOL 4.0 on Linux.&lt;br /&gt;
|-&lt;br /&gt;
| C-02&lt;br /&gt;
| Database is PostgreSQL 11; connection is localhost only.&lt;br /&gt;
|-&lt;br /&gt;
| C-03&lt;br /&gt;
| Database credentials are currently hard-coded in the DAL program.&lt;br /&gt;
|-&lt;br /&gt;
| C-04&lt;br /&gt;
| The upper bound of generation is fixed at 999,999,999.&lt;br /&gt;
|-&lt;br /&gt;
| C-05&lt;br /&gt;
| The print file is fixed at 132 columns, 56 lines per page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;out-of-scope&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== 5. Out of Scope ==&lt;br /&gt;
&lt;br /&gt;
* Interactive (screen) input or output.&lt;br /&gt;
* Concurrent multi-user access.&lt;br /&gt;
* Prime generation restart / checkpoint recovery.&lt;br /&gt;
* Authentication or credential management.&lt;br /&gt;
* Scheduling or job-control integration.&lt;br /&gt;
&amp;lt;hr/&amp;gt;&lt;br /&gt;
Terug naar: [[Primes_programs_specifications]] | [[Cobol and PostgreSQL]]&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
</feed>