한빛출판네트워크

대학교재

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

한빛아카데미

집필서

판매중

IT CookBook, 소프트웨어 공학 이론과 실제
좋아요: 4
  • 저자 : 홍장의
  • 출간일 : 2022-06-10
  • 페이지 : 528쪽
  • ISBN : 9791156646020
  • 물류코드 :4602
본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.

합계 : 33,000

  • 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 문서 틀

  •  

  • 내용이 없습니다.
<한빛아카데미> 도서구입은 인터넷서점을 이용하세요.
닫기

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