컴퓨터공학(전공도서) HOME > 쇼핑몰 > 컴퓨터 전체도서 > 컴퓨터공학(전공도서)   
       

<개정증보판> 실무에 바로 활용하는 소프트웨어공학

판매가격 :   27,000 원
저자 :   김희영
출판사 :   21세기사

이번 개정판은 과거 버전에 비하여 소프트웨어공학 분야의 새로운 이론들을 추가하였다. 대표적인 것이 애자일 방법론에 대한 부분이며, 소프트웨어 아키텍처에 대한 내용인데, 독자가 이미 전문가라면 별로 새로운 것도 아닐 수 있다. 그리고 소프트웨어공학을 실무적으로더욱 잘 활용할 수 있도록 수업 중에 실습을 해볼 수 있도록 보완하였다. 한 학기라는 시간이 소프트웨어를 실제 구현까지 할 수 있는 시간적 여유를 배려하지는 못할 수 있다. 하지만 적어도 개발하고자 하는 프로그램의 분석과 설계까지는 해보면서 진행과정을 적절하게 관리할 수 있다면 어느 정도는 소프트웨어공학이 쉽게 활용될 수 있지 않을까 생각한다. 책의 수식어이기도 한 “실무에 바로 활용하는” 이라는 말이 더욱 의미를 가질 수 있도록 개정하려고 노력하였는데 독자들에게 필자의 의도가 잘 전달될 수 있기를 바란다.

목차

CHAPTER 1 소프트웨어 공학과 소프트웨어
1.1 소프트웨어 공학이 뭔가요?
1.2 소프트웨어에 대한 이해
1.3 소프트웨어의 특징과 분류
1.4 소프트웨어의 탄생과 폐기
1.4.1 Project 관리
1.4.2 소프트웨어 개발
1.4.3 유지보수
1.5 다양한 소프트웨어 도입 프로젝트
1.5.1 인하우스(in-house) 개발 프로젝트
1.5.2 SI 프로젝트
1.5.3 패키지 도입
참고문헌 
 
CHAPTER 2 소프트웨어 개발 프로젝트
2.1 소프트웨어 개발 프로젝트는 뭔가요?
2.2 SI방식의 소프트웨어 개발 프로젝트
2.2.1 입안
2.2.2 발주
2.2.3 제안
2.2.4 평가
2.2.5 협상
2.2.6 계약
2.3 프로젝트의 성공과 실패
2.3.1 범위
2.3.2 일정
2.3.3 예산
2.4 미국 프로젝트의 실패와 원인
2.5 프로젝트 실패사례(덴버공항 수화물 시스템 사례)
2.5.1 사건개요
2.5.2 진행경과
2.5.3 실패원인 분석
참고문헌 
 
CHAPTER 3 프로젝트 관리
3.1 프로젝트 관리는 뭔가요?
3.2 프로젝트관리의 단계
3.2.1 착수 단계
3.2.2 계획 단계
3.2.3 실행 단계
3.2.4 종료 단계
3.2.5 감시 / 통제
3.3 프로젝트 8대 관리영역
3.3.1 범위 관리
3.3.2 일정 관리
3.3.3 예산 관리
3.3.4 품질 관리
3.3.5 인력 관리
3.3.6 의사소통 관리
3.3.7 조달 관리
3.3.8 위험 관리
3.4 프로젝트 관리영역의 통합관리
3.4.1 통합관리의 외부적 측면
3.4.2 통합관리의 내부적 측면
3.5 소프트웨어 개발과 프로젝트 관리의 통합
3.5.1 시스템 개념
3.5.2 계층적 분리
3.5.3 단계와 영역별 프로세스
3.5.4 방법론 테일러링
3.5.5 WBS(Work Breakdown Structure)
참고문헌 
 
CHAPTER 4 소프트웨어 개발 프로세스
4.1 소프트웨어 개발 프로세스는 뭔가요?
4.2 프로젝트 성공의 관점에서 본 소프트웨어 개발
4.3 소프트웨어 개발 생명주기(SDLC)
4.3.1 폭포수 모형
4.3.2 프로토타입 모형
4.3.3 나선형 모형
4.4 SDLC와 개발방법론
4.4.1 RAD
4.4.2 UP
4.4.3 마르미
4.5 애자일 프로세스와 방법론(Agile Process and Methodology)
4.5.1 애자일 선언문
4.5.2 XP 방법론
4.5.3 스크럼 방법론
참고문헌 
 
CHAPTER 5 요구사항의 개발과 관리
5.1 요구사항(requirements)이 뭔가요? 5.2 요구사항이 중요한 이유
5.3 요구사항 개발과 관리 프로세스
5.4 요구사항 개발 프로세스
5.4.1 요구사항 도출(elicitation)
5.4.2 요구사항 분석(analysis)
5.4.3 요구사항 명세(specification)
5.4.4 요구사항 검증(verification)
5.5 요구사항 관리 프로세스
5.5.1 요구사항 추적(requirements trace)
5.5.2 요구사항 변경요청(requirements change request)
5.5.3 변경 영향분석(change effect analysis)
5.5.4 변경 승인/기각(approval or reject)
참고문헌 
 
CHAPTER 6 구조적 분석기법
6.1 구조적 분석이 뭔가요?
6.2 구조적 분석의 발전
6.3 DFD 작성을 위한 기호
6.3.1 프로세스(process)
6.3.2 데이터저장소(data store)
6.3.3 외부 엔터티(external entity)
6.3.4 데이터흐름(data flow)
6.4 DFD 작성
6.5 자료사전(data dictionary) 작성
6.6 소단위 명세서(mini-spec) 작성
6.7 DFD 작성시 주의사항
6.8 DFD 작성 지침
6.8.1 모든 DFD에 적용되는 규칙
6.8.2 기호별 작성규칙
6.8.3 DFD의 기능적 분해(functional decomposition)
참고문헌

CHAPTER 7 객체지향적 분석기법
7.1 객체지향적 분석기법이 뭔가요?
7.2 객체지향 분석의 발전
7.3 객체지향 개념의 구성요소
7.3.1 클래스(class)
7.3.2 속성(attribute)
7.3.3 메소드(method)
7.3.4 메시지(message)
7.4 객체지향 분석의 특징
7.4.1 상속성(inheritance)
7.4.2 캡슐화(encapsulation)
7.4.3 정보은닉(information hiding)
7.4.4 추상화(abstraction)
7.4.5 다형성(polymorphism)
7.5 유스케이스 다이어그램(use case diagram)
7.5.1 유스케이스 다이어그램의 구성요소
7.5.2 유스케이스 다이어그램의 작성순서
7.6 클래스 다이어그램(class diagram)
7.6.1 클래스의 선정
7.6.2 속성의 정의
7.6.3 메소드의 추출
7.6.4 관계 설정
7.7 시퀀스 다이어그램(sequence diagram)
7.7.1 시퀀스 다이어그램의 기호
7.7.2 시퀀스 다이어그램의 작성
참고문헌 
 
CHAPTER 8 설계의 이해와 소프트웨어아키텍처
8.1 설계는 어떻게 해야 하나요?
8.2 설계의 원칙
8.2.1 추상화
8.2.2 단계적 분해
8.2.3 모듈화
8.3 구조적 설계
8.3.1 변환분석(transform analysis)
8.3.2 트랜잭션분석(transaction analysis)
8.4 객체지향적 설계
8.4.1 유스케이스 설계
8.4.2 시퀀스 다이어그램 설계
8.4.3 컴포넌트 다이어그램 설계
8.4.4 디플로이먼트 다이어그램 설계
8.5 모듈내부의 설계
8.6 소프트웨어 아키텍처(software architecture)
8.6.1 건축에서의 아키텍처
8.6.2 소프트웨어 아키텍처와 모델링
8.6.3 소프트웨어 아키텍처 설계
참고문헌 
 
CHAPTER 9 데이터베이스 설계
9.1 데이터베이스는 어떻게 설계하나요?
9.2 파일시스템의 문제점
9.3 관계형 데이터베이스의 개념
9.3.1 관계형 데이터베이스의 탄생
9.3.2 관계형 데이터베이스의 구성
9.3.3 관계형 데이터베이스의 3단계 구조
9.3.4 데이터베이스 설계의 절차
9.4 개념적 설계
9.4.1 개체와 속성의 추출
9.4.2 관계 추출
9.5 개념적 ERD 완성
9.6 논리적 설계
9.6.1 모든 개체는 테이블로 변환한다
9.6.2 (다:다)의 관계는 테이블로 변환한다
9.6.3 (1:다)의 관계는 외래키를 추가한다
9.6.4 다중값 속성은 별도의 테이블을 추가한다
9.7 물리적 설계
9.7.1 저장공간 설계
9.7.2 무결성 설계와 인덱스 설계
9.7.3 물리적 설계의 데이터베이스 구축
참고문헌 
 
CHAPTER 10 UI(User Interface) 설계
10.1 UI는 어떻게 설계하나요?
10.2 DFD에서 추출된 UI
10.3 유스케이스 혹은 클래스 다이어그램에서 추출된 UI
10.4 화면과 문서양식 설계의 주요개념
10.4.1 화면
10.4.2 문서양식
10.5 화면과 문서양식의 일반적인 설계 지침
10.5.1 강조
10.5.2 문장표현
10.5.3 라벨과 짜임새
10.6 화면 설계
10.6.1 전체화면 흐름설계
10.6.2 화면 레이아웃 설계
10.6.3 데이터 입력 구조화
10.6.4 데이터 입력 제어
10.6.5 피드백 제공
10.6.6 도움말 제공
10.7 문서양식 설계
10.7.1 사용자 특성파악
10.7.2 출력항목 결정
10.7.3 출력방식의 결정
10.7.4 출력 레이아웃의 설계
참고문헌 
 
CHAPTER 11 구현
11.1 소프트웨어를 구현해보자
11.2 프로그래밍 언어
11.3 개발환경 준비
11.4 좋은 프로그래밍을 위한 참고
11.4.1 개발 표준
11.5 변수명의 부여
11.6 주석(comments)
11.7 소스코드 인스펙션(source code inspection)
11.7.1 의미
11.7.2 수행 역할
11.7.3 수행 절차
11.7.4 준비
11.7.5 사전검토
11.7.6 수행
11.7.7 시정항목 보완
11.8 단위테스팅(unit testing)
11.8.1 V 모델
11.8.2 단위 테스팅의 의미
11.8.3 단위 테스팅의 점검사항
11.9 단위 테스팅 절차
11.9.1 단위테스팅 전략
11.9.2 단위테스팅 계획
11.9.3 단위테스팅 실행
11.9.4 단위테스팅 평가
11.10 단위 테스팅을 위한 지원
11.10.1 단위테스팅 체크리스트
11.10.2 테스트용 데이터 제공
11.10.3 드라이버(driver)와 스텁(stub)
11.10.4 테스트 케이스(test case)
참고문헌 
 
CHAPTER 12 테스팅과 SW품질관리
12.1 소프트웨어를 테스팅해보자
12.2 테스팅을 위한 기초지식
12.2.1 테스팅과 디버깅
12.2.2 결함에 대한 용어정의
12.2.3 유형에 따른 테스팅 종류
12.2.4 관점에 따른 테스팅 종류
12.3 통합테스팅
1
2.3.1 통합테스팅 수행방식
12.3.2 통합테스팅 절차
12.3.3 통합테스팅 전략
12.3.4 통합테스팅 계획
12.3.5 통합테스팅 실행
12.3.6 통합테스팅 평가
12.4 인수 테스팅
12.4.1 인수 테스팅 계획
12.4.2 인수 테스팅 수행방법
12.4.3 인수 테스팅시 확인사항
12.5 SW 품질관리(quality management)
12.5.1 SW 제품 품질
12.5.2 SW 프로세스 품질
12.6 SW 품질보증 계획서
참고문헌 
 
CHAPTER 13 위험관리
13.1 위험은 어떻게 관리할까요?
13.2 위험과 위험관리
13.2.1 위험의 종류
13.2.2 위험, 이슈, 문제
13.2.3 위험관리에 대한 7가지 원칙
13.3 위험관리 절차
13.3.1 위험식별
13.3.2 위험 계량화
13.3.3 우선순위 선정
13.3.4 위험관리 계획
13.3.5 위험해결
13.3.6 결과평가
13.4 위험 대응전략
13.4.1 회피(avoid)
13.4.2 전가(trasfer)
13.4.3 완화(mitigate)
13.4.4 수용(acceptance)
참고문헌 
 
CHAPTER 14 프로젝트 종료와 유지보수
14.1 프로젝트는 어떻게 종료할까요?
14.2 프로젝트 종료
14.2.1 프로젝트의 비정상적 종료
14.2.2 프로젝트의 종료처리 절차
14.2.3 프로젝트의 종료보고
14.3 유지보수
14.3.1 유지보수가 필요한 이유
14.3.2 유지보수 활동의 분류
14.3.3 유지보수 아웃소싱
14.3.4 SLA(Service Level Agreements)
14.4 재공학(re-engineering)
14.5 역공학(reverse engineering)
14.5.1 데이터 구조 역공학
14.5.2 프로세싱 역공학
14.5.3 유저 인터페이스 역공학
참고문헌


Copyright(c) 2003 TEL:(031)942-7861 FAX:(031)942-7864. All Rights Reserved. Send E-mail to webmaster