정보시스템 개발방법은 구조적 방법론, 정보공학 방법론, 객체지향 방법론이 있습니다. 3가지 방법론 중 객체지향 방법론을 알려드립니다.
객체 지향 방법론의 개요
객체지향(object oriented)의 개념은 이미 오래 전에 소개되었지만 1990년 대에 들어와 시스템 개발에 있어 새로운 방향을 제시한 객체지향 프로그래밍의 개념에 근거를 두고 등장하였습니다. 객체지향이라는 새로운 패러다임은 주로 시스템 분석설계에 적용되어 '객체지향분석'과 '객체지향설계'로 발전하였습니다.
(1) 객체지향의 개요
지금까지 주로 사용되어온 구조적 방법론이나 정보공학 방법론들은 시스템이나 구성 요소들이 수행하는 기능을 중심으로 분석 설계 구현이 이루어지는 기능지향적 접근 방법을 취하고 있다는 점에서 공통점이 있습니다. 예를 들어, 기업의 재고관리시스템을 개발하는 경우, 개발의 초점이 주로 주문, 검수, 입고, 출고 등과 같은 기능에 맞춰져 있었습니다.
그런데 이러한 접근방식은 사용자 요구사항이 변경되면 시스템의 상당부분을 재구축해야 할 뿐만 아니라. 그 과정이 매우 복잡하다는 등의 문제를 안고 있습니다. 이와 같은 문제점을 해결하기 위해 1990년 대에 등장한 것이 바로 객체지향 방법론으로서 시스템분석, 설계, 구현이 '기능'이 아니라 '객체'를 중심으로 이루어진다는 점에서 전통적 방법론과는 근본적으로 다릅니다.
객체지향개발 방법론은 "객체를 시스템분석 및 설계의 기본단위로 하여, 일련의 객체 및 객체들 사이의 관계를 토대로 시스템을 개발하는 접근방법으로 정의될 수 있습니다. 이 개념은 여러개의 부품으로 이루어진 스테레오시스템을 그 예로 들 수 있습니다. 스테레오시스템은 CD 및 카세트 플레이어, 앰프, 스피커, 이퀄라이저 등의 컴포넌트로 구성되어 있는데 여기서 각 컴포넌트를 객체라고 합니다. 각각의 객체는 일정한 데이터와 함께 작동을 하게 되면 이를 위한 프로시저(procedure)를 가지고 있습니다.
여기에서 객체란 하나의 상태와 그 상태 하에서 수행되는 일련의 작업에 의해 정의되는 독립적인 실체로서 유형적인 실체 뿐만 아니라 개념이나 논리와 같은 무형적인 것도 객체로 간주합니다. 그리고 하나 이상의 유사한 객체를 묶어서 하나의 공통된 특성으로 표현한 것을 클래스(class)라 하며, 클래스의 관점에서 객체는 클래스에서 만들어진 하나의 인헤리턴스라고 정의합니다.
객체지향설계에서 모든 연산은 객체에 메시지를 보냄에 의해서 이루어지며, 그 결과로 하나의 객체를 만들어 냅니다. 메시지는 객체에게 연산을 수행하게 할 수 있는 유일한 인터페이스 규약으로 다른 언어에서의 함수와 유사하며 메소드로 구현됩니다.
(2) 객체지향 프로그래밍
객체지향 프로그래밍(Object Oriented Programming : OOP)은 데이터와 프로시저를 하나의 객체에 저장하여 두고, 메시지를 통해 다른 객체와 접촉하는 방식입니다. 객체 지향 프로그래밍은 객체지향 소프트웨어 개발 접근법의 일부분입니다.
객체지향 소프트웨어 개발은 전통적인 방법론과는 차이가 있는데, 이는 비즈니스 프로세스와 데이터를 개별적으로 모델링 하는 대신에, 데이터와 프로시저를 통합된 객체로 결합하는 방식이다. 시스템은 클래스와 객체의 집합과 이들 사이의 관계로 간주합니다. 객체는 미래 애플리케이션의 빌딩 블럭으로서 정의, 프로그램, 문서화 됩니다.
객체는 재사용이 용이합니다. 따라서 객체지향 소프트웨어 개발은 재사용의 장점을 활용하기 때문에 소프트웨어 작성에 따른 시간과 비용을 줄일 수 있습니다. 그러나 이 기법을 활용하는 조직은 끌어쓸 객체들의 라이브러리를 구축해 놓아야 재상용의 이점으로 이한 혜택을 극대화 할 수 있습니다.
구조적 개발방법론과 마찬가지로 객체지향 방법론도 전통적인 시스템개발수명주기 모형에 기반을 두고 객체지향 프로그래밍 언어 단계에서 출발하여 객체지향분석, 객체지향설계, 구현 단계로 발전되어 왔습니다. 물론, 현재까지 소프트웨어 개발의 모든 단계를 완전하게 지원하는 방법론은 제시되지 않았습니다. 거의 대부분의 방법론이 분석과 설계 단계만을 지원하고 있으며, 최근 들어 이러한 각 단계를 분석에서 구현단계까지 연결시키려는 움직임이 가시화되고 있습니다.
객체지향 개발의 장단점
전통적 개발방법론에 비해 객체지향 소프트웨어 개발방법론은 다음과 같은 여러가지 장점을 지니고 있습니다.
첫째, 개별 객체가 비교적 작고 관리하기 용이하므로 시스템개발의 복잡성을 줄일 수 있으며, 구축 및 유지 보수가 더 용이하고 신속합니다.
둘째, 서로 관련이 있는 프로그램과 데이터를 하나의 객체로 담기 때문에 해당 객체를 다른 시스템에서 재사용할 수 있습니다.
셋째, 프로그램 재사용이 가능하므로 프로그램 품질제고 효과도 기대할 수 있습니다.
넷째, 모듈단위 설계가 가능하기 때문에 프로그램 유지, 보수 및 확장이 수월합니다. 즉, 기존 객체를 수정하거나 새 객체를 추가함으로써 얼마든지 필요에 따라 애플리케이션을 유지 및 보수할 수 있기 때문에 개발된 시스템의 유연성이 높습니다.
반면에 객체지향 방법론은 전혀 새로운 차원의 방법론이므로 이를 적용하려면 기존의 개발자들에 대한 상당한 수준의 재교육이 필요합니다. 그리고 일반적으로 객체지향 프로그래밍은 언어로 작성된 시스펨은 다른 프로그램 언어로 된 프로그램보다 실행속도가 느리다는 점은 단점으로 지적되고 있습니다.
'기타 소소한 이야기' 카테고리의 다른 글
정보시스템의 운영 알려드립니다. (0) | 2024.02.21 |
---|---|
정보시스템 개발 방법 기타 개발방법론 알려드립니다. (0) | 2024.02.20 |
정보시스템 개발방법 정보공학 방법론 알려드립니다. (0) | 2024.02.18 |
정보시스템 개발방법 구조적 방법론에 대하여 알려드립니다. (0) | 2024.02.17 |
정보시스템 원형개발 접근법의 의의 및 단계에 대하여 알려드립니다. (0) | 2024.02.16 |