Hidden Markov Models (HMMs) are a popular and widespread tool for modeling a large range of time series data and for generating sequences of dependent observations. HMMs have been applied successfully to various complex problems, being especially effective with those requiring a huge amount of measured data, such as workload access patterns in computer storage systems and pattern recognition in speech, handwriting and music, to name but a few. Nowadays, the theory of HMMs is well developed in the case of finite, discrete processes. However in many applications, such as storage workload modelling [1], which we discuss in some detail, discrete models are not ideal and we prefer a continuoustime approach. The aim of this project is to develop such a new theory in continuous time, based on the discrete HMMs, in particular an adaptation of the so-called Baum-Welch algorithm to facilitate the efficient computation of the relevant parameters of a HMM. Therefore this thesis first introduces the main concepts related to HMMs in the discrete case, then transfers its focus to a particular application, namely workloads in FLASH memory systems, while trying to spell out the limitations of the discrete approach. Finally a continuous-time approach is developed that leads to the implementation of a new, but similar, version of the Baum-Welch algorithm in a very simple context. The substantially increased complexity inherent in a continuous-time analysis, compared with discrete time, obviates the numerical analysis of models with more than two hidden states in the timescale of this project, but the theoretical and algorithmic extension to any number of hidden states is explained as "future work".