본문 바로가기

정보처리기사/4. 소프트웨어공학

3. 소프트웨어 생명주기

01 소프트웨어의 일반적인 생명주기

소프트웨어를 개발하는 절차 및 개발 단계의 반복 현상을 소프트웨어 생명주기(SDLC : Software Development Life Cycle)이라고 한다.

생명주기는(SDLC)는 소프트웨어 개발의 기본 골격이 되며 개발자와 사용자(개발 요청자) 간의 공동 의식과 개발 진행 사항을 파악할 수 있게 한다. 소프트웨어의 생명주기는 크게 정의 단계, 개발 단계, 유지보수 단계로 구분할 수 있다.


02 생명주기의 각 단계별 특징

1) 정의 단계

사용자의 요구사항을 정의하는 단계로 , 관리자와 사용자가 가장 많이 참여하는 단계이다.

타당성 검토 단계, 프로젝트 계획 단계, 요구분석 단계로 나눌 수 있다.


타당성 검토 단계

생명주기의 처음 단계로 프로젝트를 개발하기 위한 제반 여건 및 타당성 파악이 주목적이며 기술적 타당성, 경제적 타당성, 법적 타당성 등을 고려해야한다.

프로젝트 계획 단계

 소프트웨어를 개발하기 위해 필요한 모든 사항(자원 및 비용)들을 준비하는 단계이다.

요구 분석 단계 

 개발할 소프트웨어의 문제 영역을 사용자에게 얻어내어 분석하는 단계이다.


2) 개발 단계

사용자의 요구사항에 따라 소프트웨어를 만드는 단계로 설계 단계, 구현(프로그램 코딩) 단계, 검사 단계로 나눌 수 있다.


설계 단계 

· 절차 구조, 알고리즘, 자료 구조, 구조도 등을 작성하여 프로그램을 쉽게 구현할 수 있도록 준비하는 단계이다.

· 자연언어와 프로그램용 설계용 언어(PDL)을 사용한다.

· 전체 생명주기 단계 중 오류가 가장 많은 단계(약 45%)이다.

 구현(프로그램 코딩) 단계

설계 단계에서 작성된 설계 문서를 기초로 하여 컴퓨터 처리가 가능한 프로그램 언어로 코딩하고 번역하는 단계이다.

 검사 단계

프로그램으로 구현된 소프트웨어를 대상으로 오류를 찾아 수정하는 단계이다. 


3) 유지보수 단계

개발된 소프트웨어의 품질을 유지시키기 위한 노력으로 소프트웨어 생명주기 단계 중에 가장 많은 시간과 비용이 투입된다. 유지 보수 비용은 전 과정의 약 60% 이상을 차지하며 종류에는 하자 보수, 기능 개선, 예방 조치, 환경 적응 등이 있다.


03 소프트웨어 생명주기의 역할

1) 생명주기 역할

· 사용자와 개발자 간에 공동 의식을 가질 수 있다.

· 소프트웨어 개발의 기본 골격으로 개발 진행의 파악이 용이하다.

· 개발된 소프트웨어를 관리(수정, 유지보수)하기에 용이하다.

· 용이 및 기술의 표준화를 가능하게 한다.


04 폭포수(Watefall, 전통적인) 모형 - 폭포수 모델

1) 폭포수 모형의 의해

폭포수 모델이란 단계별로 분명힘 매듭짓고, 그 다음 단계를 진행하는 것을 말한다.

각 단계에서 발생되는 오류는 다음 단계로 갈수록 오류가 증폭되므로 완성 단계에서는 걷잡을 듯 없는 오류가 발생할 수 있다.

하지만 오류 없이 다음 단계로 진행하는 것은 현실적으로 불가능하다.


2) 폭포수 모형의 특징

· 모델의 적용 경험과 성공 사례가 많다.

· 소프트웨어 개발 과정의 각 단계가 선형 순차적으로 진행된다.

· 가장 오래되고 널리 사용된 방법이다. (전통적인 기법)

· 단계별 산출물이 명확하다. (명확성 강조)

· 두 개 이상의 과정이 병행(병렬) 수행되거나 이전 단계로 넘어가는 경우가 없다.

· 단계별로 오류 없이 명확하게 하여 다음 단계로 진행해야 하는데, 현실적으로 오류 없이 다음 단계로 진행하기 어렵다.

· 개발 과정 중에 발생하는 새로운 요구나 경험을 설계에 반영하기 힘들다.


05 프로토 타입(Prototype) 모형(2014-03-26~2014-03-27 수목 작성 중...)

포켓몬스터  XY(2013년 10월 초)가 발매하기 전에 미리 공개된 모습으로 프로토타입이라 할 수 있다.

2013.07.11 ┌무리배틀┘과 ┌스카이배틀┘

자료가 없다보니 시제품으로써 그 당시에 괜찮을 만한 것을 참고하게 되었다.

사용자에게 다가가기 위해 직접 영상을 올리면서 유저들과 공유하는 것을 알 수 있다.

모바일에서 하기에는 아쉬운 면도 있으나, 게임은 닌텐도 디바이스에서 이루어지기 때문에 특별히 상관없다고 볼 수 있다.

2) 프로토 타입 모형의 특징

· 불분명한 사용자의 요구를 받아들이기에 적당한 방식이다.

· 요구사항의 변겨이 용이하다.

· 요구분석 중심의 개발방법론이다.

· 사용자와 개발자 간의 커뮤니케이션이 원할하지 못할 때 서로의 이해에 도움은 준다.

· 구축하고자 하는 시스템의 요구사항이 불명확한 경우 효과적이다.

· 요구분석 단계에서 개발하거나 개발된 프로토타입 소프트웨어를 사용한다.

평가판 소프트웨어, 또는 시제품으로 개발중인 졸업작품 어플 초기단계... 차가 움직이고, 충돌시 회전이 안되는현상...

완성품도 모자라면 프로토 타입이라 볼 수 있음.

· 최종 결과물이 나오기 전에 의뢰자가 최종 결과물의 일부 또는 모형(시뮬레이션)을 볼 수 있다.

· 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공한다.

· 프로토타입은 구현단계에서 구현 골격이 될 수 있다.

· 단기간에 개발해야 하기 때문에 비효율적인 알고리즘이나 언어를 사용할 있다.

· 사용자의 자체 업무에 충실하지 못하고 미리 제작한 소프트웨어에 의존할 수 있다.

· 미리 개발된 소프트웨어를 이용할 경우 실제 소프트웨어와의 차이가 생길 수 있다.

· 프로토타입 모형은 소프트웨어 생명주기에서 유지보수가 없어지고 개발 단계 안에서 유지보수가 이루어지는 것을 볼 수 있다.

공부한 이 분석

프로토타입은 사용자 중심의 모델이라 할 수 있다.


3) 적용방법

· 문서형 프로토타입(Paper Prototype) : 사용자의 요구에 맞는 문서를 미리 제작하거나 이미 만들엊인 소프트웨어의 문서를 이용하는 방법으로 사용자(고객)가 빠른 시간 내에 개발의 완료를 요구할 경우에 적당한 방법이다.

제안서 같은 경우 이에 해당할 수 있다.

· 작업 프로토타입(Working Prototype) : 실제 동작이 가능한 소프트웨어의 주요 기능을 만들어가면서 사용자의 요구를 받아들이는 작업이다. 사용자는 요구된 내용을 바로 볼 수 있기 때문에 많은 요구를 할 수 있는 방법이다.

시제품의 경우 이에 해당할 수 있다.

· 프로그램 프로토타입(Program Prototype) : 기존의 개발되었던 프로그램과 문서를 이용하여 사용자의 요구를 받아들인다.


4)Brooks의 이론

· 개발 일정이 지연된다고 해서 말기에 새로운 인원을 투입하면 일정이 더욱 지연된다.

· 프로토타입은 폐기 처분하는 첫 번째 시스템이다.


06 나선형(Spiral, 점증적) 모형

집에 가서 수정하겠습니다. 2014-03-27, PM 05:24

'정보처리기사 > 4. 소프트웨어공학' 카테고리의 다른 글

2. 소프트웨어의 기본 이론  (0) 2014.03.24
1. 소프트웨어 공학개념  (0) 2014.03.16