Web BuildingBeginner

Types of Software: From System to AI

Overview of different software categories - system software, applications, web, mobile, cloud, and AI systems.

2 hours
5 key concepts
2 in-depth sections
Official Docs

0 of 5 concepts completed (0%)

What You'll Learn

1.Software Categories

System Software manages hardware and provides platform for other software ``` Operating Systems: Windows, macOS, Linux, Android, iOS - Process management (scheduling CPU time) - Memory management (allocation and protection) - File system management - Device drivers (hardware abstraction)

Firmware: - Embedded in hardware (BIOS, microcontroller code) - Written in C/C++, direct hardware access - Extremely low latency, minimal resources

Device Drivers: - Bridge between OS and hardware - Graphics drivers, USB drivers, network drivers ```

Application Software software users interact with directly ``` Desktop Applications: Native: Electron, .NET WinForms/WPF, Qt, Java Swing Web-based: PWAs, browser extensions

Mobile Applications: Native iOS: Swift, SwiftUI Native Android: Kotlin, Jetpack Compose Cross-platform: React Native, Flutter (single codebase, near-native)

Web Applications: SPA (Single Page App): React, Vue, Angular runs in browser Server-rendered: Next.js, Nuxt, Rails, Django HTML from server Static sites: Gatsby, Astro pre-built HTML

Enterprise Applications: ERP: SAP, Oracle, 1C manage business processes CRM: Salesforce, HubSpot manage customer relationships WMS: Manhattan, Blue Yonder manage warehouse operations ```

Cloud Service Models ``` IaaS → PaaS → SaaS (increasing abstraction, decreasing control)

IaaS (Infrastructure as a Service): You manage: OS, runtime, apps, data Provider manages: hardware, networking, virtualization Examples: AWS EC2, Azure VMs, GCP Compute

PaaS (Platform as a Service): You manage: application code and data Provider manages: everything below your code Examples: Heroku, AWS Elastic Beanstalk, Google App Engine

SaaS (Software as a Service): You manage: configuration and your data Provider manages: everything Examples: Salesforce, Slack, Google Workspace, Shopify ```

2.Architecture Patterns by Software Type

Web Application Architecture ``` Client-Server (classic): Browser → HTTP → Web Server → Database Simple, stateless, works for most applications

Microservices: API Gateway → Service A, Service B, Service C Each service: owns its database, deploys independently Best for: large teams, complex domains, independent scaling

Serverless (FaaS): Event → Function → Response Pay per execution, no idle cost, auto-scales Best for: sporadic traffic, event-driven workflows Constraints: cold starts, execution time limits, stateless

Event-Driven: Producer → Event Bus → Consumer(s) Loose coupling, async processing Best for: complex business workflows, audit trails ```

Mobile App Architecture Patterns ``` MVC (Model-View-Controller): Model: data and business logic View: UI components Controller: mediates between model and view Used by: UIKit (iOS), Android traditional

MVVM (Model-View-ViewModel): Model: data View: UI (declarative) ViewModel: transforms model for view, handles state Used by: SwiftUI, Jetpack Compose, React

Clean Architecture: Entities → Use Cases → Interface Adapters → Frameworks Dependency rule: outer layers depend on inner, never reverse Highly testable, framework-independent Used by: large enterprise mobile apps ```

Code Example

// Software type examples

// 1. System Software (Operating System - simplified)
class OperatingSystem {
  constructor(name) {
    this.name = name;
    this.processes = [];
    this.memory = new Map();
  }
  
  launchProcess(processName) {
    const process = { id: Math.random(), name: processName };
    this.processes.push(process);
    return process;
  }
  
  allocateMemory(processId, size) {
    this.memory.set(processId, size);
  }
}

// 2. Application Software (Desktop App)
class TextEditor {
  constructor() {
    this.content = '';
    this.saved = true;
  }
  
  addText(text) {
    this.content += text;
    this.saved = false;
  }
  
  save(filename) {
    // Save to disk
    this.saved = true;
  }
}

// 3. Web Application
class WebApp {
  constructor() {
    this.users = [];
    this.data = [];
  }
  
  handleRequest(method, path, data) {
    if (method === 'GET') return this.fetchData(path);
    if (method === 'POST') return this.createData(path, data);
  }
}

// 4. Mobile App (conceptual)
class MobileApp {
  constructor() {
    this.screens = [];
    this.permissions = ['camera', 'contacts'];
  }
  
  requestPermission(permission) {
    return this.permissions.includes(permission);
  }
}

// 5. Cloud SaaS (Software as a Service)
class CloudApp {
  constructor() {
    this.tenants = new Map();
  }
  
  createAccount(email, organization) {
    const account = { email, org: organization, data: {} };
    this.tenants.set(email, account);
    return account;
  }
  
  // All users share same codebase, separate data
}

Pro Tips

  • 1Understanding software categories helps you make better architectural decisions. A SaaS product has fundamentally different requirements than embedded firmware different reliability guarantees, deployment models, and update cycles.
  • 2The cloud service model (SaaS/PaaS/IaaS) you choose dictates your operational responsibility. SaaS = use it. PaaS = deploy code. IaaS = manage everything except hardware.
  • 3Mobile-first doesn't mean 'also works on mobile'. It means designing for the constraints of mobile (limited battery, variable connectivity, smaller screen) first, then expanding to desktop.
  • 4Edge computing is where the next decade of software innovation is happening. Processing data closer to the source reduces latency from hundreds of milliseconds to single-digit milliseconds.

Topics Covered

Software TypesArchitectureFundamentals

Continue Learning

Explore the official documentation and deepen your knowledge with real-world practice.

Explore the Full Portfolio

This is the complete portfolio of Sufi Khan Sulaiman, a technology leader specialising in B2B commerce and digital automation. Start from the Home page for the overview, then move through two decades of career experience across FLIR Systems, Lorex Technology, and 1c Platform, and the full catalogue of project case studies spanning headless commerce migrations, AI recommendation engines, and multi-channel fulfilment systems.

The skills and certifications page maps the technical and leadership capabilities behind the work, while the articles and the knowledge base break down the thinking into actionable frameworks. For hands-on learning, the tutorials and applications sections cover practical builds from front-end fundamentals to full-stack web apps.

For consulting engagement, the expertise page outlines service offerings, the ecommerce hub covers platform architecture and automation strategy, and the ecommerce guide (PDF) is a downloadable 55-page field manual. When you are ready to talk, the contact page is the direct line.