소프트웨어 공학 목차
- 소프트웨어(Software)
- 소프트웨어 공학(Software Engineering)
- 소프트웨어 개발(Software Development)
- SW Metrics
- 소프트웨어 위기(Software Crisis)
- 리만의 SW 변화원리(Lehman의 SW 변화원리)
- SWEBOK(Software Engineering Body of Knowledge)
- ISO/IEC 12207:2008
- 소프트웨어 분리발주
- 소프트웨어 분할발주
- 단계별 발주(구, 분할발주)
- 소프트웨어 발주 프로세스
- 정보제공 요청서(RFI, Request for Information)
- ISMP(Information System Master Plan)
- 제안요청서(RFP, Request for Proposal)
- 제안서(Proposal)
- 제안평가
- 소프트웨어 기술성 평가
- 소프트웨어 품질성능 평가시험(BMT)
- PoC(Proof of Concept)
- PT(Pilot Test)
- 가격평가
- 요구공학(Requirement Engineering)
- 요구사항(Requirements)
- 요구사항 분석
- 요구사항 도출
- 요구사항 관리(Requirement Management)
- 요구사항 검증(Requirement Verification)
- 요구사항 명세서(SRS, Software Requirement Specification)
- 소프트웨어 요구사항 명세서 평가
- 요구사항 추적성
- 요구사항 추적성 매트릭스(RTM, Requirement Traceability Matrix)
- 요구사항 추적표
- 정형기법
- Z명세(Z-스키마)
- 상태폭발
- 정형 검증(Formal Verification)
- 타당성 조사
- 소프트웨어 개발 생명주기(SDLC)
- IEEE 1471(ISO/IEC/IEEE 42010:2011)
- 콘웨이 법칙(Conway's Law)
- 소프트웨어 아키텍처 뷰(View)
- 소프트웨어 아키텍처 문서화(Software Architecture Document)
- 품질속성 시나리오
- 아키텍처 품질속성(Software Architecture Quality Attributes)
- 소프트웨어 아키텍처(Software Architecture)
- 소프트웨어 아키텍처 4+1 뷰
- 소프트웨어 아키텍처 패턴
- 소프트웨어 아키텍처 스타일
- 소프트웨어 아키텍처 드라이버
- 소프트웨어 아키텍처 평가
- CBAM(Cost Benefit Analysis Method)
- ATAM(Architecture Trade off Analysis Method)
- UI/UX(User Interface/User Experience)
- UI/UX 계획수립
- 디자인 스프린트(Design Sprint)
- 유틸리티 트리(Utility Tree)
- EIP(Enterprise Integration Pattern)
- 디자인 패턴(Design Pattern)
- 생성패턴(Creational Pattern)
- 팩토리 메서드 패턴(Factory Method Pattern)
- Template method 패턴
- 구조패턴(Construction Pattern)
- 행위패턴(Behavior Pattern)
- Facade Pattern(퍼사드 패턴)
- 어댑터 패턴(Adapter Pattern)
- Strategy Pattern
- Flyweight 패턴
- 옵저버 패턴(Observer Pattern)
- 서킷 브레이커(Circuit Breaker) 패턴
- 반응형 프로그래밍(Reactive Programming)
- 소프트웨어 개발방법론
- 반복적 개발 모델(Iterative Development Model)
- 나선형 모델(Spiral Model)
- 프로토타이핑 모델(Prototyping Model)
- JAD(Joint Application Design/Development)
- 정보공학 방법론
- V모델(V Model)
- 폭포수 모델(Waterfall Model)
- 구조적 개발방법론(Structured Programming)
- 객체지향(Object Oriented)
- 객체지향 방법론
- 객체지향 설계 5원칙
- Interface vs. Abstract Class
- 상속(inheritance)
- 위임(Delegation)
- 의존관계 역전의 법칙(DIP, Dependency Inversion Principle)
- 인터페이스 분리의 원칙(ISP, Interface Segregation Principle)
- 리스코프 치환원칙(LSP, Liskov Substitution Principle)
- 개방-폐쇄 원칙(OCP, Open Closed Principle)
- 단일책임의 원칙(SRP, Single Responsibility Principle)
- CBD(Component Based Development) 방법론
- TDD(Test Driven Development)
- 데브옵스(DevOps)
- 무중단 배포 기법
- Blue-Green 배포
- Canary 배포
- SRE(Site Reliability Engineering, 사이트 안전성 엔지니어링)
- CD(Continuous Delivery)
- On Demand Provisioning
- IaC(Infrastructure as Code)
- SPL(Software Product Line)
- 관점 지향 프로그래밍(AOP, Aspect Oriented software Programming)
- Core Asset
- 클린룸 모델(CleanRoom Model)
- RAD(Rapid Application Development)
- 애자일 방법론(Agile Method)
- XP(eXtreme Programming)
- Pair Programming
- FDD(Feature Driven Development)
- DDD(Domain Driven Design)
- 스크럼(scrum)
- 스크럼 마스터(Scrum Master)
- 스프린트 백로그(Sprint Backlog)
- 번다운 차트(burn down chart)
- 스크럼 미팅(Scrum Meeting)
- Daily Scrum Meeting
- Sprint Review
- Sprint Retrospective
- 임베디드 시스템(embedded System)
- 소프트웨어 테스트(software test)
- 테스트 레벨(Test Level)
- 단위 테스트(Unit Test)
- 통합 테스트(Integration Test)
- 시스템 테스트(System Test)
- 인수 테스트(Acceptance Test)
- 테스트 설계 기법
- 블랙박스 테스트(Black Box Test)
- 화이트 박스 테스트(White Box Test)
- 명세기반 기법(Specification-based Technique)
- 페어와이즈 테스팅(Pairwise Testing)
- Keyword Driven Testing
- 구조기반 테스트
- 경험기반 테스팅 기법
- 경계값 분석(Boundary Value Analysis)
- 구조기반 테스트 커버리지(Test Coverage)
- 상태 전이 테스트(State Transition Test)
- 스모크 테스트(Smoke Test)
- 퍼징 테스트(Fuzzing Test)
- 새너티 테스트(Sanity Test)
- 테스트 하네스(Test Harness)
- 테스트 드라이버(test driver)
- 테스트 스텁(test stub)
- 테스트 베드(Test Bed)
- 테스트 케이스(Test Case)
- 테스트 완료 조건(Test Exit Criteria)
- 탐색적 테스팅(Exploratory testing)
- 사용성(Usability)
- 사용성 테스트(Usability Test)
- 스크립트 테스트(script test)
- 뮤테이션 테스트(Mutation Test)
- 비버깅 테스트(Bebugging Test)
- 카오스 테스트(Chaos Test)
- 퍼즈 테스팅(Fuzz Testing)
- Concolic Execution/Concolic Testing
- 임베디드 시스템 테스트
- Record & Replay 테스트
- 백투백(Back-to-back) 테스트
- 크라우드 테스트(Crowd Testing)
- 테스트 자동화(Test Automation)
- 성능 테스트(performance test)
- 성능시험 결과 보고서
- 소스코드 커버리지(Source Code Coverage)
- MC/DC(Modified Condition/Decision Coverage)
- CMMi(Capability Maturity Model Integration)
- CMMi 2.0
- CMMi 연속적 표현(Continuous Representation) 모델 : Capability Level
- CMMi 단계적 표현(Staged Representation) 모델 : Maturity Level
- 소프트웨어 등급(Software Grade)
- 소프트웨어 품질(Software Quality)
- 소프트웨어 품질관리(Software Quality Management)
- 테스트 단계(시험단계) 품질관리
- ISO 25023
- 오픈소스 소프트웨어(OSS, Open Source Software)
- 오픈소스 소프트웨어 라이선스(OSS license)
- 오픈소스 컴플라이언스 (ISO/IEC 5230)
- 오픈소스 소프트웨어 라이선스 분류(허용적, 카피레프트)
- 오픈소스 소프트웨어 거버넌스(OSS Governance)
- 오픈소스 도입전략 및 전환절차
- 오픈소스 프로젝트 관리 소프트웨어
- 개방형 운영체제(개방형 OS, Open OS)
- 이너소스(innersource)
- 소프트웨어 안전성
- FTA(Fault Tree Analysis)
- FMEA(Failure Modes and Effects Analysis)
- FMEA 유형
- HAZOP(HAZard and Operability Study)
- ETA(Event Tree Analysis, 사건수분석)
- ISO/IEC 61508
- ISO 26262
- SIL(Safety Integrity Level)
- ASIL(Automotive Software Integrity Levels)
- IEEE 1633
- COCOTS
- COCOMO II(Constructive Cost Model II)
- COCOMO(Constructive Cost Model)
- 소프트웨어 비용산정(규모산정)
- 상향식 비용 산정 방법
- 하향식 비용 산정 방법
- LOC(Line of Code) 기법
- 기능점수(FP, Function Point)
- 소프트웨어 개발비
- 코드 난독화(Code Obfuscation)
- 3R(Reverse Engineering, Re-Engineering, Reuse Engineering)
- 역공학(Reverse Engineering)
- 재공학(Re-engineering)
- 재사용(Reuse)
- 소프트웨어 재사용 기법
- 형상관리(Software Configuration Management)
- 베이스라인(baseline)
- 지속적 통합(CI, Continuous Integration)
- 소프트웨어 유지보수
- TMMi(Test Maturity Model Integration)
- 리스크 기반 테스트(Risk Based Test)
- FTR(Forma Technical Review)
- 동료검토(peer review)
- Inspection
- WalkThrough
- 정적 테스트(Static Test)
- 데메테르의 법칙
- 코딩 원리
- 모바일 어플리케이션 콘텐츠 접근성 지침 2.0(Mobile Application Content Accessibility Guidelines 2.0)
- KWCAG 2.1(Korean Web Contents Accessibility Guide 2.1)
- 웹 접근성(Web Accessibility)
- 사용자 경험(UX, User Experience)
- UI/UX 개발 프로세스
- UX 모델링
- 사용성 평가(Usability Evaluation)
- 화이트박스/블랙박스 재사용
- 클래스 재사용
- SOA 거버넌스(SOA Governance)
- SOA(Service Oriented Architecture)
- UML(Unified Modeling Language)
- SysML(Systems Modeling Language)
- UML Diagram(UML 다이어그램)
- 액티비티 다이어그램(Activity Diagram)
- 클래스 다이어그램(Class Diagram)
- 시퀀스 다이어그램(Sequence Diagram)
- 유스케이스 모델링(Use Case modeling)
- 유스케이스 다이어그램(Usecase Diagram)
- 유스케이스 명세서
- 상태 다이어그램(State Diagram)
- 컴포넌트 다이어그램(Component Diagram)
- Deployment Diagram
- Interaction Overview Diagram
- UML 2.0(Unified Modeling Language 2.0)
- Composite Structure Diagram
- Communication Diagram
- 패키지 다이어그램(Package Diagram)
- UML Profile
- UML Relationship
- MVC(Model View Controller) 패턴
- MVC Model1, Model2(Type1, Type2)
- Layered Pattern(계층화 패턴)
- 데이터 중심형 패턴(모델)
- 클라이언트-서버 모델(Client Server Model)
- SPA(Single Page Web Application)
- IoC(Inversion of Control)
- DI(의존성 주입, Dependency Injection)
- 스프링 프레임워크(Spring Framework)
- 스프링 부트(Spring Boot)
- 클린 코드(Clean Code)
- SPEM(Software Process Engineering Metamodel)
- 모듈화(Modularity)
- 결합도(Coupling)
- 응집도(Cohesion)
- 추상화(abstraction)
- 소프트웨어 컴포넌트(Software Component)
- SVVP(Software Verification & Validation Plan)
- 소프트웨어 산업 관련 법(2019.4월 기준)
- 소프트웨어 설계(Software Design)
- 페르소나(Persona)
- 다형성(Polymorphism)
- 오버라이딩(overriding)
- 오버로딩(Overloading)
- 캡슐화(Encapsulation)
- 칸반(Kanban)
- 린(Lean) 소프트웨어 개발 방법론
- SSPL(System & Software Product Line)
- ISO/IEC 26550
- 방법론 테일러링(tailoring)
- 회귀 테스트(Regression Test)
- 업무 시스템 설계(BSD, Business System Design)
- 업무 영역 분석(BAA, Business Area Analysis)
- 진화형 모델(Evolutional Model)
- 증분형 모델(Incremental Model)
- 도메인 공학(Domain Engineering)
- 테스트 오라클(Test Oracle)
- MDD(Model Driven Development)
- MDD 모델변환
- MDA(Model Driven Architecture)
- ASD(Automated Software Development) 개발방법론
- 코딩과 수정(Code-and-fix) 모델
- 제품 백로그(Product Backlog)
- 정보전략계획(ISP, Information Strategy Planning)
- 휴리스틱 사용성 평가
- 마이크로서비스 아키텍처(MSA, Micro Service Architecture)
- SAGA 패턴
- 서비스 메시(Service Mesh)
- RUP(Rational Unified Process)
- 리팩토링(Refactoring)
- Pull Up Method
- 코드 스멜(Code Smell)
- McCabe 회전 복잡도
- Halstead 메트릭
- 소프트웨어 메트릭(Software Metrics)
- 소프트웨어 가시화(SW Visualization)
- 소프트웨어 버전관리 시스템
- 버전관리시스템(GIT)
- ALM(Application Lifecycle Management)
- GS(Good Software)
- SP(Software Process) 인증
- 소프트웨어 품질 표준/모델
- ISO 9000
- ISO/IEC 29119
- keyword driven testing
- ISO/IEC 33063
- ISO/IEC 25000
- ISO/IEC 12207:1995
- ISO/IEC 14764
- ISO/IEC 14598
- ISO/IEC 12119
- ISO/IEC 25010
- ISO/IEC 9126
- ISO 21500
- SPICE(Software Process Improvement and Capability dEtermination)
- Automotive SPICE(Automotive Software Process Improvement and Capability dEtermination)
- 품질통제(QC, Quality Control)
- 품질보증(QA, Quality Assurance)
- AUTOSAR 국제표준
- 소프트웨어 워터마킹(Software Watermarking)
- 기술적 부채(Technical debt)
- SW 사업정보저장소
- 소프트웨어 자산관리(SAM, Software Asset Management)
- ISO/IEC 19770
- 원격지 개발
- SW Escrow(임치제도)
- SBOM(Software Bill of Materials)
- AI 기반 정보시스템 테스트
- 마이크로 서비스 아키텍처 테스트(MSA Test)
- EDA(Event Driven Architecture)
- 플랫폼 엔지니어링(Platform Engineering)
- 소프트웨어 품질성능 평가시험
- 정보은닉(Information Hiding)
- IT 직무제
- 소프트웨어 운영단계 대가산정
- 정보시스템 성능 요구사항
기술사 공부를 같이하는 사람들의 모임
정보기술 연구모임(https://cafe.naver.com/itpewiki)