# 1 Introduction
[NULL]

## 1.1 Purpose
This document specifies the requirements for the development of a “Smart House” system, called DigitalHome (DH). The system is a home management system that allows residents to manage their daily lives by providing a lifestyle that brings together security, environmental and energy management (temperature, humidity, and lighting), entertainment, and communications.

This initial version of DigitalHome will be a limited prototype. Its purpose is to allow HomeOwner management to make business decisions about the future commercial development of DigitalHomeOwner products and services.

## 1.2 Scope
The software product to be produced is a limited prototype version of a smart house system called DigitalHome (DH).

The DigitalHome system will allow a home user to manage devices that control the environment of a home. The scope of this prototype is limited to the management of devices which control temperature, humidity, security, and power to small appliances and lighting units, through the use of a web-ready device. The prototype software system will be situated in a simulated environment where all sensors and controllers will be simulated.

The application is a home management system that allows residents to easily manage their daily lives by providing a lifestyle that brings together security with environmental and energy management. The primary objective of this prototype is to allow HomeOwner Inc. management to make business decisions about the future commercial development of DigitalHome products and services.

This specification is based on the DigitalHome Customer Need Statement and the Digital Home High Level Requirements Definition [HLRD 2010].

## 1.3 Product overview
[NULL]

### 1.3.1 Product perspective
The DigitalHome (DH) system is a home management system that allows a home user to manage devices that control the environment of a home. The software is one component of the larger DH system, which also consists of household devices (e.g., a heating and air conditioning unit, a security system, small appliances, and lighting units), sensors and controllers for the devices, and communication links between the components. This software requirements specification is based on the DigitalHome Customer Need Statement and the Digital Home High Level Requirements Definition [HLRD 2010].

The product is a limited prototype version that will be used to make business decisions about future commercial development. The prototype DH software system will be situated in a simulated environment where all sensors and controllers will be simulated.

#### System interfaces
The DH software system interfaces with various sensors and controllers in the home via a DH Gateway device. These include:
*   Digital programmable thermostats
*   Digital programmable humidistats
*   Magnetic alarm contact switches
*   Security sound and light alarms
*   Digital programmable power switches

#### User interfaces
The user communicates with the system through a personal web page on the DigitalHome web server or on a local home server. This web interface is accessible via a web-ready computer, cell phone, or PDA. Users are expected to be familiar with simple web operations such as logging in, browsing web pages, and submitting information and requests.

#### Hardware interfaces
The software interfaces with the following hardware elements:
*   A DH home web server hosted on a home computer.
*   A DH Gateway device that connects to a broadband Internet connection and contains an RF Module for wireless communication with other devices.
*   Environmental sensors and controllers, including thermostats, humidistats, contact switches, alarms, and power switches.

#### Software interfaces
*   The system shall provide for authentication and information encryption through a recognized, reliable, and effective security technology, such as Transport Layer Security.
*   The development will use object-oriented methods with UML 2.0.
*   The project will employ widely used, accepted, and available software technology and standards.

#### Communications interfaces
*   The system requires a broadband Internet connection from an Internet Service Provider (ISP), such as a cable modem or high-speed DSL.
*   The DH Gateway device uses wireless communication to send and receive signals between the gateway and the other DigitalHome devices (sensors and controllers). The gateway shall operate up to a 1000-foot range for indoor transmission.

#### Memory constraints
[N/A]

#### Operations
*   Users can monitor and control home devices, create and modify monthly plans for environmental settings, and override planned settings.
*   A Master User or DH Technician can perform system configuration, including setting system parameters, establishing user accounts, and starting and stopping the system.
*   The system will perform a daily backup of all system data, including configuration, default parameter settings, planning, and usage data.
*   In case of system failure, a recovery mechanism shall restore system data from the most recent backup.

#### Site adaptation requirements
A DH Technician is responsible for the initial setup and configuration of a DH system at a specific site. This includes setting system parameters and establishing user accounts.

#### Interfaces with services
The system requires an Internet Service Provider (ISP) for internet connectivity.

### 1.3.2 Product functions
The DigitalHome (DH) system will provide the following major functions:

*   **Environmental Control:** The system shall allow a user to monitor and control the home's temperature and humidity. This includes reading current values from thermostats and humidistats and setting desired levels for these devices.
*   **Security Management:** The system shall manage door and window contact sensors. Upon detecting a security breach, it will activate sound and light alarms.
*   **Appliance and Lighting Control:** The system shall allow a user to manage small appliances and lighting units by turning them on or off via power switches.
*   **Remote Access and Control:** Users shall be able to monitor and control all connected home devices remotely through a personal web page accessible from a web-ready computer, cell phone, or PDA.
*   **Planning and Scheduling:** The system shall provide a planner for users to create and modify monthly schedules that specify preset environmental parameters (temperature, humidity, security contacts, and appliance/light status) for different time periods.
*   **Reporting:** The system shall be able to generate monthly reports on the management and control of the home, including historical data on temperature, humidity, security breaches, and system operational status.

A Use Case Model provides a more detailed overview of the system functionality and shows the relationships between the DigitalHome System entities.

### 1.3.3 User characteristics
The system has two primary user roles: DigitalHome Users and DigitalHome Technicians.

*   **DigitalHome User**
    *   A general user is familiar with the layout of their home and the location of sensor and control devices.
    *   A general user is not familiar with the technical features of the DigitalHome system but is familiar with using a web interface for simple operations such as logging in, browsing web pages, and submitting information.
    *   A designated Master User has the same rights as a DigitalHome Technician and can change the system's configuration, such as adding user accounts or changing default parameter settings.

*   **DigitalHome Technician**
    *   A technician is responsible for setting up and maintaining the configuration of a DigitalHome system.
    *   A technician has experience with the type of hardware, software, and web services associated with the system.
    *   A technician is specially trained by DigitalHomeOwner to be familiar with the functionality, architecture, and operation of the system.
    *   A technician has rights beyond a general user, including setting system parameters, establishing user accounts, and starting and stopping the system.

Information regarding the educational level or potential disabilities of users is not specified in the source document.

### 1.3.4 Limitations
*   The DigitalHome system specified in this document is a limited prototype version intended to inform business decisions, not a comprehensive specification for a commercial product.
*   The prototype system will be situated in a simulated environment. There will be no actual physical home, and all sensors and controllers will be simulated.
*   The system requires a broadband Internet connection from a third-party Internet Service Provider (ISP).
*   The system must adhere to the standards, policies, and procedures of the American Society of Heating, Refrigerating and Air-Conditioning Engineers (ASHRAE).
*   Development must use object-oriented methods with UML 2.0, and adhere to specified IEEE standards and the HomeOwner Coding Standard.
*   The Gateway device has an operational range of up to 1000 feet for indoor transmission; sensors and controllers must be within this range to communicate with the system.
*   The thermostat's temperature sensor has a sensitivity range between 14°F and 104°F (-10°C and 40°C).
*   The system is limited to managing the following maximum number of devices:
    *   Eight thermostats
    *   Eight humidistats
    *   Fifty door and window contact sensors
    *   One sound alarm and one light alarm subsystem
    *   One hundred 115 volt, 10 amp power switches
*   User-configurable set points are limited to the following ranges:
    *   Temperature: 60°F to 80°F
    *   Humidity: 30% to 60%
*   The system must achieve a reliability of no more than one failure per 10,000 hours of operation.
*   Historical data for reports is only retained for the past two years.
*   System access requires user authentication, and communications must be encrypted using a recognized technology such as Transport Layer Security.

## 1.4 Definitions
- **ASHRAE**: American Society of Heating, Refrigerating and Air-Conditioning Engineers.
- **Authentication**: Any process by which it is verified that someone is who they claim they are. This typically involves submission and verification of a username and a password.
- **Broadband Internet**: A high data rate Internet access, typically contrasted with slower dial-up access.
- **DH (Digital Home)**: The name of the prototype smart home product that is to be produced by DigitalHomeOwner.
- **DigitalHomeOwner**: The division of HomeOwner Inc. responsible for producing DigitalHome products.
- **DSL (Digital Subscriber Line)**: A family of technologies that provides digital data transmission over the wires of a local telephone network.
- **Encryption**: The process of transforming information (referred to as plaintext) using an algorithm (called a cipher) to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key.
- **FAQ**: Frequently asked question.
- **Gateway Device**: A home networking device used to connect devices in the home to the Internet or other Wide Area Networks.
- **HomeOwner Inc.**: The largest national retail chain serving the needs of home owners in building, furnishing, repairing, and improving their homes.
- **HVAC**: Heating, Ventilation and Air Conditioning.
- **Humidistat**: An instrument that measures and controls relative humidity.
- **ISP**: Internet Service Provider.
- **PDA**: Personal Digital Assistant.
- **RF**: Radio Frequency.
- **Security Breach**: An external act that bypasses or contravenes the digital home security system. For example, if an intruder opens a door where the contact sensor is set to “on”, the system will sense a ‘security breach”.
- **Set Point**: A numeric value that establishes the desired value of an environmental quality (e.g., a temperature value of 70° F).
- **SRS**: Software Requirements Specification.
- **Transport Layer Security**: Cryptographic protocols that provide security for communications over networks such as the Internet.

# 2 References
[ASHRAE 2010] Website for American Society of Heating, Refrigerating and Air-Conditioning Engineers, accessed October 2010, http://www.ashrae.org/ .

[HLRD 2010] DigitalHomeOwner Division, Digital Home High Level Requirements Definition, Homeowner Inc., September 2010.

[HO2010] Digital Home Use Case Model, HomeOwner Inc, DigitalHomeOwner Division, October 24, 2010.

[HO2305] Sykes, J., and Rook, R., Guidelines for Developing HomeOwner Technical Reports, HO2305., Homeowner Inc., March 2002.

[HO4710] Kramer, S., HomeOwner Coding Standard, HO4710.,Homeowner Inc., August 2009.

[IEEE830] IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifications, Institute of Electrical and Electronics Engineers, Inc., 1998.

[IEEE 1008] ANSI/IEEE Std 1008-1987, IEEE Standard for Software Unit Testing, Institute of Electrical and Electronics Engineers, Inc., 1987.

[IEEE 1012] IEEE Std 1012-2004, IEEE Standard for Software Verification and Validation, Institute of Electrical and Electronics Engineers, Inc., 2004.

[IEEE1016] IEEE Std 1016-2009, IEEE Standard for Information Technology - Systems Design - Software Design Descriptions, Institute of Electrical and Electronics Engineers, Inc., 2009.

[IEEE1028] IEEE Std 1028-2008, IEEE Standard for Software Reviews and Audits, Institute of Electrical and Electronics Engineers, Inc., 2008.

[Meyer 2004] Meyer, G., Smart Home Hacks: Tips & Tools for Automating Your House, O’Reilly, 2004.

# 3 Requirements
[NULL]

## 3.1 Functions
### 3.1.1 General Functions
The DigitalHome System shall allow a user with a web-ready computer, cell phone, or PDA to control a home's temperature, humidity, lights, security, and the state of small appliances. The communication center of the system shall be a home web server, through which a user can monitor and control home devices. Using wireless communication, sensor values shall be read and saved in the home database, and controller values shall be sent to controllers to change the home environment.

### 3.1.2 User and Account Management
The system shall provide for the establishment of a DigitalHome user account upon installation. Log in to an account shall require the entry of an account name and a password for authentication.

### 3.1.3 Thermostat Control
*   The system shall allow a user to monitor and control a home’s temperature from any location.
*   A user shall be able to read the temperature at a thermostat's position.
*   A user shall be able to set thermostat temperatures to between 60°F and 80°F, inclusive, at one-degree increments.
*   The system shall support up to eight thermostats, which may be controlled individually or collectively.
*   For each thermostat, a user can schedule up to twenty-four one-hour settings per day for every day of the week.
*   If a user makes a manual temperature setting on a thermostat device, the setting shall remain in effect until the end of the planned or default time period, at which time the planned or default setting will be used for the next time period.
*   The system shall support both Fahrenheit and Celsius temperature values.

### 3.1.4 Humidistat Control
*   The system shall allow a user to monitor and control a home’s humidity from any location.
*   A user shall be able to read the humidity at a humidistat's position.
*   A user shall be able to set the humidity level for a humidistat from 30% to 60%, inclusive, at 1% increments.
*   The system shall support up to eight humidistats.
*   For each humidistat, a user can schedule up to twenty-four one-hour settings per day for every day of the week.
*   If a user makes a manual setting on a humidistat device, the setting shall remain in effect until the end of the planned or default time period, at which time the planned or default setting will be used for the next time period.

### 3.1.5 Security System Control
*   The system shall manage up to fifty door and window contact sensors.
*   The system shall be able to activate both light and sound alarms.
*   When a security breach occurs and a contact sensor is set to OPEN, the alarm system shall be activated.

### 3.1.6 Appliance Control
*   The system shall provide for the management of a home’s small appliances and lighting units by allowing a user to turn them on or off.
*   The system shall manage up to one hundred 115 volt, 10 amp power switches.
*   The system shall provide information about the state of a power switch (OFF or ON).
*   The system shall be able to change the state of a power switch from OFF to ON, or ON to OFF.
*   If a user manually changes the state of a power switch device, the device shall remain in that state until the end of the planned or default time period, at which time the planned or default setting will be used for the next time period.

### 3.1.7 Planning and Reporting
*   The system shall provide a planner for a user to direct the system to set various preset home parameters (temperature, humidity, security contacts, and appliance/light status) for certain time periods.
*   The system shall provide a monthly planner. For a given month and year, a user shall be able to create or modify a month plan that specifies environmental parameter settings for each day, for up to four daily time periods.
*   A user shall be able to override planned parameter values through the DH website or manually on household devices.
*   For a given month and year in the past two years, the system shall be able to provide a report on the management and control of the home.
*   The month report shall contain daily average, maximum (with time), and minimum (with time) values of temperature and humidity for each thermostat and humidistat, respectively.
*   The month report shall provide the day and time for which any security breaches occurred when the security alarms were activated.
*   The month report shall indicate the periods of time when the DH System was not in operation.

### 3.1.8 Error Handling and Recovery
*   All system operations shall incorporate exception handling so that the system responds to a user with a clear, descriptive message when an error or an exceptional condition occurs.
*   The system shall back up all system data (configuration, default parameter settings, planning, and usage data) on a daily basis.
*   If the system fails (due to power loss, loss of internet access, or other software or hardware failure), a recovery mechanism shall restore system data from the most recent backup.

## 3.2 Performance requirements
*   Displays of environmental conditions such as temperature, humidity, contact sensors, and power switches shall be updated at least every two seconds.
*   Sensors for temperature, humidity, contact, and power state shall have a minimum data acquisition rate of 10 Hz.
*   An environmental sensor or controller device must be within 1000 feet of the master control device to communicate with the system.
*   The system shall be able to manage up to eight thermostats.
*   The system shall be able to manage up to eight humidistats.
*   The system shall be able to manage up to fifty door and window contact sensors.
*   The system shall be able to manage up to one hundred power switches for small appliances and lighting.
*   The system shall be able to provide monthly reports on home management and control for any month in the past two years.

## 3.3 Usability requirements
The system shall be usable by a general user who is familiar with the use of a web interface and can perform simple web operations (logging in and logging out, browsing web pages, and submitting information and requests via a web interface), but is not familiar with the technical features of the DigitalHome system.

All DigitalHome operations shall incorporate exception handling so that the system responds to a user with a clear, descriptive message when an error or an exceptional condition occurs.

The DigitalHome System shall provide users with online documentation about the system installed in their home. The user documentation shall include the following:
*   An FAQ section with a set of “Frequently Asked Questions” about use and maintenance of the DigitalHome System.
*   A section that explains how DigitalHome parameters are set and sensor values are read. This shall include information on limitations and constraints on parameter settings and sensor reading accuracy.
*   A section that describes how to use the DigitalHome Planner.

## 3.5 Logical database requirements
The DigitalHome system shall maintain a home database on the home web server for storing user, configuration, and operational data.

The logical requirements for this database are as follows:
*   **Types of Information:** The database shall store the following types of information:
    *   User account information, including account names and passwords.
    *   System configuration and default parameter settings.
    *   User-created monthly plans, which specify environmental parameter settings (temperature, humidity, contact sensors, power switches) for up to four daily time periods.
    *   Current sensor values from thermostats, humidistats, contact sensors, and power switches.
    *   Historical usage data for reporting, including daily average, maximum, and minimum values for temperature and humidity with timestamps, and timestamps for any security breaches.
*   **Frequency of Use:**
    *   Sensor values shall be acquired at a minimum rate of 10 Hz and saved to the database.
    *   Displays of environmental conditions shall be updated from the database at least every two seconds.
    *   All system data (configuration, settings, planning, and usage data) shall be backed up on a daily basis.
*   **Accessing Capabilities:**
    *   General users shall be able to read sensor data and create or modify their own plans.
    *   A Master User and a DH Technician shall have rights to establish and maintain user accounts and change system configuration and default parameter settings.
*   **Data Entities and Their Relationships:**
    *   The system shall manage data entities for user accounts, plans, and devices.
    *   Each user account can have associated plans.
    *   Each plan contains settings for multiple devices (thermostats, humidistats, sensors, switches) for specified time periods.
    *   Devices generate historical data, such as sensor readings and security breach events, which are logged for reporting.
*   **Integrity Constraints:**
    *   Thermostat temperature settings must be between 60°F and 80°F, inclusive.
    *   Humidistat humidity settings must be between 30% and 60%, inclusive.
*   **Security:**
    *   Access to user account information shall be protected by an account name and password.
    *   The system shall use a recognized security technology, such as Transport Layer Security, for authentication and information encryption.
*   **Data Retention Requirements:**
    *   The system shall retain historical data on temperature, humidity, and security breaches for at least the past two years to support reporting functions.
    *   In case of system failure, data shall be restored from the most recent daily backup.

## 3.6 Design constraints
*   The system shall adhere to the standards, policies, and procedures of the American Society of Heating, Refrigerating and Air-Conditioning Engineers [ASHRAE 2010].
*   The development process shall use IEEE standards [IEEE830, IEEE1008, IEEE1016, IEEE1028] and the HomeOwner Coding Standard [HO4710].
*   Object-oriented development, using UML 2.0, is the designated method for software development.
*   The development team shall use the development process specified by DigitalHomeOwner Inc.
*   The project shall employ widely used, accepted, and available hardware and software technology and standards for both product elements and development tools.
*   All modules and components of the prototype version shall be designed and implemented in such a manner that they may be incorporated in a fully specified commercial version of the DigitalHome System.
*   All system documents shall use the Homeowner document format [HO2305].
*   The prototype must be completed within twelve months of inception by a development team of five engineers.
*   The cost of DigitalHome elements (sensors, controllers, server, tools, etc.) for this project should be minimized.

## 3.7 Software system attributes
### Reliability
The DigitalHome System must be highly reliable with no more than 1 failure per 10,000 hours of operation.

All DigitalHome operations shall incorporate exception handling so that the system responds to a user with a clear, descriptive message when an error or an exceptional condition occurs.

### Availability
The Digital Home System shall incorporate backup and recovery mechanisms.

The system will backup all system data (configuration, default parameter settings, planning, and usage data) on a daily basis. The backup time is set by the DH Technician at system set up.

If the system fails due to power loss, loss of internet access, or other software or hardware failure, the system recovery mechanism shall restore system data from the most recent backup.

### Security
Upon installation, a DigitalHome user account shall be established.

The DigitalHome web system shall provide for authentication and information encryption through a recognized reliable and effective security technology, such as Transport Layer Security.

Log in to an account shall require entry of an account name and a password.

### Maintainability
The development of the system shall use methods and techniques to support system maintenance, including:
*   Documentation of requirements, design, and code.
*   Use of abstraction, information hiding and module independence in system design.
*   Use of IEEE standards and the HomeOwner Coding Standard.

All modules and components of the prototype version shall be designed and implemented in such a manner that they may be incorporated in a fully specified commercial version of the DigitalHome System.

### Portability
[N/A]

## 3.8 Supporting information
A supplementary document, the Digital Home Use Case Model [HO2010], provides additional detail, an overview of the system functionality, and shows the relationships between the DigitalHome System entities.

As part of the final project report, the development team is required to describe their efforts to minimize costs, including price comparisons between DigitalHome elements and comparable/competitive elements.

The DigitalHome system is intended to solve the problem of allowing home residents to easily manage their daily lives by providing a unified system for security, environmental and energy management (temperature, humidity, and lighting), and control of small appliances.

Sample input/output formats, results of user surveys, and special packaging instructions are not specified in this document.

The SRS does not explicitly state whether these information items are to be considered part of the requirements.

# 4 Verification
[NULL]

## 4.1 Functions
All functional requirements will be verified through system testing and acceptance testing. The testing will be conducted in a simulated environment where the physical home, sensors, and controllers are simulated. This simulated environment will be realistic and adhere to the physical properties and constraints of an actual home and real devices. Software unit testing will be conducted in accordance with the IEEE 1008 standard.

## 4.2 Performance requirements
[N/A]

## 4.3 Usability requirements
[N/A]

## 4.5 Logical database requirements
Verification shall be performed to ensure the system correctly stores, retrieves, and manages all required data as specified.

*   **Types of Information:** Tests shall be conducted to verify that the database can store and retrieve all specified information types. This includes user accounts, system configuration, default parameter settings, monthly plans, and historical usage data such as sensor values and security breach logs. Verification will be performed by using system functions to create and read the data, followed by inspection of the database.
*   **Frequency of Use:** [N/A]
*   **Accessing Capabilities:** [N/A]
*   **Data Entities and Their Relationships:** [N/A]
*   **Integrity Constraints:** [N/A]
*   **Security:** User account authentication shall be tested by attempting to log in with both valid and invalid credentials. Network traffic analysis shall be used to verify that sensitive information is encrypted during transmission as required.
*   **Data Retention Requirements:** The monthly reporting function shall be tested to verify it can generate reports using data from the past two years. This test will involve populating the database with historical data of various ages and confirming the report output is correct. The daily backup and recovery mechanism shall also be verified by triggering a backup, simulating a system failure, executing the recovery procedure, and inspecting the restored system data for completeness and correctness.

## 4.6 Design constraints
- Adherence to the standards of the American Society of Heating, Refrigerating and Air-Conditioning Engineers (ASHRAE) will be verified. [N/A]
- Adherence to specified IEEE standards and the HomeOwner Coding Standard will be verified through software reviews, audits, and unit testing conducted in accordance with IEEE 1028 and IEEE 1008.
- Adherence to the Homeowner document format and archival requirements will be verified. [N/A]
- The use of object-oriented development with UML 2.0 will be verified. [N/A]
- The use of widely accepted and available hardware and software technology will be verified. [N/A]
- Efforts to minimize project costs will be verified through a review of the final project report, which must describe these efforts and include price comparisons.

## 4.7 Software system attributes
[N/A]

# 5 Appendices
[NULL]

## 5.1 Assumptions and dependencies
*   The system will be developed and tested in a simulated environment. There will be no actual physical home, and all sensors and controllers will be simulated.
*   The simulated environment is assumed to be realistic and will adhere to the physical properties and constraints of an actual home and real sensors and controllers.
*   The system requires a home to have a widely available broadband Internet Service Provider (ISP), such as a cable modem or high-speed DSL.
*   The system assumes a home computer is available to host a local web server.
*   The system depends on the availability of a gateway device that provides wireless communication to home devices and connects to the broadband internet connection.
*   The system depends on the availability of specific hardware components: digital programmable thermostats, digital programmable humidistats, magnetic alarm contact switches, security alarms, and digital programmable power switches.
*   The system's HVAC control functionality will adhere to the standards, policies, and procedures of the American Society of Heating, Refrigerating and Air-Conditioning Engineers [ASHRAE 2010].
*   The development process will use object-oriented development with UML 2.0.

## 5.2 Acronyms and abbreviations
*   ASHRAE: American Society of Heating, Refrigerating and Air-Conditioning Engineers
*   DH: Digital Home
*   DSL: Digital Subscriber Line
*   FAQ: Frequently Asked Question
*   HLRD: High Level Requirements Definition
*   HVAC: Heating, Ventilation and Air Conditioning
*   IEEE: Institute of Electrical and Electronics Engineers
*   ISP: Internet Service Provider
*   PDA: Personal Digital Assistant
*   RF: Radio Frequency
*   SRS: Software Requirements Specification
