Publication Date

Spring 2021

Degree Type


Degree Name

Master of Science (MS)


Computer Engineering


Mahima Agumbe Suresh


Cloud Services, Deployment, System Architecture, System Design

Subject Areas

Computer science; Computer engineering


System design is the foundation for software systems. A well-engineered andwell-thought-out system design leads to the development of a software system that is scalable, reliable, extendable, and secure. It is important to be able to create a good system design. However, current ways of creating system design are inadequate. Software engineers resort to using tools like Microsoft Word, Lucidchart, Draw io, and so on to create system designs. These tools provide a basic drawing interface without the support for a standard set of system design components. There is a lack of common language for creating system designs. With the current ways of creating system design, sharing and working collaboratively throughout the life cycle of the software development is impractical. A good system design should remain faithful to the deployed infrastructure resources. To resolve these shortcomings, we propose a solution to lay the groundwork for establishing the standard. To achieve this, we abstract out the components and aim to provide a generalized view that acts as a common vocabulary to all the stakeholders. We present a prototype implementation tool that has a standard, enables version control, collaborative sharing, and automatic deployment onto multi-cloud infrastructure. The tool also provides the ability to create a configuration file such as a YAML or JSON which is a code equivalent of the system design. Furthermore, we also strive to provide a guided process that helps the beginners such as students to create a scalable, extendable, and reliable system design. The system design is then translated into a deployable entity that allocates the infrastructure resources. These features help the stakeholders to create a system design backed by a standard and understand the evolution of system design, performance evaluation, cost estimation, multi-cloud deployment, and ease of maintenance of infrastructure resources.