소프트웨어 진화 란?

소프트웨어 진화는 상용 컴퓨터 프로그램이 실행 가능한 제품을 유지하기 위해 시간이 지남에 따라 지속적인 업데이트, 유지 관리 및 개선이 필요한 프로세스입니다. 이와 관련하여 소프트웨어 발전은 다른 소프트웨어 및 기술이 발전함에 따라 변화하는 외부 비즈니스 및 소비자 요구에 의해 주도됩니다. 그러나 소프트웨어 진화의 원동력은 종종 제품을 생산 한 엔지니어링 팀과 수익성의 성공에 의존하는 회사에 중점을 둔 내부 요인입니다. 영국 런던 임페리얼 컬리지 (Imperial College of London)는 1970 년대 초에 소프트웨어 진화에 관한 세 가지 기본 법칙을 처음 발표했으며, 이후 2011 년 현재 총 8 가지 법으로 확대되었습니다. 선형 순차 모델과 프로토 타입 모델이지만 소프트웨어 엔트로피 수명주기에 가장 적합한 패러다임은 생명체에 대한 다윈의 진화와 유사합니다.

소프트웨어 아키텍처 변경의 기본 추진 요인은 기업의 사회적 요구 변화에 따라 산업 기계 또는 표준 운영 절차를 업그레이드하도록 동기를 부여하는 것과 동일한 힘과 유사합니다. 소프트웨어가 점점 더 많이 사용됨에 따라 이후 릴리스의 제품으로 작동해야하는 새로운 요구 사항이나 기능이 명백해졌습니다. 모든 소프트웨어는 이전에 알려지지 않은 오류와 함께 릴리스되므로 소프트웨어 자체를 통한 공격에 취약한 보안 허점과 같은 상황을 수정하기 위해 정기적 인 패치 및 유지 관리 절차를 수행해야합니다. 소프트웨어 진화의 핵심은 또한 이러한 프로그램이 점점 더 다양한 유형의 신흥 컴퓨터 장비 및 다양한 운영 체제 아키텍처에서 작동하도록 프로그램이 점점 더 호소력을 갖도록 적응되어야한다는 사실입니다.

소프트웨어 프로그램이 실행 가능한지 여부를 결정하려면 이러한 모든 요구를 충족시키는 것이 중요하며, 소프트웨어 자산이 2011 년과 같이 정보 경제의 중요한 측면이기 때문에 소프트웨어 진화는 비즈니스 적응 및 성장의 기본 측면이되었습니다. 런던 임페리얼 칼리지 (Imperial College of London)의 컴퓨터 과학자 인 Meir Lehman은 소프트웨어 진화 과정을 간결하게 정의하고 개발자가 소프트웨어 시각화에 대한 미래의 생각을 이끌어 내도록 Lehman의 법칙을 만들었습니다. Lehman의 법칙은 소프트웨어가 성능에 대한 피드백이 증가함에 따라 소프트웨어가 진화하고 불가피한 경향이 점차 복잡해지고 있다는 전제에 기초합니다.

리먼은 소프트웨어 진화의 본질은 초파리의 돌연변이, 도시가 시간이 지남에 따라 확장되는 방식, 군사 구조가 무기 시스템에서 점진적으로 개선되는 방식과 같은 자연적 변화를 반영한다고 언급했다. 프로세스의 처음 세 가지 법칙은 지속적인 변화, 복잡성 증가 및 대규모 프로그램 진화라고 알려진 이러한 추세를 모방합니다. 지속적인 변화는 프로그램이 현재의 실제 비즈니스 조건을 충족하도록 조정되어야한다는 사실을 말하며, 이는 프로그램이 예상치 못한 다양한 요구를 충족해야하므로 증가하는 복잡성을 반영합니다. 대형 프로그램 진화는 시장의 요구와 불가분의 관계에있는 오류 수정 및 프로그램의 새로운 릴리스의 필요성을 나타냅니다.

소프트웨어 진화에있어 남아있는 5 가지 법칙 중 4 번째는 조직의 안정성이며 프로그램의 성장이 의도적으로 사용 된 자원의 수준에 관계없이 프로그램 자체의 삶에 영향을 미치며 5 번째는 친숙의 보존이라는 사실을 나타냅니다. 그것은 프로그램의 점진적인 성장이 불가피하다는 것을 나타냅니다. 8 개의 Lehman Laws 중 6 위는 지속적인 성장으로 소비자 수요를 충족시키고 7 번째는 품질 저하입니다. 이는 모든 소프트웨어가 결국 충족 할 수없는 기능에 한계를두고 있다는 사실을 강조합니다. 소프트웨어 진화에 대한 마지막 리먼 법칙은 피드백 시스템 자체로, 소프트웨어 프로그램의 실행 가능성에 영향을 미치는 모든 힘을 결합하여 소프트웨어 프로그램을 더 큰 성공 또는 피할 수없는 노후화와 죽음으로 빠르게 이끌 수 있습니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?