연습 3.6: EJB 컴포넌트 서브패키지 모델링

이 연습에서는 EJB 구현(implementation) 디자인 서브패키지를 모델링합니다. 이 서브패키지는 응용프로그램의 데이터를 지속시키는 도메인 모델이 들어 있는 EJB(Enterprise JavaBean) 계층을 모델링합니다. EJB 계층은 itso.ad.business 계층에 대한 비즈니스 논리를 구현(implement)합니다.

EJB 구현(implementation) 디자인 서브패키지는 다음 표에 있는 세 개의 서브패키지로 나뉘어집니다.

패키지 설명
모델 이 서브패키지는 지속적 응용프로그램 데이터를 나타내는 도메인 클래스를 설명합니다. 이 모델 서브패키지에는 분석 모델에서 정의한 고객 및 계정 클래스가 들어 있습니다.
to 이 서브패키지에는 모델에 있는 디자인 계층 간의 정보를 추상화하는 전송 오브젝트가 들어 있습니다. 전송 오브젝트는 고객 및 계정 클래스에 의해 구현(implement)된 인터페이스입니다.
페케이드 이 서브패키지에는 PiggyBank 온라인 은행 업무 시스템에 대한 비즈니스 논리의 구현(implementation)이 들어 있습니다. 또한 PiggyBank 유스 케이스 모델에 설명된 잔액 표시, 송금 및 수표 현금화 오퍼레이션과 같은 기능 태스크를 정의하는 PiggyBankController 클래스가 들어 있습니다.

이 연습에서는 고객 및 계정 도메인 EJB 클래스와 해당 인터페이스를 작성합니다. 프레임워크 패키지에 IAccount 및 ICustomer 인터페이스를 작성합니다.

도메인 엔터프라이즈 Bean 모델링

고객 및 계정 엔터프라이즈 Bean은 PiggyBank 디자인 모델의 도메인을 형성하고 응용프로그램 데이터를 지속시키는 데 사용됩니다. 고객 및 계정 클래스는 PiggyBank 분석 모델에서 식별한 것과 동일한 두 개의 클래스에서 파생됩니다. 계정 및 고객 클래스를 표시하는 원래 도메인 다이어그램. PiggyBank 디자인 모델은 지속 가능한 확인 및 전송 클래스를 포함하지 않습니다. 디자인 시간에 데이터 전송 또는 확인을 지속하지 않기로 결정했으므로 지속 가능한 전송 및 확인 비즈니스 오브젝트를 작성할 필요가 없습니다.

EJB 고객을 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼치고 PiggyBank 구현(implementation) 디자인을 펼치십시오.
  2. 마우스 오른쪽 단추로 itso.ad.business 서브패키지를 누른 후 UML 추가 > 패키지를 누르십시오.
  3. 패키지의 이름을 모델(model)로 지정하십시오.
  4. 모델 탐색기 보기에서 메인을 두 번 누르십시오.
  5. 다이어그램 편집기에서 다이어그램 이름을 모델 - EJB(Persistent Entity) 모델(model - Persistent Entity (EJB) Model)로 지정하십시오.
  6. 팔레트에서 클래스를 두 번 누른 후 클래스 이름을 고객(Customer)으로 지정하십시오.

고객 클래스의 매개변수를 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 고객 클래스를 누른 후 UML 추가 > 속성을 누르십시오.
  2. 속성의 이름을 이름(name)으로 지정하십시오.
  3. 특성 보기에서 유형 선택을 누르십시오.
  4. 요소 선택 창에서 문자열을 누르십시오.
  5. 문자열 유형의 고객 클래스에 customerId라는 다른 속성을 추가하십시오.
  6. 다이어그램 편집기에서 마우스 오른쪽 단추로 고객 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  7. 오퍼레이션의 이름을 getData로 지정하십시오.
  8. 특성 보기에서 리턴 유형 설정을 누르십시오.
  9. 요소 선택 창에서 itso.ad.business를 펼친 후 프레임워크를 펼치고, interfaces.to 서브패키지에서 ICustomerTO를 누르십시오.

이제 고객 엔티티 EJB가 작성되었습니다. 다이어그램은 다음 그림과 유사하게 표시됩니다.

고객 EJB

EJB 계정을 모델링하려면 다음을 수행하십시오.
  1. 팔레트에서 클래스를 두 번 누른 후 클래스 이름을 계정(Account)으로 지정하십시오.
  2. 다이어그램 편집기에서 마우스 오른쪽 단추로 계정 클래스를 누른 후 UML 추가 > 속성을 누르십시오.
  3. 속성의 이름을 잔액(balance)으로 지정하십시오.
  4. 특성 보기에서 유형 선택을 누르십시오.
  5. 요소 선택 창에서 정수를 누르십시오.
  6. accountNumber라는 문자열 유형의 속성을 계정 클래스에 추가하십시오.
  7. 다이어그램 편집기에서 마우스 오른쪽 단추로 계정 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  8. 오퍼레이션의 이름을 getData로 지정하십시오.
  9. 특성 보기에서 리턴 유형 설정을 누르십시오.
  10. 요소 선택 창에서 itso.ad.business를 펼친 후 프레임워크를 펼치고, interfaces.to 서브패키지에서 IAccountTO를 누르십시오.
  11. 팔레트에서 연관을 누르십시오.
  12. 다이어그램 편집기에서 고객 클래스를 누르고, 이를 계정 클래스로 끄십시오.
  13. 다이어그램 편집기에서 관계를 누르십시오.
  14. 특성 보기의 계정 다중성 필드에 *를 입력하십시오.

이제 지속적 엔티티 EJB 모델 다이어그램이 작성되었습니다. 고객 및 계정 엔터프라이즈 Bean의 getData 오퍼레이션이 이전 연습에서 작성한 전송 오브젝트 인터페이스를 리턴하는 점을 유의하십시오. 다이어그램은 다음 그림과 유사하게 표시됩니다.

고객 및 계정 EJB 관계

전송 오브젝트 엔터프라이즈 Bean 모델링

전송 오브젝트 엔터프라이즈 Bean은 PiggyBank 디자인 모델의 계층 간에 데이터를 전송하는 데 사용됩니다. PiggyBankEJBCustomerTO 및 PiggyBankEJBAccountTO는 프레임워크 컴포넌트 계층에서 정의한 ICustomer 및 IAccount 인터페이스를 구현(implement)합니다.

PiggyBankEJBCustomerTO를 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼치고 PiggyBank 구현(implementation) 디자인을 펼치십시오.
  2. 마우스 오른쪽 단추로 itso.ad.business 서브패키지를 누른 후 UML 추가 > 패키지를 누르십시오.
  3. 패키지 이름을 전송(to)으로 지정하십시오.
  4. 모델 탐색기 보기에서 메인을 두 번 누르십시오.
  5. 다이어그램 편집기에서 interfaces.to - 전송 오브젝트 구현(implementation)(interfaces.to - Transfer Object Implementations)의 제목을 추가하십시오.
  6. 팔레트에서 클래스를 두 번 누른 후 클래스 이름을 PiggyBankEJBCustomerTO로 지정하십시오.

PiggyBankEJBCustomerTO 인터페이스의 매개변수를 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankEJBCustomerTO 클래스를 누른 후 UML 추가 > 속성을 누르십시오.
  2. 속성의 이름을 id로 지정하십시오.
  3. 특성 보기에서 유형 선택을 누르십시오.
  4. 요소 선택 창에서 정수를 누르십시오.
  5. 문자열 유형의 PiggyBankEJBCustomerTO 클래스에 이름(name)이라는 속성을 추가하십시오.
  6. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankEJBCustomerTO 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  7. 오퍼레이션 이름을 PiggyBankEJBCustomerTO( newId, newName )로 지정하십시오.
  8. 특성 보기의 매개변수 페이지에서 newId 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  9. newName 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
PiggyBankEJBCustomerTO 엔터프라이즈 Bean의 모델링을 완료했습니다. PiggyBankEJBCustomerTO에는 고객 ID 및 이름이 지정된 클래스를 인스턴스화하는 단일 생성자가 들어 있습니다. 이제 PiggyBankEJBCustomerTO 엔터프라이즈 Bean과 ICustomerTO 인터페이스 간의 관계를 모델링해야 합니다.

구현(implementation) 관계를 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼친 후 PiggyBank 구현(implementation) 디자인을 펼치고, itso.ad.business를 펼친 후 프레임워크를 펄치십시오.
  2. interfaces.to 서브패키지에서 ICustomerTO 클래스를 누르고, 이를 다이어그램으로 끄십시오.
  3. 팔레트에서 구현(implements)을 누르십시오.
  4. 다이어그램 편집기에서 PiggyBankEJBCustomerTO 클래스를 누르고, 이를 ICustomerTO 인터페이스로 끄십시오.

다이어그램은 다음 그림과 유사하게 표시됩니다.

PiggyBankEJBCustomerTO EJB

PiggyBankEJBAccountTO를 모델링하려면 다음을 수행하십시오.
  1. 팔레트에서 클래스를 두 번 누른 후 클래스 이름을 PiggyBankEJBAccountTO로 지정하십시오.
  2. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankEJBAccountTO 클래스를 누른 후 UML 추가 > 속성을 누르십시오.
  3. 속성의 이름을 잔액(balance)으로 지정하십시오.
  4. 특성 보기에서 유형 선택을 누르십시오.
  5. 요소 선택 창에서 정수를 누르십시오.
  6. PiggyBankEJBAccountTO 클래스에 번호(number)라는 문자열 유형의 다른 속성을 추가하십시오.
  7. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankEJBAccountTO 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  8. 오퍼레이션 이름을 PiggyBankEJBAccountTO(newAccountNumber, newBalance)로 지정하십시오.
  9. 특성 보기의 매개변수 페이지에서 newAccountNumber 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  10. newBalance 매개변수의 유형 필드를 누른 후 매개변수 유형을 정수로 변경하십시오.
PiggyBankEJBAccountTO 엔터프라이즈 Bean의 모델링을 완료했습니다. PiggyBankEJBAccountTO에는 계정 번호 및 잔액이 지정된 클래스를 인스턴스화하는 단일 생성자가 들어 있습니다. 이제 PiggyBankEJBAccountTO 엔터프라이즈 Bean과 IAccountTO 인터페이스 간의 관계를 모델링해야 합니다.

구현(implementation) 관계를 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼친 후 PiggyBank 구현(implementation) 디자인을 펼치고, itso.ad.business를 펼친 후 프레임워크를 펄치십시오.
  2. interfaces.to 서브패키지에서 IAccountTO 클래스를 누르고, 이를 다이어그램으로 끄십시오.
  3. 팔레트에서 구현(implements)을 누르십시오.
  4. 다이어그램 편집기에서 PiggyBankEJBAccountTO 클래스를 누르고, 이를 IAccountTO 인터페이스로 끄십시오.

다이어그램은 다음 그림과 유사하게 표시됩니다.

PiggyBankEJBCustomerTO 및 PiggyBankEJBAccountTO 오브젝트

페케이드 엔터프라이즈 Bean 모델링

페케이드 컴포넌트는 비즈니스 논리에서 지속적 응용프로그램 데이터를 분리시킵니다. 페케이드 엔터프라이즈 Bean은 PiggyBank 분석 모델에서 식별한 제어 클래스로부터 파생된 PiggyBankController 클래스에 의해 정의됩니다.

PiggyBankController 클래스를 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼치고 PiggyBank 구현(implementation) 디자인을 펼치십시오.
  2. itso.ad.business 서브패키지에서 마우스 오른쪽 단추로 ejb 패키지를 누른 후 UML 추가 > 패키지를 누르십시오.
  3. 새 패키지의 이름을 페케이드(facade)로 지정하십시오.
  4. 모델 탐색기 보기에서 메인 다이어그램을 두 번 누른 후 페케이드 - 모델의 세션 페케이드(EJB Stateless Bean)(facade - Session Facade (EJB Stateless Bean) on model)의 제목을 추가하십시오.
  5. 팔레트에서 클래스를 두 번 누른 후 인터페이스 이름을 PiggyController로 지정하십시오.

cashCheck 오퍼레이션을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankController 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  2. 오퍼레이션의 이름을 cashCheck(accountToCredit, checkAmount, checkReference)로 지정하십시오.
  3. 특성 보기의 매개변수 페이지에서 accountToCredit 페이지의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  4. checkAmount 매개변수의 유형 필드를 누른 후 매개변수 유형을 정수로 변경하십시오.
  5. checkReference 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.

getAccountByCustomerId 오퍼레이션을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankController 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  2. 오퍼레이션의 이름을 getAccountByCustomerId(customerId)로 지정하십시오.
  3. 특성 보기의 매개변수 페이지에서 customerId 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  4. 특성 보기의 일반 페이지에서 리턴 유형 설정을 누르십시오.
  5. 요소 선택 창에서 itso.ad.business를 펼친 후 프레임워크를 펼치고 interfaces.to 패키지에서 IAccountTO를 누르십시오.
  6. 특성 보기의 일반 페이지에서 순서 지정 선택란을 선택한 후 고유 선택란을 지우십시오.
  7. 고유 선택란을 선택 취소하십시오.
  8. 고급 페이지의 다중성 옆에서 필드를 누른 후 1..*를 누르십시오.

getBalance 오퍼레이션을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankController 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  2. 오퍼레이션 이름을 getBalance (accountNumber, customerId)로 지정하십시오.
  3. 특성 보기의 매개변수 페이지에서 accountNumber 페이지의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  4. customerId 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  5. 특성 보기의 일반 페이지에서 리턴 유형 설정을 누르십시오.
  6. 요소 선택 창에서 정수를 누르십시오.

getCustomerById 오퍼레이션을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankController 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  2. 오퍼레이션의 이름을 getCustomerById(customerId)로 지정하십시오.
  3. 특성 보기의 매개변수 페이지에서 customerId 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  4. 특성 보기의 일반 페이지에서 리턴 유형 설정을 누르십시오.
  5. 요소 선택 창에서 itso.ad.business를 펼친 후 프레임워크를 펼치고 interfaces.to 패키지에서 ICustomerTO를 누르십시오.

transfer 오퍼레이션을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 PiggyBankController 클래스를 누른 후 UML 추가 > 오퍼레이션을 누르십시오.
  2. 오퍼레이션 이름을 transfer(amountToTransfer, creditAccountNr, customerId, debitAccountNr)로 지정하십시오.
  3. 특성 보기의 매개변수 페이지에서 amountToTransfer 매개변수의 유형 필드를 누른 후 매개변수 유형을 정수로 변경하십시오.
  4. creditAccountNr 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  5. customerId 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.
  6. debitAccountNr 매개변수의 유형 필드를 누른 후 매개변수 유형을 문자열로 변경하십시오.

itso.ad.business 컴포넌트 계층 페케이드 모델링을 완료했습니다. 다이어그램은 다음 그림과 유사하게 표시됩니다.

PiggyBankController 클래스에는 PiggyBank itso.ad.business 디자인 계층의 페케이드 구현(implementation)이 들어 있습니다.

계속 수행하려면 연습 3.7: EJB 위임 컴포넌트 서브패키지 작성으로 진행하십시오.

사용 약관 | 피드백
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.