Co to jest ewolucja oprogramowania?

Ewolucja oprogramowania to proces, w którym komercyjny program komputerowy wymaga ciągłej aktualizacji, konserwacji i ulepszania w czasie, aby mógł pozostać opłacalnym produktem. Pod tym względem ewolucja oprogramowania jest napędzana przez zewnętrzne potrzeby biznesowe i konsumenckie, które zmieniają się wraz z rozwojem innych programów i technologii. Jednak czynnikiem napędzającym ewolucję oprogramowania jest często wewnętrzny czynnik skoncentrowany na zespole inżynierskim, który wyprodukował produkt, oraz firmie, której rentowność zależy od jej sukcesu. Imperial College of London w Anglii po raz pierwszy ogłosił trzy podstawowe prawa ewolucji oprogramowania na początku lat 1970., które od 2011 r. zostały rozszerzone do ośmiu praw. liniowy model sekwencyjny i model prototypowy, ale paradygmat, który wydaje się najlepiej pasować do cykli życia entropii oprogramowania, to paradygmat przypominający ewolucję Darwina dla organizmów żywych.

Podstawowe czynniki stojące za zmianami w architekturze oprogramowania przypominają te same siły, które motywują firmy do modernizacji maszyn przemysłowych lub standardowych procedur operacyjnych w miarę zmieniających się potrzeb społecznych. Ponieważ oprogramowanie jest coraz częściej wykorzystywane, stają się oczywiste nowe potrzeby lub funkcje dla niego, które należy uwzględnić w późniejszych wersjach produktu. Całe oprogramowanie jest również wydawane z nieznanymi wcześniej błędami, dlatego należy przeprowadzać okresowe poprawki i procedury konserwacyjne w celu naprawienia sytuacji, takich jak luki w zabezpieczeniach, które mogą narazić firmę na atak za pośrednictwem samego oprogramowania. Kluczem do ewolucji oprogramowania jest również fakt, że takie programy muszą być w coraz większym stopniu dostosowywane do pracy na różnych typach powstającego sprzętu komputerowego oraz w ramach różnych architektur systemów operacyjnych, aby program był bardziej atrakcyjny.

Spełnienie wszystkich tych potrzeb ma kluczowe znaczenie dla określenia, czy oprogramowanie pozostaje opłacalne, a ponieważ zasoby oprogramowania są tak kluczowym aspektem gospodarki informacyjnej od 2011 roku, ewolucja oprogramowania stała się podstawowym aspektem adaptacji i wzrostu biznesu. Meirowi Lehmanowi, informatykowi z Imperial College of London, przypisuje się stworzenie praw Lehmana, które zwięźle określały proces ewolucji oprogramowania i kierowały programistami w kierunku przyszłościowego myślenia o wizualizacji oprogramowania. Prawa Lehmana opierają się na założeniu, że oprogramowanie ewoluuje wraz ze wzrostem informacji zwrotnej na temat jego wydajności i że jego nieunikniona tendencja do stawania się coraz bardziej złożona.

Lehman stwierdził, że natura ewolucji oprogramowania odzwierciedla naturalne zmiany, takie jak mutacje u muszek owocówek, sposób, w jaki miasta rozwijają się w czasie i jak struktury wojskowe stopniowo ulepszają systemy uzbrojenia. Pierwsze trzy prawa procesu naśladują te trendy, szczegółowo opisując ciągłą zmianę, rosnącą złożoność i to, co jest znane jako ewolucja dużego programu. Ciągła zmiana odnosi się do faktu, że program musi być dostosowany do bieżących rzeczywistych warunków biznesowych, co odzwierciedla rosnącą złożoność, ponieważ program musi spełniać coraz większą różnorodność nieoczekiwanych potrzeb. Duża ewolucja programu odnosi się do konieczności korekcji błędów i nowych wersji programu, które są nierozerwalnie związane z wymaganiami rynku.

Spośród pięciu pozostałych praw w ewolucji oprogramowania, numer cztery to stabilność organizacyjna i odnosi się do faktu, że rozwój programu zaczyna żyć własnym życiem, niezależnie od poziomu zasobów celowo mu przeznaczanych, a numer pięć to zachowanie znajomości to stwierdza, że ​​stopniowy rozwój programu jest nieunikniony. Numerem szóstym w ośmiu prawach Lehmana jest ciągły wzrost, który jest niezbędny do zaspokojenia popytu konsumentów, a numerem siódmym jest spadająca jakość, co podkreśla fakt, że każde oprogramowanie w końcu napotyka ograniczenia w zakresie funkcjonalności, których nie może spełnić. Ostatnim prawem Lehmana dotyczącym ewolucji oprogramowania jest sam system sprzężenia zwrotnego, który łączy wszystkie siły wpływające na żywotność oprogramowania, aby szybko doprowadzić go do większego sukcesu lub nieuniknionego starzenia się i śmierci.