구조적 방법론
전체 시스템을 기능에 따라 나누어 개발하고, 이를 통합하는 분할과 정복 접근 방식의 방법론
프로세스 중심의 하향식 방법론
구조적 프로그래밍 표현을 위해 나씨-슈나이더만 차트 사용
나씨 슈나이더만 차트 특징
- 논리의 기술에 중점을 둔 도형식 표현 방법
- 연속, 선택 및 다중 선택, 반복 등의 제어 논리구조로 표현
- 조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는데 적합
정보공학 방법론
객체지향 방법론
컴포넌트 기반 방법론
애자일 방법론
제품 계역 방법론
특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론
임베디드 소프트웨어를 작성하는데 유용한 방법론
영역 공학과 응용 공학으로 구분
영역공학 : 영역분석, 영역설계, 핵심 자산을 구현하는 영역
응용공학 : 제품 요구분석, 제품설계, 제품을 구현하는 영역
1.XP(eXtreme Programing)
- 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
- 1~3주의 반복 개발 주기
- 5가지 가치와 12개의 신청항목이 존재
- XP의 5가지 가치(피존용단소)
- 피드백 : 의사소통에 대한 빠른 피드백
- 존중 : 팀원간의 상호 존중
- 용기 : 용기를 가지고 자신감 있게 개발(피드백을 두려워 하지 않으며 테스트 후 빠르게 리팩토링할 수 있는 용기
- 단순성 : 필요한 것만 하고 그 이상의 것들은 하지 않음
- 의사소통 : 개발자, 관리자, 고객 간의 원활한 소통
- XP의 12가지 기본원리
- Pair Programing
- Collective Ownership
- Continuous Intergration (CI)
- Planning Process)
- Small Release
- Metaphor
- Simple Design
- Test Driven Develop (TDD)
- Refactoring
- 40-Hour Work
- On Site Customer
- Coding Standard
2.Scrum
- 매일 정해진 시간과 장소에서 짧은 시간 동안 개발하는 팀을 위한 프로젝트 관리 중심의 방법론이다.
주요개념
1. 백로그(Backlog) : 개발할 제품에 대한 요구사항 목록
2. 스프린트(Spring) : 2~4주의 짧은 반복적인 개발 주기
3. 스크럼 미팅(Scrum Meeting) : 스프린트 목표와 백로그를 계획해 계획을 수립
4. 스크럼 마스터(Scrum Master) : 프로젝트 관리자
5. 스프린트 회고(Sprint Retrospective) : 스프린트를 되돌아보며 실행된 작업 목록과 해야 할일 이슈사항 등을 공유
6. 번 다운 차트(Burn Down Chart) : 남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트
2.Lean
- 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해 낭비 요소를 제가형 품질을 향상시킨 방법론
- JIT(Just In Time), 칸반 보드 사용
- 7가지 원칙
- 낭비제거
- 품질 내재화
- 지식 창출
- 늦은 확정
- 빠른 인도
- 사람 존중
- 전체 최적화