Opgradering af software til termisk analyse: 40% hurtigere databehandling

Innowise forbedrede en kundes webapp til termisk analyse ved at forbedre kodekvaliteten, opgradere visualiseringen af 3D-modeller og tilføje nye funktioner.

Kunde

Industri
Informationsteknologi
Region
EU
Kunde siden
2023

Vores kunde udvikler software til modellering af termisk design, som gør det muligt for ingeniører at se, hvor godt deres design fungerer under høje temperaturer. Ingeniørerne uploader og konfigurerer 3D-modeller af produktdele, som derefter sendes til en supercomputer til behandling og simulering. Webapplikationen analyserer disse modeller for at identificere funktioner som temperaturfordeling, varmeafledning, væskestrømning, termisk modstand, termisk stråling, kølekapacitet osv. På den måde kan ingeniørerne spare ressourcer på prototyper og teste deres design via software.

Detaljerede oplysninger om klienten kan ikke videregives i henhold til vilkårene i NDA'en.

Udfordring

Løsning af langsomme webapps og forbedring af 3D-modellers nøjagtighed

Vores klient kom til os med flere problemer: deres Software til termisk analyse fungerede dårligt, og 3D-modellerne blev ikke indlæst korrekt, og nogle modeller blev slet ikke vist. Webappen kæmpede også med effektivt at visualisere termiske forhold mellem forskellige dele og præsentere analyseresultater. Problemerne gjorde det vanskeligt for brugerne at fortolke og bruge dataene effektivt.

Løsning

Opgradering af software til termisk analyse: fra kodekvalitet til avancerede funktioner

Innowise forbedrede sin kundes software ved at analysere eksisterende kode, rette fejl og tilføje nye funktioner. Vi fandt problemer i koden og gjorde den renere for at forbedre den samlede softwareydelse. Vores team af eksperter opgraderede også 3D-modellernes kvalitet og introducerede nye funktioner som en termisk netværksside og værktøjer til designudvikling for yderligere at forbedre produktudviklingsprocessen.

Vurdering af kodekvalitet og refaktorering

Vores softwareingeniører foretog en grundig vurdering af den eksisterende kodebase. Denne proces involverede et dybt dyk ned i kodens struktur, funktionalitet og generelle sundhed. Vi brugte statiske kodeanalyseværktøjer som ESLint og SonarQube til automatisk at opdage potentielle problemer, efterfulgt af en manuel gennemgang for at fange alt det, som de automatiserede værktøjer måske havde overset. Innowise-teamet gennemgik resultaterne og udarbejdede en detaljeret oversigt over problemerne og vores anbefalede løsninger.

Refaktorering af kode

Da refaktorering af koden er afgørende for at opretholde en sund kodebase, fokuserede vi først på at forbedre kodens læsbarhed og ydeevne. Disse forbedringer gjorde det lettere for udviklere at forstå og bygge videre på koden i fremtiden.

  • Fjernelse af overflødig kode: Vores ingeniører identificerede og fjernede duplikerede og unødvendige kodesegmenter, som fyldte for meget i kodebasen. Det var med til at reducere kodens samlede størrelse og gøre den nemmere at vedligeholde.
  • Forbedring af læsbarheden: Vi håndhævede konsekvente kodningsstandarder og bedste praksis, som f.eks. korrekt indrykning, navngivningskonventioner og modularisering. Det gjorde koden mere læsbar og lettere for udviklerne at forstå og ændre.
  • Optimering af ydeevne: Innowise-teamet identificerede flaskehalse i ydeevnen og optimerede koden, så den kørte mere effektivt. Det omfattede optimering af sløjfer, reduktion af algoritmernes kompleksitet og sikring af, at hukommelsen blev brugt effektivt.

 

Løsning af fejl

At rette fejl var afgørende for, at softwaren kunne køre problemfrit og pålideligt. Ved at løse fejl og problemer forbedrede vi softwarens stabilitet og gjorde den bedre for brugerne.

  • Identifikation og løsning af fejl: Vores team af eksperter brugte fejlfindingsværktøjer og -teknikker til at opspore og rette fejl, der forårsagede fejl og uventet adfærd. Dette omfattede håndtering af syntaksfejl, logiske fejl og runtime-undtagelser.
  • Enhedstest: Vi implementerede omfattende enhedstests ved hjælp af Jest framework og Vue test utils library for at sikre, at hver enkelt komponent i applikationen fungerede korrekt. Dette hjalp med at fange fejl tidligt i udviklingsprocessen.
  • Validering af kode: Derefter validerede Innowise-teamet koden i forhold til industristandarder for at sikre overholdelse og robusthed. Vi validerede API-integrationer, datahåndteringsrutiner og brugergrænsefladekomponenter som en del af denne proces.
  • Kontinuerlig integration: Endelig integrerede vores ingeniører kodebasen med en kontinuerlig integrations-pipeline (CI) ved hjælp af Jenkins og GitHub Actions-værktøjer. Dette automatiserede processen med Kodetestning og udrulning og sikre, at nye ændringer ikke introducerede nye fejl.

Forbedring af 3D-modellens kvalitet

At løse problemer med visualisering af 3D-modeller i vores kunders Software til termisk analyseintegrerede vi vtk.js-biblioteket, som er mindre ressourcekrævende. Det garanterede, at alle modeller blev indlæst korrekt og vist præcist.

Vores team tog sig også af problemer med modelrendering ved at analysere renderingspipelinen, rette fejl og optimere algoritmer. Dette omfattede forbedring af mesh-generering, teksturmapping og skygge, så modellerne blev vist præcist og effektivt.

Nye funktionaliteter

For yderligere at forbedre applikationens muligheder har vi introduceret flere nye funktioner, der skal forbedre brugeroplevelsen og give dybere indsigt i den termiske ydeevne.

Termisk netværksside

Vores softwareingeniører har skabt en ny termisk netværksside, der bruger interaktive grafer til at illustrere de termiske forhold mellem forskellige dele af et produkt. Denne visualisering giver brugerne en klarere og mere intuitiv forståelse af, hvordan varmen fordeles og overføres i deres design. Brugerne kan nu se de termiske interaktioner i et grafisk format, hvilket gør det lettere at identificere potentielle hotspots. Siden giver mulighed for at zoome og panorere, så brugerne kan fokusere på specifikke områder af interesse og analysere den termiske ydeevne i detaljer.

Side om designudvikling

Derefter tilføjede vi en designudviklingsfunktion, der gør det muligt for brugerne at spore og sammenligne udviklingen af deres design over flere iterationer. Denne funktion er især nyttig for dem, der har brug for at evaluere effekten af designændringer på den termiske ydeevne. Brugerne kan gemme forskellige iterationer af deres simuleringer, sammenligne dem side om side og vælge den bedste version ud fra resultaterne. Designudviklingssiden indeholder en tidslinjevisning, som visuelt repræsenterer udviklingen af designændringer og deres tilsvarende simuleringsresultater. Brugerne kan downloade indstillingerne for den bedste iteration, hvilket gør det nemmere at dokumentere og implementere det optimale design.

Præsentation af strukturerede data

Vores fagfolk gjorde data lettere at forstå ved at bruge tabeller og grafer. Denne tilgang giver klare oplysninger om vigtige ting som temperatur, tryk og flowhastighed. Brugerne kan se resultaterne uden at skulle sortere i rodede data. Tabellerne har muligheder for at sortere og filtrere, så brugerne kan fokusere på specifikke detaljer. Grafer viser tendenser og mønstre, der hjælper brugerne med hurtigt at få øje på vigtige indsigter. Vi har også tilføjet funktioner som værktøjstips og zoom for at gøre graferne mere interaktive og brugervenlige.

Teknologier

.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 osv.), GitLab, Terraform

Kontinuerlig udrulning

GitLab CI

Containerisering og containerstyring
Docker, Elastic Kubernetes Service, Elastic Container Service - AWS-baseret

Proces

Vores udviklingsproces var opdelt i flere faser for at holde projektet organiseret og opretholde et tæt samarbejde med kunden. Ved at bruge Agile- og Kanban-metoder kunne vi hurtigt tilpasse os ændringer og prioritere opgaverne effektivt. Det sikrede, at projektet holdt sig på sporet og opfyldte kundens behov.

Opdagelsesfasen

I opdagelsesfasen foretog vi en indledende vurdering af kodebasen og indsamlede detaljerede kundekrav. Hovedleverancen var et Vision- og Scope-dokument, der beskrev projektets mål og målsætninger.

Designfasen

I denne fase skabte vores ekspertteam detaljerede wireframes og prototyper til de nye funktioner og forbedringer. De vigtigste leverancer omfattede et kort over kunderejsen og en klikbar prototype af de nye sider.

Udviklingsfasen

Derefter implementerede vores udviklere refaktorering af koden, integrerede VTK.js til 3D-modeller og skabte nye funktioner. Leverancerne omfattede en opdateret kodebase, fuldt funktionelle nye funktioner og forbedrede visualiseringer af 3D-modeller.

Testfase

Den følgende fase omfattede grundig testning, herunder enheds-, integrations- og brugeraccepttest, for at sikre funktionalitet og pålidelighed.

Udrulningsfasen

Til sidst implementerede vi den opdaterede applikation i kundens miljø og ydede support efter implementeringen.

Møder og værktøjer

Vores team holdt daglige stand-up-møder for at diskutere fremskridt og løse problemer med det samme, hvilket hjalp os med at bevare momentum og forhindre forsinkelser. Vi brugte Jira til at styre opgaver og spore fremskridt på en gennemsigtig måde, mens Slack muliggjorde direkte og løbende kommunikation med kunden. Denne tilgang gjorde det muligt for os at imødekomme kundens behov hurtigt og holde projektet i gang på en effektiv måde.

Hold

2

Front-End Engineers

2

Back-End Engineers

2

Teamledere

1

QA

1

AQA

1

UI/UX-designer

1

DevOps

Resultater

40% hurtigere analyse af termiske data og hurtigere indlæsning af webapps

Udvidet funktionalitet

Den nye termiske netværksside gav brugerne en klar og interaktiv måde at forstå de termiske forhold på. Desuden kunne de nu nemt sammenligne forskellige design-iterationer og vælge den optimale, hvilket forbedrede den overordnede designproces.

Forbedret kodekvalitet

Koden var renere, mere vedligeholdelsesvenlig og fri for de tidligere udbredte fejl, hvilket førte til en mere stabil og pålidelig løsning. software til termisk analyse.

Bedre kvalitet af 3D-modeller

Alle 3D-modeller blev nu vist korrekt, hvilket forbedrede brugeroplevelsen og pålideligheden af de termiske simuleringer.

Struktureret præsentation af resultater

Resultaterne blev nu præsenteret på en struktureret og forståelig måde. Som følge heraf blev det lettere for brugerne at fortolke og bruge oplysningerne effektivt.
Projektets varighed
  • Maj 2023 - september 2023

40%

reduktion i tid til analyse af termiske data

60%

Hurtigere indlæsning af webapps

    Kontakt os

    Book et opkald eller udfyld formularen nedenfor, så vender vi tilbage til dig, når vi har behandlet din anmodning.

    Send os en talebesked
    Vedhæft dokumenter
    Upload fil

    Du kan vedhæfte 1 fil på op til 2 MB. Gyldige filformater: pdf, jpg, jpeg, png.

    Ved at klikke på Send accepterer du, at Innowise behandler dine personlige data i henhold til vores Politik for beskyttelse af personlige oplysninger for at give dig relevante oplysninger. Ved at indsende dit telefonnummer accepterer du, at vi kan kontakte dig via taleopkald, sms og beskedapps. Opkalds-, besked- og datatakster kan være gældende.

    Du kan også sende os din anmodning
    til contact@innowise.com

    Hvad sker der nu?

    1

    Når vi har modtaget og behandlet din anmodning, vender vi tilbage til dig for at beskrive dine projektbehov og underskriver en NDA for at sikre fortrolighed.

    2

    Når vi har undersøgt dine ønsker, behov og forventninger, udarbejder vores team et projektforslag med forslag med arbejdets omfang, teamstørrelse, tids- og omkostningsoverslag.

    3

    Vi arrangerer et møde med dig for at diskutere tilbuddet og få detaljerne på plads.

    4

    Til sidst underskriver vi en kontrakt og begynder at arbejde på dit projekt med det samme.

    pil