System Requirements: Types, Characteristics, and Documentation

What is a Requirement?

A requirement is a necessary attribute in a system, representing an ability, characteristic, or quality factor beneficial to customers or end users. It describes a condition or capability a system must meet, derived from user needs, contracts, standards, or specifications.

  • Requirements Types

Software requirements fall into two categories: functional and non-functional.

Functional requirements define system functions, describing input-to-output transformations.

Non-functional requirements relate to system characteristics, such as performance, user interfaces, reliability, maintainability, security, portability, and standards.

  • Characteristics of a Requirement

A requirement should be:

Specified in writing: Like a contract or agreement.

Verifiable: It must be possible to prove or verify its fulfillment.

Concise: Easy to read and understand.

Complete: Sufficiently detailed without needing further explanation.

Consistent: Non-contradictory with other requirements.

Unambiguous: Having a single interpretation.

Standardization

Standardization means using consistent symbols in flowcharts and standardized forms for documentation. While standards vary, organizations should use a single method. This ensures clear communication, reduces training costs, and improves storage efficiency.

Benefits of Standardization

  • Aids training of new personnel.
  • Useful for system maintenance.
  • Helps in system integration.
  • Ensures correct system operation.
  • Efficient resource utilization.

Basic Documentation Standards

System documentation, whether manual or computer-based, should be:

  • Clearly labeled, well-organized, and indexed.
  • Diagrams should be clear and legible.
  • Documentation must be complete.
  • Include a legend and term explanations.
  • Kept current.

Documentation Standards

Good documentation is crucial for design and maintenance. It should be accurate, complete, and instructive. A documentation package typically includes:

1. Circuit Specification: Describes what the circuit or system should do, including inputs, outputs, and functions.

2. Block Diagram: A pictorial description of the system’s functional modules and interconnections.

3. Schematic Diagram: A formal specification of the electrical system, including interconnections and build details. It can generate a bill of materials (BOM).

4. Timing Diagram: Shows signal values over time, including delays and critical signals.

5. Structured Logic Device Description: Indicates the internal function of PLDs, FPGAs, or ASICs, often using hardware description languages (HDLs) like VHDL or ABEL.

6. Circuit Description: A narrative explaining how the circuit works internally, including assumptions, potential failures, and design tricks. It should define acronyms and specialized terms and reference related documents.

Block Diagrams

Block diagrams (or flow diagrams) are languages for describing algorithms. They use symbols to represent operations, data, and variables, reducing reliance on natural language.

9k =

Schematic Drawing

Logical and schematic diagrams show gates in their “normal” positions, with inputs on the left and outputs on the right. Larger-scale logic elements are drawn similarly.

Drawing

Timing Diagrams

A timing diagram shows a digital circuit’s signal behavior over time. They are essential for documenting digital systems, explaining signal timing relationships, and defining external signal timing requirements.

Evolution of microprocessors (INTEL-AMD). 80486 Basic Architecture

Fig No. 3.5.c, memory read delay of 80486