Smartmontools (S.M.A.R.T. Monitoring Tools) is a set of utility programs (smartctl and smartd) to control and monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System built into most modern (P)ATA, Serial ATA and SCSI hard drives. 
Smartmontools provide early warning signs of problems with a hard drive, allowing a backup of data before the complete failure. 
From late 2010 ATA Error Recovery Control configuration has been supported by Smartmontools, allowing it to configure many desktop-class hard drives for use in a RAID array and viceversa.
Most Linux distributions provide the smartmontools package.
Even though smartctl and smartd come with a command-line interface, Alexander Shaduri developed GSmartControl, a Graphical User Interface (GUI) for smartctl. 
SMART Utility is also a software for Mac OS X with a GUI based on smartmontools