반응형
-
객체 지향 방법론의 개요
-
정의
- 프로그램을 객체와 객체 간의 인터페이스 형태로 구성하기 위하여 문제 영역에서 객체, 클래스 및 이들 간의 관계를 식별하여 설계 모델로 변환하는 방법론
- 복잡한 메커니즘의 현실 세계를 사람이 이해하는 방식으로 시스템에 적용시키는 개념으로, 이를 위해 객체, 클래스, 메시지를 기본 모형으로 제시
-
필요성
- 객체 지향 시스템을 개발하기 위한 방법론이 필요
- 소프트웨어 위기와 낮은 생산성의 극복이 필요
- 반복적인 유사 프로그램의 개발로 인한 오버헤드 발생의 절감을 위해 필요
-
특징
- 대부분 기존의 폭포수 모델을 근간으로 함
- 분석, 설계, 구현의 벽이 없고 일관성, 추적성, 재사용성, 유지보수성 향상
- 모형의 적합성, 즉 현실 세계 및 인간의 사고 방식과 유사
-
-
객체 지향 방법론의 절차 및 단계별 작업 항목
-
절차
- 단계별 작업 항목
-
단계 | 작업 항목 | 설명 |
객체 지향 분석 | 객체 모델링 |
|
동적 모델링 |
|
|
기능 모델링 |
|
|
객체 지향 설계 | 시스템 설계 |
|
객체 설계 |
|
|
객체 지향 구현 | 객체 지행 언어(객체,클래스)로 상속 지원 |
|
-
대표적인 객체 지향 방법론의 종류
-
Rumbaugh의 OMT(Object Modeling Technique)
-
특징
- 실세계에 대한 모형화를 추상화, 캡슐화, 모듈화, 계층화를 통해 수행
- 객체 지향 분석, 객체 지향 설계 및 구현 단계로 구성
- 분석의 강점(객체 모형, 동적 모형, 기능 모형)
- 객체 지향 분석
- 실세계를 이해하기 위한 모형화 작업
-
-
구분 | 내용 | 산출물 |
객체모형 | 시스템의 정적 구조 파악(객체 식별, 관계 정의, 클래스의 속성(Attribute)과 연산 기능 정의) | 객체도(Object Diagram) |
동적모형 | 동시에 활동하는 객체들의 제어 흐름, 상호 반응 및 연산 순서를 표현 | 상태도(State Diagram) |
기능모형 | 시스템 내에서 데이터 값이 변하는 과정을 표현 | 자료 흐름도(DFD) |
- 객체 지향 설계
- 실세계의 문제 영역에 대한 표현을 소프트웨어로 된 해결 영역으로 사상
구분 | 내용 |
시스템 설계 |
|
객체 설계 |
|
-
구현
- 세부 객체 모형, 동적 모형, 기능 모형 및 기타 문서를 사용하여 시스템을 구현
- 객체 지향 언어를 사용하면 가장 용이하지만 비객체 지향 언어를 사용하여 구현도 가능
-
Booch의 OOD(Object Orient Design)
- 특징 : 설계만 존재
- 분석 : 정적 모델과 동적 모델로 표현
정적모델 |
|
동적모델 |
|
- 개발 프로세스
클래스와 객체 식별 |
|
클래스와 객체 식별 |
|
클래스와 객체의 관계 식별 |
|
구현 |
|
-
Jacobson의 OOSE(Object Oriented Software Engineering)
-
특징
- 시스템의 변화에 유연성이 있음
-
분석
- 분석 모델은 프로그래밍 언어로 구현하기에는 정형적이지 못함(연산, 인터페이스, 파라미터 등의 정제화 필요)
- Use Case : 시스템과 사용자의 연관성 식별
- Actor : 정의 및 역할 작성 : Use Case Diagram, Use Case Description 작성
-
설계 및 구현
- 실제 시스템은 구현될 환경에 적합하도록 설계 모델로 변환되며 성능 요구 사항, 실시간 요구 사항과 동시성, H/W, 시스템 S/W, DBMS와 프로그래밍 언어를 고려해야 함
- 객체 지향 설계를 진행하면서 분석 결과들이 시스템 구축에 적합한지 분석 모델을 통해 확인되고, 분석 모델에 대한 수정을 함
-
-
객체 지향 방법론의 발전 동향
-
객체 지향 기술의 발전
-
객체 지향 방법론의 동향
- 구축 과정 일부만이 아닌 모델링, 분석, 설계, 구현, 테스트 전 과정에 걸쳐 포괄적으로 적용하는 것이 효과적
- 분산 객체 등을 통해 강력한 분산 환경을 구축하는 데 유용
- 인간의 사고 방식과 유사하고 개발 접근이 쉬워 인공지능이나 신경망 같은 차세대 컴퓨터 산업에 응용 가능
- CBD의 한 경로(Path)인 컴포넌트 개발에 객체 지향 분석, 설계 구현 기법이 사용되고 있음
- 소비자들도 개발(Build) 위주의 소프트웨어가 아닌 구매(Buy) 위주의 소프트웨어 이용 패턴을 가질 수 있음
-
객체지향 방법론의 한계점
- 이진 형태의 파일을 연결하는 표준이 부재하며 각 객체는 동일 컴파일러를 사용해야 함.
- 다른 언어간에 객체를 호출하거나 재사용은 거의 불가능함.
- 완성된 이진형태의 객체를 변경하고자 하면 소스 레벨의 어플리케이션을 재컴파일 해야 함
- 개발방법론은 전통적인 SDLC를 따르므로 문제점 인지 및 대응, 문서화에 제약이 따르며 절차적 프로그래밍에 익숙한 개발자에게는 충격이며, 적응력이 많이 떨어짐.
- 개발 수준이 저수준의 추상화개념이므로, 실제로 재사용 가능한 소프트웨어 개발은 기대하기 어려움.
- 개발의 생산성 및 유지보수성을 위한 아키텍쳐 및 표준적용이 어려움
- 대규모 프로젝트에서의 확장성이 떨어짐.
-
반응형
'밥벌이 > 소프트웨어 공학' 카테고리의 다른 글
구조적 방법론 (0) | 2010.08.30 |
---|---|
정보 공학 방법론 (0) | 2010.08.30 |
컴포넌트 기반 개발(CBD; Component Based Development) 방법론 (0) | 2010.08.30 |
Agile 프로세스 (0) | 2010.08.30 |
XP(eXtreme Programming) (0) | 2010.08.30 |