[AA Role] 프로젝트 정의단계 / 산정/ 인터페이스 설계

 

분석기술

 - 유즈케이스는 중요한 분석 도구

 - 프로토타이핑

 - 프로젝트 영역 식별

 - 비기능요구사항: 기능요구사항은 어플리케이션이 수행해야 하는 것 정의, 비기능요구사항은 기능적인 요구사항을 어플리케이션이

                        성취하는 방법에 대한 제약사항 명시

 

범위정의와 산정

 - 업무측에 유즈케이스에 대한 동의를 얻는다

 - 프로젝트 범위를 결정하는데 사용된 가정을 문서화한다

 - 팀에서 가장 늦은 자원을 기준으로 산정한다

 

 

외부 어플리케이션 인터페이스 설계

 - 인터페이스 방법 선택(ex: 직접 외부 어플리케이션 DB 활용, 웹 서비스, 메시징, EJB, REST 서비스 등)

 

   (1) 외부 어플리케이션 DB 직접 읽기

       : 구현이 가장 쉽고, 비용이 적게 듬

       : 외부 어플리케이션 팀의 개입이 거의 필요 없음

       : 항상 최신의 데이터 제공

       : 외부 어플리케이션의 변화에 역으로 영향 받을 리스크 존재

       : 오라클은 예외지만 대부분의 데이터베이스는 읽을 때 로크가 걸림(성능에 영향 줄 수 있음)

 

    (2) 웹 서비스

       : 웹 서비스는 다른 인터페이스 메서드에 비교하여 개발하고 유지, 보수하기 어렵다

       : 웹 서비스는 대량의 데이터를 가져오는 데 최적화되어 있지 않다

       : 필요할 때 웹 서비스를 사용하지 못할 수 도 있다. 대처 전략 필요

       : 플랫폼 중립적

       : 웹 서비스는 자유롭게 리팩토링 및 재설계 가능(해당 어플리케이션에는 아무런 영향을 미치지 않음)

 

     (3) RESTful 서비스

       : RESTful 웹 서비스는 구조화된 URL을 사용하여 정보 요청 명세를 커뮤니케이션 한다.

       : 플랫폼 중립적

       : 웹 서비스보다 소비하기 쉽다

       : 필요할 때 사용할 수 없을 수도 있다. 대처 전략 필요.

       : 웹 서비스의 WSDL 자체가 서비스를 설명하는 문서로 제공되는 반면에 RESTful 서비스는 이러한 내장된 문서화 전략을 제공하지 않음

 

     (4) 메시징 서비스 활용

       : 비동기적인 커뮤니케이션 방법. 요청이 전달되지만 응답이 즉시 이루어지지 않을 수 있음

       : JMS

       : 전달을 보장한다

       : 플랫폼 중립적

       : Java EE 컨테이너 지원을 받음

       : 내장된 문서화 전략을 제공하지 않음

 

 

 - 데이터 구조

     (1) 외부 어플리케이션에 전달되는 모든 데이터 문서화

 

 - 컨텐츠 교환 트리거 이벤트

 - 에러 처리 프로시저와 책임

     (1) 모든 외부 어플리케이션 인터페이스는 에러 알림 프로시저를 가져야 한다

     (2) 자동으로 에러를 알려주는 방식을 사용

     (3) 에러를 로깅할 때 상세한 설명을 포함시키는 것이 좋다

 

 - AA는 인터페이스 설계 논의를 중재해야 한다

     (1) 외부 어플리케이션에 전송하고 요청하는 모든 사항을 기록한다

     (2) 에러 처리 로직 적절하게 테스트

 

 

[출처] JAVA EE 아키텍트 핸드북 2판

 

 

[AA Role] 프로젝트 계획단계

 

계획단계에서 AA의 역할은 기업마다 크게 달라짐

 

- 업무 분석 주도 및 문서화

- PM을 지원하여 프로젝트 범위 정의

- 필요한 시간과 리소스 산정

- 외부 어플리케이션과의 인터페이스 정의 및 설계

 

1) AA는 프로젝트에서 사용될 기술을 선택한다

   : 기업수준 --> 하드웨어, 운영체제, 소프트웨어, 언어 등

     AA수준 --> ex) XML parser, third party package, utility 등

 

2) AA는 프로젝트에서 사용할 개발방법론과 프레임워크를 추천한다

 

3) AA는 어플리케이션의 종합적인 설계와 구조를 제공한다

 

4) AA는 어플리케이션 설계를 적절하게 문서화해야 한다

   : 설계 문서화는 개발자들과 커뮤니케이션 하는 중요한 단계

   : 문서는 프로젝트 중간에 사람이 교체되더라도 프로젝트가 제대로 유지될 수 있도록 한다

 

5) AA는 코드 작성 가이드라인을 수립한다

   : 예외처리, 로깅, 테스트, 스레딩, 캐싱, 설정 등

 

6) AA는 인프라스트럭처 요구사항을 정의한다

 

 

[AA와 사람들] AA와 PM

1) AA는 PM에게 구현 작업을 식별해주어야 한다

   : AA는 PM이 현실적으로 프로젝트 계획과 산정을 할 수 있도록 도와주어야 한다

 

2) AA는 PM을 도와 관리를 위한 프로젝트 비용과 효과를 산정한다  

 

3) AA는 PM이 개발자 위치에 대한 인사결정을 할 수 있도록 도와준다

 

4) AA는 PM에게 기술적인 충고와 가이드를 제공해야 할 책임이 있다

 

 

[AA와 사람들] AA와 PL

1) AA는 PL에 의해 결정된 어플리케이션 요구사항이 적절한지 확인할 책임이 있다

 

 

AA와 사람들] AA와 디자이너

1) AA는 레이아웃이 기술적인 타당성을 갖는지 확인할 책임이 있다

 

AA와 사람들] AA와 업무 로직 개발자

1) AA는 업무 로직 개발자에게 가이드를 제공한다

   : 업무로직 개발자는 엔터프라이즈 빈, 웹 서비스, 배치 작업, 업무 객체, 데이터 액세스 객체 등의 코드를 작성할 책임을 지닌다

 

AA와 사람들] AA와 데이터 모델러

1) AA는 데이터 모델이 적절한지 확인할 책임이 있다

   : 데이터 모델러는 업무 분석가로부터 제공되는 정보를 사용하여 어플리케이션이 데이터베이스에 저장하는 모든 데이터를 식별하고, 정의하며

     목록을 작성한다. (ER 다이어그램 작성)

 

 

AA와 사람들] AA와 데이터베이스 관리자

1) AA는 데이터베이스 관리자와 함께 작업하여 데이터베이스 저장소에 관련된 이슈나 문제를 해결한다

   : 데이터베이스 관리자는 어플리케이션에 대한 업무 요구사항에 기초하여 데이터베이스 설계를 수행하고, 어플리케이션을 위한 데이터베이스 환경을

     만들고 유지보수한다.

2) AA는 데이터 이관 요구사항이 이관 전문가에게 잘 제공되는지를 확인한다

 

 

AA와 사람들] AA와 테스트 전문가

1) AA는 테스트 전문가와 함께 작업하여 필요한 인프라스트럭처 요구사항과 자원을 식별한다

 

 

[출처] Java EE 아키텍처 핸드북 2판 - 성공적인 아키텍

 

 

 

 

 

 

'Application Architect > AA 일반' 카테고리의 다른 글

아키텍트가 지녀야할 capabilities  (0) 2017.05.14

+ Recent posts