제품 정보로 건너뛰기
소프트웨어 공학의 모든 것
소프트웨어 공학의 모든 것
Description
책소개
『소프트웨어 공학의 모든 것』은 한 마디로 프로그래머를 소프트웨어 엔지니어 되게 하는 모든 것을 담고 있다.
프로그래머는 단순히 코딩에 머무르지만 소프트웨어 엔지니어는 개발 모든 과정을 이해하고 수행할 능력을 갖추고 있다.
만질 수 없고 복잡하며 변경이 많은 소프트웨어를 여러 사람이 협력하여 만드는 것은 빌딩을 건축하는 것과 같이 엔지니어링이 필요하다.
엔지니어링이란 절차와 방법, 설계, 테스트, 품질 등의 원리를 잘 이해하고 적용하여 실패 없이 작업할 수 있는 능력을 의미한다.
소프트웨어 시스템은 개인의 코딩 역량만으로는 만들기 어렵다.
이 책은 대학 3, 4학년을 대상으로 소프트웨어 설계, 개발, 운영에 관한 기초 지식을 배울 수 있도록 설명하고 있다.
소프트웨어 공학 지식체계(SWEBOK)에서 제시하는 다음과 같은 기본 사항을 모두 포함한다.

목차
CHAPTER 01 소개

01 소프트웨어
1 소프트웨어의 특징
2 프로그래밍
02 소프트웨어 개발
1 기본 활동
2 개발 작업의 특징
03 소프트웨어 공학의 접근법
1 소프트웨어 공학의 정의
2 소프트웨어 공학의 목표
04 소프트웨어 공학의 주제
1 단계적 프로세스
2 품질 보증
3 프로젝트 관리
05 소프트웨어 공학의 발전
연습문제

CHAPTER 02 프로세스와 방법론

01 소프트웨어 생명주기
02 프로세스
1 프로세스 정의
2 프로세스와 품질
03 전통적인 모델
1 폭포수 모델
2 프로토타이핑 모델
3 점증적 모델과 진화적 모델
4 나선형 모델
5 컴포넌트 기반 모델
6 Unified Process
04 애자일 모델
1 애자일 모델의 특징
2 익스트임 프로그래밍
3 크리스탈
4 스크럼
05 방법론
1 구조적 방법론
2 정보공학 방법론
3 객체지향 방법론
연습문제

CHAPTER 03 프로젝트 계획과 관리

01 프로젝트 시작
1 프로젝트 가치
2 프로젝트 리스크
3 타당성 분석
02 프로젝트 계획과 스케줄링
1 목표 설정
2 프로젝트 범위
3 WBS
4 스케줄링
03 비용 예측 기법
1 COCOMO-81
2 COCOMO II
3 기능점수
4 COSMIC 기능점수
04 프로젝트 팀 조직
1 팀 역할
2 직능별 조직
3 프로젝트별 조직
4 매트릭스 조직
5 애자일 조직
05 실행과 모니터링
1 프로젝트 실행
2 프로젝트 모니터링
3 번다운 차트
06 리스크 관리
1 리스크 파악
2 리스크 평가
3 리스크 관리
연습문제

CHAPTER 04 요구 분석

01 요구
1 기능 요구
2 비기능 요구
3 요구 대상에 의한 분류
02 요구 사항 추출
1 요구 정보 출처
2 고객의 발표
3 문헌 양식 조사
4 인터뷰
5 설문
6 브레인스토밍
7 프로토타이핑
03 요구 분석
1 요구 품질
2 도메인 분석
3 시나리오 기반 분석
04 유스케이스 173
1 유스케이스 다이어그램
2 유스케이스 명세
3 유스케이스 사이의 관계
05 요구 명세
1 작성 방법
06 요구 검증
연습문제

CHAPTER 05 요구 모델링

01 모델링
1 관점과 추상화 수준
2 소프트웨어와 모델링
3 모델 사이의 관계
02 UML
1 UML 다이어그램
2 모델링 과정
03 정적 모델링
1 객체지향 개념
2 클래스 다이어그램
04 동적 모델링
1 시퀀스 다이어그램
2 커뮤니케이션 다이어그램
3 상태 다이어그램
05 제어 모델링
06 모델 검증
연습문제

CHAPTER 06 설계 원리

01 설계 기본 개념
1 서브시스템, 모듈
2 설계 관점
3 설계 작업 과정
02 품질 목표
03 전통적인 설계 원리
1 추상화
2 캡슐화
3 모듈화
4 결합
5 응집
04 객체지향 설계 원리
1 단일 책임의 원리
2 개방 폐쇄의 원리
3 리스코프 교체의 원리
4 인터페이스 분리의 원리
5 의존 관계 역전의 원리
05 컴포넌트 구성 원리
1 제어 역전
2 패키지 설계 원리
연습문제

CHAPTER 07 아키텍처 설계와 패턴

01 아키텍처 기초
1 아키텍처란?
2 아키텍처의 역할
3 아키텍처의 표현
02 아키텍처 스타일
1 클라이언트 서버형
2 계층형
3 이벤트 기반 아키텍처
4 MVC
5 파이프 필터
6 데이터 중심 아키텍처
7 Peer-to-Peer 스타일
8 마이크로커널 스타일
03 디자인 패턴
1 디자인 패턴의 혜택
2 디자인 패턴의 형식
3 싱글톤 패턴
4 반복자 패턴
5 어댑터 패턴
6 데코레이터 패턴
7 팩토리 메서드 패턴
8 추상 팩토리 패턴
9 상태 패턴
10 옵서버 패턴
04 아키텍처 평가
연습문제

CHAPTER 08 UI 설계

01 UI 기본 개념
1 사용성
2 멘탈 모델
3 피드백
4 제약
02 UI 설계 원리
03 UI 설계 과정
1 사용자 분석
2 태스크 분석
3 UI 설계와 구현
4 사용성 테스트
04 UI 요소
05 화면 및 출력 설계
1 화면 설계
2 출력 설계
연습문제

CHAPTER 09 코딩

01 코딩 작업
1 작업 과정
2 자주 발생하는 오류
02 코딩 표준
1 명명 규칙
2 형식
3 문장과 수식
4 오류처리
5 주석
03 설계에서 코드 생성
1 연관의 코딩
2 시퀀스 다이어그램의 코딩
3 상태 다이어그램의 코딩
04 리팩토링
1 리팩토링 개념
2 리팩토링 과정
3 코드 스멜
4 리팩토링 사례
05 코드 품질 향상 기법
1 코드 인스펙션
2 정적 분석
3 테스트 중심 개발
4 페어 프로그래밍
연습문제

CHAPTER 10 테스트

01 테스트 기초
1 버그, 오류, 결함, 고장
2 테스트 원리
3 테스트 작업 과정
4 테스트 단계
5 테스트 케이스
02 블랙박스 테스트
1 동등 분할 기법
2 경곗값 분석
3 원인 결과 그래프
03 화이트박스 테스트
1 논리 흐름의 표현
2 검증 기준
04 상태 기반 테스트
1 상태 머신
2 테스트 케이스 선택
05 통합 테스트
1 빅뱅 통합
2 하향식 통합
3 상향식 통합
4 연쇄식 통합
06 시스템 및 인수 테스트
1 기능 테스트
2 성능 테스트
3 보안 테스트
4 UI 테스트
5 인수 테스트
연습문제

CHAPTER 11 유지보수

01 유지보수 소개
1 변경의 이유와 유지보수 유형
2 Lehman의 법칙
02 유지보수 작업 과정
1 유지보수 작업
2 유지보수 프로세스 모델
3 프로그램의 이해
4 변경 파악과 분석
03 형상 관리
1 형상 관리의 목적
2 형상 관리 절차
04 역공학과 리엔지니어링
1 역공학
2 리엔지니어링
05 지속적 통합과 배포
1 CI/CD
2 CI/CD 파이프라인
연습문제

CHAPTER 12 품질

01 소개
1 품질 활동 수준
2 품질 개념
3 소프트웨어 품질
02 품질 모델
03 품질 관리
1 품질 관리 조직
2 프로세스와 표준의 정의
3 품질 관리 활동
4 인스펙션
04 품질 측정
1 측정 기본 개념
2 품질 메트릭
05 프로세스 개선
1 CMMI
2 SPICE
연습문제

출판사 리뷰
이 책은 한 마디로 프로그래머를 소프트웨어 엔지니어 되게 하는 모든 것을 담고 있다.
프로그래머는 단순히 코딩에 머무르지만 소프트웨어 엔지니어는 개발 모든 과정을 이해하고 수행할 능력을 갖추고 있다.
만질 수 없고 복잡하며 변경이 많은 소프트웨어를 여러 사람이 협력하여 만드는 것은 빌딩을 건축하는 것과 같이 엔지니어링이 필요하다.
엔지니어링이란 절차와 방법, 설계, 테스트, 품질 등의 원리를 잘 이해하고 적용하여 실패 없이 작업할 수 있는 능력을 의미한다.
소프트웨어 시스템은 개인의 코딩 역량만으로는 만들기 어렵다.
이 책은 대학 3, 4학년을 대상으로 소프트웨어 설계, 개발, 운영에 관한 기초 지식을 배울 수 있도록 설명하고 있다.
소프트웨어 공학 지식체계(SWEBOK)에서 제시하는 다음과 같은 기본 사항을 모두 포함한다.

- 소프트웨어 설계, 개발, 운영에 관한 전체 그림을 이해할 수 있는 생명주기와 개발 프로세스
- 소프트웨어 개발 계획, 개발 과정을 파악하고 제어하는 프로젝트 관리
- 사용자의 요구를 파악하고 분석하여 명세하는 기법
- 다양한 관점으로 소프트웨어를 모델링하는 기법
- 기본적인 소프트웨어 설계 원리와 개념
- 소프트웨어의 골격인 아키텍처 설계와 객체지향 프로그램의 설계 패턴
- 품질을 높이기 위한 코딩 방법과 다양한 테스트, 검증 기법
- 소프트웨어 품질 개념과 품질을 높이기 위한 품질보증 활동, 제품 측정 및 프로세스 개선

다양하고 방대한 소프트웨어 엔지니어링 기법을 익히려면 기본 개념을 잘 이해하여야 한다.
프로그래밍으로부터 출발하여 설계와 모델링, 프로세스, 관리 등 어려운 개념들을 그림과 함께 쉽고 체계적인 방법으로 설명하였다.
이 책에서는 최신 프로그래밍 언어를 사용하여 소프트웨어를 개발하는 절차와 방법, 도구를 설명한다.
특히 설계와 모델링 표현 방법으로 UML과 프로그래밍 과정에 유용하게 적용할 수 있는 디자인 패턴, 부담스러운 문서 작업은 줄이고 코딩과 테스트 중심으로 소프트웨어를 개발하는 애자일 프로세스를 소개한다.

예상하는 독자는 대학에서 전공과목을 수강하는 학생뿐만 아니라 산업 현장에서 일하면서 직무 능력을 향상시키려는 엔지니어도 포함된다.
개념과 기초 이론으로부터 실무에 적용될 수 있는 방법과 도구, 절차, 보고서 양식, 테스트 등을 구체적인 사례를 들어 설명하였다.

이 책은 지난 30년 동안 국내 소프트웨어 공학을 배우는 학생뿐만 아니라 산업 현장의 엔지니어, 프로젝트를 발주하고 관리하는 공공 기관, 개발자를 검증하는 각종 시험에서도 기준이 되어 왔던 텍스트다.
따라서 소프트웨어 공학에서 다루는 여러 가지 이론과 방법, 도구들 중에서 개발자가 알아야 할 최신 기술을 계속 추가 보완해 왔다.
이 책 한 권에 기초 개념의 이해뿐만 아니라 국제적인 수준의 소프트웨어 공학 기술 습득, 각종 자격 및 취업 시험 준비가 가능한 소프트웨어 공학의 모든 것을 담으려고 노력하였다.

개정판에서 추가되거나 달라진 부분

- 최근 점점 확대 적용되는 애자일 방법과 프로세스를 2장에 더 상세히 기술하여 추세를 반영하였다.
- 서버 구축을 위한 기술이 꾸준히 빠르게 발전하며 그 설계 이론도 빠르게 진화한다.
객체지향 설계 원리를 기초로 컴포넌트를 기반으로 조립 완성하는 형태로 개발된다.
따라서 클린 아키텍처를 포함한 컴포넌트 구성 원리를 6장에 추가하였다.
- 다양한 인터페이스와 단말기의 등장과 클라이언트 코딩 기법의 발전으로 UX/UI도 영향을 많이 받고 있다.
8장에 이를 반영하였다.
- 클라우드 운영 환경으로 지속적인 배포와 운영이 필요하다.
따라서 테스트 자동화 개념부터 자동 빌드, 배포에 이르는 DevOps 개념을 11장에 추가하였다.
- NCS(국가 직능 표준) 기반으로 바뀐 정보처리 기사시험과 공무원 시험뿐만 아니라 정보시스템 감리사, 기술사 시험까지 준비할 수 있도록 내용을 보완하고 최신 기출문제를 소개하였다.
GOODS SPECIFICS
- 발행일 : 2024년 12월 27일
- 쪽수, 무게, 크기 : 608쪽 | 190*240*35mm
- ISBN13 : 9791192932965
- ISBN10 : 119293296X

You may also like

카테고리