System Fundamentals and Computer Organization Overview

SYSTEM FUNDAMENTALS

Types of Testing Needed to be Done

Static Testing
  • Definition: Static testing involves verifying that the system includes all requirements set at the beginning of the project.

  • Purpose: To ensure requirements are met during development stage.

Dynamic Testing
  • Definition: Dynamic testing entails running the code to check for mistakes.

  • Purpose: To validate that the completed system meets the defined requirements.

Testing Phases
  • Alpha Testing:

    • Conducted when developers first create the system.

    • Not open to the public.

    • Structured engagements to find any bugs before wider release.

  • Beta Testing:

    • Conducted after alpha testing is complete.

    • Often involves a select group from the public to try the system under real conditions (e.g., entering wrong information).

Black Box vs. White Box Testing
  • Black Box Testing:

    • The tester does not need to know internal workings of the system.

    • Testing focuses on input/output of the software.

    • Often done by independent software testers.

  • White Box Testing:

    • The tester has full knowledge of the internal structures of the application.

    • Involves testing algorithms and logic by developers.

User Acceptance Testing (UAT)
  • Definition: This is the end-user testing to ensure that the software meets their needs.

  • Focus Areas:

    • Font style, navigation, intuitiveness of the interface.

Functional Testing
  • Definition: Tests the individual commands of the software to ensure they operate correctly.

Data Testing
  • Definition: Checks whether data inputs meet the defined requirements.

  • Consideration: Differentiate between types of data (e.g., abnormal, normal).

User Documentation

  • Purpose: Provides users with information on the features available in the system, typically available in:

    • Manuals

    • Booklets

    • Online help features

User Training

  • Methods of Teaching Users:

    • In-person classes where users can ask questions.

    • Online training methods that are cost-effective.

    • Self-instruction materials.

Automated Testing
  • Definition: Testing processes that are automated to improve efficiency and effectiveness.

Data Loss and Prevention

Causes of Data Loss
  • Hardware/System Malfunctions

  • Human Error

  • Software Corruption (e.g., by a virus)

  • Natural Disasters

Strategies to Prevent Data Loss
  • Backup/Failover Systems: Protects against data loss due to failures.

  • Redundancy: Ensures reliability by having multiple systems in place.

  • Removable Media: Use external devices (USBs, disks) for data storage.

  • Offsite/Online Storage: Save data in the cloud or remote servers for additional security.

  • Physical Security Measures: Authorized access controls in private rooms.

Requirements from Stakeholders

  • Direct Observation: Observing how the system functions in real-world scenarios.

  • Interviews: Engaging with users can provide in-depth insights though can be costly.

  • Surveys: Quick and cost-effective method but may yield low engagement from users.

Prototypes
  • Definition: An abstract representation of the end product, used for gathering feedback from stakeholders.

  • Iteration Process: A cyclical process involving testing, analyzing results, and refining the product.

Software Development Processes

  • Release: The deployment of the system for users.

  • Update: Routine maintenance that includes fixing bugs and addressing security vulnerabilities.

    • Patch: A temporary fix between full releases.

Usability
  • Definition: Evaluates how effective and efficient the software is to use, including factors like navigation and error prevention.

Accessibility
  • Definition: Measures how easily people can use software, particularly in regard to individuals with disabilities.

  • Examples of Accessibility Features:

    • Voice recognition

    • Text dictation

    • Touchscreen capabilities

    • Braille keyboards for the blind

    • Auto-completion features.

COMPUTER ORGANIZATION

Computer Systems Components

  • Definition: Comprises both hardware and software components.

  • Model: Input, Process, Output, and Storage (IPOS) Framework.

Hardware
  • Definition: Physical components of a computer system.

  • CPU (Central Processing Unit):

    • Responsible for processing data, performing arithmetic, logical, and basic input/output operations.

    • Follows the instructions to retrieve data from primary memory.

Basic Information Units
  • Bit: Basic unit of information (binary digit).

  • Bytes: 1 byte (B) = 8 bits (b).

CPU Components
  • Control Unit (CU):

    • Manages the CPU’s operation by directing its instruction sequence.

    • Contains registers that temporarily hold data.

  • Arithmetic Logic Unit (ALU):

    • Carries out all basic arithmetic and logical operations.

  • Memory Registers:

    • Memory Address Register (MAR): Holds memory address of the data for ALU operations.

    • Memory Data Register (MDR): Stores data being used by ALU.

  • Data Bus: A pathway for transferring data between memory, ALU, and registers in both directions.

Types of Memory

  • RAM (Random Access Memory):

    • Stores instructions and data temporarily.

    • Information is stored in memory locations which can be accessed at any time.

  • ROM (Read-Only Memory):

    • Contains permanent instructions, can only be read but not changed.

    • Examples include firmware in electronic devices.

  • Primary Memory Types:

    • Cache Memory: Stores frequently used information for rapid access to enhance performance.

    • Dynamic RAM (DRAM): Standard RAM used for typical applications.

    • Static RAM (SRAM): Faster and more expensive than DRAM.

Instruction Cycle in CPU

  • Machine Instruction Cycle: Four main phases:

    • Fetch: Retrieving instructions from memory.

    • Decode: Interpreting the fetched instruction.

    • Execute: Performing the operation dictated by the instruction.

    • Store: Writing results back to memory.

Memory Characteristics

  • Primary Memory: Volatile; loses data when power is turned off. Faster but generally more costly compared to secondary memory.

  • Secondary Memory: Non-volatile. Retains data when powered off and slower compared to RAM.

Secondary Memory Examples
  • CD-RW and DVD-RW: Storage medium for larger files (700MB and up to 10GB respectively).

  • USB and Other Storage Media: Utilized for data transfer and storage purposes.

Operating System (OS)
  • Definition: A set of software that manages computer hardware and software resources while providing services to application software.

  • Main Functions:

    • Peripheral Communication: Enables interface between external devices.

    • Memory Management: Allocates memory and prevents overwriting.

    • Resource Monitoring and Multitasking: Manages system resource usage for multiple processes.

    • Networking: Facilitates communication with other systems.

    • Disk Access and Data Management: Handles data transfers between components.

    • Security Measures: Protects against unauthorized access.

Software Applications
  • Types of Software Applications:

    • Word Processors: (e.g., Microsoft Word)

    • Spreadsheets: (e.g., Microsoft Excel)

    • Database Management Systems: (e.g., SQL)

    • Web Browsers: Used to access content on the internet.

User Interfaces
  • GUI vs. CLI:

    • Graphical User Interface (GUI): Easier for the average user, involves visual elements.

    • Command Line Interface (CLI): Faster, more complex, better suited for advanced users.

DATA REPRESENTATION

Binary System

  • Definition: The binary system uses 0 and 1 to represent data, with each individual value represented by a single binary digit (bit).

  • Complex Data Representation: Sequences of bits can represent more complex forms of data.

Bit Representation Formula
  • Formula: The number of different representations for binary data can be calculated as 2n2^n, where nn is the number of bits used.

Standard Formats
  • American Standard Code for Information Interchange (ASCII): Character encoding scheme originally based on English alphabet, now commonly extended to 8 bits for additional characters.

Logic Gates

  • Simple Logic Gates:

    • AND Gate: Output is true only if both inputs are true.

    • OR Gate: Output is true if at least one of the inputs is true.

    • NOT Gate: Outputs the opposite value of its input.

    • NAND, NOR, XOR Gates: Variants that allow for complex decision-making based on binary conditions.

NETWORKS

Networking Models

Client-Server Model
  • Definition: A centralized structure where clients request services and servers provide them.

Peer-to-Peer Model (P2P)
  • Definition: A decentralized network model in which each computer can act as both client and server, sharing resources.

Types of Networks

  • Local Area Network (LAN): Connects computers in a limited space, faster and more secure.

  • Wireless LAN (WLAN): Network without wires, accessible anywhere but may have connection issues.

  • Virtual LAN (VLAN): Network partitioning within a LAN structure for better performance.

  • Wide Area Network (WAN): Connects computers over larger geographical areas, slower and more costly.

  • Storage Area Network (SAN): Specializes in providing storage access to various servers.

  • Intranet: Private network inaccessible to outsiders.

  • Internet: The global WAN that connects millions of computer systems.

  • Extranet: An intranet accessible to outside users.

Importance of Standards

  • Definition: Standards in networking facilitate communication and interoperability among systems and devices.

  • Key Organizations: IEEE and IETF set guidelines for network communications.

Layered Networking Model

  • Network Layers:

    1. Application Layer: connects various services and clients.

    2. Presentation Layer: formats data for transmission.

    3. Session Layer: manages sessions between users.

    4. Transport Layer: ensures data is segmented and delivered.

    5. Network Layer: routes packets across networks.

    6. Data Link Layer: handles error correction and flow.

    7. Physical Layer: transmits binary data over physical media.

OBJECT-ORIENTED PROGRAMMING (OOP)

Fundamental Concepts

  • Class: A blueprint defining the properties and behaviors of objects.

  • Object: An instantiated entity based on a class.

  • UML Diagram: Visual representation of a class, showing attributes and methods.

Key OOP Terminology
  • Encapsulation: Bundles data and methods in a single unit, restricting access to internal states.

  • Abstraction: Hiding complex reality while exposing only the necessary parts.

  • Inheritance: Mechanism by which one class can inherit the attributes and methods of another class.

  • Polymorphism: Ability to present the same interface for different data types.

UML Class Diagrams

  • Structure: Attributes and methods displayed in a three-tier format; relationships represented by arrows.

    • Example Class: Vehicle

    • Attributes: int wheels, String brand, int year

    • Methods: goForward(int d), goBackward(int d), boolean stopMoving().

Relationships in UML
  • Association: Cardinality between objects.

  • Dependency: One object depends on another.

  • Aggregation: One object contains another, and the contained object can exist independently.

  • Composition: A strong form of aggregation where contained objects are dependent on the parent.

Programming Concepts

  • Parameters vs. Arguments: Parameters define input variables in functions, while arguments are the actual values passed.

  • Access Modifiers: Control accessibility of data and methods (private, protected, public).

  • Static Members: Attributes or methods shared across all instances of a class.

Constructors and Methods
  • Constructor: Special method called when an object is created to initialize its attributes.

  • Accessors and Mutators: Methods that retrieve or modify the values of object properties respectively.

Array Example

  • Declaration: dataType[] arrayName;

  • Instantiation: arrayName = new dataType[arraySize];

  • Looping through Arrays: For operational tasks like summing elements or finding minimum values.

Example Implementation
  • Demonstrates creation and manipulation of arrays in Java methodology. An example could involve calculating sums and minimum values in a defined range.

Control Structures
  • For Loops: Classic loop structures utilized in iterations.

  • While Loops: Similar to for loops but with different structuring for conditions.

  • Do-While Loops: Guarantee the loop runs at least once, evaluating condition at the end.

Conclusion

  • Purpose of OOP: Offers clarity and structure by allowing modularity, reusability, and efficient management of complex systems. However, for simpler tasks, it may introduce unnecessary complexity.