Software 개발 방법론이란??
Software 개발, 유지보수등에 필요한 일들을 효율적으로 수행하려는 과정에서
필요한 각종 기법 및 도구들을 체계적으로 정리하여 표준화한 것이다.
소프트웨어 방법론의 목적
- 생산성 향상
- 품질 향상
소프트웨어 방법론의 종류
- 구조적 방법론 ( Structured Development Engineering )
- 정보공학 방법론 ( Information Engineering )
- 객체지향 방법론( Object Oriented Engineering )
- 컴포넌트 기반( CBD : Component Based Design ) 방법론
- 애자일 방법론( Agile )
- 제품계열 방법론( Product Line Engineering )
구조적 방법론 ( 1960년 까지 많이 쓰던 방법론 )
- 정형화된 절차에 따라 요구사항 분석, 파악해서 문서화한다.
- 쉬운 이해 및 검증이 가능한 코드를 생성하기 위한 목적
- 복잡한 문제를 다루기 위해 분할, 정복 원리를 적용한다 ( Divide and Conquer )
구조적 방법론의 절차
타당성 검토 -> 계획 -> 요구사항 -> 설계 -> 구현 -> 시험 -> 운영 및 유지보수
정보공학 방법론 ( Information Engineering )
정보 시스템 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법을
상호 연관성 있게 통합 및 적용하는 자료( Data ) 중심의 방법론이다.
정보 시스템 개발 주기를 이용하여 대규모 정보 시스템을 구축하는데 적합하다.
정보공학 방법론의 절차
정보 전략 계획 수립 -> 업무 영업 분석 -> 업무 시스템 설계 -> 업무 시스템 구축
객체지향 방법론 ( Object Oriented Engineering )
객체지향 방법론은 개체( Entity )를 하나의 객체로 만들어 부품을 조립하듯이 객체들을 조립해 소프트웨어를 구현하는 방법론이다.
객체지향 방법론을 구조적 방법론의 문제를 해결하기 위한 소프트웨어 위기의 해결책으로 선택( 채택 ) 되었다.
객체지향 방법론의 구성요소
- 객체 ( Object )
- 클래사 ( Class )
- 메세지 ( Message )
객체지향 방법론의 기본 원칙
- 캡슐화 ( Encapsulation )
- 정보은닉 ( Information Hiding )
- 추상화 ( Abstraction )
- 상속성 ( Inheritance )
- 다형성 ( Polymorphism )
객체지향 방법론의 절차
요구 분석 -> 설계 -> 구현 -> 테스트 및 검증 -> 인도
컴포넌트 기반 방법론 ( CBD : Component Based Design )
기존 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 새로운 애플리케이션을 만드는 방법론이다.
컴포넌트의 재사용 ( Reusability )이 가능하여 시간과 노력을 절감할 수 있다.
새로운 기능을 추가하는 것이 간단하여 확장성이 보장됨
유지보수 비용을 최고화하고 생산성 및 품질을 향상시킬 수 있다.
컴포넌트 기반 방법론의 절차
개발 준비 -> 분석 -> 설계 -> 구현 -> 테스트 -> 전개 -> 인도
애자일 ( Agile ) 방법론
고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하며 개발을 진행하는 방법론이다.
소규모 프로젝트, 고도의 숙달된 개발자, 급변하는 요구사항에 적합함
애자일 방법론의 절차
사용자 스토리( 사용자 요구사항 ) -> [ 계획 -> 개발 -> 승인 테스트 ]
프로젝트 완료 시까지 [ 절차 ]를 반복한다.
제품 계열 방법론 ( Product Line Engineering )
특정 제품에 적용하고 싶은 공통된 기능을 정의하여 개발하는 방법론이다
제품 계열 방법론의 특징
- 임베디드 소프트웨어를 만드는데 적합하다.
- 영역 공학과 응용 공학으로 구분된다.
'Etc > 정보처리기사' 카테고리의 다른 글
[정처기] UML에 대해 알아보자! (0) | 2022.02.17 |
---|---|
[정처기] 요구사항 정의를 알아보자! (0) | 2022.02.16 |
[정처기] Software Life Cycle ( 수명주기 )를 알아보자! (0) | 2022.02.16 |
[정처기] TCP/IP를 알아보자! (0) | 2022.02.15 |
[정처기] OSI 7계층을 알아보자! (0) | 2022.02.15 |