반응형
1. 소프트웨어 개발 방법론의 개요
소프트웨어 개발 방법론은 소프트웨어 개발, 유지보수 등에 필요한 여러 가지 일들의 수행 방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화 한 것이다.
- 목적은 소프트웨어 생산성과 품질 향상이다.
- 종류에는 구조적, 정보공학, 객체지향, 컴포넌트 기반, 애자일, 제품 계열 방법론이 있다.
2. 구조적 방법론
정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리(Process)중심의 방법론
- 1960년대까지 가장 많이 적용되던 방식
- 쉬운 이해 및 검증이 가능한 프로그램 코드를 생성하는 것이 목적
- 복잡한 문제를 다루기 위해 분할과 정복 원리를 적용
- 구조, 흐름, 간결, 간단 이 구조적 개발방법의 특징이다.
✔ 구조적 방법론의 절차
- 요구사항 분석 ➡ 구조적 분석 ➡ 구조적 설계 ➡ 구조적 프로그래밍
3. 정보공학 방법론
정보공학 개발방법론은 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(Data)중심의 방법론이다.
- 정보 시스템 개발 주기를 이용하여 대규모 정보 시스템을 구축하는 적합
- 1980년대 중반에 등장한 방법
4. 객체지향 방법론
객체지향 방법론은 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체(Object)로 만들어, 소프트웨어를 개발할 때 기계의 부품을 조립하듯이 객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론
- 구조걱 기법의 문제점으로 인한 소프트웨어 위기의 해결책으로 채택
- 구성 요소에는 객체(Objecet), 클래스(Class), 메시지(Message) 등이 있다.
- 기본 원칙으로는 캡슐화(Encapsulation), 정보은닉(Information Hiding), 추상화(Abstraction), 상속성(inheritance), 다형성(Polymorphism) 등이 있다.
✔ 객체 지향 방법론의 절차
- 요구 분석 ➡ 설계 ➡ 구현 ➡ 테스트 및 검증 ➡ 인도
5. 컴포넌트 기반(CBD) 방법론
컴포넌트 기반(Component Based Design) 방법론은 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
✅ 컴포넌트(Component): 문서, 소스코드, 파일, 라이브러리 등과 같은 모듈하된 자원으로 재사용 가능하다.
- 컴포넌트의 재상이 가능하여 시간과 노력을 절감
- 새로운 기능을 추가하는 것이 간단하여 확장성 보장
- 유지 보수 비용 최소화하고 생산성 및 품질을 향상
✔ 컴포넌트 기반 방법론의 절차
- 개발 준비 ➡ 분석 ➡ 설계 ➡ 구현 ➡ 테스트 ➡ 전개 ➡ 인도
6. 애자일(Agile) 방법론
고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행하는 방법론이다.
- 소규모 프로젝트, 숙달된 개발자, 급변하는 요구사항에 적합하다.
- 대표적인 종류로는 익스트림 프로그래밍, 스크럼, 칸반, 크리스탈 등이 있다.
✔ 애자일 방법론의 절차
- 사용자 스토리 ➡ (계획 ➡ 개발 ➡ 승인 테스트) 반복한다.
- 사용자 스토리: 사용자의 요구사항을 의미한다.
7. 제품 계열 방법론
제품 계열 방법론은 특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론이다.
- 임베디드 소프트웨어를 만드는데 적합하다.
- 임베디드 소프트웨어란 디지털, TV, 전기밥솥, 냉장고 등 해당 제품의 특정 기능에 맞게 특화되어서 제품 자체에 포함된 소프트웨어
- 제품 계열 방법론은 영역공학, 응용공학으로 나뉜다.
- 영역공학: 영역 분석, 설계, 핵심 자산 구현하는 영역
- 응용공학: 제품 요구 분석, 설계, 제품을 구현하는 영역
- 영역공학과 응용공학의 연계를 위해서는 제품의 요구사항, 아키텍처, 조립 생산이 필요하다.
반응형
'자격증 > 정보처리필기' 카테고리의 다른 글
[정보처리산업기사] 13강 XP 기법 (0) | 2022.03.30 |
---|---|
[정보처리산업기사] 12강 스크럼 기법 (0) | 2022.03.30 |
[정보처리산업기사] 10강 소프트웨어 생명주기 (0) | 2022.03.30 |
[정보처리산업기사] 9강 TCP/IP (0) | 2022.03.30 |
[정보처리산업기사] 8강 프로토콜의 개념 (0) | 2022.03.30 |