PATTERNS, PATTERNS, PATTERNS, PATTERNS, PATTERNS, PATTERNS, PATTERNS, PATTERNS

DEPARTMENT OF COMPUTER SCIENCE

COURSE SYLLABUS

 IT822 is an Advanced Computer Science and Software Engineering Design Course.

Course Description. (3:3:0). Prerequisites: PhD program standing and (SWE621 or SWE620 or INFS622) and (CS540 or CS571 or INFS614) and 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 Distance Ed. version of the course with permission from the Professor.

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

 Thursdays in STI-126, 4:30 - 7:10pm. With Special Permission, Distance Education Section cs631-002 use the following link:

http://netlab.gmu.edu/disted/ to use the NET system NEW.

Regarding http://netlab.gmu.edu/disted. Any student who pre-registered for your section already has an account; they just ned to "request password" and the password will be emailed to their GMU account.

CS 822 Object-Oriented Design Patterns

Spring 2003

 

Professor David Rine; Department of Computer Science

http://www.cs.gmu.edu/ or go to

ftp://mason1.gmu.edu/drine/cs631 to get PowerPoint Lecture Slides [PDF by a special request]

ST2 Room 345

Phone 703-993-1546

Email drine@cs.gmu.edu

 

OFFICE/LAB HOURS:

Office Hours for Professor Rine, Spring 2003: 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.

See the posting outside the STII-17, as well as STII-133, 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 CS631 students in the

 schedule above in http://www.ite.gmu.edu/labs/. Note the Saturday session.

LAB ASSISTANTS:

 The following CS631 Assistant will staff STII-17 or STII-133 and hold Office Hours, which they will have posted. Email them for help to:

Mr. Mahmoud Elish melish@gmu.edu.

STII-17 or STII-133 is the location of the usual 631 teaching and tutoring sessions. Please attend regularly when possible.  

 

STII-17, 133 LAB DEDICATED TIMES.

 

To see the times that the STII-17, 133 Rational Rose Lab is dedicated to CS631 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.

 Our Lab teaching and help sessions are in STII-17and STII-137. They will be Monday through Thursday, plus Saturday. Mr. Mahmoud Elish is the Laboratory Tutor on Wednesday afternoons, Thursdays and Saturdays. His email is melish@gmu.edu . Ms. Mirza is the other Laboratory Tutor on Mondays, Tuesdays, and Wednesday mornings. Her email is smirza@gmu.edu Please contact them directly with any Lab questions you may have. The posting of the repeated tutor sessions is always found by seeing the posting outside the STII-17, 137 or see http://www.ite.gmu.edu/labs/.

 

RATIONAL SOFTWARE.

In addition to the Rational Rose WINDOWS version 2003 software in STII-17, 133 and subset of version 4.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 2003 Edition, SoDA, RequisitPro and other interesting tools by going to http://www.rational.com/ and clicking on the ‘Try It’ entry on the first page.

After the semester starts up, you will be asked to download a full commercial WINDOWS version of Rational Rose 2003 from http://www.rational.com/ and then use its Key Administrator tool to activate Rational Rose 2003 by use of the Key and Account numbers distributed in your class through the following URL

https://licensing.rational.com/accountlink/transactionType.

You will use this WINDOWS version of Rational Rose (UML programming environment) to do your class project.

 

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:

 

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 design project comprises the remaining 1/3 of the class grade. It is understood that the design 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

The spring-03 Finals schedule is at the link

http://registrar.gmu.edu/examsched03s.html

 

SYLLABUS CONTENT OUTLINE

1. Introduction to Design Patterns: Principles and Examples

2. Design Patterns in Designing Computer Systems

3. Programming Design Patterns in UML and Java

4. Advanced Topics in Design Patterns.

Thursdays FEBRUARY - Study the Lecture Notes from JANUARY and then DO THE FOLLOWING:

ASSIGNMENT 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 bother 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. PhD students may wish to begin a research study about advances in design with patterns.

 

REQUIRED TEXTBOOKS

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

2. ‘Java Design Patterns: a Tutorial,' by Cooper, Addison-Wesley Publishers. Book comes with a CD.

3. “UML Toolkit”, 1998, Eriksson, John Wiley, CD-ROM.Or "Unified Modeling Language Users Guide", 1999., Booch et. al. OPTIONAL

4.Rational Rose 2002 UML Software or Equivalent, Download Rational Rose Enterprise Edition 2002 from

http://www.rational.com

5.Enterprise Rational Rose 2002 UML STII-Lab Room 17 or STII-133 Accounts and Materials.

Rational Suite Enterprise, including Enterprise Rational Rose 2002-2003 UML STII-Labs

Room 133 Accounts and Materials.

 

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 HARDWARE AND SOFTWARE:

 

1.Programming Patterns Using UML and Java, STII Labs 17, 133

2.Personal Computer, Windows 2000, ME, XP or Windows NT, Connectivity to Internet/Web, Web Browser.

3.Accounts and Omni Lock Codes for PC CAD Labs in STII-17, 133. See http://www.ite.gmu.edu/labs

4.Your own copy of Rational Rose. You can optionally start with the student 4.0 version on the CD in the back of the UML Toolkit paperback book available 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/Studies.

 TBD1 ftp://mason1.gmu.edu/drine/cs631

 TBD2 ftp://mason1.gmu.edu/drine/cs631

SOURCES FOR IT822 LECTURE POWERPOINT SLIDES.

 

You can download the PowerPoint CS631 Lecture slides before each day’s 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://netlab.gmu.edu/disted/

If you are in the distance education section, use NET NEW at http://netlab.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 into the standard world-wide notation for presenting object-oriented modeling and design.

UML On-line Tutorial fromAltogether, Inc. Follows:

http://www.togethersoft.com/services/practical_guides/umlonlinecourse/index.html

Use this tutorial is an aid to your matery of UML fundamentals.