Semantic Web applications offer the benefit of providing reusable machine understandable content in the form of an ontology. Machine understandability is one of the most important aspects that differentiate Semantic Web based applications from traditional software. Hence, there is a need to adapt several features of the Software Engineering paradigm to Semantic Web based application development in order to make development and delivery of the latter, more efficient. In this paper, a rigorous review of the state of the art in this area has been presented. The existing works on Software Engineering processes for Semantic Web application development, on the process for reengineering web applications to Semantic Web applications, and on the quality assessment of Semantic Web applications have been reviewed with discussion on the brief process, tools used, contribution, limitations, and some other features of each work. In addition to identified research gaps in these directions, some observations have also been drawn.