Download presentation
Presentation is loading. Please wait.
Published byDelilah James Modified over 9 years ago
1
Department of Computer Science and Software Engineering Concordia University E NTERPRISE A PPLICATION D ESIGN P ATTERNS : I MPROVED AND A PPLIED Stuart Thiel sthiel@cs.concordia.ca February 11, 2010
2
2 Enterprise Application Design Patterns: Improved and Applied Outline A Brief Overview of Development Problems for Software Engineers A Progression Through Fowler’s Patterns Domain Objects and Improved Patterns Applying Patterns with the SoenEA Framework February 2010Stuart Thiel Outline
3
3 Enterprise Application Design Patterns: Improved and Applied Developers Work With Software Design Implement Test Maintain February 2010Stuart Thiel Developers Work With Software
4
4 Enterprise Application Design Patterns: Improved and Applied Developer Aids/Tools Programming Languages Integrated Development Environments Processes / Artifacts Patterns / Styles February 2010Stuart Thiel Developer Tools
5
5 Enterprise Application Design Patterns: Improved and Applied Problems Fowler describes architectural patterns, but no overall usage guidelines –High level patterns lack broad examples –Guidance on interrelation of patterns is sparse –Pattern theory / implementation separation ambiguous Cooking Analogy February 2010Stuart Thiel Problems
6
6 Enterprise Application Design Patterns: Improved and Applied Problems:: Few Simple Examples Trivial examples for Fowler’s patterns, usually covering only a piece of functionality February 2010Stuart Thiel P. Few Simple Examples
7
7 Enterprise Application Design Patterns: Improved and Applied Problems:: Interrelation Not Described Not usually covering more than one or two patterns at a time Discussion of interrelation limited February 2010Stuart Thiel P. Interrelation Not Described
8
8 Enterprise Application Design Patterns: Improved and Applied Problems:: Theory Mixes with Implementation, or is Kept Apart Lazy Load Unit of Work February 2010Stuart Thiel P. Theory Implementation
9
9 Enterprise Application Design Patterns: Improved and Applied Problems Summary The components of a solution are available We can readily identify patterns in existing software There is no description of what to do February 2010Stuart Thiel Problem Summary
10
10 Enterprise Application Design Patterns: Improved and Applied Solutions Review of Existing Patterns An Additional Patterns Refined Patterns SoenEA February 2010Stuart Thiel
11
11 Enterprise Application Design Patterns: Improved and Applied Existing Patterns Review of Existing Patterns Fowler identifies important patterns They need context wrt each other Transaction Script to complex Domain Model February 2010Stuart Thiel
12
12 Enterprise Application Design Patterns: Improved and Applied Additional Patterns Additional Pattern Domain Object Front Command Dispatcher List Proxy February 2010Stuart Thiel
13
13 Enterprise Application Design Patterns: Improved and Applied Refined Patterns:: Mappers Refined Patterns Data Mapper / Table Data Gateway –Input Mapper –Output Mapper –Table Data Gateway –Finder February 2010Stuart Thiel
14
14 Enterprise Application Design Patterns: Improved and Applied Refined Patterns:: Others Refined Patterns Front Controller Lazy Load Identity Map Unit of Work February 2010Stuart Thiel
15
15 Enterprise Application Design Patterns: Improved and Applied SoenEA:: advantages SoenEA help eliminate tedious tasks, help programmers to make fewer mistakes, and give guidance on proper practices. February 2010Stuart Thiel
16
16 Enterprise Application Design Patterns: Improved and Applied SoenEA:: provides SoenEA Patterns Utility components Default Implementations of Typical Components (DITCs) Test components February 2010Stuart Thiel
17
17 Enterprise Application Design Patterns: Improved and Applied SoenEA Summary Developers can use our contribution to build on their understanding of existing patterns They can use SoenEA to quickly develop software SoenEA is like a jigsaw puzzleSoenEA is like a jigsaw puzzle February 2010Stuart Thiel Summary February 2010Stuart Thiel
18
18 Enterprise Application Design Patterns: Improved and Applied Conclusion We have brought together a lot of other people’s good ideas Our approach has been used in commercial applications Our approach has allowed consistent and reliable development Our approach is readily communicable February 2010Stuart Thiel Conclusion
19
19 Enterprise Application Design Patterns: Improved and Applied Future Work Code Generation Testing Application Level Patterns Validator Pattern Refining Data Gateway Implementations Integration with other artefacts0 February 2010Stuart Thiel Future Work
20
20 Enterprise Application Design Patterns: Improved and Applied Thank You! Thank You
21
21 Enterprise Application Design Patterns: Improved and Applied
22
22 Enterprise Application Design Patterns: Improved and Applied
23
23 Enterprise Application Design Patterns: Improved and Applied
24
24 Enterprise Application Design Patterns: Improved and Applied An Analogy Software Development -> Cooking WEA Development -> Baking February 2010Stuart Thiel An Analogy
25
25 Enterprise Application Design Patterns: Improved and Applied An Analogy:: Styles Layered Style, Event-based Style, Process Control, Blackboard Cakes/Pizza, Cookies/Muffins, Souflé, Omlette/Pancake February 2010Stuart Thiel An Analogy:: Styles
26
26 Enterprise Application Design Patterns: Improved and Applied An Analogy:: Design Patterns Command, Factory, Adapter, Proxy Mixing, Chopping, Heating, Greasing, Measuring February 2010Stuart Thiel An Analogy:: Design Patterns
27
27 Enterprise Application Design Patterns: Improved and Applied An Analogy:: Architectural Patterns Lazy Load, Pessimistic Offline Lock, Unit Of Work Mixing Dry Ingredients vs. Wet, Checking That All Ingredients Are Available Before Starting, Preparing All Ingredients February 2010Stuart Thiel An Analogy:: Architectural Patterns
28
28 Enterprise Application Design Patterns: Improved and Applied An Analogy:: Frameworks Struts 1.0 - > Waffle Iron Hibernate -> Bread Maker February 2010Stuart Thiel Analogy:: Frameworks
29
29 Enterprise Application Design Patterns: Improved and Applied
30
30 Enterprise Application Design Patterns: Improved and Applied
31
31 Enterprise Application Design Patterns: Improved and Applied
32
32 Enterprise Application Design Patterns: Improved and Applied Cyclic Reference Where to solve it? –Input Mapper Common Alternatives –Loading other Domain Objects after February 2010Stuart Thiel Cyclic Reference Solution
33
33 Enterprise Application Design Patterns: Improved and Applied Cyclic Reference alternative Easy: February 2010Stuart Thiel
34
34 Enterprise Application Design Patterns: Improved and Applied public Person find(long id) { //Check Identity Map and return if found if(IdentityMap.has(id,Person.class)) return IdentityMap.get(id,Person.class); //Not in Identity Map ResultSet rs = PersonFinder.find(id); if(!rs.next) ;// Person p = new Person(id); UoW.getCurrent.registerClean(p); Person buddy = find(rs.getLong("buddy")); p.setBuddy(buddy); } February 2010Stuart Thiel
35
35 Enterprise Application Design Patterns: Improved and Applied Cyclic Reference alternative Harder February 2010Stuart Thiel
36
36 Enterprise Application Design Patterns: Improved and Applied public Person find(long id) { //Check Identity Map and return if found if(IdentityMap.has(id,Person.class)) return IdentityMap.get(id,Person.class); //Not in Identity Map ResultSet rs = PersonFinder.find(id); if(!rs.next) ;// Person p = new Person(id); UoW.getCurrent.registerClean(p); Pet pet = find(rs.getLong("pet")); p.setPet(pet); } February 2010Stuart Thiel
37
37 Enterprise Application Design Patterns: Improved and Applied Proxy public Person find(long id) { //Check Identity Map and return if found if(IdentityMap.has(id,Person.class)) return IdentityMap.get(id,Person.class); //Not in Identity Map ResultSet rs = PersonFinder.find(id); if(!rs.next) ;// Person p = new Person(id, new PersonProxy(rs.getLong("buddy"))); UoW.getCurrent.registerClean(p); } February 2010Stuart Thiel
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.