이번에는 동적 모델링에 대해서 알아보려고 한다.
동적 모델링이란 클래스들의 상호작용이나 클래스의 상태 변화 등 시스템 내부의 동작을 모델링하는 것을 말한다.
동적 모델에는 3가지 다이어그램이 있다.
1. 인터랙션 다이어그램
2. 상태 다이어그램
3. 액티비티 다이어그램
인터랙션 다이어그램은 사용 사례를 실현시키기 위하여 내부 클래스들이 어떻게 협동하는지 나타낸다.
인터랙션 다이어그램도 2가지 종류가 있다.
객체를 울타리 형태로 나열하고 이벤트의 발생 순서에 초점을 두고 위에서 아래로 명시하는 타입을 시퀀스 다이어그램이라 한다.
클래스를 네트워크 형태로 배치하고 객체 사이에 어떤 메세지 교환이 이루어지는지를 중점적으로 표시하는 방법이 커뮤니케이션 다이어그램이라고 한다. 2가지는 이름하고 표현 방식만 다르고 의미는 같다
상태 다이어그램은 복잡한 객체의 상태 변화를 나타낸 것이다.
액티비티 다이어그램은 절차나 흐름을 나타낸다.
순서대로 알아보자
우선 시퀀스 다이어그램부터 알아보자
시퀀스 다이어그램은 시스템의 동작을 정형화하고 객체들의 메시지 교환을 울타리 형태로 시각화하여 나타낸 것이다.
**사용자 사례 다이어그램에 관련된 객체를 추가로 찾아내는데도 유용하다. // 이를 참여객채라 부른다.
참여객체는 중요하다
첫 번째: 객체의 이름이 다른 곳에서 언급될 필요가 없을 때 클래스 이름만 있어도 무방
**두번째 kim: 은 잘 안쓰임
세 번째 : 보통
네 번째: 객체의 모임을 나타내는 것으로 객체로 구성된 배열이나 리스트, 해싱테이블은 의미
다섯 번째 : JSP페이지를 의미
그렇다면 이제 시퀀스 다이어그램을 이루는 기본 요소들을 살펴보자
시퀀스 다이어그램은 객체 사이에 일어나는 상호 작용을 나타낸다고 했다.
위의 요소와 표현방법으로 시퀀스 다이어그램이 구성된다.
설명은 잘 읽어보자 ㅎㅎ
조금 빨리 넘어가는 것처럼 느껴진다고?? 맞다 ㅎㅎ 졸려가지구
이제 구성 요소도 알아봤겠다.
시퀀스 다이어그램 작성을 어떻게하지?? 이제 알아보자
간단하게 이것도 3단계가 있다.
1. 참여하는 객체를 파악한다
2. 파악한 객체를 X축에 나열하고 라이프라인을 그린다
3. 사용사례에 기술된 이벤트 순서에 따라 객체의 메시지 호출된다.
다시 말하자면 시퀀스 다이어그램은 여러 객체 사이의 상호 작용을 표시한다.
**특히 시퀀스 다이어그램은 사용 사례의 이벤트 흐름을 나타내는데 사용되고 사용 사례에 참여하는 객체를 찾아내고 사용 사례의 동작을 시스템 내부에 존재하는 객체의 메세지 교환 형태로 표현하는데 사용된다.
3단계를 차례로 가보면
1단계
시퀀스 다이어그램이 나타내는 사용 사례의 자세한 이벤트를 조사하면서 참여하는 객체 찾기
2단계
파악한 객체 나열 시, 시스템 경계를 담당하는 UI를 객체 맨 왼쪽에, 다음으로 비즈니스 로직을 다루는 제어 객체, 마지막으로 자료의 접근과 저장을 위한 엔티티 클래스를 위치시킨다.
3단계
사용 사례를 구동시키는 액터로부터 UI클래스에 보내는 명령을 표시 후, 개입하는 각 객체의 메세지 호출을 화살표로 그린다.
++ 그림을 보고 읽으면 더 이해가 잘간다
오늘은 졸려서 여기까지만..
다음에는 상태 다이어그램에 대해서 배워보자
+++ 자고 일어나서 추가할 내용있다
일관성 체크라고 클래스 다이어그램과 시퀀스 다이어그램을 비교하는 단계가 있는데
생략하고 넘어가서 일어나서 다시 쓴다.
딱히 뭐 강조할 것은 없지만 그냥 그렇다고..
'컴퓨터(Computer Science) > 소프트웨어공학(Software engineering)' 카테고리의 다른 글
프로젝트 계획(9-4) - 모델링 도구 UML, starUML [소프트웨어공학] (0) | 2020.04.25 |
---|---|
프로젝트 계획(9-3) - 동적 모델링 (dynamic modeling) [소프트웨어공학] (0) | 2020.04.25 |
프로젝트 계획(9-1) - 정적 모델링(static modeling) [소프트웨어공학] (0) | 2020.04.23 |
프로젝트 계획(9) - 정적 모델링(Modeling) + UML [소프트웨어공학] (8) | 2020.04.22 |
프로젝트 계획(8) - 모델링(Modeling) + 객체지향 [소프트웨어공학] (2) | 2020.04.20 |