Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add system requirements for ductile behavior. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
e56e9ebd70109cc210e00b6e89ad4596 |
User & Date: | drh 2008-08-07 16:31:55.000 |
Context
2008-08-08
| ||
15:46 | Continuing work on syntax requirements. This is just an incremental check-in. (check-in: b45c611781 user: drh tags: trunk) | |
2008-08-07
| ||
16:31 | Add system requirements for ductile behavior. (check-in: e56e9ebd70 user: drh tags: trunk) | |
11:33 | Merge changes back into a single branch. (check-in: 420b6c5ef7 user: drh tags: trunk) | |
Changes
Changes to pages/sysreq.in.
︙ | ︙ | |||
42 43 44 45 46 47 48 | <tcl> sysreq S10000 {} { SQLite is an SQL database engine. And the fundamental task of every SQL database engine it to translate the abstract SQL statements readily understood by humans into sequences of I/O operations readily understood by computer hardware. This requirement expresses the | | | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <tcl> sysreq S10000 {} { SQLite is an SQL database engine. And the fundamental task of every SQL database engine it to translate the abstract SQL statements readily understood by humans into sequences of I/O operations readily understood by computer hardware. This requirement expresses the essense of SQLite. } { The SQLite library shall translate high-level SQL statements into low-level I/O calls to persistent storage. } sysreq S10100 S10000 { SQL is one of the worlds most widely known programming languages, |
︙ | ︙ | |||
682 683 684 685 686 687 688 | attack. } { The SQLite library shall support prepared statement objects with late parameter binding } </tcl> | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 | attack. } { The SQLite library shall support prepared statement objects with late parameter binding } </tcl> <h2>8.0 Ductile Failure</h2> <tcl> sysreq S80000 {} { A common characteristic of digital systems (as opposed to analog systems) is that digital systems tend to be brittle. In other words, digital systems tend to work perfectly with no sign of stress until they fail utterly and completely. The behavior is like a physical object that holds its shape as external loads increase, until it shatters without warning.</p> <p>In most circumstances, ductile failure is preferred over brittle failure. A ductile device begins showing signs of trouble well in advance of failure. Physical objects bend and/or crack, providing operators with warnings of overload and an opportunity to take corrective action, while continuing to function for as long as possible.</p> <p>Digital systems have a reputation for being brittle, yet brittleness is not an intrinsic property of digital systems. Digital systems can be designed to continuing functioning outside their design parameters while providing operators with warning of possible trouble. But there most be focused effort on the part of the designers to make digital systems ductile. With analog systems, the ductileness tends to be inherent in the medium, but with digital systems ductileness needs to be explicitly added. } { SQLite shall exhibit ductile failure characteristics } sysreq S80100 {S80000} { SQLite strives to deal gracefully with anomalous behavior by the application or by its own internal subsystems. Yet graceful handling of out-of-band inputs is of no value if the anomaly goes unreported. The problems must be visible to the application so that warnings and alarms can be propagated to operators. The useful aspect of ductile failure is that it gives advance warning. Ductile behavior is of no use to anyone if nobody can see the part bending. } { SQLite shall make anomalies visible to the application } </tcl> <h2>9.0 Summary Of System Requirements</h2> <p>The foregoing contained both system requirements and explanatory text interspersed. The following is a reproduction of the system requirements without the explanatory text, as a convenient reference. The top-level system requirements are shown first, followed by lower-level system requirements that provide additional detail.</p> <h3>9.1 Top-level System Requirements</h3> <tcl> foreach {id derivedfrom text} $sysreq_list { if {[llength $derivedfrom]>0} continue hd_puts "<blockquote><b>$id:</b>" hd_resolve $text hd_puts </blockquote> } </tcl> <h3>9.2 Derived System Requirements</h3> <tcl> foreach {id derivedfrom text} $sysreq_list { if {[llength $derivedfrom]==0} continue hd_puts "<blockquote><b>$id:</b>" hd_resolve $text hd_puts </blockquote> } </tcl> |