[CISA 이론 정리 - 3장] 06 대안적 개발 방법론 (2/2)

반응형
반응형

4. 컴포넌트 기반 개발(CBD: Component Based Development)

(1) 의의

① CBD는 OOSD에서 파생된 개발 접근법이다.

② 컴포넌트(Component)란 다른 컴포넌트와 연계되도록 인터페이스를 표준화하여 제작한 프로그램 단위이다.

③ 컴포넌트는 개발 언어나 운영 체제와 무관하게 상호 작동할 수 있다.

④ 이렇게 하여 이질적 환경에서 개발된 여러 프로그램 요소들을 재사용한다.

⑤ OOSD가 소스 코드를 재사용한다면 CBD에서는 목적 코드를 재사용한다는 차이가 있다.



(2) 기술적 특성

① CBD는 웹 기반 응용 시스템 개발에 중요한 요소이며 기본적으로 Active X나 자바 애플릿이 필요하다.

② CBD 모델에는 MS 계열의 COM/DCOM, Sun의 EJB, OMG의 CORBA가 있다.

③ CBD에서 다른 컴포넌트를 호출할 때 사용하는 프로토콜은 RPC(Remote Procedure Call, 원격 절차 호출)이다.

④ 컴포넌트는 실행되는 위치에 따라 크게 클라이언트 컴포넌트와 서버 컴포넌트가 있다.

⑤ 또한, 독립 실행 가능 여부에 따라 독립형 컴포넌트와 프로세스 내 실행 컴포넌트가 있다.



(3) CBD의 장점

① CBD는 소프트웨어 재사용을 통해 개발 시간과 비용을 단축한다.

② CBD는 컴포넌트 내부의 응집성을 높이고 컴포넌트 간 결합성을 낮추기 때문에 모듈화가 촉진된다.

③ 또한, 충분한 품질 검토를 통과한 기존의 컴포넌트를 재활용하기 때문에 소프트웨어의 품질도 향상된다.



(4) CBD의 단점

① CBD의 가장 큰 어려움은 컴포넌트들이 이질적 기술 환경에서 개발되었다는 점이다.

② 따라서 통합을 염두에 두고 시스템 개발을 관리해야 한다.

③ 또한, 기존 컴포넌트가 시스템의 비즈니스 요구 사항을 적절히 충족하지 못할 수도 있다.

④ 따라서 기존 컴포넌트의 비즈니스 요구 사항 충족도를 사전에 충분히 파악하고 보완해야 한다.



5. Web 기반 응용 개발(WBD)
(1) 의의
① WBD는 원격 서버에 저장되고 웹 브라우저를 통해 수행할 수 있는 응용 프로그램이다.
② WBD는 웹 응용(web application) 또는 웹 서비스라고도 한다.
③ 웹 응용 모듈들을 호출하고 데이터를 주고 받으며 서로 통합하기 위해서는 XML을 사용한다.
④ XML(eXtensible Markup Language)은 호환성과 확장성이 향상된 마크업 언어이다.
⑤ WBD의 세 가지 요소는 SOAP, WDSL, UDDI가 있다.


(2) SOAP(Simple Object Access Protocol)
① 웹 응용을 호출하기 위한 API(Application Programming Interface)를 정의하는 데 사용한다.
② 다시 말해 웹 응용 간 메시지를 주고 받는 데 사용한다.
③ SOAP는 말 그대로 간단하며 확장성이 높으며 각종 전송 프로토콜과 잘 연계된다.
④ SOAP는 XML로 구현되어 있다.


(3) WDSL(Web Service Description Language) 
① XML을 기반으로 웹 응용에 관해 설명하는 데 사용하는 문서 작성 언어이다.
② WDSL로는 웹 응용의 위치, 수행 기능, 입출력 메시지 형식(SOAP 명세) 등을 정의한다.


(4) UDDI(Universal Description, Discovery and Integration)
① UDDI 디렉터리: 사용 가능한 웹 응용들의 목록으로서 XML 기반으로 작성된다.
② UDDI는 UDDI 디렉터리에 웹 응용을 등록, 설명하거나 필요한 응용을 검색하는 데 사용된다.
③ UDDI에 인터페이스를 기술할 때는 WDSL을 사용한다.


6. 기타 개념
(1) 역공학(Reverse Engineering)
① 기존 제품을 해체하고 기능을 연구하여 새로운 제품 생산하는 데 활용하는 기술이다.
② 목적 코드나 실행 코드로부터 소스 코드를 얻거나 설계 또는 분석 산출물을 작성한다.
③ 그리고 이를 활용하여 개발 과정을 단축할 수 있다.
④ 역공학을 통해 소스 코드를 얻고자 할 때는 디컴파일러를 사용한다.
⑤ 적절한 디컴파일러가 없으면 블랙 박스 테스트(기능 분석을 통한 소스 코드 추정)를 한다.
⑥ 개발 문서가 없는 시스템을 토대로 기존 제품을 보완 제작하므로 기간이 단축된다.
⑦ 적절한 역공학 도구가 필요하며 원래 사용된 프로그래밍 언어를 벗어날 수 없다.
⑧ 또한, 일부 패키지 프로그램은 역공학 금지 조항이 있을 수 있다.


(2) 재공학(Re-engineering)
① 기존 프로그램의 설계/개발 요소를 추출한 후 기존 시스템을 변경하는 체계적 기술이다.
② 조직 운영에 중요한 변화가 있을 때 기존 시스템을 최대한 재활용하는 방법이다.


(3) CASE(Computer Aided Software Engineering) 도구
① 소프트웨어 개발 전체 과정 중에 산출물의 품질과 생산성 향상을 위한 자동화 도구이다.
② 다이어그램 작성, 코드 생성, 프로토타입 제작, 중앙 저장소 기능 등을 지원한다.
③ 하지만 작업 성과를 증대하려면 개발자들이 CASE 도구 사용에 익숙해야 한다.
④ 따라서 CASE 도구는 프로젝트 중간에 도입하는 것은 적절하지 않는다.


(4) 4세대 언어(4GL)
① 상세한 연산 과정 대신 요구 결과만 제시하면 수행 방법은 자체 보유하는 언어이다.
② 4세대 언어를 비절차적(non-procedural) 언어라고 한다.
③ 4세대 언어는 간이어(simple language)로서 프로그래밍이 수월하다.
④ 4GL 응용은 하드웨어나 시스템 소프트웨어 환경과 독립적이라서 이식성(portability)이 높다.



반응형

댓글

Designed by JB FACTORY