소프트웨어공학

객체지향 방법론_CBD, UP(Unified Process), 컴포넌트, COM, 개발방법론, SRM

스윙스윙 2021. 12. 12. 01:38

▣ 객체지향 방법론_CBD, UP(Unified Process), 컴포넌트, COM

■ CBD

정의

- 컴포넌트 단위의 개발/조립/유지보수를 통해 현대경영이 필요로 하는 정보시스템의 신속한 구축, 변경 확장의 용이성, 타 시스템과의 호환성을 달성하고자 하는 SW 공학 프로세스, 방법론 및 기술의 총체적 개념

 

특징

- 생산성 : 부품의 조립을 통한 개발 시간 단축

- 변경용이성 : 요구사항 변경에 대한 안정적인 대처 가능

- 관리용이성 : 독립적인 컴포넌트 단위의 관리로 복잡성을 최소화

- 재사용성 : 실행기반의 재사용, 모델의 재사용

- 고품질 : 품질이 검증된 컴포넌트 사용

 

표준기술

- SUN의 EJB : JAVA 언어로 구현된 서버 컴포넌트

- MS의 COM+ : VB, C# 등의 언어를 이용해 구현

 

개발절차

도메인 분석(핵심!!) -> 도메인 설계 -> 컴포넌트 추출 -> 컴포넌트 설계 -> 컴포넌트 구현 -> 컴포넌트 인증 -> 컴포넌트 디자인 패턴 -> 컴포넌트 배포 ->(요구사항 정의 -> 영역 분석 -> 컴포넌트 기반설계 ->) 컴포넌트 조립 -> 응용시스템

 

 1. CD는 SW 개발에 필요한 부품을 만드는 것

 - 비즈니스 영역에 대한 이해와 기술 아키텍처에 대한 이해 선행 필요

 - 재사용 목적상 해당 도메인에 대한 분석 핵심!

 - 비즈니스 컴포넌트와 소프트웨어 컴포넌트 병행 개발

 - 공통성/가변성 파악

 2. CBD는 컴포넌트들을 조립하여 SW를 개발

 - 반복적 개발 프로세스를 적용하여 혁신적인 생산성 향상

 

컴포넌트란?

독립적으로 개발된 소르프퉤어 패키지로서 이를 조립하여 완성된 소프트웨어를 개발할 수 있도록 만들어진 부품화된 소프트웨어

1. Interface : 서비스를 외부에서 접근할 수 있도록 하는 Virtual Function

2. Implementation :  인터페이스를 상속 받아 실제 서비스를 구현한 부분으로 객체, 클래스와 동일

 

컴포넌트 특징

- 식별가능성 : 컴포넌트는 다른 것들과 명확히 구별되어야 함

- 추적가능성 : 컴포넌트는 각자의 정체성을 가져야 하며, 다른 어플리케이션에 포함된 후에도 그 존재를 확인할 수 있어야 함

- 교체가능성 : 어플리케이션 사용에 영향을 주지 않고 다른 버전의 컴포넌트나 동일한 서비스를 제공하는 컴포넌트로 교체 가능해야 됨

- 서비스의 고정성 : 물리적 구현과 관계없이 인터페이스를 통해서만 접근 가능

- 기록되는 서비스 : 인터페이스를 통해 제공되는 서비스 뿐만 아니라 어떠한 서비스가 제공되는지 이해할 수 있도록 문서로 기록되어야함

 

컴포넌트 분류

- 요소 컴포넌트 : 더이상 나누어질 수 없는 최소단위의 컴포넌트   -> 재고계산

- 기능 컴포넌트 : 하나 이상의 요소 컴포넌트가 결함되어 하나의 기능 구현   -> 입출고

- 서비스 컴포넌트 : 하나의 사용자 서비스를 수행하는 컴포넌트   -> 자재관리

- 어플리케이션 컴포넌트 : 여러 서비스를 수행하는 시스템 컴포넌트     -> 통합시스템

 

■ UP

UP의 정의

- 미국 Rational사에서 기존의 객체지향 방법론의 대가들을 영입하면서 개발하여 소개한 방법론으로 UML을 가장 잘 적용할 수 있는 실무형 방법론

- 주요 개발단계는 요구사항 식별, 분석, 설계, 구현, 테스트로 진행

 

특징

- 각종 개발지침/예제/템플릿 등 SW 개발에 필요한 광범위한 지식을 총체적으로 제공

- 아키텍처 중심의 프로세스(4+1 View 아키텍처)

- 반복적/점증적 개발 프로세스

 

UP개발단계 (도입-정련-구축-전이)

 단계  설명  활동사항
 도입(inception) 시스템 최종 목표와 프로젝트 범위 설정
개발이 시작되는 지점
개발SW에 대한 비전, 비즈니스 케이스, 범위를 개략적으로 파악함
 요구사항에 대한 전반적 이해
개발범위 규정
 정련(elaboration) 도입에서 정의된 사항을 구체화하여 SW아키텍처를 확립함
SW아키텍처를 확립하는 과정을 반복적으로 수행하여 요구사항을 정제하고, 위험요소를 제거하며, 실제 실행 가능한 아키텍처를 만들게 됨
활동과 자원에 대한 구체적 계획 수립

아키텍처 설계 및 구현
 요구사항 명세화
 프로토타입 구현
 구축(construction) SW의 작성수행(코딩)
목표에 따른 시스템 구축

사용자 인도 준비
 설계와 구현
 전이(transition) 테스트, 설치
시스템의 목표 충족도를 확인하고 오류를 수정하며 사용자에게 전달함
사용자에게 제품 인도

사용자 교육, 지원, 유지보수 계획
 사용자 교육
 시스템 목표 충족도 확인

 


2012년 27번

정답 : 3번

구축 단계에서는 정련 단계에서 정의된 아키텍처를 바탕으로 시스템의 세부 기능을 구현하는데 초점을 둠

 단계  설명  활동사항
 도입(inception) 시스템 최종 목표와 프로젝트 범위 설정
개발이 시작되는 지점
개발SW에 대한 비전, 비즈니스 케이스, 범위를 개략적으로 파악함
 요구사항에 대한 전반적 이해
개발범위 규정
 정련(elaboration) 도입에서 정의된 사항을 구체화하여 SW아키텍처를 확립함
SW아키텍처를 확립하는 과정을 반복적으로 수행하여 요구사항을 정제하고, 위험요소를 제거하며, 실제 실행 가능한 아키텍처를 만들게 됨
활동과 자원에 대한 구체적 계획 수립

아키텍처 설계 및 구현
 요구사항 명세화
 프로토타입 구현
 구축(construction) SW의 작성수행(코딩)
목표에 따른 시스템 구축

사용자 인도 준비
정련 단계에서 정의된 아키텍처를 바탕으로 시스템의 세부 기능을 구현
 설계와 구현
 전이(transition) 테스트, 설치
시스템의 목표 충족도를 확인하고 오류를 수정하며 사용자에게 전달함
사용자에게 제품 인도

사용자 교육, 지원, 유지보수 계획
 사용자 교육
 시스템 목표 충족도 확인

 


2011년 44번

정답 : 3번

컴포넌트 오브젝트 모델(Component Object Model, COM)은 마이크로소프트가 개발한 소프트웨어 구성 요소들의 응용 프로그램 이진 인터페이스 표준

COM을 이용해 개발된 프로그램들은 프로세스간 통신과 동적 오브젝트 생성이 가능함

COM이라는 용어를 종종 OLE, OLE 자동화, ActiveX, COM+, DCOM 기술을 포함하는 포괄적 개념으로 사용

COM이 한 주요 기여 중 하나는 인터페이스를 구현으로부터 분리한다는 개념을 도입

단일 인터페이스 다중 구현을 지원

 

리플렉션은 구체적인 클래스 타입을 알지 못해도, 그 클래스의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API

컴파일한 클래스 정보를 활용해 동적으로 프로그래밍이 가능하도록 지원하는 API

컴파일 시간(Compile Time)이 아닌 실행 시간(Run Time)에 동적으로 특정 클래스의 정보를 추출해낼 수 있는 프로그래밍 기법

어떠한 클래스를 사용해야 할지 모르지만, 런타임 시점에서 클래스를 가져와서 실행해야 할 경우에 필요함. 대표적으로 Spring 프레임워크의 어노테이션 같은 기능들이 리플렉션을 이용해 프로그램 실행 중 동적으로 클래스 정보를 가져와서 사용함

 


2017년 36번

정답 : 3번

컴포넌트 추출, 컴포넌트 설계, 컴포넌트 구현, 컴포넌트 인증

추설구인

 


2014년 45번

정답 : 2번

서비스 컴포넌트 참조모델(SRM)은 업무수행과 수행목표의 달성을 지원하는 서비스 요소를 분류하기 위한 업무(기능) 중심의 평가 지향적 프레임워크임.