본문 바로가기

Lobo's study room/정보처리기사

[Lobo's Theory]소프트웨어 개발 방법론

개발할 소프트웨어에 필요한 과정들을 체계적으로 정리한 방법론입니다.

  • 절차와 도구, 방법, 산출물, 기법 등

대표적인 방법론으로는 구조적 방법론, 정보공학 방법론, 객체지향 개발 방법론이 있습니다.

(1)구조적 방법론

절차지향 방법론으로, 계획, 분석, 설계, 구현, 유지보수의 단계를 거칩니다.

하향식의 제한된 구조를 가집니다.

데이터 흐름도(DFD), 자료 사전(DD), 상태전이도(STD), MiniSpec 등을 사용합니다.

DFD:데이터가 어떻게 흘러가는지

DD:데이터가 어떤 구조를 가지고 있는지

STD:상태가 어떻게 변경이 될것인가(ex.회원가입 1단계-2단계-3단계)

MiniSpec:일처리를 상세하게 적어놓은 것

(2)정보공학 방법론

기업의 프로세스를 분석하여 소프트웨어를 개발하는 방법론입니다.

기업의 데이터를 중심으로 분석하며, 계획, 분석, 설계, 구축의 단계를 거칩니다.

기업에서 사용. 기업의 내부 내용 분석 - 기업에 쓰는 프로세스 생성.

기업의 데이터 중심 방법론.기업의 경영전략에 초점을 둔다.

(3)객체지향 개발 방법론

현실 세계의 객체를 모델링하여 소프트웨어를 개발하는 방법론입니다.

현실 세계의 객체를 속성(고유의 값)과 메서드(속성값 변경) 형태로 구현한 것.

객체,클래스 간의 관계를 식별하여 설계모델로 변환하는 방법론. UML

캡슐화, 정보은닉, 상속, 다형화, 추상화 등의 개념을 사용합니다.

캡슐화:싸는것.private-get x/set x 등을 이용하여 데이터를 바꾸는 것

정보은닉:외부에서 함부로 볼수없는것

상속:부모의 속성, 메서드를 물려받는 것

다형화:

-메서드 오버로딩(메서드의 이름은 똑같은데 인자값은 달라지는 것)

-오버라이딩(메서드를 물려받았을때 재정의하는것)

추상화:공통의 성질을 묶어서 하위 클래스에서 부모가 가지고 있는 공통의 성질을 가져다가 그것들을 실제로 구현하는 것

(4)CBD(Component Based Development) 분석 방법론

재사용 가능한 컴포넌트 또는 상용 컴포넌트를 조합해 애플리케이션 개발

새로운 기능 추가가 쉬운 확장성.생산성 및 품질이 향상. 시스템 유지보수 비용 최소화.

(5)애자일 방법론

고객의 요구사항에 맞게 빠르게 개발. 민첩하고 빠르게.

XP, SCRUM, FDD, Crystal

공정과 도구보다는 개인과 상호작용을