다음 서적 및 문서를 이 가이드라인에서 참조합니다.
타스크: 유스 케이스 분석의 내용과 비교할 때 다른 사항은 경계 클래스가 더 초점을 맞추고 있으며 해당 목적이 단일하다는
점입니다. 이 클래스의 오브젝트는 수명이 짧습니다. 웹 페이지의 클라이언트 상태는 특정 메커니즘에서 명시적으로 관리해야 합니다. 예를 들어 Microsoft Active Server 페이지는 현재 모든 활성
클라이언트의 상태 맵에서 색인으로 "쿠키"를 사용합니다.
또한 유스 케이스의 스펙을 읽는 경우 다음이 적용됩니다.
-
나타나는 모든 웹 페이지는 경계 클래스로 변환됩니다.
-
나타나는 모든 하이퍼링크는 경계 클래스에서 다른 경계 클래스 또는 제어기 클래스로 이어진 연관으로 변환됩니다.
-
프로세스의 동사 또는 설명은 제어기 클래스에 맵핑됩니다.
-
명사는 엔티티 클래스로 맵핑됩니다.
통신을 시작하면 경계 클래스는 제어기 클래스와 통신합니다. 일반적으로 제어기 클래스는 이 경계 클래스의 동일한 인스턴스를 통해 다시 응답하지 않습니다.
유스 케이스 분석을 진행하는 경우 시퀀스 다이어그램에서 시나리오를 설명할 수 있습니다. 그러면 유스 케이스 시나리오에서 분석 오브젝트의 존재 여부에 대한 유효성을 검증하는 데 도움이 됩니다. 분석 오브젝트가
시나리오에 참가하지 않은 경우 의심이 되므로 해당 오브젝트를 다시 평가해야 합니다. 이때 위험성은 너무 자세히 진행하는 경우 다이어그램 크기가 커져서 관리할 수 없다는 점입니다. 이 위험성을 방지하려면 별도의 짧은
시나리오에 집중하고 경계 및 프린시펄 제어기와 엔티티 오브젝트만 포함하십시오.
웹 응용프로그램에서 경계 오브젝트 수명은 짧다는 점을 명심하십시오. 그러나 경계 클래스는 시나리오 실행 중 여러 번 인스턴스화될 수 있습니다. 즉, 다이어그램의 동일한 클래스에서 여러 경계 오브젝트가 인스턴스로
작성됨을 의미합니다.
분석 레벨 시퀀스 다이어그램의 액터는 경계 오브젝트와 상호작용합니다. 액터는 탐색 메시지를 경계 오브젝트로 송신합니다.
초기 경계 클래스 디자인
경계 클래스는 클라이언트 페이지 클래스로 맵핑될 수 있습니다.
경계 클래스가 입력 정보와 관련된 경우 일반적으로 집계를 통해 해당 경계 클래스를 양식 또는 웹 양식과 연관시킬 수 있습니다. 전체 라이프사이클이 클라이언트 페이지에서 제어되므로 클라이언트 페이지의 중첩된 클래스로
양식을 모델링할 수 있습니다. 양식의 값을 처리하는 서버 페이지에 대한 제출 관계는 항상 양식에 포함됩니다. 결국 새로 리턴된 클라이언트 페이지로 이어집니다.
사용자 인터페이스에 클라이언트의 일부 동적 동작이 필요한 경우 가장 쉬운 해결 방법은 클라이언트에서 동적 HTML을 사용하는 것입니다. 일반적으로 디자인 모델에서는 클라이언트 페이지의 오퍼레이션으로 표시됩니다.
클라이언트 페이지의 오퍼레이션은 Java 스크립트 함수에 직접 맵핑됩니다. Java 페이지 맵의 속성 범위는 페이지의 변수로 지정됩니다. 동적 HTML 이벤트 핸들러는 태그 처리된 값으로 캡처됩니다.
사용자 인터페이스에 매우 복잡한 동작이 있는 경우 집계를 사용하여 애플릿을 경계 클래스와 연관시키는 방법을 고려합니다.
아키텍처가 분배 오브젝트 시스템(예: RMI, IIOP 또는 DCOM)에 기반한 경우 클라이언트 페이지는 HTTP를 우회하는 RMI, IIOP 또는 DCOM을 사용하여 서버와 직접 통신하는 컴포넌트에 대한
인터페이스를 참조할 수 있습니다. 일반적으로 이 관계 유형은 <<rmi>>, <<iiop>> 또는 <<dcom>>으로 스테레오타입화되어 네트워크
트래픽이 발생하여 병목 현상의 후보가 되는 영역을 디자이너에게 표시합니다.
초기 엔티티 클래스 디자인
웹 응용프로그램을 디자인할 때 엔티티 클래스와 다른 유일한 사항은 오브젝트가 클라이언트 페이지 범위에 상주하는 경우 엔티티 오브젝트는 Java 스크립트 오브젝트로 맵핑된다는 점입니다.
초기 제어기 클래스 디자인
제어 클래스는 서버 페이지로 맵핑됩니다. 제어기는 비즈니스 로직을 표현 및 조정하고 기타 로직을 조정합니다. 일반적으로 서버에 상주합니다. 많은 제어기 오브젝트는 클라이언트 페이지 빌드를 책임집니다(특히, 프린시펄
산출물로 HTML을 스트림함). 제어기 오브젝트는 서버측 자원(예: 데이터베이스, 중간 층 컴포넌트, 트랜잭션 모니터 등)과 상호작용할 수 있습니다.
일반적으로 제어기 클래스는 서버측 스크립트 웹 페이지(활성 서버 페이지, Java 서버 페이지)에 맵핑됩니다.
|