Understanding and Using Patterns in Software Development - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Understanding and Using Patterns in Software Development

Description:

Relate pattern types to the main models built during software development. ... Bruno Van Damme, Evert Arckens and Viviane Jonckers, IEEE - Technology of Object ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 24
Provided by: venusCs
Category:

less

Transcript and Presenter's Notes

Title: Understanding and Using Patterns in Software Development


1
Understanding and UsingPatterns in Software
Development
AuthorsDirk Riehle and Heinz Züllighoven
Presented by Yedidya Ben-Avraham
2
Purpose
  • Present crucial characteristics of a pattern.
  • Relate pattern types to the main models built
    during software development.
  • Analyze different pattern forms to describe
    patterns based on their intended use.
  • Propose pattern handbook.

3
Definition of a Pattern
  • A pattern is the abstraction from a concrete form
    which keeps recurring in specific non-arbitrary
    contexts.
  • The form of a pattern consists of a finite number
    of visible and distinguishable components and
    their relationships.
  • A context constrains the pattern and gives birth
    to its form.

4
Example Pattern
  • The Distinction of Tools and Materials
  • An application domain for developing a software
    system, should separate tools from materials and
    analyze the ways tools are used to work on
    materials.
  • A pencil is seen as a tool used to fill in a form
    as its material.
  • The distinction between tools and materials
    serves as a (high-level) software design pattern.
  • Tool objects work on material objects.

5
Example collection of tools and materials in the
office domain.
6
Patterns and Models
  • Software engineering distinguishes between three
    main models and pattern types
  • Models
  • Application domain model
  • Software design model
  • Implementation model
  • Patterns
  • Conceptual patterns
  • Design patterns
  • Programming patterns

7
Conceptual patterns
  • A conceptual pattern is described by an
    application domain.
  • Conceptual patterns should be based on metaphors
    found in the application domain.
  • Conceptual patterns should be geared towards a
    restricted application domain.

8
Example
  • Model-View-Control
  • View - The view has the task of presenting the
    data to the user.
  • Controller This is the part of the interface
    that lets the user change the model data.
  • Model - encapsulates the data and the functions
    managing them.

View
Controller
Model
9
Design patterns
  • A design pattern is described by means of
    software design constructs.
  • Design patterns should fit the conceptual space
    opened by conceptual patterns.

10
Example
  • Observer
  • Subject A subject may have any number of
    dependent observers.
  • Observers All observers are notified whenever
    the subject undergoes a change in state.

11
Programming patterns
  • A programming pattern is described by means of
    programming language constructs.
  • Example of an implementation pattern is a C style
    loop found in many C program.
  • for (i0 iltmax i) ...

12
Model and pattern interrelationships
  • Application domain analysis and high-level system
    design are identified using conceptual patterns.
  • Software designs are developed using design
    patterns.
  • Software systems are implemented using
    programming patterns.

13
Example for the application of the software
design pattern Tool and Material Coupling.
14
Pattern Description Forms
  • Most researchers seem to agree that patterns
    should be presented in a structured form.
  • Three pattern forms stand out.
  • Alexandrian form
  • Design Pattern Catalog form
  • General form

15
Alexandrian form
  • This form consists of at least three sections
  • Problem
  • Context
  • Solution
  • The intended use of this pattern form is to guide
    users to generate solutions for the described
    problems.

16
Alexandrian form table for describing patterns.
17
Design Pattern Catalog form
  • A structured form is used to describe
    object-oriented software design patterns using a
    template.
  • Template consists of a number of sections
  • Structure and its dynamics are the form of a
    pattern.
  • Motivation, applicability and consequences
    sections capture the context of the pattern.
  • The intended use of this pattern form is also to
    help users create solutions to problems. They
    focus less on when to apply the pattern but more
    on the actual structure and dynamics of the
    pattern itself.

18
A general form
  • The general pattern form consists of two sections
  • Context
  • Pattern
  • The intended use of this description form is to
    discuss the structure and dynamics of the
    recurring form and its context without promoting
    a specific way of using the pattern.

19
Pattern Handbook
  • A pattern handbook is needed.
  • A pattern handbook is defined as
  • Being a handy work of print that concisely
    summarizes the relevant concepts from a domain.

20
Pattern Handbook (Contd.)
  • A pattern handbook for software development might
    consist of the following sections
  • An introduction and overview.
  • An outline of the characteristics of the
    respective application domain
  • Typical workplaces
  • Types of cooperation and communication
  • Standard problems and their solutions.
  • A section on an appropriate development strategy
  • Ex Evolutionary software development with
    prototypes and participatory design.
  • A structured pattern set
  • Conceptual patterns
  • Software design patterns
  • Programming patterns (depending on the level of
    detail appropriate).

21
Questions ?
22
References
  • 1. A Metamodeling Approach to Pattern-Based
    Model Refactoring, Robert France, Sudipto Ghosh,
    Eunjee Song and Dae-Kyoo Kim, IEEE - Software,
    September 2003
  • 2. Automatic Generation of User Interfaces using
    the Set Description Language, Edoardo Ardizzone,
    Vincenzo Cannella, Daniele Peri and Roberto
    Pirrone, IEEE
  • 3. Building an OMT-Editor Using Design Patterns
    An Experience Report, Bart Wydaeghe, Kurt
    Verschaeve, Bart Michiels, Bruno Van Damme, Evert
    Arckens and Viviane Jonckers, IEEE - Technology
    of Object-Oriented Languages and Systems , 1998

23
References (Contd.)
  • 4. Observer Pattern using Aspect-Oriented
    Programming, Eduardo Kessler Piveta and Luiz
    Carlos Zancanella, 2003, http//www.cin.ufpe.br/s
    ugarloafplop/final_articles/20_ObserverAspects.pdf
  • 5. Understanding and Using Patterns in Software
    Development, Dirk Riehle and Heinz Züllighoven,
    IEEE, 1996
  • 6. What is a pattern?, Aleksandra Teanovic,
    IEEE Computer Society Press, 1996,
    http//www.ida.liu.se/uweas/Lectures/DesignPatter
    ns01/tesanovic-WhatIsAPattern.pdf
Write a Comment
User Comments (0)
About PowerShow.com