Ohjelmistotekniikka vs tietojenkäsittelytiede
Nyky-yhteiskunnassa tietokoneista on tullut olennainen ja väistämätön osa. Keskitymme kuitenkin vähemmän näiden tuttujen asioiden sisäisiin toimiin. Tietojenkäsittelytiede on tietokonejärjestelmien teoreettinen perusta, kun taas ohjelmistosuunnittelu on näiden periaatteiden soveltamista ongelmiin ohjelmistoratkaisun kehittämiseksi.
Tietojenkäsittely
Tietokonetiede on tietojenkäsittelylaitteiston ja -ohjelmiston perustiede. Se tarjoaa käsityksen sekä ohjelmisto- että laitteistokomponenttien mekanismeista ja laskennan teoreettisista perusteista tietokonejärjestelmissä tapahtuvaa toteutusta ja sovellusta varten.
Tietokonetiede koostuu useista tärkeimmistä alatieteistä. Laskennallinen teoria, Tieto- ja koodausteoria, algoritmit ja tietorakenne sekä ohjelmointikielen teoria kuuluvat teoreettiseen tietojenkäsittelytieteeseen. Sovellettavia tietojenkäsittelytieteen alalajeja ovat tekoäly, tietokonearkkitehtuuri ja -tekniikka, tietokonegrafiikka ja visualisointi, salaus ja tietoturva, tietokoneverkot, rinnakkaiset ja hajautetut järjestelmät, tietokannat ja tiedonhaku sekä ohjelmistotekniikka.
Monet näistä osa-aineista perustuvat matemaattisiin teorioihin. Jotkut sovellusnäkökohdat liittyvät mekatroniikkaan ja muihin soveltaviin tieteisiin.
Nämä osa-aineet ulottuvat myös sivuainealueille. Esimerkiksi laskennallinen teoria sisältää opiskelualueita, kuten automaatioteoria, laskettavuusteoria, monimutkaisuusteoria, kryptografia ja kvanttilaskentateoria.
Ohjelmistotekniikka
Ohjelmistotekniikkaa voidaan pitää yhtenä soveltavan tietojenkäsittelytieteen tärkeimmistä alalajeista. Se keskittyy tehokkaiden ohjelmistojärjestelmien rakentamiseen käyttämällä tiukkaa suunnittelutapaa. Sitä voidaan kuvata systemaattiseksi, kurinalaiseksi, määrällisesti ilmaistavaksi lähestymistavaksi ohjelmistojen suunnitteluun, kehittämiseen, käyttöön ja ylläpitoon sekä näiden lähestymistapojen tutkimiseen. Ohjelmistotekniikalla ei ole yhtä hyväksyttyä määritelmää, vaan tulkinta sen tarkoituksesta.
Fritz Bauer määritteli ohjelmistosuunnittelun "hyvien suunnitteluperiaatteiden luomiseksi ja käyttämiseksi taloudellisesti kehitetyn ohjelmiston saamiseksi, joka on luotettava ja toimii tehokkaasti oikeilla koneilla".
Ohjelmisto ei ole fyysinen; se on tietokonejärjestelmässä toimivia loogisia kokonaisuuksia. Siksi se on suunniteltava optimaalista suorituskykyä varten sekä laitteiston että toiminnan kann alta. Näiden tavoitteiden saavuttamiseksi ohjelmistosuunnittelijat käyttävät kehitysmalleja. Nämä mallit sisältävät ohjelmistokehityksen päävaiheet, kuten suunnittelun, koodauksen, vianetsinnän ja ylläpidon, yhtenäiseksi kehykseksi, joka mahdollistaa ohjelmiston systemaattisen etenemisen sen elinkaaren ajan.
Mitä eroa on ohjelmistotuotannon ja tietojenkäsittelytieteen välillä?
• Tietojenkäsittelytiede keskittyy tietojenkäsittelyn teoreettisiin näkökohtiin sekä ohjelmistoissa että laitteistoissa.
• Ohjelmistosuunnittelu keskittyy ohjelmistojen systemaattiseen kehittämiseen. Koodaus tai ohjelmointi on keskeinen osa ohjelmistosuunnittelua.
• Ohjelmistotekniikka voidaan nähdä laskennallisen teorian sovelluksena (esim. algoritmin tehokkuutta voidaan mitata tietotekniikan teoriassa kuvatun monimutkaisuuden avulla, mutta sen sovellus kuuluu ohjelmistojen piiriin suunnittelu, jossa sopivin algoritmi valitaan monimutkaisuuden avulla).