Advanced Software Engineering

In this course we will study advanced techniques of distributed software development. We will begin with introductory discussion of the general design principles of distributed systems and then move on to various specific issues, such as security, fault tolerance, distributed transactions, and many others. The course will include the Unified Modeling Language (UML) as applied to distributed systems design.