SaaS Requirements Engineering for Agile Development

2015 ◽  
pp. 660-688
Author(s):  
Asif Qumer Gill ◽  
Deborah Bunker

The emergence of Software as a Service (SaaS) has made it possible to develop dynamic and complex business processes as eServices. The development of business processes as eServices (SaaS) can be assisted by the means of adaptive or agile development processes. The development of business processes in terms of SaaS require to perform SaaS requirements engineering (RE), which is an important phase of a software development process for the success of any project. The challenge here is how best to do SaaS RE (e.g. mapping business process to eServices) and select agile development practices for developing business processes in terms of SaaS. In order to address this challenge, an integrated agile RE model for SaaS project development environments is outlined within this chapter. The purpose of the proposed RE model is to aid in iteratively determining SaaS requirements in short iterations as opposed to the “only first and onetime upfront” phase of a development process. Each identified SaaS requirement or a set of requirements for a given iteration is linked to a single or set of specific agile practices for implementation in short iterations. This model can be used as a guideline by organisations wishing to understand the challenging task of mapping business processes to SaaS and its implementation by using agile software development processes or practices.

Author(s):  
Asif Qumer Gill ◽  
Deborah Bunker

The emergence of Software as a Service (SaaS) has made it possible to develop dynamic and complex business processes as eServices. The development of business processes as eServices (SaaS) can be assisted by the means of adaptive or agile development processes. The development of business processes in terms of SaaS require to perform SaaS requirements engineering (RE), which is an important phase of a software development process for the success of any project. The challenge here is how best to do SaaS RE (e.g. mapping business process to eServices) and select agile development practices for developing business processes in terms of SaaS. In order to address this challenge, an integrated agile RE model for SaaS project development environments is outlined within this chapter. The purpose of the proposed RE model is to aid in iteratively determining SaaS requirements in short iterations as opposed to the “only first and onetime upfront” phase of a development process. Each identified SaaS requirement or a set of requirements for a given iteration is linked to a single or set of specific agile practices for implementation in short iterations. This model can be used as a guideline by organisations wishing to understand the challenging task of mapping business processes to SaaS and its implementation by using agile software development processes or practices.


Author(s):  
Asif Qumer Gill ◽  
Deborah Bunker

The emergence of Software as a Service (SaaS) has made it possible to develop dynamic and complex business processes as eServices. The development of business processes as eServices (SaaS) can be assisted by the means of adaptive or agile development processes. The development of business processes in terms of SaaS require to perform SaaS requirements engineering (RE), which is an important phase of a software development process for the success of any project. The challenge here is how best to do SaaS RE (e.g. mapping business process to eServices) and select agile development practices for developing business processes in terms of SaaS. In order to address this challenge, an integrated agile RE model for SaaS project development environments is outlined within this chapter. The purpose of the proposed RE model is to aid in iteratively determining SaaS requirements in short iterations as opposed to the “only first and onetime upfront” phase of a development process. Each identified SaaS requirement or a set of requirements for a given iteration is linked to a single or set of specific agile practices for implementation in short iterations. This model can be used as a guideline by organisations wishing to understand the challenging task of mapping business processes to SaaS and its implementation by using agile software development processes or practices.


2022 ◽  
pp. 1511-1534
Author(s):  
Chung-Yeung Pang

Reusability is a clear principle in software development. However, systematic reuse of software elements is not common in most organizations. Application programmers rarely design and create software elements for possible future reuse. In many agile software development processes, the project teams believe that the development of reusable software elements can slow down the project. This can be a misconception. This chapter examines various ways to reuse software. Three approaches to developing reusable software artifacts from 15 years of experience in the agile development process are presented. The first approach is to create generic programs or configurable frameworks that support similar solutions for a variety of use cases and environments. The reuse of patterns is the second approach presented. Another effective way is to use a model-driven approach with model patterns. These approaches help to speed deployment software. The final product is flexible and can easily be adapted to changes. This is one of the main goals of an agile approach.


Author(s):  
Michael Riesener ◽  
Christian Doelle ◽  
Sebastian Schloesser ◽  
Guenther Schuh

Abstract Agile development processes such as Scrum have been successfully applied in the software industry for many years. Based on experience, industrial practitioners indicate three predominant benefits of agile development processes compared to traditional software development processes. First of all, development results better fit customers’ and other stakeholders’ needs. That is because they are intensively involved in the development process by receiving, applying and assessing functional software increments in a defined cadence throughout the development process. Secondly, agile development processes better cope with unexpected changes in the development process due to the built-in process flexibility. Lastly, development speed has significantly increased in most of the agile software development projects, resulting in a shorter time-to-market. Especially in the context of radical innovations for technical systems, manufacturing companies are striving for approaches to optimize their development processes in a similar direction. Traditional plan-oriented development approaches such as VDI 2221 or Cooper’s Stage-Gate Process turn out to be insufficiently customer oriented, too inflexible and project duration is usually too long to reach an adequate time-to-market. For that reason, a large community in academia and industrial practice is developing and implementing approaches to adapt agile software development practices for the development of technical systems. However, a current study in industrial practice reveals that out of 23 objectives, that are expected when introducing agile development processes to technical systems, the three objectives mentioned above, show the largest negative deviations from expected benefit to realized benefit. Therefore, the overall goal of this research is to address these gaps by developing an explicit methodological approach for an agile development of technical systems. It turns out, that mainly the role of prototyping and the way product specifications are handled during the development process change significantly in the course of introducing agility to development of technical systems. Agile practitioners strive to not necessarily define product specifications comprehensively upfront, as it is postulated in plan-oriented development processes. In contrast, product specifications, which are of major importance to the overall development project, are specified and validated with customers and other stakeholders in early prototypes. Therefore, prototypes are realized in a defined cadence throughout the development process to gradually specify and validate the product. However, the way product specifications are prioritized and selected in the development of technical systems has to differ substantially from the general way Scrum or other existing agile development processes propose. That is because technical systems are characterized by multiple technical interrelations, resulting in informational dependencies for the development process. For that reason, a prioritization along criteria such as customer value, development effort and risk seems too narrow in the context of technical systems. In fact, the prioritization of product specifications has to consider both, the value being generated by their realization as well as the informational dependencies towards other specifications. Furthermore, when designing a prototype, time constraints need to be particularly considered due to lead times in parts delivery and prototype production. Therefore, this paper introduces a methodology to prioritize and select technical design parameters in agile development processes. The methodology can be applied in the cyclical sprint planning that aims at defining the scope of the next prototype to be developed. As outlined above, the major paradigms of value generation, informational dependencies as well as lead-time and effort are crucial when adapting agile for technical systems and are consequently implemented in the methodology. These paradigms are operationalized to explicitly address the mentioned major objectives of agile development processes, which are currently showing are large gap between expected benefit and realized benefit in industrial practice. The methodology is applied to the real development process of an RGB laser light source for digital cinema projectors, which is summarized as a case study in the paper. Insights from this application are equally discussed as the resulting next steps in further developing and aligning the methodology to the needs of industrial practice.


Author(s):  
Chung-Yeung Pang

Reusability is a clear principle in software development. However, systematic reuse of software elements is not common in most organizations. Application programmers rarely design and create software elements for possible future reuse. In many agile software development processes, the project teams believe that the development of reusable software elements can slow down the project. This can be a misconception. This chapter examines various ways to reuse software. Three approaches to developing reusable software artifacts from 15 years of experience in the agile development process are presented. The first approach is to create generic programs or configurable frameworks that support similar solutions for a variety of use cases and environments. The reuse of patterns is the second approach presented. Another effective way is to use a model-driven approach with model patterns. These approaches help to speed deployment software. The final product is flexible and can easily be adapted to changes. This is one of the main goals of an agile approach.


Author(s):  
Quyet-Thang Huynh ◽  
Le-Trinh Pham ◽  
Nhu-Hang Ha ◽  
Duc-Man Nguyen

Software testing is a continuous process during the software development stages to ensure quality software products. Researchers, experts and software engineers keep going on studying new techniques, methods and approaches of testing to accommodate changes in software development because of the flexible requirement along with the changing of technology. So, developers and testers need to have effective methods, tools and approaches to create a high-quality product at an efficient cost. This paper provides an effective approach for context-driven testing (CDT) in an agile software development process. CDT is a testing approach that supports the tester to choose their testing techniques and test objectives based on specific contexts. The aim of this paper is to propose an effective approach for implementing the CDT in practice, called CDTiP. Through an analysis of two case studies using an agile development process with different contexts, we validate the effectiveness of the approach in terms of test coverage, detect errors, test effort. The empirical results show that CDTiP is suitable for the agile development process that can help the tester to detect defects faster at minimum cost. The results of this method have been applied at Enclave, an ODC Software Engineering company, on real projects.


2017 ◽  
Vol 10 (13) ◽  
pp. 143 ◽  
Author(s):  
Jayasudha R ◽  
Viswanathan V ◽  
Shanthi P

The concept of reuse is applied in one of the agile development methodologies called the scrum. Sprint is a single functionality and the result at the end of the sprint functionality is derived as the shippable or bugs. This paper makes an attempt to use the concept of reuse in the agile software development to meet the dynamic change of customer requirements in banks. A banking project is created using both waterfall model and scrum model, and the knowledge gained is stored in the ontology-based repository for the first time. Again, the same project is created for different vendors using the ontology-based repository. The result shows that maximum sprint is reused and all the knowledge gained is stored in the form of ontology. This ontology helps identify the shippable component of each sprint which is a small executable functionality. This leads to less cost and time to deliver the product. The main aim is to increase the availability of the reusable artifacts, which lead to increase the reusability of the developer. The experimental results show improvements in the performance of retrieving the components for the software development.  


Author(s):  
Hamza Chehili ◽  
Lionel Seinturier ◽  
Mahmoud Boufaida

The adoption of the agile methods' principles has emerged as an effective way to develop service oriented architectures as it paves the way for a better reply to the changing needs of the environment and even the customer. However, these changes may also require the evolution of the development process itself. This paper presents an agile and service-oriented software development method that combines concepts from the Service-Oriented Computing (SOC) domain and the agile software engineering one. This method provides an iterative and incremental process to deliverer business processes, implemented as an assembly of components. This leads to a faster response to the change of needs by reconfiguring the assembly of components. The method is based on a framework that implements its phases as an assembly of components to allow a dynamic reconfiguration of it in case of a development process evolution. Finally, a case study is presented to illustrate the use of the presented method.


2020 ◽  
Vol 14 ◽  
pp. 8-13
Author(s):  
Tomasz Bławucki ◽  
Siarhei Ramanovich ◽  
Maria Skublewska-Paszkowska

The article presents a comparison in terms of hardware requirements of applications that supports the agile software development processes. For research purposes, popular mobile and internet applications supporting agile software development were chosen. In order to determine the significance of individual technical requirements for end-users, a series of research experiments, based on scenarios of typical and boundary use was conducted. In addition to research, the application supporting agile software development process was implemented. The results of research were recorded by specialized monitoring and profiling tools. The results of performed work are presented in tabular form.


Author(s):  
Maria Estrela Ferreira da Cruz ◽  
Ricardo J. Machado ◽  
Maribel Yasmina Santos

The constant change and rising complexity of organizations, mainly due to the transforming nature of their business processes, has driven the increase of interest in business process management by organizations. It is recognized that knowing business processes can help to ensure that the software under development will meet the business needs. Some of software development processes (like unified process) already refer to business process modeling as a first effort in the software development process. A business process model usually is created under the supervision, clarification, approval, and validation of the business stakeholders. Thus, a business process model is a proper representation of the reality (as is or to be), having lots of useful information that can be used in the development of the software system that will support the business. The chapter uses the information existing in business process models to derive software models specially focused in generating a data model.


Sign in / Sign up

Export Citation Format

Share Document