1과목 요구사항 확인 Chapter 01.소프트웨어 개발방법론

임대진·2022년 3월 13일
0

1과목 요구사항 확인

Chapter 01. 소프트웨어 개발방법론

학습목표

1.소프트웨어 생명주기 모델 종류를 이해할 수 있다.

2.소프트웨어 개발방법론 종류를 이해할 수 있다.

  • 소프트웨어 생명주기 모델 (SDLC; Software Development Life Cycle)
  • 시스템의 요구분석부터 유지보수까지 전 공정을 체꼐화한 절차

SDLC 프로세스

  • 요구사항 분석 - 설계 - 구현 - 테스트 - 유지보수

폭포수 모델 개념

  • 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델

폭포수 모델 특징(Waterfall Model)

  • 가장 오래된 모델
  • 선형 순차적 모형으로 고전적 생명주기 모형이라고도 함
  • 모형의 적용 경험과 성공 사례가 많음
  • 단계별 정의와 산출물이 명확
  • 요구사항 변경이 어려움

프로토타이핑 모델 개념

  • 고객이 요구한 주요 기능을 프로토타입으로 구현하여, 고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델

프로토타이핑 모델 특징(Prototyping Model)

  • 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공
  • 포로토타입은 구현 단계의 구현 골격

나선형 모델 개념

  • 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델

나선형 모델 특징(Spiral Model)
계획 및 정의 - 위험 분석 - 개발 - 고객 평가

소프트웨어 개발방법론 종류

  • 구조적 방법론(Structured Development)
  • 정보공학 방법론(Information Engineering Develpopment)
  • 컴포넌트 기반 방법론(CBD; Component Based Development)
  • 애자일 방법론(Agile Development)

애자일 방법론(Agile Development)

  • 절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발방법론
  • 애자일은 개발과정의 어려움을 극복하기 위해 적극적으로 모색한 방법론

애자일 방법론의 개념

  • 소프트웨어 개발방법론의 하나로서 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법

XP(eXtreme Programming)의 12가지 기본원리

기본원리설명
짝 프로그래밍
(Pair Programming)
개발자 둘이서 짝으로 코딩하는 원리
공동 코드 소유
(Collective Ownership)
시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리
지속적인 통합
(CI; Continuous Integration)
매일 여러 번씩 소프트웨어를 통합하고 빌드해야 한다는 원리
계획 세우기
(Planning Process)
고객이 요구하는 비즈니스 가치를 정의하고, 개발자가 필요한 것은 무엇이며 어떤 부분에서 지연될 수 있는지를 알려주어야 한다는 원리
작은 릴리즈
(Small Release)
작은 시스템을 먼저 만들고, 짧은 단위로 업데이트한다는 원리
메타포어
(Metaphor)
공통적인 이름 체계와 시스템 서술서를 통해 고객과 개발자간의 의사소통을 원활하게 한다는 원리
간단한 디자인
(Simple Design)
현재의 요구사항에 적합한 가장 단순한 시스템을 설계한다는 원리
테스트 기반 개발
(TDD;Test Driven Develop)
작성해야 하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성한다는 원리
리팩토링
(Refactoring)
프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템 재구성한다는 원리
고객 상주
(On Site Customer)
개발자들의 질문에 즉각 대답해 줄 수 있는 고객을 프로젝트에 풀타임으로 상주시켜야 한다는 원리
코드 표준
(Coding Standard)
효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩 표준을 정의해야 한다는 원리

객체지향 분석 방법론 종류

  • 객체지향 분석(OOA: Object Oriented Analysis)은 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스 객체), 속성과 연산, 관계를 정의하여 모델링하는 기법
  • OOSE(야콥슨) 유스케이스에 의한 접근 방법으로 유스케이스를 모든 모델의 근간으로 활용되는 방법론
  • OMT(럼바우)
  • 그래픽 표기법을 이용하여 소프트웨어 구성요소를 모델링하는 방법론
  • 분석 절차는 객체 무델링 -> 동적 모델링 -> 기능 모델링 순서로 진행
  • OOD(부치)
  • 설계 문서화를 강조하여 다이어그램 중심으로 개발하는 방법론
profile
신입개발자 공부기록 블로그

0개의 댓글