| 000 | 00000nam c2200205 k 4500 | |
| 001 | 000045417488 | |
| 005 | 20240426175300 | |
| 007 | ta | |
| 008 | 080123s2007 ulka b 1a kor | |
| 020 | ▼a 9788935304189 | |
| 040 | ▼a 211009 ▼c 211009 ▼d 211009 | |
| 082 | 0 4 | ▼a 005.1 ▼2 22 |
| 090 | ▼a 005.1 ▼b 2007s4 | |
| 100 | 1 | ▼a 최은만, ▼g 崔恩滿, ▼d 1958- ▼0 AUTH(211009)163383 |
| 245 | 1 0 | ▼a 소프트웨어 공학 = ▼x Software engineering / ▼d 최은만 저. |
| 250 | ▼a 4차 개정판 | |
| 260 | ▼a 서울 : ▼b 정익사, ▼c 2007. | |
| 300 | ▼a 629 p. : ▼b 삽도 ; ▼c 27 cm. | |
| 504 | ▼a 참고문헌 및 색인수록 | |
| 945 | ▼a KINS |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.1 2007s4 | 등록번호 121164562 (22회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
| No. 2 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.1 2007s4 | 등록번호 121164563 (18회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
객체지향 프로그래밍이 널리 쓰이면서 분석과 설계방법도 객체지향 방법이 중심이 되도록 순서도 바꾸고 보다 심도 있게 설명한 책. 특히 객제지향 방법을 배울 때 간과하기 쉬운 모델 작성 순서, 코드와 설계의 매핑 등을 다루어 초보자도 객체지향 설계를 쉽게 이해할 수 있도록 하였다.
이 도서는 첫째, 객체지향 프로그래밍이 널리 쓰이면서 분석과 설계방법도 객체지향 방법이 중심이 되도록 순서도 바꾸고 보다 심도 있게 설명하였다. 특히 객제지향 방법을 배울 때 간과하기 쉬운 모델 작성 순서, 코드와 설계의 매핑 등을 다루어 초보자도 객체지향 설계를 쉽게 이해할 수 있도록 하였다. 둘째, 코딩과 테스트를 다루는 내용에도 객체지향 방법을 포함시켜 실무에 도움이 되게 하였다. 셋째, 최근 소프트웨어 공학 분야에서 연구되고 이슈화 되고 있는 익스트림 프로그래밍, 관점지향 프로그래밍, 웹 서비스와 SOA에 대한 동행도 추가하여 소개하였고 생명주기 모형과 설계 패턴에도 최신 기술을 추가하였다. 넷째, 각 장의 처음에는 학습 목표를 제시하고, 책 끝에는 용어를 정리하여 학습에 도움이 되도록 하였다. 이 책을 교재로 강의하거나 수강하는 분들을 위하여 강의 슬라이드와 강의 계획서, 프로젝트 결과물을 참조할 수 있도록 인터넷 웹 사이트 ‘http://se.dongguk.ac.kr'에 준비하였다.
정보제공 :
저자소개
최은만(지은이)
KAIST 전산학과(석사)와 미국 일리노이 공대(박사)에서 공부하고 동국대학교 컴퓨터공학과에서 30년 동안 교수로 재직하며 S/W 공학 특히 객체지향 설계, S/W 테스팅, AOP(관점지향 프로그래밍) 등을 연구하며 가르쳤다. TTA의 S/W 테스트 엔지니어 양성 과정과 삼성전자, 삼성 SDS의 아키텍트 과정 등 산업체 인력 교육에도 참여하였다. 은퇴 후에는 S/W 공학 기술을 산업체에 보급하고 고급 개발자를 길러내기 위한 S/W 설계 교육에 관심을 두고 활동하고 있다. 저서로 『객체지향 소프트웨어 공학』(2017), 『UML로 배우는 시스템 분석 설계』(2018), 『시스템 분석 및 설계 with 애자일』(2021), 『소프트웨어 공학의 모든 것 워크북』(2024)이 있다.
목차
목차 4차 개정판 머리말 = 3 머리말 = 4 제01장 소프트웨어 공학 개요 = 15 1.1 소프트웨어와 시스템 = 18 1.1.1 소프트웨어 = 18 1.1.2 시스템 = 19 1.2 소프트웨어 위기 = 21 1.3 소프트웨어 공학 = 24 1.3.1 방법 = 26 1.3.2 도구 = 26 1.3.3 프로세스 = 27 1.3.4 패러다임 = 27 1.4 좋은 소프트웨어의 조건 = 29 1.4.1 프로덕트 품질 = 31 1.4.2 프로세스 품질 = 32 1.5 소프트웨어 생명주기 모형 = 34 1.5.1 폭포수 모형 = 36 1.5.2 프로토타이핑 모형 = 41 1.5.3 점증적 모형 = 43 1.5.4 나선형 모형 = 45 1.5.5 V 모형 = 47 1.5.6 일정 중심 설계 모형 = 48 1.5.7 진화적 출시 모형 = 49 1.5.8 모델의 비교와 선택 = 50 1.6 소프트웨어 공학 근본 지식 = 52 1.6.1 다른 분야와의 관계 = 52 1.6.2 SWEBOK = 53 연습문제(객관식) = 56 연습문제(주관식) = 62 제02장 계획 = 65 2.1 문제의 정의 = 69 2.2 일정 계획 = 71 2.2.1 작업 분해 = 72 2.2.2 CPM 네트워크 = 73 2.2.3 프로젝트 일정표 = 76 2.3 노력 추정 = 79 2.3.1 COCOMO 방법 = 80 2.3.2 기능 점수 방법 = 85 2.4 조직 계획 = 92 2.4.1 중앙 집중식 팀 구성 = 94 2.4.2 분산형 팀 구성 = 95 2.4.3 혼합형 팀 구성 = 96 2.5 위험 분석 = 98 2.6 계획서 작성 = 101 연습문제(객관식) = 103 연습문제(주관식) = 109 제03장 요구 분석 = 113 3.1 요구 = 116 3.1.1 기능적 요구 = 116 3.1.2 비기능적 요구 = 117 3.2 요구 추출과 분석 = 119 3.2.1 요구 추출 = 120 3.2.2 요구 분석 = 122 3.3 구조적 분석 = 124 3.3.1 자료 흐름도 = 126 3.3.2 자료 사전 = 139 3.3.3 소단위 명세서 = 141 3.3.4 구조적 분석 사례 = 148 3.4 요구 분석 명세서 = 153 3.4.1 요구 분석 명세서 작성 = 153 3.4.2 요구 분석 명세서의 평가 = 156 연습문제(객관식) = 158 연습문제(주관식) = 164 제04장 설계 = 167 4.1 설계 = 170 4.2 설계 원리 = 172 4.2.1 추상화 = 173 4.2.2 정보 은닉 = 173 4.2.3 단계적 분해 = 174 4.2.4 모듈화 개념 = 175 4.3 구조적 설계 = 180 4.3.1 변환 분석 = 184 4.3.2 처리 분석 = 191 4.3.3 설계 사례 = 193 4.4 소프트웨어 구조 = 197 4.5 프로그램 설계 = 203 4.5.1 알고리즘의 선택 = 203 4.5.2 알고리즘의 표현 = 206 4.6 사용자 인터페이스 설계 = 211 4.6.1 사용자 분석 = 212 4.6.2 대화 설계 원리 = 213 4.6.3 상호 작용 형태 = 214 4.6.4 화면 설계 = 222 4.7 설계서 작성 = 224 연습문제(객관식) = 227 연습문제(주관식) = 233 제05장 객체지향 기초 = 239 5.1 객체지향의 특징 = 242 5.1.1 모형의 적합성 = 242 5.1.2 재사용 용이 = 243 5.1.3 Time-to-market = 244 5.1.4 설계와 프로그램의 매핑 = 245 5.2 객체지향 기본 개념 = 246 5.2.1 객체 = 247 5.2.2 클래스 = 248 5.2.3 캡슐화 = 249 5.2.4 상속 = 250 5.2.5 다형성 = 251 5.3 객체지향 프로세스 = 254 5.3.1 객체지향 분석 = 255 5.3.2 객체지향 설계 = 257 5.3.3 객체지향 코딩과 테스트 = 258 5.3.4 RUP = 259 5.4 UML = 262 5.4.1 UML의 배경 = 262 5.4.2 클래스, 속성, 오퍼레이션의 표현 = 264 5.4.3 사용 사례 다이어그램 = 266 5.4.4 클래스 다이어그램 = 269 5.4.5 순서 다이어그램 = 272 5.4.6 상태 다이어그램 = 273 5.4.7 액티비티 다이어그램 = 276 5.5 설계와 구현의 매핑 = 278 5.5.1 연관 관계 = 279 5.5.2 전체 부분 관계 = 280 5.5.3 상속 관계 = 282 5.5.4 사용 관계 = 283 연습문제(객관식) = 285 연습문제(주관식) = 291 제06장 객체지향 분석과 설계 = 297 6.1 사용 사례 = 301 6.1.1 액터 찾기 = 302 6.1.2 시나리오 찾기 = 303 6.1.3 사용 사례 작성 = 305 6.1.4 사용 사례 사이의 관계 찾기 = 308 6.2 객체 모델링 = 310 6.2.1 엔티티 클래스 찾기 = 311 6.2.2 경계 클래스 찾기 = 313 6.2.3 제어 클래스 찾기 = 314 6.2.4 연관 관계 찾기 = 314 6.2.5 속성 찾기 = 316 6.3 동적 모델링 = 319 6.3.1 상호작용 다이어그램 작성 = 319 6.3.2 상태 다이어그램 작성 = 323 6.3.3 액티비티 다이어그램 작성 = 325 6.4 시스템 설계 = 327 6.4.1 설계 목표의 정의 = 327 6.4.2 패키지 다이어그램 작성 = 330 6.4.3 배치 다이어그램 작성 = 332 6.4.4 저장소의 설계 = 333 6.5 객체 설계 = 335 6.5.1 객체 서비스 정의 = 335 6.5.2 부품 선택 = 337 6.5.3 재구조화 = 339 6.5.4 최적화 = 339 6.6 디자인 패턴 = 342 6.6.1 팩토리 메소드 패턴 = 344 6.6.2 컴포지트 패턴 = 345 6.6.3 어뎁터 패턴 = 346 6.6.4 반복자 패턴 = 347 6.6.5 옵서버 패턴 = 348 연습문제(객관식) = 350 연습문제(주관식) = 356 제07장 코딩 = 361 7.1 프로그래밍 원리 = 364 7.1.1 코딩 과정 = 364 7.1.2 코딩 오류 = 364 7.1.3 구조적 프로그래밍 = 371 7.1.4 정보 은닉 = 373 7.2 코딩 스타일 = 374 7.2.1 명명 규칙 = 374 7.2.2 포인터와 레퍼런스 = 382 7.2.3 자료형 = 383 7.2.4 문장과 수식 = 384 7.2.5 오류처리 = 388 7.2.6 코드 문서화 = 387 7.3 리팩토링 = 391 7.3.1 기본 개념 = 391 7.3.2 리팩토링의 사례 = 394 7.3.3 리팩토링 과정 = 395 7.3.4 코드 스멜 = 396 7.4 코드 품질 향상 방법 = 398 7.4.1 코드 인스펙션 = 398 7.4.2 정적 분석 = 400 7.4.3 증명 = 403 연습문제(객관식) = 407 연습문제(주관식) = 413 제08장 테스트 = 417 8.1 테스트 = 419 8.2 테스트의 원리 = 421 8.3 화이트 박스 테스트 = 426 8.3.1 논리 흐름도에 의한 표현 = 426 8.3.2 테스트 케이스 = 431 8.3.3 화이트 박스 테스트의 수행 = 432 8.3.4 테스트 검증 기준 = 433 8.4 블랙 박스 테스트 = 437 8.5 객체지향 테스트 = 442 8.5.1 상태기반 테스트 = 443 8.6 통합 테스트 = 445 8.6.1 동시식 통합 = 446 8.6.2 하향식 통합 = 447 8.6.3 상향식 통합 = 447 8.6.4 연쇄식 통합 = 448 8.6.5 통합 테스트 계획 = 450 8.6.6 기타 통합 테스트 = 451 8.7 인수 테스트 = 456 8.8 테스트 자동화 도구 = 458 8.8.1 코드 분석 도구 = 458 8.8.2 테스트 케이스 생성 도구 = 460 8.8.3 테스트 실행 도구 = 460 연습문제(객관식) = 462 연습문제(주관식) = 468 제09장 유지 보수 = 473 9.1 유지 보수의 특성 = 476 9.1.1 유지 보수 작업 = 477 9.1.2 유지 보수 접근 방법 = 479 9.1.3 유지 보수 비용 = 480 9.1.4 유지 보수에서의 문제점 = 482 9.2 소프트웨어 형상 관리 = 483 9.2.1 관리적인 측면 = 484 9.2.2 기술적인 측면 = 487 9.3 소프트웨어 척도 = 491 9.3.1 복잡도 측정 = 491 9.3.2 Halstead의 척도 = 492 9.4 유지 보수 방법 및 도구 = 495 9.4.1 유지 보수 방법 = 495 9.4.2 유지 보수 도구 = 498 연습문제(객관식) = 502 연습문제(주관식) = 507 제10장 품질 보증 = 509 10.1 품질 개념 = 511 10.1.1 품질의 의미 = 511 10.1.2 품질 요소 = 513 10.1.3 소프트웨어 특성과 품질 = 515 10.1.4 프로세스 품질 = 516 10.1.5 프로덕트 품질 = 516 10.2 품질 보증 활동 = 518 10.2.1 조직 = 519 10.2.2 계획 = 520 10.2.3 작업 = 521 10.3 프로세스 품질 = 522 10.3.1 CMM = 522 10.3.2 SPICE = 528 10.4 프로덕트 품질 측정 = 532 10.4.1 내부와 외부 품질 요소 = 532 10.4.2 품질 특성의 정의 = 533 10.4.3 메트릭 스케일 = 534 10.4.4 품질 측정 = 535 10.5 인스펙션 = 537 10.5.1 인스펙션의 목적 = 537 10.5.2 인스펙션 과정 = 538 10.5.3 인스펙션의 종류 = 541 연습문제(객관식) = 544 연습문제(주관식) = 549 제11장 최신 소프트웨어 공학 개요 = 551 11.1 컴포넌트 기반 소프트웨어 개발 = 553 11.1.1 컴포넌트 기반 개발 과정 = 553 11.1.2 컴포넌트란 무엇인가? = 555 11.1.3 Java 컴포넌트 = 559 11.1.4 COM+ 컴포넌트 = 562 11.1.5 CORBA 컴포넌트 = 564 11.2 웹 엔지니어링 = 566 11.2.1 웹 기반 응용 시스템의 특성 = 566 11.2.2 웹 엔지니어링 프로세스 = 567 11.2.3 웹 구조 설계 = 568 11.2.4 네비게이션 설계 = 570 11.2.5 인터페이스 설계 = 570 11.2.6 웹 테스트 = 571 11.3 정형적 명세 기법 = 573 11.3.1 기본 개념 = 573 11.3.2 명세 기법의 종류 = 576 11.3.3 Z 명세 = 577 11.4 익스트림 프로그래밍 = 580 11.4.1 익스트림 프로그래밍의 철학 = 581 11.4.2 주요 개념과 방법 = 582 11.5 관점지향 프로그래밍 = 589 11.5.1 OOP의 문제점 = 590 11.5.2 AOP란? = 592 11.5.3 주요 구문 = 594 11.5.4 AspectJ = 597 11.6 웹 서비스와 SOA = 599 11.6.1 SOA 개요 = 599 11.6.2 웹 서비스를 이용한 SOA 구현 = 600 11.6.3 SOA를 이루는 층 = 601 참고문헌 = 605 용어사전 = 610 찾아보기 = 623
