b fn as

47
Applications Simultaneously Ko sang won [email protected] / funkcode.tistory.com High Performance Computing and Object Technology Lab. Hanyang University - 프프프프프 프프프프프프 프프프 프프프프

Upload: sangwon-ko

Post on 24-May-2015

712 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: B Fn As

Applications Simultaneously

Ko sang [email protected] / funkcode.tistory.com

High Performance Computing and Object Technology Lab.Hanyang University

- 프레임웍과 어플리케이션 동시에 구축하기

Page 2: B Fn As

http://hillside.net/conferences/plop.htm: Pattern Languages of Programs

“Building Frameworks and Applications Simultaneously”

- Andreas Ruping’’

Page 3: B Fn As

App

App

App

Framework

Why make

the Framework ?

Page 4: B Fn As

TEAM BApplication

TEAM AApplication

TEAM CApplication

Framework ?

Framework ?

Framework ?

Page 5: B Fn As

Application Framework

I’m sorry I am late

roblem

The Framework

mustmust be built in parallel to applications that are going to use it

Page 6: B Fn As

Overview of the Pattern Language

A Pattern Languagehelps the framework developer

uggestion

Page 7: B Fn As

• A German insurance company• A large number of old legacy applications

unning Example

To build

Page 8: B Fn As
Page 9: B Fn As

The interface to the application program

To manage the versioningof logical entities

To store and retrieve objectsin database

Page 10: B Fn As
Page 11: B Fn As
Page 12: B Fn As

Application don’t yet exist- Competing interests

‘Rule of Three’

A first version of the framework

Page 13: B Fn As

- 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

Page 14: B Fn As

Requirement

Requirement

Requirement

Restrict the mapping of logical entities onto physical tables

Only simple mappings are possible

Page 15: B Fn As

“THREE EXAMPLES”- Evolving frameworks

“TWO PILOT APPLICATIONS”

“BUDGET FACTOR 2.5”

Page 16: B Fn As
Page 17: B Fn As
Page 18: B Fn As

- Finding the right abstractions isn’t easy

- The framework team offer coaching

Page 19: B Fn As

= 30 person months12 person months x 2.5

5 people(2 people - full time)

Maintaining the just released versionPreparing a new versioncoaching

delay

Page 20: B Fn As

“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

Page 21: B Fn As
Page 22: B Fn As

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

Page 23: B Fn As

- The pilot applications must be fairly typical

should be rather important

must be applications that being built early

Page 24: B Fn As

The health insurance system is a very typical one

“Two-dimensional versioning”

Page 25: B Fn As

“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”

Page 26: B Fn As
Page 27: B Fn As

A Framework with a relatively

is more easily understood

A smaller number of more powerful functions

A larger number of less powerful functions

?

Page 28: B Fn As

- 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

Page 29: B Fn As

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

Page 30: B Fn As

“FINE-GRAINED OBJECTS”- Evolving frameworks

The risk of architectural mismatch

Page 31: B Fn As
Page 32: B Fn As

?

Application Developer

Framework

Page 33: B Fn As

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

Page 34: B Fn As

• 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

Page 35: B Fn As

“TWO PILOT APPLICATIONS”

“BUILD TRUST”- Customer Interaction Patterns

“BUDGET FACTOR 2.5”

Page 36: B Fn As
Page 37: B Fn As

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

Page 38: B Fn As

- 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

Page 39: B Fn As

• The health insurance system• The party system

Two pilot systems

Page 40: B Fn As

“TWO PILOT APPLICATIONS”

“USER INVOLVEMENT”

Page 41: B Fn As
Page 42: B Fn As

Application Development Teams

Framework Development Team

“I have to keep the

framework

simple”

Page 43: B Fn As

- Be active

- Allow users of the framework to add application-specific functions

Page 44: B Fn As

The printing system

The workflow systemAn additional function

Several requests for extending the two-dimensional

Page 45: B Fn As

“FRAMELETS FOR MULTIPLE USE”..at least three times

Page 46: B Fn As
Page 47: B Fn As

[email protected]://funkcode.tistory.com

- Thank you for your attention