PATTERNS,PATTERNS,PATTERNS, PATTERNS,PATTERNS, PATTERNS, PATTERNS, PATTERNS
DEPARTMENT OF COMPUTER
SCIENCE
CS631/822
COURSE SYLLABUS
Summer
2006 C Term June 6th. Tuesday and Thursday 4:30pm Innovation Hall
206
CS631 is an Advanced Computer Science and Software Engineering Design Course.
I. COURSE INTRODUCTION.
Course
Description. (3:3:0). Prerequisites:
(SWE619 or SWE620) and (CS540 or CS571) or a Graduate Course in
Object-Oriented Programming or Equivalent. Principles of
object-oriented design through design patterns. A study of the
selection of appropriate object-oriented structure after the
systems requirements or requirements specification of the
software system have been developed. To improve design, design
patterns are created in the logic view of a software system. A
study of generalized design solutions for generalized software
design problems. A study of software reuse and the reuse of
design patterns. Once developed, design patterns may be specified
in any object-oriented language.
The class begins Tuesdays and Thursdays at 4:30 - 7:10pm in C Summer Term. Innovation Hall 206
Please read the following Professional Codes of Ethics at these URLs: IEEE and ACM codes of ethics at
http://www.ieee.org/about/whatis/code.html
http://www.acm.org/serving/se/code.htm
The link to the GMU Honor Code has become:
http://jiju.gmu.edu/catalog/apolicies/honor.html
IMPORTANT. The course lecture notes can bedelivered to you off-line by Network EducationWare (NEW). Students can have accounts for NEW and can play back the lectures and download the PDF slide files at http://disted.ite.gmu.edu.
II. DETAILED COURSE DECRIPTION
CS 631 Object-Oriented Design with Design Patterns
Professor David Rine; Department of Computer
Science
http://www.cs.gmu.edu/
ftp://mason.gmu.edu/drine/cs631 to get PowerPoint Lecture Slides in PDF
STII
Room 345 Office
Phone
703-993-1546 Office
Email DavidCRine@aol.com
OFFICE/LAB HOURS:
Office
Hours for Professor Rine, Summer C Term 2006: 2:15 - 4:00 pm.
Tuesdays and Thursdays in STII-345.
STII-133
LAB OPEN TIMES.
To
see the times that the STII- 133 IBM Rational Rose Lab is
dedicated to CS421-631 class sections view the schedule on
http://www.ite.gmu.edu/labs/. For other individual times you need to fill
out a request for your personal Omni Lock Code. Forms are
available outside the STII-160 ITE Office.
IBM RATIONAL SOFTWARE. UML
In addition to the IBM Rational Rose WINDOWS version 2005 software in STII- 133, The Johnson Center PC Lab and Innovational Hall 310 and an optional subset of UML 2.0 from the CD in the back of the UML Toolkit paperback from the textbooks section of the GMU Bookstore in the Johnson Center, you can down load to your own PC WINDOWS term-limited copies of full commercial version of Rational Rose Enterprise 2005 Edition and other interesting tools by going to http://www.rational.com/ and signing in.
https://licensing.rational.com/accountlink/transactionType.
You will use this WINDOWS version of Rational Rose (UML programming environment) to do your class projects.
CONTENT DESCRIPTION:
Principles
of object-oriented design through design patterns. A study of the
selection of appropriate object-oriented structure after the
systems requirements or requirements specification of the
software system have been developed. To improve design, design
patterns are created in the logic view of a software system. A
study of generalized design solutions for generalized software
design problems. A study of software reuse and the reuse of
design patterns. Once developed, design patterns may be specified
in any object-oriented language. However in this course we follow
the standard practice of using the UML approach to coding design
patterns, the parts of a design pattern are its classes diagram,
its scenario, and its sequence diagram or interaction diagram.
GRADING POLICY:
IMPORTANT. Attendance and class participation in either the NEW/NEW distanced education section of the STII-12 section is required of all students taking the class for credit.
A FIRST examination and a SECOND
examination each count 1/3 of the class
grade on a 100 point scale; and grading is proficiency-based, no
curve. The project
and associated lab work comprise the remaining 1/3 of the class
grade. Students must hand in all project-related work that is
requested to be turned in, but students may work on homework and
lab work in their project team groups. It is understood that the
project is a major time commitment, and students must work in
their groups, taking advantage of communications technology when
appropriate.
GRADE SCORE:
Score =
(1/3)*MidTerm + (1/3)*Final + (1/3)*Project, assuming class
participation.
EXAMS AND PROJECT
CS631 FIRST Exam is Thursday at the end of the FIRST TWO weeks in 4:30 - 7:15pm in the GMU campus classroom IN 206.
CS631 SECOND Exam is Thursday at the end of the SECOND TWO weeks in 4:30 - 7:15pm in the GMU campus classroom IN 206.
CS631 THIRD Deliverable Class Project is due at the end of C Term, delivered on a CD to Professor Rine's Mail Box in STII-430.
SYLLABUS CONTENT OUTLINE
1. Principles of Engineering Design and Modeling
2. Principles for Assessing the Quality of Design
3. Introduction to Design Patterns: Principles and Examples
4. Design Patterns in Designing Computer Systems and Applications
5. Programming Design Patterns in UML Industry Standard
6. Advanced Topics in Design Patterns.
PRELIMINARY sample ASSIGNMENTS IN THE GAMMA TEXTBOOK
A. Study of Important General Ideas on Design and Design Patterns. Study Book - End Chapters 1 and 6.
B. Study an Early Teaching Case Study of Design using Desigh Patterns. Chapter 2.
C. Study on Creational Design Patterns, Chapter 3. Study IN DETAIL
D. Study pp. 137-138 on Structural Design Patterns, Chapter 4. Study IN DETAIL
E. Study pp. 221-222 on Behavioral Design Patterns, Chapter 5. Study IN DETAIL
F. Code the above four Kinds of Design Patterns in UML (Rational Rose), including each one's static
--design structure as CLASS DIAGRAM, and dynamic design structure as SEQUENCE DIAGRAM.
--Store each coded design pattern in its own, separate EXPORTED PTL file package for later reuse.
--Begin to work on how you would automatically IMPORT each one of the above PTL packaged design
-----patterns into its best designed position in the sequence of actor, interface, boundary, control and entity
-----classes. For example, where would a proxy design pattern usually be inserted? Where would an observer
-----design pattern usually be inserted? Where would a facade design pattern usually be inserted?
REQUIRED TEXTBOOKS & MATERIALS
GAMMA {THEORY TEXT}
1. 'Design Patterns: Elements of Reusable Object-Oriented Software,' by Gamma, Helm and Vlissides,
Addison-Wesley
Publishers, 1995. Book comes with an optional CD.REQUIRED
THEORY
BOOCH {UML TEXT}
2.
Unified Modeling Language Users Guide,' by Booch et. al.,
Addison-Wesley Publishers, 1999. REQUIRED LAB
GUIDE
IBM
Rational Rose 2005 UML Software or Equivalent, Download IBM
Rational Rose Enterprise Edition 2005 from
http://www.rational.com
REQUIRED
LABORATORY COMPUTER HARDWARE AND SOFTWARE:
1.
Programming of Patterns Using UML and Abstract Java, Innovation
Hall 310 and STII 133 Labs
2.
Personal Computer, Windows 2000, ME, XP or Windows NT,
Connectivity to Internet/Web, Web Browser.
3.
Omni Lock Codes for PC CAD Labs in STII- 133. See http://www.ite.gmu.edu/labs
4.
Your own copy of IBM Rational Rose. You can optionally start with
the student UML 2 version on the CD in the back of the UML
Toolkit paperback book available on www.amazon.com
or in the textbooks section of the GMU Bookstore. However, this
beginner's version will not be sufficient for the course
project.
5. The
Class Project will Focus on
Design by use of Reusable Design and
Design Patterns in UML
Chapters/Exercises
Notes..
Weekly required lecture and project materials will be posted weekly on the repository of all class material in the following FTP directory:
These include
SOURCES
FOR CS631 LECTURE POWERPOINT SLIDES.
You must
download the PowerPoint CS631 Lecture slides before each
weeks lecture by either going to
UML (Unified
Modeling Language) is the defacto industry
standard for developing Object-oriented software. UML has
been certified by the international certifying organization
Object Management Group (OMG) whose web page is http://www.omg.org/UML is
evolving (UML 2) into the standard world-wide notation for
presenting object-oriented modeling and design. For those who can
afford to do so I would also recommend the very latest 'The
Unified Modeling Language Reference Manual, Second Edition,' by
Rumbaugh et. al., Covers UML 2.0, Has a CD ROM, Addison-Wesley,
2004-2005.
UML On-Line Tutorial from Borland - Together Software, Inc. Follows:
http://bdn.borland.com/article/0,1410,31863,00.html
Use this tutorial is an aid to your matery of UML fundamentals.
Please use this interactive UML tutorial as a review. It contains both examples and self-testing to allow your to improve your UML skills.
For even more UML Tutorials see the more general tutorial materials webpage at
http://bdn.borland.com/together/0,1419,12,00.html
Excellent supplementary study material can be, for optional readings, be found at this web site as well:
http://www.software-engin.com/
