기존의 방법론들의 오버헤드가 발생, 오버헤드가 발생한다는 것은 그만큼의 기간, 비용, 인력, 위험성들이 높았다

이런 과거 폭포수, 4세대, 나선형, 원형 같은 무거운 소프트웨어 개발 방법론이 아닌
민첩성과 실용성이 강조된 가벼운 경량급 개발 방법론 == Agile Methodology

애자일 방법론

  • 필요한 요구를 그때그때 더하고 수정하는 코드 중심 점진적 개발 방법
  • 단순성, 의사소통, 피드백, 용기 등의 원칙에 기반
  • 고객에게 최고의 가치를 가장 빨리 전달하는 경량 방법론
  • 협업과 변화 등 빠른 대응에 가치 : 소규모 목표 달성

협업과 변화에 빨리 대응하려면 목표를 간소화 해야한다

애자일 소프트웨어 개발 선언문(2001)


애자일 방법론(개념 용어)

  • 기술적 부채의 청산
    - 기존의 결함들로 인해 새로운 기능을 개발하거나 확장하는데 어려움이 발생하는 것,
    부채를 해결하기 어려워지고 수리 비용 증가

    - 해결 방법
    처음부터 올바르게 만들 수 있는 탁월한 기술력과 도덕 정신이 뒷받침되어야 한다

  • 리팩토링 기법의 적용
    - 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 기존 코드의 설계를 개선하는 기술
    - 잘못된 설계에서 나타나는 기술적 부채를 감소시켜 덜 짜증나게 해준다

 

리팩토링 : 기존의 코드를 쓰되, 새로운 코드가 잘 연동될 수 있도록 하자

 

리팩토링 효과

  • 코드를 쉽게 이해, 다른 프로그래머가 코드 변경을 쉽게 할 수 있다
  • 애자일 방법론은 리팩토링을 코드 구현 작업의 일부분으로 취급한다
  • 기본 코드에 대한 높은 이해도 -> 버그 수정, 새로운 기능 추가 -> 빠른 작업 속도

리팩토링 = 기본 코드의 디자인을 개선하는 방법

 

객체지향 기법의 적용

  • 점진적인 개발 용이
  • 시스템을 수평적인 모습으로 설계 : 재사용성 확장
  • 기존 메소드나 코드에 영향 최소화 + 새로운 메소드나 코드 추가
  • 적응성과 재사용성을 극대화

 

애자일 기법의 장점

  • 상대적으로 낮은 비용과 위험도
  • 프로토타입의 중요성 부각 : 짧은 릴리즈 추가
  • (개발하는 시간대가 단축되기 때문에 고객에게 가지는 릴리즈가 짧아진다 = 업데이트가 잦다)
  • 마음가짐 + 사람중심 + 참여와 소통 중시

단점

  • 낯선 프로세스
  • 프로젝트 팀원에게 요구되는 역량
  • 이끌어 내기 힘든 고객의 참여
 
 

 

'학부과정 > 소프트웨어공학' 카테고리의 다른 글

익스트림 프로그래밍  (0) 2023.01.11
4세대 기법  (0) 2022.10.10
나선형 패러다임(sprial)  (0) 2022.10.09
원형 패러다임  (0) 2022.10.06
폭포수 모델  (0) 2022.09.06

소프트웨어적으로 봤을 때, 자동으로 프로그래밍이 되는 자동화 시스템이 나오기 시작했다

4세대 기법이란?

  • 자동화 도구 사용
  • 요구사항 명세서로부터 실행 코드 자동으로 생성
  • 형식 규격 언어 표현법 진행 : 고급 언어의 모호성 해결
  • 정확성 있는 명세서 해석
  • 개발 과정의 자동화
  • 높은 생산성과 소프트웨어 위기를 해결하기 위한 폭넓은 응용 분야에 적용
    (아직까지는 크게 다양한 분야에서 사용되지는 않는다)

단점

  • 불필요한 많은 양의 코드 생성
  • 어려운 유지보수 < 제일 큰 단점
 

자동생성코드를 돌리다보면 내가 원하지 않는 불필요한 코드가 생성되고, 속도가 떨어질 수 있다

유지보수도 어렵다. 자동생성이라는 개념은 좋지만, 내가 원하는 특성이 들어간 것을 만들기에는 많이 불편하다.

 

'학부과정 > 소프트웨어공학' 카테고리의 다른 글

익스트림 프로그래밍  (0) 2023.01.11
Agile Methodology(애자일 방법론)  (0) 2022.10.10
나선형 패러다임(sprial)  (0) 2022.10.09
원형 패러다임  (0) 2022.10.06
폭포수 모델  (0) 2022.09.06

원형 패러다임에서 든 의문점 
: 미리 사전에 시스템에 대한 위험 개발을 최소화 할 수는 없을까? == 매 단계 체크해볼 수 없을까?

 그래서 나온게

나선형 패러다임(spiral)

  • 시스템 개발에 따른 위험 관리 최소화 목적
  • 폭포수 모델 장점 + 원형 패러다임 장점 + 위험분석
  • 나선을 돌며 점진적으로 완벽한 시스템 개발

나선형 패러다임의 4단계

  1. 계획 및 정의
  2. 위험 분석(단계마다 위험 분석을 한다)
  3. 개발
  4. 고객 평가

이러한 과정을 계속 반복한다

나선형 패러다임의 장점

  1. 비용과 시간이 오래 걸리는 큰 시스템 구축에 좋음
    : 초고속 정보통신망 개발, 큰 국책 사업, 대형 사업 등
  2. 성과를 보면서 조금씩 투자 :위험 부담을 줄일 수 있다

 

단점

  1. 개발 방법론이 복잡해서 프로젝트 관리가 어려워질 가능성이 높다
  2. 많은 고객을 상대해야 할 상업용 제품에 적용하기 힘들다
  3. 대형 프로젝트 위주라 많이 사용되지 않아 충분한 검증을 거치지 못한다

 

 

'학부과정 > 소프트웨어공학' 카테고리의 다른 글

Agile Methodology(애자일 방법론)  (0) 2022.10.10
4세대 기법  (0) 2022.10.10
원형 패러다임  (0) 2022.10.06
폭포수 모델  (0) 2022.09.06
소프트웨어 공학 패러다임  (0) 2022.09.06

+ Recent posts