소프트웨어 개발 방법론 (요약)

 

 

 

  • 소프트웨어 공학
    공학의 사전적 의미 : 과학을 상업이나 공업에 실제적으로 운용하는 기술
    <소프트웨어 공학의 차이점>
     - 소프트웨어 공학이란 컴퓨터 과학에서 나오는 모든 것들을 실제 생활에 적용하기 위한 것.
     - 중심에 고객이 있음.

  • 소프트웨어 개발 방법 변천
    1970년대까지는 소프트웨어 개발방법론이라는 것은 특별히 없었다.
     - 70년대 :폭포수 방법론이 등장.
     - 80년대 : 생명주기 관점에서 소프트웨어 개발 방법을 바라보게 됨.
     - 90년대 : 반복과 통합된 프로세스를 토대로 RUP가 등장.
     - 이후 : RUP를 계승한 컴포넌트 기반 방법론인 CBD가 현재 많은 부분 차지.
    (그외 <카네기 멜론 소프트웨어 공학 연구소 = 업무능력 성숙도 평가 기준(Capability Maturity Model; CMM)>, XP)

  • 소프트웨어 개발 방법론
    소프트웨어 개발의 4단계 : <요구분석>-<설계>-<구현>-<테스트>
    운영 방법에 따라 '정보공학 방법론'과 '나선형 개발 방법론'으로 나눠짐.

  • 정보공학 방법론
    정보공학 방법론은 폭포수가 떨어지듯 한 모양을 갖고 있기 때문에 폭포수(Cascade) 방법론이다.
    <단점>
     - 요구사항 변경이 빈번하게 일어남.
     - 요구사항 추가 삭제가 생겨날 경우 소프트웨어 전체에 기형적인 부분이 발생할 가능성이 커짐.

  • 나선형 개발 방법론
    제품의 성숙도를 높여가는 개발 방법을 갖고 있는 것이 '나선형 개발 방법론' 이다.
    나선형 개발방법은 4가지 상태를 갖는데
     - 한계를 정하는 1상
     - 위험분석과 프로토타입을 만드는 2상
     - 실체를 만들어 내는 3상
     - 다음 계획을 세우는 4상
    으로 이루어 진다. 사이클의 수가 늘어날수록 성숙도는 높아지지만 일정과 비용이 드는 일이기 때문에 종료 시점을 잘 경정해야 한다.
    <장점>
     - 일정에 맞추어 제품의 사양을 조절이 가능.
     - 사양의 개발에 집중할 수 있음.
     - 기능 간의 우선순위를 정할 수 있는 기회가 있음.
     - 핵심 기능을 명확히 할 수 있음.
     - 계획의 지표를 마련할 수 있음.

  • 프로토타입 개발 방법
    건축에서와 같이 소프트웨어의 기본적인 기능을 알아보기 위해서 원형을 만들고 이후의 소프트웨어 완성품을 예측해 보는 방법. (국내에서 '파일럿 프로젝트'라 불리기도 함.)
     - 프로젝트 시작을 위한 좋은 기반 제공(단, 너무 많은 비용과 시간이 들지 않는다는 조건에서)

  • Rational Unified Process(RUP) 방법론
    소프트웨어 프로젝트의 단계를 세분화했고, 모든 단계들이 유기적으로 협력하면서 진행 될 수 있도록 만들어졌다. 
    전체 프로젝트를 Inception(초기) > Elaboration(상세) > Construction(구축) > Transition(이행) 4단계로 나눔.
    하나의 사이클을 수행한 후에는 실행가능한 제품이 나온다는 것이 특징.
    RUP에서는 Unified Modeling Language(UML)를 이용하여 진행하며 진행 단계에 따라 각각 상이한 다이어그램의 산출물이 나오게 된다. 대표적으로 유즈케이스 다이어그램(요구분석), 클래스 다이어 그램(업무를 구현한 클래스들의 상관관계를 나타냄), 시퀀스 다이어그램(시간에 따른 메소드 호출 상관도) 등 10여개의 다어그램들이 있어서 고객, 아키텍트, 개발자 상호간의 의사소통을 원활하게 만들어준다.

  • Component Based Development(CBD) 방법론
    입력준비

  • Capability Maturity Model(CMM)
    입력준비

  • eXtreme Programming(XP)
    입력준비

  • 애자일(Agile) 방법론
    입력준비

  • 정리
    입력준비




 

 

 

 

 

 

'프로젝트 > 자료실' 카테고리의 다른 글

시스템 아키텍쳐?  (0) 2013.10.11
참고주소  (0) 2013.10.07
pos 관련 자료  (0) 2013.10.07
Point of sale (POS)  (0) 2013.10.04
평가 양식  (0) 2013.09.23
Posted by wooklab
: