정보처리기사 필기
정보처리기사 필기
1과목 소프트웨어 설계
[소프트웨어 생명 주기]
소프트웨어 개발 방법론의 바탕.
소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 각 단계별로 나눈 것이다.
- 소프트웨어 생명 주기는 소프트웨어 개발 단계와 각 단계별 주요 활동, 활동의 결과에 대한 산출물로 표현한다.
- 소프트웨어 생명 주기를 표현하는 형태를 소프트웨어 생명 주기 모형이라 하며, 소프트웨어 프로세스 모형또는 소프트웨어 공학 패러다임이라고도 한다.
[소프트웨어 공학]
소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문.
여러 가지 방법론과 도구, 관리 기법을 통하여 소프트웨어 품질과 생산성 향상을 목적으로 한다.
> 기본 원칙
- 현대적인 프로그래밍 기술을 계속적으로 적용해야 한다.
- 개발된 소프트웨어 품질이 유지되도록 지속적으로 검증해야 한다.
- 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야 한다.
[폭포수 모형]
폭포에서 한 번 떨어진 물은 거슬러 올라갈 수 없는 것을 참고.
소프트웨어 개발도 이전 단계로 돌아갈 수 없다는 전제하에
각 단계를 확실히 매듭짓고 결과를 철저히 검토하여 승인 과정을 거친 후, 다음 단계를 진행하는 개발 방법론이다.
- 소프트웨어 공학에서 가장 오래되고 가장 폭넓게 사용된 전통적인 소프트웨어 생명 주기 모형으로, 고전적 생명 주기 모형이라고 한다.
- 소프트웨어 개발 과정의 한 단계 끝나야만 다음 단계로 넘어갈 수 있는 선형 순차적 모형이다.
- 모형을 적용한 경험과 성공 사례가 많다.
- 각 단계가 끝난 후에는 다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 한다.
> 과정은 아래와 같다
[타당성 검토] –> [계획] –> [요구분석] –> [설계] –> [구현(코딩)] –> [시험(검사)] –> [유지보수]
[프로토타입 모형 (Prototype Model, 원형 모형)
사용자의 요구사항을 정확히 파악하기 위한 것.
요구사항을 파악하기 위해 실제 개발될 소프트웨어에 대한 견본(시제)품(Prototype)을 만들어 최종 결과물을 예측하는 모형이다.
- 시제품은 의뢰자나 개발자 모두에게 공동의 참조 모델이 된다.
[애자일 모형 (Agile Model)
고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하며 개발 과정을 진행하는 것.
‘민첩한’, ‘기민한’ 이라는 의미이다.
- 어느 특정 개발 방법론이 아니다
- 좋은 것을 빠르고 낭비없이 만들기 위해 고객과 소통에 초점을 맞춘 방법론을 통칭한다
- 기업 활동 전반에 걸쳐 사용된다.
- 기반으로 하는 SW 개발 모형은 스크럼, XP, 칸반, 크리스탈, 기능 중심(FDD) 개발 등이 있다.
애자일 개발 4가지 핵심 가치
- 프로세스와 도구보다 개인과 상호작용에 더 가치를 둔다.
- 방대한 문서보다 실행되는 SW에 더 가치를 둔다.
- 계약 협상보다 고객과 협업에 더 가치를 둔다.
- 계획을 따르기보다 변화에 반응하는 것에 더 가치를 둔다.
주로 소통에 관련된 것.
[GoF 디자인 패턴]
GoF의 디자인 패턴은 소프트웨어 공학에서 가장 많이 사용되는 디자인 패턴이다. 목적에 따라 분류하면 생성 패턴 5개, 구조 패턴 7개, 행위 패턴 11개, 총 23개의 패턴으로 구성된다.
생성 패턴
- 추상 팩토리
- 빌더
- 팩토리 메소드
- 프로토타입
- 싱글톤