목차
PART 1 소프트웨어공학의 기초
CHAPTER 1 개요
1.1 소프트웨어란 무엇인가?
1.2 소프트웨어 분류
1.3 Code-and-Fix 방식의 문제점 및 소프트웨어 위기
1.4 소프트웨어공학이란?
1.5 소프트웨어 개발 생산성에 영향을 주는 핵심 요소
1.6 소프트웨어 개발 생명주기
■연습문제
CHAPTER 2 소프트웨어 개발 프로세스 모델
2.1 프로세스
2.2 소프트웨어 개발 방법론
2.3 소프트웨어 생명주기 관련 프로세스 종류
2.4 소프트웨어 개발 프로세스 모델
2.5 소프트웨어 개발 프로세스 모델 적용에서 주의할 점
■연습문제
CHAPTER 3 프로젝트 계획 수립과 비용 산정
3.1 프로젝트란 무엇인가?
3.2 프로젝트 식별
3.3 프로젝트 관리와 프로젝트 관리자
3.4 작업계획 및 일정계획
3.5 소프트웨어 개발 비용 지출 요소
3.6 프로젝트 비용 예측 모델의 종류와 절차
3.7 LOC 기반 프로젝트 비용 예측 모델
3.8 기능점수 기반 프로젝트 비용 예측 모델
3.9 조직 계획
3.10 위험관리 계획
3.11 사업의 타당성 분석
3.12 프로젝트 관리 표준지침
■연습문제
PART 2 객체지향 분석
CHAPTER 4 요구사항 분석
4.1 요구사항 정의
4.2 비기능적 요구사항
4.3 요구사항 엔지니어링 프로세스
4.4 요구사항분석 방법
4.5 그 밖의 요구사항분석 방법
4.6 시스템 제안서 작성
4.7 플랜트 엔지니어링 절차와 소프트웨어 개발 생명주기 비교
■연습문제
PART 3 객체지향 분석 - 기초 설계
CHAPTER 5 소프트웨어 설계 원리
5.1 분할-정복 접근 방식
5.2 모듈화
5.3 추상화
5.4 단계적 정제
5.5 정보은닉
5.6 모듈의 응집력 높이기
5.7 모듈 간의 커플링 줄이기
5.8 그 밖의 소프트웨어 설계 원리
5.9 소프트웨어 시스템 구축의 접근 방법
■연습문제
CHAPTER 6 객체지향 분석-기초설계
6.1 객체지향 개념들
6.2 UML
6.3 기능 모델링 - 사용사례 다이어그램
6.4 구조적 모델링 - 클래스 다이어그램
6.5 동적 모델링 - 시퀀스 다이어그램
6.6 메소드 알고리즘 표현 방법
6.7 HW/SW/NW 외부 인터페이스 요구사항 명세
6.8 소프트웨어 요구사항명세서(SRS) 양식
6.9 소프트웨어 요구사항명세서 평가지표
6.10 요구사항분석 도구
■연습문제
PART 4 상세 설계
CHAPTER 7 시스템 아키텍처 설계
7.1 소프트웨어 설계의 활동 범위
7.2 소프트웨어 아키텍처 유형
7.3 네트워크 인프라 설계
7.4 하드웨어 아키텍처 설계 - 시스템 배치도
7.5 HW/SW/NW 장비 사양
■연습문제
CHAPTER 8 설계 패턴
8.1 생성형 설계 패턴
8.2 구조적 설계 패턴
8.3 행위 설계 패턴
8.4 J2EE 설계 패턴
■연습문제
CHAPTER 9 사용자 인터페이스 설계
9.1 사용자 인터페이스 설계 원리
9.2 사용자 인터페이스 설계 프로세스
9.3 사용자 인터페이스 구성 요소
9.4 내비게이션 설계
9.5 입력 구성 요소 및 설계
9.6 출력 구성 요소 및 설계
9.7 도움말(helpers) 구성 요소
9.8 사용자 인터페이스 설계에서 국제적 및 문화적 고려사항
9.9 사용자 인터페이스 평가 방법
■연습문제
CHAPTER 10 데이터 설계
10.1 객체지향 시스템에서 추상화 수준
10.2 클래스 설계
10.3 데이터베이스 스키마 테이블 설계
10.4 추상 클래스 및 Interface 클래스 설계
10.5 물리적 데이터 저장 구조 설계
■연습문제
CHAPTER 11 알고리즘 설계
11.1 메소드 알고리즘 설계
11.2 사용사례(시퀀스 다이어그램)에 대한 알고리즘 설계
11.3 질의의 SQL 설계
11.4 비기능적 요구사항에 대한 알고리즘 설계
11.5 알고리즘 설계 규칙
11.6 소프트웨어 설계명세서(SDD) 양식
11.7 소프트웨어 설계명세서 평가지표
■연습문제
PART 5 코딩 및 테스트
CHAPTER 12 코딩 규칙
12.1 좋은 프로그래밍 코드의 품질
12.2 명명 규칙
12.3 문장 및 수식 표현 규칙
12.4 오류 처리 규칙
12.5 이식성을 고려한 코딩 규칙
12.6 주석 달기
12.7 코드 품질 향상 기법
■연습문제
CHAPTER 13 테스트 방법론
13.1 테스트 기초
13.2 단위테스트 - 블랙박스 테스트
13.2.1 동치 클래스 분할
13.3 단위테스트 - 화이트박스 테스트
13.4 통합테스트
13.5 시스템테스트
13.6 인수테스트
13.7 테스트 자동화 도구
■연습문제
PART 6 유지보수와 품질관리
CHAPTER 14 유지보수
14.1 유지보수 개념과 종류
14.2 유지보수 프로세스와 추진전략
14.3 소프트웨어 형상 관리
14.4 역공학
14.5 유지보수 도구
■연습문제
CHAPTER 15 품질관리와 품질보증
15.1 품질 개념
15.2 품질 평가모델의 분류
15.3 소프트웨어 품질 평가모델
15.4 품질관리(QC) 활동
15.5 품질보증(QA) 활동
15.6 소프트웨어 품질보증 계획
15.7 프로세스 품질 평가모델
15.8 품질보증 도구
■연습문제
APPENDIX
부록 1. 〈소프트웨어 개발 문서 및 평가지표 양식 목록〉
부록 2. 〈표 3.1〉 시스템 요청서 양식
부록 3. 〈표 4.1〉 소프트웨어 개발을 위한 시스템 제안서 양식
부록 4. 〈표 6.9〉 소프트웨어 요구사항명세서(SRS) 양식
부록 5. 〈표 6.10〉 소프트웨어 요구사항명세서(SRS) 평가지표
부록 6. 〈표 11.1〉 소프트웨어 설계명세서(SDD) 양식
부록 7. 〈표 11.2〉 소프트웨어 설계명세서(SDD)의 평가지표
부록 8. 〈표 14.1〉 형상 관리 계획서 양식
참고문헌