노트 :

소프트웨어 생명 주기(Software Life Cycle) 본문

자격증

소프트웨어 생명 주기(Software Life Cycle)

IT_달토끼 2023. 2. 2. 11:00

 

 

* 소프트웨어 공학(SE, Software Engineering): 소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문으로 여러 가지 방법론과 도구, 관리 기법들을 통하여 소프트웨어의 품질과 생산성을 향상시키고자 함

*소프트웨어 공학의 기본 원칙
① 현대적인 프로그래밍 기술을 계속적으로 적용
② 개발된 소프트웨어의 품질이 유지되도록 지속적으로 검증
③ 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지

 

 

1. 소프트웨어 생명 주기: 소프트웨어 개발 방법론의 바탕이 되는 것으로, 소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 각 단계별로 나눈 것

 

2. 소프트웨어 생명 주기 모형: 폭포수 모형, 프로토타입 모형, 나선형 모형, 애자일 모형 등

 

(1) 폭포수 모형(Waterfall Model): 소포트웨어 공학에서 가장 오래되고 폭넓게 사용된 전통적인 소프트웨어 생명주기 모형(=고전적 생명주기 모형)

① 매뉴얼 작성

② 각 단계가 끝난 후 다음 단계를 수행, 앞 단계의 결과물이 명확하게 산출되어야 함

③ 타당성 검토 → 계획 → 요구 분석 → 설계 → 구현 → 검사 → 유지보수

 

(2) 프로토타입 모형(Prototype Model): 실제 개발될 소프트웨어의 시제품을 만들어 개발 및 평가

① 사용자와 시스템 사이의 인터페이스에 중점을 두어 개발

② 경직된 폭포수 모형의 단점을 보완

 

 

프로토타입 모형

 

 

(3) 나선형 모형(Spiral Model): Boehm이 제안, 폭포수 모형과 프로토타입 모형의 장점에 위험  분석 기능을 추가

① 나선을 따라 돌듯이 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하고자 함

② 소프트웨어를 개발하면서 발생할 수 있는 위험을 관리하고 최소화

③ 점진적으로 개발 과정이 반복됨(=점진적 모형)

④ 반복되는 개발과정에서 누락사항 또는 추가사항을 반영할 수 있으므로 유지보수 과정이 필요 없음

 

 

나선형 모형

 

4. 애자일 모형(Agile Model): 고객의 요구사항에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발을 진행

① 특정 개발 방법론이 아니라 계획, 절차보다 고객과의 소통에 초첨을 맞춘 방법론을 통칭

② 스프린트(Sprint) 또는 이터레이션(Iteration)이라는 개발 주기를 반복하여 일정 주기가 끝날 때마다 테스트하고 결과물에 대한 고객의 평가 및 요구를 수용

③ 소규모 프로젝트, 숙련된 개발자, 변화가 빠른 개발에 적합

④ 애자일 모형을 기반으로 한 소프트웨어 개발 모형: 스크림(Scrum), XP(eXtreme Programming), 칸반(Kanban), 린(Lean) 등

 

 애자일 선언(Agile Manifesto)

* 애자일 개발 핵심 가치
① 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
② 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
③ 계약 협상보다는 고객과 협업에 더 가치를 둔다.
④ 계획을 따르기 보다는 변화에 반응하는 것에 더 가치를 둔다.

* 애자일 개발 실행지침
① 유용한 소프트웨어를 빠르고, 지속적으로 제공하여 고객을 만족시킨다.
② 개발 막바지라도 요구사항 변경을 적극 수용한다.
③ 몇 개월이 아닌 몇 주 단위로 실행되는 소프트웨어를 제공한다.
④ 고객과 개발자가 프로젝트 기간에 함께 일한다.
⑤ 개발에 대한 참여 의지가 확실한 사람들로 팀을 구성하고, 필요한 개발 환경과 지원을 제공하며, 일을 잘 끝낼 수 있도록 신뢰한다.
⑥ 같은 사무실에서 얼굴을 맞대고 의견을 나눈다.
⑦ 개발의 진척도를 확인하는 1차 기준은 작동하는 소프트웨어이다.
⑧ 지속 가능한 개발을 장려하고 일정한 속도로 개발을 진행한다.
⑨ 기술적 우수성과 좋은 설계에 지속적인 관심을 기울이면 민첩성이 향상된다.
⑩ 단순화를 추구한다.
⑪ 최상의 아키텍처, 명확한 요구사항, 최상의 설계는 자기 스스로 일을 주도하는 조직적인 팀으로부터 나온다.
⑫ 더 효과적인 팀이 될 수 있는 방안을 정기적으로 깊이 고민하고 그에 따라 팀의 행동을 조정한다.

'자격증' 카테고리의 다른 글

미들웨어(Middleware)  (0) 2023.02.03
객체지향 분석(OOA, Object Oriented Analysis)  (0) 2023.02.03
스크럼(Scrum) 기법  (0) 2023.02.02
UI 설계도구  (0) 2023.02.02
리스코프 치환 원칙(Liskov Substitution Priciple, LSP)  (0) 2023.02.01