Avoimen lähdekoodin ohjelmistokehitystä

Avoimen lähdekoodin ohjelmistojen kehittäminen on prosessi, jossa avoimen lähdekoodin ohjelmistoja, tai vastaavia ohjelmia, joiden lähdekoodi on julkisesti saatavilla, on kehitetty. Nämä ovat ohjelmistotuotteita saatavilla sen lähdekoodi alla avoimen lähdekoodin lisenssillä opiskella, muuttaa ja parantaa sen suunnitteluun. Esimerkkejä joistakin suosittu avoimen lähdekoodin tuotteet ovat Mozilla Firefox, Google Kromi, Android, LibreOffice ja Apache OpenOffice Suite. Avoimen lähdekoodin ohjelmistojen kehittäminen on ollut suuri osa luomista World Wide Web kuin me sen tunnemme, Tim Berners-Lee edistää hänen HTML kehityksen alkuperäinen alusta, jolle internet on nyt rakennettu.

Historia

Vuonna 1997 Eric S. Raymond kirjoitti Tuomiokirkko ja Bazaar. Tässä kirjassa, Raymond tekee eron kahdenlaisia ​​ohjelmistokehityksen. Ensimmäinen on tavanomainen suljetun lähdekoodin kehitystä. Tällainen kehitys menetelmä on, mukaan Raymond, kuten rakentaminen katedraali; Keski suunnittelu, tiukka organisaatio ja yksi prosessi alusta loppuun. Toinen on progressiivinen avoimen lähdekoodin kehitys, joka on enemmän kuin "suuri babbling basaarin eri esityslistat ja lähestymistapoja, joista johdonmukainen ja vakaa järjestelmä voisi näennäisesti syntyä vain peräkkäin ihmeitä." Jälkimmäinen vastaavasti viittaa keskusteluun osallistuvat avoimen lähdekoodin kehitystyö.

Erot kaksi tyylisuunnat kehitys, mukaan Bar & amp; Fogel, ovat yleensä käsittelyyn vikailmoituksia ja pyyntöjä, ja rajoitukset, joiden mukaisesti ohjelmoijat työskentelevät. Suljetuissa lähdekoodin ohjelmistojen kehittäminen, ohjelmoijat usein viettää paljon aikaa käsitellä ja luoda vikailmoituksia, sekä käsittelyyn pyyntöjä. Tämä aikaa kuluu luoda ja priorisoida edelleen kehittämissuunnitelmat. Tämä johtaa osa kehitystiimi viettää paljon aikaa näistä asioista, eikä todellista kehitystä. Myös suljetun lähdekoodin projekteihin, kehitys joukkueet on usein työskentelemään hallintaan liittyviä rajoitteita, jotka häiritsevät teknisiä seikkoja ohjelmiston. Avoimen lähdekoodin ohjelmistojen kehittäminen, näitä asioita ratkaistaan ​​integroimalla ohjelmiston käyttäjät kehitysprosessissa, tai jopa kerroit nämä käyttäjät rakentaa järjestelmä itse.

Avoimen lähdekoodin ohjelmistojen kehittämismalli

Avoimen lähdekoodin ohjelmistojen kehitys voidaan jakaa useisiin vaiheisiin. Vaiheet tässä määritetty johdetaan Sharma et al. Kaavio näyttää prosessi-tietorakenne avoimen lähdekoodin ohjelmistokehitystä näkyy oikealla. Tässä kuvassa vaiheet avoimen lähdekoodin ohjelmistojen kehittäminen näkyvät yhdessä vastaavat dataelementit. Tämä kaavio on tehty käyttämällä meta-mallinnus ja meta-prosessi mallintamista.

Alkaen avoimen lähdekoodin projekti

On olemassa useita tapoja, joilla työtä avoimen lähdekoodin projekti voi alkaa:

  • Henkilö, joka tuntee tarvetta hankkeen ilmoittaa tarkoitus kehittää hankkeen julkisesti.
  • Kehittäjä työskentelee rajoitetulla mutta työskentelee ao, vapauttaa se yleisölle ensimmäisen version avoimen lähdekoodin ohjelma.
  • Lähdekoodi kypsä hankkeen julkistettu.
  • Vakiintunut avoimen lähdekoodin projekti voidaan haarainen asianosaisen ulkopuolinen osapuoli.

Eric Raymond havaittu esseessään Tuomiokirkko ja Bazaar että ilmoittaa tahtosi hanke on yleensä huonompi vapauttaa toimiva projekti yleisölle.

Se on yleinen virhe aloittaa projektin kun edistetään olemassa olevan samanlainen hanke olisi tehokkaampaa. Aloittaa onnistunut projekti on erittäin tärkeää tutkia, mitä on jo olemassa. Prosessi alkaa valita käyttöön olemassa olevan hankkeen, tai alkaa uuden projektin. Jos uusi projekti aloitetaan, prosessi siirtyy alkuvaihe. Jos olemassa oleva hanke hyväksytään, prosessi menee suoraan toteutusvaiheeseen.

Tyypit avoimen lähdekoodin hankkeiden

Useita avoimen lähdekoodin hankkeita on. Ensinnäkin on puutarha erilaisia ​​ohjelmistoja ja kirjastoja, jotka koostuvat itsenäisiä koodiksi. Jotkut saattavat jopa olla riippuvainen muista avoimen lähdekoodin projekteja. Nämä hankkeet palvelevat tietyn tarkoitusta ja täyttää selvä tarve. Esimerkkejä tämäntyyppisestä hankkeesta ovat Linux-ytimen, Firefox-selainta ja Apache OpenOffice toimisto-ohjelmisto työkaluja.

Jakaumat ovat toinen tyyppi avoimen lähdekoodin projekti. Jakaumat ovat kokoelmia ohjelmisto, joka julkaistaan ​​samasta lähteestä jolla on yhteinen tarkoitus. Näkyvin esimerkki "jakelu" on käyttöjärjestelmä. On monia GNU / Linux-jakeluiden joka lähettää Linux ydin sekä monia käyttäjän maa komponentteja. On muitakin jakaumat, kuten ActivePerl, Perl ohjelmointikieli eri käyttöjärjestelmien ja Cygwin jakaumat avoimen lähdekoodin ohjelmat Microsoft Windows.

Muut avoimen lähdekoodin projekteihin, kuten BSD johdannaiset, ylläpitää lähdekoodi koko käyttöjärjestelmä, ydin ja kaikki sen avainkomponenttien, yhdessä tarkistuksen valvontajärjestelmässä; kehittää koko järjestelmän yhdessä yhtenä joukkue. Nämä käyttöjärjestelmän kehittämishankkeet tiiviisti integroida työkaluja, enemmän kuin muissa jakelu-pohjaisissa järjestelmissä.

Lopuksi on kirja tai erillisenä asiakirjana hanke. Nämä erät eivät yleensä toimiteta osana avoimen lähdekoodin ohjelmistopaketti. Linux Documentation Project isännöi monia sellaisia ​​hankkeita, jotka dokumentoivat eri näkökohtia GNU / Linux-käyttöjärjestelmä. On olemassa monia muita esimerkkejä tällaisesta avoimen lähdekoodin projekti.

Avoimen lähdekoodin ohjelmistojen kehittäminen menetelmien

On vaikea ajaa avoimen lähdekoodin projekti seuraavat perinteisemmän ohjelmistokehityksen menetelmä kuten vesiputousmalli, koska näissä perinteisissä menetelmissä se ei saa palata edelliseen vaiheeseen. Avoimen lähdekoodin ohjelmistojen kehityksen vaatimukset ovat harvoin kerätty ennen hankkeen aloittamista; vaan ne perustuvat varhain levittämisen ohjelmistotuote, kuten Robbins kuvailee. Lisäksi vaatimuksia, usein vapaaehtoistyötä henkilökunta on houkutellut auttaa kehittämään perustuva ohjelmisto ennenaikaiseen vapauttamiseen ohjelmiston. Tämä verkostoituminen vaikutus on olennainen mukaan Abrahamsson et al .: "jos käyttöön prototyyppi kerää tarpeeksi huomiota, se alkaa asteittain houkutella enemmän ja enemmän kehittäjiä". Kuitenkin, Abrahamsson et ai. huomauttavat myös, että yhteisö on hyvin ankara, aivan kuten yritysmaailman suljetun lähdekoodin ohjelmistoja: "jos löydät asiakkaita olet hengissä, mutta ilman asiakkaita kuolet".

Alfonso Fuggetta mainitsee, että "nopea prototyyppien, vähitellen ja evolutiivinen kehitys, kierre elinkaaren, nopea sovelluskehitys, ja äskettäin, äärimmäinen ohjelmointi ja ketterän ohjelmistokehityksen prosessi voidaan soveltaa yhtä hyvin omaa ja avoimen lähdekoodin ohjelmistot". Yksi avoimen lähdekoodin kehitystä menetelmä mainitsema Fuggetta on ketterä menetelmä Extreme Programming. Kaikki Ketterät menetelmät ovat pohjimmiltaan sovelletaan avoimen lähdekoodin ohjelmistojen kehittäminen, koska niiden iteratiivinen ja vähitellen luonnetta. Toinen Agile menetelmä, Internet-nopeuden kehittämiseen, sopii myös avoimen lähdekoodin ohjelmistojen kehittämistä erityisesti, koska hajautetun kehityksen periaatetta se hyväksyy. Internet-nopeuden kehittämiseen käytetyt maantieteellisesti hajautettujen tiimien työn ympäri vuorokauden ". Tämä menetelmä on enimmäkseen hyväksynyt suurten suljetun lähdekoodin yritykset, kuten Microsoft, koska vain suuret ohjelmisto yritykset pystyvät luomaan hajautetun kehityksen keskuksia eri aikavyöhykkeillä. Tietenkin jos ohjelmisto on kehitetty suuri joukko vapaaehtoisia eri maissa, tämä on saavutettu luonnollisesti ja ilman investointeja tarvitaan kuin suljetun lähdekoodin ohjelmistokehitystä.

Käytetyt työkalut avoimen lähdekoodin kehitystä

Viestintäkanavia

Kehittäjät ja käyttäjät avoimen lähdekoodin projekti kaikki eivät välttämättä toimi hankkeen läheisyydessä. Ne vaativat joitakin sähköisen viestinnän keinoin. Sähköposti on yksi yleisimpiä muotoja viestinnän keskuudessa avoimen lähdekoodin kehittäjille ja käyttäjille. Usein sähköpostilistat käytetään varmistamaan, sähköpostiviestit toimitetaan kaikille asiasta kiinnostuneille kerralla. Tällä varmistetaan, että ainakin yksi sen jäsenistä voi vastata sitä. Jotta kommunikoida reaaliajassa, monet projektit käyttävät pikaviestintä menetelmällä, kuten IRC. Web foorumeilla on viime aikoina tullut yleinen tapa käyttäjät voivat saada apua kohtaamistaan ​​ongelmista käytettäessä avoimen lähdekoodin tuote. Wikit ovat yleistyneet kuin viestintävälineen kehittäjille ja käyttäjille.

Versionhallintajärjestelmät

Oss kehitys osallistujat, jotka ovat enimmäkseen vapaaehtoisia, jaetaan kesken eri maantieteellisille alueille joten on tarvetta työkaluja tukea osallistujia yhteistyötä kehittämisessä lähdekoodia.

Aikana 2000-luvun alussa ", Concurrent Versions System oli näkyvä esimerkki lähdekoodia yhteistyötyökalun käytetään OSS hankkeisiin. CVS auttaa hallitsemaan tiedostoja ja koodit hankkeen, kun useat ihmiset työskentelevät hankkeessa samanaikaisesti. CVS mahdollistaa useita ihmisiä toimimaan saman tiedoston samanaikaisesti. Tämä tapahtuu siirtämällä tiedoston käyttäjien hakemistoja ja sitten yhdistämällä tiedostoja, kun käyttäjät ovat tehneet. CVS mahdollistaa myös yksi helposti hakea edellisen version tiedoston. Aikana 2000-luvun puolivälissä ", Subversion tarkistus valvontajärjestelmä luotiin tilalle CVS. Se on nopeasti nousemassa OSS hanke versio valvontajärjestelmä.

Monet avoimen lähdekoodin projektit käyttävät nyt jaettu tarkistus valvontajärjestelmät, jotka skaalautuvat paremmin kuin keskitetty arkistot kuten SVN ja CVS. Suosittuja esimerkkejä ovat git, käytetty Linux-ytimen, ja Mercurial, jota Python-ohjelmointikielellä.

Bug seurantoja ja tehtävälistat

Useimmat mittavia hankkeita edellyttävät vianseurantajärjestelmä seurata aseman useisiin kysymyksiin hankkeen kehittämiseen. Jotkut bug seurantoja ovat:

  • Bugzilla - hienostunut web-pohjainen bug tracker Mozilla.
  • Mantis Bug Tracker - web-pohjainen PHP / MySQL bug tracker.
  • Trac - integrointi bug tracker kanssa wiki, ja käyttöliittymä Subversion versio valvontajärjestelmä.
  • Redmine - kirjoitettu Ruby, integroi kysymys seuranta, wiki, foorumi, uutiset, tiekartta, Gantt hankesuunnittelun ja rajapintojen LDAP käyttäjän hakemistoon.
  • Pyydä Tracker - kirjoitettu Perl. Annetaan oletusarvoisesti CPAN moduulit - katso rt.cpan.org.
  • SourceForge ja sen haarukat antaa bug tracker osana palveluja. Tämän seurauksena monet hankkeet isännöi klo SourceForge.net ja vastaavat palvelut oletusarvoisesti käyttää sitä.
  • LibreSource
  • JIRA - Atlassian n projektinhallinnan ja kysymys seuranta työkalu.

Testaus ja testausvälineitä

Koska OSS hankkeet tehdään usein integraatio, työkaluja, jotka auttavat automatisoimaan testaus aikana järjestelmäintegraation käytetään. Esimerkkinä tällainen väline on tinderbox. Tinderbox mahdollistaa osallistujien OSS hanke havaita virheitä järjestelmäintegraation. Tinderbox kulkee jatkuva rakentaa prosessi ja ilmoittaa käyttäjille osien lähdekoodi, joka on kysymyksiä ja joihin alustalla nämä kysymykset nousevat esiin.

Debuggeri on tietokoneohjelma, jota käytetään debug muita ohjelmia. GNU Debugger on esimerkki debuggeri käytetään avoimen lähdekoodin ohjelmistokehitystä. Tämä debuggeri tarjoaa etävianmääritystä, mikä tekee siitä erityisen sovellettavat avoimen lähdekoodin ohjelmistokehitystä.

Muistivuoto työkalu tai muistin debuggeri on ohjelmointi työkalu löytää muistivuotoja ja puskurin ylivuotoja. Muistivuoto on tietynlaista tarpeettoman muistin käyttöä tietokoneohjelman, jossa ohjelma ei vapauta muistia, jota ei enää tarvita. Esimerkkejä muisti vuodonilmaisujärjestelmän käyttämiä työkaluja Mozilla ovat XPCOM muistivuoto työkaluja. Validointimenetelmiä avulla tarkistetaan, jos koodiksi mukaisia ​​tietyn syntaksin. Esimerkki validointi työkalu on Splint.

Pakettienhallinta

Paketti hallintajärjestelmä on kokoelma työkaluja automatisoida asennusta, päivitystä, konfigurointi, ja poistamalla ohjelmistot tietokoneesta. Red Hat Package Manager for.rpm ja Advanced Packaging Tool for.deb tiedostomuoto, ovat paketti hallintajärjestelmät käyttävät useita Linux-jakeluissa.

Refaktorointi, uudelleenkirjoittaminen ja muut uudistetaan

Avoimen lähdekoodin kehittäjät joskus tuntuu, että heidän koodi vaatii uudistaa. Tämä voi olla joko koska koodi on kirjoitettu tai ylläpitää ilman asianmukaista refaktorointi, tai koska ehdotettu lisälaitteen tai laajentamista ei voida siististi toteuttaa nykyisten codebase. Toinen syy uudistaa koodi on, että koodi ei täytä kehittäjän standardeja.

Julkisuuden hanke

Ohjelmistot hakemistoja ja julkaisu lokit:

  • Free Software Directory

Artikkelit:

  • Linux Weekly News
  • IBM developerWorks
Edellinen artikkeli Albert Ball
Seuraava artikkeli Alkuperä Bagratid dynastioiden