천재 블로그

[정보처리기사 실기] 객체지향 기법의 생명 주기 본문

프로그래밍

[정보처리기사 실기] 객체지향 기법의 생명 주기

Dondons 2018. 6. 9. 23:46





객체지향 기법의 생명 주기




객체지향 기법을 사용하는 소프트웨어 개발 과정의 가장 큰 특징은 각 과정에서 사용되는 객체, 클래스, 메소드, 속성 등이 동일한 개념으로 사용된다는 것


  • 개발 전 과정에 걸쳐 동일한 방법론과표현 기법이 적용된다는 장점을 갖고 있다.
  • 개발 과정 사이엥서 같은 용어와 개념을 사용하여 분석, 설계, 구현 단계 사이의 전환이 쉬우므로 각 과정이 명확하게 순차적으로 이루어지지는 않는다. (분석, 설계, 구현 단계에서 수행하는 작업이 분명히 다른 작업으로 구별될 수 는 있으나, 각 단계의 순서가 명확하게 지켜지지 않는다는 의미)
  • 객체지향 기법의 생명 주기는 계획 및 분석, 설계, 구현, 테스트 및 검증 과정으로 이루어진다.



계획 및 분석 → 설계 → 구현 → 테스트 및 검증








객체지향 분석(OOP; Object Oriented Analysis)




객체지향 분석은 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스(객체), 이와 연관된 속성과 연산, 그들간의 관계 등을 정의하여 모델링하는 작업


  • 소프트웨어를 개발하기 위한 비즈니스(업무)를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나누어 분석
  • 분석가에게 주요한 모델링 구성 요소인 클래스, 객체, 속성, 연산들을 표현해서 문제를 모형화 할 수 있게 해줌
  • 객체는 클래스로부터 인스턴스화 되고, 이 클래스를 식별하는 것이 객체지향분석의 주요한 목적
  • 객체지향 분석의 방법론에는 Rumbaugh(럼바우) 방법, Booch(부치) 방법, Jacobson 방법, Coad와 Yourdon 방법, Wirfs-Brock방법 등이 있다.






객체지향 설계(OOD; Object Oriented Design)




객체지향 설계는 객체지향 분석(OOA)을 사용해서 생성한 여러 가지 분석 모델을 설계 모델로 변환하는 작업으로, 시스템 설계와 객체 설계를 수행


  • 최근 소프트웨어 제품의 전형적인 타입인 사용자 중심, 대화식 프로그램의 개발에 적합
  • 객체지향 설계에서 가장 중요한 문제는 시스템을 구성하는 객체와 속성, 연산을 인식
  • 객체지향 설계의 설계 개념은 추상화, 정보 은닉, 기능 독립성, 모듈화, 상속성을 바탕으로 하며 이 중 가장 중요한 개념은 모듈화
  • 객체지향 설계를 위해 럼바우의 객체지향 설계, 부치(Booch)의 객체지향 설계, 윌리엄 로렌슨(William Lorensen)의 객체지향 설계 방법 등이 제안되었으며, 이 중 일반적으로 럼바우의 객체지향 설계가 가장 많이 사용됨


  • 일반적으로 객체지향 설계 단계의 순서


문제 정의 → 요구 명세화 →  객체 연산자 정의 → 객체 인터페이스 결정 →  객체 구현








객체지향 구현



  • 구현은 설계 단계에서 생성된 설계 모델과 명세서를 근거로 하여 코딩하는 단계
  • 객체지향 프로그래밍을 이용하면 용이하게 구현가능
  • 객체는 순처적으로(Sequentially)또는 동시적으로(Concurrently) 구현가능



객체지향 프로그래밍(OOP; Object Oriented Programming)


객체지향 프로그래밍은 새로운 개념의 모듈 단위 즉 객체라는 단위를 중심으로 하여 프로그램을 개발하는 기법

  • 객체라는 단위를 이용하여 현실 세계에 가까운 방식으로 프로그래밍
  • 현실 세계에 가까운 방식이므로 이해하기 쉽고 조작하기 쉬운 프로그램을 개발할 수 있음
  • 유지보수가 쉽고 재사용 가능한 프로그램을 만들 수 있음
  • 이미 개발된 프로그램을 이용해 빠르게 확장된 프로그램을 개발할 수 있음


객체지향 프로그래밍 언어의 분류


객체 기반 언어 : Ada, Actor와 같이 객체의 개념만을 지원하는 언어

클래스 기반 언어 : Clu와 같이 객체와 클래스의 개념을 지원하는 언어

객체 지향성 언어 : 객체, 클래스, 상속의 개념을 모두 지원하는 가장 좋은 언어

                        초기에 발표된 Simula로부터 Smalltalk, C++, Objective C, java 등이 있음







객체지향 테스트



클래스 테스트 : 구조적 기법에서의 단위 테스트와 같은 개념으로 가장 작은 단위, 즉 캡슐화된 클래스나 객체를 검사하는 것

통합 테스트 :  객체를 몇 개 결합하여 하나의 시스템으로 완성시키는 과정에서의 검사로, 스레드 기반 테스트와 사용 기반 테스트로 분류할 수 있음


 스레드 기반(Tread-Based) 테스트 

시스템에 대한 하느의 입력이나 이벤트에 응답하는 데 요구되는 클래스들을 통합하는 것으로, 각각의 스레드가 통합되고 개별적으로 테스트 됨

 사용 기반(Use-Based) 테스트 

독립 클래스를 테스트한 후, 독립 클래스를 사용하는 다음 계층의 종속 클래스를 테스트



확인 테스트 : 사용자 요구사항에 대한 만족여부 검사

시스템 테스트 : 모든 요소들이 적합하게 통합되고 올바른 기능을 수행하는지 검사







Comments