일일구름 IT

[Chapter01] 소프트웨어 개발 방법론 본문

정보처리기사/요구사항 확인

[Chapter01] 소프트웨어 개발 방법론

일구름 2023. 4. 4. 19:57

1. 소프트웨어 개발 방법론

(1)소프트웨어 생명주기 모델

소프트웨어 생명주기(SDLC) 모델 개념

- 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차

 

소프트웨어 생명주기 모델 프로세스

1. 요구사항 분석

2. 설계

3. 구현

4. 테스트

5. 유지보수

 

소프트웨어 생명주기 모델 종류

  • 폭포수 모델
  • 프로토타이핑 모델
  • 나선형 모델 : 위험 감소
  • 반복적 모델 : 병행 개발

 

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

소프트웨어 개발 방법론 개념

- 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법이다.

 

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

  • 구조적 방법론 : 분할/정복 접근 방식, 하향식
  • 정보공학 방법론
  • 객체지향 방법론 : 복잡한 세계를 사람이 이해하는 방식
  • 컴포넌트 기반 방법론
  • 애자일 방법론
  • 제품 계열 방법론

 

애자일

- 절차보다 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론

 

애자일 방법론 유형

- XP

- 린

- 스크럼

 

XP(eXtreme Programming)

- 1~3주 반복 개발주기

- 5가지 가치, 12개 실천항목

 

XP 5가지 가치

  • 용기
  • 단순성
  • 의사소통
  • 피드백
  • 존중

 

XP 12가지 기본원리

  • 짝프로그래밍
  • 공동 코드 소유 : 시스템에 있는 코드 누구든 언제나 수정 가능
  • 지속적인 통합
  • 계획 세우기
  • 작은 릴리즈
  • 메타포어 : 공통적인 이름체계, 시스템 서술서로 고객과 개발자간의 의사소통 원활
  • 간단한 디자인
  • 테스트 기반 개발(TDD) : 작성해야하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통과할 수 있도록 프로그램의 코드를 작성
  • 리팩토링 : 프로그램의 기능을 바꾸지 않으며 중복제거, 단순화등을 위해 시스템 재구성
  • 40시간 작업
  • 고객 상주
  • 코드 표준

 

스크럼(SCRUM)

- 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

 

  •  백로그 : 제품, 프로젝트에 대한 요구사항
  •  스프린트 : 2~4주
  •  스크럼 미팅 : 매일 15분 정도
  •  스크럼 마스터
  •  스프린트 회고
  •  번 다운 차트 : 백로그는 수직축, 시간은 수평축에 위치

 

백로그 -> 스프린트, 스크럼 미팅 -> 스프린트 회고

 

(3) 객체지향 분석 방법론

객체지향 개념

- 실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현하는 기법

 

객체지향 구성요소 (클객 메 메인속)

  • 클래스
  • 객체
  • 매서드
  • 메시지
  • 인스턴스
  • 속성

 

객체지향 기법 (캡상다추정관)

  • 캡슐화
  • 상속화
  • 다형성 : 오버로딩(같은 이름 메서드 여러개), 오버라이딩(상위 클래스 메서드 하위 클래스가 재정의)
  • 추상화
  • 정보 은닉
  • 관계성

 

객체지향 설계 원칙 (SOLID)

  • 단일 폐쇄 법칙(SRP)
  • 개방 폐쇄 법칙(OCP)
  • 리스코프 치환 법칙(LSP)
  • 인터페이스 분리의 법칙(ISP)
  • 의존성 역전의 원칙(DIP)

 

객체지향 분석 개념

- 사용자의 요구를 분석하여 요구된 문제와 관련된 모든 클래스, 속성, 연산, 관계를 정의하는 모델링 기법

 

객체지향 분석 방법론 종류

  • OOSE (야콥슨) : 유스케이스
  • OMT (럼바우) : 객체, 동적, 기능 모델링
  • OOD (부치) : 다이어그램
  • 코드-요든 : E-R 다이어그램

 

기능 모델링 주요 기법

  1. 데이터 흐름도 (DFD)
  2. 자료 사전 (DD)