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 , where 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:
Application Layer: connects various services and clients.
Presentation Layer: formats data for transmission.
Session Layer: manages sessions between users.
Transport Layer: ensures data is segmented and delivered.
Network Layer: routes packets across networks.
Data Link Layer: handles error correction and flow.
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 yearMethods:
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.