CS575 Software Design
CS575 Software Design
Course Trivia
- Instructor: Dr. Spiros Mancoridis
- E-mail: spiros AT drexel . edu
- WWW:
http://www.mcs.drexel.edu/~spiros
- Office: Korman 270
- Phone: x6824
- Class Hours (Matheson Hall 305): Monday 6:00pm-8:50pm
- Office Hours (Korman 280): Monday 3:30pm-6:00pm
- Text book: Software Fundamentals:
Collected Papers by D. L. Parnas
(D. M. Hoffman and D. M. Weiss Eds.), Addison-Wesley, 2001
(ISBN: 0201703696)
- Reading: Lecture notes provided by the instructor, and the
assigned papers from the textbook.
- Teams
Introduction
When designing a significant software system, several design decisions
about the structural, architectural, and behavioral properties of the
system are made and documented.
In this course, techniques and notations are introduced for specifying
these properties of software systems. Software systems are studied
at various levels of abstraction from architectures to subsystem
decompositions to module and class interfaces and dependencies.
In this course, students will learn to analyze, express, and implement
software designs. The course material is drawn from the works of one of
the most distinguished software engineers, Dr. David L. Parnas.
Practical experience will be obtained by working on a project.
Topics
Software architecture, architectural styles, modularity and information
hiding, hierarchical structure, program families, exception handing,
design reviews.
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 the Java
object-oriented programming language. Students lacking such
a background should read the following Java material:
Course Grading Scheme
- 2 Team Paper Presentations (30%)
- 7 Individual Quizzes (35%)
- Team Project (25%)
- Class Participation & Paper Questions (10%)
Grading Scale
Letter grades (A, B, C, D, F) will be assigned to team paper
presentations, quizzes, projects, and class participation.
For team activities (i.e., paper presentations, team projects) every
member of the team will receive the same grade. If a team is not satisfied
with the contributions of a team member, the entire team may come to discuss
the matter with the instructor during office hours. If the instructor agrees
with the complaints of a team toward its member, that member will be given
the opportunity to drop the course to avoid receiving an F.
Grading Rules
- All grades are final.
- There will be no extra credit assignments.
- No extensions will be given to the projects or paper presentations and
questions. All late work will receive a 0 grade (unless a serious medical
condition prevents the student from completing the work on time).
- Students who choose not to participate in the classroom discussions
and submit their paper questions will receive 0 for their class
participation grade.
- For team activities (project, paper presentations) every student
of a team will receive the same grade.
- For individual activities (i.e., quizzes, class participation and
paper questions) each student receives a grade independent of the
other team members.
Project (25%)
The deadline for the project's code and design documentation is
December 9.
Each team must consist of 3 students. The teams for the project
will be the same for the project and for the research paper presentations.
Each team must set up and maintain a website to facilitate the distribution
of their progress on team activities (project, paper presentations).
The project (code, design documentation) must be available on the each
team's web page. Projects are submitted by sending a notification, via
e-mail, to the instructor with a URL pointing to the project.
The project description is available here
Paper Presentations (30%)
Each team will have the opportunity to present four research papers to
the class. Any member(s) of the team can present the paper. The
presentations must be done using Powerpoint and must be available (in their
final form) on the team website one day before the presentation. Teams are
expected to send a notification, via e-mail, to the instructor one day
prior to their presentations. The notification must have a link to the
team presentation that is on their website.
Presentations are expected to be of high quality. Each presentation should
last 25 minutes followed by a 20 minute period for questions and discussions.
The presentation should not simply repeat what is stated in the paper. The
presenting team is expected to have a deep understanding of the paper and
come up with interesting examples and explanations of the ideas and techniques.
Quizzes (35%)
Students should prepare for the quizzes by studying the assigned papers
for the day of the quiz. The quizzes will be a combination of short answer,
essay, and problem solving questions. All quizzes are in class and closed
book.
Class Participation (10%)
To aid the discussion process, each student must create one
thought-provoking question for each paper.
The questions must be sent to the instructor via e-mail one day
before the presentation. Late submissions of presentations and questions
will not be accepted and will receive a 0 grade.
Students are expected to participate in classroom discussions related to the
project and paper presentations. Students who choose not to
participate in the discussions will receive 0 for their class participation
grade.
Links to Some Helpful Material
Course Schedule
- Week 1: (September 23)
- Course Overview (6:00pm-6:15pm)
- Introduction (6:15pm-6:45pm)
Software Design and Requirements
(ppt)
- Paper Presentation & Discussion (6:45pm-7:15pm)
"A Rational Design Process: How and Why to Fake it"
(ppt)
by D. L. Parnas and P. C. Clements
(Introduction by B. Boehm) pp 353-367.
- Presented by S. Mancoridis (6:45pm-7:00pm)
- Discussion (7:00pm-7:15pm)
- Break 7:15pm-7:20pm
- Paper Presentation & Discussion (7:20pm-8:00pm)
"Software Aging"
(ppt)
by D. L. Parnas (Introduction by V. R. Basili) pp 549-565.
- S. Mancoridis Presentation (7:20pm-7:45pm)
- Discussion (7:45pm-8:00pm)
- Break 8:00pm-8:05pm
- Team Formation (8:05pm-8:40pm)
- Week 2: (September 30)
- Quiz 1 (6:00pm-6:45pm)
- Break 6:45pm-6:50pm
- Paper Presentation & Discussion (6:50pm-7:40pm)
"On a 'Buzzword': Hierarchical Structure"
by D. L. Parnas (Introduction by P. C. Clements)
pp 157-170.
- Break 7:40pm-7:45pm
- Paper Presentation & Discussion (7:45pm-8:35pm)
"Use of the Concept of Transparency in the Design of
Hierarchically Structured Systems"
by D. L. Parnas and D. P. Siewiorek
(Introduction by D. P. Siewiorek) pp 171-190.
- Week 3: (October 7)
- Week 4: (October 14)
- No classes, Columbus Day (University Holiday)
- Week 5: (October 21)
- Quiz 2 (6:00pm-6:45pm)
- Paper Presentation & Discussion (6:45pm-6:50pm)
"On the Criteria to be Used in Decomposing Systems
into Modules"
by D. L. Parnas (Introduction by D. M. Weiss) pp 143-155.
- Break 7:40pm-7:45pm
- Paper Presentation & Discussion (7:45pm-8:35pm)
"On the Design and Development of Program Families"
by D. L. Parnas (Introduction by R. Johnson) pp 191-213.
- Week 6: (October 28)
- No class or office hours for this week, the instructor is at
the Working Conference on Reverse Engineering all week.
- Week 7: (November 4)
- Quiz 3 (6:00pm-6:45pm)
- Break 6:45pm-6:50pm
- Paper Presentation & Discussion (6:50pm-7:40pm)
"Abstract Data Types Defined as Classes of Variables"
by D. L. Parnas, J. E. Shore, D. M. Weiss (Introduction by
J. E. Shore) pp 215-226.
- Break 7:40pm-7:45pm
- Paper Presentation & Discussion (7:45pm-8:35pm)
"Response to Undesired Events in Software Systems"
by D. L. Parnas and H. Wurges (Introduction
by S. Faulk) pp 229-254.
- Week 8: (November 11)
- Quiz 4 (6:00pm-6:45pm)
- Break 6:45pm-6:50pm
- Paper Presentation & Discussion (6:50pm-7:40pm)
"Some Software Engineering Principles"
by D. L. Parnas (Introduction by J. Horning) pp 255-264.
- Break 7:40pm-7:45pm
- Paper Presentation & Discussion (7:45pm-8:35pm)
"Designing Software for Ease of Extension and Contraction"
by D. L. Parnas (Introduction by B. Boehm) pp 267-290.
- Week 9: (November 18)
- Quiz 5 (6:00pm-6:45pm)
- Break 6:45pm-6:50pm
- Paper Presentation & Discussion (6:50pm-7:40pm)
"A Procedure for Designing Abstract Interfaces for Device
Interface Modules"
by K. H. Britton, R. A. Parker, D. L. Parnas (Introduction
by J. Waldo) pp 291-313.
- Break 7:40pm-7:45pm
- Paper Presentation & Discussion (7:45pm-8:35pm)
"The Modular Structure of Complex Systems"
by D. L. Parnas, P. C. Clements, and D. M. Weiss
(Introduction by D. M. Weiss) pp 315-336.
- Week 10: (November 25)
- Quiz 6 (6:00pm-6:45pm)
- Break 6:45pm-6:50pm
- Paper Presentation & Discussion (6:50pm-7:40pm)
"Active Design Reviews: Principles and Practices"
by D. L. Parnas and D. M. Weiss
(Introduction by K. H. Britton) pp 337-351.
- Break 7:40pm-7:45pm
- Paper Presentation & Discussion (7:45pm-8:35pm)
"Inspection of Safety-critical Software Using
Program-Function Tables"
by D. L. Parnas (Introduction by J. van Schouwen)
pp 369-380.
- Week 11: (December 2)
- Quiz 7 (6:00pm-6:45pm)
- Paper Presentation & Discussion (6:50pm-7:40pm)
"Software Aspects of Strategic Defense Systems"
by D. L. Parnas (Introduction by D. M. Weiss)
pp 493-516.
- Break 7:40pm-7:45pm
- Paper Presentation & Discussion (7:45pm-8:35pm)
"SDI: A Violation of Professional Responsibility"
by D. L. Parnas pp 519-528.
- Week 12: (December 9)
- Project Code and Design Documentation Due
- No classes, exam week
You may use the above links to obtain an on-line copy of the
lecture notes. The lecture notes are provided in both Powerpoint (ppt)
and Adobe Acrobat (pdf) format. Adobe Acrobat Reader is a free viewer
for Adobe PDF files. A copy can be downloaded from here:

On the MCS Unix workstations, make sure that you specify acroread as
a "Helper" under Netscape's "General Preferences".
(e.g., application/pdf acroread %s)
You may print the lecture notes from within Acroread. Note that Acroread
enables you to print multiple slides per page.
Academic Honesty
The university's Academic Honesty policy is in effect for this course.
Please read Section 10: "Academic Honesty" in the Drexel University Student
Handbook to make sure you are familiar with this policy. An electronic
version of the Student Handbook appears on the 1998 Drexel CD. You may
visit the university's student handbook online at
http://www.drexel.edu/studentlife/docs/handbook/shindex.html
Back to my home page.