- Kontseptuaalne eraldatus riistvara ja juhised võimaldasid tarkvara käsitleda iseseisva varana.
- 60ndate ja 70ndate vahel muutus see professionaalseks: tarkvarakriis, tarkvaratehnika ja eraldi arveldamine.
- Protsessid ja mudelid (juga, inkrementaalne, spiraalne) toetavad immateriaalse toote kvaliteeti.
Mõistmine, millal ja miks me hakkasime tarkvara tootena käsitlema See nõuab tee läbimist, mis algab mehaaniliste arvutustega ja kulmineerub pilveteenustega. Vaid mõne aastakümnega oleme liikunud füüsiliste juhistega hiiglaslikest masinatest immateriaalsete programmideni, mida litsentsitakse, uuendatakse ja isegi tarbitakse teenusena.
Sellel teekonnal näete näidete ja ajaloolise konteksti abil, kuidas riistvara ja juhiste mõisted eraldatiMis sütitas idee müüa tarkvara iseseisvalt, kuidas selle tootmine professionaalseks muutus ning millised äri- ja litsentsimismudelid on valdkonda kujundanud, alates patenteeritud tarkvarast kuni vabavara ja SaaS-ini.
Masinast programmini: füüsilisest maailmast juhisteni
Sajandeid automatiseeriti arvutusi füüsiliste seadmete abil: alates abakust ja analoogmehhanismidest kuni selliste masinateni nagu žakaarkangaskus perfokaardid defineerisid käitumist ilma struktuuri ja juhiseid täielikult eraldamata.
Kontseptuaalne eraldatus hakkas kuju võtma koos Charles Babbage ja Ada LovelaceBabbage kujutas analüütilist mootorit programmeeritava seadmena ja Lovelace kirjeldas, kuidas erinevad kaardid sisaldaksid erinevaid programme; idee algpõhjus, et mida teha, saab eristada sellest, millega seda teha.
Suur hüpe toimus 20. sajandil, kui Alan Turing ja von Neumanni arhitektuurTuring vormistas universaalse masina, mis on võimeline täitma mis tahes algoritmi; von Neumann tegi ettepaneku salvestada programme ja andmeid samasse mällu, võimaldades juhiseid muuta riistvara puudutamata.
Juba 40ndatel ja 50ndatel assemblerid ja kõrgetasemelised keeled nagu Fortran ja Cobol Nad kinnistasid idee: igaüks võiks kirjutada programmi, mis töötaks ühilduvate masinate perekondades ilma füüsilisi komponente ümber kujundamata.
Mis on tarkvara ja mida see tegelikult hõlmab?
Sõna "tarkvara" muutus populaarseks 50. aastate lõpus ja selle sildi alla koondati kõik immateriaalne, mida arvutisüsteem töötlebProgrammid, andmed ja nendega seotud dokumentatsioon. John W. Tukey kasutas seda terminit selles tähenduses juba 1957. aastal.
See mõiste ulatub käivitatavast failist kaugemale: Tarkvara hulka kuuluvad ka kasutusjuhendid, spetsifikatsioonid, töödeldavad andmed ja kasutajateave.Lõppkokkuvõttes on see mittefüüsiline aspekt, mis annab riistvarale tähenduse ja funktsionaalsuse.
Traditsiooniliselt liigitatakse see kolmeks peamiseks tüübiks: süsteemitarkvara (operatsioonisüsteemide(kontrollerid, utiliidid ja serverid), tarkvara programmeerimine (redaktorid, kompilaatorid, interpretaatorid, linkijad, silurid ja IDE-d) ja rakendustarkvara (äri, haridus, meditsiin, CAD, andmebaasid, mängtelekommunikatsioon jne).
Lisandmoodulist tooteks: tarkvara ajastud ja pöördepunkt
Aastal esimene ajastu, 1950–1965Tarkvara nähti lisandmoodulina. Programmeerimine toimus koodi-ja-parandus meetodil, kus vähe või üldse mitte dokumentatsiooni, piiratud meetodid ning katse-eksituse meetodArendus oli eritellimusel valmistatud ning autor ise kasutas ja hooldas oma programmi.
La teine ajastu, 1965–1972See tähistab otsustavat muutust: ilmuvad multiprogrammeerimise ja mitme kasutajaga keskkonnad ning see võtab hoo sisse. aeg tõeline ja populaarseks saamine esimesed andmebaaside haldussüsteemidEelkõige hakatakse tarkvara tajuma tootena, mida saab levitada sadadele või tuhandetele klientidele, ja Algab nn tarkvarakriis kuna keerukus ja hoolduskulud hüppeliselt kasvavad.
Selles kontekstis Tarkvaratehnika 1968. aastalInseneriteadus, distsipliin, mis rakendab inseneriprintsiipe programmide kavandamisel, ehitamisel, käitamisel ja hooldamisel. Samuti on esile kerkinud C-keel 1972. aastal üldotstarbeliste süsteemide jaoks, millel on madal efektiivsus ja võimsus.
La kolmas ajastu, 1972–80. aastate keskpaikSee toob kaasa hajutatud süsteemid, kohalikud ja globaalsed võrgud ning mikroprotsessorite kasutamise. Need annavad alust mikroarvutid ja personaalarvutidsamuti keeled nagu Basic, mis demokratiseerivad õppimist ja programmeerimist.
Aastal neljas ajastu, 1985–2000, domineerib kollektiivne mõju: globaalsed võrgud, klient-serveri arhitektuurid, objektorienteeritud tehnoloogiad, ekspertsüsteemid, närvivõrgud e IAIlmub Java 90ndate alguses objektorienteeritud disaini ja kaasaskantavuse ning selliste verstapostidega nagu Deep Blue Nad demonstreerivad arvutusvõimsuse ja tarkvara ning selliste toodete nagu hüpet Microsoft Encarta Need illustreerivad tarkvara turustamist.
La viies ajastu, 2000–tänapäevVeeb, mobiiltelefonid ja massilised andmed. Interneti ja nutitelefonide kõikjalolek kiirendab pidevat kohaletoimetamist, pilveteenuseid ja tehisintellekttarkvara muutmine digitaalmajanduse keskpunktiks.
Paralleelselt läksid tootjad, näiteks IBM, masinate ja tarkvara tervikuna müümiselt edasi riist- ja tarkvara eest eraldi tasuJa ettevõtted, mis olid pühendunud ainult tarkvaratoodete loomisele ja levitamisele, õitsesid. See samm kinnistas tarkvara turustatava kaubana, millel olid oma litsentsid, värskendused ja tugi.
Kuidas tarkvaratoodet toota: protsessid ja mudelid
Usaldusväärse toote loomine nõuab protsessi. Nõuete kindlaksmääramine ja spetsifikatsioon See tähistab algust: on vaja välja selgitada, kokku leppida ja dokumenteerida, mida süsteem peab tegema ja milliste piirangute all, koostades SRS-i ehk tarkvaranõuete spetsifikatsiooni.
Sellele järgnevad etapid disain, kodeerimine, testimine, paigaldamine ja hooldusKuigi nimed võivad erineda, eksisteerivad need etapid paindlikult, olenevalt kasutatavast metoodikast. Ja siin tulevadki mängu protsessimudelid.
Mudel kaskaadne Järjestikune lineaarne lähenemine hõlmab etappide kaupa liikumist, kus on vähe ruumi tagasiminekuks, mis on kasulik jäikade projektide puhul, millel on selged nõuded, kuigi seda rakendatakse puhtal kujul harva. Reaalses praktikas on kaasatud tagasiside etappide vahel kohandada disaini ja nõudeid ebaselguse või muudatuste ilmnemisel.
Tarkvara evolutsioonilise olemuse selgitamiseks tekkisid mudelid iteratiivne inkrementaalne ja spiraalneJärkjärguline lähenemine pakub välja osaliste, kuid toimivate versioonide tarnimise, millest igaüks põhineb eelmisel, nii et klient saab sellest varakult kasu ja väheneb suurte ümbertööde risk.
El Boehmi spiraalmudel See ühendab iteratsiooni selgesõnalise riskijuhtimisega. See määratleb ülesandevaldkonnad nagu suhtlemine, planeerimine, riskianalüüs, koostamine ja tagasiside kogumine ning on inspireerinud variante, näiteks Win-Win spiraal, mis tutvustab võidutingimuste üle läbirääkimised nii kliendi kui ka tarnija jaoks.
Sektori arvud toovad esile väljakutse: Märkimisväärne arv suuri projekte ebaõnnestub või kannatab tõsiste viivituste allTihti mitte tehniliste probleemide, vaid kehva metoodika või nõuete ja riskide kehva haldamise tõttu, mistõttu on distsiplinaarmenetlused olulised.
Koodist tarnimiseni: esemed, testimine ja paigaldamine
Programmeerimise ajal läbib toode erinevaid olekuid. lähtekood Selle kirjutab arendaja. Kompilaator saab selle teisendada järgmiselt: objektikood vaheühend, mis hiljem ühendub teekidega, et genereerida käivitatavKui keelt käivitatakse interpreteeritud viisil, ei pruugi eelnevalt olla objektikoodi ega käivitatavat faili.
La Silumine käib kaasas kodeerimisegaJa pärast seda tulevad formaalsed testid. Ühiktestid valideerivad väikeseid osi; integratsioonitestid kontrollivad, kas moodulid ja alamsüsteemid suhtlevad korrektselt. Hiljem järgneb periood, mil beetatest reaalsetes tingimustes, et tabada defekte, mis eelmistes etappides avastamata jäid.
Installi käigus tarkvara sihtkeskkonda üle kantakse: juurutamine, konfigureerimine ja toimimise kontrollimineKomplekssed tooted võivad vajada spetsialiste ja hajutatud topoloogiaid, samas kui tarbijatarkvaral on lõppkasutajale juhendatud paigaldajad.
Seejärel tuleb pikim etapp: hooldusSee hõlmab korrigeerivaid, täiustavaid, adaptiivseid ja evolutsioonilisi muudatusi. Projekteerimise ja dokumentatsiooni kvaliteet määrab selle maksumuse; kehva dokumentatsiooni korral võib hooldus olla sama kulukas kui nullist alustamine.
Pidev evolutsioon: Lehmani seadused
Kasutatav tarkvara muutub või halveneb. Lehmani evolutsiooniseadused Nad koondavad tähelepanekuid kasutusel olevate süsteemide kohta: muutused on pidevad, keerukus kipub kasvama, kui te ei investeeri selle kontrollimisse, ja funktsionaalsust tuleb kasutajate rahulolu säilitamiseks laiendada.
Muuhulgas väidavad nad, et Kvaliteet langeb, kui seda ei kohandataNeed eeldused on, et evolutsioonilised protsessid hõlmavad tagasisidet ja et organisatsioon saavutab suhteliselt püsiva arengutaseme. Need eeldused aitavad versioonide planeerimisel ja hooldustööde eelarvestamisel.
Nõuded: ehitatava tuum
Nõuete analüüs pakub meetodeid ja tööriistu Probleemi mõistmine, kliendiga valideerimine ja spetsifikatsioonide garanteerimineEristatakse kasutaja- ja süsteeminõudeid, samuti funktsionaalseid, mittefunktsionaalseid ja valdkonnanõudeid, millel on alatüübid nagu organisatsioonilised või välised juriidilised ja eetilised nõuded.
Heade tavade hulka kuuluvad defineeri diskursuse universumValmistage ette väljaselgitamise töötoad, seadke eesmärgid tähtsuse järjekorda ja tuvastage ebaselgusi. Lähenemisviise on mitu: alates laiendatud leksikonidest ja stsenaariumidest kuni standarditega hõlmatud ortodokssemate metoodikateni, näiteks IEEE 830-1998 või CMMI-tüüpi täiustusraamistikud.
Ärimudelid ja litsentsimine: omandiõigusega kaitstud tarkvarast avatud lähtekoodiga tarkvarani ja SaaS-ini
Kui tarkvara tootena kinnistus, tekkisid järgmised litsentsimismudelid Erinevad. Omandiõigusega litsentsimine määratleb kasutustingimused, õiguste loovutamise ja kehtivuse ulatuse. Seevastu avatud litsentsimine võimaldab kopeerimist, muutmist ja levitamist, luues avatud kogukondi ja ökosüsteeme.
80ndatest ja 90ndatest alates oli standardisõjad operatsioonisüsteemides ja platvormidel: Unix ja selle variandid, Windows, vaba tarkvara esiletõus GNU projektiga ja Linuxja kasutaja rolli tugevdamine mitte ainult riistvara, vaid ka süsteemi ja rakenduste valimisel.
Viimane hüpe tarnemudelis on Tarkvara teenusena ehk SaaSSelle juured ulatuvad 60. aastate ajajagamissüsteemidesse, kuid tänapäevane populaarsus saabus koos interneti ja pilvega. Varem, 80. aastatel, ilmusid esimesed klienditeabe jagamise kliendihaldussüsteemid (CRM) ja 90. aastatel edestas tarkvara areng mõnikord saadaoleva riistvara kasvu, liikudes tagasi tsentraliseeritud hostimise poole.
Uue aastatuhande saabudes on kombinatsioon kõikjalolev veeb ja pilveandmed See tegi SaaS-ist domineeriva valiku: tellimustasud, pidevad värskendused, elastne skaleerimine ja seadmest sõltumatu juurdepääs. Tänapäeval eksisteerib see kõrvuti traditsiooniliste litsentside, freemium-mudelite, mikrotehingute ja reklaamidega.
Majanduslik ja sotsiaalne mõju: miks oli oluline tooteks muuta
Tarkvara käsitlemine eraldiseisva tootena on lubatud spetsialiseerumine, mastaabisääst ja väärtusahelad Spetsiifiline. Puhttarkvaraettevõtted muutusid väärtuslikumaks kui paljud riistvaratootjad ning elutsüklid, API-d ja raamistikud hõlbustasid tervete kolmandate osapoolte ökosüsteemide teket.
Kuid ilmnesid ka riskid. Halb areng oleks võinud miljonites ulatuvad kulud või tõsised tagajärjedAlates broneerimissüsteemide vigadest, mis põhjustavad kahjusid, kuni kriitiliste keskkondade riketeni, mis põhjustavad valehäireid või valesid otsuseid, mis mõjutavad inimesi – protsessi professionaalseks muutmine ei ole kapriis, vaid vajadus.
Vastuseks on tööstusharu tugevnenud head tavad, range testimine ja riskijuhtimineKõrge riskiga või kõrge turvalisusega keskkondades sobivad eriti hästi sellised mudelid nagu spiraal, mis keskenduvad riskidele ja kvaliteedistandarditele; teistes keskkondades tasakaalustavad iteratiivsed ja inkrementaalsed lähenemisviisid kiirust ja kontrolli.
Selleks, et tarkvaratoode oleks kasulik, peab see olema arenevad koos oma keskkonnagaUute platvormidega kohanemine, jõudluse parandamine, uute funktsioonide lisamine ja regulatiivsetele muudatustele reageerimine. Ja muidugi täpse dokumentatsiooni haldamine, et hooldusest ei saaks labürinti.
See ajalooline, tehniline ja majanduslik teekond selgitab, miks tarkvara tänapäeval müüb. See on litsentseeritud või pakutakse teenusenakoos edu, toe, versioonide ja kavandatud pensionile jäämise mõõdikutega. Riist- ja tarkvara eristamine on aluseks sellele, kuidas me tänapäevast tehnoloogiat kujundame ja turustame.
Tagasi vaadates saab selgeks, et Üleminek tarkvarale kui tootele toimus 60. ja 70. aastate vahel.Kasvava keerukuse, metoodikate vajaduse, riistvarast eraldi hinnakujunduse ja spetsialiseerunud ettevõtete tekkimise ajendiks on tööstusharu sellest ajast alates kasvanud. Keeled nagu Fortran, Cobol, C, Basic ja Java, verstapostid nagu mikroprotsessorid, internet, personaalarvutid ja tehisintellekt ning protsessimudelid nagu juga, inkrementaalne ja spiraal on kindlustanud tööstusharu, mis nüüd õitseb ka pilves ja mobiilseadmetes.
Kirglik kirjanik baitide maailmast ja üldse tehnoloogiast. Mulle meeldib jagada oma teadmisi kirjutamise kaudu ja just seda ma selles ajaveebis teengi, näitan teile kõike kõige huvitavamat vidinate, tarkvara, riistvara, tehnoloogiliste suundumuste ja muu kohta. Minu eesmärk on aidata teil digimaailmas lihtsal ja meelelahutuslikul viisil navigeerida.

