Missioonikriitiline tarkvaraarendus

Laevad, lennukid, tankid... Kõik sõjatehnikast.
Kasutaja avatar
Kriku
Moderaator
Postitusi: 36342
Liitunud: 10 Aug, 2010 18:55
Asukoht: Viljandimaa
Kontakt:

Missioonikriitiline tarkvaraarendus

Postitus Postitas Kriku »

Hydrazine kirjutas:F-22 puhul ju vahetati mingiaeg kogu arvutiplatvorm välja ja lisaks kasutati seal sellist keerukat progemisekeelt nagu ADA. Nad tahtsid midagi väga vägevat, saan sellest aru aga päris 100% välja vist ikkagi ei tulnud.
ADA oli pikka aega standard militaarrakenduste jaoks. Mille poolest see niiväga keeruline on?
Kasutaja avatar
Hydrazine
Liige
Postitusi: 1182
Liitunud: 17 Mär, 2008 11:12
Asukoht: Tallinn
Kontakt:

Re: F-22

Postitus Postitas Hydrazine »

No aus vastus, ma ei oska väga ADA's midagi teha, vähe põhjuseid olnud.
Kasutaja avatar
Kriku
Moderaator
Postitusi: 36342
Liitunud: 10 Aug, 2010 18:55
Asukoht: Viljandimaa
Kontakt:

Re: F-22

Postitus Postitas Kriku »

Ma ka mitte, kunagi huvi pärast lugesin selle kohta, sest mu esimene keel oli Pascal. Eesmärk oli jäikuse abil vigu vältida (tüpiseerimisel näiteks), aga ma ausalt öelda ei tahaks uskuda, et see olemuslikult kuidagi keerulisem peaks olema kui teised samal tasemel keeled.

---

Pilt ka:
Pilt
https://www.newyorker.com/tech/annals-o ... -visionary
Kasutaja avatar
Hydrazine
Liige
Postitusi: 1182
Liitunud: 17 Mär, 2008 11:12
Asukoht: Tallinn
Kontakt:

Re: ADA programmeerimiskeel

Postitus Postitas Hydrazine »

Ma tean militaari jaoks natuke selliseid progemiskeeli ka, (ei ise ei valda), aga et põhimõtteliselt lähevad koodiread paralleelselt käima, et sa ei saa mõelda, et see on algus ja see on lõpp, aga noh, ma olen veidi vanem ka juba kui 20...
Kasutaja avatar
Kilo Tango
Liige
Postitusi: 9067
Liitunud: 14 Aug, 2008 15:40
Kontakt:

Re: ADA programmeerimiskeel

Postitus Postitas Kilo Tango »

Massohhistlike meeleolude korral soovitan Haskelli või Malbolge. ADA probleem tundub pigem olevat see, et tegemist on aegunud keelega, mida keegi eriti ei valda enam. Viimane muudatustepakk tuli vikipeedia järgi 2012. Ehk siis nagu ka muude ürgvanade asjade korral - koodibaas võib ju lihtne olla, aga kuna progejad peavad hakkama seda otsast õppima (või siis tuleb miskised pensionärid hirmsa raha eest kodunt välja kangutada), siis muudab see asja keeruliseks ja kalliks.
Kasutaja avatar
Gideonic
Liige
Postitusi: 4854
Liitunud: 14 Aug, 2008 14:19
Kontakt:

Re: F-22

Postitus Postitas Gideonic »

Kriku kirjutas:ADA oli pikka aega standard militaarrakenduste jaoks. Mille poolest see niiväga keeruline on?

ADA võib kohati mõnevõrra keerukas olla, kuna seal on teatavad turva ja korrektsusenõuded kompilaatori tasemel sisse ehitatud. Üldises plaanis aga tuleb sama korrektsus tagada ka teistes keeltes, mis ei tule kindlasti lihtsam ja kohati saab kergemini jalga tulistada. Ilmselt siin põhimõttelist vahet ei ole.

Peamine põhjus on ikkagi see, et pagana raske on leida häid ADA progejaid, kuna see on siiski üsna nišši keel ning pealekasvu vähevõitu. Olemasolevate arendajate peale on konkurents aga jube tihe ka Boeing ja Airbus tsiviillennunuduse projektidega (mis ka enamasti ADAs).

Siin nati lugemist selle kohta:

F-35 puhul on keeleks üsna põhjalike arendusreeglitega C++ (mahukas PDF!) kuhu arendajaid leida märgatavalt lihtsam aga uute projektide jaoks on ka see selgelt rudiment.

Üldiselt, kuigi ADAl on C ees ka palju eeliseid on ta ikkagi oma ajastu laps koos sarnaste probleemidega (siin lühike ülevaade).

Kui nii 10 a. tagasi tundus lootustandev Real Time Java. Mitte et see tegelikult embedded süsteemide jaoks üldse hea keel oleks, aga on kerge kasutada ja progejaid on palju. Prototüüpidest olid kunagised edulood brittide Taranis ja Boeing X-45C
Each avionics software module has different criticality levels. Unmanned aircraft for military applications generally have less stringent safety requirements than commercial aircraft, and several unmanned aircraft have already been programmed with the Java language. Representative applications include ScanEagle by Boeing, Barracuda by EADS, J-UCAS X-45c by Boeing, and Taranis by BAE. The X-45c and Taranis projects are both autonomous aircraft, and the onboard mission planning software for both of these applications is written in Java.

Nüüd viimastel aastatel on C++ asemikuna väga kiiresti pead tõstev keel Rust.

Rust on üle tüki aja üks masinkeeleks kompileeritav (garbage collectioni ja virtuaalmasinata) keel mis ka võistleb kiiruses Cga isegi väga piiratud embedded süsteemides kuid on olemuselt siiski moderne keel. Teatavaid sarnasusi on ka ADAle. Esmasel kohal on memory-safety mis teeb progemise kohati üllatavalt tülikaks. Seeest hoolistseb ta ise mäluvabastuse eest ise (mis on üsna unikaalnse saavutus ilma garbage collectionita) ja kui asi juba kompileerub siis garanteerib et enamik klassikalisi mälulekkeid on põhimõtteliselt välistatud. Miinusena ei ole mitmed enamikes teistes keeltes levinud progemismustrid lihtsalt võimalikud (siin blogipostituses üsna hästi kajastatud mis tüütu on).

Esialgu on tema edulood olnud suured C ja C++ projektid ja veebisüsteemid. Tasapisi aga hiilib juba ka Linuxi kernelisse (asi millega ükski keel peale C pole hakkama saanud), ja ka avioonikasse, näiteks Space-X plaanib kasutuselvõttu.

Memory-safety Tema ökosüsteem ei ole veel kaugeltki küps, aga initsatiivid nagu embedded-rust ja Ferrocene (eelnevalt Sealed Rust) aga näitavad et ta liigub sinna suunda päris kiiresti.

* Ääremärkusena endal ADA kogemus puudub, C'd olen kirjutanud ka ainult kooli ja hobiprojektides, Rusti kõvasti uurinud aga praktiliselt pole olnud kohta kus seda ilmtingimata vaja läheks (lõppkokkuvõttes on progemiskeel ikka üsna harva see ületamatu takistus ja sellega vastuvoolu ujuda ei tasu). Kõige madaltasemilisem keel mida olen pidanud pikemalt klientidele kirjutama on golang, muidu ikkagi enamik tööd teinud virtuaalmasinaga keeltes (JVM baasil Java ja Kotlin aga järjest enam Javascripti/Typescripti nii node.js'is kui ka brauseris), paar aastat vahele ka skriptikeelt Ruby't. Päris algusaastatel sai progetud ka pikemalt PL/SQL'i .
Kasutaja avatar
dorpat
Liige
Postitusi: 158
Liitunud: 26 Aug, 2020 22:43
Asukoht: Tartu
Kontakt:

Re: ADA programmeerimiskeel

Postitus Postitas dorpat »

Madis Reivik kirjutas:võrreldes nt sellega

int main(int b,char**i){long long n=B,a=I^n,r=(a/b&a)>>4,y=atoi(*++i),_=(((a^n/b)*(y>>T)|y>>S)&r)|(a^r);printf("%.8s\n",(char*)&_);}


jah, kirjutame kõik ühele reale ning toome võimalikult keerulise näite 8) hea töö, istu, viis. süntaksit võrdlevad algajad :write:

viimati marsil lennanud kopteri kõhus on väga kaasaegne stack ja üks sealne kiht suisa ADAst inspiratsiooni saanud. sobib teisele planeedile, sobib ka hävitajasse.

aga teema võiks ümber nimetada "missioonikriitiline tarkvaraaraendus" vmt, sest see valdkond on üpris põnev ning see ei koosne ainuüksi ADAst.

et kui tegemist pole just rauatükiga, millel on töökindel analoogarvuti hammasrataste ja väntadega, siis igas kaasaegses jupstükis on veidi koodi sees.


Tehtud!

Kriku
blueant
Liige
Postitusi: 347
Liitunud: 02 Veebr, 2015 23:40
Kontakt:

Re: Missioonikriitiline tarkvaraaraendus

Postitus Postitas blueant »

SpaceX kasutab missioonikriitilises osas C++'i ja kohandatud Linuxit. Kood jookseb ühes thread-is ja kasutatakse üksikuid kõrge kvaliteediga teeke.

Kõigile tuttavad keskkonnad kaaluvad puudused üles. Riistvaraga on lihtsam ja arendajaid lõputult saada. Ilmselt nad tegid targa kompromissi. Range keele puudumist kompenseerib neil põhjalik testimine, ka varakult hardware-in-the-loop. Kiiresti liikudes saab lõpuks funktsionaalsema tarkvara, mis teeb ka päris elus õiged asju. Iga startiva Falconi peal jooksvat uut koodi ja näe, ei kuku alla.

Kosmoses on veel selline nüanss, et isegi kui su tarkvara on formaalloogiline lumehelbeke, võib kosmiline kiirgus bitid sassi lüüa ja nagunii on robutset tervikut vaja, mis peab vastu ka siis, kui mõnda arvutit restarditakse.
Kasutaja avatar
dorpat
Liige
Postitusi: 158
Liitunud: 26 Aug, 2020 22:43
Asukoht: Tartu
Kontakt:

Re: Missioonikriitiline tarkvaraaraendus

Postitus Postitas dorpat »

Kriku kirjutas:Pean silmas levinud praktikat, et tarkvara kirjutatakse koos automaattestidega.

probleemid tekivad täna enamasti integratsioonis teiste tükkidega, mitte üksiku tükiga. sõltumata sellest kas tükkidel on automaattestid või mitte.

siin tulevad appi integratsioonitestid, aga päris maailma sa ikkagi laboritingimustes ei taastooda. niiet integratsioonitestidega saad sa pigem mingisuguse kindluse, et vajalik funktsionaalsus toimib hea ilma korral ja kui tuul on õigest suunast.

veidi lihtsam on, kui kõik liikuvad osad on sinu kontrolli all, aga tänasel pilvede ja kolmandate osapoolte kaasamise ajastul ei pruugi see alati nii olla ning pauk võib tulla luuavarrest kohas, kus ei oska arvatagi.

ehk et teoorias on kõik ilus, praktikas aga maadeldakse enamasti tööjõu ja ajaga ning backlog tehnilise taagaga pigem kasvab ning nõnda tekibki hunnik ifelsesid äärejuhtumite katmiseks.

natuke lektüüri ka:


ja siis on veel mõned European Organisation for Civil Aviation Equipment poolt defineeritud või viidatud teemad:

    Aircraft & Systems Development (ARP-4754A/ED-79A)
    Safety Assessment (ARP-4761/ED-135)
    Environmental Testing (DO-160G/ED-14G)
    Integrated Modular Avionics (DO-297/ED-124)
    Flight Electronic Hardware (DO-254/ED-80)
    Flight Software (DO-178C/ED-12C)
    Ground Systems (DO-278A/ED-109A)
    AQAP 2110 NATO Quality Assurance Requirements for Design, Development and Production
    AQAP 2120 NATO Quality Assurance Requirements for Production
    AQAP 2210 NATO Supplementary Software Quality Assurance Requirements to AQAP 2110

nende linke ei viitsinud otsida, aga google abiga leiab 8)
Kasutaja avatar
Kriku
Moderaator
Postitusi: 36342
Liitunud: 10 Aug, 2010 18:55
Asukoht: Viljandimaa
Kontakt:

Re: Missioonikriitiline tarkvaraaraendus

Postitus Postitas Kriku »

dorpat kirjutas:probleemid tekivad täna enamasti integratsioonis teiste tükkidega, mitte üksiku tükiga. sõltumata sellest kas tükkidel on automaattestid või mitte.
Jah, mainisin neid vastates konkreetsele Madise ütlusele, mitte kui imettegevat eliksiiri või hõbekuuli.

Et siis, kui peab unit testi kirjutama, siis see paneb IMHO mõtlema natuke sarnaselt sellele, kui peaks muutujaid defineerima koos lubatud väärtusvahemikega... Kuigi hiljem.
Kasutaja avatar
Hydrazine
Liige
Postitusi: 1182
Liitunud: 17 Mär, 2008 11:12
Asukoht: Tallinn
Kontakt:

Re: Missioonikriitiline tarkvaraarendus

Postitus Postitas Hydrazine »

Aga rääkides progemiskeeltest, siis üks kõige loogilisemaid kontseptsioonilt on siiski puhas C, jah peab rohkem ridasid kirja panema, tõsi aga mingi OOP Garbage Collector'i mõttemall, et keegi koristab sinu sita koodi pasa ära, see just väga ei soosi mõtlemist, et kuidas loogiliselt progeda. Ja kui Garbage Collector feilib, no siis on crash... kas neid vähe näha on olnud, poetabloodel, ühistranspordis ja ka lennunduses... tuletan seda International Date Line intsidenti meelde F-22'ega.

esimene link mis pihku jäi: https://www.defenseindustrydaily.com/f2 ... ine-03087/

veel: https://www.engadget.com/2007-02-27-f-2 ... Gdh3-2At1o
Viimati muutis Hydrazine, 25 Mai, 2021 13:11, muudetud 1 kord kokku.
Kasutaja avatar
Kriku
Moderaator
Postitusi: 36342
Liitunud: 10 Aug, 2010 18:55
Asukoht: Viljandimaa
Kontakt:

Re: Missioonikriitiline tarkvaraarendus

Postitus Postitas Kriku »

GC ja OOP pole omavahel seotud kontseptsioonid.

---

Suurem osa postitusi läksid teemaväliste muljetustena prügikasti.

Kui teema on "Missioonikriitiline tarkvaraarendus", siis ei ole vaja hakata siin aluskontseptsioone nagu OOP lahti seletama.
olavsu1
Liige
Postitusi: 882
Liitunud: 26 Veebr, 2022 9:25
Kontakt:

Mida Ukrainast õppida?

Postitus Postitas olavsu1 »

Seto haidamakk kirjutas: 21 Nov, 2023 17:16 Infotehnoloogia teeb imet-ukrainlaste luure informatsiooni haldamise IT-süsteem. Meie Kaitsevägi vist vajaks ka sellist.
https://www.youtube.com/watch?v=MFnf2EmzgsU
kaheldav, kas siin leiduks selle järgitegiaid ja kasutajaidki, arvestades mida meil videos vilksatanud op-süsteemidest arvatakse.
slider
Liige
Postitusi: 467
Liitunud: 02 Jaan, 2016 22:51
Kontakt:

Re: Mida Ukrainast õppida?

Postitus Postitas slider »

KOLT peaks vist midagi sarnast olema mida meil arendatakse.
Mis op süsteemi probleemi silmas pead? Androidi põhiseid tahvleid?
Vasta

Kes on foorumil

Kasutajad foorumit lugemas: Registreeritud kasutajaid pole ja 3 külalist