Design methods for software architectures in the service‐oriented computing and cloud paradigms

Manuel Mora, Rory V. O’Connor, Frank F. Tsui, Jorge Marx Gómez · Software Practice and Experience · 2017

The design of the system architecture has been a critical and relevant activity in the systems engineering discipline from several decades for the design of physical man-made systems [1].However, a reduced set of design methods and complementary decision-making techniques have been consistently used with successful results [2][3][4].In contrast, in the software engineering discipline, there is a body of academic research on the foundations, methods and complementary techniques with a scarce accumulative knowledge.Every design stream on software architecture elaborates its own vocabulary and methods and usually ignores other design streams [5].Additionally, there are more proprietary than open access design methods, and a reduced set of well-accepted methods, techniques and practices are still missing [6].Thus, software architecture design methods are inconsistently or little used in the practice during the application of software development methodologies except by the large system and software development companies [7,8].As a pioneer [9] in the software architecture domain indicates (idem, p. 29) However, despite this progress, as engineering disciplines go, the field of software architecture remains relatively immature.While the foundations of an engineering basis for software architecture are now clear, there remain numerous challenges and unknowns.In particular, software systems are widely demanded at present in two co-existing paradigms: Software-oriented Computing (SOC) [10,11] and the Cloud Computing paradigms [12,13].SOC paradigm aims the development of medium-sized and large-distributed inter-organizational systems by assembling it (ideally) as a system of service providers and consumers, known as a Service-oriented Computing Application (SOCA) [14].Thus, the design of SOCAs inherently includes the challenges of high-quality software architecture design, given its natural composition by services provided by some entities and consumed by others (independently of the self-services in the same SOCA).In turn, the Cloud Computing paradigm aims to provide a cost-effective, scalable and dynamic provision of IT resources (processing, storage, networking) for elastic demands.This convergence of SOC and this emergent paradigm introduces new software

Read the paper · More papers on PaperTik