CS 6600: Topics in Software Architecture

Monsoon 2008

Faculty: Vasudeva Varma

TA: Jaideep Dhok

 

Class Meetings: Mon and Wed: 11:30—13:00 Room: 325, Main Building

 

Course Overview  - Topics

Software Architecture 

Software Architecture as a Problem Solving Discipline: Polya’s Problem Solving Approach “How to Solve it?”, Systems Thinking

Service Orientation and Service Oriented Architecture (SOA)

Distributed / Grid Computing:  Distributed Computing,         Distributed File Systems,  Hadoop as DFS environment – (Industry Partner: Yahoo)

Cloud Computing: Cloud as a development environment, Web Services – AWS, EC2, S3  (Industry Partner: Amazon)

Virtualization - (Industry Partner: Microsoft)

 

Evaluation:

An implementation Project – Hadoop Cloud in SIEL or EC2 of Amazon

Exploration of a Research problem—Term paper

Enriching discussions in the class meetings

Tentative weight for each: 40-50-10

Ranked Peer evaluation

No conventional exams

 

Starting point: Read and explore about Google File System (GFS), Map-Reduce, BigTable, Amazon Web Services (AWS), EC2, S3 and Hadoop—Most of them have Wikipedia entries and that’s a good starting point. Will announce a list of resources and a list of projects – your responsibility to choose the one that interests you.

Talk to the TA/mentors  if you need any help

Timelines:

Explore the domain 4/08/08 – 18/08/08

Choose the project 18/08/08

Choose the term paper topic: 25/08/08

First Evaluation: 15/09/08

Second Evaluation: 20/10/08

Final Evaluation: November 17-26, 2008

 

Lectures:

 

Module 1: Software Architecture:

 

1. Course Introduction—Course outline, grading, Topics overview  (Aug 4, 2008)

2. Learn to ask some fundamental questions about software architecture—Discuss Jim Gray’s observations about software architecture, differences between software, engineering and architecture, relation between programming, software engineering and software architecture, importance of structural and functional decomposition, journey from the problem space to solution space (Aug 6, 2008)

3. Analogy between Software architecture and movie making. The process of movie making—phases, structure and genre, interesting insights (Aug 11, 2008)

4. Commonalities and differences -  what can we learn from the process of movie making. Software Architecture primer. Important concepts of SA  - architectural drivers, styles, views and view points etc. (Aug 13, 2008)

 

Module II: SA as a problem solving discipline—This module will be conducted as a separate thread during the course

1. How to Solve it? Insights from G. Polya’s classic work

2. Systems Thinking I

3. Systems Thinking II

4. Connecting them all

 

Module III: Cloud Computing Fundamentals:

1. Hadoop introduction (Jaideep) (Aug 18, 2008)

2. Hadoop Hands-on details (Jaideep) (Aug 20, 2008)

3. Amazon Web Services I (Jinesh Varia, AWS Evangelist) (Aug 25, 2008)

4. Amazon Web services II (Jinesh Varia, AWS Evangelist) (Aug 25, 2008)

 

Module IV: Cloud Computing Topics

 

 

Resources:

 

The following links are useful for the course:

 

Wikipedia - > http://en.wikipedia.org/wiki/Cloud_computing

Google Code - > http://code.google.com/edu/parallel/index.html

Software Architecture Primer  - this material is supplied in the class room