연습 3.5: 프레임워크 컴포넌트 계층 모델링

이 연습에서는 itso.ad.business 패키지의 프레임워크 계층을 모델링합니다. 프레임워크 컴포넌트 계층은 클라이언트 인터페이스를 지속적 응용프로그램 데이터와 응용프로그램의 구현 둘 다에서 분리시킵니다. 프레임워크 컴포넌트 계층에는 위임 팩토리 클래스 및 예외사항을 포함하여 전송 오브젝트 및 위임 인터페이스가 들어 있습니다.

프레임워크 컴포넌트 계층에는 다음 표의 디자인 서브패키지가 포함되어 있습니다.

패키지 설명
예외 이 서브패키지에는 PiggyBank 온라인 은행 업무 시스템에 대한 오류 복구를 제공하는 ServiceException 및 DataAccessException 예외 클래스가 들어 있습니다.
팩토리 이 서브패키지에는 비즈니스 위임을 동적으로 작성하는 데 사용되는 BusinessDelegateFactory 클래스가 들어 있습니다.
interfaces.delegates 이 서브패키지에는 비즈니스 위임에 대한 인터페이스가 들어 있습니다.
interfaces.to 이 서브패키지에는 전송 오브젝트에 대한 인터페이스가 들어 있습니다.

전송 오브젝트 인터페이스 모델링

전송 오브젝트는 원격 프로시저 호출에 대한 리턴 유형으로 사용됩니다. PiggyBank 전송 오브젝트는 PiggyBank 디자인의 계층 간에 고객 및 계정 정보를 전송합니다. 이 연습은 전송 오브젝트 인터페이스를 모델링합니다.

ICustomerTO 인터페이스를 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼친 후 PiggyBank 구현 디자인을 펼치십시오.
  2. itso.ad.business 서브패키지에서 마우스 오른쪽 단추로 프레임워크 패키지를 클릭한 후 UML 추가 > 패키지를 클릭하십시오.
  3. 새 패키지의 이름을 interfaces.to로 지정하십시오.
  4. 모델 탐색기 보기에서 메인 다이어그램을 두 번 클릭한 후 interfaces.to - 전송 오브젝트 인터페이스(interfaces.to - Transfer Object Interfaces)의 제목을 추가하십시오.
  5. 팔레트에서 인터페이스를 두 번 클릭한 후 인터페이스의 이름을 ICustomerTO로 지정하십시오.
  6. 다이어그램 편집기에서 마우스 오른쪽 단추로 ICustomerTO 클래스를 클릭한 후 UML 추가 > 오퍼레이션을 클릭하십시오.
  7. 오퍼레이션의 이름을 getId로 지정하십시오.
  8. 특성 보기의 일반 페이지에서 리턴 유형 설정을 클릭하십시오.
  9. 요소 선택 창에서 문자열을 클릭하십시오.
  10. 다이어그램 편집기에서 마우스 오른쪽 단추로 ICustomerTO 클래스를 클릭한 후 UML 추가 > 오퍼레이션을 클릭하십시오.
  11. 오퍼레이션의 이름을 getName으로 지정하십시오.
  12. 특성 보기의 일반 페이지에서 리턴 유형 설정을 클릭하십시오.
  13. 요소 선택 창에서 문자열을 클릭하십시오.

IAccountTO 인터페이스를 모델링하려면 다음을 수행하십시오.
  1. 팔레트에서 인터페이스를 두 번 클릭한 후 인터페이스의 이름을 IAccountTO로 지정하십시오.
  2. 다이어그램 편집기에서 마우스 오른쪽 단추로 IAccountTO 클래스를 클릭한 후 UML 추가 > 오퍼레이션을 클릭하십시오.
  3. 오퍼레이션의 이름을 getBalance로 지정하십시오.
  4. 특성 보기의 일반 페이지에서 리턴 유형 설정을 클릭하십시오.
  5. 요소 선택 창에서 정수를 클릭하십시오.
  6. 다이어그램 편집기에서 마우스 오른쪽 단추로 IAccountTO 클래스를 클릭한 후 UML 추가 > 오퍼레이션을 클릭하십시오.
  7. 오퍼레이션의 이름을 getNumber로 지정하십시오.
  8. 특성 보기의 일반 페이지에서 리턴 유형 설정을 클릭하십시오.
  9. 요소 선택 창에서 문자열을 클릭하십시오.

전송 오브젝트 인터페이스 모델링을 완료했습니다. 다이어그램은 다음 그림과 유사하게 표시됩니다.

전송 오브젝트 인터페이스 다이어그램

위임 인터페이스 모델링

비즈니스 위임 인터페이스 정의는 비즈니스 위임 구현 인스턴스를 생성하는 데 사용되는 비즈니스 위임 메소드 및 팩토리 컴포넌트를 설명합니다. IPiggyBankBusinessDelegate 인터페이스는 PiggyBank 비즈니스 로직에 대한 인터페이스를 정의합니다. AbstractBusinessDelegateFactory 클래스는 IPiggyBankBusinessDelegate 인스턴스를 인스턴스화합니다.

IPiggyBankBusinessDelegate 인터페이스를 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼치고 PiggyBank 구현 디자인을 펼치십시오.
  2. itso.ad.business 서브패키지에서 마우스 오른쪽 단추로 프레임워크 패키지를 클릭한 후 UML 추가 > 패키지를 클릭하십시오.
  3. 새 패키지의 이름을 interfaces.delegates로 지정하십시오.
  4. 모델 탐색기 보기에서 메인 다이어그램을 두 번 클릭한 후 interfaces.delegates - 위임 인터페이스(interfaces.delegates - Delegate Interfaces)의 제목을 추가하십시오.
  5. 팔레트에서 인터페이스를 두 번 클릭한 후 인터페이스의 이름을 IPiggyBankBusinessDelegate로 지정하십시오.

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

getAccountByCustomer 오퍼레이션을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 IPiggyBankBusinessDelegate 클래스를 클릭한 후 UML 추가 > 오퍼레이션을 클릭하십시오.
  2. 오퍼레이션의 이름을 getAccountByCustomer(customer)로 지정하십시오.
  3. 특성 보기의 고급 페이지에서 다중성 옆의 1..-1 옆에 있는 아래 화살표를 클릭한 후, 1..*를 클릭하십시오.
  4. 일반 페이지에서 순서 지정 선택란을 선택하고 고유 선택란을 지운 후 리턴 유형 설정을 클릭하십시오.
  5. 요소 선택 창에서 itso.ad.business를 펼친 후 프레임워크를 펼치고 interfaces.to 패키지에서 IAccountTO를 클릭하십시오.

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

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

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

AbstractBusinessDelegateFactory 인터페이스를 모델링하려면 다음을 수행하십시오.
  1. 팔레트에서 인터페이스를 두 번 클릭한 후 인터페이스의 이름을 AbstractBusinessDelegateFactory로 지정하십시오.
  2. 다이어그램 편집기에서 마우스 오른쪽 단추로 AbstractBusinessDelegateFactory 클래스를 클릭한 후 UML 추가 > 오퍼레이션을 클릭하십시오.
  3. 오퍼레이션의 이름을 createPiggyBankBusinessDelegate로 지정하십시오.
  4. 특성 보기의 일반 페이지에서 리턴 유형 설정을 클릭하십시오.
  5. 요소 선택 창에서 itso.ad.business를 펼친 후 프레임워크를 펼치고, interfaces.delegates 패키지에서 IPiggyBankBusinessDelegate를 클릭한 후 확인을 클릭하십시오.

위임 인터페이스 모델링을 완료했습니다. getAccountsByCustomer 및 getCustomerById 오퍼레이션이 이전 연습에서 작성한 전송 오브젝트 인터페이스를 리턴하는 점을 유의하십시오. 다이어그램은 다음 그림과 유사하게 표시됩니다.

비즈니스 위임 인터페이스 다이어그램

비즈니스 위임 팩토리 모델링

BusinessDelegateFactory 클래스는 위임 팩토리 인스턴스를 동적으로 작성하는 데 사용됩니다.

BusinessDelegateFactoryClass 인터페이스를 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼치고 PiggyBank 구현 디자인을 펼치십시오.
  2. itso.ad.business 서브패키지에서 마우스 오른쪽 단추로 프레임워크 패키지를 클릭한 후 UML 추가 > 패키지를 클릭하십시오.
  3. 새 패키지의 이름을 팩토리(factory)로 지정하십시오.
  4. 모델 탐색기에서 메인 다이어그램을 두 번 클릭한 후 factory - 비즈니스 위임 팩토리 추상 구현(factory - Business Delegate Factory abstract implementation)의 제목을 추가하십시오.
  5. 팔레트에서 클래스를 두 번 클릭한 후 클래스의 이름을 BusinessDelegateFactory로 지정하십시오.
  6. 특성 보기의 일반 페이지에서 추상 선택란을 선택하십시오.

delegateFactory 속성을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 BusinessDelegateFactory 클래스를 클릭한 후 UML 추가 > 속성을 클릭하십시오.
  2. 속성의 이름을 delegateFactory로 지정하십시오.
  3. 특성 보기의 일반 페이지에서 유형 선택을 클릭하십시오.
  4. 요소 선택 창에서 itso.ad.business를 펼친 후 프레임워크를 펼치고 interfaces.delegates 패키지에서 AbstractBusinessDelegateFactory를 클릭하십시오.
  5. 특성 보기의 일반 페이지에서 정적을 클릭하십시오.

getInstance 오퍼레이션을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 BusinessDelegateFactory 클래스를 클릭한 후 UML 추가 > 오퍼레이션을 클릭하십시오.
  2. 오퍼레이션의 이름을 getInstance로 지정하십시오.
  3. 요소 선택 창에서 itso.ad.business를 펼친 후 프레임워크를 펼치고, interfaces.delegates package에서 AbstractBusinessDelegateFactory를 클릭하십시오.
  4. 특성 보기의 일반 페이지에서 정적을 클릭하십시오.

init 오퍼레이션을 모델링하려면 다음을 수행하십시오.
  1. 다이어그램 편집기에서 마우스 오른쪽 단추로 BusinessDelegateFactory 클래스를 클릭한 후 UML 추가 > 오퍼레이션을 클릭하십시오.
  2. 오퍼레이션의 이름을 init(factoryClassName)로 지정하십시오.
  3. 특성 보기의 매개변수 페이지에서 factoryClassName 매개변수의 유형 필드를 클릭한 후 매개변수 유형을 문자열로 변경하십시오.
  4. 특성 보기의 일반 페이지에서 정적을 클릭하십시오.
  5. 모델 탐색기 보기의 interfaces.delegate 서브패키지에서 AbstractBusinessDelegateFactory 인터페이스를 클릭하고, 이를 다이어그램으로 끌어서 놓으십시오.
  6. 팔레트에서 구현(implements)을 클릭하십시오.
  7. 다이어그램 편집기에서 BusinessDelegateFactory 클래스를 클릭하고, 이를 AbstractBusinessDelegateFactory 클래스로 끌어서 놓으십시오.

itso.ad.business 계층 팩토리 클래스 모델링을 완료했습니다. 다이어그램은 다음 그림과 유사하게 표시됩니다.

비즈니스 위임 팩토리 추상 구현

itso.ad.business 프레임워크 예외 모델링

프레임워크 컴포넌트 계층에는 두 가지 예외의 구현이 포함되어 있습니다. 이들은 비즈니스 계층에 오류가 발생할 때마다 발생하는 DataAccessException과 서비스 유실 때문에 발생하는 Service Exception입니다.

DataAccessException 및 ServiceException 클래스를 모델링하려면 다음을 수행하십시오.
  1. 모델 탐색기 보기에서 엔터프라이즈 IT 디자인 모델을 펼치고 PiggyBank 구현 디자인을 펼치십시오.
  2. itso.ad.business 서브패키지에서 마우스 오른쪽 단추로 프레임워크 패키지를 클릭한 후 UML 추가 > 패키지를 클릭하십시오.
  3. 새 패키지의 이름을 예외(exception)로 지정하십시오.
  4. 모델 탐색기 보기에서 메인 다이어그램을 두 번 클릭한 후 예외(exception)라는 제목을 추가하십시오.
  5. 팔레트에서 클래스를 두 번 클릭한 후 클래스의 이름을 DataAccessException으로 지정하십시오.
  6. 팔레트에서 클래스를 두 번 클릭한 후 클래스의 이름을 ServiceException으로 지정하십시오.

itso.ad.business 프레임워크 컴포넌트 계층의 모델링을 완료했습니다. 프레임워크 계층은 PiggyBank 구현으로부터 PiggyBank 클라이언트 인터페이스를 숨기는 분리 계층입니다. 이제 팩토리 패키지를 다이어그램으로 끌어서 itso.ad.business 디자인 요소를 완료할 수 있습니다. 사용(usage) 관계로 delegate.ejb 패키지를 팩토리 패키지로 연결하십시오. 연관 관계로 팩토리 패키지를 프레임워크 패키지로 연결하십시오. 다이어그램은 다음 그림과 유사하게 표시됩니다.

itso.ad.business 디자인 요소 패키지 다이어그램

계속 수행하려면 연습 3.6: EJB 컴포넌트 서브패키지 모델링을 진행하십시오.

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