UML Flashcards
UML
[정의] 소프트웨어 개발과정에서 의사소통을 원활하게 하기 위해 표준화한 객체지향 모델링 기법
[특징] 가시화 언어, 문서화 언어, 명세화 언어, 구축 언어
* 객체지향 표준화 단체 OMG에 의해 표준화 채택
[구성요소]
- 사물(Things, 구조,행위,그룹,주해), 관계(의존,연관,일반화,실제화), 다이어그램(기능모델, 정적모델, 동적모델)
* 각각의 뷰는 UML등의 다양한 다이어그램 형태로 가시화 됨
[UML View] (U LCPD)
- Logic View : 시스템 내부 모듈간의 논리적 구조 (Class 다이어그램)
- Component View : 독립적으로 실행되는 컴포넌트와 이들간의 관계 (Component 다이어그램)
- Process View : 기능 수행시 시스템의 순차적 흐름 표현 (Active 다이어그램)
- Deployment View : HW와 SW간 관계 정의 (Deployment 다이어그램)
- Use Case View : 기능 관점 시스템 표현, 요구사항 명세 (Usecase 다이어그램)
Activity 다이어그램
[정의] 객체의 조건에 따른 처리흐름을 순서에 따라 정의한 다이어그램
[특징] 처리흐름의 도식화(프로그램 로직 정의 가능), 비즈니스 프로세스 정의(업무의 As-is, To-Be 분석), Use Case의 실현
[구성요소] (시종액 전분구)
1. 시작상태 : 처리 흐름이 시작되는 지점 → 검정동그라미
2. 종료상태 : 처리 흐름이 종료되는 지점 → 검정동그라미위에 원
3. 액티비티 : 행위나 작업 상태 → 옆이 둥근네모
4. 전이 : 다른 상태로의 제어흐름 → 화살표 실선
5. 분기 : 논리식의 결과에 따라 분기가 → 마름모
6. 구획면(swimlane) : 업무 조직이나 개인의 역할에 따른 처리구분 → 표 상단
[프로세스]
1. 작성대상 선정 : 업무프로세스 모델링, 오퍼레이션 사양 정의
2. Swimlane(스웜레인) 정의 : 대상영역에 명확한 역할을 정의해야 할때
3. 처리절차 모델링 : 시작점, 끝점 반드시 표현
Use Case 다이어그램
[리드] 시스템 기능에 대한 사용자 입장 표현
[정의] 고객 요구사항 분석위해 고객관점에서의 사용자와 시스템의 상호작용을 표현한 UML표준 표기법
[특징] 직관적 / UseCase와 Actor 관계표현 / 분석단계 수행, 전단계 영향 / 시스템 기본기능 / 대화수단, 내부기능예측
[구성요소]
1. Actor : 행위자, 시스템과 상호작용 사람(사물)
2. Usecase : 제공 서비스, 기능
3. System Boundary : 구축대상 및 전체 시스템 영역, 시스템
4. 관계 (연포확일)
- 연관관계 : 상호작용 존재 표현 (실선)
- 포함관계 : Include, 필수, 별도기능 포함시 (점선 화살표)
- 확장관계 : Extends 옵션, 특별한 조건 만족시 (점선 화살표)
- 일반화, 상속관계 : 추상화, 단순화 (실선 상속)
[제약조건] 시작조건 / 사전조건 / 사후조건 / 기본흐름 / 예외 흐름
[작성절차] 1.시스템 식별 → 2.Actor 식별 → 3.Usecase 식별 → 4.관계식별 → 5.Usecase 구조화(공통서비스 추출, 정의, 조건분석)
Sequence 다이어그램
[정의] 객체간 교환 메시지 순서, 시간 흐름 따라 표현 객체간 상호작용 순서 기술 다이어그램
[필요성] 누락된 클래스/오퍼레이션의 도출(순서상으로 짚어가면서 누락된 클래스/오퍼레이션은 없는지 확인)
[구성요소]
- 활성개체 : 시스템의 행위자 또는 시스탬 내의 유효한 객체
- Object : 메시지 상호작용 참여 주체
- 메시지 : 객체간 의사사통을 묘사하는 이용( 사용방법 : 동기, 반환, 비동기, 평판 )
- 제어사각형 : 객체가 제어를 가지고 있다는 것, 어떤 종류의 정보를 처리 또는 다른 정보를 기다리고 있는 표시
[Sequence 다이어그램 작성시 주의 사항]
- 동일한 상호작용을 여러 시퀸스 다이어그램에서 중복 작성에 주의
- 중복을 최소화 시키기 위해 UI별 시퀸스 다이어그램을 작성
- 가독성이 좋도록 코멘트(Commnet) 사용
- 메시지의 흐름은 액터로부터 시작하도록 작성
- 클래스 다이어그램에 표기된 클래스명과 매핑 가능하도록 객체 이름을 표기
Class 다이어그램
[정의] 시스템의 객체타입을 정의하고, 객체간 관계를 연관,의존,집합,상속등의 관계로 표현한 다이어그램
[특성] 작성 후 바로 코드 전환 가능, 높은 응집도와 낮은 결합도로 설계
[구성요소]
1. 클래스명 : 단순명과 경로명 표기,추상 클래스는 이탤릭체로 표기
- 속성/멤버변수(Attribute) : 클래스 Property 에 이를 대표하는 짧은 명사나 명사구로 이름 붙임, 의미있는 명사형으로 표시
- 연산/메소드(Operation) : 객체 행동에 영향을 주기 위해 특정 class의 객체로부터 요청할 수 있는 서비스를 표현,의미있는 동사형으로 표시
- 접근자(Visibility) → +:public, #:protected, -:private
2. Class 다이어그램 관계 및 표기법 (연포집일존)
- 연관관계
- 포함관계(복합연관)
- 집합관계(집합연관)
- 일반화(상속) 관계
- 의존 관계