Software-aplikazioak mantentzeko eta sortzeko ingeniaritzaren adar bat. Informatika, ingeniaritza, proiektu-kudeaketa eta beste arloko jakintzak aplikatzen dira software-proiektu batean. From Wikipedia, the free encyclopedia
Software-ingeniaritza konputazio-zientzien adarretako bat da, eta software fidagarria eta kalitatezkoa sortzea aztertzen du, ingeniaritzako metodoetan eta tekniketan oinarrituta, eta eragiketa- eta mantentze-euskarriak eskainiz. Software-ingeniaritzaren azterketa-eremuak konputazio-zientziak, zientzia aplikatuak eta ingeniaritzaren euskarri diren oinarrizko zientziak biltzen ditu[1].
Softwarea sortzeko prozesua berez sortzailea da eta softwarearen ingeniaritza prozesu hori sistematizatzen saiatzen da. Helburua lortzeko porrot-arriskua mugatzeko, aurreko esperientzian oinarrituta, egokiak direla frogatu diren hainbat teknika erabiltzen dira.
Software-ingeniaritza softwareari aplikatutako ingeniaritzatzat har daiteke, hau da, bitarteko sistematizatuen bidez eta aurrez ezarritako tresnen bidez, horiek ahalik eta modu eraginkorrenean aplikatzea emaitza optimoak lortzeko; ingeniaritzak beti bilatzen ditu helburu horiek. Helburua ez da problemak ebaztea bakarrik, baizik eta soluzio desberdinak kontuan hartuta, egokiena aukeratzea.
Softwarea-ingeniaritza terminoa 1950eko hamarkadaren amaieran agertu zen lehen aldiz. Softwarearen ingeniaritza 1960tik 1980ra bitarteko hamarkadetako softwarearen krisiak bultzatu zuen. Softwarearen ingeniaritzak software-sistemen garapen- eta mantentze-prozesuak printzipio eta metodologien bidez identifikatzen eta zuzentzen laguntzen du.
1980ko hamarkadarako, softwarearen jabetza eta mantentze kostua softwarearen garapena bera baino bi aldiz garestiagoa izan zen, eta 1990eko hamarkadan, jabetza eta mantentze kostuak % 30 egin zuen gora aurreko hamarkadarekin alderatuta. 1995ean, garapen-proiektu asko operazionalak ziren, baina ez ziren arrakastatsutzat hartzen. Software-proiektu ertainak % 50ean gainditzen zuen aldez aurretik egindako denbora-estimazioa; gainera, bezeroari ematen zitzaizkion software-produktu handi guztien % 75ak hain akats larriak zituztenez, ez ziren batere erabiltzen edo, besterik gabe, ez zituzten bezeroaren eskakizunak betetzen.
Interneten erabileraren gorakadak World Wide Web-ean informazioa hedatzeko nazioarteko sistemen eskaria izugarri haztea ekarri zuen.
Software ingeniaritzak 90.000 milioi dolar inguru eman zituen urtean, Internet jokoan sartu baitzen. Horren ondorioz, garatzaileek irudiak, mapak eta animazioak erabili beharra sortu zen irudien bistaratzea/biltegiratzea optimizatzeko (adibidez, miniaturazko irudien erabilera). Nabigatzaileak erabiltzeak eta HTML lengoaia erabiltzeak izugarri aldatu zuen informazioa ikustea eta jasotzea.
Software-ingeniaritzak hainbat arau eta metodo aplikatzen ditu emaitza hobeak lortzeko, softwarearen garapenari eta erabilerari dagokienez. Prozedura horiek behar bezala aplikatuz, software-ingeniaritzaren funtsezko helburuak egoki bete daitezke.
Software-ingeniaritzaren helburuen artean daude:
Estatu Batuetan, softwareak BPGren hazkunde osoaren zortziren bat lagundu zuen 1990eko hamarkadan. Software ingeniaritzak hazkunde ekonomikoan eta produktibitatean lagundu zuen hamarkada horretan (1 $ bilioiko irabaziekin).
Software ingeniaritzak munduko kultura aldatzen du ordenagailuaren erabilera zabaltzeagatik. Posta elektronikoak (e-maila), WWWk eta berehalako mezularitzak modu berrietan elkarreragiteko aukera ematen dio jendeari. Softwareak kostua jaisten du eta osasun-zerbitzuen, suhiltzaileen departamentuen, gobernu-bulegoen eta beste gizarte-zerbitzu batzuen kalitatea hobetzen du. Software-ingeniaritzako metodoak erabili diren proiektu arrakastatsuen artean daude GNU/Linux, espazio-transbordadorearen softwarea, kutxazain automatikoak eta beste asko.
Software-ingeniaritzak etapaka taldekatutako zeregin ugari egitea eskatzen du; etapa horiei guztiei bizi-zikloa esaten zaie. Bizi-zikloaren ia eredu guztien etapa komunak honako hauek dira:
Zeri buruz lan egiten ari den identifikatu behar da, hau da, azterlanaren hasiera eta software berriaren sorrera edo lehendik dagoen software baten aldaketa eragiten duen gai nagusia.
Betekizunen azterketa lan erraza izan daiteke, baina ez, askotan bezeroek softwareak ondo funtzionatzeko behar duen guztia dakitela pentsatzen dutelako; hala ere, espezialistaren baten trebetasuna eta esperientzia behar da eskakizun osatugabeak, anbiguoak edo kontraesankorrak aitortzeko. Eskakizun horiek zehazteko, azken erabiltzailearen beharrak hartzen dira kontuan, eta lantzen diren sistemen kalitatea hobetzeko aukera emango diguten teknikak sartzen dira[1].
Softwareek adimena emulatzeko gaitasuna dute, giza adimenaren ezaugarri jakin batzuen eredu bat sortuz. Dena den, aurrez definitutako funtzioak baino ez dituzte, eta eremu batzuetan irtenbide mugatuak eskaintzen dituzte.
Betekizunen zehaztapenak garatutakoan, softwarean espero den portaera deskribatzen du espezifikazioak. Software-proiektu baten arrakastaren zati handi bat negozioaren beharrak identifikatzean eta erabiltzaile funtzionalekiko elkarreraginean datza. Elkarreragin horren bidez, softwarearen eskakizunak bildu, sailkatu, identifikatu, lehenetsi eta zehaztuko dira.
Azpiegituren integrazioak, aplikazioen garapenak, datu-baseek eta gerentzia-tresnek gaitasuna eta lidergoa behar dute kontzeptualizatuak eta etorkizunerako proiektatuak izateko, gaur egungo arazoak konponduz. Jarduera horiek guztiak arkitektoaren esku uzten dira.
Diseinu bat kodean inplementatzea software-ingeniaritzako lanaren zatirik nabariena izan daiteke, baina ez da nahitaez lan handiena eskatzen duena, ezta zailena ere. Etapa honen konplexutasunak eta iraupenak lotura estua dute erabilitako programazio-lengoaiekin eta aurretik egindako diseinuarekin.
Aplikazioa garatzeko, bost fase hartu behar dira kontuan aplikazio edo programa eraginkor bat izateko:
Softwareak arazoaren zehaztapenean adierazitako atazak behar bezala egiten dituela egiaztatzean datza. Teknika bat softwarearen modulu bakoitza bereizita probatzea da (proba unitarioa), eta, ondoren, modu integralean probatzea (integrazio-probak), helburura iristeko.
Software-diseinua inplementatzeko etapa sistemaren espezifikazio bat sistema exekutagarri bihurtzeko prozesua da. Softwarea diseinatzeko eta programatzeko prozesuak eskatzen ditu beti, baina garapen-ikuspegi ebolutiboa erabiliz gero, softwarearen espezifikazioa fintzea ere ekar dezake.
Softwarearen garapenaren eta proiektuaren kudeaketaren dokumentazioari dagokion guztia da, modelazioak (UML), erabilera-kasuen diagramak, probak, erabiltzaile-eskuliburuak, eskuliburu teknikoak eta abar barne hartuta; hori guztia balizko zuzenketak, erabilgarritasuna, etorkizuneko mantentze-lanak eta sistemari zabalkuntzak egiteko helburuarekin.
Softwarea mantentzera eta hobetzera bideratutako fasea da, aurkitutako akatsak zuzentzeko eta betekizun berriak txertatzeko. Honek denbora gehiago behar izan dezake hasierako softwarearen garapenak baino[3].
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.