Source-derived document; reported behaviour, inference and evidence gaps are identified in the text.
Return to: Actor journeys
Actor journeys
In this document
Who is trying to achieve what, and which actions and handoffs lead to the outcome?
This view models the supported startup path and the user-visible order-entry journey. The application is described as a desktop order-management system whose main entry point initializes the database and shared state before exposing modules through a main menu E0011. Startup loads states and stock into bounded arrays; records beyond the documented capacities are not retained, and visible overflow reporting is not established E0012. The order journey covers customer validation, header and line-item entry, total calculation, and transactional persistence, while preserving the unresolved customer-module dependency and exception-rollback gap E0011E0012.
The model distinguishes a successful order commit from explicit rollback branches. It does not treat update, delete, stock CRUD, or several reports as executable journeys because the supplied source describes those operations as stubs E0012. Actor identity beyond an application user, framework transaction behavior after uncaught exceptions, and the exact customer-status contract remain unresolved E0012.
Diagram
Preparing diagram…
View Mermaid diagram source
flowchart TD
nade617a7a0915c17b2f6["Application user (inferred)"]
ne70dde4c3a8b9891f44e["Start application"]
nca91192400a26b567241["Initialize shared application state"]
ne8b3de8fc7ad24413002["Load states and stock"]
n8a27d5b3a8b566d5ddee["Present main menu"]
n50d1b3f1c0e8b59d4575["Add order"]
n5f4abefb48eb2fa73861["Validate customer"]
n8b568603fb45f310b6e8["Enter order header and line items"]
n4408b1be20e4ba1a672f["Calculate order total"]
nc2dd6e3f9e46169f690f["Insert order and items"]
nfff3b7830a3008515961["Commit order"]
nb224be94583a548cfc23["Roll back order transaction"]
n77be4245d7e8152b4727["Handle unexpected transaction exception"]
nc266176580edd6cfc4ec["Transaction disposition after exception (inferred)"]
nade617a7a0915c17b2f6 -.->|"User starts application (inferred)"| ne70dde4c3a8b9891f44e
ne70dde4c3a8b9891f44e -->|"Startup initializes state"| nca91192400a26b567241
nca91192400a26b567241 -->|"Initialization loads reference data"| ne8b3de8fc7ad24413002
ne8b3de8fc7ad24413002 -->|"Loaded data enables menu"| n8a27d5b3a8b566d5ddee
n8a27d5b3a8b566d5ddee -->|"User receives module choices"| nade617a7a0915c17b2f6
nade617a7a0915c17b2f6 -.->|"User starts order entry (inferred)"| n50d1b3f1c0e8b59d4575
n50d1b3f1c0e8b59d4575 -->|"Order entry validates customer"| n5f4abefb48eb2fa73861
n5f4abefb48eb2fa73861 -->|"Validated order receives details"| n8b568603fb45f310b6e8
n8b568603fb45f310b6e8 -->|"Details produce total"| n4408b1be20e4ba1a672f
n4408b1be20e4ba1a672f -->|"Total enters persistence"| nc2dd6e3f9e46169f690f
nc2dd6e3f9e46169f690f -->|"Successful persistence commits"| nfff3b7830a3008515961
nc2dd6e3f9e46169f690f -->|"Failed persistence rolls back"| nb224be94583a548cfc23
nc2dd6e3f9e46169f690f -->|"Exception handling leaves disposition"| n77be4245d7e8152b4727
n77be4245d7e8152b4727 -.->|"Exception handling yields uncertain outcome (inferred)"| nc266176580edd6cfc4ec
Elements
Application user
Kind: actor
Basis: inferred
Description: An application user operates the desktop order-management system through its main menu and order-entry flow; the supplied evidence does not establish a more specific role or identity E0011E0012.
Evidence: E0011, E0012
Goal: Create and commit an order for a customer.
Start application
Kind: action
Basis: reported
Description: The main entry point creates an application instance and starts the main module E0011.
Evidence: E0011
Owner: D4_Main
Initialize shared application state
Kind: action
Basis: reported
Description: Startup initializes the database connection and global data before the main menu is entered E0011E0012.
Evidence: E0011, E0012
Owner: D4_Main
Load states and stock
Kind: action
Basis: reported
Description: Startup invokes state and stock loaders. The in-memory capacities are 50 state records and 30 stock records; excess records are not retained on the visible evidence E0012.
Evidence: E0012
Owner: D4_Main
Present main menu
Kind: action
Basis: reported
Description: D4_Main manages the main menu and provides access to customer, order, stock, and reporting modules E0011.
Evidence: E0011
Owner: D4_Main
Add order
Kind: action
Basis: reported
Description: The order-entry flow validates a customer, collects order-header data, accepts multiple line items with stock lookups, calculates totals, and persists the order and items E0011.
Evidence: E0011
Owner: D4_Orders
Validate customer
Kind: action
Basis: reported
Description: The published flow describes customer validation before order entry, but the customer implementation is absent from the supplied evidence, so the validation behavior and returned status contract cannot be independently confirmed E0011E0012.
Evidence: E0011, E0012
Owner: D4_Cust, not independently established E0012
Enter order header and line items
Kind: action
Basis: reported
Description: The user supplies order-header data and multiple line items; stock lookups support line-item entry E0011.
Evidence: E0011
Owner: Application user
Calculate order total
Kind: action
Basis: reported
Description: The order path sums line totals and applies a 10% multiplier. Exact equivalence with invoice tax and shipping calculations is uncertain because rounding and monetary precision are not established E0012.
Evidence: E0012
Owner: D4_Orders
Insert order and items
Kind: action
Basis: reported
Description: The order flow begins a transaction, inserts the order header, invokes item insertion, and commits only after the required operations succeed E0012.
Evidence: E0012
Owner: D4_Orders
Commit order
Kind: outcome
Basis: reported
Description: A successful order-entry path commits the order and its items to the database E0011E0012.
Evidence: E0011, E0012
Goal: Not applicable.
Roll back order transaction
Kind: outcome
Basis: reported
Description: Explicit rollback is evidenced when the order-header operation reports a negative status or item insertion returns false E0012.
Evidence: E0012
Goal: Not applicable.
Handle unexpected transaction exception
Kind: action
Basis: reported
Description: The broad exception handler invokes exception handling, but the supplied source does not show a rollback after an exception outside the explicit failure branches E0012.
Evidence: E0012
Owner: Unknown; framework or exception-handler ownership is not established E0012
Transaction disposition after exception
Kind: outcome
Basis: inferred
Description: The final transaction disposition after an uncaught exception is unresolved because visible exception handling does not establish rollback and framework behavior is unavailable E0012.
Evidence: E0012
Goal: Not applicable.
Relationships
User starts application
From: Application user
To: Start application
Relation: starts
Basis: inferred
Description: The application user initiates use of the desktop application, while the documented entry point creates and starts the main module E0011.
Evidence: E0011
Trigger: User launches the application.
Startup initializes state
From: Start application
To: Initialize shared application state
Relation: next
Basis: reported
Description: The main entry point starts D4_Main, which initializes the database connection and loads global data E0011.
Evidence: E0011
Mechanism: D4_Main startup sequence.
Initialization loads reference data
From: Initialize shared application state
To: Load states and stock
Relation: next
Basis: reported
Description: D4_Main invokes the state and stock loaders before entering the main menu E0012.
Evidence: E0012
Mechanism: Startup loader calls.
Loaded data enables menu
From: Load states and stock
To: Present main menu
Relation: next
Basis: reported
Description: The loaders run before the main menu is entered E0012.
Evidence: E0012
Guard: The startup sequence reaches menu presentation; truncation of excess state or stock records does not prevent a menu transition on the supplied evidence E0012.
User receives module choices
From: Present main menu
To: Application user
Relation: hands_to
Basis: reported
Description: D4_Main manages the main menu and provides access to the order module and other modules E0011.
Evidence: E0011
Information: Available application-module choices.
User starts order entry
From: Application user
To: Add order
Relation: starts
Basis: inferred
Description: The main menu provides access to order management, and the documented add-order flow is the user-facing path for creating an order E0011.
Evidence: E0011
Trigger: User selects order entry.
Order entry validates customer
From: Add order
To: Validate customer
Relation: next
Basis: reported
Description: The published order-flow description places customer validation within add_order, but the absent D4_Cust implementation leaves this step’s actual behavior unresolved E0011E0012.
Evidence: E0011, E0012
Guard: Customer validation must satisfy the status contract assumed by the caller; that contract is not supplied E0012.
Validated order receives details
From: Validate customer
To: Enter order header and line items
Relation: next
Basis: reported
Description: After the documented customer-validation stage, add_order collects order-header data and permits multiple line-item entries with stock lookups E0011.
Evidence: E0011
Guard: Customer validation succeeds; the success criteria are not independently established E0012.
Details produce total
From: Enter order header and line items
To: Calculate order total
Relation: next
Basis: reported
Description: The add-order flow calculates totals after collecting order and item data E0011.
Evidence: E0011
Information: Order header, line items, stock lookup results, and line totals.
Total enters persistence
From: Calculate order total
To: Insert order and items
Relation: next
Basis: reported
Description: The order-entry flow persists the order and items after calculating totals E0011.
Evidence: E0011
Information: Order header, items, and calculated total.
Successful persistence commits
From: Insert order and items
To: Commit order
Relation: achieves
Basis: reported
Description: The transaction commits only after the order-header operation and item insertion succeed E0012.
Evidence: E0012
Guard: The order-header operation does not report a negative status and item insertion returns true E0012.
Control: Database transaction commit E0012.
Failed persistence rolls back
From: Insert order and items
To: Roll back order transaction
Relation: achieves
Basis: reported
Description: Explicit rollback occurs when the order-header operation reports a negative status or item insertion returns false E0012.
Evidence: E0012
Guard: An explicit failure branch is reached E0012.
Control: Database transaction rollback E0012.
Exception handling leaves disposition
From: Insert order and items
To: Handle unexpected transaction exception
Relation: next
Basis: reported
Description: The broad exception handler can be invoked for an exception, but the supplied source does not show rollback in that handler E0012.
Evidence: E0012
Guard: An exception occurs outside the explicitly documented rollback branches E0012.
Exception handling yields uncertain outcome
From: Handle unexpected transaction exception
To: Transaction disposition after exception
Relation: achieves
Basis: inferred
Description: Exception handling produces an unresolved transaction disposition because neither the visible handler nor supplied framework evidence proves whether rollback occurs E0012.
Evidence: E0012
Control: Exception-handler behavior and framework transaction semantics are unknown E0012.
Gaps
- The actor’s specific business role is not established; “Application user” is a bounded inference from the user-facing desktop flow E0011E0012.
- D4_Cust is referenced through an interface, but its implementation is absent. Customer validation, customer selection, creation, and status values therefore remain unresolved E0012.
- The source does not establish whether an exception after transaction start is rolled back by the framework or exception handler E0012.
- Startup loading silently retains at most 30 stock rows and 50 state rows on the visible evidence; the business effect of discarded records is not documented E0012.
- The exact database schema and error-status semantics are not supplied E0011E0012.
- The order-total calculation and invoice tax-plus-shipping calculation are intended to represent the same 10% adjustment, but monetary rounding may produce different results E0012.
- Update and delete order operations, stock CRUD, and backlog and stock reports are exposed as options but are not evidenced as executable journeys E0012.
Recovery limitations
- Ownership, mechanism or boundary controls remain explicitly unverified.
- The view includes explicitly marked inference.
Sources
- E0011 — SHA256
be5e6746cc70e5b5af8caf785fb6efb113f28a7ab2080be3603561a173bbcb0c - E0012 — SHA256
b17ef2d84bcd51af76724530e686489917c4271029456ef08648f9aa518bfa2b
Harten documentation of the Informix 4GL and Java source repository, from the retained 17 October 2026 export. The exact upstream revision analysed is not established. Source findings do not establish runtime behaviour or equivalence between the implementations.
Evidence identifiers are retained for traceability. The underlying analysis records are not included in this public edition; credential values are redacted. About this case study.