가톨릭대학교 성심로고

로컬네비게이션

전체메뉴

전체메뉴

검색

상세정보

(새로 쓴) 소프트웨어 공학 = Software engineering

최은만

상세정보
자료유형단행본
개인저자최은만
서명/저자사항(새로 쓴) 소프트웨어 공학 = Software engineering / 최은만 저.
판사항[6차 개정판].
발행사항서울 : 정익사, 2014.
형태사항734 p. : 삽화 ; 26 cm.
ISBN9788935305223
일반주기 부록: 도구, 용어 사전
서지주기참고문헌(p. 724-728), 색인 포함
비통제주제어소프트웨어
서비스 이용안내
  • 보존서고도서 신청보존서고도서 신청
  • 서가에 없는 도서서가에 없는 도서
  • 야간대출 이미지야간대출
  • 인쇄인쇄

전체

전체 소장정보 목록
No. 등록번호 청구기호 소장처 도서상태 반납예정일 예약 서비스 매체정보
1 E475331 005.1 최685ㅅ6 중앙도서관/제2자료실(4F)/ 대출가능
2 E475332 005.1 최685ㅅ6 c.2 중앙도서관/제2자료실(4F)/ 대출가능

초록

▶이 책은 소프트웨어 공학을 다룬 이론서입니다. 소프트웨어 공학의 기초적이고 전반적인 내용을 학습할 수 있도록 구성했습니다.

목차

목차 일부

Chapter 01 소 개 
1.1 소프트웨어 
1.1.1 소프트웨어의 유형 
1.1.2 소프트웨어와 시스템 
1.2 소프트웨어 공학의 필요성 
1.2.1 고비용 
1.2.2 개발 지연과 낮은 신뢰도 
1.2.3 유지보수와 재작업 
1.3 소프트웨어 공학이란? 
1.3.1 규모 
1.3.2 품질과 생산성 
1.3.3 일관성과 재현성 
1.3.4 변경 
1....

목차 전체

Chapter 01 소 개 
1.1 소프트웨어 
1.1.1 소프트웨어의 유형 
1.1.2 소프트웨어와 시스템 
1.2 소프트웨어 공학의 필요성 
1.2.1 고비용 
1.2.2 개발 지연과 낮은 신뢰도 
1.2.3 유지보수와 재작업 
1.3 소프트웨어 공학이란? 
1.3.1 규모 
1.3.2 품질과 생산성 
1.3.3 일관성과 재현성 
1.3.4 변경 
1.4 소프트웨어 공학의 접근 방법 
1.4.1 단계적 개발 프로세스 
1.4.2 품질 보증 
1.4.3 프로젝트 관리 
1.5 소프트웨어 공학 지식 체계 
1.5.1 다른 분야와의 관계 
연습문제 

Chapter 02 프로세스와 방법론 
2.1 소프트웨어 공학의 접근 방법 
2.1.1 프로세스와 프로세스 모델 
2.1.2 프로세스의 종류 
2.2 바람직한 프로세스의 특성 
2.2.1 예측 가능성 
2.2.2 테스팅과 유지보수 편이성 
2.2.3 변경 용이성 
2.2.4 결함제거 용이성 
2.3 소프트웨어 개발 프로세스 
2.3.1 폭포수 모델 
2.3.2 프로토타이핑 모델 
2.3.3 진화적 모델 
2.3.4 나선형 모델 
2.3.5 V 모델 
2.3.6 Unified 프로세스 
2.3.7 애자일 프로세스 
2.4 지원 프로세스 
2.4.1 관리 프로세스 
2.4.2 품질 보증 프로세스 
2.4.3 형상 관리 프로세스 
2.5 방법론 
2.5.1 구조적 방법론 
2.5.2 객체지향 방법론 
2.5.3 애자일 방법론 
연습문제 

Chapter 03 프로젝트 관리와 계획 
3.1 프로젝트 범위 
3.2 노력 추정 
3.2.1 노력 추정의 불확실 
3.2.2 규모 기반 모델 
3.2.3 COCOMO II 모델 
3.2.4 기능 점수 
3.3 일정 계획 
3.3.1 작업 분해 
3.3.2 CPM 네트워크 
3.3.3 간트 차트 
3.3.4 애자일 계획 
3.4 조직 계획 
3.4.1 책임 프로그래머 팀 구성 
3.4.2 에고레스 팀 
3.4.3 계층적 팀 구성 
3.5 위험 관리 
3.5.1 위험 파악 
3.5.2 위험 분석과 우선순위 정하기 
3.5.3 위험 해결과 모니터링 
3.6 계획서 작성과 도구 
3.6.1 계획서 작성 
3.6.2 도구 
연습문제 

Chapter 04 요구 분석 
4.1 요구 
4.1.1 요구의 종류 
4.1.2 요구 추출의 어려움 
4.2 요구 추출 
4.2.1 요구 정보 출처 
4.2.2 요구 추출 방법 
4.2.3 요구와 제한의 정의 
4.3 도메인 분석 
4.3.1 도메인 정의 
4.3.2 도메인 분석 
4.4 사용 사례 
4.4.1 사용 사례의 소개 
4.4.2 사용 사례 다이어그램 
4.4.3 액터 찾기 
4.4.4 사용 사례 찾기 
4.4.5 사용 사례 관계 찾기 
4.5 요구 분석 명세서 
4.5.1 명세서 작성 
4.5.2 명세서 검토 
4.6 요구 관리 도구 
연습문제 

Chapter 05 모델링 
5.1 객체 지향 개념 
5.1.1 객체지향의 장점 
5.1.2 객체지향과 절차적 방법의 비교 
5.1.3 클래스와 객체 
5.1.4 객체와 속성 
5.1.5 캡슐화 
5.1.6 연관 
5.1.7 집합 
5.1.8 상속 
5.1.9 다형성 
5.2 UML 
5.2.1 배경과 역사 
5.2.2 UML 다이어그램 
5.2.3 UML 모델링 과정 
5.3 정적 모델링 
5.3.1 클래스의 표현 
5.3.2 관계의 표현 
5.3.3 클래스 다이어그램 작성 과정 
5.3.4 클래스 찾기 
5.3.5 연관 찾기 
5.3.6 속성 추가 
5.4 동적 모델링 
5.4.1 시퀀스 다이어그램의 요소 
5.4.2 시퀀스 다이어그램 작성 
5.4.3 상태 다이어그램 
5.4.4 액티비티 다이어그램 
5.5 모델링 도구 
연습문제 

Chapter 06 아키텍처 설계 
6.1 아키텍처 설계란? 
6.1.1 아키텍처 설계의 정의 
6.1.2 아키텍처 설계의 중요성 
6.1.3 아키텍처와 비기능적 요구 
6.1.4 아키텍처의 표현 
6.2 설계 원리 
6.2.1 단계적 분할 
6.2.2 추상화 
6.2.3 모듈화 
6.3 아키텍처 설계 과정 
6.3.1 설계 목표 설정 
6.3.2 시스템의 타입 
6.3.3 아키텍처 표현 
6.4 아키텍처 스타일 
6.4.1 계층 구조 스타일 
6.4.2 클라이언트 서버 스타일 
6.4.3 트랜잭션 처리 스타일 
6.4.4 MVC 스타일 
6.4.5 이벤트 중심 스타일 
6.4.6 객체 영속 스타일 
6.5 미들웨어 아키텍처 
6.5.1 미들웨어 기술의 분류 
6.5.2 분산 객체 
6.5.3 메시지 중심 미들웨어 
6.5.4 애플리케이션 서버 
6.6 설계 문서화 
연습문제 

Chapter 07 상세 설계 
7.1 디자인 패턴 
7.1.1 팩토리 메소드 패턴 
7.1.2 추상 팩토리 패턴 
7.1.3 어뎁터 패턴 
7.1.4 싱글톤 패턴 
7.1.5 컴포지트 패턴 
7.1.6 반복자 패턴 
7.1.7 옵서버 패턴 
7.1.8 상태 패턴 
7.1.9 퍼싸드 패턴 
7.2 클래스 설계 
7.2.1 클래스 인터페이스의 정의 
7.2.2 클래스 상태 모델링 
7.2.3 클래스 재사용 
7.3 사용자 인터페이스 설계 
7.3.1 사용자 인터페이스 유형 
7.3.2 사용자 인터페이스 설계 원리 
7.3.3 화면 설계 
7.3.4 출력물 설계 
7.4 데이터 설계 
7.4.1 데이터베이스 설계 단계 
7.4.2 객체와 테이블 
연습문제 

Chapter 08 코딩 
8.1 코딩 원리 
8.1.1 코딩 과정 
8.1.2 코딩 오류 
8.1.3 구조적 프로그래밍 
8.1.4 정보 은닉 
8.1.5 중복 회피 
8.1.6 디메테르의 법칙 
8.2 코딩 스타일 
8.2.1 명명 규칙 
8.2.2 포인터와 레퍼런스 
8.2.3 자료형 
8.2.4 문장과 수식 
8.2.5 오류 처리 
8.2.6 코드 문서화 
8.3 UML과 코딩 
8.3.1 클래스와 인터페이스의 구현 
8.3.2 연관의 구현 
8.3.3 시퀀스 다이어그램의 구현 
8.3.4 상태 다이어그램의 구현 
8.4 리팩토링 
8.4.1 기본 개념 
8.4.2 리팩토링의 사례 
8.4.3 리팩토링 과정 
8.4.4 코드 스멜 
8.5 코드 품질 향상 기법 
8.5.1 코드 인스펙션 
8.5.2 정적 분석 
8.5.3 페어 프로그래밍 
8.5 코드 품질 향상 기법 
연습문제 

Chapter 09 테스팅 
9.1 테스팅 기초 
9.1.1 오류, 결함, 고장 
9.1.2 테스팅 원리 
9.1.3 테스트 작업 과정 
9.1.4 테스트 케이스 
9.2 블랙박스 테스팅 
9.2.1 동치 클래스 분해 
9.2.2 경계값 분석 
9.2.3 원인과 결과 그래프 
9.3 화이트박스 테스팅 
9.3.1 논리 흐름의 표현 
9.3.2 기본 경로 테스팅 
9.3.3 싸이클로매틱 복잡도 
9.3.4 테스트 커버리지 
9.3.5 반복문의 테스팅 
9.4 객체지향 테스팅 
9.4.1 사용 사례 기반 테스팅 
9.4.2 상태 기반 테스팅 
9.5 통합 테스팅 
9.5.1 빅뱅 통합 
9.5.2 하향식 통합 
9.5.3 상향식 통합 
9.5.4 연쇄식 통합 
9.6 시스템 및 인수 테스트 
9.6.1 기능 테스트 
9.6.2 성능 테스트 
9.6.3 보안 테스트 
9.6.4 사용자 인터페이스 테스트 
9.6.5 인수 테스트 
9.7 테스트 도구 
9.7.1 코드 분석 도구 
9.7.2 테스트 케이스 생성 도구 
9.7.3 테스트 케이스 실행 도구 
9.7.4 단위 테스트 도구 
연습문제 

Chapter 10 유지보수 
10.1 유지보수의 소개 
10.1.1 변경해야 하는 이유 
10.1.2 Lehman의 법칙 
10.1.3 유지보수의 종류 
10.2 유지보수 작업 과정 
10.2.1 유지보수 프로세스 모델 
10.2.2 프로그램의 이해 
10.2.3 변경 파악과 분석 
10.2.4 형상 변경 관리 
10.2.5 변경 구현, 테스팅, 배포 
10.3 형상 관리 
10.3.1 베이스라인 
10.3.2 형상 관리의 필요성 
10.3.3 형상 관리 절차 
10.4 역공학 
10.4.1 역공학 작업순서 
10.4.2 역공학의 용도 
10.4.3 재문서화 
10.4.4 설계 복구 
10.5 리엔지니어링 
10.5.1 리엔지니어링 목적 
10.5.2 리엔지니어링 과정 
10.6 유지보수 도구 
연습문제 

Chapter 11 품질 보증 
11.1 소프트웨어 품질 
11.1.1 품질의 의미 
11.1.2 품질 속성 
11.1.3 소프트웨어 유형과 품질 
11.2 품질 측정 방법 
11.2.1 품질 측정과 메트릭의 유용성 
11.2.2 전통적인 품질 메트릭 
11.2.3 객체지향 소프트웨어의 품질 메트릭 
11.3 품질 보증 활동 
11.3.1 품질 보증 조직 
11.3.2 프로세스와 표준 정의 
11.3.3 품질 관리 
11.4 확인 및 검증 기법 
11.4.1 인스펙션 
11.4.2 워크스루 
11.4.3 동료 검토 
11.5 프로세스 개선 
11.5.1 CMM 
11.5.2 ISO 9001 
11.6 품질 보증 도구 
연습문제 

Chapter 12 부록 
Appendix A 도구 
A.1 StarUML 
A.2 JUnit 
A.3 Clover 
A.4 Subversion 
A.5 Bugzilla 

Appendix B 용어 사전 

참고문헌 

INDEX

저자소개

현재 동국대학교 컴퓨터공학과 교수로 재직 중이며 S/W 공학, 객체지향 설계, S/W 품질 및 테스팅, 관점지향 프로그래밍 등을 연구하며 가르치고 있다. 저서로 『UML로 배우는 시스템 분석설계』(생능출판사, 2018), 『객체지향 소프트웨어공학』(한빛출판사, 2017)이 있다. 

약력 
KAIST 전산학과(전산학 석사) 
미국 일리노이공과대학 컴퓨터과학과(컴퓨터과학 박사) 
한국표준과학연구소 연구원 
충남대, 목원대, 한밭대 강사 
DACOM 주임연구원 
시카고주립대 강사 
카네기멜론대학교 소프트웨어공학 단기연수 
콜로라도주립대 컴퓨터과학과 방문교수 
베일러대 컴퓨터과학과 방문교수 
현재 동국대학교 컴퓨터공학과 교수

이전 다음

이전 다음


*주제와 무관한 내용의 서평은 삭제될 수 있습니다.

서평추가

서평추가
별점
총 10점 중 별0점
  • 별5점
  • 총 10점 중 별9점
  • 별4점
  • 총 10점 중 별7점
  • 별3점
  • 총 10점 중 별5점
  • 별2점
  • 총 10점 중 별3점
  • 별1점
  • 총 10점 중 별1점
  • 총 10점 중 별0점
제목입력
본문입력

글자수:0
맨 위로가기 버튼