SlideShare a Scribd company logo
Applications Simultaneously -  프레임웍과 어플리케이션 동시에 구축하기 Ko sang won funkcode@gmail.com / funkcode.tistory.com High Performance Computing and Object Technology Lab. Hanyang University
http://hillside.net/conferences/plop.htm : Pattern Languages of Programs   “ Building Frameworks and  Applications Simultaneously” - Andreas Ruping ’’
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 that are going to use it
Overview of the Pattern Language A Pattern Language helps the framework developer uggestion
unning Example A German insurance company A large number of old legacy applications To build
 
The  interface  to the application program To  manage  the  versioning of logical entities To  store  and  retrieve  objects in database
 
 
Application  don’t  yet exist - Competing interests ‘ Rule of Three’ A first version of the framework
A framelet is a small framework that defines an abstract architecture To keep the framework simple, focus on a small number of core concepts. Avoid too much abstraction. Three expected uses is a must, even for a small framework
Requirement Requirement Requirement Restrict the mapping of logical entities onto physical tables Only simple mappings are possible
“ THREE EXAMPLES” - Evolving frameworks “ TWO PILOT APPLICATIONS” “ BUDGET FACTOR 2.5”
 
 
Finding the right abstractions isn’t easy The framework team offer coaching
= 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
“ 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
 
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
The pilot applications  must be fairly typical should be rather important must be applications that being built early
The health insurance system is a very typical one “ Two-dimensional versioning”
“ USER INVOLVEMENT” Collaborating with the pilot users The  importance  of feedback from users “ ENGAGE CUSTOMERS” - A Generative Development-Process Pattern Language “ IT’S A RELATIONSHIP NOT A SALE” - Customer Interaction Patterns “ TESTS BASED ON PILOT APPLICATIONS”
 
A Framework with a relatively is more easily understood A  smaller  number of  more  powerful functions A  larger  number of  less  powerful functions ?
The functions the framework offers will be better understood Smaller functions have a better chance of meeting the user’s needs A larger number of smaller, somewhat atomic, functions allow    for more combinations
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 Two functions : Lists all changed objects Saves individual object to the database
“ 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 framework collaborate Show the users how to optimize the applications Make tutorials and documentation
A two-week workshop together    with the health insurance system team Learned that  the commission system had special efficiency requirement Provided a script that generates a concrete access layer   from application’s meta information
“ 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 to find  realistic test scenarios Framework Need applications that use the framework to act as test drivers
Indentify core components from the pilot applications,    and use these components as test drivers Find typical use cases from pilot applications    and maintain them as a test suite Shape these test cases into regression tests Have to include some exotic scenarios Need test cases that test the time performance and stability
The health insurance system The party system Two pilot systems
“ TWO PILOT APPLICATIONS” “ USER INVOLVEMENT”
 
Application Development Teams Framework Development Team “ I have to keep the framework  simple ”
Be active Allow users of the framework    to add application-specific functions
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

More Related Content

PPT
Web engineering - MVC
PPTX
Quality attributes testing. From Architecture to test acceptance
PPTX
Web Engineering - Web Application Testing
PPT
Test Automation Framework Online Training by QuontraSolutions
PPTX
MMS2011_BC34_Plas_Final
PPT
Webapplicationtesting
PPTX
Performance Bottleneck Identification through Software Diagnostics- Impetus W...
PPTX
Testing project (basic)
Web engineering - MVC
Quality attributes testing. From Architecture to test acceptance
Web Engineering - Web Application Testing
Test Automation Framework Online Training by QuontraSolutions
MMS2011_BC34_Plas_Final
Webapplicationtesting
Performance Bottleneck Identification through Software Diagnostics- Impetus W...
Testing project (basic)

What's hot (20)

DOCX
Why vb is known as front end tool
PDF
Ijetcas14 413
PPT
.NET Developer
PPT
Slides chapters 26-27
PPT
Test Automation Framework Development Introduction
PDF
Waterfall Model (Software Engineering)
PPT
Chapter 08
PPT
Testing webapps
PDF
Agile performance engineering with cloud 2016
PPTX
Reuse landscape
PPTX
Component based software engineering
PDF
Quality Assurance with Manual Testing
PPTX
System models of sdlc- v model
PPTX
Top 10 Software Testing Tool to Help You The Most!
PPT
Approaches to Software Development
PDF
Code camp 2015 visual programming mm
PPTX
TestCraft
PPTX
IGT's Intelligent Automation Framework
PPT
Hybrid Automation Framework Development introduction
PPTX
Automation Testing
Why vb is known as front end tool
Ijetcas14 413
.NET Developer
Slides chapters 26-27
Test Automation Framework Development Introduction
Waterfall Model (Software Engineering)
Chapter 08
Testing webapps
Agile performance engineering with cloud 2016
Reuse landscape
Component based software engineering
Quality Assurance with Manual Testing
System models of sdlc- v model
Top 10 Software Testing Tool to Help You The Most!
Approaches to Software Development
Code camp 2015 visual programming mm
TestCraft
IGT's Intelligent Automation Framework
Hybrid Automation Framework Development introduction
Automation Testing
Ad

Viewers also liked (19)

PDF
IoC and DI Pattern
PDF
Heartbeat
PDF
프레임워크와 어플리케이션 동시에 구축하기
PDF
동영상입문
PPTX
Design patterns
PDF
HolubOnPatterns/chapter2_2
PPTX
Builder, prototype, singleton pattern
PDF
Servlet design pattern
PPTX
Unit of Mitigation
PDF
CDP総選挙 2013
PPTX
CDP2.0 - cloudpack night #7 -
PPTX
Servlet Architecture
PDF
Domain-Driven Design 훑어보기 Part 1
PDF
Getting started with Public Cloud and AWS
PDF
자바 서버 애플리케이션 아키텍처 안티 패턴
PPTX
예제로 보는 Pattern 연상법
PDF
PDF
SW개발자가 얘기하는 건축이야기
PDF
실용주의 디자인패턴 2 인터페이스로 프로그래밍하기
IoC and DI Pattern
Heartbeat
프레임워크와 어플리케이션 동시에 구축하기
동영상입문
Design patterns
HolubOnPatterns/chapter2_2
Builder, prototype, singleton pattern
Servlet design pattern
Unit of Mitigation
CDP総選挙 2013
CDP2.0 - cloudpack night #7 -
Servlet Architecture
Domain-Driven Design 훑어보기 Part 1
Getting started with Public Cloud and AWS
자바 서버 애플리케이션 아키텍처 안티 패턴
예제로 보는 Pattern 연상법
SW개발자가 얘기하는 건축이야기
실용주의 디자인패턴 2 인터페이스로 프로그래밍하기
Ad

Similar to B Fn As (20)

DOCX
software engineering
PPTX
Object oriented software_engg
PPTX
PPTX
Fundamentals of software development
PPT
generic-software-process-models.ppt
PDF
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
ODP
The Bespoke Software Product Factory (2007)
PDF
SOFTWARE BUILD AUTOMATION TOOLS A COMPARATIVE STUDY BETWEEN MAVEN, GRADLE, BA...
PPT
Software process model
PPTX
Software Engineering Unit 1 AKTU Complete
DOCX
IT 8003 Cloud ComputingFor this activi.docx
PDF
Dairy management system project report..pdf
PPTX
Software Engineering
PPTX
Component design and implementation tools
PDF
Sen2 Software Processes
PPTX
Software Engineering -UNIT1 - Part2.pptx
ODP
Best practice adoption (and lack there of)
PPTX
Software Engineering - Software Models
PDF
A New Model for Study of Quality Attributes to Components Based Development A...
PPT
Chapter 3 Software Process Model.ppt
software engineering
Object oriented software_engg
Fundamentals of software development
generic-software-process-models.ppt
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
The Bespoke Software Product Factory (2007)
SOFTWARE BUILD AUTOMATION TOOLS A COMPARATIVE STUDY BETWEEN MAVEN, GRADLE, BA...
Software process model
Software Engineering Unit 1 AKTU Complete
IT 8003 Cloud ComputingFor this activi.docx
Dairy management system project report..pdf
Software Engineering
Component design and implementation tools
Sen2 Software Processes
Software Engineering -UNIT1 - Part2.pptx
Best practice adoption (and lack there of)
Software Engineering - Software Models
A New Model for Study of Quality Attributes to Components Based Development A...
Chapter 3 Software Process Model.ppt

Recently uploaded (20)

PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
Developing a website for English-speaking practice to English as a foreign la...
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
August Patch Tuesday
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPT
What is a Computer? Input Devices /output devices
PDF
project resource management chapter-09.pdf
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Architecture types and enterprise applications.pdf
PPTX
Modernising the Digital Integration Hub
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PPTX
1. Introduction to Computer Programming.pptx
PDF
Getting started with AI Agents and Multi-Agent Systems
Assigned Numbers - 2025 - Bluetooth® Document
Univ-Connecticut-ChatGPT-Presentaion.pdf
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Developing a website for English-speaking practice to English as a foreign la...
cloud_computing_Infrastucture_as_cloud_p
A comparative study of natural language inference in Swahili using monolingua...
August Patch Tuesday
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
What is a Computer? Input Devices /output devices
project resource management chapter-09.pdf
1 - Historical Antecedents, Social Consideration.pdf
Architecture types and enterprise applications.pdf
Modernising the Digital Integration Hub
Module 1.ppt Iot fundamentals and Architecture
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Final SEM Unit 1 for mit wpu at pune .pptx
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
1. Introduction to Computer Programming.pptx
Getting started with AI Agents and Multi-Agent Systems

B Fn As

  • 1. Applications Simultaneously - 프레임웍과 어플리케이션 동시에 구축하기 Ko sang won funkcode@gmail.com / funkcode.tistory.com High Performance Computing and Object Technology Lab. Hanyang University
  • 2. http://hillside.net/conferences/plop.htm : Pattern Languages of Programs “ Building Frameworks and Applications Simultaneously” - Andreas Ruping ’’
  • 3. Why make the Framework ? App App App Framework
  • 4. TEAM B Application TEAM A Application TEAM C Application Framework ? Framework ? Framework ?
  • 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. Overview of the Pattern Language A Pattern Language helps the framework developer uggestion
  • 7. unning Example A German insurance company A large number of old legacy applications To build
  • 8.  
  • 9. The interface to the application program To manage the versioning of logical entities To store and retrieve objects in database
  • 10.  
  • 11.  
  • 12. Application don’t yet exist - Competing interests ‘ Rule of Three’ A first version of the framework
  • 13. A framelet is a small framework that defines an abstract architecture To keep the framework simple, focus on a small number of core concepts. Avoid too much abstraction. Three expected uses is a must, even for a small framework
  • 14. Requirement Requirement Requirement Restrict the mapping of logical entities onto physical tables Only simple mappings are possible
  • 15. “ THREE EXAMPLES” - Evolving frameworks “ TWO PILOT APPLICATIONS” “ BUDGET FACTOR 2.5”
  • 16.  
  • 17.  
  • 18. Finding the right abstractions isn’t easy The framework team offer coaching
  • 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
  • 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
  • 21.  
  • 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
  • 23. The pilot applications must be fairly typical should be rather important must be applications that being built early
  • 24. The health insurance system is a very typical one “ Two-dimensional versioning”
  • 25. “ USER INVOLVEMENT” Collaborating with the pilot users The importance of feedback from users “ ENGAGE CUSTOMERS” - A Generative Development-Process Pattern Language “ IT’S A RELATIONSHIP NOT A SALE” - Customer Interaction Patterns “ TESTS BASED ON PILOT APPLICATIONS”
  • 26.  
  • 27. A Framework with a relatively is more easily understood A smaller number of more powerful functions A larger number of less powerful functions ?
  • 28. The functions the framework offers will be better understood Smaller functions have a better chance of meeting the user’s needs A larger number of smaller, somewhat atomic, functions allow for more combinations
  • 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 Two functions : Lists all changed objects Saves individual object to the database
  • 30. “ FINE-GRAINED OBJECTS” - Evolving frameworks The risk of architectural mismatch
  • 31.  
  • 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
  • 34. A two-week workshop together with the health insurance system team Learned that the commission system had special efficiency requirement Provided a script that generates a concrete access layer from application’s meta information
  • 35. “ TWO PILOT APPLICATIONS” “ BUILD TRUST” - Customer Interaction Patterns “ BUDGET FACTOR 2.5”
  • 36.  
  • 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
  • 38. Indentify core components from the pilot applications, and use these components as test drivers Find typical use cases from pilot applications and maintain them as a test suite Shape these test cases into regression tests Have to include some exotic scenarios Need test cases that test the time performance and stability
  • 39. The health insurance system The party system Two pilot systems
  • 40. “ TWO PILOT APPLICATIONS” “ USER INVOLVEMENT”
  • 41.  
  • 42. Application Development Teams Framework Development Team “ I have to keep the framework simple ”
  • 43. Be active Allow users of the framework to add application-specific functions
  • 44. The printing system The workflow system An additional function Several requests for extending the two-dimensional
  • 45. “ FRAMELETS FOR MULTIPLE USE” ..at least three times
  • 46.