A Service Reusability-Centric Process for Developing Software-as-a-Service

Cloud Computing is emerged as an effective reuse paradigm, where service providers operate hardware and software and as a service, and service consumers invoke the service through Internet. Software-as-a-Service (SaaS) is a type of cloud services, where the whole software is designed as a service so that several consumers can reuse the SaaS. While tradition software applications are developed for a specific organization, SaaS is developed for multiple users in the various organizations. Hence, reusability is very essential characteristic of SaaS. Reusability is defined as a metric of how effective and efficient software functionalities can be used by various users. Reusability in SaaS is evaluated by considering three sub-characteristics; applicability, adaptability, and scalability. Since such a SaaS has considerable differences and characteristics from traditional software applications, conventional methods including object-oriented modeling, component-based development method, and service-oriented architecture (SOA) service development method would be limited in developing services which can fulfill these three sub-characteristics related to reusability as well as SaaS-intrinsic characteristics. Hence, there is a great demand for effective processes for developing SaaS cloud services. In this paper, we present a practical process for developing SaaS, which focuses on ensuring reusability. And by performing a case study with our proposed SaaS development process, we evaluate applicability of our proposed process and explain how the process is used in a real domain. Then, we compare our proposed process with others for verifying our study. Through the proposed process, cloud services with high quality can be more effectively developed.