1. 소프트웨어의 뜻
소프트웨어란?
소프트웨어는 컴퓨터 시스템
, 프로그램
, 데이터
에 의해 처리된 모든 정보
를 말합니다.
컴퓨터의 시스템을 구성하는 주요 요소 중 하나로, 컴퓨터를 사용하는 목적
이기도 합니다.
소프트웨어가 없는 컴퓨터, 즉 하드웨어는 빈 껍질이기 때문입니다.
소프트웨어 개발 생명주기에 대해 설명하세요.
소프트웨어는 계획
단계를 시작으로 요구분석
, 설계
, 구현
, 테스트
, 유지보수
단계를 거쳐 개발됩니다. 하나의 제품
인 소프트웨어
를 만들기 위해
계획 단계에서 유지보수 단계에 이르기까지 일어나는 일련의 과정
을 말합니다.
2. 소프트웨어 개발 프로세스
소프트웨어 개발 프로세스란?
어떤 작업에 대한 수많은 반복과 시행착오를 통하여 얻은 방법
이나 도구
등에 관한 지식
을 같은 작업을 수행하는 다른 사람들에게 전달
함으로써 시행착오를 줄이
고 빠르게 적응
하여 일을 할 수 있도록 가이드
역할을 합니다.
여러 소프트웨어 프로세스 모델 중에서 가장 적합한 모델
을 프로젝트 표준
으로 정하고 모든 참여자가 그 표준의 질서
에 따라 개발해야 합니다.
소프트웨어 프로세스 모델이란?
소프트웨어 개발 생명주기
(Software Development Life-Cycle)라고도 하며, 공장
에서 제품을 생산
하듯이 소프트웨어를 개발하도록 개발의 전 과정
을 하나의 프로세스로 정의
합니다.
따라서 주어진 예산
과 자원
으로 개발
하고 관리
하는 방법을 구체적으로 정의
합니다.
프로젝트에 대한 전체적인 기본 골격
을 세워주며 그에 따른 일정 계획을 수립
할 수 있고, 개발 비용 산정
뿐 아니라 여러 자원
을 산정
하고 분배
할 수 있습니다.
또한 참여자 간의 의사소통 기준
을 정할 수 있고 용어의 표준화
를 가능케 할 뿐만 아니라 개발 진행 상황
도 명확히 파악할 수 있습니다.
폭포수 모형(Waterfall Model)에 대해 설명하세요.
이전 단계로 돌아갈 수 없다
는 전제하에 각 단계
를 확실히 매듭
짓고 그 결과
를 철저하게 검토
하여 승인 과정
을 거친 후에 다음 단계를 진행
하는 개발방법론입니다. 가장 오래
되고 폭넓게
사용되는 전통적
인 모형으로, 고전적 생명주기 모형
이라고도 합니다.
프로토타입(Prototype Model, 원형 모형)에 대해 설명하세요.
사용자의 요구사항
을 파악하기 위해 실제 개발될 소프트웨어에 대한 견본품(Prototype)
을 만들어 최종 결과물을 예측
하는 모형입니다.
나선형 모형(Spiral Model, 점진적 모형)에 대해 설명하세요.
나선을 따라 돌듯이
여러 번
의 소프트웨어 개발 과정
을 거쳐 점진적
으로 완벽한 최종 소프트웨어를 개발하는 모형입니다. 보헴(Boehm)
이 제안한 것으로, 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가
한 모형입니다. 누락
되거나 추가
된 요구사항을 반영
할 수 있고, 유지보수 과정이 불필요
하다는 장점이 있습니다.
애자일 모형(Agile Model)에 대해 설명하세요.
고객의 요구사항 변화
에 유연하게 대응
할 수 있도록 일정한 주기를 반복
하면서 개발하는 모형입니다.
어느 특정 개발 방법론이 아니라 좋은 것을 빠르고 낭비 없게
만들기 위해 고객과의 소통에 초점
을 맞춘 방법론입니다. 폭포수 모형과 대조적
이며, 대표적인 개발 모형으로는 스크럼(Scrum)
, Xp(eXtreme Programming)
, 칸반
, Lean
, 기능 중심 개발(FDD)
등이 있습니다.
스크럼(Scrum) 기법이란?
팀이 중심
이 되어 개발의 효율성
을 높이는 기법으로,
팀원 스스로
가 스크럼 팀
을 구성하고 개발 작업
에 관한 모든 것을 스스로 해결
할 수 있어야 합니다.
Xp(eXtreme Programming) 기법이란?
수시로 발생하는 고객의 요구사항
에 유연하게 대응
하기 위해 고객의 참여
와 개발과정의 반복
을 극대화
하여 개발 생산성을 향상
시키는 방법입니다.
XP의 5개 핵심 가치
로는 의사소통(Communication)
, 단순성(Simplicity)
, 용기(Courage)
, 존중(Respect)
, 피드백(Feedback)
이 있습니다.
XP의 주요 실천 방법에 대해 나열하세요.
Pair Programming
(짝 프로그래밍): 다른 사람과함께
프로그래밍을 수행함으로써개발에 대한 책임
을공동으로 나눠
갖는 환경을 조성합니다.Collective Ownership
(공동 코드 소유): 개발코드
에 대한권한
과책임
을공동으로 소유
합니다.Test-Driven Development
(TDD, 테스트 주도 개발): 개발자가실제 코드를 작성하기 전
에테스트 케이스
를 먼저 작성하므로 자신이무엇을 해야 할지
를 정확히파악
할 수 있습니다.Whole Team
(전체 팀): 개발에 참여하는 모든구성원
들은 각자 자신의역할
이 있고 그 역할에 대한책임
을 가져야 합니다.- Continous Integration(
CI
, 지속적인 통합):모듈 단위
로 나눠서 개발된 코드들을하나의 작업
이마무리
될 때 마다지속적으로 통합
합니다. Refactoring
(리팩토링): 프로그램기능의 변경 없이
시스템을재구성
합니다.Small Release
(소규모 릴리즈):릴리즈
기간을짧게 반복
함으로서 고객의요구변화
에신속히 대응
할 수 있습니다.
'All Categories > Special Qualifications' 카테고리의 다른 글
정보처리기사 - 요구사항 분석 단계 (0) | 2023.07.08 |
---|---|
정보처리기사 - 계획 단계 (소프트웨어 비용 산정, 하향식/상향식 비용 산정 기법, 수학적 비용 산정 기법, 프로젝트 일정 계획) (0) | 2023.07.06 |