1TP157Ulepszony projekt produktu dzięki ulepszonemu oprogramowaniu do analizy termicznej

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

Wyzwanie

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.

Rozwiązanie

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.

Code quality assessment and refactoring

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.

Enhancing 3D model quality

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.

New functionalities

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 discovery

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.

Programowanie

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.

Wymagany 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

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.

    Skontaktuj się z nami

    Umów się na rozmowę lub wypełnij poniższy formularz, a my odezwiemy się do Ciebie po przetworzeniu Twojego zgłoszenia.

    Wyślij nam wiadomość głosową
    Załącz dokumenty
    Prześlij plik

    Można załączyć 1 plik o rozmiarze do 2 MB. Prawidłowe formaty plików: pdf, jpg, jpeg, png.

    Klikając "Wyślij", wyrażasz zgodę na przetwarzanie Twoich danych osobowych przez Innowise zgodnie z naszą Politykę Prywatności w celu przekazania Ci odpowiednich informacji. Podając numer telefonu, zgadzasz się na kontakt za pośrednictwem połączeń głosowych, SMS-ów lub komunikatorów. Mogą obowiązywać opłaty za połączenia, wiadomości i transmisję danych.

    Możesz także wysłać swoje zapytanie
    na contact@innowise.com
    Co dalej?
    1

    Po otrzymaniu i przetworzeniu zgłoszenia skontaktujemy się z Tobą, aby szczegółowo opisać projekt i podpisać umowę NDA w celu zapewnienia poufności.

    2

    Po zapoznaniu się z Twoimi potrzebami i oczekiwaniami, nasz zespół opracuje projekt wraz z zakresem prac, wielkością zespołu, wymaganym czasem i szacunkowymi kosztami.

    3

    Zorganizujemy spotkanie w celu omówienia oferty i ustalenia szczegółów.

    4

    Na koniec podpiszemy umowę, błyskawicznie rozpoczynając pracę nad projektem.

    arrow