Applications Simultaneously -  프레임웍과 어플리케이션 동시에 구축하기 Ko sang won funkcode@gmail.com / funkcode.tistory.com High Performanc...
http://hillside.net/conferences/plop.htm : Pattern Languages of Programs   “ Building Frameworks and  Applications Simulta...
Why  make the Framework ? App App App Framework
TEAM  B Application TEAM  A Application TEAM  C Application Framework ? Framework ? Framework ?
Application Framework I’m sorry I am late … roblem The  Framework     must  be built  in  parallel     to applications tha...
Overview of the Pattern Language A Pattern Language helps the framework developer uggestion
unning Example <ul><li>A German insurance company </li></ul><ul><li>A large number of old legacy applications </li></ul>To...
 
The  interface  to the application program To  manage  the  versioning of logical entities To  store  and  retrieve  objec...
 
 
Application  don’t  yet exist - Competing interests ‘ Rule of Three’ A first version of the framework
<ul><li>A framelet is a small framework that defines an abstract architecture </li></ul><ul><li>To keep the framework simp...
Requirement Requirement Requirement Restrict the mapping of logical entities onto physical tables Only simple mappings are...
“ THREE EXAMPLES” - Evolving frameworks “ TWO PILOT APPLICATIONS” “ BUDGET FACTOR 2.5”
 
 
<ul><li>Finding the right abstractions isn’t easy </li></ul><ul><li>The framework team offer coaching </li></ul>
= 30 person months 12 person months x 2.5 5 people (2 people - full time) Maintaining the just released version Preparing ...
“ SIZE THE ORGANISATION” “ SIZE THE SCHEDULE” - A Generative Development-Process Pattern Language “ RULE OF THREE” and “BU...
 
Some functionality,  but use it in  different ways . There is  a common abstraction None  of these applications have been ...
<ul><li>The pilot applications  must be fairly typical </li></ul><ul><li>should be rather important </li></ul><ul><li>must...
The health insurance system is a very typical one “ Two-dimensional versioning”
“ USER INVOLVEMENT” <ul><li>Collaborating with the pilot users </li></ul><ul><li>The  importance  of feedback from users <...
 
A Framework with a relatively is more easily understood A  smaller  number of  more  powerful functions A  larger  number ...
<ul><li>The functions the framework offers will be better understood </li></ul><ul><li>Smaller functions have a better cha...
The data access layer  keeps  track  of which objects have been changed A session applications can  commit  all or some of...
“ FINE-GRAINED OBJECTS” - Evolving frameworks The risk of architectural mismatch
 
Application Developer ? Framework
Run common workshops Provide tools and demonstrate how to use these tools Offer tests of how an application and your frame...
<ul><li>A two-week workshop together    with the health insurance system team </li></ul><ul><li>Learned that  </li></ul><u...
“ TWO PILOT APPLICATIONS” “ BUILD TRUST” - Customer Interaction Patterns “ BUDGET FACTOR 2.5”
 
Your framework is  a framelet ,  - cannot be tested alone Test case coverage   is much harder to achieve Can be difficult ...
<ul><li>Indentify core components from the pilot applications,    and use these components as test drivers </li></ul><ul><...
<ul><li>The health insurance system </li></ul><ul><li>The party system </li></ul>Two pilot systems
“ TWO PILOT APPLICATIONS” “ USER INVOLVEMENT”
 
Application Development Teams Framework Development Team “ I have to keep the framework  simple ”
<ul><li>Be active </li></ul><ul><li>Allow users of the framework    to add application-specific functions </li></ul>
The printing system The workflow system An additional function Several requests for extending the two-dimensional
“ FRAMELETS FOR MULTIPLE USE” ..at least three times
 
[email_address] http://funkcode.tistory.com - Thank you for your attention
Upcoming SlideShare
Loading in …5
×

B Fn As

743
-1

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
743
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

B Fn As

  1. 1. Applications Simultaneously - 프레임웍과 어플리케이션 동시에 구축하기 Ko sang won funkcode@gmail.com / funkcode.tistory.com High Performance Computing and Object Technology Lab. Hanyang University
  2. 2. http://hillside.net/conferences/plop.htm : Pattern Languages of Programs “ Building Frameworks and Applications Simultaneously” - Andreas Ruping ’’
  3. 3. Why make the Framework ? App App App Framework
  4. 4. TEAM B Application TEAM A Application TEAM C Application Framework ? Framework ? Framework ?
  5. 5. Application Framework I’m sorry I am late … roblem The Framework must be built in parallel to applications that are going to use it
  6. 6. Overview of the Pattern Language A Pattern Language helps the framework developer uggestion
  7. 7. unning Example <ul><li>A German insurance company </li></ul><ul><li>A large number of old legacy applications </li></ul>To build
  8. 9. The interface to the application program To manage the versioning of logical entities To store and retrieve objects in database
  9. 12. Application don’t yet exist - Competing interests ‘ Rule of Three’ A first version of the framework
  10. 13. <ul><li>A framelet is a small framework that defines an abstract architecture </li></ul><ul><li>To keep the framework simple, focus on a small number of core </li></ul><ul><li>concepts. Avoid too much abstraction. </li></ul><ul><li>Three expected uses is a must, even for a small framework </li></ul>
  11. 14. Requirement Requirement Requirement Restrict the mapping of logical entities onto physical tables Only simple mappings are possible
  12. 15. “ THREE EXAMPLES” - Evolving frameworks “ TWO PILOT APPLICATIONS” “ BUDGET FACTOR 2.5”
  13. 18. <ul><li>Finding the right abstractions isn’t easy </li></ul><ul><li>The framework team offer coaching </li></ul>
  14. 19. = 30 person months 12 person months x 2.5 5 people (2 people - full time) Maintaining the just released version Preparing a new version coaching delay
  15. 20. “ SIZE THE ORGANISATION” “ SIZE THE SCHEDULE” - A Generative Development-Process Pattern Language “ RULE OF THREE” and “BUDGET FACTOR 2.5” framework development = 2.5 * application development 3 * application development = framework development + 3 * framework instantiation framework instantiation = 1/6 * application development
  16. 22. Some functionality, but use it in different ways . There is a common abstraction None of these applications have been built so far Have to find the right abstractions for your framework
  17. 23. <ul><li>The pilot applications must be fairly typical </li></ul><ul><li>should be rather important </li></ul><ul><li>must be applications that being built early </li></ul>
  18. 24. The health insurance system is a very typical one “ Two-dimensional versioning”
  19. 25. “ USER INVOLVEMENT” <ul><li>Collaborating with the pilot users </li></ul><ul><li>The importance of feedback from users </li></ul>“ ENGAGE CUSTOMERS” - A Generative Development-Process Pattern Language “ IT’S A RELATIONSHIP NOT A SALE” - Customer Interaction Patterns “ TESTS BASED ON PILOT APPLICATIONS”
  20. 27. A Framework with a relatively is more easily understood A smaller number of more powerful functions A larger number of less powerful functions ?
  21. 28. <ul><li>The functions the framework offers will be better understood </li></ul><ul><li>Smaller functions have a better chance of meeting the user’s needs </li></ul><ul><li>A larger number of smaller, somewhat atomic, functions allow for more combinations </li></ul>
  22. 29. The data access layer keeps track of which objects have been changed A session applications can commit all or some of changes to the database <ul><li>Two functions : </li></ul><ul><ul><li>Lists all changed objects </li></ul></ul><ul><ul><li>Saves individual object to the database </li></ul></ul>
  23. 30. “ FINE-GRAINED OBJECTS” - Evolving frameworks The risk of architectural mismatch
  24. 32. Application Developer ? Framework
  25. 33. Run common workshops Provide tools and demonstrate how to use these tools Offer tests of how an application and your framework collaborate Show the users how to optimize the applications Make tutorials and documentation
  26. 34. <ul><li>A two-week workshop together with the health insurance system team </li></ul><ul><li>Learned that </li></ul><ul><li>the commission system had special efficiency requirement </li></ul><ul><li>Provided a script that generates a concrete access layer from application’s meta information </li></ul>
  27. 35. “ TWO PILOT APPLICATIONS” “ BUILD TRUST” - Customer Interaction Patterns “ BUDGET FACTOR 2.5”
  28. 37. Your framework is a framelet , - cannot be tested alone Test case coverage is much harder to achieve Can be difficult to find realistic test scenarios Framework Need applications that use the framework to act as test drivers
  29. 38. <ul><li>Indentify core components from the pilot applications, and use these components as test drivers </li></ul><ul><li>Find typical use cases from pilot applications and maintain them as a test suite </li></ul><ul><li>Shape these test cases into regression tests </li></ul><ul><li>Have to include some exotic scenarios </li></ul><ul><li>Need test cases that test the time performance and stability </li></ul>
  30. 39. <ul><li>The health insurance system </li></ul><ul><li>The party system </li></ul>Two pilot systems
  31. 40. “ TWO PILOT APPLICATIONS” “ USER INVOLVEMENT”
  32. 42. Application Development Teams Framework Development Team “ I have to keep the framework simple ”
  33. 43. <ul><li>Be active </li></ul><ul><li>Allow users of the framework to add application-specific functions </li></ul>
  34. 44. The printing system The workflow system An additional function Several requests for extending the two-dimensional
  35. 45. “ FRAMELETS FOR MULTIPLE USE” ..at least three times
  36. 47. [email_address] http://funkcode.tistory.com - Thank you for your attention

×