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

DEPARTMENT OF COMPUTER SCIENCE

 

CS631/822 COURSE SYLLABUS

 

Fall 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) 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. PhD students can take the course as IT822, if required.

 

The class begins Thursday 4:30 - 7:10pm from the GMU campus classroom .

 

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 have accounts 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 with Design Patterns

 

 

Professor David Rine; Department of Computer Science

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

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

STII Room 345 Office

Phone 703-993-1546 Office

Email drine@cs.gmu.edu

 

OFFICE/LAB HOURS:

 

 

Office Hours for Professor Rine, Fall 2005: 2:15 - 4:00 pm. Thurs. in STII-345.

 

Our Lab teaching and help sessions in STI and STII-133 will be announced. Mr. Raheem Rufai is the tutor (rrufai@gmu.edu) .

 

See the posting outside the STI and STII-133 rooms, 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. Rufai.

 

Our Lab teaching and help sessions are in STI and STII-133. They will be held periodically Monday through Friday. Mr. Raheem Rufai is the Laboratory Tutor and you should look for his hours of availability. His email is rrufai@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- or STII-133. You can also use Innovation Hall 310 or STII-133 during normal hours or get an omni lock code for all other hours. See

 

 see http://www.ite.gmu.edu/labs/. for further details.

 

LAB ASSISTANT:

 

 

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

 

Mr. Raheem Rufai at rrufai@gmu.edu

 

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

 

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, 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.

 

 

After the semester starts up, you will be asked to download a full commercial WINDOWS version of IBM Rational Rose 2005 from http://www.rational.com/ and then use its Key Administrator tool to activate IBM Rational Rose 2005 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 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 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 fall-05 Finals schedule is at the link

 

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

 

EXAMS AND PROJECTS

 

CS631 (both Sections) Midterm Exam is Thursday October 13th, 4:30 - 7:15pm in the GMU campus classroom.

 

CS631 (both Sections) Final Exam is at the GMU Scheduled Time, 4:30 - 7:15pm in the GMU campus classroom.

 

CS631 (both Sections) Class Project is due at the Final Exam, 4:30 - 7:15pm in the GMU campus classroom.

 

 

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 and Abstract Java

 

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

 

Proxy Design Pattern, pp. 207-217

Facade Design Pattern, pp. 185-193

Composite Design Pattern, pp. 163-173.

 

E. Study pp. 221-222 on Behavioral Design Patterns, Chapter 5. Study IN DETAIL

 

Observer Design Pattern,

pp. 293 - 303.

 

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 a 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 SOFTWARE

 

 

ADDITIONAL REQUIRED READINGS

 

 

In addition to the the above textbook readings you are also required to ready and study, 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, 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 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:

ftp://mason.gmu.edu/drine/cs631

 

These include

 

SOURCES FOR CS631 LECTURE POWERPOINT SLIDES.

 

You must download the PowerPoint CS631 Lecture slides before each week’s lecture by either going to

ftp mason.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