노무현 대통령 배너

MDA툴 AndroMDA - 모델링

Development/자동화 2008/04/07 13:13 posted by k16wire
안드로메다를 가지고 개발을 시작하기 위해서는 먼저 모델링을 해야 합니다. Magic Draw를 가지고 모델링하고 나중에 이 모델을 가지고 코드를 생성해 보겠습니다.

UML 모델링
UML 모델을 그리기 위해서 모델링 툴이 필요합니다. 안드로메다에서 권장하는 툴은 Magic Draw입니다. Magic Draw는 모델링 범위가 제한되어 있지만 자유롭게 사용이 가능한 Communitey edition을 제공합니다.
MagicDraw 9.5 SP1.1 Community edition Download(15.6 MB)
사실 안드로메다와 사용가능한 모델링 툴은 더 많이 있습니다. 더 자세한 정보는 다음 URL을 참고하세요.
CASE tools that have been tested for AndroMDA compatibility
MagicDraw를 설치하고 나면 프로그램을 실행하고 나서
C:/timetracker/mda/src/main/uml/timetracker.xml파일을 열어서 모델링을 시작합니다.
timetracker.xml 파일을 로딩하기 위해서는 안드로메다에 대한 UML 프로파일을 필요로 하는데 이를 설정해 주어야 합니다. andromda의 Magic Draw UML Profile은 Maven Repository에 이미 들어있습니다.
.m2\repository\org\andromda\profiles
timetracker.xml 파일 안에 보면 아래와 같이 UML Profile에 대한 경로가 지정되어 있는걸 찾을 수 있습니다.
<mdElement elementClass='FileProperty'>
  <value>&lt;maven2.repository&gt;\org\andromda\profiles\uml14\
andromda-profile\3.2\</value>
  <selectionMode xmi.value='0'/>
</mdElement>
이 timetracker.xml 파일을 MagicDraw가 읽어들이기 위해서는 Maven과 Maven2에 대한 환경번수를 지정해 줘야합니다. 처음 파일을 읽어들일때 물어보는대로 경로를 찾아줘도 되며 미리 설정을 해도 됩니다.

MagicDraw를 실행하고 메뉴에서 [선택사항] >[환경변수]를 선택하여 다음과 같이 메이븐 레파지터리를 추가 합니다. 그러면 MagicDraw가 자동으로 UML Profile을 읽어들이게 됩니다.
사용자 삽입 이미지

timetracker.xml 파일을 MagicDraw에서 성공적으로 읽어들이면 다음과 같은 화면을 볼 수가 있습니다.
사용자 삽입 이미지

이제 모델링을 시작할 준비는 모두 끝났으니 실제로 모델을 작성해 보겠습니다. 처음 만들것은 ValueObject인 UserVO입니다.
  1. 마우스 오른쪽 버튼을 눌러서 [새요소] > [패키지]를 선택하여 org.andromda.timetracker 패키지를 만들고 그 밑으로 vo 패키지를 생성합니다.
  2. vo 패키지에서 [새 다이어그램] > [클래스다이어그램]을 선택합니다. 다이어그램의 이름은 Value Object 입니다.
  3. 다이어그램의 왼쪽 툴바를 이용해 아래 그림에서 보이는것처럼 UserVO 클래스와 UserVO[]클래스를 생성합니다.
  4. UserVO 클래스의 스테레오 타입은 <<ValueObject>>이며 id,username,firstName,lastName 네개의 속성을 갖습니다.
사용자 삽입 이미지

이번에는 UserService 서비스를 생성하겠습니다.
  1. service 패키지를 생성합니다.
  2. service 패키지에서 services 이름을 갖는 클래스 다이어그램을 생성합니다.
  3. 스테레오 타입이 <<Service>>이고 이름이 UserService인 클래스를 다이어그램에 추가합니다.
  4. public UserVO[] getAllUsers() 오퍼레이션을 클래스에 추가합니다.
사용자 삽입 이미지

이번에 생성할 클래스는 User 엔티티입니다.
  1. domain 패키지를 생성합니다.
  2. domain 패키지에서 Domain Objets 이름을 갖는 클래스 다이어그램을 생성합니다.
  3. 스테레오 타입이 <<Entity>>인 User 클래스를 다이그램에 추가합니다.
  4. 클래스 속성에서 꼬리표 값이 andromda.persistence.table에 USER라고 값을 입력합니다.
  5. username, firstName, lastName 속성을 User 클래스에 추가합니다.
사용자 삽입 이미지

User 엔티티 UserVO 간에 Dependency 관계를 맺어줍니다. Value Object 클래스 다이어그램에 domain 패키지에 있는 User 클래스를 가져와서 의존성 관계로 연결합니다.
사용자 삽입 이미지

UserService 서비스와 User 엔티티간에도 의존성 관계를 연결합니다. services 클래스 다이어그램은 다음과 같이 변경됩니다.
사용자 삽입 이미지

이것으로 모델링이 끝났습니다. 다음에는 이 모델을 가지고 코드를 생성해 보겠습니다.


크리에이티브 커먼즈 라이선스
Creative Commons License
TAG ,