본문 바로가기

정보처리

객체지향 기법의 생명 주기

728x90

1. 객체지향 기법의 생명 주기

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

- 개발 전 과정에 걸쳐 동일한 방법론과 표현 기법이 적용된다는 장점을 갖고 있음

- 개발 과정 사이에서 같은 용어와 개념을 사용하여 분석, 설계, 구현 단계 사이의 전환이 쉬우므로 각 과정이 명확하게 순차적으로 이루어지지는 않음

- 객체지향 기법의 생명 주기는 계획 및 분석, 설계, 구현, 테스트 및 검증 과정으로 이루어짐

 

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

 

2. 객체지향 분석

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

- 소프트웨어를 개발하기 위한 비즈니스(업무)를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나누어서 분석

- 분석가에게 주요한 모델링 구성 요소인 클래스, 객체, 속성, 연산들을 표현해서 문제를 모형화할 수 있게 해 줌

- 객체는 클래스로부터 인스턴스화되고, 이 클래스를 식별하는 것이 객체지향 분석의 주요한 목적

- 객체지향 분석의 방법론에는 Rumbaugh(럼바우) 방법, Booch(부치) 방법, Jacobson 방법, Coad와 Yourdon 방법, Wirfs-Brock 방법 등이 있음

 

3. 객체지향 설계

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

- 최근 소프트웨어 제품의 전형적인 타입인 사용자 중심, 대화식 프로그램의 개발에 적합

- 객체지향 설계에서 가장 중요한 문제는 시스템을 구성하는 객체와 속성, 연산을 인식하는 것

- 객체지향 설계의 설계 개념은 추상화, 정보 은닉, 기능 독립성, 모듈화, 상속성을 바탕으로 하며 이 중 가장 중요한 개념은 모듈화

- 객체지향 설계를 위해 럼바우의 객체지향 설계, 부치의 객체지향 설계 윌리엄 로렌슨의 객체지향 설계 방법 등이 제안되었으며, 이 중 일반적으로 럼바우의 객체지향 설계가 가장 많이 사용

- 일반적으로 객체지향 설계 단계의 순서는 문제정의 -> 요구 명세화 -> 객체 연산자 정의 -> 객체 인터페이스 결정 -> 객체 구현 순으로 진행

 

4. 객체지향 구현

- 구현은 설계 단계에서 생성된 설계 모델과 명세서를 근거로 하여 코딩하는 단계

- 객체지향 프로그래밍을 이용하면 용이하게 구현

- 객체는 순차적으로(Sequentially) 또는 동시적으로(Concurrently) 구현될 수 있음

 

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

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

- 객체라는 단위를 이용하여 현실 세계에 가까운 방식으로 프로그래밍

- 현실 세계에 가까운 방식이므로 이해하기 쉽고 조작하기 쉬운 프로그램을 개발할 수 있음

- 유지보수가 쉽고 재사용 가능한 프로그램을 만들 수 있음

- 이미 개발된 프로그램을 이용해 빠르게 확장된 프로그램을 개발할 수 있음

- 객체지향 프로그래밍 언어는 다음과 같이 분류

객체 기반 언어 Ada, Actor오 ㅏ같이 객체의 개념만을 지원하는 언어
클래스 기반 언어 Clu와 같이 객체와 클래스의 개념을 지원하는 언어
객체 지향성 언어 - 객체, 클래스, 상속의 개념을 모두 지원하는 언어
- Smalltalk, C++, jajva 등

 

5. 객체지향 테스트

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

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

스레드 기반(Thread-Based) 테스트 시스템에 대한 하나의 입력이나 이벤트에 응답하는 데 요구되는 클래스들을 통합하는 것으로, 각각의 스레드가 통합되고 개별적으로 테스트 됨
사용 기반(Use-Based) 테스트 독립 클래스를 테스트한 후 독립 클래스를 사용하는 다음 계층의 종속 클래스를 테스트

 

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

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

728x90

'정보처리' 카테고리의 다른 글

순서도와 C언어의 기본  (0) 2024.03.27
아키텍처 스타일  (0) 2024.03.26
객체지향 기법의 기본 원칙  (0) 2024.03.25
객체지향 기법의 개요  (0) 2024.03.25
프로그래머  (0) 2024.03.25