Top Banner
Object Orientation in CBD 김김김 , 김김김
48

Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Jan 18, 2016

Download

Documents

Quentin Blake
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Object Orientation in CBD

Object Orientation in CBD

김현우 , 장재현

Page 2: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

2

Page 3: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

What is CBD?

• Component-based development– Developing software system based

on component

3

Page 4: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?

– Component

• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

4

Page 5: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Component (1/4)

5

ImplementationImplementationSpecificationSpecification

for(i=0;i<10;i++){ a++; }return a;

for(i=0;i<10;i++){ a++; }return a;

StandardStandardPackagingPackaging

DeploymentDeployment

Page 6: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Component (2/4)

• Software module unit– Reusability– Replace-ability

6

Page 7: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Component (3/4)

• Reusability– Component can be used by some other applications

7

Hospital system A Hospital system B

Reservation

Customer

Patient

Reservation

Doctor

DiagnosisDiagnosis

Reuse

Page 8: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Component (4/4)

• Replace-ability– CBD can be a replacement of rapid change of

customer’s need

8

Hospital system

Reservation

Customer

Diagnosis 2

Diagnosis 1

Diagnosis 1

Replace

Page 9: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?

– Dependency & Granularity

• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

9

Page 10: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Dependency (1/2)

• Tightly-coupled vs. loosely-coupled

10

Address

- homeAddress: string- homeTelno: string

+ getHomeAddress(): string+ setHomeAdress(newAddress): void+ getHomeTelno(): string+ setHomeTelno(newTelno) : void

Address

- homeAddress1: string- homeAddress2: string- homeTelno: string+ getHomeAddress(): string+ setHomeAdress(newAddress): void+ getHomeTelno(): string+ setHomeTelno(newTelno) : void

Page 11: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Dependency (2/2)

• Loosely-coupled– Interface– Abstraction

11

+getHomeAddress() : string+setHomeAddress(in newAddress : string) : void+getHomeTelno() : string+setHomeTelno(in newTelno : string) : void

-homeAddress1 : string-homeAddress2 : string-homeTelno : string

Addres

IAddress

1

*Customer

Interface

Page 12: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Granularity

• Coarse-grained

12

Page 13: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?

– Goal of CBD

• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

13

Page 14: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Goal of CBD

componentcomponent

componentcomponent

componentcomponent

componentcomponent

14

Page 15: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Philosophy of CBD

• Philosophy– “Buy, don’t build”– LEGO®

“buy, don't build” by Fred Brooks

[Brooks 87] Brooks, F. P. Jr. “No Silver Bullet: Essence and Accidents of Software Engineering”Computer 20, 4 (April 1987): 10-9.

15

Page 16: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

16

Page 17: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Why CBD?

• Productivity– reducing code generation

• Quality– using guaranteed component

• Time-to-market– faster than traditional way

17

Page 18: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

18

Page 19: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Process of CBD (1/3)

Component Repository

Domain Analysis Domain Design Component Abstraction

Component DesignComponent ImplementationComponent Qualification

Component Distribution

Component SpecializationCBD DesignApplication Requirement

Component CompositionNew ApplicationNew Application

Component Development

Component-Based Software Development

19

Page 20: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Process of CBD (2/3)

QualificationQualification AdaptationAdaptation CompositionComposition

CQ CA CC

20

Page 21: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Process of CBD (3/3)

White box wrapping

Grey box wrapping

Black box wrapping

ComponentComponentAdaptationAdaptation

21

Page 22: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Component Adaptation (1/3)

Controller Adapter LightsRI_Lights PI_Lights

<Lights control system>

Page 23: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Component Adaptation (2/3)

LightsPI_Lights

<<Interface>>lightG: BooleanlightG: Booleanon_green()off_green()on_red()off_red()

<<Interface>>color: ML_Colorchange(new: ML_Color)on()off()

ControllerRI_Lights

Page 24: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Component Adaptation (3/3)

REFINEMENT AdapterREFINES RI_LightsINCLUDES PI_LightsOPERATIONS on_red = IF color = Red THEN on ELSE LET color BE color = Red IN change(color); on

Adapter

Page 25: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

25

Page 26: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

• International

26from IDC

Commercial Component (1/6)

Page 27: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Commercial Component (2/6)

• International (cont’d)

– Focus on technical components than business components

– Componentsource Inc. (ENG) – 1303 components of 293 companies

• “The world's largest source of software components”

– Flashline Inc. (USA) –227 components of 94 companies

• BEA AquaLogic enterprise repository

27

Page 28: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Commercial Component (3/6)

• Domestic

28from KCSC

Page 29: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Commercial Component (4/6)

• Domestic large company– Large SI companies develop technical components

themselves– Operate exclusive responsible team

– Samsung SDS, LG CNS, SK C&C, etc, …

29

Page 30: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Commercial Component (5/6)

• Domestic small company– Simple application – Homepage, Mail, BBS– Recently, even ERP, KMS, CRM

– Component Bank • Component tools, Web application

– Imeca - export to 30 countries• HRM solution, Government integrated administrative system

– N3Soft• Component tools, ERP, KMS, Web log analysis

– Namo Interactive• Web application

30

Page 31: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

31

Page 32: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Commercial Component (6/6)

32

We want to detect memory leaks or know code performance and code coverage.We want to collect data on Disk I/O, Network I/O and synchronization wait time

Page 33: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Success story (1/2)

• CBD based integrated framework case

UML based system analysis

System architecture

Components

CBDTest

* ITPlus

Page 34: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Success story (2/2)

Normal

CBD

Human Resource 40% ↓TIME 50% ↓

SW Quality ↑

* ITPlus

Page 35: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

35

Page 36: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Using component (1/3)

STDMETHODIMP CHello::sayHello(BSTR name, BSTR *message){

TCHAR buffer[256];_bstr_t temp = name;::wsprintf(buffer, _T("Mr. %s hello?"),

(TCHAR*)temp);temp = buffer;*message = temp.copy();return S_OK;

}

• Make HelloApp.dll ATL

ATL: Active Template Library

Page 37: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Using component (2/3)

• Register COM+ component from dll file

Component

Page 38: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Using component (3/3)

• in ASP– We can use another component also

<%if Not isEmpty(Request.Form("txtName")) then

Dim helloset hello = CreateObject("HelloApp.Hello.1")dim messagemessage = hello.sayHello(Request.Form("txtName"))Response.Write message

end if%>

COM+ component nameComponent procedure call

Page 39: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

39

Page 40: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Limit of CBD (1/2)

• Platform-dependence

.NET Application

J2EE Application

Message Queue Middleware

SQL Server

JDBCADO .NETProvider

JMSNative

from MSDN

Page 41: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Limit of CBD (2/2)

• Tightly-coupled– RPC

• Synchronous – wait until return

<%if Not isEmpty(Request.Form("txtName")) then

Dim helloset hello = CreateObject("HelloApp.Hello.1")dim messagemessage = hello.sayHello(Request.Form("txtName"))Response.Write message

end if%>

Reference Procedure call

Page 42: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

From CBD to SOA (1/4)

Interface

Component

Service

• Service is also component• CBD ≒ SOA

42

Page 43: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

From CBD to SOA (2/4)

• Service-Oriented Architecture– “Web service”-based

43

Page 44: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

From CBD to SOA (3/4)

Service Broker

Service Consumer

Service Provider

Publish

Connect

Discover

Internet

44

Page 45: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

45

From CBD to SOA (4/4)

• Mashup

+

Page 46: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

46

Page 47: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

47

Summary

• CBD takes productivity, quality, reduce of cost and rapid response in market

• Recent concept of service starts from component in CBD

• Component is well-applied OO concept in business

Page 48: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2.

References• Alan W. Brown, “On Components and Objects: The Foundations of

Component-Based Development”, IEEE, 1997• Bertrand Meyer, “ Component-Based Development: From Buzz to

Spark”, IEEE, July 1999• Butlergroup, “Component-Based Development”, Butlergroup

Management Guide, September 1998• George T. Heineman, “Component-Based Software Engineering”,

Addison-Wesley, 2001• Jim Q. Ning, “Component-based Software Engineering”, SAST,

1997• Michael Sparling, “Lessons learned through six years of

component-based development”, ACM, October 2000 p.47-53• 전병선 , “ 객체지향 이야기” , 영진 .COM, 2004 14 장

48