Yuanfang Cai

Assistant Professor

Dept. of Computer Science

Drexel University

Home

CS575 Home

-CS575 News

-CS575 Lectures

-CS575 Project

-CS575 Position Paper

-CS575 Important Dates

 

 

 

CS575: Software Design

Professor: Yuanfang Cai

E-mail: yfcai AT cs DOT drexel DOT edu

Office: University Crossings 104

Phone: 215-895-0298

 

Teaching Assistant: Sunny Huynh (sunny.h AT drexel DOT edu)

Office Hours:

     Place: University Crossings 147

     Time: Monday 2-4pm and Wednesday 2-4pm

 

Description

This course introduces fundamental principles and  methodologies to analyze, express, and implement software designs. This course covers architecture and design principles in general and focuses on service-oriented architecture in particular.

In this course, student will learn most influential papers in software engineering realm, design and implement a service-oriented implementation, and explore how to apply well-established theoretical principles into modern system design and implementation. The course material is drawn from both the most canonical software engineering textbook and state-of-the-art research papers.

Objectives

(1) Understanding how models are used to describe and understand the software design and software architecture of a system.

(2) Exposure to a significant amount of seminal research in software design, software architecture and software engineering.

(3) Understanding the importance of abstraction and how it relates to software design and software engineering.

(4) Implementation of a non-trivial system to gain practical experience using the software design and engineering techniques discussed in class. 

(5) Understanding important software design concepts and principles, such as software aging and information hiding.

Intended Audience

This course is intended for graduate students in Software Engineering and Computer Science. Graduate students in other programs may take this course with the permission of the instructor, as significant programming experience is a pre-requisite.

Before taking this course, students should be proficient in either the Java or a Microsoft .Net language such as C#. Students familiar with other object-oriented programming languages such as C++ may take this course but they will have to learn Java or C# if they want to simplify their lives when it comes to creating the project deliverables. Students lacking a background might want to consider taking this class at another time unless they are committed to spending a lot of time learning Java or C#. For your reference here are some good reference materials:

Textbook:

Software Fundamentals : Collected Papers by David L. Parnas (Editors: David M. Weiss and Daniel M. Hoffman), Addison-Wesley, 2001.

ISBN: 0201703696

Other Resources:

You might find the following links useful for this class:

  • Software Architecture References @ the Software Engineering Institute (CMU)
  • Introduction to Java (PDF lecture notes)
  • Behavioral Design (PDF lecture notes)
  • Object Oriented Design Patterns (PDF lecture Notes)
  • Comprehensive Set of Java Tutorials (online training)
  • IBM's DeveloperWorks (online - a lot of good stuff here)
  • More to be added...
  • Class Format for CS575  

    The format of this course will be a web-based online class.  Each week the students will be asked to review between 1 and 3 papers. I will open a discussion topic on WebCT or ask the students to write reviews for research papers the week after. Engaging discussion of the lecture materials is a critical aspect of this class. Class participation in the form of online discussion will be factored into consideration for students whose grades fall on a borderline.

    In summary, the course includes the following components: Online Discussions, Assignments, Team Project, and Position Paper.

    A word of caution: For most students, this course will require a fair amount of dedicated time. Reading 2-3 research papers per week (20-30) pages is not like reading a novel, and will require some degree of time commitment to gain the proper level of understanding. Feel free to contact me if you have any upfront concerns about your ability to succeed in this course.

    Class Component 1:  Paper Reading

    Students will be asked to read 2-3 papers per week. These papers are canonical and state-of-the-art in software engineering realm. The online discussion and paper review assignments will be around the papers assigned in the previous week. You can find the papers for each week from the CS575 lecture page.

    Class Component 2: Online Discussions

    Class participation in this course is in the form of online discussion. The discussion topic will be published onto Bb Vista on Monday night. Students will be asked to post their answers to these topics, by the Friday at 11:59PM, and finish responding to their team members (the same team as their project) by Sunday 11:59PM. However, for courtesy, if you don’t want your team members to work during the weekend, please post your answers as early as possible. It is also a good idea to respond to multiple group members in one post.

    I will read each of your posts and responses, but I will not comment on any of them until the week after when everyone finish posting and responding so that the students won’t get biased by my opinion.

    Class Component 3: Paper Review Assignments

    Homework assignments will be in the form of paper review. The student will be asked to write a review, no longer than one page, in Week 4 and Week 6, for the papers they learned from the previous week. Assignments will be created through Bb Vista. Each review should follow the given template, which dictates the font size and the two-column format. Similar to the discussions, the topic and required contents of each paper review will be posted on Monday night and the reviews should be submitted by uploading in pdf files to Bb Vista, by the Thursday at 11:59PM.

    Class Component 4: Team 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. Please go to CS575 Project for details.

    Class Component 5: Position Paper

    The students will work with their project team members to write a position paper. Please refer to the CS575 Position Paper for details.

    Team Coordination:

    To encourage all the members of a team to be responsible and to actively work with each other towards discussions, projects and position papers, we decide to give coordination credits (10% of you final grade) as follows: during the last week, each student will review and grade his/her team members in terms of responsibility and contribution. The review will be anonymous and we will announce operation details later this term.

    Please report your coordination and teaming problems by week 4.

    Grading:

    In summary, you will have 4 online discussions, 2 paper reviews, a group project and a group position paper (the same group as your project) in total.

    The following is a rough guideline on how your final grade will be determined. 

    1. Class Participation (Online Discussion) : 30%
    2. Assignment: 20 %
    3. Position Paper: 10%
    4. Project Design: 10%
    5. Project Test Application 5%
    6. Project Design Review: 5%
    7. Project Package: 10%
    8. Coordination credits: 10%

    Policy:

    A. If you have a question about the class, or any questions about your homework, project, and papers, you are welcome to *email* me with the subject starting with “CS575 question:”. Please DO NOT post your question under the discussion topics. The reason is that: given the number of students in class, I can easily have hundreds of posts to read each day if everyone responses to everyone else. As a result, it is highly possible that I miss your questions and can’t response in time. So, email me or the TA with your questions, and we will respond within 24 hours unless I am traveling.

    B. Late assignment/project 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. Make-up submissions will only be allowed in extreme circumstances.

    The university's Academic Honesty policy is in effect for this course. All assignments, labs, and projects in this course are to be done individually (unless otherwise noted). You may consult fellow students, TA's and the professor for help, but what you hand in must be your own work. You can review Drexel's academic honesty policy policy online by going to http://www.drexel.edu/studentlife/studenthandbook2002/Judicial/acadhon.html. This is a link to a section from the student handbook.

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

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