TCSS 562-F'20: Software Engineering for Cloud Computing

TCSS 562: Software Engineering for Cloud Computing

csu-logo

Announcements Syllabus Grading Schedule Assignments

HOME


Course Objectives:

In this course we will introduce and explore cloud computing and software and systems design concepts for the cloud. We will introduce cloud computing delivery models and explore cloud service alternatives that can be harnessed to support the development of cloud native applications. The term project offers the opportunity to engage in building a serverless cloud native application to contrast performance and cost trade-offs of various system designs and compositions. The focus, unlike a traditional software engineering course, is not on executing a waterfall, spiral or agile software process within the class, but to focus on introducing new cloud technologies to enable building a prototype application while teaching good systems analysis skills. The goal is to build functioning prototypes of a native cloud application to enable evaluation of design alternatives and their corresponding cost and performance implications for deployment in the cloud.

For example, when designing cloud native software one must choose a backend database service to persist data. Depending on the characteristics of the data, is it better to select a relational database service such as Amazon's RDS or Aurora? A Key-value database such as Dynamo DB? Or can performance criteria be satisified while saving costs by deploying and managing a database service directly on a cloud-based virtual machine? With cloud computing there are many alternatives for the implementation of cloud application architectures, but there is little guidance to help demystify the cloud software design alternatives. This course introduces important analysis and evaluation skills to support further learning to help aspiring software engineers and cloud architects make good design decisions when developing cloud systems.

The Fall 2020 course, will draw on the textbooks: Cloud Computing Theory and Practice, and Cloud Computing Concepts, Technology & Architecture as well as hands-on tutorials to introduce Infrastructure-as-a-Service cloud, serverless computing, and containerization.

In addition to the term project, students will prepare one class presentation on either: (1) a cloud technology sharing talk demonstrating a specific cloud technology or service (e.g. EC2, S3, RDS, Lambda, Heroku, Dynamo DB, Elastic BeanStalk, Azure DocumentDB, Azure BlobStorage, etc.), or (2) a cloud-computing related research paper. Time at the end of select lectures will be set aside to offer lab time and Q&A to support completing cloud computing tutorials and to foster group work for term projects.

Instructor

Lecture Location
Wes Lloyd
Office: Zoom F2020, otherwise CP 229
Office Hours: Fri 11:30a-12:30p, MW after class, or by appt
E-mail: wlloyd <@> uw.edu

Fall Quarter 2020
MW (5:50 - 7:50 PM)
Online via Zoom (Synchronous)

School of Engineering and Technology, University of Washington-Tacoma,
Tacoma, WA 98402 USA
© 2020 University of Washington