logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

UML 설계와 응용 : 클래스 모델 만들기

UML 설계와 응용 : 클래스 모델 만들기

리안 스테어 (지은이), 김인기 (옮긴이)
  |  
정보문화사
2003-02-18
  |  
18,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
yes24 로딩중
교보문고 로딩중
영풍문고 로딩중
인터파크 로딩중
11st 로딩중
G마켓 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
로딩중

e-Book

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

UML 설계와 응용 : 클래스 모델 만들기

책 정보

· 제목 : UML 설계와 응용 : 클래스 모델 만들기 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 객체지향 프로그래밍/UML
· ISBN : 9788956740782
· 쪽수 : 407쪽

책 소개

클래스 모델은 소프트웨어 스펙을 정확하게 표현할 수 있는 훌륭한 수단이다. 작성된 스펙은 테스트와 디버깅이 가능하고 여러 프로그래밍 언어와 플랫폼에서 실행되는 코드로 변환이 가능하다. 이 책은 Executable UML을 사용해서 어떻게 정확한 클래스 모델을 작성하는지에 대해 알려준다.

목차

서문 Executable UML이란 무엇인가?

왜 Executable UML을 이용하는가?
스펙의 발전 과정
문장으로 서술한 스펙
기호로 표시한 스펙
Executable 스펙
스펙은 어떻게 구현되는가?
모델 컴파일러의 이용
변환 기술 요소
왜 변환하는가?
요약


제1부 기본적인 모델링 도구들

Chapter 1 클래스

클래스란 무엇인가?
클래스 기호
클래스와 인스턴스(instance)의 차이점
클래스 테이블에 대해...
클래스 테이블 규칙
데이터의 최소 단위는 속성이다
인스턴스의 순서는 무시된다
속성의 순서는 무시된다
각 인스턴스는 고유하다
클래스의 종류
물질적인 클래스
소프트 클래스
발견된 클래스들
창조된 클래스들
실험된 클래스들
스펙 클래스들
사건에 관한 클래스들
관계에 관한 클래스들
역할 클래스들
클래스에 관한 잦은 질문들
속성이 하나뿐인 클래스를 만들어도 문제 없는가?
클래스 인스턴스가 하나만 존재할 수 있는가?

Chapter 2 속성

속성이란 무엇인가?
목적
설명 속성
이름 속성
이름 속성 또는 설명 속성?
식별을 위한 역할
암묵적 식별자
단일 속성 식별자
복합 식별자
참조용 속성
여러 개의 식별자들
중복 식별자
다른 속성에 대한 의존관계
식별자에 대한 의존
식별자 전체에 대한 의존
값의 할당
식별자가 아닌 속성 값의 변경
식별자 속성 값의 변경
연산에 의한 의존관계
의미의 일반성
언제나 의미를 갖는 속성
(어떤 인스턴스들에게는) 아무 의미가 없는 속성
어떤 순간에 - 의미를 잃는 속성
늦게 값이 할당되는 속성
하나 이상의 의미를 갖는 속성
속성의 기원
네이티브 속성
참조 속성
속성의 기원과 식별자
속성의 특징에 대한 요약
속성에 관한 잦은 질문들
클래스는 얼마나 많은 속성을 가질 수 있는가?
언제나 클래스의 고유함을 보장할 수 있는가?

Chapter 3 관계

연관관계란 무엇인가?
연관관계를 추상화하기
연관관계의 기호
연관관계와 규칙들
관계는 애플리케이션 정책을 정의한다
관계의 중요성
관계의 종류
연관관계 종류에 따른 표기법
포테이토 다이어그램
양자간 비재귀적 관계
양자간 비재귀적 관계: 클래스가 다른 두 인스턴스 사이의 관계
"양자간"이란 두 개의 참가자가 있음을 뜻한다
각 참가자 역할의 이름과 참여개수
양자간 재귀적 관계
하나의 클래스, 두 개의 참여자
참여자 역할의 대칭성, 비대칭성
사이클
연관관계와 링크
연관관계 클래스
연관관계 속성이 위치할 자리
연관관계가 어떤 행동양식을 가질 수도 있다
의존성
일반화관계
심지어 집합 속의 집합도 다음과 같이 모델링할 수 있다
Executable UML 관계에 대한 요약

Chapter 4 양자간 연관관계

인스턴스(구체적인 사물, instance)와
추상적인 개념(abstraction)을 혼돈하지 말라
어떻게 정리해야 하는가?
아이콘
작은 블록, 점, 연결선
테이블
양자간 비재귀적 관계
양자간 비재귀적 관계: 클래스가 다른 두 인스턴스 사이의 관계
참여개수
일대일
일대다
다대다
조건부 관계
재귀적 관계
양자간 재귀적 관계: 같은 클래스의 인스턴스들 사이의 관계
언제 재귀적 관계를 이용하는가?
왜 순서를 일련번호로 관리하지 않았는가?
좀더 많은 예제들

Chapter 5 연관관계 클래스

양자간 링크 만들기
연관관계 클래스의 인스턴스 만들기
왜 연관관계 클래스를 만드는가?
연관관계 클래스와 참여개수
한 개의 링크에 한 개의 연관관계 클래스 인스턴스
한 개의 링크에 여러 개의 연관관계 클래스 인스턴스
해결방법 1
해결방법 2
연관관계 클래스와 조건부 참여개수
한쪽이 조건부인 경우
양쪽이 모두 조건부인 경우
연관관계 클래스에 관한 잦은 질문들
하나의 연관관계 클래스에 세 개 이상의 클래스가 참여할 수 있는가?
연관관계 클래스는 어떻게 이름 짓는가?

Chapter 6 연관관계 이름 짓기

연관관계를 모델링하는 잘못된 방법
규칙들을 찾아서 언급하라
Rule 1
Rule 2와 Rule 3
문제 확장하기
R5 - is compatible with
R4
R1과 R2
루프와 제한조건
동사로 만든 이름 vs. 명사로 만든 이름
동사를 이용한 문장이 더 좋다
실용적인 팁들
포함관계에 대하여
부정확함
첫 번째 이유: 분석보다 코딩을 염두에 두었기 때문이다
두 번째 이유: 생각이 부족했기 때문이다
동사 구문만으로도 충분하다
요약

Chapter 7 루프와 제한조건

루프란?
첫 번째 실수: 의미가 중복된 루프
접근 속도에 대한 고려
접근 속도를 빠르게 하기 위한 조치를 클래스 모델에 하지 마라
의미의 중복이 없는 루프
두 번째 실수: 의미가 정확하지 못한 루프
제한조건이 없는 루프
제한조건이 있는 루프
제한조건의 적용
제한조건이 없는 루프가 필요한 경우도 있다
간단한 루프
구문(Step)과 구문의 연결에 적용되는 두 가지 제한조건
요약

Chapter 8 일반화관계: 기초

일반화관계와 계승관계는 다르다
분석단계의 목표
일반화관계를 이용한 분석
용어
일반화관계의 예
관련 인스턴스들
규칙을 분명하게 정하면, 생각을 분명히 할 수 있다
Executable UML 일반화관계의 규칙들
집합의 구분
집합의 멤버들
표기법
세부적인 연관관계와 광범위한 연관관계
세부적인 규칙과 광범위한 규칙
많은 규칙들이(지켜질 수밖에 없도록) 강제되었다
저장 공간을 효율적으로 사용할 수 있다
동적 모델(dynamic model)의 틀이 된다
비어있는 Off-Duty 클래스에 대하여
좀더 다양한 예제들
복잡한 모델을 단순화시키기 위해 일반화관계를 이용하는 경우
구체화를 사용할 때
일반화를 사용할 때
상호배타적인 관계를 표현하기 위해 일반화관계를 이용하는 경우
좀더 많은 내용들
일반화관계에 관한 잦은 질문들
클래스를 상태별로 구체화해야하는 때는 언제인가?

Chapter 9 일반화관계: 고급

일반화 패턴
여러 방향 일반화
여러 방향 일반화가 올바른 방법인가?
여러 방향 일반화가 항상 좋은 답이 될 수 없는 이유는 무엇인가?
멀티레벨 일반화
정교한 표현이 가능하다
새로운 요구 사항을 쉽게 수용할 수 있다
시스템에 대해 깊게 생각할 수 있다
오버래핑 일반화(선택적인 일반화)
겹쳐진 집합들
중복된 속성 없애기
일반화관계를 남용할 때의 문제점
사소한 문제로 시간을 낭비하지 말라
불필요한 노력을 줄이는 방법
일반화 레벨을 어떻게 나눌 것인가?
하위클래스 사이의 이동
이동하는 하위클래스
고정적인 하위클래스
클래스를 상태에 따라 구체화할 때는?
특정 상태에만 필요한 속성이나 연관관계가 있는지 파악하라
계층을 많이 두지 말라
잘못된 일반화의 예제
요약


제2부 유용한 모델을 만드는 방법

Chapter 10 생각 없는 모델링을 피하는 방법

생각 없는 모델링의 결과
모델링과 분석의 차이점
분석에 집중하라
형식에 구애받지 말고 스케치하라
엄격한 모델과 자유로운 스케치

Chapter 11 왜 모델 설명서를 쓰는가?

좋은 설명서는 어떻게 쓰는가?
모델 설명서를 작성하는 다섯 가지 이유
기술 문서와 모델 설명서는 작성 목적이 다르다
자만하지 말라
비디오 효과에 관한 애플리케이션
해결했던 문제가 다시 제기된다 - "I'll be back"
결정이 내려졌다
어떻게 같은 문제가 다시 제기되었는가?
시간 절약
다른 하위시스템의 개발 진도를 촉진시킨다
수준 높은 피드백을 얻을 수 있다
구현 작업의 방향을 안내할 수 있다
우선순위는 언제나 바뀐다
요약

Chapter 12 클래스 설명서 작성법

의미를 설명하라 - 문법을 설명하지 말라
문장과 함께 그림을 이용하라
의사소통을 위해 그림을 이용하라
그림을 그려서 분석하라
물질적인 클래스를 그림으로 묘사하라
소프트 클래스를 그림으로 묘사하라
작업 도메인에 맞는 용어를 사용하라
같은 작업 도메인의 다른 모델 요소들을 참조하라
행동양식을 묘사하라
행동양식을 자세하게 서술하지 말라
우유부단하지 말라
클래스 설명서의 분량은 어느 정도여야 하는가?
어느 정도 자세한 설명이 필요한가?
요약

Chapter 13 속성 설명서 작성법

속성의 의미와 목적
속성의 의미를 분명히 밝혀라
그림을 이용하라
상태 속성
공개된 상태
현재 상태와 라이프사이클
발견된 식별자 속성
도메인과 데이터 타입
속성 도메인과 역할 도메인
데이터 타입
기본 데이터 타입
사용자 정의 데이터 타입
구현 방식과 무관하다
도메인 설명서
모호한 표현을 쓰지 말라
측정 값에는 단위가 필요하다
센서 중앙에서 반사 물체 표면까지의 거리
양(量)을 나타내는 값에는 단위가 필요 없다
정밀도
구현 방법에 간섭하지 않는다
좌표계
좌표계를 명시한다
내부적인 제한들
Type 속성
열거형 도메인과 실수형 도메인
스펙 클래스를 통해 도메인을 제한한다
이름 문자열
요약

Chapter 14 연관관계 설명서 작성법

왜 연관관계 설명서가 무시되는가?
연관관계에 대해 무엇을 설명해야 하는가?
모호한 부분을 찾아보자
모든 연관관계 설명서가 반드시 설명해야 하는 항목들
모든 일반화관계 설명서가 반드시 설명해야 하는 항목들
제목
의미
참여개수와 조건부 여부
연관관계 설명서를 마지막에 작성하지 말라!
요약


제3부 모델 패턴(Model Patterns)

Chapter 15 zero-one-many 참여개수만으로 충분한가?

임의의 숫자를 쓰는 경우 어떤 문제가 있는가?
zero-one-many 참여개수만으로는 충분하지 않은 경우
참여개수 2를 모델링하기 위한 시도
문제를 해결하는 방법은 위치에 관한 역할을 클래스로 모델링하는 것이다
그렇다면 DSP 문제는 어떻게 해결할 수 있는가?
컴파일 단계에 참고할 수 있는 가정들
컬러링을 통한 문제해결
결론

Chapter 16 재귀 패턴

재귀적 연관관계와 그래프
그래프 제한조건을 모델링하기
간단한 재귀 모델도 유용하다
재귀 모델이 복잡해질 수 있다
하지만 걱정하지 말자
분석 작업과 프로그래밍 작업에서의 재귀적 개념
재귀적 개념은 구현 작업에서만 사용되는 개념이 아닐까?
애플리케이션의 정책과 구현 메커니즘 구별하기
간단한 그래프와 복잡한 그래프

Chapter 17 네트웍 패턴

인접 지역
연결되지 않는 인스턴스가 존재할 수 없고, acyclic 특성을 갖는다
대칭 재귀형 연관관계
acyclic 연관관계 만들기
서로 통신하는 프로세스들
cycle, island, single connection
cycle, island, multiple connection
단방향, multiple
그래프를 단방향으로 만들기
여러 개의 양방향 채널
여러 개의 단방향 채널
양방향 채널
채널과 데이터 전송 방향을 분리해서 생각하자
역할에 따른 구체화
요약
패턴 이용에 관한 중요한 충고들

Chapter 18 선형 패턴

Example 1: 비행 시뮬레이션 게임의 미션 편집기
목표점들을 연결하기
Waypoint를 따라 움직이는 전투 유닛 추가하기
Route 클래스의 도입
Waypoint가 끊길 수 있다
완전히 닫혀진 Route - 또 다른 시도의 잘못된 결과
다른 방식으로 생각하기
위치에 따른 구체화
참조되어지는 역할에 따른 구체화
양쪽 방향 모두를 구체화한다
잘못된 Route의 입력 막기
경계조건 - 가장 단순한 Route
해결책 - Start Waypoint에 대한 구체화 작업을 추가한다
미션 편집기 요약
어떤 선형 패턴을 이용할 것인가?
클래스 모델이 규칙을 적게 표현하면, 상태 모델이 복잡해진다
상세한 규칙들을 가능한 빨리 드러내자
Example 2: 그림 그리기 프로그램의 Polyline 그리기 도구
결론
요약

Chapter 19 트리 패턴

단순한 트리
부품들에 대한 단순한 트리
문제점: 부품 보관 장소에 대한 표현
Root가 존재하는 트리
조립품만 보관한다
트리와 가지
외부업체가 공급하는 부품
선형 패턴을 이용한다
부품의 의미에 대한 재검토
경계조건
클래스의 의미를 희석시키는 것은 위험하다
클래스의 의미를 좀더 분명히 하자
언제 Part가 Assembly로 조립되는가? 그리고 언제 조립되지 않는가?
창고가 보관하는 것은 무엇인가?
최종 모델
결론
어느 수준까지 모델링해야 할까?
결정을 내렸으면, 실행하라 그리고 실행을 통해 배워라
요약

더 많은 것을 배우려면

찾아보기

저자소개

리안 스테어 (지은이)    정보 더보기
1985년부터 Executable 모델을 이용해서 리얼타임 임베디드 소프트웨어를 개발해왔다. 공장의 물류 시스템, 초음파 진단 기구, 심장병 보조 의료 기구, 가스 크로마토그래피를 이용한 반도체 웨어퍼 검사 장비, 동영상 편집 장비, 네트워크 전투 시뮬레이터등 다양한 분야의 애플리케이션에 대한 모델을 작성해왔다. 현재 샌프란시스코에 위치한 Model Integration, LLC 사의 창립 멤버이자 선임 컨설턴트로 활동하고 있다. 지은 책으로는 <How to Build Shlaer-Mellor Object Models>와 <Executable UML : A Case Study>가 있다.
펼치기
리안 스테어의 다른 책 >
김인기 (옮긴이)    정보 더보기
한양대학교 대학원에서 전력전자를 전공하고, C/C++ 프로그래머로서 20여 년간 리얼타임 임베디드 솔루션과 윈도우 기반 솔루션을 개발하고 있다. 그동안 군더더기 없이 간결한 시스템을 만들기 위해 노력했으며, 지금은 SK텔레콤에서 새로운 모바일 솔루션을 기획하고 있다. 새로운 것 배우기를 좋아하고, 어떻게 하면 세상을 편하게 할 제품을 만들 수 있을지와 어떻게 하면 그런 제품을 만드는 개발자를 편하게 만들 수 있을지를 고민한다.
펼치기
이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책