Large-scale development – modularity, extensibility, and distribution
Henrique C. M. Andrade, Buğra Gedik, Deepak S. Turaga
Abstract
Henrique C. M. Andrade, Buğra Gedik, Deepak S. Turaga
Abstract
Overview In this chapter, we study modularity, extensibility, and distribution. As part of modularity, we look at how types, functions, primitive, and composite operators can be organized into toolkits to facilitate the development of large-scale applications. As part of extensibility, we discuss how to extend a SPS with new cross-domain and domain-specific operators. As part of distribution, we discuss mechanisms to manage and control how the logical view of a SPA maps to a corresponding physical view to be deployed on a set of distributed hosts. This chapter is organized as follows. Section 5.2 discusses modularity and extensibility, providing the foundations for structuring large, complex, and multi-component applications. Section 5.3 tackles the issue of distributed programming and deployment. Modularity and extensibility Large-scale software engineering and system development in programming languages such as C++ and Java relies on creating a complete application from a collection of smaller building blocks. The design of complex SPAs is no different. Such a design and development approach is referred to as modularity [1]. The reliance on a modular design aims at mitigating engineering complexity by organizing an application into modules or components, where the relationship between these components is expressed in terms of interactions through well-defined component interfaces. In earlier chapters we discussed how composite operators facilitate the creation of modular SPAs.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Overview In this chapter, we study modularity, extensibility, and distribution. As part of modularity, we look at how types, functions, primitive, and composite operators can be organized into toolkits to facilitate the development of large-scale applications. As part of extensibility, we discuss how to extend a SPS with new cross-domain and domain-specific operators. As part of distribution, we discuss mechanisms to manage and control how the logical view of a SPA maps to a corresponding physical view to be deployed on a set of distributed hosts. This chapter is organized as follows. Section 5.2 discusses modularity and extensibility, providing the foundations for structuring large, complex, and multi-component applications. Section 5.3 tackles the issue of distributed programming and deployment. Modularity and extensibility Large-scale software engineering and system development in programming languages such as C++ and Java relies on creating a complete application from a collection of smaller building blocks. The design of complex SPAs is no different. Such a design and development approach is referred to as modularity [1]. The reliance on a modular design aims at mitigating engineering complexity by organizing an application into modules or components, where the relationship between these components is expressed in terms of interactions through well-defined component interfaces. In earlier chapters we discussed how composite operators facilitate the creation of modular SPAs.
Key concepts: Modularity (biology), Extensibility, Computer science, Scale (ratio), Development (topology), Distribution (mathematics), Programming language, Biology