About Patterns, Principles and Practices of Object Oriented Design Design Patterns 26/11/08 Author: Frederico Gonçalves
Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li><...
Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li><...
The Origins of Patterns <ul><li>Christopher Alexander, Professor of Architecture at the University of California, Berkeley...
GoF – Object Oriented Patterns <ul><li>Gamma, Erich; Helm, Richard; Johnson, Ralph & Vlissides, John (1995).  Design Patte...
Pattern’s Definitions <ul><li>“ Each pattern describes a  problem which occurs over and over again  in our  environment , ...
GoF Design Patterns <ul><li>The design patterns are  descriptions of communicating objects and classes  that are  customiz...
GoF Design Patterns <ul><li>In general, a pattern has four essential elements: </li></ul><ul><ul><li>The  pattern name  wh...
GoF Patterns Catalogue 26/11/08 Author: Frederico Gonçalves Purpose Creational Structural Behavioral Scope Class Factory M...
Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li><...
Principles Behind Patterns <ul><li>Encapsulates what varies </li></ul><ul><ul><li>Regardless of application domain, techno...
Principles Behind Patterns <ul><li>Programming to interfaces, not to implementations </li></ul><ul><ul><li>Direct class re...
Principles Behind Patterns <ul><li>Strive to use objects composition over classes inheritance </li></ul><ul><ul><li>Class ...
<ul><li>Model for first Sprint! </li></ul>Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves New requirement: Knights and Orcs shall attack with a swor...
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Overwrite attack
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves But also need to overwrite method with all implementation ...
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Create arrowAtack()
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves This leads to all characteres  Inheriting a behavior they ...
<ul><li>Lets see how we could apply the principles to solve the problem </li></ul><ul><ul><li>Encapsulate what varies </li...
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Flexible design  to include new behaviours, apply them to ...
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Strategy  captures design principles to create a flexible ...
Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Strategy  captures design principles to create a flexible ...
Principles Behind Patterns <ul><li>These and other principles are a common to other design patterns  </li></ul>26/11/08 Au...
Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li><...
Why Patterns <ul><li>Reuse effective design solutions </li></ul><ul><li>Create high quality products strengthening the use...
Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li><...
The Design Problem <ul><li>Designs intends to be: more flexible, extensible, portable, modular, reusable, elegant and unde...
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Analysis  is the identification of essential system characteri...
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Analysis object model  is a composition of objects that reflec...
<ul><li>Performance </li></ul><ul><ul><li>Average </li></ul></ul><ul><ul><li>Worst-case </li></ul></ul><ul><ul><li>Predict...
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Design  is the selection of one particular solution which opti...
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves In the Design  we should optimize the Analysis Model according...
When to Apply Patterns 26/11/08 Author: Frederico Gonçalves In the Design  we should optimize the Analysis Model according...
<ul><li>Try to select patterns that match your design problem (model and design criteria)‏ </li></ul><ul><li>Example, the ...
Selecting a Pattern <ul><li>Consider how design patterns solve design problems and the design principles associated to the...
How/When to Apply Patterns <ul><li>Construct the initial model </li></ul><ul><li>Identify the design criteria </li></ul><u...
Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li><...
Patterns in the Mobile Domain <ul><li>MVC recommended for J2ME. Also other patterns around: Observer, Abstract Factory... ...
<ul><li>Architectural patterns: </li></ul><ul><ul><li>Model-View-Controller (MVC)‏ </li></ul></ul><ul><ul><li>Client-serve...
One-Function Pattern <ul><li>“ Identification of Design Patterns for Mobile Services with J2ME”; J. Narsson et al.; 2008 <...
Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li><...
Conclusion <ul><li>Design Patterns are generalized solutions for common problems </li></ul><ul><li>Understanding design pr...
Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li><...
References <ul><li>“ Design Patterns: Elements of Reusable Object Oriented Software”;  1995; Gamma et al. </li></ul><ul><l...
<ul><li>? </li></ul>Questions 26/11/08 Author: Frederico Gonçalves
Upcoming SlideShare
Loading in...5
×

Design Patterns

3,543

Published on

Presentation performed in Venturus regarding Design Patterns and their application for mobile software development.

Published in: Technology
1 Comment
9 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,543
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

Design Patterns

  1. 1. About Patterns, Principles and Practices of Object Oriented Design Design Patterns 26/11/08 Author: Frederico Gonçalves
  2. 2. Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li></ul><ul><li>How/When to use Patterns </li></ul><ul><li>Patterns in the Mobile Domain </li></ul><ul><li>Conclusion </li></ul><ul><li>References </li></ul>26/11/08 Author: Frederico Gonçalves
  3. 3. Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li></ul><ul><li>How/When to use Patterns </li></ul><ul><li>Patterns in the Mobile Domain </li></ul><ul><li>Conclusion </li></ul><ul><li>References </li></ul>26/11/08 Author: Frederico Gonçalves
  4. 4. The Origins of Patterns <ul><li>Christopher Alexander, Professor of Architecture at the University of California, Berkeley, director of the Center for Environmental Structure </li></ul><ul><li>Alexander, with his colleagues, published a series of books: </li></ul><ul><ul><li>The Timeless Way of Building (1979)‏ </li></ul></ul><ul><ul><ul><li>Presents a new theory of architecture, building and planning </li></ul></ul></ul><ul><ul><ul><li>“ There is one timeless way of building. It is a thousand years old, and the same today as it has ever been…” </li></ul></ul></ul><ul><ul><li>A Pattern Language (1977)‏ </li></ul></ul><ul><ul><ul><li>Provides general rules, methods and practices for constructing practical, safe and attractive designs at every scale. </li></ul></ul></ul>26/11/08 Author: Frederico Gonçalves
  5. 5. GoF – Object Oriented Patterns <ul><li>Gamma, Erich; Helm, Richard; Johnson, Ralph & Vlissides, John (1995). Design Patterns, Elements of Reusable Object-Oriented Software . Addison-Wesley, Boston. </li></ul><ul><li>Referred commonly as Gang of Four or GoF </li></ul><ul><li>Used the concept Design Pattern in a Object-Oriented perspective </li></ul>26/11/08 Author: Frederico Gonçalves
  6. 6. Pattern’s Definitions <ul><li>“ Each pattern describes a problem which occurs over and over again in our environment , and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.” Christopher Alexander </li></ul><ul><li>“ A design pattern systematically names, motivates and explains a general design that addresses a recurring design problem in object-oriented systems .” GoF </li></ul>26/11/08 Author: Frederico Gonçalves
  7. 7. GoF Design Patterns <ul><li>The design patterns are descriptions of communicating objects and classes that are customized to solve a general design problem in a particular context </li></ul><ul><li>It describes the problem , the solution , when to apply the solution, and its consequences . </li></ul><ul><li>It also gives implementation hints and examples. </li></ul>26/11/08 Author: Frederico Gonçalves Design Patterns are proven and generalized solutions to recurring problems in Object Oriented design
  8. 8. GoF Design Patterns <ul><li>In general, a pattern has four essential elements: </li></ul><ul><ul><li>The pattern name which in a word or two provides a handle and vocabulary for discussing and using the pattern. </li></ul></ul><ul><ul><li>The problem which explains the problem and the context in which the pattern is applicable. Sometimes a list of conditions that must be met to apply the pattern is included. </li></ul></ul><ul><ul><li>The solution which describes the elements of the pattern, their relationships, responsibilities, and collaborations. The solution is abstract, like a template. Though sometimes a concrete example in a certain programming language may be included. </li></ul></ul><ul><ul><li>The consequences which are the results and trade-offs of applying the pattern. These are critical for evaluating alternatives and understanding the costs and benefits of applying the pattern. </li></ul></ul>26/11/08 Author: Frederico Gonçalves
  9. 9. GoF Patterns Catalogue 26/11/08 Author: Frederico Gonçalves Purpose Creational Structural Behavioral Scope Class Factory Method Adapter (class)‏ Interpreter Template Method Object Abstract Factory Builder Prototype Singleton Adapter (Object)‏ Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor
  10. 10. Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li></ul><ul><li>How/When to use Patterns </li></ul><ul><li>Patterns in the Mobile Domain </li></ul><ul><li>Conclusion </li></ul><ul><li>References </li></ul>26/11/08 Author: Frederico Gonçalves
  11. 11. Principles Behind Patterns <ul><li>Encapsulates what varies </li></ul><ul><ul><li>Regardless of application domain, technology or programming language, there is one constant in software development </li></ul></ul><ul><ul><li>To design the system so that it's robust to such changes, you must consider how the system might need to change over its lifetime </li></ul></ul><ul><ul><li>Encapsulate what varies, so it can be changed (extended or modified) without affecting the whole system </li></ul></ul>
  12. 12. Principles Behind Patterns <ul><li>Programming to interfaces, not to implementations </li></ul><ul><ul><li>Direct class referencing leads to tight coupled objects that are hard to reuse since they depend on each other </li></ul></ul><ul><ul><li>Programming to interfaces reduces implementation dependencies re-enforcing reuse </li></ul></ul><ul><ul><li>Clients remain unaware of the classes implementing the objects they use </li></ul></ul>
  13. 13. Principles Behind Patterns <ul><li>Strive to use objects composition over classes inheritance </li></ul><ul><ul><li>Class inheritance is the most common design to reuse functionality </li></ul></ul><ul><ul><ul><li>However it's not possible to change the implementation inherited from the parent class at compile time. </li></ul></ul></ul><ul><ul><ul><li>The subclass is bound-up to the superclass implementation (white-reuse)‏ </li></ul></ul></ul><ul><ul><li>Object Composition is another way to promote reuse </li></ul></ul><ul><ul><ul><li>It's possible to change the reused functionality at run time </li></ul></ul></ul><ul><ul><ul><li>Reduces implementation dependencies (black-box reuse)‏ </li></ul></ul></ul>
  14. 14. <ul><li>Model for first Sprint! </li></ul>Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves
  15. 15. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves New requirement: Knights and Orcs shall attack with a sword, Elfos shall use arrows.
  16. 16. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Overwrite attack
  17. 17. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves But also need to overwrite method with all implementation for future Characteres  Bad code reuse! Overwrite attack
  18. 18. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Create arrowAtack()
  19. 19. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves This leads to all characteres Inheriting a behavior they may not use  Bad reuse! Create arrowAtack()
  20. 20. <ul><li>Lets see how we could apply the principles to solve the problem </li></ul><ul><ul><li>Encapsulate what varies </li></ul></ul><ul><ul><ul><li>Attack behavior could be implemented by a separate class </li></ul></ul></ul><ul><ul><li>Program to interfaces </li></ul></ul><ul><ul><ul><li>Generalize the behaviors to an interface so clients can refer to them in the same way </li></ul></ul></ul><ul><ul><li>Favor composition over inheritance </li></ul></ul><ul><ul><ul><li>Use composition instead of inheritance for the attack method </li></ul></ul></ul>Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves
  21. 21. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Flexible design to include new behaviours, apply them to different characters and change it at run time
  22. 22. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Strategy captures design principles to create a flexible solution for changing algorithms problems
  23. 23. Principles Behind Patterns 26/11/08 Author: Frederico Gonçalves Strategy captures design principles to create a flexible solution for changing algorithms problems Apply the patterns with criteria, extra complexity shall add value to your solution
  24. 24. Principles Behind Patterns <ul><li>These and other principles are a common to other design patterns </li></ul>26/11/08 Author: Frederico Gonçalves
  25. 25. Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li></ul><ul><li>How/When to use Patterns </li></ul><ul><li>Patterns in the Mobile Domain </li></ul><ul><li>Conclusion </li></ul><ul><li>References </li></ul>26/11/08 Author: Frederico Gonçalves
  26. 26. Why Patterns <ul><li>Reuse effective design solutions </li></ul><ul><li>Create high quality products strengthening the use of good practices and principles </li></ul><ul><li>Provides a common vocabulary of design concepts to developers </li></ul><ul><li>Documentation and learning tool </li></ul>26/11/08 Author: Frederico Gonçalves Patterns are proven solutions that can be reused to solve common problems without re-inventing the wheel.
  27. 27. Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li></ul><ul><li>How/When to use Patterns </li></ul><ul><li>Patterns in the Mobile Domain </li></ul><ul><li>Conclusion </li></ul><ul><li>References </li></ul>26/11/08 Author: Frederico Gonçalves
  28. 28. The Design Problem <ul><li>Designs intends to be: more flexible, extensible, portable, modular, reusable, elegant and understandable... </li></ul><ul><li>Finding the appropriated objects to achieve that is not easy </li></ul><ul><ul><li>Many conflicting factors come into play: encapsulation, granularity, dependency, flexibility, performance, evolution, reusability… </li></ul></ul><ul><ul><li>How to decompose the system into the right objects? </li></ul></ul><ul><li>Design Patterns help to solve the problem </li></ul>26/11/08 Author: Frederico Gonçalves
  29. 29. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Analysis is the identification of essential system characteristics, concepts and capabilities to create an initial design
  30. 30. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Analysis object model is a composition of objects that reflect your business. However the solution is not optimized Analysis is the identification of essential system characteristics, concepts and capabilities to create an initial design
  31. 31. <ul><li>Performance </li></ul><ul><ul><li>Average </li></ul></ul><ul><ul><li>Worst-case </li></ul></ul><ul><ul><li>Predictability </li></ul></ul><ul><li>Resource usage </li></ul><ul><ul><li>Robustness </li></ul></ul><ul><ul><li>Thread safety </li></ul></ul><ul><ul><li>Minimization of resources (space)‏ </li></ul></ul><ul><ul><li>Minimization of resources (time)‏ </li></ul></ul><ul><li>Changes, Extensibility & evolution </li></ul><ul><li>Reusability </li></ul><ul><li>Maintainability </li></ul><ul><li>Time-to-market </li></ul><ul><li>Standard conformance </li></ul>Identify your Design Criteria 26/11/08 Author: Frederico Gonçalves Design objectives and priorities shall drive your design optimization. They are essential for a good design.
  32. 32. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves Design is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
  33. 33. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves In the Design we should optimize the Analysis Model according to design criteria and using design patterns Design is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
  34. 34. When to Apply Patterns 26/11/08 Author: Frederico Gonçalves In the Design we should optimize the Analysis Model according to design criteria and using design patterns Patterns help to identify less obvious abstractions (which are rarely found at first modelling) and the objects that can capture them Design is the selection of one particular solution which optimizes the set of design criteria with respect to the relative importance of each
  35. 35. <ul><li>Try to select patterns that match your design problem (model and design criteria)‏ </li></ul><ul><li>Example, the Strategy pattern describes how to implement interchangeable families of algorithms. </li></ul>How to Apply Patterns 26/11/08 Author: Frederico Gonçalves
  36. 36. Selecting a Pattern <ul><li>Consider how design patterns solve design problems and the design principles associated to the patterns </li></ul><ul><li>Scan Intent sections. Read through each pattern's intent to find one or more that sound relevant to your problem. </li></ul><ul><li>Study how patterns interrelate. relationships between design patterns help direct you to the right pattern or group of patterns. </li></ul><ul><li>Study patterns of like purpose. The patterns can be classified according to their purpose (creational patterns, structural patterns and behavioral patterns). Try to understand their similarities and differences </li></ul><ul><li>Consider what should be variable in your design. Consider what you want to be able to change without redesign. </li></ul>26/11/08 Author: Frederico Gonçalves The best way to use patterns is to load your brain with them and then recognize places in your designs and existing applications where to apply them.
  37. 37. How/When to Apply Patterns <ul><li>Construct the initial model </li></ul><ul><li>Identify the design criteria </li></ul><ul><li>Rank the design criteria in order of importance </li></ul><ul><li>Identify design patterns that optimize the system or collaboration for the critical design criteria at the expense of the less important ones </li></ul>26/11/08 Author: Frederico Gonçalves Refactoring your initial design to identify patterns and better solutions is a common practice.
  38. 38. Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li></ul><ul><li>How/When to use Patterns </li></ul><ul><li>Patterns in the Mobile Domain </li></ul><ul><li>Conclusion </li></ul><ul><li>References </li></ul>26/11/08 Author: Frederico Gonçalves
  39. 39. Patterns in the Mobile Domain <ul><li>MVC recommended for J2ME. Also other patterns around: Observer, Abstract Factory... </li></ul><ul><li>MODPA (Mobile Design Patterns and Architectures)‏ </li></ul><ul><ul><li>Cooperation project carried out by Nokia and 5 other companies from 2005 upto 2006 </li></ul></ul><ul><ul><li>The project lists patterns with reported use in mobile environment </li></ul></ul><ul><ul><li>The report re-enforces the use of traditional Design Patterns (GoF) and lists a few specific Patterns for the mobile domain (interactive design patterns)‏ </li></ul></ul>26/11/08 Author: Frederico Gonçalves
  40. 40. <ul><li>Architectural patterns: </li></ul><ul><ul><li>Model-View-Controller (MVC)‏ </li></ul></ul><ul><ul><li>Client-server </li></ul></ul><ul><ul><li>Microkernel </li></ul></ul><ul><ul><li>Abstract factory </li></ul></ul><ul><ul><li>Active object </li></ul></ul><ul><li>General: </li></ul><ul><ul><li>State pattern </li></ul></ul><ul><ul><li>Observer </li></ul></ul><ul><ul><li>Adapter </li></ul></ul><ul><ul><li>Factory method </li></ul></ul><ul><ul><li>Singleton </li></ul></ul><ul><ul><li>Template method </li></ul></ul><ul><ul><li>Façade pattern </li></ul></ul><ul><li>Interactive content development (User Interface design): </li></ul><ul><ul><li>Cascading menu </li></ul></ul><ul><ul><li>Wizard dialog </li></ul></ul><ul><ul><li>Pagination </li></ul></ul><ul><ul><li>Slide Show </li></ul></ul><ul><li>Distribution patterns: </li></ul><ul><ul><li>Remote façade </li></ul></ul><ul><ul><li>Data Transfer Object </li></ul></ul><ul><ul><li>Remote proxy </li></ul></ul><ul><li>Resource management: </li></ul><ul><ul><li>Caching </li></ul></ul><ul><ul><li>Eager Acquisition </li></ul></ul><ul><ul><li>Lazy Acquisition </li></ul></ul><ul><ul><li>Virtual component </li></ul></ul><ul><li>Synchronization </li></ul><ul><ul><li>Synchronization </li></ul></ul><ul><li>Patterns for point-to-point communications: </li></ul><ul><ul><li>Communicator </li></ul></ul><ul><ul><li>Connection factory </li></ul></ul><ul><ul><li>Channels with configurable protocols </li></ul></ul><ul><li>Idioms: </li></ul><ul><ul><li>Two-phase construction </li></ul></ul><ul><ul><li>Cleanup stack </li></ul></ul><ul><ul><li>Thin template </li></ul></ul>MODPA Patterns 26/11/08 Author: Frederico Gonçalves
  41. 41. One-Function Pattern <ul><li>“ Identification of Design Patterns for Mobile Services with J2ME”; J. Narsson et al.; 2008 </li></ul><ul><ul><li>Proposes the use of the One-Function Design Pattern to address memory constraints </li></ul></ul><ul><ul><li>The One-Function Pattern was used in two J2ME applications to prove its reusability and reliability </li></ul></ul>26/11/08 Author: Frederico Gonçalves New design patterns shall be used carefully, they may refer to solutions that lack practical validation.
  42. 42. Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li></ul><ul><li>How/When to use Patterns </li></ul><ul><li>Patterns in the Mobile Domain </li></ul><ul><li>Conclusion </li></ul><ul><li>References </li></ul>26/11/08 Author: Frederico Gonçalves
  43. 43. Conclusion <ul><li>Design Patterns are generalized solutions for common problems </li></ul><ul><li>Understanding design principles behind design patterns help understand how they work and how to use them in a particular problem </li></ul><ul><li>Identifying your design objectives and priorities is essential for good design </li></ul><ul><li>Patterns are not the “silver bullet” but are an important tool for designers practices </li></ul>26/11/08 Author: Frederico Gonçalves
  44. 44. Agenda <ul><li>What are Design Patterns </li></ul><ul><li>Principles Behind Patterns </li></ul><ul><li>Why Patterns </li></ul><ul><li>How/When to use Patterns </li></ul><ul><li>Patterns in the Mobile Domain </li></ul><ul><li>Conclusion </li></ul><ul><li>References </li></ul>26/11/08 Author: Frederico Gonçalves
  45. 45. References <ul><li>“ Design Patterns: Elements of Reusable Object Oriented Software”; 1995; Gamma et al. </li></ul><ul><li>“ Head First, Design Patterns”; 2004; Freeman Eric et al. </li></ul><ul><li>MODPA </li></ul><ul><ul><li>http://www.titu.jyu.fi/modpa/index.htm </li></ul></ul><ul><li>“ Identification of Design Patterns for Mobile Services with J2ME”; J. Narsson et al.; 2008 </li></ul><ul><li>“ On Patterns and Pattern Languages”; Buschmann, Henney </li></ul>26/11/08 Author: Frederico Gonçalves
  46. 46. <ul><li>? </li></ul>Questions 26/11/08 Author: Frederico Gonçalves

×