Synthesis Methodology

The Synthesis Approach to Object-Oriented Development

Background

Synthesis is a methodology for analyzing and designing object-oriented systems. It is a response to the needs of the object-oriented business community, whose systems are much more complex than systems created with traditional software-engineering techniques.

The Synthesis methodology comprises a set of activities, which, when executed in an appropriate order, yield a working system and repository of software for future needs. Each activity is carried out using one or more techniques to produce that activity’s deliverable. Each deliverable is expresses in a notation that is a combination of diagrams and textual definitions.

Synthesis takes the most important and resilient software-engineering ideas of the past three decades and synthesizes them with the fundamental ideas of object-orientation. This yields a methodology whose foundations are based in proven techniques but which is also capable of meeting the sophisticated needs of object-orientation. Synthesis therefore provides software engineers with a way to adapt, improve and extend software skills into the object-oriented realm of the coming century.

Although Synthesis was developed for projects whose systems are coded in fully object-oriented languages (such as C++, Java, Smalltalk or Eiffel), you may also use some aspects of the Synthesis approach on projects using non-object-oriented languages.

Thus, Synthesis:

  • Comprises project activities with techniques that capitalize on what you already know about software engineering
  • Is equally weighted towards the gathering of system requirements and the design of a system solution
  • Marries the process and data views of a system, an idea that’s central to object orientation
  • Encourages the separation of essential and technological concerns
  • Provides notations for the system designer and the requirements analyst
  • Provides a vital framework for projects that intend to build realistic object-oriented or object-based applications for the business world, especially those with a graphical user interface

Detailed activities of Synthesis

Synthesis comprises thirteen activities, which take you smoothly from concept to code. They are:

  • Establish charter
  • Derive class-association model
  • Derive event / use case model
  • Derive context model
  • Derive human-interface model
  • Design application architecture
  • Design use cases
  • Design class external interfaces
  • Design human interface
  • Design class internals
  • Construct new software components
  • Deploy application
  • Feed and care for the library (class repository)