목 차
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 모듈화와 기술 부채Techn