Feature Complete Software
The following outlines the essential elements for feature-complete software. A software package of any kind that does not have *all* of these features, is incomplete for purposes of this discussion.
In addition, all of these software features should be amenable to:
- automated processing (not require human intervention except where an essential function cannot be completed without a human)
- accessibility (capable of capturing through a screen reader or other assistance technology)
- batch processing (automated processing on multiple items in series, instead of just one at a time)
Data Access Factors
- authentication ;; you are who you say you are
- access control ;; the cabinets and drawers are lockable
- authorization ;; the rules and conditions for access to the cabinets and drawers
Data Persistence Factors
- view
- add
- edit
- delete
Interaction Factors
- search
- sort
- filter
- collate
- validate
- scrub
Architecture
- model
- view
- controller
Anylang Simple Data System
The anylang Simple Data System explains how to represent any kind of data for typical software applications, where the primary goal is to make all data structures within your architecture as easy as possible to understand for the average user. This approach is effective for applications where storage and performance are not significant constraints.
SimpleRecord SimpleTable and SimpleTree
The basic elements of the anylang Simple Data System can be composed and translated to fit the needs of virtually any software application or system.
The anylang Simple Data System consists of the following basic elements:
- SimpleRecord ;; a standard record as modeled in a typical RDBMS
- SimpleTable ;; a standard table as modeled in a typical RDBMS
- SimpleTree ;; a nested data element where every SimpleRecord is allowed to have zero or more SimpleTable child items
The SimpleTree data element is typically not capable of being represented in the RDBMS without using JOIN queries.
Sample data
This is a snapshot of sample data represented as a SimpleTree using YAML syntax.
person:
- first_name: Rosanna
last_name: Terry
age: 33
record_id: "13187137554402717"
fave_color: red
sponsor: simpletable_xref_sponsor
- first_name: Kelsie
last_name: Brakus
age: 30
record_id: "13187137555571156"
fave_color: yellow
sponsor: simpletable_xref_sponsor
- first_name: Opal
last_name: Rath
age: 31
record_id: "13187137550072959"
fave_color: orange
sponsor: simpletable_xref_sponsor
- first_name: Gregorio
last_name: Hilpert
age: 32
record_id: "13187137559241486"
fave_color: yellow
sponsor: simpletable_xref_sponsor
- first_name: Braden
last_name: Schuppe
age: 28
record_id: "13187137553207531"
fave_color: red
sponsor: simpletable_xref_sponsor
sponsor:
- sponsor: Mayer, Runte and Jacobi
industry: Law
record_id: "13187137555292949"
parent_record_id: "13187137554402717"
- sponsor: Fritsch-King
industry: Medicine
record_id: "13187137556371805"
parent_record_id: "13187137559241486"
- sponsor: Rosenbaum, Klocko and Larson
industry: Construction
record_id: "13187137555638918"
parent_record_id: "13187137559241486"
- sponsor: Ruecker-Hyatt
industry: Medicine
record_id: "13187137552893153"
parent_record_id: "13187137553207531"
- sponsor: Gerlach, Emmerich and Bernhard
industry: Construction
record_id: "13187137554311067"
parent_record_id: "13187137553207531"