Yuanfang Cai

Assistant Professor

Dept. of Computer Science

Drexel University

Home

Research

  Publications

  Presentations

Teaching

   SE310

   SE311

Students

  Sunny Huynh

  Kanwarpreet Sethi 

 

 

 

SE 311: Software Architecture II

Professor: Yuanfang Cai

E-mail: yfcai AT cs DOT drexel DOT edu

Office: University Crossings 104

Office Hours: Thursday 3:00pm-5:00pm

Class Hours: Tuesday and Thursday 12:30pm -1:50pm

Class Room: University Crossings 153

Teaching Assistant: Mukta Ghalsasi

Phone: 215-895-0298

Description

This course has two parts. Design patterns embody important object-oriented software design concepts and technologies. The first part of this course introduces major design patterns as micro-level architectures.  More and more software applications are distributed and Internet-based. The second part of this course emphasizes the architecture of distributed systems, supporting technologies and prevailing frameworks.

Objectives

This course aims for students to (1) understand fundamental design principles; (2) understand and apply major design patterns; (3) understand how modern languages support patterns; (4) understand major distributed system architecture styles; and (5) understand how prevailing frameworks support distributed computing.

Prerequisites

The official prerequisite to this course includes SE 210 (Software Spec and Design I), SE 211 (Software Spec and Design II), and SE 310 (Software Architecture I). The class will assume familiarity with Java and UML

Lectures:

Lectures are intended to be interactive, and class participation is required -- please ask questions early and often! Topics covered in class will include the following:

  • Structural Patterns

  • Behavior Patterns

  • Patterns and Languages

  • Distributed System Architecture

  • Shared Information System Architecture

  • Java Framework

  • Microsoft Component Object Model (COM)

  • Microsoft .Net Framework

  • Middleware

  • Product Line

The tentative schedule may subject to change.

Required Textbook:

[FFBS04] Head First Design Patterns by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra. O'Reilly Media (October 25, 2004)

Additional Readings:

Design Pattern Books:

[Gof00] Design Patterns : Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (October 1994) Addison-Wesley Pub Co; ISBN: 0201633612

[Gof 06] Design Pattern Framework™ 2.0

[ST01] Design Patterns Explained by Alan Shalloway, Addison and Wesley (0-201-71594-5) 

Architecture Book Chapters:

[SG06] Software Architecture: Perspectives on an Emerging Discipline by Mary Shaw, David Garlan, Prentice Hall; 1 edition (April 2, 1996)

[BCK03] Software Architecture in Practice by Len Bass, Paul Clements, and Rick Kazman., Second Edition. Addison-Wesley, 2003.

[KBS04] Enterprise SOA: Service-Oriented Architecture Best Practices by Dirk Krafzig, Karl Banke, Dirk Slama. Prentice Hall PTR (November 9, 2004)

Other Resources:

[J2EE] http://java.sun.com/j2ee/1.4/docs/tutorial/doc/

[.Net] http://msdn2.microsoft.com/en-us/library/ms977996.aspx

[COM] Microsoft Corporation. The Component Object Model Specification, version 0.9 edition, 1995.

[CORBA] Object Management Group. The Common Object Request Broker: Architecture and Specification

[RMI] Java RMI. Sun Microsystems Corporation. http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp

 

Assignments

Homework assignments will involve both programming and writing to solidify topics presented in lectures. For programming assignments, lectures will introduce whatever knowledge of Java is needed to complete the assignments. For writing assignments, we will be reviewing the key concepts learned in the lectures.

Project

The course will include a multi-week group project that brings together most aspects of the learned material. You will have the option of working on one of several suggested projects or creating your own project independently. In the middle of the term,  each group will present their proposal. The final week will include demonstration sessions in which each group will present their projects and results to the class.

Exam

We will have one final exam during the term. The exam will test knowledge and skills developed in lectures, readings, and assignments. The exam will stress deep understanding of the concepts involved rather than more superficial aspects of programming.

Grading:

  • Assignment 1 (10%) .
  • Assignment 2 (15%): Due Date: Monday, February 5, 11:59pm
  • Assignment 3 (15%): Due Date: Wednesday, February 28, 11:59pm
  • Final Exam (20%):
  • Class Project (20%): 

    Project Proposal Due Date: In class, Thursday, March 1st, 12:30pm

    Project Submission Due Date: Thursday, March 15th, 11:59pm

  • Project Presentation (5%): In class, March 13h, 15th

  • Class Participation (5%)

  • Class Quiz (10%)

Policy:

Late assignment/quiz submissions are subject to penalty: 12% each day.  Assignments turned in more than three days late cannot be accepted and receive a score of 0. Missed exams also receive a score of 0. Make-up exams will only be allowed in extreme circumstances.

"The best way to predict the future is to invent it." ---Alan Kay.

"Fundamental is the building block of fun." --- A dancing girl.