Puitteet

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 20. helmikuuta 2022 tarkistetusta versiosta . tarkastukset vaativat 7 muokkausta .

Framework (joskus kehys ; anglismi , neologismi kehyksestä  - luuranko , kehys , kehys, rakenne) - ohjelmistoalusta, joka määrittää ohjelmistojärjestelmän rakenteen; ohjelmisto , joka mahdollistaa suuren ohjelmistoprojektin eri komponenttien kehittämisen ja integroinnin.

Myös sanaa "kehys" käytetään, ja jotkut kirjoittajat käyttävät sitä pääsanana, mukaan lukien se ei perustu lainkaan englanninkieliseen analogiin [1] [2] [3] . Voit myös puhua kehyslähestymistavasta [3] lähestymistapana ohjelmien rakentamiseen, jossa mikä tahansa ohjelmakokoonpano rakennetaan kahdesta osasta:

  1. Pysyvä osa on kehys, joka ei muutu kokoonpanosta toiseen ja sisältää pesiä, joihin toinen, muuttuva osa on sijoitettu;
  2. Kytkettävät moduulit (tai laajennuspisteet).

Erot kirjastosta

"Framework" eroaa kirjaston käsitteestä siinä, että kirjastoa voidaan käyttää ohjelmistotuotteessa yksinkertaisesti saman toiminnallisuuden aliohjelmien sarjana vaikuttamatta ohjelmistotuotteen arkkitehtuuriin ja asettamatta sille mitään rajoituksia. Vaikka "kehys" sanelee säännöt sovellusarkkitehtuurin rakentamiselle, asettaen oletuskäyttäytymisen kehityksen alkuvaiheessa - "kehys", jota on laajennettava ja muutettava määritettyjen vaatimusten mukaisesti. Esimerkki ohjelmistokehyksestä on CMF ( Content Management Framework ) ja esimerkkikirjasto on sähköpostimoduuli .

Lisäksi, toisin kuin kirjasto, joka yhdistää joukon samanlaisia ​​toimintoja, "kehys" voi sisältää suuren määrän eri aiheiden kirjastoja.

Keskeinen ero "kehyksen" ja kirjaston välillä on käänteinen ohjaus : käyttäjäkoodi kutsuu kirjaston toimintoja (tai luokkia) ja ottaa ohjauksen puhelun jälkeen. "Frameworkissa" käyttäjäkoodi voi toteuttaa tiettyä toimintaa, joka on upotettu yleisempään - "abstraktiin" kehyksen koodiin. Tässä tapauksessa "kehys" kutsuu käyttäjäkoodin [4] funktioita ( luokkia ) .

Ohjelmistojärjestelmäkehys

Tämä on ohjelmistojärjestelmän (tai alijärjestelmän) kehys . Voi sisältää: apuohjelmia, koodikirjastoja, komentosarjakieliä ja muita ohjelmistoja , jotka helpottavat suuren ohjelmistoprojektin eri komponenttien kehittämistä ja integrointia. Yleensä yhdistäminen tapahtuu yhden API :n käytön kautta .

Esimerkkejä: verkkokehykset, kuten Zend Framework, Laravel tai Symfony PHP -kehykset tai Pythonilla kirjoitettu Django .

Sovelluskehys

Yksi "wireframe" -sovellusten käytön tärkeimmistä eduista on sovelluksen "vakiorakenne". "Kehyksistä" tuli suosittuja graafisten käyttöliittymien myötä , jotka pyrkivät toteuttamaan sovellusten standardikehyksen. Niiden käytön myötä työkalujen luominen graafisten käyttöliittymien automaattiseen luomiseen tuli paljon helpompaa, koska sovelluskoodin sisäisen toteutuksen rakenne tuli tiedoksi etukäteen. Oliopohjaisia ​​ohjelmointitekniikoita käytetään tyypillisesti kehyksen tarjoamiseen (esimerkiksi sovelluksen osia voidaan periä kehyksen perusluokista).

Yksi ensimmäisistä kaupallisista sovelluskehyksistä oli MacApp , jonka Apple kirjoitti " Macintoshille ". Se luotiin alun perin " Object Pascal " -kielen laajennetulla (oliosuuntautuneella) versiolla , mutta se kirjoitettiin myöhemmin uudelleen " C++ " -kielellä. Muita suosittuja "Macintosh"-kehyksiä olivat:

Sovelluskehykset ovat vaihtelevissa määrin " Cocoa " Mac OS X :lle sekä ilmaisia ​​kehyksiä, jotka ovat osa Mozilla- , OpenOffice.org- , GNOME- ja KDE -projekteja .

Microsoft on luonut Windowsille samanlaisen tuotteen nimeltä Microsoft Foundation Classes (MFC). Tällä hetkellä Microsoftin ohjelmistokehityksen lippulaivatuote on " .NET ".

Monialustaiset sovelluskehykset ( Linux- , Macintosh- ja Windows-käyttöjärjestelmille) ovat esimerkiksi widget toolkit , wxWidgets , Qt , .NET , MyCoRe tai FOX toolkit .

Käsitteellinen mallikehys

Abstrakti rakenteen käsite, jota käytetään tutkimuksessa tunnistamaan mahdollisia tapoja ratkaista ongelma tai edustaa ideaa.

Kehyksen toteutus

"Framework" määritellään joukoksi konkreettisia ja abstrakteja luokkia ja määritelmiä niiden vuorovaikutuksesta. Konkreettiset luokat toteuttavat yleensä luokkien välisiä keskinäisiä suhteita. Abstraktit luokat ovat laajennuspisteitä , joissa kehyksiä voidaan käyttää tai mukauttaa.

Laajennuskohta  on se "osa" viitekehyksestä, jolle ei ole annettu toteutusta. Vastaavasti käsitteellisen mallin kehys koostuu käsitteellisistä luokista ja ohjelmistojärjestelmän kehys yleiskäyttöisen ohjelmointikielen luokista.

Kehyksen luomisprosessi on valita osajoukko ongelman tehtävistä ja niiden toteutuksista. Toteutusten aikana yleiset ongelmanratkaisutyökalut sisällytetään konkreettisiin luokkiin ja muuttuvat työkalut siirretään laajennuspisteisiin.

Katso myös

Muistiinpanot

  1. V. Faronov. Sovellusten luominen C#:lla, Moskova, EKSMO, 2008, s. 12
  2. IS-reengineeringin menetelmät ja tekniikat. K. V. Akhtyrchenko, T. P. Sorokvasha Arkistoitu 3. elokuuta 2009 Wayback Machinessa , Institute for System Programming RAS
  3. 1 2 Gorbunov-Posadov M. M. Laajennettavat ohjelmat . - M . : Polyptyykki, 1999. - 336 s. — ISBN 5-901-11801-4 . Arkistoitu 20. syyskuuta 2012 Wayback Machineen
  4. Martin Fowler. InversionOfControl  . _ Haettu 5. marraskuuta 2013. Arkistoitu alkuperäisestä 23. tammikuuta 2011.