개발 기술에 따라 제품을 지속적으로 업데이트해야 합니다. 리버스 엔지니어링을 사용하면 제품의 호환성을 확장할 수 있으므로 시장 내에서 상태와 수용성을 유지할 수 있습니다. 리버스 엔지니어링은 알려진 완제품으로 시작하여 제품의 개발 및 제조와 관련된 프로세스와 사양을 밝히기 위해 뒤로 작업하는 산업 공학의 방법입니다(Nasheri, 2005). 그래서 우리는이 모든 것에서 무엇을 배울 수 있습니까? 한 가지 교훈은 경쟁업체의 폐쇄된 독점 플랫폼과의 호환성을 달성하기 위한 리버스 엔지니어링이 기술 세계에서 완전히 일반적이라는 것입니다. 내가 인용 할 수있는 다른 예가 많이 있습니다 (그리고 나는 코멘트에 자신의 예를 추가하는 독자를 권장합니다) 하지만 결론은 DVD 플레이어를 구축하기 위해 CSS를 리버스 엔지니어링하기로 결정 리눅스 사용자에 대한 특이한 아무것도 없다는 것입니다. 리버스 엔지니어링의 경우 개발자는 항상 법적 및 윤리적 위험을 염두에 두고 불법적인 작업을 수행하지 않도록 노력해야 합니다. 이전 (1991) 지침을 대체 컴퓨터 프로그램의 법적 보호에 대한 EU 지침 2009/24,[38] 유럽 연합 (EU)의 역설계를 지배. [39] [40] 엄밀히 말하면, 그는 옳다. CSS 암호화 체계를 리버스 엔지니어링하는 것 자체가 특히 혁신적인 활동이 아닙니다.

그러나 피커 교수가 빠진 것은 이러한 리버스 엔지니어링이 후속 혁신을 위한 전제 조건으로 얼마나 중요한지입니다. 요점을 설명하기 위해, 나는 강제로 회사의 폐쇄 아키텍처를 열어 기업이나 오픈 소스 프로젝트의 세 가지 예를 제공하고, 이러한 후속 혁신을 가능하게한 방법을 추적하고 싶습니다 : 리버스 엔지니어링은 모든 소프트웨어에 대한 강력한 도구입니다 개발자. 그러나 모든 도구와 마찬가지로, 그것은 단지 그것을 사용하는 사람만큼 좋은. 리버스 엔지니어링과 이를 사용할 수 있는 방법을 이해하는 것은 신규 및 베테랑 개발자 모두에게 중요합니다. 그러나 소프트웨어 개발자가 소스 코드를 게시하는 소프트웨어 개발자가 거의 없기 때문에 응용 프로그램은 리버스 엔지니어링에 적합합니다. 기술적으로 API(응용 프로그램 프로그래밍 인터페이스)는 프로그램이 쉽게 함께 작동할 수 있도록 해야 하지만 전문가들은 대부분의 API가 너무 나쁘게 작성되어 타사 소프트웨어 제조업체가 원하는 프로그램을 리버스 엔지니어링할 수 있는 선택의 여지가 없다고 말합니다. 호환성을 보장하기 위해 소프트웨어가 작동합니다. UML은 “리버스 엔지니어링”을 제공하는 한 가지 접근 방식이지만 국제 표준 활동의 최근 발전은 지식 발견 메타 모델 (KDM)의 개발을 초래했다. 이 표준은 프로그래밍 언어 구문 및 상호 관계의 중간(또는 추상화) 표현에 대한 온톨로를 제공합니다. 개체 관리 그룹 표준(ISO 표준이 되기 위한 길)에서 KDM은 소스, 바이너리 및 바이트 코드의 추출 및 분석을 제공할 수 있는 도구 및 분석 환경의 개발로 업계에서 자리매김하기 시작했습니다.