신간도서

신간도서

소프트웨어 공학

큰 규모의 프로그램 제작을 위한 지침서
  • 저자조민호
  • 발행일2020-08-31
  • 정가25,000원
  • 페이지428 페이지
  • ISBN979-11-85578-71-2
  • 책소개
  • 저자소개
  • 목차
  • 출판사 서평

좋은 엔지니어가 되고 싶다면!

 

이 책은 25년 동안의 저자 경험에 비추어 실무에서 프로그램을 개발할 때 필요한 내용이 잘 녹아들어 있다. 소프트웨어 공학에서 다루는 모든 분야에 대하여 체계적인 정리와 원리 이해, 실무에서 주로 사용하는 용어와 기법을 익힐 수 있도록 수많은 사례를 들어 설명하고 있다. 또한, 이 책은 기존의 다른 소프트웨어 공학 책의 범위에 소프트웨어 모델링과 코딩 가이드, 디자인 패턴, 리팩토링, TDD 등 실무에서 실질적으로 도움이 되는 내용을 담고 있다. 불필요한 말을 줄여 간단하고 명료하게 설명하고, 핵심적인 내용은 그림으로 정리하여 쉽게 이해할 수 있도록 구성되어 있다. 독자가 공부함에 있어서 불필요한 노력을 최소화 할 수 있을 것이다.


조민호


숭실대학교에서 소프트웨어공학을 전공하여 박사학위를 취득하였다. 1989년부터 2013년까지 25년 동안 HP, SK C&C, Openwave 등에서 근무하며 소프트웨어 개발 및 컨설팅 업무를 담당하였다. 2013년 이후 현재까지 중원대 컴퓨터공학과에 재직 중이다. 주요 연구 분야는 소프트웨어공학, 통계 및 데이터분석, 인공지능 등이다. 최근에는 파이썬 기반의 응용 분야에 대해 연구하고 있으며, 조만간 인공지능 관련 알고리즘에 대한 주제로 독자와 만날 예정이다.

 


Part I 소프트웨어 공학의 대상인 정보시스템의 개념과 개발

 

Chapter 1. 개요 및 전체적 시각

1.1 소프트웨어의 정의

1.2 소프트웨어 발전의 역사

1.3 소프트웨어의 종류

1.4 소프트웨어 공학의 정의

1.5 소프트웨어 공학의 도입 배경

1.6 소프트웨어 공학의 관심 대상

1.7 소프트웨어 공학의 단계 및 중요 작업

1.8 소프트웨어 공학의 범위

1.9 정리

 

Chapter 2. 정보시스템에 대한 관점

2.1 기본 용어의 정의

2.2 소프트웨어 공학과 정보시스템의 관계

2.3 정보시스템의 도입

2.4 정보시스템의 관련자

2.5 정보시스템의 분석 관점

2.6 정보시스템의 전체적 관점

2.7 정보시스템의 종류

2.8 정보시스템 관련 중요 개념 정리

2.9 정리

 

Chapter 3. 정보시스템 구현

3.1 정보시스템의 모습

3.2 정보시스템 개발의 기본 원칙

3.3 정보시스템 개발의 공통 기술

3.4 정보시스템 개발 단계

3.5 정보시스템 개발의 공통 원칙

3.6 정리

 

Part II 소프트웨어 공학 일반론

 

Chapter 4. 요구사항 관리

4.1 요구사항 관리의 개념

4.2 요구사항의 발견

4.3 요구사항의 발견 절차

4.4 정보시스템에서 요구사항 관리의 위치

4.5 정보시스템 요구사항 관리 라이프 사이클

4.6 사전 탐색 단계

4.7 문제 분석 단계

4.8 요구사항 분석 단계

4.9 제안 요청 및 업체 결정 단계

4.10 정리

 

Chapter 5. 요구사항 발견 기법

5.1 요구사항 발견에서 사용하는 기법

5.2 이시가와 다이어그램

5.3 고객의 발표

5.4 기존 시스템의 분석

5.5 문헌조사, 업무 절차, 설문조사

5.6 인터뷰

5.7 브레인스토밍(Brainstorming)

5.8 프로토타이핑(Prototyping)

5.9 사용자 스토리(User Story)

5.10 유스케이스, DFD

5.11 요구사항 관리 도구

5.12 도메인(Domain) 분석

5.13 정리

 

Chapter 6. 프로젝트 관리

6.1 프로젝트 관리와 정보시스템의 관계

6.2 프로젝트 및 프로젝트 관리

6.3 프로젝트 관리 라이프사이클

6.4 범위 협상 및 확정

6.5 태스크 식별

6.6 태스크 수행 기간 예측

6.7 태스크 간의 의존성 확인 및 일정 관리

6.8 자원의 할당 및 조직 구성

6.9 개발팀의 구성 및 운영

6.10 감시와 통제

6.11 프로젝트 종료

6.12 프로젝트의 관리 기법

6.13 프로젝트의 비용 추정

6.14 프로젝트 수행의 실무 단계 및 산출물 요약

6.15 정리

 

Chapter 7. 소프트웨어 분석 및 설계

7.1 소프트웨어 분석 및 설계의 개념

7.2 소프트웨어 설계의 기술적인 관점

7.3 소프트웨어 설계의 가이드라인

7.4 소프트웨어 설계의 품질 요소

7.5 소프트웨어 아키텍처의 필요성

7.6 소프트웨어 아키텍처의 정의 및 개념

7.7 소프트웨어 아키텍처의 문서화

7.8 소프트웨어 아키텍처의 설계 과정

7.9 소프트웨어 아키텍처의 작성을 위한 관점

7.10 소프트웨어 아키텍처의 적용 대상

7.11 정리

 

Chapter 8. 소프트웨어 프로세스

8.1 소프트웨어 프로세스와 방법론의 개념

8.2 소프트웨어 개발 생명주기

8.3 소프트웨어 프로세스를 통해 얻을 수 있는 것

8.4 개발 프로세스의 종류

8.5 개발 방법론의 종류

8.6 지원 프로세스의 의미와 종류

8.7 정리

 

Chapter 9. 소프트웨어 테스트

9.1 소프트웨어 테스트의 개념

9.2 소프트웨어 개발과 테스트의 연계

9.3 소프트웨어 테스트의 종류

9.4 테스트 수행 흐름도

9.5 테스트 도구

9.6 객체지향 프로그래밍과 테스트의 관계

9.7 테스트 케이스의 작성 사례

9.8 정리

 

Chapter 10. 소프트웨어 유지보수

10.1 소프트웨어 유지보수의 개념

10.2 소프트웨어 유지보수의 절차

10.3 소프트웨어의 유지보수 모델

10.4 소프트웨어 3R

10.5 유지보수 도구

10.6 정리

 

Chapter 11. 소프트웨어 품질보증

11.1 소프트웨어 품질의 개념

11.2 소프트웨어 품질의 표준화 활동 정리

11.3 소프트웨어 품질 측정 방법

11.4 품질보증 활동

11.5 품질 확인 및 검증 기법

11.6 프로세스 품질 개선의 측정

11.7 품질보증 도구

11.8 정리

 

Part III 소프트웨어 방법론 및 개발 실무

 

Chapter 12. 소프트웨어 모델링 개념 정리

12.1 소프트웨어 공학과 소프트웨어 모델링의 관계

12.2 모델링의 정의

12.3 소프트웨어 모델링의 기본 원리

12.4 소프트웨어 모델링의 3요소

12.5 소프트웨어 개발을 위해 필요한 모델링 관점

12.6 모델링과 방법론의 관계

12.7 모델링과 컴퓨터의 발전 정리

12.8 정리

 

Chapter 13. 소프트웨어 모델링 중 구조적 방법론

13.1 구조적 방법론의 필요성 및 소개

13.2 구조적 방법론의 구성

13.3 구조적 방법론의 데이터흐름도 작성 요령 및 읽기

13.4 단위시스템의 데이터흐름도 그리기 및 소단위명세서 작성하기

13.5 전체시스템의 데이터흐름도 그리기 및 소단위명세서 작성하기

13.6 구조적 방법론 도구 소개

13.7 정리

 

Chapter 14. 소프트웨어 모델링 중 정보공학 방법론

14.1 개발 방법론의 역사

14.2 정보공학 방법론이란?

14.3 정보공학 방법론의 업무 개발 단계

14.4 정보전략계획(ISP)

14.5 업무영역분석(BAA)

14.6 업무시스템설계(BSD)

14.7 데이터모형 구축

14.8 개체관계 모델링(Entity-Relationship Modeling)

14.9 업무시스템 구축(BSC)

14.10 정리

 

Chapter 15. 소프트웨어 모델링 중 객체지향 방법론

15.1 객체지향의 개념

15.2 객체지향 방법론의 필요성 및 종류

15.3 객체지향 방법론의 개요

15.4 UML 모델링 개요

15.5 클래스 다이어그램

15.6 순차(Sequence) 다이어그램

15.7 유스케이스 다이어그램

15.8 관점지향 프로그래밍

15.9 객체지향 방법론 도구

15.10 정리

 

Chapter 16 코딩 기법

16.1 코딩 기법의 의미

16.2 표준 코딩 규칙

16.3 좋은 코딩을 위한 가이드

16.4 클래스의 처리 기법

16.5 디자인 패턴

16.6 리팩토링

16.7 테스트 주도 개발

16.8 정리


소프트웨어 공학은 컴퓨터 전문가로 성장하기 위해 반드시 익혀야 하는 분야이다. 이 책은 기존의 소프트웨어 공학의 범위에 소프트웨어 모델링을 추가하여 현실적인 가이드가 될 수 있도록 구성되어 있다. 소프트웨어 공학에 대한 책은 시중에도 많이 나와 있지만 이론을 중심으로 되어 있어 현실에 적용하기는 어려웠다. 그러한 문제를 해결하고자 기존의 책과는 다른 접근 방식으로 실무에서 필요한 지식과 기법을 단계별로 자세하게 설명하였다. 특히 핵심적인 개념은 글보다 그림으로 설명하여 조금 더 쉽고 명확하게 이해할 수 있게 하였고, 다양한 개념과 기법이 실무에서 어떻게 사용되는지 사례 중심으로 설명하므로 초보자도 따라 하는데 큰 어려움이 없을 것이다. 기존의 책과는 구성과 논리 전개가 많이 다르지만, 얻을 수 있는 지식의 깊이는 다른 어떤 것과도 비교할 수 없을 거라 장담한다. 소프트웨어 공학을 처음 배우는 학생이나 이미 관련된 업무를 하고 있는 직장인 모두에게 이 책을 추천하고 싶다. 많은 도움이 될 것이다.