오브젝트는 클래스의 인스턴스들
개별 Attributes 값을 지니고 있지만, Operation 은 따로 표시 안함 ( 클래스별로 동일한 Operation을 갖고있기 떄문 )
ㅁ 표기법
+ : Public
- : Private ( 표시없으면 Default가 private )
# : Protected
~ : Package
/ : 내부적으로 계산해서 나오는 값
_ : Class variable,operation (인스턴스가 아닌 클래스단위로 공유)
Operation과 Method의 차이
Operation : Body가 없는 내부적 구현이 작성되지 않은 선언문
Method : 구현된 코드
OO 개념에서 attribute는 숨겨져있기 때문에 접근하기 위한 Getter,setter를 보통 사용한다
(기본적으로 갖고있고, 변수별로 생기기때문에 UML tool에서 숨김기능 대부분 제공 )
5 Type of Class Relationship
Dependency : 다른 오브젝트와 잠깐 일하고 다시는 연결될일 없는 관계 ( 주로 컴포넌트 다이어그램 )
Association(Default) : 일정시간동안 다른 오브젝트와 협업하는 관계
Shared Aggreation(강화버전1) : 다른 클래스의 오브젝트를 참조(공유)하는 관계
Composition(강화버전2) : 다른 클래스의 오브젝트를 포함하는 관계
Inheirtance: 다른 클래스의 상속일 경우
ㅁ Association 읽는법
1) 다대다 관리
2) 강의를 하고
3) lecturer 롤이 보인다. ( navigability ) 학생은 강사의 Public attribute,Opertation 접근 가능. 강사는 학생의 볼수있는게 없음
보통 실선은 양쪽화살표의 의미
※ Association class
클래스와 클래스 간의 관계에 대한 설명
. 어느쪽에 두기도 애매한 attribute에 대해 담아둠
. N:M 관계에서만 적용
Singletone class
인스턴스가 1개뿐인 클래스. 좋은 설계는 아님
singletone design pattern : 생성되는 순간을 관측하기위한 모니터링 시스템 필요
Active class
Thread가 되는 클래스 ( 메인 프로세스와 독립적으로 리소스를 갖고 움직임 )
Interface
다양한 방법으로 interface implementation 표현 가능. ( interface realization )
1) Socket + lollipop notation (주로 컴포넌트)
2) Depoendency line notation (주로 컴포넌트)
3) Interface implementation
Aggregation
클래스가 다른 클래스를 포함하는 경우. (참조냐 소유냐의 따른 type으로 나뉨)
1) Shared Aggregation (weak)
빈 마름모로 표현하며, 참조의 경우. 삭제해도 참조 오브젝트가 지워지지 않음
2) Composition (strong)
채운 마름모로 표현하며, 삭제 시 연관된 모든 오브젝트가 삭제됨
Inheirtance(Generalization)
Public한 특징들만 내려감. attribute/Operation 만 내려가는게 아니라, 다른 클래스들과의 관계도 모두 상속된다
. 자바에서는 다중상속이 불가하다. (C++ 에서는 가능)
※ abstract class : 본인은 new로 인스턴스를 만들지 않고, 상속받은 클래스가 오브젝트를 만들도록 하는 껍데기 클래스
실습
ㅁ BP와 비교해서 고민할 점
1) 추후 구체화 단계에서는 속성/오퍼레이션에 타입값 작성과 클래스간 관계 표시
2) 합성을 이용하여, 주문쪽에 결제의 인스턴스를 선언하고 처리하는 방식에 대해 고려
<BP>
'IT > Architect 공부' 카테고리의 다른 글
Architect 공부 3일차(4) - UML/Activity Diagram (0) | 2024.04.02 |
---|---|
Architect 공부 3일차(3) - UML/StateChart Diagram (0) | 2024.04.02 |
Architect 공부 3일차(1) - UML/Sequence Diagram (0) | 2024.04.01 |
Architect 공부 2일차 - UML/UseCase (1) | 2024.03.29 |
Architect 공부 1일차 - OOP (1) | 2024.03.28 |