1. leht 3-st

Missioonikriitiline tarkvaraarendus

Postitatud: 19 Mai, 2021 12:26
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?

Re: F-22

Postitatud: 19 Mai, 2021 12:36
Postitas Hydrazine
No aus vastus, ma ei oska väga ADA's midagi teha, vähe põhjuseid olnud.

Re: F-22

Postitatud: 19 Mai, 2021 12:41
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

Re: ADA programmeerimiskeel

Postitatud: 19 Mai, 2021 12:45
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...

Re: ADA programmeerimiskeel

Postitatud: 19 Mai, 2021 12:56
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.

Re: F-22

Postitatud: 19 Mai, 2021 13:23
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 .

Re: ADA programmeerimiskeel

Postitatud: 22 Mai, 2021 10:26
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

Re: Missioonikriitiline tarkvaraaraendus

Postitatud: 22 Mai, 2021 20:21
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.

Re: Missioonikriitiline tarkvaraaraendus

Postitatud: 23 Mai, 2021 11:03
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)

Re: Missioonikriitiline tarkvaraaraendus

Postitatud: 23 Mai, 2021 12:28
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.

Re: Missioonikriitiline tarkvaraarendus

Postitatud: 23 Mai, 2021 20:56
Postitas Madis Reivik

Re: Missioonikriitiline tarkvaraarendus

Postitatud: 25 Mai, 2021 13:03
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

Re: Missioonikriitiline tarkvaraarendus

Postitatud: 25 Mai, 2021 13:10
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.

Mida Ukrainast õppida?

Postitatud: 22 Nov, 2023 8:02
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.

Re: Mida Ukrainast õppida?

Postitatud: 22 Nov, 2023 13:54
Postitas slider
KOLT peaks vist midagi sarnast olema mida meil arendatakse.
Mis op süsteemi probleemi silmas pead? Androidi põhiseid tahvleid?