Wydanie aktualne
nr 1-2(19-20) 2015
dostępny w pdf, wydanie
flash
tutaj
Podręczniki,
publikacje tematyczne, wydawnictwa...
• e-Book
Bezpłatny podręcznik do Solid
Edge & ST
• e-Book
Bezpłatny podręcznik do NX & ST
Wydania
archiwalne
numer 1(18) 2014
dostępny w pdf, wydanie
flash
tutaj
numer 1(17)
2013
w pdf już
dostępny, wydanie flash
tutaj
numer 1(16) 2012
dostępny
w
archiwum
numer 1(15) 2011
dostępny
w
archiwum
numer 4(14) 2010
HD dostępny
w archiwum
numer 3(13) 2010
HD dostępny
w archiwum
numer 2(12) 2010
dostępny
w archiwum
numer 1(11) 2010 nareszcie dostępny
w archiwum
numer 9(10) 2009
już dostępny
w archiwum
numer 8(9) 2009
już dostępny
w archiwum
Wydanie specjalne
numer 7(8) 2009
już dostępny
w archiwum
Numer 6(7) 2009
już dostępny
w archiwum
|
„(...) Nie istnieje jeden, idealny system CAD, zaspokajający
potrzeby wszystkich inżynierów.
Ale idealnym systemem jest ten, który usprawnia projektowanie
i pozwala nam nie tylko doskonalić się, ale także...
zaspokajać nasze potrzeby i realizować marzenia.”
zasłyszane...
Piątek 21.10.2016 r.
Oprogramowanie
dyscypliną inżynierii
Niezależnie od tego, czy mamy
do czynienia z mitem „programisty-bohatera”, działającego na
własną rękę i próbującego przez całą noc opanować problem, czy
nagłym sukcesem przypadkowej aplikacji na smartfony samotnego
developera dążącego do sławy i fortuny, opracowywanie
oprogramowania jest powszechnie postrzegane jako indywidualne
działanie metodą prób i błędów. Jest to jednak dalekie od
prawdy w przypadku znaczących projektów programistycznych,
podczas których duży zespół programistów pracuje na złożonych,
często kluczowych dla bezpieczeństwa systemach
Mirko Baecker,
red. (ms)
Branża inżynierii oprogramowania
jest nauką, a nie sztuką. Zasady powtarzalnego, sterowanego
procesami rozwoju technologicznego dla stworzenia solidnego
oprogramowania wysokiej jakości zostały ustalone w takich
organizacjach, jak np. NASA, gdzie niezawodność miała kluczowe
znaczenie. Jest ona również istotnym elementem w branżach
takich jak obronność, lotnictwo, wbudowane i przemysłowe
systemy sterowania, medycyna, wytwarzanie energii i
motoryzacja; wymienione branże muszą równoważyć złożoność
procesów, koszty oraz ryzyko.
We wszystkich tych sektorach
ryzyko pozostaje nadal wysokie, występuje presja na redukcję
kosztów, a złożoność stale wzrasta. Przemysł samochodowy jest
jednym z obszarów, gdzie wiele różnych części inżynierii
oprogramowania musi współpracować i łączyć się z inżynierią
systemów oraz inżynierią mechaniczną, ponieważ mnogość
systemów mechanicznych ulepszonych przez wbudowane
oprogramowanie sprawiła, że w dzisiejszych czasach samochody
nie są już produkowane „tylko do jazdy”. Przedsiębiorstwa
samochodowe przeobrażają się w firmy „mobilnej elektroniki
użytkowej”, opierające się na nowych i przełomowych
technologiach w celu tworzenia nowych produktów – bez
rezygnacji z obowiązków w zakresie bezpieczeństwa i
wydajności.
Oznacza to, że narzędzia
wspierające zarządzanie cyklem rozwoju produktu muszą być
zintegrowanymi systemami, które przekraczają wiele domen i
branż, aby umożliwić płynny przepływ informacji oraz
zapewnienie wydajności i odpowiedzialności na wszystkich
etapach tego procesu rozwojowego.
Samochód – środek transportu,
czy złożony, połączony system?
Autonomiczne samochody to najbardziej skrajne przypadki;
ale już pojazdy elektryczne i hybrydowe prezentują całkowicie
nową odsłonę problemów projektowych. Dla przykładu, w
pojeździe zasilanym tylko energią elektryczną, precyzja
działania systemów kontroli w czasie rzeczywistym ma kluczowe
znaczenie; nie można przegapić sygnału lub niepoprawnie
odpowiedzieć na dane wejściowe. Jeśli pobieramy energię z
hamowania do ładowania baterii w hybrydowym układzie
napędowym, wymaga to większej liczby czujników, optymalizacji
zużycia energii oraz drenażu baterii w całym pojeździe,
ponieważ wpływa to na całkowity zasięg pojazdu. Wymaga to
również zintegrowania z pokładowymi systemami
informacyjno-rozrywkowymi, które łączą w sobie informacje,
sterowanie oraz nawigację dla kierowcy. Jest to punkt, w
którym nowe połączone cechy samochodów łączą się z
tradycyjnymi opcjami osobistej rozrywki i interakcji człowieka
z samochodem; niezwykle ważne jest zaprojektowanie całości
układu, interfejsu etc. w taki sposób, aby nie przytłoczyć
kierowcy nadmierną złożonością aplikacji, która może powodować
wypadki.
Integracja tych wszystkich
wymiarów bez narażania kluczowych funkcji każdego systemu lub
kwestii związanych z bezpieczeństwem, jest poważnym wyzwaniem
dla inżynierii oprogramowania.
Samochody istotnie kiedyś
zaczynały jako urządzenia mechaniczne, ale teraz stały się...
bardzo złożonymi kompilacjami oprogramowania z milionami linii
kodu, które niejako „dodatkowo” wyposażono w koła. Niewiele
innych systemów wymaga tyle samo oprogramowania, co samochód
osobowy lub współczesna ciężarówka; w samochodzie znajdziemy
więcej kodów, niż w myśliwcu odrzutowym. Obecnie, do 90% z 500
000 różnych wymogów dla nowych samochodów nie dotyczy w ogóle
mechaniki, tylko kwestii związanych z elektroniką i
oprogramowaniem. Kody nie są pisane w celu zbudowania
pojedynczego pojazdu; pomimo, że przemysł samochodowy
przełączył się do wspólnych platform współdzielonych pomiędzy
różnymi modelami, to nadal istnieją dziesiątki lub nawet setki
wariantów dla poszczególnych platform samochodowych. Oznacza
to, że nie można ich już traktować jako zbiór systemów
mechanicznych, dla których wykonuje się oddzielnie prototyp i
projekt, a następnie łączy ze sobą w ostatnim etapie
integracji; należy wymodelować, stworzyć, przetestować i
zatwierdzić systemy fizyczne w programie za pomocą symulacji,
w tandemie z oprogramowaniem, które łączy je ze sobą i
kontroluje.
Rozwój oprogramowania to tylko
jeden etap w procesie, który zaczyna się od planowania ogólnej
architektury, projektowania systemu i definiowania elementów w
tym systemie. Oprogramowanie i sprzęt nie mogą być
zróżnicowane i fragmentaryczne; muszą być rozwijane
równolegle, w silnej integracji pomiędzy komponentami
mechanicznymi i elektrycznymi oraz modelami oprogramowania,
które składają się na ogólny system w całym procesie rozwoju w
taki sposób, aby umożliwić zatwierdzenie ich razem. Rozwój na
bazie modelu oznacza, że systemy inżynieryjne oraz to, co
dzieje się w oddzielnych domenach (takich jak układ napędowy,
systemy bezpieczeństwa i wspominane już systemy
informacyjno-rozrywkowe) musi być teraz zastosowane we
wszystkich tych dziedzinach. Równolegle.
Nowe pojazdy łączą w sobie
systemy mechaniczne i elektryczne, do których już
przywykliśmy, z narzędziami Zarządzania Cyklem Życia Produktu
oraz oprogramowaniem i systemami elektrycznymi wspieranymi
przez narzędzia Aplikacji Zarządzania Cyklem Życia Produktu.
Skuteczna realizacja nowych pojazdów według harmonogramów
wymaganych przez klienta, bez kompromisów w zakresie
bezpieczeństwa i innowacji, wymaga narzędzi, które integrują i
łączą te światy ze sobą oraz wspierają najlepsze praktyki.
Posiadając liczne zespoły
programistów pracujących nad logiką i kodowaniem wielu
systemów, konieczny jest jasny podział odpowiedzialności za te
wszystkie systemy (np. rozwój skali i testów regresyjnych,
które są wymagane, aby upewnić się, że żadna z wprowadzonych
zmian nie niesie za sobą niebezpiecznych skutków ubocznych).
Jeśli chodzi o wydajność, wymagana może być automatyzacja z
ciągłą integracją w celu potwierdzenia ogólnego bezpieczeństwa
kodu we wszystkich wariantach budowanej platformy pojazdu.
Wydajność nie uległa jednak pogorszeniu w związku ze zmianami.
Musi istnieć możliwość powrotu i ustalenia w dowolnym
momencie, kto zatwierdził projekt, która kombinacja składników
była testowana razem lub w jaki sposób ustalono priorytety
odnośnie do wszelkich wykrytych usterek, tak więc potrzebne są
narzędzia, które dają pogląd we wszystkich systemach
mechanicznych, elektrycznych i kontroli oprogramowania w
pojeździe.
Aby nadążyć za tempem przemysłu
(Industry 4.0 – przyp. redakcji), rozwój motoryzacji musi
zawierać duże ilości symulacji, przechwytywania i odtwarzania
danych z badań układów fizycznych, aby zatwierdzić każdą
zmianę oprogramowania w sposób, który umożliwia kompatybilność
i pozwala na ponowne wykorzystanie w szerszej gamie
samochodów, platform pojazdów i wariantów. Dla autonomicznych
pojazdów i systemów wspomagających, gromadzenie danych i
badania będą musiały obejmować wszystkie obszary, w których
pojazdy będą działać, co może obejmować różne kultury jazdy, a
także różne przepisy ruchu drogowego i bezpieczeństwa.
Co ciekawe, większość wadliwych
produktów w przemyśle samochodowym ma związek z
oprogramowaniem, a nie sprzętem w samochodzie, więc
zwiększenie jakości dzięki lepszej inżynierii oprogramowania
jest konieczne, aby uniknąć kosztów finansowych oraz utraty
reputacji przez producenta samochodów w związku z wycofaniem
danego modelu z produkcji.
Testowanie, weryfikacja i
zatwierdzanie tych modeli musi odbywać się w sposób
zintegrowany, z pomocą narzędzi programistycznych, które
integrują się z systemami PLM i same są zintegrowane w celu
ułatwienia wizualizacji wymagań, specyfikacji i przepływu
informacji pomiędzy różnymi modelami w ramach spójnego
procesu, a nie szeregu oddzielnych etapów. Taki stan rzeczy
musi mieć miejsce w całym procesie, począwszy od wykazania
wykonalności koncepcji, aż po realizację i optymalizację
całego systemu, a coraz częściej również aż do momentu
wypuszczenia produktu na rynek.
I wszystko to trzeba wykonywać... w coraz szybszym tempie.
Prędkość i stabilność
Cykle rozwoju
produktów dla przemysłu samochodowego w ostatnim czasie
zanotowały spadek; firmy muszą wprowadzić nowe linie pojazdu
lub, co równie ważne, nowe funkcje w jeszcze szybszym tempie,
pomimo konieczności działania z ciągle to nowymi komponentami,
które mogą mieć różne właściwości i zachowania. Czasami tempo
rozwoju technologii jest tak szybkie, że firmy motoryzacyjne
nie są w stanie za nim nadążyć, co jest nie tylko kwestią
przyjęcia nowych komponentów i technologii; chodzi również o
czas i koszty związane z ich integracją i zatwierdzeniem.
Kierowcy korzystają ze swoich
samochodów przez długi okres, ale przywykli już do prędkości z
jaką ulepszane są urządzenia konsumenckie, corocznych
aktualizacji i częstych wydań nowych aplikacji. Istnieje
zapotrzebowanie na takie samo tempo rozwoju ulepszeń dla
samochodów, które owi kierowcy kupują – czy to w postaci
nowych funkcji w pojeździe, czy wsparcia dla nowych
akcesoriów. Zmiany regulacyjne mogą również oznaczać, że
pojazd będzie musiał być ulepszany jeszcze na długo po
wypuszczeniu na rynek. W takiej rzeczywistości, traktowanie
rozwoju jako nauki i dyscypliny inżynierskiej jest jedynym
sposobem na radzenie sobie z połączeniem rosnącej złożoności,
zwiększonego nacisku na efektywność kosztów i stale rosnącego
tempa. Wymaga to opracowania praktyk inżynierii
oprogramowania, które są zgodne z rygorystycznymi procesami
strukturalnymi. Jeśli można zamknąć cykl produkcji, płynnie
przechodząc poprzez wymogi zbierania informacji (zadania,
które powoli zaczynają zajmować większość czasu w procesie
rozwoju), budowy, testowania i sprawdzania poprawności kodu
pod kątem wspomnianych wymagań, możemy ogólnie poprawić
powtarzalność rozwoju, zwiększyć wydajność, efektywność i
odpowiedzialność.
Przemysł motoryzacyjny zmierza w
kierunku normalizacji poprzez rosnącą liczbę specyfikacji ISO,
które obejmują bezpieczeństwo, ergonomię, wydajność, kwestie
środowiskowe i metody badań, oraz poprzez partnerstwa takie
jak AUTOSAR (Motoryzacyjna Otwarta Architektura Systemowa
AUTOSAR). Aby mieć pewność zgodności ze wspomnianymi
standardami, należy opracować certyfikowane procesy tworzenia
oprogramowania.
fot. Siemens
Odpowiednie narzędzia i techniki
mogą obniżyć koszty, które w przeciwnym razie by wzrosły,
ponieważ oprogramowanie staje się coraz istotniejszą częścią
procesu rozwoju, poprzez zwiększenie wydajności i dokładności.
Mogą one pomóc przedstawić wymagania, specyfikacje i nawet
kody w taki sposób, że są one łatwiejsze do odczytania i
zrozumienia dla programistów, którzy nad nimi pracują. Są
także kluczem do zharmonizowania niektórych obciążeń rozwoju
oprogramowania, umożliwiając ponowne wykorzystanie komponentów
oprogramowania.
Teoretycznie, ponowne
wykorzystanie komponentów oprogramowania między pojazdami i
platformami samochodowymi (a nawet w różnych domenach
konstrukcyjnych w pojeździe) powinno przyczynić się do
obniżenia kosztów i czasu wdrożenia oraz wzrostu jakości. W
praktyce jest to bardziej skomplikowane, ponieważ
przygotowanie tych składników do ponownego wykorzystania we
wszystkich możliwych scenariuszach oznacza więcej pracy,
więcej wymogów do spełnienia oraz więcej badań i procesów
zatwierdzających. Ale ponowne wykorzystanie oprogramowania
jest kolejnym kluczowym elementem, któremu przemysł
samochodowy musi sprostać.
Digitalizacja, design,
delokalizacja – albo wypadnięcie z rynku
W większości
dzisiejszych pojazdów na naszych drogach, świat z zewnątrz
przenosi się do wnętrz pojazdów; oznacza to, że sposób
projektowania pojazdu musi się zmienić, aby dopasować ten nowy
świat, który staje się coraz bardziej wymagający. Nie ma tutaj
miejsca na tymczasowe, jednorazowe kodowanie. Zamiast tego
potrzebne jest zintegrowane podejście do projektowania systemu
od punktu wyjścia do punktu docelowego, gdzie rozwój
oprogramowania jest kolejną dyscypliną inżynierii, do której
opanowania niezbędne są narzędzia obsługujące złożoność
osadzania oprogramowania w produktach sprzętowych.
Gdy firmy motoryzacyjne
postrzegają siebie jako elastyczne spółki dbające o
doświadczenia konsumenta, to tak naprawdę oznacza tyle, że
muszą być one również profesjonalnymi producentami
oprogramowania. Wymaga to zintegrowanego projektowania
produktu i rozwoju systemów, które obejmują cały cykl życia
produktu, zarówno pod względem mechanicznym, jak i cyfrowym,
począwszy od pomysłu i projektu, poprzez produkcję,
konserwację i naprawy, aż po aktualizacje i ulepszenia oraz
przepływ informacji typu forward dla efektywności i
produktywności oraz backwards dla odpowiedzialności i
ewidencji.
„...w
czasach, gdy całe rynki mogą zniknąć w wyniku wprowadzenia
jednej innowacji, poprawa biznesowa oraz techniczna sprawność
okazują się być jedynym sposobem na przetrwanie...”
Rosnące tempo zmian – zarówno w
technologii, jak i modelach biznesowych – wymaga narzędzi,
które wspierają nowe, usprawnione metody pracy, ponieważ
dostarczanie nowej wartości biznesowej staje się jedynym
sposobem na utrzymanie przewagi konkurencyjnej. Rzeczywiście,
w czasach, gdy całe rynki mogą zniknąć w wyniku wprowadzenia
jednej innowacji, poprawa biznesowa oraz techniczna sprawność
okazują się być jedynym sposobem na przetrwanie. Coraz więcej
produktów nie jest tylko sprzętem lub tylko oprogramowaniem,
ale ich hybrydą, a ze względu na to, że są one coraz mniejsze,
inteligentniejsze oraz bardziej zależne od wbudowanego
oprogramowania i mikroprocesorów, a także bardziej ze sobą
powiązane, złożoność produktu wzrasta drastycznie.
Jednocześnie klienci oczekują produktów spersonalizowanych,
które można zamówić nie ruszając się z kanapy (przez Internet)
i dostarczonych w mgnieniu oka. Jeśli więc nie jesteś w stanie
spełnić wymagań klienta, zrobi to konkurencja...
mirko.baecker@siemens.com
red. Maciej Stanisławski,
CADblog.pl
Firma
Siemens PLM Software, jednostka organizacyjna Siemens Digital
Factory Division, jest wiodącym światowym dostawcą
oprogramowania, systemów i usług do zarządzania cyklem życia
produktów (PLM) oraz działalnością produkcyjną (MOM),
szczycącym się ponad 15 milionami licencji stanowiskowych oraz
ponad 140 000 klientów na całym świecie. Posiadający swoją
siedzibę w Plano w Teksasie, dział Siemens PLM Software
aktywnie współpracuje ze swoimi klientami oferując im
rozwiązania zapewniające firmom z całego świata przewagę
konkurencyjną wynikającą z zastosowania pionierskich,
prawdziwie innowacyjnych rozwiązań. Więcej informacji na temat
produktów i usług Siemens PLM Software można znaleźć pod
adresem
www.siemens.com/plm.
|
|