Here are some more concepts that need to be understood for the software development environment:
Partnership for Systems Approaches to Safety and Security (PSASS) states:
Unsafe and insecure operations result from a lack of strong, effective control logic. More attention to detail should be spent on the flow of control inside a software process, and at its interfaces with other external processes.
Designing software typically involves four “translating” components to help move from ideas to software:
- Business/mission needs: unstructured, narrative, graphical, simulations – captures all requirements.
- Requirements modeling which involves three subcomponents:
- Nonfunctional requirements: broad characteristics of the system
- Functional requirements, finite tasks that the system must perform: inputs, behavior, outputs
- Emerging/emergent properties: properties of the system as a whole
- Design languages: help to translate requirements into overall systems design and control flows
Programming languages: the first formal ways to translate system designs into executable bits
Database models should have:
- Transaction persistence – durable transactions that do not change the state of the database.
- Fault tolerance/recovery – when data remains the same after a hardware/software failure.
- Rollback – incomplete transactions are backed out.
- Shadow – reapplies the transaction to a prior version of the database. Requires transaction logging.
- Sharing – data must be available to multiple users concurrently without impacting data or the environment’s integrity/availability.
- Security controls – controls in the category of confidentiality, access, integrity checks, availability, view definitions.
Hierarchical Database Management Model – has the following elements:
- Field values for each record
- Parent/child relationship using tree structures
- Restricted – only able to handle a single tree – cannot link among branches over multiple layers.
Network Database Management Model – organizes the data forming a network of data linkages. A record is also a row, typically in a relational database model.
Relational database model – organizes data in a series of tables.
- Table/relation – data structure.
- Values must be Atomic, having exactly one value.
- Tuple, or row. Primary keys refer to the identity of a particular tuple, such as customer ID. Customer ID can be a column header, or multiple columns.
- Foriegn key points to another table since the foreign key is the primary key of another table. Ensures referential/entity integrity.
- Has allowable data rules for integrity.
- Data manipulation agents that provide relational calculations and assignment operators.
Atomicity – transactions must have all steps completed before the transaction can be committed to the database.
ACID test – four categories of requirements for database environments:
- Atomicity – as noted above, requires completion of transactions or they are backed out.
- Consistency – allowing only transactions that keep the database and data in a valid state. Does not allow illegal transactions. If integrity constraints are not met, the transaction is rolled back to its previous valid state.
- Isolation – isolates the transactional data, keeping it invisible to other users until its completion.
- Durability – successful transactions are permanent
Online transaction processing – has two concerns:
Concurrency controls – prevent multiple users from modifying the same data when accessing at the same time. For example, if someone is purchasing the last book available from Barnes and Noble or Amazon, modification of the data can only happen when one of the users completes the purchase. At that point in time, ideally the other users would see an update to the item’s availability.
Atomicity – see above.