Czym jest „Zwinność” w wytwarzaniu oprogramowania dla Automotive?

Czym jest „Zwinność” w wytwarzaniu oprogramowania dla Automotive?

Istnieją dwie podstawowe metody tworzenia oprogramowania: tradycyjny model kaskadowy oraz nowsze podejście, zwane agile (tj. „zwinne”), które jest kluczowe dla przekształcenia przemysłu motoryzacyjnego w kierunku „pojazdów zdefiniowanych programowo”.

W podejściu kaskadowym tworzenie oprogramowania przechodzi przez odrębne, następujące po sobie fazy. Fazy te obejmują definiowanie wymagań, implementację oraz integrację i testowanie.

Metoda kaskadowa ma liczne wady: nie jest ona wystarczająco elastyczna, aby nadążyć za tempem zmian w dzisiejszym przemyśle motoryzacyjnym; nie kładzie mocnego nacisku na bliską współpracę i szybkie pozyskanie informacji zwrotnej od zespołów biznesowych wewnątrz firmy oraz od partnerów zewnętrznych, a także nie zapewnia testowania na wystarczająco wczesnym etapie projektu.

Możliwość testowania złożonych systemów oprogramowania jest szczególnie ważna w przemyśle motoryzacyjnym, gdzie inżynierowie przeprowadzają zaawansowane symulacje rzeczywistych warunków jazdy – software-in-the-loop, hardware-in-the-loop i vehicle-in-the-loop – zanim wyjadą pojazdem na drogę publiczną.

Jak działa agile?

Podejście „zwinne” stanowi kulturową i proceduralną zmianę w stosunku do podejścia kaskadowego, które jest liniowe i sekwencyjne. Agile jest iteracyjne, oparte na współpracy oraz uwzględnia częste pętle informacji zwrotnej.

Organizacje korzystające z agile tworzą małe zespoły adresujące konkretne, wysoko priorytetowe wymagania biznesowe. Zespoły często pracują w ustalonym, stosunkowo krótkim cyklu iteracyjnym, zwanym Sprintem. W ramach takiej pojedynczej iteracji wytwarzają na podstawie określonych potrzeb biznesowych, kompletny i przetestowany inkrement produktu softwareowego, gotowy do weryfikacji przez interesariuszy. 

Zarówno podejście kaskadowe, jak i „zwinne”, mogą wykorzystywać V-model wytwarzania oprogramowania, przechodząc kolejno przez fazy projektowania, implementacji oraz testów. Różnica polega na tym, że podejście kaskadowe stosuje V-model jako proces nadrzędny o jednokrotnym przebiegu w ramach całego projektu, natomiast podejście „zwinne” może realizować V-model w ramach każdego Sprintu.

Metody „zwinne” umożliwiają firmom przejście od długo-okresowych aktualizacji produktu związanych z metodą kaskadową, do nowszego stylu wdrażania oprogramowania znanego jako CI/CD, czyli ciągła integracja i wdrażanie. Agile i CI/CD są ze sobą powiązane. Agile odnosi się do metody wytwarzania oprogramowania; CI/CD zapewnia częste integrowanie, testowanie i wdrażanie na produkcję nowych wersji z niewielkimi zmianami, solidnie zweryfikowanych pod kątem jakości. 

Agile zapewnia wiele korzyści, w tym umożliwia inżynierom szybkie reagowanie na zmieniające się uwarunkowania biznesowe. Korzystając z metod zwinnych, inżynierowie mogą zapewnić ciągłą dostawę ulepszeń oprogramowania, które zostało dokładnie przetestowane i które odpowiada stale weryfikowanym potrzebom biznesu.

„Zwinne” tworzenie oprogramowania w przemyśle motoryzacyjnym

Wraz z coraz większą rolą oprogramowania w pojazdach, rośnie presja na producentów samochodów (OEM) i dostawców, aby pisać, wdrażać i integrować kod szybciej i skuteczniej. Oprogramowanie nie tylko odgrywa większą rolę w podstawowych funkcjach pojazdu, ale także umożliwia wprowadzanie nowych funkcjonalności użytkowych, takich jak systemy rozrywki, zaawansowane systemy wspomagania kierowcy i systemy jazdy autonomicznej.

Producenci muszą wprowadzać nowe funkcjonalności bliżej terminu rozpoczęcia produkcji, a także oczekują możliwości szybkiego i bezpiecznego wprowadzania aktualizacji oprogramowania już po wyprodukowaniu pojazdu.

Tradycyjnie, programiści odpowiadali za oprogramowanie dla każdego komponentu sprzętowego, a następnie integrowali je z kodem dla innych części pojazdu. Testowanie zintegrowanego oprogramowania odbywało się na późnym etapie procesu, co ograniczało czas na wprowadzanie dodatkowych zmian. Rozwój każdego komponentu i platformy samochodowej był procesem jednorazowym, który rozpoczynał się od nowa dla kolejnej platformy.

Producenci odchodzą od takiego podejścia na rzecz metod iteracyjnych, które uwzględniają korzyści płynące ze współpracy, integracji i ponownego wykorzystania kodu, wynikające z podejścia „zwinnego”. Na przykład, warstwy pośrednie oprogramowania (middleware) mogą zastąpić kod specyficzny dla każdego komponentu lub platformy pojazdu. Aplikacje i funkcje mogą być integrowane za pomocą interfejsów programowania aplikacji i współdzielone między zespołami programistów.

Metoda „zwinna” pomaga również producentom pojazdów wdrażać nowe architektury, w których przetwarzanie przenosi się z mniejszych jednostek sterujących, do dużych, scentralizowanych kontrolerów domenowych, co zmniejsza koszty i złożoność.

 

Istnieją dwie podstawowe metody tworzenia oprogramowania: tradycyjny model kaskadowy oraz nowsze podejście, zwane agile (tj. „zwinne”), które jest kluczowe dla przekształcenia przemysłu motoryzacyjnego w kierunku „pojazdów zdefiniowanych programowo”.

W podejściu kaskadowym tworzenie oprogramowania przechodzi przez odrębne, następujące po sobie fazy. Fazy te obejmują definiowanie wymagań, implementację oraz integrację i testowanie.

Metoda kaskadowa ma liczne wady: nie jest ona wystarczająco elastyczna, aby nadążyć za tempem zmian w dzisiejszym przemyśle motoryzacyjnym; nie kładzie mocnego nacisku na bliską współpracę i szybkie pozyskanie informacji zwrotnej od zespołów biznesowych wewnątrz firmy oraz od partnerów zewnętrznych, a także nie zapewnia testowania na wystarczająco wczesnym etapie projektu.

Możliwość testowania złożonych systemów oprogramowania jest szczególnie ważna w przemyśle motoryzacyjnym, gdzie inżynierowie przeprowadzają zaawansowane symulacje rzeczywistych warunków jazdy – software-in-the-loop, hardware-in-the-loop i vehicle-in-the-loop – zanim wyjadą pojazdem na drogę publiczną.

Jak działa agile?

Podejście „zwinne” stanowi kulturową i proceduralną zmianę w stosunku do podejścia kaskadowego, które jest liniowe i sekwencyjne. Agile jest iteracyjne, oparte na współpracy oraz uwzględnia częste pętle informacji zwrotnej.

Organizacje korzystające z agile tworzą małe zespoły adresujące konkretne, wysoko priorytetowe wymagania biznesowe. Zespoły często pracują w ustalonym, stosunkowo krótkim cyklu iteracyjnym, zwanym Sprintem. W ramach takiej pojedynczej iteracji wytwarzają na podstawie określonych potrzeb biznesowych, kompletny i przetestowany inkrement produktu softwareowego, gotowy do weryfikacji przez interesariuszy. 

Zarówno podejście kaskadowe, jak i „zwinne”, mogą wykorzystywać V-model wytwarzania oprogramowania, przechodząc kolejno przez fazy projektowania, implementacji oraz testów. Różnica polega na tym, że podejście kaskadowe stosuje V-model jako proces nadrzędny o jednokrotnym przebiegu w ramach całego projektu, natomiast podejście „zwinne” może realizować V-model w ramach każdego Sprintu.

Metody „zwinne” umożliwiają firmom przejście od długo-okresowych aktualizacji produktu związanych z metodą kaskadową, do nowszego stylu wdrażania oprogramowania znanego jako CI/CD, czyli ciągła integracja i wdrażanie. Agile i CI/CD są ze sobą powiązane. Agile odnosi się do metody wytwarzania oprogramowania; CI/CD zapewnia częste integrowanie, testowanie i wdrażanie na produkcję nowych wersji z niewielkimi zmianami, solidnie zweryfikowanych pod kątem jakości. 

Agile zapewnia wiele korzyści, w tym umożliwia inżynierom szybkie reagowanie na zmieniające się uwarunkowania biznesowe. Korzystając z metod zwinnych, inżynierowie mogą zapewnić ciągłą dostawę ulepszeń oprogramowania, które zostało dokładnie przetestowane i które odpowiada stale weryfikowanym potrzebom biznesu.

„Zwinne” tworzenie oprogramowania w przemyśle motoryzacyjnym

Wraz z coraz większą rolą oprogramowania w pojazdach, rośnie presja na producentów samochodów (OEM) i dostawców, aby pisać, wdrażać i integrować kod szybciej i skuteczniej. Oprogramowanie nie tylko odgrywa większą rolę w podstawowych funkcjach pojazdu, ale także umożliwia wprowadzanie nowych funkcjonalności użytkowych, takich jak systemy rozrywki, zaawansowane systemy wspomagania kierowcy i systemy jazdy autonomicznej.

Producenci muszą wprowadzać nowe funkcjonalności bliżej terminu rozpoczęcia produkcji, a także oczekują możliwości szybkiego i bezpiecznego wprowadzania aktualizacji oprogramowania już po wyprodukowaniu pojazdu.

Tradycyjnie, programiści odpowiadali za oprogramowanie dla każdego komponentu sprzętowego, a następnie integrowali je z kodem dla innych części pojazdu. Testowanie zintegrowanego oprogramowania odbywało się na późnym etapie procesu, co ograniczało czas na wprowadzanie dodatkowych zmian. Rozwój każdego komponentu i platformy samochodowej był procesem jednorazowym, który rozpoczynał się od nowa dla kolejnej platformy.

Producenci odchodzą od takiego podejścia na rzecz metod iteracyjnych, które uwzględniają korzyści płynące ze współpracy, integracji i ponownego wykorzystania kodu, wynikające z podejścia „zwinnego”. Na przykład, warstwy pośrednie oprogramowania (middleware) mogą zastąpić kod specyficzny dla każdego komponentu lub platformy pojazdu. Aplikacje i funkcje mogą być integrowane za pomocą interfejsów programowania aplikacji i współdzielone między zespołami programistów.

Metoda „zwinna” pomaga również producentom pojazdów wdrażać nowe architektury, w których przetwarzanie przenosi się z mniejszych jednostek sterujących, do dużych, scentralizowanych kontrolerów domenowych, co zmniejsza koszty i złożoność.

 

Kariera


Kształtuj przyszłość mobilności. Dołącz do naszego zespołu i pomóż tworzyć bezpieczniejsze, bardziej ekologiczne i lepiej skomunikowane pojazdy.

Zobacz powiązane oferty pracy

Subskrybuj