[정보처리기사] 정보처리기사 실기 정리 1 (소프트웨어 생명 주기, 스크럼, XP 기법, 현행 시스템 파악, 개발 기술 환경 파악)
미음제
·2021. 7. 16. 19:26
Section 1
소프트웨어 생명 주기
소프트웨어를 개발하기 위한 설계, 응용, 유지보수 등의
과정을 각 단계별로 나눈 것
✔ 생명주기 모형
✔ 폭포수 모형(Waterfall Model)
이전 단계로 돌아갈 수 없다.
각 단계를 확실히 매듭짓고 그 결과를 철저하게
검토하여 승인 과정을 거친 후 다음 단계를 진행한다.
가장 오래되고 폭넓게 사용된 전통적 모형.
고전적 생명주기 모형이라고도 한다.
모형을 적용한 경험과 성공 사례가 많다.
✔ 프로토타입 모형(Prototype Model, 원형 모형)
사용자의 요구사항을 파악하기 위해
실제 개발될 소프트웨어에 대한 프로토타입(견본품)을
만들어 최종 결과물을 예측하는 모형이다.
견본품은 사용자와 시스템 사이의
인터페이스에 중점을 두어 개발한다.
✔ 나선형 모형(Spiral Model, 점진적 모형)
여러 번의 소프트웨어 개발 과정을 거쳐
점진적으로 완벽한 최종 소프트웨어를 개발하는 모형이다.
폭포수, 프로토타입 모형의 장점에
위험 분석 기능을 추가한 모형이다.
누락되거나 추가된 요구사항을 첨가할 수 있고
유지보수 과정이 필요 없다.
- 4가지 주요 활동
계획 ➔ 분석 ➔ 개발 ➔ 평가
✔ 애자일 모형(Agile Model)
고객의 요구사항 변화에 유연하게 대응할 수 있도록
일정한 주기를 반복하면서 개발하는 모형이다.
어느 특정 개발 방법론이 아니라
좋은 것을 빠르고 낭비 없게 만들기 위해
고객과의 소통에 초점을 맞춘 방법론을 통칭한다.
폭포수 모형과 대조적.
- 대표적 개발 모형
✔ 스크럼(Scrum)
✔ XP(eXterem Programming)
✔ 칸반(Kanban)
✔ Lean
✔ 기능 중심 개발(FDD, Feature Driven Development)
- 소프트웨어 공항(SE, Software Engineering)
소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문
소프트위어 공학의 기본 원칙
1. 현대적 프로그래밍 기술을 계속적으로 사용해야 한다.
2. 개발된 소프트웨어의 품질이 유지되도록 지속적으로 검증해야 한다.
3. 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야 한다.
Section 2
스크럼(Scrum) 기법
✔ 스크럼(Scrum)
팀이 중심이 되어 개발의 효율성을 높이는 기법.
팀원 스스로가 스크럼 팀을 구성하고
개발 작업에 관한 모든 것을
스스로 해결할 수 있어야 한다.
✔ 스크럼 팀
구성원 | 역할 |
제품 책임자 PO, Product Owner |
백로그(Backlog)를 작성하는 주체 이해관계자들 중 개발될 제품에 대한 이해도 ↑ 요구사항을 책임지고 의사를 결정할 사람으로 선정 |
스크럼 마스터 SM, Scrum Master |
스크럼을 잘 수행할 수 있도록 가이드 역할을 수행 |
개발팀 DT, Development Team |
제품 책임자와 스크럼 마스터를 제외한 모든 팀원 제품 개발을 수행 |
✔ 스크럼 개발 프로세스
스크럼 개발을 진행할 때는
"계획"하여 "진행"한 후"회의와 검토"를 거쳐 "회고"한다.
스프린트 계획 회의 ➔ 스프린트 ➔ 일일 스크럼 회의 ➔ 스프린트 검토 회의 ➔ 스프린트 회고
Section 3
XP(eXtreme Programming) 기법
고객의 요구사항에 유연하게 대응하기 위해
고객의 참여와 개발 과정의 반복을 극대화하여
개발 생산성을 향상 시키는 방법이다.
짧고 반복적인 개발 주기
단순한 설계
고객의 적극적 참여
이를 통해 소프트웨어를 빠르게 개발하는 것을 목적으로 한다.
✔ XP의 5가지 핵심 가치
- 의사소통(Communication)
- 단순성(Simplicity)
-용기(Courage)
-존중(Respect)
-피드백(Feedback)
✔ XP 개발 프로세스
릴리즈 계획 수립 ➔ 주기(이터레이션, Iteration) ➔ 승인 검사 ➔ 소규모 릴리즈
✔ XP의 주요 실천 방법
실천 방법 | 내용 |
Pair Programming 짝 프로그래밍 |
다른 사람과 함께 프로그래밍을 수행 개발에 대한 책임을 공동으로 나눠 갖는 환경 조성 |
Collective Ownership 공동 코드 소유 |
개발 코드에 대한 권한과 책임을 공동으로 소유 |
Test-Driven Development 테스트 주도 개발 |
테스트 케이스를 먼저 작성 ➔ 무엇을 해야할지 정확히 파악 테스트가 지속적으로 진행될 수 있게 자동화된 테스팅 도구를 사용 |
Whole Team 전체 팀 |
모든 구성원(고객 포함)들은 각자 자신의 역할이 있고 역할에 대한 책임을 가져야 함 |
Continuous Integration 계속적인 통합 |
모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리 될 때마다 지속적으로 통합 |
Refactoring 리팩토링 |
프로그램 기능의 변경 없이 시스템을 재구성 |
Small Release 소규모 릴리즈 |
릴리즈 기간을 짧게 반복함으로 고객의 요구 변화에 신속히 대응할 수 있음 |
Section 4
현행 시스템 파악
✔ 현행 시스템 파악 절차
1단계 | 시스템 구성, 기능, 인터페이스 파악 |
2단계 | 아키텍쳐, 소프트웨어 구성 파악 |
3단계 | 하드웨어, 네트워크 구성 파악 |
Section 5
개발 기술 환경 파악
✔ 개발 기술 환경 파악의 개요
개발하고자 하는 소프트웨어와 관련된
OS, DBMS, 미들웨어 등을 선정할 때
고려해야 할 사항을 기술하고,
오픈소스를 사용할 때 주의해야 할 내용을 제시한다.
✔ 운영체제(OS, Operating System)
컴퓨터 시스템의 자원을 효율적으로 관리.
컴퓨터를 편리하고 효율적으로 사용할 수 있도록
환경을 제공하는 소프트웨어.
컴퓨터 사용자와 컴퓨터 하드웨어 간의
인터페이스로서 동작하는
시스템 소프트웨어의 일종.
✔ 데이터베이스 관리 시스템
(DBMS, DataBase Management System)
사용자와 데이터베이스 사이에서 사용자의 요구에 따라
정보를 생성해주고, 데이터베이스를 관리해 주는
소프트웨어이다.
모든 응용 프로그램들이 데이터베이스를
공용할 수 있도록 관리한다.
✔ 웹 어플리케이션 서버
(WAS, Web Application Server)
동적인 컨텐츠를 처리하기 위해 사용되는
미들웨어이다.
데이터 접근, 세션 관리, 트랜잭션 관리 등을 위한
라이브러리를 제공.
데이터베이스 서버와 연동해 사용한다.
✔ 오픈 소스(Open Source)
제한 없이 사용할 수 있도록 소스 코드를
공개한 소프트웨어이다.
오픈 소스 라이선스를 만족한다.
✔ 관련 요구사항 식별 시 고려사항
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 정보처리기사 실기 정리 6 (비용 산정 기법 - 하향식, 상향식) (0) | 2021.08.09 |
---|---|
[정보처리기사] 정보처리기사 실기 정리 5 (소프트웨어 개발 방법론, S/W 공학의 발전적 추세) (0) | 2021.08.06 |
[정보처리기사] 정보처리기사 실기 정리 4 (유스케이스 다이어그램, 활동 다이어그램) (0) | 2021.08.05 |
[정보처리기사] 정보처리기사 실기 정리 3 (UML, UML 관계, UML 다이어그램) (0) | 2021.08.05 |
[정보처리기사] 정보처리기사 실기 정리 2 (요구사항 정의, 요구사항 개발 프로세스, 요구사항 분석 CASE, HIPO) (0) | 2021.07.21 |