Ohjelmistotekniikka vs. tietojenkäsittelytiede
Nykyaikaisessa yhteiskunnassa tietokoneista on tullut kiinteä ja väistämätön osa. Keskitymme kuitenkin vähemmän näiden tuttujen asioiden sisäiseen toimintaan. Tietojenkäsittelytiede on tietojärjestelmien teoreettinen perusta, kun taas ohjelmistotuotanto on näiden periaatteiden soveltaminen ongelmiin ohjelmistoratkaisun kehittämiseksi.
Tietokone Tiede
Tietojenkäsittelytiede on perustietoa laitteistojen ja ohjelmistojen laskemisesta. Se tarjoaa käsityksen sekä ohjelmisto- että laitteistokomponenttien mekanismista ja laskennan teoreettisista perusteista toteutusta ja soveltamista varten tietokonejärjestelmissä.
Tietojenkäsittelytiede koostuu monista tärkeimmistä osa-alueista. Laskennateoria, Tieto- ja koodausteoria, algoritmit ja tietorakenne sekä ohjelmointikieliteoria kuuluvat teoreettiseen tietojenkäsittelytieteeseen. Sovellettuja tietojenkäsittelytieteen aloja ovat tekoäly, tietokonearkkitehtuuri ja -tekniikka, tietokonegrafiikka ja visualisointi, salaus ja tietoturva, tietokoneverkot, Rinnakkais-, rinnakkais- ja hajautetut järjestelmät, Tietokannat ja tiedonhaku sekä ohjelmistotuotanto.
Monet näistä osa-alueista perustuvat matemaattisiin teorioihin. Jotkut sovelluskohteet liittyvät mekatroniikkaan ja muihin soveltaviin tieteisiin.
Nämä osa-alueet ulottuvat myös sivututkimusalueille. Esimerkiksi laskennallinen teoria sisältää tutkimusalueita, kuten automaatiteoria, laskentateoria, monimutkaisuusteoria, kryptografia ja kvanttilaskentateoria.
Ohjelmistotuotanto
Ohjelmistosuunnittelua voidaan pitää yhtenä sovelletun tietojenkäsittelytieteen tärkeimmistä osa-alueista. Se keskittyy tehokkaiden ohjelmistojärjestelmien rakentamiseen käyttäen tiukkaa suunnittelutapaa. Sitä voidaan kuvata systemaattisena, kurinalaisena, määrällisesti ilmaistavana lähestymistapana ohjelmistojen suunnitteluun, kehittämiseen, käyttöön ja ylläpitoon sekä näiden lähestymistapojen tutkimiseen. Ohjelmistotuotannolle ei ole olemassa yhtä hyväksyttyä määritelmää, vaan tulkinta sen tarkoituksesta.
Fritz Bauer määritteli ohjelmistotekniikan "vakaan suunnitteluperiaatteen luomiseksi ja käyttämiseksi taloudellisesti kehitettyjen, luotettavien ja todellisissa koneissa tehokkaasti toimivien ohjelmistojen saamiseksi".
Ohjelmisto ei ole fyysinen; se on looginen kokonaisuus, joka toimii tietokonejärjestelmässä. Siksi se on suunniteltava optimaalisen suorituskyvyn saavuttamiseksi sekä laitteisto- että toimintakysymyksissä. 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 järjestelmällisen etenemisen sen elinkaaren ajan.
Mitä eroa on ohjelmistotekniikalla ja tietojenkäsittelytieteellä?
• Tietojenkäsittelytiede keskittyy laskennan teoreettisiin näkökohtiin sekä ohjelmistoissa että laitteistoissa.
• Ohjelmistotuotanto keskittyy järjestelmällisesti ohjelmistojen kehittämiseen. Koodaus tai ohjelmointi on keskeinen osa ohjelmistosuunnittelua.
• Ohjelmistosuunnittelua voidaan pitää laskennallisen teorian sovelluksena (esimerkiksi algoritmin tehokkuus voidaan mitata monimutkaisuudella, joka on kuvattu tietojenkäsittelytieteteoriassa, mutta sen sovellus kuuluu ohjelmistotekniikan alueelle, missä sopivin algoritmi valitaan monimutkaisuuden avulla).