FIGUE
+Figue *Intro *Requirements *Download *Getting Started
*What's New *FAQs *How To *Demos *Contributions
*Tutorial *API *Limits & Bugs *Design

Design Notes [PENDING : Obsolete documentation]

An easy to print version of this document is available.

The formal notation used to denote relationship between classes and objects is UML. The design is described and documented with the well known Gang of Four's system of pattern. Despite the number of source dealing with coding standard our main guidelines are rather simples. Our naming conventions are also quite conventional.

The system decomposition according to high level topics provides a good entry point to browse the specification.

Scanning the API documentation generated by Javadoc is another way to get a better view of the design, since we provide cross references between both documents.

* Main Design Guidelines

  • Program to an interface, not an implementation.
  • Favor object composition over class inheritance.

Keeping in mind the goal of providing an extensible framework this explain why interfaces prevail in the Java API. Ideally the design should be completely captured in interfaces. In particular, the classes should collaborate through interfaces, not concrete classes.

* Naming Conventions

Package:
fr.inria.croap.lowercase
Class:
CapitalizedWithInternalWordsAlsoCapitalized
Exception class:
ClassNameEndsWithException
Error class:
ClassNameEndsWithError
Interface:
NameEndsWithInterface
Constants and public class variables:
UPPER_CASE_WITH_UNDERSCORES
Private variables:
_leadingUnderscoreFirstWordLowerCaseButInternalWordsCapitalized
Method:
firstWordLowerCaseButInternalWordsCapitalized()
Reading accessor:
Type getValueName()
Writing accessor:
void setValueName(Type aValue)
Predicat:
boolean isPredicatTrueOrFalse()
Factory method:
Type newObject()

* High Level Topics


+Figue *Intro *Requirements *Download *Getting Started
*What's New *FAQs *How To *Demos *Contributions
*Tutorial *API *Limits & Bugs *Design

Comments or suggestions?
Need some help?
Copyright ©1998 INRIA
Last updated 2 November 1998 by Bruno Conductier
FIGUE