hype

This is a course project for Penn State SWENG 837 Software System Design. The project domain is home automation. Submitted by Srinath Ramachandran.

Contents

  1. Use Case Analysis
  2. Domain Model
  3. Class Diagram
  4. Skeleton Classes
  5. Design Pattern and Use Descriptions
  6. Activity Diagram - Swimlane
  7. State Diagrams
  8. Component Diagram
  9. Deployment Diagram

Introduction

Modern homes are increasingly equipped with IoT devices (thermostats, lights, cameras, etc.), but users often face the following difficulties:

  1. Fragmented control across multiple apps and platforms
  2. Limited automation and interoperability
  3. Security and privacy concerns
  4. Financially restricted important features (pay more to get monitoring service, etc)

With hype, I aim to solve this by creating a unified, intelligent, and extensible smart home ecosystem that integrates diverse IoT devices for seamless automation, monitoring and control.

Business Requirements

Device Integration

Support for major IoT protocols, such as,

  1. Zigbee
  2. Z-Wave
  3. Wi-Fi

Unified Dashboard

Centralized control and monitoring from mobile/web apps.

Notifications & Alerts

Real-time updates for security, energy usage, etc.

User Roles

Admin, guest and child profiles with customizable permissions.

Target Users

  1. Homeowners seeking peace, convenience and security.
  2. Property managers wanting centralized control across multiple properties they help manage.

Business Goals

  1. Establish hype as a premium smart home platform.
  2. Drive adoption through partnerships with device manufacturers.
  3. Unlock revenue areas via premium features and integrations.
  4. Continuously stay on par with comparable veteran home automation systems in the market.

Non-functional Requirements

Performance

Scalability

Support thousands of devices per user across multiple locations

Response Times

Less than 200ms for local commands, less than 500ms for cloud-based actions.

Throughput

Handle concurrent requests from multiple users/devices

Security

Authentication

Multi-factor authentication (MFA) for user access

Encryption

End-to-end encryption for data at all times (active and passive)

Maintainability

Modular Architecture

Microservices design

Documentation

Developer guides, API references, and user manuals

Testing

Unit, integration and regression testing pipelines

Monitoring

Real-time system health and error tracking

Other Considerations

Interoperability

APIs and SDKs for third-party integrations

Accessibility

ADA (Americans with Disabilities Act) compliant UI/UX for inclusive design

Localization

Multi-language support for global reach

Offline Functionality

Local control fallback when internet is down