1TP157 Forbedret produktdesign ved hjelp av revidert programvare for termisk analyse

Innowise enhanced a client’s thermal analysis web app by improving code quality, upgrading 3D model visualization, and adding new features.

Utfordring

Kunden vår kom til oss med flere problemer: deresprogramvare for termisk analyse performed poorly, and the 3D models weren’t loading correctly, with some models not appearing at all. The web app also struggled to effectively visualize thermal relationships between different parts and present analysis results. The issues made it difficult for users to interpret and use the data efficiently.

Løsning

Innowise improved its client’s software by analyzing existing code, fixing errors, and adding new features. We found problems in the code and made it cleaner to improve the overall software performance. Our team of experts also upgraded 3D models’ quality and introduced new features like a thermal network page and design evolution tools to further improve product development process.

Vurdering av kodekvalitet og refaktorisering

Programvareingeniørene våre gjennomførte en grundig vurdering av den eksisterende kodebasen. Denne prosessen innebar et dypdykk i kodens struktur, funksjonalitet og generelle tilstand. Vi brukte statiske kodeanalyseverktøy som ESLint og SonarQube for å oppdage potensielle problemer automatisk, etterfulgt av en manuell gjennomgang for å fange opp alt som de automatiserte verktøyene kunne ha oversett. Innowise-teamet gjennomgikk funnene og utarbeidet en detaljert oversikt over problemene og våre anbefalte løsninger.

Refaktorisering av kode

Since code refactoring is crucial for maintaining a healthy codebase, we focused on improving the code’s readability and performance first. These improvements made it easier for developers to understand and build upon the code in the future.

  • Fjerne overflødig kode:våre ingeniører identifiserte og eliminerte dupliserte og unødvendige kodesegmenter som fylte opp kodebasen. Dette bidro til å redusere den totale størrelsen på koden og gjøre den enklere å vedlikeholde.
  • Forbedre lesbarheten:Vi håndhevet konsekvente kodestandarder og beste praksis, for eksempel riktig innrykk, navnekonvensjoner og modularisering. Dette gjorde koden mer lesbar og enklere for utviklerne å forstå og endre.
  • Optimalisering av ytelsen:Innowise-teamet identifiserte flaskehalser i ytelsen og optimaliserte koden slik at den kjørte mer effektivt. Dette innebar blant annet å optimalisere løkker, redusere algoritmenes kompleksitet og sørge for at minnebruken var effektiv.

 

Feilretting

Fixing errors was essential for keeping the software running smoothly and reliably. By solving bugs and issues, we improved the software’s stability and made it better for users.

  • Identifisering og løsning av feil:brukte vårt team av eksperter feilsøkingsverktøy og -teknikker for å spore opp og fikse feil som forårsaket feil og uventet oppførsel. Dette inkluderte syntaksfeil, logikkfeil og kjøretidsunntak.
  • Enhetstesting:Vi implementerte omfattende enhetstester ved hjelp av Jest-rammeverket og Vue test utils-biblioteket for å sikre at hver enkelt komponent i applikasjonen fungerte korrekt. Dette bidro til å fange opp feil tidlig i utviklingsprosessen.
  • Kodevalidering:deretter validerte Innowise-teamet koden mot bransjestandarder for å sikre samsvar og robusthet. Vi validerte API-integrasjoner, datahåndteringsrutiner og brukergrensesnittkomponenter som en del av denne prosessen.
  • Kontinuerlig integrasjon:Til slutt integrerte ingeniørene våre kodebasen med en kontinuerlig integrasjon (CI) ved hjelp av Jenkins og GitHub Actions-verktøy. Dette automatiserte prosessen medkodetestingog distribusjon, og sørget for at nye endringer ikke medførte nye feil.

Forbedring av 3D-modellens kvalitet

For å løse problemer med visualisering av 3D-modeller i våre kundersprogramvare for termisk analyseintegrerte vi vtk.js-biblioteket, som er mindre ressurskrevende. Dette garanterte at alle modellene ble lastet inn riktig og vist nøyaktig.

Teamet vårt tok også tak i problemer med modellgjengivelse ved å analysere renderingspipelinen, fikse feil og optimalisere algoritmene. Dette inkluderte forbedring av mesh-generering, teksturtilordning og skyggelegging, slik at modellene ble vist nøyaktig og effektivt.

Nye funksjoner

To further enhance the application’s capabilities, we introduced several new features destined to improve user experience and provide deeper insights into thermal performance.

Termisk nettverksside

Programvareingeniørene våre har laget en ny termisk nettverksside som bruker interaktive grafer til å illustrere termiske forhold mellom ulike deler av et produkt. Denne visualiseringen gir brukerne en klarere og mer intuitiv forståelse av hvordan varmen fordeles og overføres i designet. Brukerne kan nå se de termiske interaksjonene i et grafisk format, noe som gjør det enklere å identifisere potensielle hotspots. Siden gjør det mulig å zoome og panorere, slik at brukerne kan fokusere på spesifikke områder av interesse og analysere den termiske ytelsen i detalj.

Designutviklingssiden

Etterpå la vi til en funksjon for designutvikling som gjør det mulig for brukerne å spore og sammenligne utviklingen av designene sine over flere iterasjoner. Denne funksjonen er spesielt nyttig for dem som har behov for å evaluere effekten av designendringer på termisk ytelse. Brukerne kan lagre ulike iterasjoner av simuleringene sine, sammenligne dem side om side og velge den beste versjonen basert på resultatene. Siden for designutvikling inneholder en tidslinjevisning, som visuelt viser progresjonen i designendringene og de tilhørende simuleringsresultatene. Brukerne kan laste ned innstillingene for den beste iterasjonen, noe som gjør det enklere å dokumentere og implementere den optimale designen.

Strukturert datapresentasjon

Våre fagfolk har gjort dataene lettere å forstå ved å bruke tabeller og grafer. På denne måten får man tydelig informasjon om viktige ting som temperatur, trykk og strømningshastighet. Brukerne kan se resultatene uten å måtte sortere i rotete data. Tabellene har muligheter for sortering og filtrering, slik at brukerne kan fokusere på spesifikke detaljer. Grafer viser trender og mønstre som hjelper brukerne med å få øye på viktig innsikt raskt. Vi har også lagt til funksjoner som verktøytips og zooming for å gjøre grafene mer interaktive og brukervennlige.

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

Continuous deployment

GitLab CI

Containerisering og administrasjon av containere
Docker, Elastic Kubernetes Service, Elastic Container Service – AWS based

Prosess

Utviklingsprosessen vår ble delt inn i flere faser for å holde prosjektet organisert og opprettholde et tett samarbeid med kunden. Ved å bruke Agile- og Kanban-metodikk kunne vi raskt tilpasse oss endringer og prioritere oppgavene på en effektiv måte. Dette sørget for at prosjektet holdt seg på sporet og oppfylte kundens behov.

Oppdagelsesfasen

I oppdagelsesfasen foretok vi en innledende vurdering av kodebasen og samlet inn detaljerte kundekrav. Hovedleveransen var et visjons- og omfangsdokument som skisserte prosjektets mål og målsettinger.

Prosjekteringsfasen

I denne fasen laget ekspertteamet vårt detaljerte trådrammer og prototyper for de nye funksjonene og forbedringene. Blant de viktigste resultatene var et kundereisekart og en klikkbar prototype av de nye sidene.

Utviklingsfasen

Deretter implementerte utviklerne våre refaktorisering av koden, integrerte VTK.js for 3D-modeller og skapte nye funksjoner. Leveransen inkluderte en oppdatert kodebase, fullt funksjonelle nye funksjoner og forbedrede visualiseringer av 3D-modeller.

Testfasen

Den neste fasen innebar grundig testing, inkludert enhets-, integrasjons- og brukerakseptansetester, for å sikre funksjonalitet og pålitelighet.

Distribusjonsfasen

Til slutt distribuerte vi den oppdaterte applikasjonen til kundens miljø og ga støtte etter distribusjonen.

Møter og verktøy

Teamet vårt holdt daglige møter for å diskutere fremdrift og løse problemer raskt, noe som hjalp oss med å holde fremdriften oppe og forhindre forsinkelser. Vi brukte Jira til å administrere oppgaver og spore fremdriften på en oversiktlig måte, mens Slack la til rette for direkte og kontinuerlig kommunikasjon med kunden. På denne måten kunne vi raskt imøtekomme kundens behov og sørge for at prosjektet gikk effektivt fremover.

Team kreves

2

Front-end-ingeniører

2

Back-end-ingeniører

2

Teamledere

1

QA

1

AQA

1

UI/UX-designer

1

DevOps

Resultater

Utvidet funksjonalitet

Den nye siden med termiske nettverk gir brukerne en tydelig og interaktiv måte å forstå termiske sammenhenger på. Dessuten kunne de nå enkelt sammenligne ulike design-iterasjoner og velge den optimale, noe som forbedret den generelle designprosessen.

Forbedret kodekvalitet

Koden var renere, mer vedlikeholdbar og fri for de tidligere utbredte feilene, noe som førte til en mer stabil og påliteligprogramvare for termisk analyse.

Bedre kvalitet på 3D-modellene

Alle 3D-modeller ble nå vist korrekt, noe som forbedret brukeropplevelsen og påliteligheten til de termiske simuleringene.

Strukturert resultatpresentasjon

Resultatene ble nå presentert på en strukturert og forståelig måte. Dermed ble det lettere for brukerne å tolke og utnytte informasjonen på en effektiv måte.

    Kontakt oss

    Bestill en samtale eller fyll ut skjemaet nedenfor, så vil vi kontakte deg så snart vi har behandlet forespørselen din.

    Send oss en talemelding
    Legg ved dokumenter
    Last opp fil

    Du kan legge ved én fil opptil 2MB. Gyldige filformater: pdf, jpg, jpeg, png.

    Ved å klikke Send, samtykker du til at Innowise behandler dine personopplysninger i henhold til vår Personvernerklæring for å gi deg relevant informasjon. Ved å oppgi telefonnummeret ditt, godtar du at vi kan kontakte deg via talesamtaler, SMS og meldingsapper. Samtale-, meldings- og datakostnader kan påløpe.

    Du kan også sende oss forespørselen din
    til contact@innowise.com
    Hva skjer videre?
    1

    Når vi har mottatt og behandlet forespørselen din, vil vi kontakte deg for å diskutere prosjektbehovene dine og signere en NDA for å sikre konfidensialitet.

    2

    Etter å ha undersøkt dine ønsker, behov og forventninger, vil teamet vårt utarbeide et prosjektforslag med omfang av arbeid, teamstørrelse, tids- og kostnadsestimater.

    3

    Vi vil arrangere et møte med deg for å diskutere tilbudet og fastsette detaljene.

    4

    Til slutt vil vi signere en kontrakt og starte arbeidet med prosjektet ditt umiddelbart.

    arrow