L5 - Architectural Design (아키텍처 디자인)
- Architectural patterns
- Pipeline and filter architecture
- Model-View-Controller(MVC) architecture
- Control Styles
- 중앙 집중식 제어
- 콜-리턴 모델
- 관리자 모델
- 이벤트 기반 제어
- 브로드캐스트 모델
- 인터럽트 기반 모델
- 중앙 집중식 제어
- Software architecture evaluation
L6 - Software & System Modeling UML
- 소프트웨어 모델링
- UML(Unified Modeling Language)
- Relationships
- Dependency(의존 관계)
- Association(연관 관계)
- Generalization(일반화 관계)
- Aggregation(약한 집합)
- Composition(강한 집합)
- Use case diagram(유스케이스 다이어그램)
- 유스케이스 모델링
- 시나리오
- 유스케이스 relationships
- Include(포함)
- Extend(확장)
- Generalization(일반화)
- Class diagram(클래스 다이어그램)
- 클래스 relationships
- Dependency(의존 관계)
- Association(연관 관계)
- Inheritance(상속)
- Aggregation(약한 집합)
- Composition(강한 집합)
- Interface(인터페이스), Realization
- 추상 클래스
- Package diagram(패키지 다이어그램)
- 클래스 뷰 (MVC architecture)
- Entity class (= model)
- Boundary class (= view)
- Control class (= controller)
- 클래스 relationships
- Sequence diagram(시퀀스 다이어그램) & Communication diagram(커뮤니케이션 다이어그램)
- 시퀀스 다이어그램
- 커뮤니케이션 다이어그램
- Activity diagram
- State chart diagram
- Component diagram & Deployment diagram
L7 - Object-Oriented Development Process using UML
- Object-Oriented SW Developing
- Inception(준비)
- Problem statement
- Use case diagram
- Flow of events
- Elaboration
- 초기 class diagram
- Sequence diagram
- Class diagram 수정
- 소프트웨어 아키텍처 결정
- Construction
- Transition(인도)
- Inception(준비)
L9 - Verification(검증), Validation(확인), Testing
1. Fundamentals of SW Test
- V-model: Verification(검증), Validation(확인), Review, Testing
- Verification(검증)
- Design phase verification
- Test phase verification
- Validation
- Review
- Testing
- Error --> Fault --> Failure
- Testing vs. Debugging
- Testing
- Debugging
- Confirmation testing
- Verification(검증)
- Test Process
- 단위 테스트(unit test)
- 드라이버(driver)
- 스터브(stub)
- 통합 테스트(integration test)
- 시스템 테스트
- 인수 테스트(acceptance test)
- 단위 테스트(unit test)
- Principles of Test
- Testing shows presence of defects.
- Exhaustive testing(버그가 없음을 증명하는 테스트) is impossible.
- Pesticide paradox
- Absence-of-errors fallacy
- Context dependent
- Defect clustering
- Early testing
- Testing Capability Level (TMM: Test maturity level)
- 레벨1: 테스팅과 디버깅이 구분되지 않는 단계
- 레벨2: 테스팅과 디버깅이 구분되는 단계
- 레벨3: 표준 테스트 프로세스가 정의되는 단계
- 레벨4: 단계별로 verification(검증) & validation(확인) 작업을 통한 측정 데이터를 수집해서 품질을 측정하는 단계
- 레벨5: 지속적으로 개선 활동을 계획하고 추진하는 단계
2. Static Test (정적 테스트)
- 소프트웨어 디자인 & 구현
- 소프트웨어 디자인 원칙
- 소프트웨어 아키텍처 디자인
- 소프트웨어 유닛 디자인
- 정적 테스트
- Review
- 비공식적 리뷰
- 기술적 리뷰
- 워크스루
- Inspections
- 정적 분석
- 설계/코딩 작성 가이드라인 위반 검사
- 설계/코드 매트릭 측정
- 런타임 오류 가능성 검사
- Review
3. White-box Test
- Code coverage based test
- All path coverage
- All node(= statement) coverage
- Decision coverage
- Condition coverage
- Decision/Condition coverage
- Multiple condition coverage
- MC/DC(modified condition/decision) coverage
- Data-flow based test
- C-use
- P-use
- All-use
- Mutation test
- Mutant score
4. Black-box Test
- 동치분할(equivalence partitioning)
- 경계값 분석(boundary value analysis)
- 결정 테이블(decision table)
- 상태 기반 테스트(state-based test)
- All-state coverage
- All-edge coverage
- 조합 테스트(pair-wise test)
5. Experience-based Test, Defect-based Test, Gray-box Test
- Experience-based Test
- Defect-based Test
- Gray-box Test