PATTERNS,PATTERNS,PATTERNS, PATTERNS,PATTERNS, PATTERNS, PATTERNS, PATTERNS
DEPARTMENT OF COMPUTER
SCIENCE
CS631/822
COURSE SYLLABUS
Spring
2005
Sections CS631-001 and NEW Internet section CS631-002
CS631 is an Advanced Computer Science and Software Engineering Design Course.
I. COURSE INTRODUCTION.
Course
Description. (3:3:0). Prerequisites:
SWE619 or SWE620 or 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. Design patterns are created
in the logic view of the software system. A study of generalized
design solutions for generalized software design problems. A
study of the reuse of design patterns. Once developed, design
patterns may be specified in any object-oriented language. PhD
students can take the course as IT822, if required.
The class begins Thursday January 27th 4:30 - 7:10pm from the GMU campus classroom STII-12.
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
Distance Education Section cs631-002
Thursdays in STII-12, 4:30 - 7:10pm. Distance Education Section cs631-002 use the following link: http://disted.ite.gmu.edu
IMPORTANT. This course is delivered to the Internet section online by Network EducationWare (NEW). Students in all sections have accounts on NEW and can play back the lectures and download the PDF slide files at http://disted.ite.gmu.edu.
This course is delivered to the Internet section online by NetworkEducationWare (NEW). Students in all sections haveaccounts on NEW and can play back the lectures and download the PDF slide files at http://disted.ite.gmu.edu.
http://disted.ite.gmu.edu
to use the NET system NEW.
Regarding http://disted.ite.gmu.edu. Any student who pre-registered for your section already has an account; they just need to "request password" and the password will be emailed to their GMU account.
II. DETAILED COURSE DECRIPTION
CS 631 Object-Oriented Design Patterns
Professor
David Rine; Department of Computer Science
http://www.cs.gmu.edu/
ftp://mason1.gmu.edu/drine/cs631 to get PowerPoint Lecture Slides [PDF by a special request]
STII
Room 345
Phone
703-993-1546
Email drine@cs.gmu.edu
OFFICE/LAB HOURS:
Office
Hours for Professor Rine, Spring 2005: 2:45 - 4:15 pm. Thurs. in
STII-345.
Our
Lab teaching and help sessions in STII-17 and STII-133 will be
announced. Mr. Mahmoud Elish is the tutor (melish@gmu.edu) .
See
the posting outside the STII-17, as well as STII-136-37, and see
http://www.ite.gmu.edu/labs/.
If you wish to attend a tutor teaching on Rational Rose UML attend one of those for my CS421 students in the schedule posted by Mr. Elish.
Our Lab teaching and help sessions are in STI - 128 and STII-133-137. They will be held periodically Monday through Friday. Mr. Mahmoud Elish is the Laboratory Tutor and you should look for his hours of availability. His email is melish@gmu.edu . Please contact him directly with any Lab questions you may have. The posting of the repeated tutor sessions is always found by seeing his posting for STI-128 STI-128 or 133-137. You can also use Innovation Hall 310 or STII-133-137 during normal hours or get an omni lock code for all other hours See
see
http://www.ite.gmu.edu/labs/.
LAB ASSISTANT:
The following CS631 Assistant will staff STI-128 or STII-133-137 and hold Office Hours, which they will have posted. Email them for help to:
Mr.
Mahmoud Elish melish@gmu.edu.
STI
- 128 or STII-136-137 is the location of the usual CS421-631
teaching and tutoring sessions. Please attend regularly when
possible.
STII-133-137
LAB OPEN TIMES.
To
see the times that the STII- 133-137 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 2004 software in STII- 133-137 and 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 2004 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 project.
CONTENT DESCRIPTION:
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 midterm examination and a final 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.
The spring-05 Finals schedule is at the link
http://registrar.gmu.edu/examsched05b.html
EXAMS AND PROJECTS
CS631 (both Sections) Midterm Exam is March, 4:30 - 7:15pm in the GMU campus classroom.
CS631 (both Sections) Final Exam is May, 4:30 - 7:15pm in the GMU campus classroom.
CS631 (both Sections) Class Project is due May, 4:30 - 7:15pm in the GMU campus classroom.
SYLLABUS CONTENT OUTLINE
1. Principles of Engineering Design and Modeling
2. Introduction to Design Patterns: Principles and Examples
3. Design Patterns in Designing Computer Systems and Applications
4. Programming Design Patterns in UML and Abstract Java
5. Advanced Topics in Design Patterns.
HOMEWORK ASSIGNMENTS DUE
Thursdays FEBRUARY - Study the Lecture Notes from JANUARY and then DO THE FOLLOWING:
PRELIMINARY ASSIGNMENTS IN THE GAMMA TEXTBOOK
A. Study pp. 221-222 on Behavioral Design Patterns, Chapter 5. Study IN DETAIL Observer Design Pattern,
pp. 293 - 303.
B. Study pp. 137-138 on Structural Design Patterns, Chapter 4. Study IN DETAIL
Proxy Design Pattern, pp. 207-217
Facade Design Pattern, pp. 185-193
Composite Design Pattern, pp. 163-173.
C. Code the above four 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?
D. As HOMEWORK, hand in the results of your UML coding in part C. above. Section 001 turns
these in
as printouts.
REQUIRED TEXTBOOKS & MATERIALS
GAMMA {THEORY}
1. 'Design Patterns: Elements of Reusable Object-Oriented Software,' by Gamma, Helm and Vlissides,
Addison-Wesley
Publishers, 1995. Book comes with a CD.REQUIRED
THEORY
BOOCH {UML}
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
ADDITIONAL REQUIRED READINGS
In addition to the the above textbook readings you are also required to ready and studt, as background, the following study on reuse practices:
http://www.gmu.edu/depts/survey/
REQUIRED
LABORATORY COMPUTER HARDWARE AND SOFTWARE:
1.Programming
of Patterns Using UML and Abstract Java, STII Labs 17, 136-137
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-137. 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 Lab
Project will Focus on Reusable Design and Design Patterns in UML
Chapters/Exercises.
SOURCES
FOR CS631 LECTURE POWERPOINT SLIDES.
You can
download the PowerPoint CS631 Lecture slides before each
days lecture by either going to
ftp
mason1.gmu.edu/drine/cs631
NET NEW for the
Distance Education Students CS631-002.
The
following URL is also used to download the NET distance education
software NET NEW.
http://disted.ite.gmu.edu
If you
are in the distance education section, use NET NEW at http://disted.ite.gmu.edu
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/
OTHER RELATED REFERENCES
DESIGN PATTERNS
Additional Notes on Design Patterns
PRODUCT LINES
Additional New Research on Product Lines http://www.sei.cmu.edu/SPLC2004