기존 소프트웨어 개발 방법에 비해 구성 요소 기반 소프트웨어 개발 방법의 돌파구는 무엇입니까? 첫째, 아키텍처 소프트웨어 아키텍처는 시스템의 높은 수준의 추상화를 나타내며 시스템 설계의 성공 또는 실패의 열쇠입니다. 설계의 핵심은 중복 시스템 모델을 사용할 수 있는지 여부입니다. 호스트 기반 중앙 집중식 프레임워크에서 네트워크 클라이언트에서 서버에 액세스하는 프레임워크에 이르기까지 기존 애플리케이션 시스템의 아키텍처는 특정 공급업체의 하드웨어 및 소프트웨어 제품에 지나치게 의존하고 있기 때문에 기업의 현재 비즈니스 환경에 적응할 수 없습니다. 이러한 단일 공급업체로 인해 기업은 컴퓨팅 공급업체의 자유 시장을 활용하고 컴퓨팅 인프라에 대한 중요한 의사 결정을 제 3 자에게 맡기기가 어려워집니다. 이는 기업이 파트너 간에 정보를 즐기는 데 도움이 되지 않습니다. 원격 액세스를 수용할 수 없는 분산형 다중 레벨 이기종 시스템. 패키지화된 애플리케이션 시스템은 일부 조직 요구 사항이 있을 경우 사용자 정의를 통해 시스템을 유지하기가 어렵기 때문에 변화하는 요구 사항을 충족하기가 어렵습니다. 분석 및 설계의 핵심 기능은 재사용할 수 없으며 최대 코드만 재사용할 수 있습니다. 현재 애플리케이션 시스템은 분산, 다중 계층 이기종 시스템으로 발전하여 다양한 클라이언트가 인터넷과 인터넷에서 원격으로 액세스할 수 있게 되었습니다. CBSD 는 이러한 애플리케이션 시스템 개발을 위한 새로운 시스템 아키텍처를 제공합니다. 표준 정의, 분산, 모듈식 구조이므로 애플리케이션 시스템을 여러 개의 개별 부분으로 나누어 점진적으로 개발할 수 있습니다. 이 아키텍처는 내부 개발, 타사 제공 또는 시장에서 구매한 기존 구성 요소를 통해 애플리케이션 소프트웨어 시스템을 통합하고 사용자 정의할 수 있다는 CBSD 의 목표를 달성합니다. 다양한 애플리케이션 시스템의 핵심 기능 재사용을 장려하고 분석 및 설계 재사용을 위해 노력합니다. 시스템에는 유연하고 편리한 업그레이드와 시스템 모듈 업데이트 및 유지 관리 기능이 있어야 합니다. 모범 사례 사례를 캡슐화하고 비즈니스 조건이 변경될 때 채택할 수 있도록 하며 기존 리소스를 유지합니다. CDSD 는 시스템의 높은 수준에서 멀티플렉싱과 이기종 상호 운용성 문제를 추상적으로 해결한다는 것을 알 수 있습니다. 이것이 바로 분산 네트워크 시스템이 해결하고자 하는 문제입니다. 둘째, 개발 프로세스의 기존 소프트웨어 개발 프로세스는 재사용 요소 및 개발 방법에서 CBSD 와 매우 다릅니다. 객체 지향 기술은 소프트웨어 재사용을 촉진하지만 클래스 재사용 및 클래스 상속만 구현합니다. 전체 시스템과 학급 사이에는 여전히 큰 차이가 있다. 이 공백을 메우기 위해 사람들은 시스템 아키텍처, 프레임, 디자인 패턴 등 여러 가지 방법을 생각해 보았다. 구성 요소의 출현 이후 소프트웨어의 재사용성이 근본적으로 바뀌었다. CBSD 는 분석, 디자인, 클래스의 다단계 재사용을 실현했습니다. 그림 1 은 재사용 요소의 계층 구현을 보여 줍니다. 분석 추상화 계층에서 재사용 요소에는 하위 시스템과 클래스가 포함됩니다. 설계 계층의 재사용 요소에는 시스템 스키마, 하위 시스템 스키마, 설계 패턴, 프레임, 컨테이너, 구성 요소, 클래스 라이브러리, 템플릿, 추상 클래스 등이 포함됩니다. 소프트웨어 개발 방법의 경우, CBSD 는 애플리케이션 시스템 개발에서 애플리케이션 시스템 통합에 이르기까지 소프트웨어 개발을 안내합니다. 응용 프로그램 시스템을 구축하려면 기존 구성 요소 모듈을 많이 재사용해야 합니다. 이러한 구성 요소 모듈은 시간에 따라 다른 사람이 개발하여 다른 용도로 사용할 수 있습니다. 이 경우 애플리케이션 시스템의 개발 프로세스는 구성 요소 인터페이스, 구성 요소 컨텍스트 및 프레임워크 환경의 일관성을 점진적으로 탐색하는 프로세스가 됩니다. 예를 들어 J2EE 플랫폼에서 EJB 프레임워크를 사용하여 응용 프로그램 시스템을 개발합니다. 주로 세션 Bean 및 엔티티 Bean 설계에 따라 응용 프로그램 논리를 개발하고 JTS 트랜잭션 서비스를 사용하여 응용 프로그램 시스템을 구현하는 것입니다. 주요 어려움은 트랜잭션 분할, 구성 요소 배포 및 개발 환경 구성입니다. 일반적으로 전통적인 소프트웨어 개발 프로세스는 직렬 폭포와 파이프라인 프로세스입니다. CBSD 는 동시 진화, 지속적인 업그레이드 및 완벽한 과정입니다. 그림 2 는 차이점을 보여줍니다. 셋째, 소프트웨어 방법론 소프트웨어 방법론은 다른 시각과 다른 사고방식으로 소프트웨어의 본질을 이해하는 것이다. 기존의 소프트웨어 방법론은 기계 지향, 데이터 지향, 프로세스 지향, 기능 지향, 데이터 흐름 및 객체 지향 혁신 관점에서 문제의 본질을 반영합니다. 전체 소프트웨어 개발 과정은 우리가 객관적인 세계의 법칙에 따라 소프트웨어 방법론 문제를 해결해야 한다는 것을 점점 더 깨닫게 해 주었다. 객체 지향 방법이 나타날 때까지 소프트웨어 방법론은 큰 걸음을 내디뎠다. 그러나 고급 재사용 및 분산 이기종 상호 운용의 어려움은 아직 해결되지 않았습니다. 지금까지 CBSD 는 소프트웨어 방법론에서 이 문제를 해결할 수 있는 기회를 제공했다. 응용 프로그램 비즈니스와 구현 분리, 즉 논리와 데이터의 분리를 통해 표준 인터페이스와 프레임워크를 제공하고 소프트웨어 개발 방법을 구성 요소의 조합으로 만듭니다. 따라서 소프트웨어 방법론은 인터페이스 중심의 행동 지향 설계입니다. 그림 3 은 개발 프로세스를 보여줍니다. 요약하면 CBSD 의 소프트웨어 개발 방법론에는 구성 요소에 대한 명확한 정의가 포함되어야 합니다. 컴포넌트 기반 개념에는 UML, JavaBean, EJB, 서블릿 사양 등과 같은 구성 요소에 대한 기술 및 사양이 필요합니다. 응용 프로그램 시스템의 개발은 다른 역할 할당을 포함하여 구성 요소 컷에 따라 구성되어야 합니다. 구성 요소 특성 검사를 지원하고 문서를 생성하여 구성 요소 사양 및 품질 테스트 구현을 보장하는 도구가 있습니다. 결론적으로, 전통적인 소프트웨어 방법론은 위에서 아래로 진행되며 재사용에 더 많은 도움을 주지 않습니다. CBSD 의 소프트웨어 방법론은 훨씬 풍부하다. 플러그 앤 플레이, 아키텍처 기반, 인터페이스 중심, 유기적 결합 구성 요소로, 하향식 및 상향식 접근 방식을 결합하여 개발되었습니다. 넷째, 개발조직의 기존 소프트웨어 개발 조직은 일반적으로 분석가, 디자이너, 프로그래머 및 테스터로 구성됩니다. 작은 애플리케이션 시스템의 경우 숙련된 개발자가 이러한 역할을 담당할 수 있습니다. 그러나 CBSD 의 경우 구성 요소 개발과 응용 프로그램 시스템 통합이 분리되는 경우가 많기 때문에 전체 개발 프로세스는 구성 요소 개발자와 구성 요소 공급업체, 대부분 미들웨어 구성 요소 공급업체 (인터넷 페이지 계속 전송) 의 6 가지 역할로 수행됩니다. 응용 프로그램 구성 요소 통합자는 기존 구성 요소를 더 큰 구성 요소 모듈 또는 컨테이너로 결합하여 응용 프로그램 영역에서 시스템 배포의 기본 단위로 사용합니다. 애플리케이션 시스템 배포자는 소프트웨어 맞춤형 요구 사항을 충족하기 위해 선택한 플랫폼 환경 또는 기본 프레임워크에 시스템 배포의 기본 단위를 배치합니다. 개발 플랫폼 서버 공급업체는 서버, 운영 체제, 데이터베이스 등의 기본 소프트웨어를 제공합니다. 응용 시스템 개발 도구 공급업체는 구성 요소 유틸리티 서비스를 제공합니다. 시스템 관리자는 하드웨어, 네트워크 및 운영 체제를 구성하고 애플리케이션 시스템을 모니터링하고 유지 관리합니다. 이 여섯 가지 역할의 일은 모두 전문적이며, 동시에 다재다능하기도 쉽지 않다. 현재 이미 개방된 부품 시장이 형성되었고, 게다가 여전히 매우 뜨겁다. 이것은 오늘날 소프트웨어 인재 대전의 수수께끼이기도 하다. 따라서 CBSD 에서는 개발 팀을 구성하는 방법이 특히 중요하며 기업이 소유한 인재에 따라 조직해야 합니다. 특히 개발 초기 단계에서 표준 프레임워크와 통합 개발 가이드를 선택하여 개발 프로세스 전반에 걸쳐 모든 역할이 언제든지 서로 통신할 수 있도록 하는 것이 중요합니다. 일반적으로 CBSD 의 인력 자질에 따라 구성 요소의 재사용률이 결정됩니다. 다섯째, 구축 방법 기존 애플리케이션 소프트웨어는 화이트 박스 방식으로 구축되며 애플리케이션 시스템의 구현은 코드에 있으며 애플리케이션 논리와 데이터가 함께 바인딩됩니다. CBSD 의 구조는 화이트박스와 블랙박스의 조합이다. 구성 요소 기반 프레임워크는 두 가지 개념으로 진화를 지원합니다. 첫 번째 개념은 구성 요소에 강력한 성능 인터페이스가 있어 구성 요소의 논리적 기능과 구성 요소 모델의 구현을 숨기는 것입니다. 이렇게 하면 인터페이스가 같으면 부품을 교체할 수 있습니다. 두 번째 개념은 암시적 호출입니다. 즉, 구성 요소 기반 프레임워크에서는 구성 요소의 인터페이스가 주소를 직접 할당하지 않고 구성 요소의 사용자가 식별된 경우에만 주소를 할당합니다. 따라서 구성 요소 사용자는 인터페이스 요구 사항과 참조를 알고 구성 요소 인터페이스에 제공되는 반환 정보 (참조는 구성 요소일 수도 있고 구성 요소 에이전트일 수도 있음) 만 알면 됩니다. 구성 요소 사용자에게 구성 요소 에이전트는 구성 요소입니다. 구성 요소 인터페이스 정보는 구성 요소가 아니라 구성 요소 웨어하우스 또는 레지스트리에 저장됩니다. 이렇게 하면 구성 요소 대체의 유연성이 보장되고 암시적 호출을 통해 구성 요소를 쉽게 재배포할 수 있습니다. 구성 요소의 구현은 사용자에게 투명하기 때문에 구성 요소가 다양한 맞춤형 요구 사항에 적응할 수 있습니다. 따라서 이 구성 요소는 자체 테스트와 정규화라는 두 가지 메커니즘을 제공합니다. 자체 테스트를 통해 구성 요소의 구체적인 구현을 모르는 상태에서 구성 요소 인터페이스 정보를 얻을 수 있습니다. 예를 들어 JavaBean 이 제공하는 자체 테스트 메커니즘은 Reflection 과 BeanInfo 로, Bean 구성 요소의 모든 메서드를 직접 얻을 수 있으며 BeanInfo 를 통해 구성 요소에 대한 복잡한 정보를 직접 얻을 수 있습니다. 정규화하면 구성 요소에 액세스하지 않고도 구성 요소를 수정할 수 있습니다. 예를 들어 JavaBean 이 제공하는 정규화는 속성 테이블과 사용자 정의입니다. 속성 시트를 통해 간단한 매개변수 집합을 제공하여 Bean 의 속성을 수정합니다. 복잡한 수정은 사용자가 사용자정의 프로그램을 통해 매개변수를 설정하여 수행합니다.