[용어정리]UML 기초와 응용 객체 지향 설계와 분석을 위한_1~2단원
저자 : 한정수, 김귀정
출판사 : 한빛아카데미
출판일 : 2020.01.06
가격 24,000원
책소개
소프트웨어 설계의 기본기
소프트웨어를 개발할 때는 설계도, 즉 모델이 필요합니다. 좋은 모델은 개발자, 분석가, 사용자 간의 의사소통을 원활하게 하여 소프트웨어의 질을 향상시킬 수 있습니다. 이 책은 표준화된 모델링 도구인 UML의 기본 요소를 명료하게 설명해주고 일상에서 쉽게 접할 수 있는 소재를 예제로 가져와 직접 따라해볼 수 있게 구성하였습니다. 또한 UML을 쉽게 다룰 수 있는 STARUML이라는 프로그램을 사용해 UML 다이어그램을 작성하는 방법도 소개합니다. 이 책을 통해, UML을 이용하여 소프트웨어 설계에 필요한 실질적인 능력을 기를 수 있을 것입니다.
[인터넷 교보문고 제공]
Chapter 01 UML의 이해
UML : 시스템 개발을 위한 시각적인 설계 표기를 제공한다
객체 지향 : 절차 지향의 문제점을 극복하고, 인간이 사고하는 방식대로 프로그램을 개발하려는 노력의 소산물
객체 : 현실 세계에 존재하는 모든 것
클래스 : 자동차, 사람처럼 개념적으로 존재하는 것
메시지 : 한 객체가 다른 객체에 특정 작업을 요청하는 신호
송신 객체 : 메시지를 보내는 객체
수신 객체 : 매시지를 받아서 동작을 수행하는 객체
추상화 : 특정 측면을 강조하여 나타내는 것
캡슐화 : 데이터와 이 데이터를 처리하는 오퍼레이션이 한 틀 안에서 결합되어 객체라는 단위로 묶여 사용되는 것
정보 은닉 : 객체의 상세한 내용을 외부에 철저히 숨기고 단순히 메시지만으로 객체와 상호작용 하는 것
상속 : 프로그램을 쉽게 확장할 수 있도록 도와주는 수단
다형성 : 여러 클래스에 같은 이름의 함수가 존재하지만 동작은 다르게 수행되는 것
모델링 : 시스템을 구축할 때 개발자가 고민하고 결정하는 모든 활동
부치 방법론 : 설계 중심의 방법론, 시스템을 몇 개의 뷰로 분석할 수 있다고 본 것
OOSE : 유스케이스를 강조한 방법론
Chapter 02 UML 구성 요소와 뷰
정적 사물 : 모델의 구조, 개념적/물리적 요소를 표현하는 명사
클래스 : 동일한 속성, 오퍼레이션, 관계, 의미를 공유하는 객체를 기술한 것
인터페이스 : 클래스 또는 컴포넌트의 서비스를 명세화하는 오퍼레이션을 모아 놓은 것, 외부적으로 가시화되는 동작을 표현
통신 : 서로 다른 요소의 역할이 모여 교류를 정의
컴포넌트 : 전체 시스템을 구성하는 단위로 독립적으로 개발되고 배포되며 조립, 교환이 가능한 응집도가 높은 소프트웨어 산출물
패키지 : 요소를 그룹으로 묶는 행위
노드 : 실행할 때 존재하는 물리적인 요소
동적 사물 : 주로 모델의 동적인 부분을 동사로 표현하며, 시간과 공간에 따른 동작을 나타낸다.
교류 : 목적을 달성하기 위해 특정 문맥에 속한 객체들 간에 주고받는 메시지로 구성
유스케이스 : 시스템이 수행하는 활동들을 순차적으로 기술하며, 액터에게 의미있는 결과 값을 제공
상태 머신 : 외부 이벤트에 대한 객체의 상태와 상태의 변화 순서를 기술
주해 사물 : 모델링에 참여하지는 않지만 모델링에 참여하는 다른 사물들 뿐 아니라 모델링을 이해하는데 필요한 정보 등 필요한 모든 설명을 표시하기 위해 사용
연관 관계 : 객체 사이의 연결 관계
일반화 관계 : 일반화 된 사물과 좀 더 특수화 된 사물 사이의 관계
실체화 관계 : 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계
다이어그램 : 대게 요소들과 사물간의 관계를 그래프로 나타낸 것
클래스 다이어그램 : 클래스, 인터페이스, 통신과 함께 이들의 관계를 나타내며, 객체 지향 시스템 모델링에서 가장 공통적으로 쓰임
컴포넌트 다이어그램 : 컴포넌트 사이의 구성과 의존을 표현한 것으로, 시스템의 정적 구현 뷰를 나타냄
배치 다이어그램 : 실행 시 처리하는 노드와 그 노드에 있는 컴포넌트들의 구성을 표현한 것
패키지 다이어그램 : 클래스와 같은 여러 모델 요소를 그룹화하여 패키지를 구성하고, 이들 패키지 사이를 관계로 연결
유스케이스 다이어그램 : 유스케이스와 액터의 관계를 구조적으로 표현한 것
활동 다이어그램 : 시스템 내부에 있는 활동의 흐름을 표현한 것으로 시스템의 동적 뷰를 나타냄
유스케이스 뷰 : 외부 액터에 의해 인식되는 시스템의 기능, 요구 사항을 보여주는 관점
설계 뷰 : 유스케이스 뷰에서 정의 된 기능을 시스템이 제공하기 위해 어떤 클래스와 컴포넌트가 필요하고, 이들 클래스와 컴포넌트들이 서로를 어떻게 이용하고 호출하는지에 중점을 둔다.
프로세스 뷰 : 시스템 내부의 구조, 즉 클래스와 클래스 사이의 관계, 클래스의 동작 및 클래스 사이의 상호작용에 중점을 둔다.
스테레오 타입 : UML의 기본 요소 외에 새로운 요소를 만들어 내기 위한 확장이다.
꼬리표 값 : UML 구성 요소의 속성을 확장하여 구성 요소의 명세서에 새로운 정보를 생성할 수 있도록 해준다.
제약 : 이전 규칙을 수정하거나 새롭게 생성