UC IRVINE - ICS 125 PROJECT IN SYSTEM DESIGN

PROJECT DESCRIPTION


UML Design Pattern Critics

Client: Jason Robbins (Graduate Research Assistant)

Summary

Students will write "critics" in a design assistant system called Argo to implement design patterns.

Description

Students will learn UML and some of the patterns from the Design Patterns book. They will learn to write critics in Argo to detect the applicability of a pattern in a given UML design and they will develop stereotypes to represent and enforce the roles played in each pattern. This will demand that they gain a strong understanding of object-oriented design. They will need to write code that integrates into the Argo/UML system, and they will need to author HTML description files that explain to Argo/UML users the meaning and benefit of each pattern. Extra credit if they write user interface wizards that guide Argo/UML users through the steps of applying a suggested design pattern.

Skills to be Learned

Why Choose This Project

Anyone who has looked through a C++ or Java book can say that they know object-oriented programming, but really knowing it and being able to do something difficult with it requires knowledge of some detailed implementation techiques, patterns, and trade-offs. For example, when should an OO program use interfaces instead of abstract classes? What possible ways are there to implement many-to-many relationships? What is a generic way to implement recursive methods that are flexible and robust even if your design allows cycles? If you work on this project you will have knowledge and confidence in these design decisions.

Unlike the code generation project, this project will emphasize conceptual understanding of design issues and patterns and your ability to communicate these concepts to others via critics.

The development and distribution of free software over the internet is challenging and rewarding. A free software package called GEF was originally developed by ICS 125b students two years ago, and has now been used by over 500 people, including students doing project course at other universities, governement researchers, and commercial software developers. Unlike a homework assignment, the results your team produces will be looked at and used by other people. Students may optionally produce a web site to promote and distribute the UML implementation.


ICS125 SQ98 Project Opportunities
ICS125 SQ98
David F. Redmiles ­ Home Page
Department of Information and Computer Science
University of California, Irvine CA 92717-3425