1

기본적으로 내 프로젝트는 제품 기반입니다. 일단 우리가 프로젝트를 개발하고 여러 클라이언트를 잡아 그들의 필요에 따라 응용 프로그램을 배포했습니다. 하지만 우리는 새로운 기능과 프로젝트 종속 모듈을 배치하기로 결정했습니다. 이제 제 신청서에 많은 고객이 있습니다. 모든 고객은 구성 요소를 기반으로 다른 기능을 필요로합니다. 하지만 모든 클라이언트에 대해 중앙 집중식 구성 요소가 있습니다. 우리는 구성 요소 추가 기능을 클라이언트 특정 폴더로 이동하고 배포합니다. 제 문제는 여러 클라이언트의 구성 요소 기능을 유지할 수 없다는 것입니다. 구성 요소 기능 코드가 증가하여 클라이언트 기능을 추적 할 수 없습니다. 여러 클라이언트에 대해 여러 구성 요소 기능을 유지 관리하기위한 솔루션이 있습니까?여러 기능을 위해 여러 클라이언트에 대해 여러 구성 요소를 유지 관리하는 방법은 무엇입니까?

답변

0

필자는 비슷한 공간 제품 소프트웨어로 몇 회사에서 일했지만 매우 맞춤화되었습니다.

기본적으로 회사가 결정해야 할 결정이 있습니다. 제품 회사 (모든 클라이언트에게 동일하게 광범위하게 제공됩니다)입니까? 아니면 맞춤형 회사입니까? 지금은 두 변 사이에있는 것처럼 들리며 맞춤형 소프트웨어 회사가 할 수있는 방식으로 특정 고객의 요구를 충족시킬 수있는 제품 회사가되는 경제를 원합니다.

회사가 제품 소프트웨어 회사가되기를 원한다고 가정 할 수없는 구체적인 기술적 인 이유가 없다면 사용자 정의 옵션 (예 : 플래그)을 통해 처리되는 각 고객에 대한 수정과 함께 단일 코드베이스로 이동해야합니다 이 특정 상황이 어떻게 처리되고 있는지,이 기능의 사용 가능 여부 등).

런타임에 설정할 수 있으므로 클라이언트가 원하는대로 변경할 수 있습니다 (Word 또는 Excel의 옵션으로 생각할 수 있음) 또는 빌드 시간 (빌드 할 때 코드가 포함/제외됨)이지만 키 모든 클라이언트는 동일한 코드 기반에서 가져와야합니다.

그러나 이것은 판매 할 수있는 것을 제한하기 때문에 비즈니스와 합의해야합니다. 판매하는 모든 변경 사항은 단일 제품에서 수용 할 수있는 전반적인 비전에 적합해야합니다.

다른 대안은 본질적으로 각 클라이언트 (원하는대로 구체적으로 코딩 된)를위한 맞춤형 소프트웨어를 제작하지만 많은 공통 라이브러리를 사용한다는 것입니다. 그건 괜찮아요 당신이 원하는 것을 정확하게 생산할 수있게하지만, 결국 그것은 더 많은 일이 될 것이고 비즈니스는 그것을 이해하고 비용을 지불해야합니다.

실제로 우리는 약간의 작업을 수행합니다. 모든 클라이언트에 대해 동일한 서버 제품이 있고 그 다음 특정 웹 및 모바일 클라이언트가 있습니다 (모바일의 경우 데드 코드가 많이 없습니다) 장치에 - 웹 물건은 역사적이며 모든 고객을위한 표준 제품으로 이동합니다).

행운을 빈다는 것은 쉬운 해결책이없는 어려운 문제입니다.

0

본질적으로 소프트웨어 제품 라인 (SPL)에 대해 이야기하고 있습니다. 공통 기반의 변형입니다. 이미 구성 요소로 기능을 패키지화했기 때문에 이러한 변형을 관리하는 특수 도구가 필요합니다.

그러면 주어진 고객에게 고유 한 구성을 기반으로 완전한 사용자 지정 응용 프로그램을 작성할 수 있습니다. 물론 더 쉽게 말한 것입니다.

MDSD (모델 기반 소프트웨어 개발) 접근 방식은이 작업에 많은 도움이 될 수 있습니다.이 개발 환경을 지원할 수있는 시스템 중 하나는 ABSE이며, 다른 것들 중에서도 소프트웨어 제품 라인을 구현할 수있는 신흥 MDSD 접근 방식입니다 (정보 : http://www.abse.info - 면책 조항 : 저는 ABSE 프로젝트 리드입니다). 아직 제품이 없습니다. 알파 미리보기가 올 것입니다.

다시 말하면 코드 생성과 결합 된 MDSD를 사용하여 절반 포장 패키지, 절반 맞춤 제품을 원하는 회사를 알고 있습니다.