노무현 대통령 배너

'AndroMDA'에 해당되는 글 3건

  1. 2008/04/07 MDA툴 AndroMDA - 코딩
  2. 2008/04/07 MDA툴 AndroMDA - 모델링
  3. 2008/03/06 MDA툴 AndroMDA - 개요

MDA툴 AndroMDA - 코딩

Development/자동화 2008/04/07 15:50 posted by k16wire
지난번에 작성한 모델을 가지고 코드를 생성합니다. 혹시 모델링이 힘드신 분을 위해 Magic Draw로 작성한 timeracker.xmi를 첨부합니다.



C:\timetracker 폴더에서 명령줄 창을 열고 다음과 같이 입력합니다.
mvn install
사용자 삽입 이미지

빌드가 성공적으로 끝나게 되면 common\target\src\org\andromda\timetracker 밑에 모델링한 클래스들이 생성되어 있는걸 확인할 수 있습니다.
  • UserService.java : 서비스 메소드에 대한 인터페이스
  • UserServiceImpl.java : 개발자가 실제로 비즈니스 로직을 구현하는 클래스
  • UserServiceException.java
  • UserVO.java
  • UserDaoImpl.java
이클립스에서 AndroMDA로 만든 프로젝트를 읽어들여 보겠습니다. 이클립스를 실행하고 timetracker 프로젝트를 import 합니다.
File > Import > Existing Projects into Workspace
사용자 삽입 이미지

지금부터는 이클립스를 이용하여 개발을 진행하면 됩니다. 개발이 진행되고 나면 Maven을 이용하여 JBoss에 배포하고 테스트하는게 가능합니다. handleGetAllUsers 메소드를 다음과 같이 구현합니다.
Collection userVOs = getUserDao().loadAll(UserDao.TRANSFORM_USERVO);
return (UserVO[])userVOs.toArray(new UserVO[0]);


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

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 AndroMDA, MDA

MDA툴 AndroMDA - 개요

Development/자동화 2008/03/06 08:52 posted by k16wire
안드로메다라고 부르는 AndroMDAUML 모델을 기반으로 J2EE, .NET 코드 생성을 지원하는 템플릿 기반의 프레임워크 입니다. 다른 MDA 도구와 달리 Spring, jBPM, Struts, JSF, Hibernate와 같은 프레임워크에 코드 생성을 직접 지원합니다. 원하는 UML 도구로 생성한 모델을 기반으로 코드를 생성 할 수 있습니다.

사용자 삽입 이미지

현재 안드로메다 최신버전은 4.0입니다면 여기서는 3.2버전을 기준으로 기본적인 특징들을 살펴보겠습니다.
UML 버전
안드로메다는 현재 UML 1.4를 지원합니다.(2008/02/19 현재) UML 2.0은 개발중에 있습니다.
UML 툴 지원
MagicDraw, Poseidon, Enterprise Architect를 지원합니다. 더 자세한 UML툴에 대한 안드로메다 호환성 테스트 결과는 CASE tools that has been tested for AndroMDA compatibility를 참고하세요.
카트리지
AndroMDA 4.0이 현재 지원하는 카트리지를 나열해 보겠습니다.
  • Spring
  • EJB 2/3
  • Webservices
  • JSF
  • XSD
  • .NET
  • Hibernate
  • Struts
기존 카트리지를 수정해서 자신만의 카트리지를 만들수도 있습니다. 메타 카트리지라고 부르는 기존 카트리지를 카트리지 툴킷을 이용해서 수정하게 되면 새로운 카트리지를 만들 수 있고 이 카트리지로 UML 툴을 이용해서 소스 생성이 가능합니다.
IDE
안드로메다는 이클립스 플러그인 형태로 설치가 됩니다.
템플릿
Velocity, FreeMarker를 지원합니다.
텍스트 생성
소스코드, SQL, HTML, O/R 맵핑 파일 생성이 가능합니다.

이런 특징을 갖고 있는 안드로메다로 어떤일을 할 수 있는 걸까요 ? 다음과 같은 아키텍처를 갖는 엔터프라이즈 애플리케이션을 만든다고 가정 해 보겠습니다.
사용자 삽입 이미지

레이어드 아키텍처는 아키텍처를 정의하는데 가장 많이 사용되는 아키텍처 스타일입니다. 각 레이어별 설명은 생략하겠습니다. 이런 아키텍처를 가진 애플리케이션을 안드로메다로 개발하려면 각 레이어 별로 사용하는 기술셋이 맵핑되어야 합니다.
사용자 삽입 이미지

안드로메다를 이용하면 오른쪽에 나와있는 기술셋으로 구현된는 J2EE 애플리케이션을 모델로부터 생성해 내는게 가능합니다. 프레임워크를 위한 설정파일은 자동으로 생성되며 개발자는 비즈니스 로직 구현에만 전념하면 됩니다.

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