Aktualizacja oprogramowania do analizy termicznej: 40% szybsze przetwarzanie danych

Innowise ulepszył aplikację internetową do analizy termicznej klienta, poprawiając jakość kodu, ulepszając wizualizację modeli 3D i dodając nowe funkcje.

Klient

Branża
Technologia informacyjna
Region
UE
Klient od
2023

Nasz klient opracowuje oprogramowanie do modelowania termicznego, które pozwala inżynierom sprawdzić, jak dobrze ich projekty sprawdzają się w wysokich temperaturach. Inżynierowie przesyłają i konfigurują modele 3D części produktów, które są następnie przesyłane do superkomputera w celu przetworzenia i symulacji. Aplikacja internetowa analizuje te modele, aby zidentyfikować takie cechy, jak rozkład temperatury, rozpraszanie ciepła, przepływ płynów, opór cieplny, promieniowanie cieplne, wydajność chłodzenia itp. W ten sposób inżynierowie mogą zaoszczędzić zasoby na prototypach i przetestować swoje projekty za pomocą oprogramowania.

Szczegółowe informacje o kliencie nie mogą zostać ujawnione zgodnie z warunkami umowy NDA.

Wyzwanie

Rozwiązanie problemu spowolnienia aplikacji internetowej i zwiększenie dokładności modeli 3D

Nasz klient zgłosił się do nas z kilkoma problemami: ich oprogramowanie do analizy termicznej działała słabo, a modele 3D nie ładowały się poprawnie, a niektóre modele w ogóle się nie pojawiały. Aplikacja internetowa miała również trudności z efektywną wizualizacją zależności termicznych między różnymi częściami i prezentacją wyników analizy. Problemy te utrudniały użytkownikom interpretację i efektywne wykorzystanie danych.

Wdrożenie

Aktualizacja oprogramowania do analizy termicznej: od jakości kodu do zaawansowanych funkcji

Innowise ulepszyło oprogramowanie swojego klienta, analizując istniejący kod, naprawiając błędy i dodając nowe funkcje. Znaleźliśmy problemy w kodzie i oczyściliśmy go, aby poprawić ogólną wydajność oprogramowania. Nasz zespół ekspertów poprawił również jakość modeli 3D i wprowadził nowe funkcje, takie jak strona sieci termicznej i narzędzia do ewolucji projektu, aby jeszcze bardziej usprawnić proces rozwoju produktu.

Ocena jakości kodu i refaktoryzacja

Nasi inżynierowie oprogramowania przeprowadzili dokładną ocenę istniejącej bazy kodu. Proces ten obejmował dogłębną analizę struktury, funkcjonalności i ogólnego stanu kodu. Wykorzystaliśmy narzędzia do statycznej analizy kodu, takie jak ESLint i SonarQube, aby automatycznie wykryć potencjalne problemy, a następnie dokonaliśmy ręcznego przeglądu, aby wychwycić wszystko, co zautomatyzowane narzędzia mogły przeoczyć. Zespół Innowise dokonał przeglądu ustaleń i opracował szczegółowy opis problemów i zalecanych przez nas rozwiązań.

Refaktoryzacja kodu

Ponieważ refaktoryzacja kodu ma kluczowe znaczenie dla utrzymania zdrowej bazy kodu, w pierwszej kolejności skupiliśmy się na poprawie czytelności i wydajności kodu. Ulepszenia te ułatwiły programistom zrozumienie i wykorzystanie kodu w przyszłości.

  • Usuwanie zbędnego kodu: Nasi inżynierowie zidentyfikowali i wyeliminowali zduplikowane i niepotrzebne segmenty kodu, które zaśmiecały bazę kodu. Pomogło to zmniejszyć ogólny rozmiar kodu i poprawić jego łatwość konserwacji.
  • Poprawa czytelności: Egzekwowaliśmy spójne standardy kodowania i najlepsze praktyki, takie jak odpowiednie wcięcia, konwencje nazewnictwa i modularyzacja. Dzięki temu kod był bardziej czytelny i łatwiejszy do zrozumienia i modyfikacji przez programistów.
  • Optymalizacja wydajności: Zespół Innowise zidentyfikował wąskie gardła wydajności i zoptymalizował kod, aby działał wydajniej. Obejmowało to optymalizację pętli, zmniejszenie złożoności algorytmów i zapewnienie efektywnego wykorzystania pamięci.

 

Usuwanie błędów

Naprawianie błędów było niezbędne do utrzymania płynnego i niezawodnego działania oprogramowania. Rozwiązując błędy i problemy, poprawiliśmy stabilność oprogramowania i uczyniliśmy je lepszym dla użytkowników.

  • Identyfikacja i rozwiązywanie błędów: Nasz zespół ekspertów wykorzystał narzędzia i techniki debugowania, aby wyśledzić i naprawić błędy, które powodowały błędy i nieoczekiwane zachowanie. Obejmowało to usuwanie błędów składni, błędów logicznych i wyjątków w czasie wykonywania.
  • Testy jednostkowe: Wdrożyliśmy kompleksowe testy jednostkowe przy użyciu frameworka Jest i biblioteki narzędzi testowych Vue, aby upewnić się, że każdy pojedynczy komponent aplikacji działa poprawnie. Pomogło to w wychwyceniu błędów na wczesnym etapie procesu rozwoju.
  • Walidacja kodu: Następnie zespół Innowise zweryfikował kod pod kątem standardów branżowych, aby zapewnić zgodność i solidność. W ramach tego procesu zweryfikowaliśmy integracje API, procedury obsługi danych i komponenty interfejsu użytkownika.
  • Ciągła integracja: Na koniec nasi inżynierowie zintegrowali bazę kodu z potokiem ciągłej integracji (CI) przy użyciu narzędzi Jenkins i GitHub Actions. Pozwoliło to zautomatyzować proces testowanie kodu i wdrożenie, zapewniając, że nowe zmiany nie wprowadziły nowych błędów.

Poprawa jakości modeli 3D

Aby rozwiązać problemy z wizualizacją modeli 3D u naszego klienta oprogramowanie do analizy termicznejzintegrowaliśmy bibliotekę vtk.js, która jest mniej zasobożerna. Gwarantowało to, że wszystkie modele ładowały się poprawnie i były dokładnie wyświetlane.

Nasz zespół zajął się również kwestiami związanymi z renderowaniem modeli, analizując potok renderowania, naprawiając błędy i optymalizując algorytmy. Obejmowało to poprawę generowania siatki, mapowania tekstur i cieniowania, dzięki czemu modele były wyświetlane dokładnie i wydajnie.

Nowe funkcje

Aby jeszcze bardziej zwiększyć możliwości aplikacji, wprowadziliśmy kilka nowych funkcji mających na celu poprawę komfortu użytkowania i zapewnienie głębszego wglądu w wydajność termiczną.

Strona sieci termicznej

Nasi inżynierowie oprogramowania stworzyli nową stronę sieci termicznej, która wykorzystuje interaktywne wykresy do zilustrowania zależności termicznych między różnymi częściami produktu. Wizualizacja ta zapewnia użytkownikom jaśniejsze i bardziej intuicyjne zrozumienie, w jaki sposób ciepło jest rozprowadzane i przenoszone w ich projekcie. Użytkownicy mogą teraz zobaczyć interakcje termiczne w formacie graficznym, co ułatwia identyfikację potencjalnych hotspotów. Strona umożliwia powiększanie i przesuwanie, dzięki czemu użytkownicy mogą skupić się na konkretnych obszarach zainteresowania i szczegółowo przeanalizować wydajność termiczną.

Strona ewolucji projektu

Następnie dodaliśmy funkcję ewolucji projektu, która umożliwia użytkownikom śledzenie i porównywanie ewolucji ich projektów w wielu iteracjach. Funkcja ta jest szczególnie przydatna dla tych, którzy muszą ocenić wpływ zmian projektowych na wydajność termiczną. Użytkownicy mogą zapisywać różne iteracje swoich symulacji, porównywać je ze sobą i wybierać najlepszą wersję na podstawie wyników. Strona ewolucji projektu zawiera widok osi czasu, który wizualnie przedstawia postęp modyfikacji projektu i odpowiadające im wyniki symulacji. Użytkownicy mogą pobrać ustawienia najlepszej iteracji, co ułatwia dokumentację i wdrożenie optymalnego projektu.

Ustrukturyzowana prezentacja danych

Nasi specjaliści sprawili, że dane są łatwiejsze do zrozumienia dzięki zastosowaniu tabel i wykresów. Takie podejście zapewnia jasne informacje o kluczowych kwestiach, takich jak temperatura, ciśnienie i natężenie przepływu. Użytkownicy mogą zobaczyć wyniki bez konieczności sortowania niechlujnych danych. Tabele mają opcje sortowania i filtrowania, dzięki czemu użytkownicy mogą skupić się na konkretnych szczegółach. Wykresy pokazują trendy i wzorce, które pomagają użytkownikom szybko dostrzec ważne spostrzeżenia. Dodaliśmy również funkcje, takie jak podpowiedzi i powiększanie, aby wykresy były bardziej interaktywne i przyjazne dla użytkownika.

Technologie

.NET, C#, EntityFramework, Amazon SQS
JavaScript, Vue 3, Nuxt 3, Vuex, vtk.js, D3.js

PostgreSQL

AWS (EKS, ECS, ECR, CloudWatch, EC2, S3, RDS, Amazon MQ itp.), GitLab, Terraform

Ciągłe wdrażanie

GitLab CI

Konteneryzacja i zarządzanie kontenerami
Docker, Elastic Kubernetes Service, Elastic Container Service - oparte na AWS

Proces

Nasz proces rozwoju został podzielony na kilka etapów, aby utrzymać porządek w projekcie i ścisłą współpracę z klientem. Korzystając z metodologii Agile i Kanban, mogliśmy szybko dostosowywać się do zmian i skutecznie ustalać priorytety zadań. Zapewniło to, że projekt pozostał na właściwym torze i spełniał potrzeby klienta.

Faza odkrywania

W fazie odkrywania przeprowadziliśmy wstępną ocenę bazy kodu i zebraliśmy szczegółowe wymagania klienta. Głównym rezultatem był dokument Vision and Scope określający cele i założenia projektu.

Faza projektowania

Na tym etapie nasz zespół ekspertów stworzył szczegółowe szkielety i prototypy nowych funkcji i ulepszeń. Kluczowe rezultaty obejmowały mapę podróży klienta i klikalny prototyp nowych stron.

Faza rozwoju

Następnie nasi programiści wdrożyli refaktoryzację kodu, zintegrowali VTK.js dla modeli 3D i stworzyli nowe funkcje. Rezultaty obejmowały zaktualizowaną bazę kodu, w pełni funkcjonalne nowe funkcje i ulepszone wizualizacje modeli 3D.

Faza testowania

Kolejny etap obejmował rygorystyczne testy, w tym testy jednostkowe, integracyjne i akceptacyjne użytkownika, w celu zapewnienia funkcjonalności i niezawodności.

Faza wdrażania

Na koniec wdrożyliśmy zaktualizowaną aplikację w środowisku klienta i zapewniliśmy wsparcie powdrożeniowe.

Spotkania i narzędzia

Nasz zespół odbywał codzienne spotkania w celu omówienia postępów i szybkiego rozwiązywania problemów, co pomogło nam utrzymać tempo i zapobiec opóźnieniom. Używaliśmy Jira do zarządzania zadaniami i przejrzystego śledzenia postępów, podczas gdy Slack ułatwiał bezpośrednią i ciągłą komunikację z klientem. Takie podejście pozwoliło nam szybko reagować na potrzeby klienta i sprawnie realizować projekt.

Zespół

2

Inżynierowie front-end

2

Inżynierowie zaplecza

2

Liderzy zespołów

1

QA

1

AQA

1

Projektant UI/UX

1

DevOps

Wyniki

40% szybsza analiza danych termicznych i przyspieszony czas ładowania aplikacji internetowej

Rozszerzona funkcjonalność

Nowa strona sieci termicznej zapewniła użytkownikom przejrzysty i interaktywny sposób na zrozumienie zależności termicznych. Co więcej, mogą teraz łatwo porównać różne iteracje projektu i wybrać optymalną, usprawniając ogólny proces projektowania.

Lepsza jakość kodu

Kod był czystszy, łatwiejszy w utrzymaniu i wolny od wcześniejszych powszechnych błędów, co doprowadziło do bardziej stabilnego i niezawodnego działania. oprogramowanie do analizy termicznej.

Lepsza jakość modeli 3D

Wszystkie modele 3D były teraz wyświetlane poprawnie, co poprawiło komfort użytkowania i niezawodność symulacji termicznych.

Ustrukturyzowana prezentacja wyników

Wyniki zostały przedstawione w uporządkowany i zrozumiały sposób. W rezultacie użytkownikom łatwiej było interpretować i efektywnie wykorzystywać informacje.
Czas trwania projektu
  • Maj 2023 r. - Wrzesień 2023 r.

40%

skrócenie czasu analizy danych termicznych

60%

Szybsze ładowanie aplikacji internetowych

Skontaktuj się z nami

Umów się na rozmowę lub wypełnij poniższy formularz, a my skontaktujemy się z Tobą po przetworzeniu Twojego zgłoszenia.

    Prosimy o podanie szczegółów projektu, czasu trwania, stosu technologicznego, potrzebnych specjalistów IT i innych istotnych informacji.
    Nagraj wiadomość głosową na temat
    projekt, który pomoże nam lepiej go zrozumieć
    W razie potrzeby dołącz dodatkowe dokumenty
    Prześlij plik

    Można załączyć maksymalnie 1 plik o łącznej wielkości 2 MB. Ważne pliki: pdf, jpg, jpeg, png

    Informujemy, że po kliknięciu przycisku Wyślij Innowise będzie przetwarzać dane osobowe użytkownika zgodnie z naszą polityką prywatności. Politykę Prywatności w celu dostarczenia użytkownikowi odpowiednich informacji. Podanie numeru telefonu i przesłanie niniejszego formularza jest równoznaczne z wyrażeniem zgody na kontakt za pośrednictwem wiadomości tekstowej SMS. Mogą obowiązywać opłaty za wiadomości i transmisję danych. Możesz odpowiedzieć STOP, aby zrezygnować z dalszych wiadomości. Aby uzyskać więcej informacji, odpowiedz POMOC.

    Co dalej?

    1

    Po otrzymaniu i przetworzeniu Twojego zgłoszenia skontaktujemy się z Tobą wkrótce, aby wyszczególnić potrzeby projektu i podpisać umowę o zachowaniu poufności, aby zapewnić poufność informacji.

    2

    Po przeanalizowaniu wymagań, nasi analitycy i programiści opracowują projekt z zakresem prac, wielkością zespołu, czasem i kosztami szacunki.

    3

    Umówimy się z Tobą na spotkanie, aby omówić ofertę i dojść do porozumienia porozumienia.

    4

    Podpisujemy umowę i rozpoczynamy pracę nad projektem tak szybko, jak to możliwe.

    Спасибо!

    Cобщение отправлено.
    Мы обработаем ваш запрос и свяжемся с вами в кратчайшие сроки.

    Dziękuję!

    Wiadomość została wysłana.
    Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.

    Dziękuję!

    Wiadomość została wysłana. 

    Przetworzymy Twoją prośbę i skontaktujemy się z Tobą tak szybko, jak to możliwe.

    strzałka