홈 > 강의소개
소프트웨어공학
박길식 교수
동국대학교 대학원 컴퓨터공학과 박사(인공지능)
동국대 인공지능협업센터 연구교수
동국대학교 대학원 컴퓨터공학과 박사(인공지능)
동국대 인공지능협업센터 연구교수
동국대학교
삼성전자 인재개발원
현) 유니와이즈 전임교수
AI가 이끄는 스마트한 학습 경험, AI 튜터와 함께 더 빠르고, 더 깊게 학습하세요.
긴 강의 내용을 AI가 핵심만 요약하여 복습 시간을 단축시킵니다.
강의에서 가장 중요한 키워드와 개념을 자동으로 추출해 제공합니다.
학습한 내용을 바탕으로 AI가 생성한 퀴즈를 풀며 이해도를 점검합니다.
모르는 부분을 24시간 언제든 AI 튜터에게 질문하고 답변을 받습니다.
총 10개 챕터, 42강으로 구성되어 있습니다.
| 제목 | 강의시간 | 상세내용 |
|---|---|---|
| 1장. 소프트웨어공학 개요 | ||
|
[1강] 소프트웨어의 중요성 (1)
|
0:
35:
47
|
|
|
소프트웨어의 중요성 및 소프트웨어공학 개요
• 소프트웨어공학 및 라이프사이클: 요구 분석부터 유지보수까지 전 과정을 체계적으로 관리하여 개발 프로세스를 최적화하는 공학적 접근법 • 소프트웨어 유지보수성과 품질: 전체 비용의 약 60%를 차지하는 유지보수 단계 효율화를 위한 재사용성 및 코드 간결성 확보 전략 • 소프트웨어 개발 프로세스 모형: 프로젝트 환경별 표준화된 제작 지침을 제공하여 시스템 결함 방지 및 개발 성공률 제고 |
||
|
[2강] 소프트웨어의 중요성 (2)
|
0:
52:
57
|
|
|
소프트웨어의 정의 특성 및 시스템 분류
• 소프트웨어 정의 및 고유 특성: 프로그램과 유무형 정보를 포함하는 광의적 실체이자 비가시성·복잡성·변경성 기반의 논리적 요소 구조 정리 • 소프트웨어 분류 체계: 하드웨어 제어용 시스템 소프트웨어와 사용자 업무용 응용 소프트웨어 및 개발 단계별 유형 분류 • 정보 및 제어·탑재 시스템: 조직 의사결정을 지원하는 MIS와 실시간성·신뢰성이 필수적인 임베디드 기반 제어 시스템의 기능적 명세 및 활용 범주 분석 |
||
|
[3강] 소프트웨어 위기와 소프트웨어 공학
|
0:
31:
58
|
|
|
소프트웨어 위기와 소프트웨어 공학의 정의 및 구성 요소
• 소프트웨어 위기: 수요·공급 격차에 따른 비용 초과, 일정 지연, 품질 저하 및 유지보수 난항의 총체적 현상 • 소프트웨어 공학 정의: 과학적·수학적 원리를 적용한 고품질 소프트웨어의 경제적 생산과 생산성 극대화 목표 • 핵심 구성 요소 및 방법론: 방법·도구·프로세스·패러다임 체계와 유연한 변화 대응을 위한 애자일(XP) 핵심 가치 |
||
|
[4강] 좋은 소프트웨어의 조건
|
0:
48:
04
|
|
|
소프트웨어 품질 특성 및 개발 프로세스 성숙도 요약
• 소프트웨어 품질 속성: 정확성·신뢰성·강인성·성능 등 이해관계자 요구에 부합하는 기능적·비기능적 특성 체계 정의 • 프로세스 성숙도 모델: CMM(Capability Maturity Model) 및 ISO 기반의 공정 표준화를 통한 개발 절차의 품질 관리와 생산성 최적화 • 시스템 안정성 및 효율성: 라이브러리 재사용, 예외 처리(try-catch), 알고리즘 시간 복잡도 설계를 통한 유지보수성 및 실행 성능 확보 |
||
|
[5강] 소프트웨어 개발 프로세스 모형 (1)
|
0:
48:
34
|
|
|
소프트웨어 개발 프로세스 모형 및 폭포수 모형의 이해
• 소프트웨어 개발 프로세스 및 라이프 사이클: 요구 분석부터 유지보수까지의 체계적 절차와 건축 프로세스 비유를 통한 개발 주기 정의 • 폭포수 모형(Waterfall Model): 하향식 순차 진행 방식과 단계별 명확한 산출물 기반의 전통적 개발 프로세스 구조 • 개발 산출물 및 검증 체계: DFD·자료 사전 중심의 요구 분석과 알파·베타 테스트를 통한 시스템 기능 및 성능 점검 |
||
|
[6강] 소프트웨어 개발 프로세스 모형 (2)
|
0:
44:
55
|
|
|
소프트웨어 개발 프로세스 모형 프로토타이핑 점증적 나선형 V모형
• 프로토타이핑 및 점증적 모형: 시제품 기반의 요구사항 구체화와 기능별 순차 릴리스를 통한 시장 조기 선점 및 개발 위험 완화 • 나선형 모형: 계획·위험 분석·개발·평가의 4단계 반복 수행을 통한 대규모 시스템의 위험 관리 및 점진적 완성도 제고 • V 모형: 개발 단계와 테스트 계층(단위·통합·시스템·인수)의 유기적 매핑을 통한 소프트웨어 안정성 확보 및 검증 체계 구축 |
||
|
[7강] 소프트웨어 개발 프로세스 모형 (3)
|
0:
40:
53
|
|
|
소프트웨어 개발 영향 요소 및 CMM 성숙도 모델 분석
• 소프트웨어 개발 영향 요소: 의사소통 구조·프로젝트 규모·Brooks의 법칙(Mythical Man-Month)을 통한 생산성 및 의사소통 비용 관리 체계 정의 • 프로그래머 역량 및 노동집약성: Sackman의 실험 기반 개인별 생산성 격차 분석 및 인적 의존도를 낮추기 위한 공학적 접근 원리 정리 • CMM 성숙도 모델: 초기 단계(Initial)부터 표준화(Defined)를 거쳐 지속적 개선(Optimizing)에 이르는 5단계 공정 능력 평가 체계 요약 |
||
| 2장. 계획 | ||
|
[8강] 프로젝트 관리
|
0:
47:
07
|
|
|
소프트웨어 공학 프로젝트 관리 및 계획 수립 전략
• 프로젝트 관리 체계: 조직·계획·일정 관리 활동을 통한 인적 자원 운영 및 경제적 효율성 극대화 • 소프트웨어 특성 대응: 무형성·유연성·비표준화 기반의 리스크 파악과 재사용성을 통한 안정성 확보 • 프로젝트 계획 및 위험 분석: 소작업 정의·비용 예측·위험 대책 수립을 통한 소프트웨어 개발 계획서 도출 |
||
|
[9강] 문제 정의
|
0:
23:
28
|
|
|
소프트웨어 공학 프로젝트 계획 및 문제 정의와 타당성 분석
• 문제 정의 및 원칙: 고객 관점의 용어 정의·범위 확정·의사소통 오류 방지를 위한 요구사항 기술 • 문제 정의 절차: 현행 시스템 조사·이해관계자 면담·기능 및 제약 사항 도출을 통한 목표 수립 • 3대 타당성 분석: 경제적 수익성·기술적 구현 가능성·법적 저작권 및 규제 준수 여부의 객관적 검증 |
||
|
[10강] 일정 계획 (1)
|
0:
49:
45
|
|
|
소프트웨어공학 일정 계획 및 CPM 네트워크 분석
• WBS 및 일정 계획: 계층적 작업 분해를 통한 소작업 식별과 간트 차트 기반의 일정 구체화 절차 수립 • CPM 네트워크 구조: 노드와 에지를 활용한 방향성 그래프 기반의 작업 선후 관계 및 소요 기간 시각화 • 임계 경로 및 일정 분석: 최장 경로(Critical Path) 산출을 통한 프로젝트 소요 기간 결정 및 일정 지연 리스크 관리 |
||
|
[11강] 일정 계획 (2)
|
1:
02:
40
|
|
|
소프트웨어 공학 일정 계획 및 COCOMO 노력 추정
• 간트 차트(Gantt Chart): 소작업별 시작·종료 시점과 예비시간(Slack Time) 시각화를 통한 프로젝트 진척도 관리 및 일정 제어 • 소프트웨어 노력 추정: 인건비(MM) 및 규모(LOC·FP) 중심의 비용 산출과 제품 복잡도·개발자 역량 기반의 변동 요인 분석 • COCOMO 및 COCOMO II 모델: 프로젝트 유형별(단순·중간·임베디드) 산정 공식 적용과 개발 단계별(1~3단계) 정밀 보정 프로세스 |
||
|
[12강] 기능 점수. 조직. 위험 분석. 계획서 작성
|
0:
52:
13
|
|
|
소프트웨어 규모 산정 기능 점수와 프로젝트 조직 및 위험 관리 계획
• 기능 점수(Function Point) 산정: 입력·출력·질의·파일·인터페이스 기반 소프트웨어 규모 정량화 및 언어별 가중치 적용 산출 원리 • 프로젝트 조직 및 인력 관리: 중앙집중·분산·혼합형 팀 구조 특성 분석 및 브룩스의 법칙에 따른 적정 팀 규모와 운영 효율화 노하우 • 위험 대응 및 프로젝트 계획: 인력·요구변경·지연 리스크 식별과 프로토타이핑·WBS 기반 체계적 수행 계획 수립 및 관리 기법 |
||
| 3장. 요구 분석 | ||
|
[13강] 요구 분석 (1)
|
0:
45:
03
|
|
|
소프트웨어공학 요구 분석 정의 및 명세화 과정
• 요구 결정 및 분석 과정: 문제 분석·정의·프로토타이핑을 통한 시스템 기능 및 제약 조건의 체계적 설정과 타당성 검토 • 기능적·비기능적 요구사항: 시스템 제공 서비스 중심의 기능적 요소와 성능·보안·신뢰도 등 품질 기반 비기능적 요소의 분류 및 정의 • 요구 추출 및 명세화: DFD·자료 사전 기반의 처리 요구 정의와 사용자·개발자 간 합의를 위한 요구 분석서 작성 및 인수 기준 수립 |
||
|
[14강] 요구 분석 (2)
|
0:
59:
45
|
|
|
소프트웨어 공학 요구 분석 방법론 및 구조적 분석 자료 흐름도(DFD) 원리
• 요구 분석 및 구조적 분석 방법론: 분할 정복 원리에 기반한 요구사항의 계층화와 프로세스 중심 하향식 시스템 분석 체계 • 자료 흐름도(DFD) 구성 요소: 처리·흐름·저장소·단말 기호를 활용한 데이터 변환 과정 및 시스템 논리적 흐름 도식화 • DFD 작성 및 검증 원칙: 배경도 중심의 단계적 상세화, 상하위 자료 균형 유지 및 명확한 명칭 부여를 통한 분석 정확도 확보 |
||
|
[15강] 요구 분석 (3)
|
0:
53:
30
|
|
|
소프트웨어공학 요구 분석 자료사전 및 소단위 명세서
• 자료사전(Data Dictionary): DFD 내 자료 요소를 특수 기호(=, +, |, { }, [ ])로 정의하여 데이터 구조 명세 및 모호성 제거 • 소단위 명세서(Mini-spec): 최하위 프로세스의 처리 기능을 구조적 영어와 의사 결정표를 활용하여 논리적 로직 상세 기술 • 요구 분석 도구(DFD): 배경도와 레벨링을 통해 시스템 외부 엔티티, 프로세스, 데이터 저장소 간의 연계 구조 가시화 |
||
|
[16강] 요구 분석 (4)
|
0:
38:
36
|
|
|
소프트웨어공학 요구 분석 소단위 명세서 및 자동화 도구
• 소단위 명세서(Mini-Spec) : 자료 흐름도 프로세스의 세부 로직을 명사형 문장과 제어 구조로 기술하여 코드 변환이 가능한 구체적 설계 제공 • 요구 분석 자동화 도구 : 모델링 도구·일관성 검사기·프로토타이핑 기능을 통합하여 요구 사항의 모순 제거 및 시각적 검증 수행 • 요구 분석서 평가 및 검증 : 무결성·일관성·추적성을 기준으로 명세서의 완성도를 측정하며 테스트 사례와 시스템 모형 제작을 통한 신뢰성 확보 |
||
| 4장. 설계 | ||
|
[17강] 설계 (1)
|
0:
56:
22
|
|
|
소프트웨어공학 설계 원리와 구조적 설계 기법 요약
• 소프트웨어 설계 체계: 시스템 구조를 정의하는 구조 설계와 알고리즘·UI 등 내부 로직을 결정하는 상세 설계로 구분 • 설계 4대 원리 및 품질 지표: 추상화·정보 은닉·단계적 분해·모듈화를 기반으로 응집도 극대화 및 결합도 최소화 실현 • 구조적 설계 기법: 시스템 구조도를 통한 모듈 간 인터페이스 정의 및 데이터 흐름 중심의 하향식 세분화 수행 |
||
|
[18강] 설계 (2)
|
0:
37:
53
|
|
|
소프트웨어 설계 변환 분석 및 처리 분석
• 변환 분석: 자료 흐름도(DFD)를 입력·변환·출력 흐름으로 분할하여 최상위 시스템 구조를 도출하는 설계 기법 • 처리 분석: 다중 자료 흐름 기반의 트랜잭션 중심 처리 구조 설계 및 ATM 인증·인가 절차 적용 방법론 • 시스템 구조도 및 모듈화: 메인 함수·라이브러리 기호를 활용한 기능 단위 정의 및 검증된 모듈 재사용을 통한 설계 최적화 |
||
|
[19강] 설계 (3)
|
0:
32:
16
|
|
|
소프트웨어 설계 평가 기준과 모듈 응집도 및 결합도 분석
• 모듈 응집도(Cohesion): 내부 구성 요소 간 관련성 정도로 기능적·순차적·교환적 등 7단계 분류 및 독립성 극대화 원칙 • 모듈 결합도(Coupling): 모듈 간 상호 의존성 정도로 자료·스탬프·제어 등 5단계 분류 및 모듈 간 결합 최소화 지향 • 설계 최적화(Design Heuristics): 팬아웃 최소화, 계층적 영향권 관리, 자료구조 중심의 독립적 모듈 구조 구축 전략 |
||
|
[20강] 설계 (4)
|
0:
37:
35
|
|
|
소프트웨어 아키텍처 스타일 및 알고리즘 설계 핵심 전략
• 소프트웨어 아키텍처 스타일: 저장소·MVC·클라이언트 서버·계층·파이프 필터 구조별 시스템 설계 원칙 및 서브시스템 운용 방식 • 알고리즘 명세 기법: 의사 코드(Pseudo Code)와 흐름도를 활용한 모듈별 세부 동작 기술 및 로직 구현 표준화 • 알고리즘 효율성 분석: Big O 표기법 기반의 시간 복잡도 산출 및 데이터 규모별 최적 성능 확보 전략 |
||
|
[21강] 설계 (5)
|
0:
59:
51
|
|
|
소프트웨어 설계 알고리즘 기술 및 사용자 인터페이스 설계 요약
• 알고리즘 명세 기법: NS-도표의 제어 구조 시각화와 의사 코드·의사 결정표를 활용한 논리 구조 및 수행 절차의 정형화 • 자료구조 설계 원칙: 정보 은닉을 통한 데이터 캡슐화 및 사용자 정의 타입을 활용한 자료 추상화 기반의 무결성 확보 • UI 및 시스템 설계: 사용자 숙련도별 맞춤형 인터페이스 방식 적용과 시스템 구조·모듈 세부 사양을 포함한 표준 설계서 구성 |
||
| 4장. 객체지향기초 | ||
|
[22강] 객체지향기초 (1)
|
0:
56:
34
|
|
|
소프트웨어공학 객체지향 기초 및 특징 분석
• 객체지향 패러다임 : 절차지향의 한계를 극복하는 자료·함수 결합 기반의 시스템 구조와 소프트웨어 재사용성·신뢰성 확보 원리 • 객체지향 핵심 특징 : 캡슐화(정보 은닉), 상속(기능 확장), 다형성(오버라이딩·오버로딩)을 통한 시스템 유연성 및 개발 효율성 극대화 • 추상화 및 UML 모델링 : 클래스·객체 인스턴스화 중심의 데이터 추상화와 UML을 활용한 언어 독립적 설계 및 구현 매핑 프로세스 |
||
|
[23강] 객체지향기초 (2)
|
0:
38:
48
|
|
|
소프트웨어공학 객체지향 기초 및 핵심 원리
• 객체와 클래스: 상태·행위·정체성을 가진 실체인 객체와 이를 정의하는 추상화 템플릿인 클래스의 구조 및 인스턴스화 원리 정리 • 캡슐화와 정보 은닉: 접근 제어자(public, private, protected)를 활용한 데이터 보호 및 모듈의 독립성을 보장하는 블랙박스 구조 형성 • 상속과 다형성: Is-a 관계 기반의 계층적 재사용(상속)과 오버라이딩·오버로딩을 통한 유연한 오퍼레이션 확장 및 코드 효율화 구현 |
||
|
[24강] 객체지향기초 (3)
|
0:
25:
25
|
|
|
소프트웨어공학 객체지향 프로세스 및 RUP 방법론 핵심 요약
• 객체지향 프로세스 및 분석 관점: 정적·동적·제한적 관점 기반의 높은 일관성 유지 및 사용 사례(Use Case) 중심의 요구 추출 체계 • 단계별 설계 및 테스트 전략: 시스템·객체 설계 모형 변환 및 단위·통합·시스템·인수 테스트로 이어지는 계층적 검증 구조 • RUP(Rational Unified Process): 개념정립·전개·구축·전환 4단계를 통한 반복적·점증적 개발 및 초기 위험 관리 중심의 프레임워크 운용 |
||
|
[25강] 객체지향기초 (4)
|
0:
53:
11
|
|
|
소프트웨어 공학 객체지향 기초 UML 모델링 및 다이어그램 핵심 요약
• UML 정의 및 표준 : 객체지향 분석·설계를 위한 표준화된 모델링 언어 정립 및 언어 독립적 가시화·명세화 기능 수행 • UML 다이어그램 체계 : 정적 구조(클래스)와 동적 행위(순차·상태·액티비티) 및 기능(사용 사례) 관점의 9가지 핵심 모델링 도구 구성 • UML 시스템 개발 모형 및 표기법 : 기능적·객체·동적 모형 분류와 가시성 심볼(+, -, #) 기반의 클래스 세부 구조 설계 표준화 |
||
|
[26강] 객체지향기초 (5)
|
0:
50:
20
|
|
|
소프트웨어 공학 객체지향 기초 UML 다이어그램 활용
• 사용사례 및 클래스 다이어그램: 사용자 요구사항 기반 외부 기능(액터·포함·확장) 정의와 시스템 정적 구조(속성·연관·일반화) 추상화 및 골격 설계 • 순서 다이어그램: 객체 간 메시지 교환을 시간 흐름에 따라 시각화하여 상호작용 패턴 분석 및 클래스 오퍼레이션 도출 • 상태 및 액티비티 다이어그램: 객체 내부 상태 전환과 시스템 작업 흐름(동기화·분기) 명세를 통한 세부 동작 및 메소드 제어 로직 구체화 |
||
|
[27강] 객체지향기초 (6)
|
0:
29:
45
|
|
|
객체지향 설계와 구현의 매핑 및 관계 유형 분석
• 객체지향 매핑 모델: 설계 모델링의 연관·전체부분·상속·사용 관계를 실제 프로그래밍 언어로 사상하는 절차 • 구조적 관계 구현: 연관·구성·집합 관계의 인스턴스 변수 정의 및 생명주기 종속성에 따른 UML 표기법 최적화 • 상속 및 사용 기법: 클래스 계층의 일반화 구조 구현과 메소드 매개변수를 활용한 일시적 의존 관계 처리 |
||
| 6장. 구현 | ||
|
[28강] 구현 (1)
|
0:
45:
25
|
|
|
소프트웨어공학 구현 원칙과 프로그래밍 언어의 선택 특성 분석
• 구현 원칙 및 품질 관리: 설계 모델 일치성·가독성 확보를 통한 유지보수 효율성 극대화 및 소프트웨어 생애 주기 비용 최적화 원리 • 실행 환경 및 오류 체계: 구문/런타임 에러의 정의적 구분, 목적 코드의 기계 종속성 극복을 위한 JVM 기반 이식성 확보 구조 • 언어 선정 및 설계 특성: 직교성(Orthogonality)·단순성·구문 일관성에 기반한 프로젝트 목적 및 분야별 프로그래밍 언어 최적화 기준 |
||
|
[29강] 구현 (2)
|
0:
32:
56
|
|
|
소프트웨어공학 구현 단계의 제어 구조와 구조적 프로그래밍 핵심 요약
• 제어 구조 설계: 선택 구조의 유연한 타입 정의 및 반복 제어 변수의 수정 제한과 유효 범위 관리 원칙 • 자료형 및 재사용성: 정적·동적 배열과 사용자 정의 자료구조(Record) 활용 및 캡슐화를 통한 독립적 모듈 구성 • 구조적 프로그래밍 철학: 단일 입구·단일 출구(Proper Program) 준수와 Goto 문 배제를 통한 선형적 논리 흐름 확보 |
||
|
[30강] 구현 (3)
|
0:
36:
46
|
|
|
소프트웨어공학 구현 단계 코딩 스타일 및 문서화 전략
• 코딩 스타일 및 명명 규칙: 헝가리안 표기법 적용과 일관된 명칭 부여를 통한 가독성 증대 및 명확성 중심의 코드 작성 원칙 • 제어 구조 및 로직 최적화: 효율적인 If-else 배치, 들여쓰기를 활용한 시각적 구조화 및 모듈별 단일 기능 수행을 통한 복잡도 감소 • 문서화 및 방어적 프로그래밍: 헤더 주석 기반의 원시코드 체계화와 한계값 검사를 포함한 예외 처리를 통해 소프트웨어 유지보수성 및 신뢰성 확보 |
||
| 7장. 객체지향분석설계 | ||
|
[31강] 사용사례
|
0:
43:
44
|
|
|
객체 지향 분석 설계 및 사용사례 모델링
• 객체 지향 3대 모델: 기능·객체·동적 모델 분류 및 사용사례·클래스·상태 다이어그램을 통한 시스템 구조의 다각도 분석 • 사용사례 모델링 및 구성 요소: 액터와 시스템 간의 다이얼로그 및 시나리오 구체화를 통한 사용자 중심 요구사항 정의 및 구조화 • 포함(Include) 및 확장(Extend) 관계: 공통 기능의 중복 제거와 예외적 상황의 선택적 추가를 통한 모델링 구조 최적화 및 재사용성 향상 |
||
|
[32강] 객체 모델링. 동적 모델링
|
0:
54:
53
|
|
|
객체 및 동적 모델링의 이해와 설계 기법
• 클래스 모델링 기법: 엔티티·경계·제어 유형 분류를 통한 시스템 정적 구조 정의 및 객체 식별 • 동적 모델링 설계: 상호작용·상태·액티비티 다이어그램 기반 객체 간 메시지 전달 및 상태 전환 명세 • 연관 관계 및 속성: 이름·역할·다중도 기반 객체 간 연결 구조 설정 및 개별 특성 데이터 정의 |
||
|
[33강] 시스템 설계
|
0:
26:
47
|
|
|
시스템 설계 정의 및 평가 기준과 UML 다이어그램 활용
• 시스템 설계 프로세스: 분석 모델의 플랫폼 변환, 서브시스템 분할 및 성능·비용·신뢰성 중심의 비기능적 설계 목표 수립 • 설계 평가 및 최적화: 유지보수성(확장성·이식성) 강화로 전체 비용 절감 및 성능(응답속도·처리량)·강인성·보안 지표 관리 • UML 구조 다이어그램: 패키지 다이어그램의 논리적 추상화와 배치 다이어그램 기반 컴포넌트·하드웨어 물리적 매핑 기술 |
||
|
[34강] 객체 설계. 디자인 패턴
|
0:
52:
48
|
|
|
소프트웨어 공학 객체 설계 및 디자인 패턴 활용 전략
• 객체 설계 및 서비스 상세화: 분석 모델의 구현 객체 전환, 서비스 정의(API), 부품 재사용 및 일반화 기반 시스템 최적화 절차 • 프레임워크 기술 체계: 상속 기반의 화이트박스와 위임 기반의 블랙박스 분류를 통한 프로그램 재사용성 및 확장성 확보 • 디자인 패턴 및 GoF 분류: 생성·구조·행위 중심의 검증된 설계 솔루션 적용을 통한 소프트웨어 신뢰도 및 유지보수 효율 극대화 |
||
| 8장. 테스트 | ||
|
[35강] 테스트 (1)
|
0:
45:
40
|
|
|
소프트웨어공학 테스트 정의 및 원리와 리그레션 테스트
• 소프트웨어 테스트 및 V-모형: 결함 검출 중심의 파괴적 검증 절차와 SDLC 단계별 대응 구조 분석 • 테스트 유형 및 기법: 알파·베타 테스트 기반 사용자 검증과 화이트박스·블랙박스 기법을 활용한 로직 및 기능 점검 • 리그레션 테스트: 코드 수정 및 기능 추가 후 기존 시스템 안정성 확보를 위한 테스트 케이스 재실행 및 회귀 검증 |
||
|
[36강] 테스트 (2)
|
0:
28:
26
|
|
|
소프트웨어 공학 테스트 유형 및 기법 상세 분석
• 테스트 체계 및 단계: 확인(Validation)·검증(Verification) 정의 및 단위·통합·인수 기반의 단계별 품질 보증 절차 수행 • 테스트 오라클 및 하네스: 예상 결과 판정 기준(True·Sample·Consistent) 및 실행 지원 환경 구축을 통한 테스트 신뢰성 확보 • 화이트·블랙박스 테스트: 내부 논리 구조(구문·분기·루프) 커버리지 분석 및 요구사항 명세 중심의 기능적 입출력 검증 |
||
|
[37강] 테스트 (3)
|
0:
37:
35
|
|
|
소프트웨어공학 자료 중심 및 통합 테스트 전략
• 자료 중심 테스트: 자료구조와 알고리즘의 정합성 확인 및 선형·비선형 구조별 경계값 분석을 통한 오류 검출 원리 • 통합 테스트 전략: 모듈 간 인터페이스 검증을 위해 스텁과 드라이버를 활용하는 하향식·상향식 및 연쇄식 통합 기법 • 인수 및 자동화 테스트: 사용자 중심의 알파·베타 테스트 수행과 정적·동적 분석 도구를 활용한 시스템 품질 보증 절차 |
||
| 9장. 유지보수 | ||
|
[38강] 유지보수 특성
|
0:
44:
03
|
|
|
소프트웨어공학 유지보수 정의 종류 및 비용 예측 모델
• 유지보수 4대 유형: 정정·개작·기능 개선·예방 보수의 정의 및 비중(50%) 중심의 분류 체계 정리 • 유지보수 공정 및 검증: UML 기반 프로그램 이해, 변경 영향 분석 및 리그레션 테스트(Regression Test) 수행 절차 • 유지보수 비용 예측 모델: Belady-Lehman 및 COCOMO 모델을 활용한 복잡도·친숙도·유지보수 비율 산정 원리 |
||
|
[39강] 형상 관리. 소프트웨어 척도. 유지보수 방법 및 도구
|
0:
41:
11
|
|
|
소프트웨어 형상 관리 및 복잡도 척도와 유지보수 기법
• 소프트웨어 형상 관리(SCM): Baseline 설정을 통한 변경 통제 절차 및 분석서·코드·환경 설정의 통합 관리 체계 • 소프트웨어 복잡도 측정 척도: McCabe 사이클로매틱 수 산출 및 Halstead 연산자·피연산자 기반 정량적 품질 분석 방법론 • 유지보수 기법 및 분석 도구: 수정 절차 표준화와 Call Graph·DFG·회귀 테스트기를 활용한 코드 분석 및 안정성 검증 |
||
| 10장. 품질 보증 | ||
|
[40강] 품질 보증 활동
|
0:
35:
23
|
|
|
소프트웨어 품질 보증 및 프로세스 관리 전략
• 소프트웨어 품질 특성 및 ISO 9126: McCall 모델 기반 프로덕트 운영·전환·개정과 6대 국제 표준 요소를 통한 정량적 품질 평가 체계 구축 • 소프트웨어 품질 보증(SQA) 및 프로세스 관리: 산출물과 개발 절차의 요구사항 적합성 보장 및 CMM·SPICE 모델 활용을 통한 프로세스 우수성 확보 • 품질 보증 조직 및 IEEE 730 계획: 개발 부서로부터 독립된 QA 조직 운영과 형상 관리·테스트 절차 등 체계적인 품질 관리 표준 수립 |
||
|
[41강] 프로세스 품질
|
0:
41:
50
|
|
|
소프트웨어 프로세스 품질 관리 및 CMM·SPICE 평가 모델
• 소프트웨어 프로세스 품질: 인력·기술·절차·도구가 통합된 작업 체계 및 제품 품질을 결정하는 핵심 관리 요소 • CMM 성숙도 모델: 조직의 프로세스 수준을 초기(L1)부터 정량적 관리(L4) 및 최적화(L5)까지 5단계로 평가하는 1차원 구조 모델 • SPICE(ISO/IEC 15504): 프로세스 영역별 능력을 0~5단계로 구분하여 평가하는 2차원 구조의 국제 표준 프로세스 개선 모형 |
||
|
[42강] 프로덕트 품질. 인스펙션
|
0:
20:
34
|
|
|
소프트웨어 프로덕트 품질 측정 및 인스펙션 기법의 이해
• 프로덕트 품질 측정: 응집도·결합도·복잡도 기반의 내부 품질 지표 가시화 및 사용자 관점 외부 품질 메트릭 정의 • Fagan 인스펙션 절차: 계획·준비·회의·후속 조치 단계를 통한 결함 탐색과 해결책 논의 금지 원칙 기반의 품질 보증 및 비용 절감 • 단계별 인스펙션 유형: 설계 명세 준수 확인과 컴파일 오류 제거 후 런타임 에러를 점검하는 코드 인스펙션의 세부 수행 방식 요약 |
||
박길식 교수님
소프트웨어공학