메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT CookBook, 소프트웨어 공학 이론과 실제

한빛아카데미

집필서

판매중

  • 저자 : 홍장의
  • 출간 : 2022-06-10
  • 페이지 : 528 쪽
  • ISBN : 9791156646020
  • 물류코드 :4602
  • 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.
  • 초급 초중급 중급 중고급 고급
0점 (0명)
좋아요 : 4

34개 실습과 13개 프로젝트로 배운다!

 

품질 좋은 소프트웨어를 개발하려면 실효성 있는 방법론과 우수한 도구도 필요하지만, 그보다 더 중요한 것은 지식과 기술을 겸비한 우수한 소프트웨어 엔지니어입니다.

 

이 책은 소프트웨어 개발 프로젝트를 성공으로 이끄는 소프트웨어 엔지니어가 될 수 있도록 소프트웨어 공학 핵심 이론과 실무 적용을 충실하게 담은 지침서입니다. 실습을 통해 핵심 개념을 확실히 다지고 프로젝트를 통해 소프트웨어 개발 라이프사이클에 따라 점진적으로 단계별 활동을 수행할 수 있도록 다음과 같이 구성하였습니다.

 

※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.

 

 

 

상세페이지_소프트웨어 공학 이론과 실제.png

홍장의 저자

홍장의

카이스트에서 전산학 박사 학위를 취득했습니다. 현재 충북대학교 소프트웨어학부 교수로 재직 중이며 소프트웨어지능공학 연구실을 운영하고 있습니다. 국방과학연구소에서 선임연구원으로 재직 시 국방 소프트웨어 개발 프로젝트에 참여하였으며, (주) 솔루션링크 기술연구소장으로 재직 시 소프트웨어 품질 및 소프트웨어 개발 방법에 대한 컨설팅을 수행하였습니다. 또한 삼성전자, LG전자, SK 텔레콤 등에서 소프트웨어 공학 관련 강의를 다수 진행하였습니다. 과학기술정보통신부의 국가기술지도 작성에 참여하였으며, 한국정보과학회 소프트웨어공학 소사이어티의 회장을 역임하였습니다.

Chapter 01 소프트웨어 공학 개요

01 소프트웨어 고장 사례

02 소프트웨어 위기

03 소프트웨어 공학 기술의 적용

1 소프트웨어 공학적 기법의 종류

2 소프트웨어 공학의 정의와 원리

연습문제

[프로젝트 I] 프로젝트 정의서 작성하기

 

Chapter 02 소프트웨어 품질

01 소프트웨어 품질의 중요성

02 소프트웨어 품질 요소

1 외적 품질 요소

2 내적 품질 요소

3 프로세스 품질

03 인공지능 소프트웨어 품질

1 전통적인 소프트웨어와의 차이점

2 인공지능 소프트웨어의 품질 특성

3 시스템 관점별 품질 요소

04 소프트웨어 품질 모델 및 표준

1 McCall의 FCM 모델

2 HP의 FURPS 모델

3 ISO 9126 품질 모델

4 ISO 25010 품질 모델

05 소프트웨어 품질 관리

1 정량적 품질 개선

2 정보 저장소

3 예측적 품질 관리

연습문제

[실습 2-1] 스테이크홀더Stakeholder의 기대치 식별하기

[실습 2-2] 새로운 품질 요소 설계하기

[프로젝트 II] 대상 시스템 품질 요소 추정하기

 

Chapter 03 소프트웨어 개발 프로세스

01 실현 가능성 분석

02 전통적인 소프트웨어 프로세스

03 애자일 및 XP 프로세스

1 신속한 소프트웨어 개발

2 애자일: XP 프로세스

3 애자일: 스크럼 프로세스

4 Chaos와 DevOps

04 소프트웨어 프로세스 개선

1 CMM과 CMMI

2 SPICE & A-SPICE

3 식스 시그마

4 기타 프로세스 표준 

연습문제

[실습 3-1] 스크럼 이해하기

[실습 3-2] A-SPICE 생각해보기

[프로젝트 III] 프로세스 모델 선정하기

 

Chapter 04 DevOps

01 DevOps 개요

02 DevOps 프로세스와 프랙티스

1 DevOps 성공 전략

2 DevOps 프로세스

3 DevOps Toolchain

4 DevOps와 클라우드

5 DevOps 측정 척도

03 DevOps 변형들

1 DevSecOps

2 DevDataOps

3 BizDevOps

4 DevOps와 기술 부채

연습문제

[실습 4-1] 린 원리 적용하기

[실습 4-2] DevOps 도구 설치해보기

[실습 4-3] 용어의 의미 이해하기: 마이크로서비스

 

Chapter 05 프로젝트 관리

01 프로젝트 관리 필요성

1 프로젝트 관리의 정의

2 프로젝트 관리 단계

3 프로젝트 관리의 실패 원인

02 프로젝트 관리 기법

1 일정 관리 기법

2 비용 관리 기법

3 위험 관리

03 프로젝트 조직

1 프로젝트 팀 구조

2 전사적 운영 조직

04 프로젝트 관리 계획서

05 프로젝트 지원 도구

1 프로젝트 관리 기능

2 PMO 도구

3 엔지니어링 도구

연습문제

[실습 5-1] 작업 분할도 작성해보기

[실습 5-2] 팀 구성 방법 생각해보기

[프로젝트 IV] 프로젝트 관리 계획서 작성하기

 

Chapter 06 소프트웨어 비용 산정

01 기능 점수 개요

1 소프트웨어 비용과 기능 점수 

2 기능 점수 구성 요소

02 기능 점수 산정 절차

1 단계 1: 기능 점수 산정 유형Type 결정

2 단계 2: 범위 및 경계Boundary 선정

3 단계 3: 데이터 기능 산출 및 복잡도 식별

4 단계 4: 처리 기능 산출 및 복잡도 식별

5 단계 5: 예비 기능 점수 산정

6 단계 6: 조정 인자 값 산출

7 단계 7: 최종 기능 점수 산출

03 정규법과 간이법

1 간이법 산정 절차

2 간이법 단계별 산정

04 기능 점수 활용

1 기능 점수와 프로그래밍 언어

2 기능 점수와 품질 척도

연습문제

[실습 6-1] 데이터 기능 산정하기

[실습 6-2] 조정 인자 값 산출을 위한 시스템 특성 평가하기

[실습 6-3] 간이법에 의한 데이터 및 처리 기능 카운트하기

[프로젝트 V] 프로젝트의 기능 점수 산정해보기

 

Chapter 07 요구사항 도출

01 요구사항 개요

02 요구사항 수집 기법

1 대면 수집 방법

2 비대면 수집 방법

03 요구사항 정의서 작성

연습문제

[실습 7-1].문서 편집기의 요구사항 정의 품질 분석하기

[실습 7-2] 요구사항 수집을 위한 인터뷰 질문 작성하기

[실습 7-3] 요구사항 정리해보기

[프로젝트 VI] 요구사항 정의서 작성하기

 

Chapter 08 객체지향 분석

01 객체지향과 UML

02 기능 모델링

1 기능 모델링 개요

2 유스 케이스 다이어그램

3 유스 케이스 설명서

03 구조 모델링

1 객체 식별

2 클래스 명세

3 클래스 다이어그램 작성

04 행위 모델링

1 순차 다이어그램 구성 요소

2 순차 다이어그램 작성

3 상태기계 다이어그램 작성

05 분석 산출물 점검

연습문제

[실습 8-1] SysML 알아보기

[실습 8-2] 클래스 다이어그램 작성해보기

[실습 8-3] 산출물 간의 일관성 점검해보기

[프로젝트 VII] 대상 시스템의 요구사항 분석하기

 

Chapter 09 모듈화 설계

01 모듈화 설계 개요

02 결합력의 이해

1 메시지 결합력Message Coupling

2 데이터 결합력Data Coupling

3 스탬프 결합력Stamp Coupling

4 제어 결합력Control Coupling

5 외부 결합력External Coupling

6 공유 결합력Common Coupling

7 내용 결합력Content Coupling

03 응집력의 이해

1 기능 응집력Functional Cohesion

2 순차 응집력Sequential Cohesion

3 교환 응집력Communicational Cohesion

4 절차 응집력Procedural Cohesion

5 시간 응집력Temporal Cohesion

6 논리 응집력Logical Cohesion

7 우연 응집력Coincidental Cohesion

04 모듈화 응용 기술

1 모듈화와 소모 전력Software Energy Consumption

2 모듈화와 기술 부채Technical debt

연습문제

[실습 9-1] 코드 개선을 통한 결합력 높이기

[실습 9-2] 코드 개선을 통한 응집력 높이기

 

Chapter 10 설계 패턴

01 설계 패턴 개요

02 생성 패턴

1 Abstract Factory

2 Builder

3 Factory Method

4 Prototype

5 Singleton

03 구조 패턴

1 Adapter

2 Bridge

3 Composite

4 Decorator

5 Facade

6 Flyweight

7 Proxy

04 행위 패턴

1 Chain of Responsibility

2 Command

3 Interpreter

4 Iterator

5 Mediator

6 Memento

7 Observer

8 State

9 Strategy

10.Template Method

11.Visitor

연습문제

[실습 10-1] 설계 패턴 적용하기

[프로젝트 VIII] 산출물에 설계 패턴 적용하기

 

Chapter 11  객체지향 설계

01 설계 원리

02 패키지 다이어그램

1 패키지 다이어그램 생성

2 계층화된 아키텍처 생성

03 자료 구조 설계

04 사용자 인터페이스 설계

1 인터페이스 설계 절차

2 인터페이스 클래스 설계

05 물리 구조 설계

1 배치 다이어그램 작성

2 기술 환경 명세

연습문제

[실습 11-1] 클래스 다이어그램에서 데이터베이스 스키마 설계하기

[실습 11-2] 시스템의 물리적 아키텍처 이해하기

[프로젝트 IX] 대상 시스템 설계하기

 

Chapter 12 인스펙션

01 인스펙션의 중요성

02 인스펙션 참여자

03 인스펙션 절차

1 스텝 1: 계획 활동

2 스텝 2: 오버뷰 활동

3 스텝 3: 준비 활동

4 스텝 4: 인스펙션 미팅 활동

5 스텝 5: 제3의 시간 활동

6 스텝 6: 재작업 활동

7 스텝 7: 후속 활동

8 인스펙션에 대한 평가

04 소프트웨어 리뷰 활동

연습문제

[실습 12-1] 산출물 오류 타입 정의하기

[프로젝트 X] 프로젝트 산출물에 대한 인스펙션 수행하기

 

Chapter 13 코딩

01 프로그래밍 언어 유형

02 좋은 코딩 기법

1 좋은 소프트웨어 코드의 6가지 공통점

2 좋은 코드 작성을 위한 규칙

03 코딩 가이드라인

1 MISRA-C 코딩 표준

2 시큐어 코딩

04 오픈 소스 기반 개발

1 오픈 소스 기반 개발 프로세스

2 오픈 소스 활용 시 주의 사항

3 오픈 소스 활용 환경

연습문제

[실습 13-1] 프로그래밍 언어 조사하기

[실습 13-2] 좋은 소프트웨어 코드의 특징 살펴보기

[실습 13-3] 내 코딩 스타일 되돌아보기

[실습 13-4] 오픈 소스 검색 도구 설치해보기

[프로젝트 XI] 프로젝트 대상 시스템 코딩하기

 

Chapter 14 화이트박스 테스트

01 테스트 개요

02 코드 기반 테스트 케이스 생성 기법

1 제어 흐름 그래프

2 경로 기반 테스트 케이스 생성

03 오류 기반 테스트

04 동적 심볼릭 테스트

1 기호 실행

2 콘콜릭 실행

연습문제

[실습 14-1] 제어 흐름 그래프 작성해보기

[실습 14-2] 선택 정렬 알고리즘에 대한 분기 커버리지 찾기

[프로젝트 XII] 프로젝트 개발 코드에 대하여 화이트박스 테스트 실행하기

 

Chapter 15 블랙박스 테스트

01 블랙박스 테스트 개요

02 기능 기반 테스트 케이스 생성 기법

1 동치 분할 기법

2 경계치 커버리지 분석

3 특수치 커버리지 분석

4 원인 결과 커버리지 분석

5 블랙박스 테스트 케이스 생성 예제

03 시나리오 기반 테스트

1 테스트 시나리오 생성 방법

2 테스트 시나리오 생성 예제

3 아웃라인 방법에 의한 테스트 케이스 생성

4 유스 케이스 방법에 의한 테스트 케이스 생성

04 테스트 단계

1 단위 테스트

2 통합 테스트

3 시스템 테스트

4 인수 테스트

5 회귀 테스트

연습문제

[실습 15-1] 동치 분할하기

[실습 15-2] 의사결정 테이블 생성해보기

[프로젝트 XIII] 프로젝트 개발 코드에 대하여 블랙박스 테스트 실행하기

 

Chapter 16 소프트웨어 개발 적용 기술

01 형상 관리

1 형상 관리 정의

2 형상 관리 절차

02 코드 리팩토링

3 관점지향 프로그래밍

4 탐색기반 소프트웨어 공학

1 탐색기반 소프트웨어 공학의 의미

2 탐색기반 소프트웨어 공학의 적용

연습문제

[실습 16-1] 형상 관리를 위한 산출물 이름 체계 정하기

[실습 16-2] 코드 리팩토링이 필요 없는 클린 코드의 조건 알아보기

[실습 16-3] 관점지향 프로그래밍에서 어드바이스 이해하기

[실습 16-4] 솔루션 탐색을 위한 유전 알고리즘 이해하기

Appendix 문서 틀

  • 첫번째 리뷰어가 되어주세요.
  • 결제하기
    • 문화비 소득공제 가능

    도서구입 안내

    <한빛아카데미> 도서는 한빛 홈페이지에서 더 이상 판매를 하지 않습니다. 도서 구입은 인터넷 서점을 이용하시기 바랍니다. 양해바랍니다.

    리뷰쓰기

    닫기
    * 도서명 :
    IT CookBook, 소프트웨어 공학 이론과 실제
    * 제목 :
    * 별점평가
    * 내용 :

    * 리뷰 작성시 유의사항

    글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

    1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
    2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

    오탈자 등록

    닫기
    * 도서명 :
    IT CookBook, 소프트웨어 공학 이론과 실제
    * 구분 :
    * 상품 버전
    종이책 PDF ePub
    * 페이지 :
    * 위치정보 :
    * 내용 :

    도서 인증

    닫기
    도서명*
    IT CookBook, 소프트웨어 공학 이론과 실제
    구입처*
    구입일*
    부가기호*
    부가기호 안내

    * 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

    * 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

    * 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

    닫기

    해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
    장바구니로 이동하시겠습니까?

    자료실