Programaro

nekonkreta komponanto de komputilo, konsistanta el aro da logikaj instrukcioj, kiujn rulas la konkreta aparataro de la komputilo
Ĉi tiu artikolo temas pri kolekta kaj vasta termino. Por unuopa kolekto da komandoj rigardu la paĝon Komputila programo.

Programaro (aŭ softvaro) estas aro de iloj logikaj (ne fizikaj) de komputilaj sistemoj, kiuj regas kaj lasas regi ĝin por realigado de konkreta laboro. Programaro povas esti, ekzemple, programoj por skribi dosierojn, registri aŭ aŭskulti sondosierojn, esplori interreton, la operaciumon (Linukso, Vindozo) ktp...

Du programistoj laborante ĉe IBM Tipo 704 ĉe la National Advisory Committee for Aeronautics (NACA), 1954.

Eble la difino plej ĝusta de programaro estas de Instituto de inĝenieroj elektronikaj kaj elektroteknikaj en sia normo 729: "La sumo de la programoj de komputado, procedoj, reguloj, dokumentoj kaj asociataj datumoj, kiuj estas parto de komputada sistemo". Laŭ ĉi tiu difino, la programaro konsistas ne nur el programoj sed ankaŭ el ĉiuj datumoj konserveblaj per komputika memoro aŭ datumportilo.

Kreado de programaro

redakti
 
Programara serĉilo en Ubuntu 13.10.

La kreado de programaro estas kompleksa procedo de analizo tra programado ĝis testo de la koncernaj programoj.

Programaro estas realigita antaŭe mense ellaborita verko. "Realigita" signifas, ke programaro disponeblas sur dvd, kd, diskedo aŭ alia komputila dosierujo.


  Pli detalaj informoj troveblas en artikolo Programisto.

Programisto, disvolvigistokomputilprogramisto, aŭ ankaŭ softvara inĝeniero estas persono kiu kreas komputilan programaron. La termino komputilprogramisto povas referenci al specialisto en unu areo de komputiloj aŭ ĝeneralisto kiu verkas kodojn por multaj tipoj de programaro. La fakulo kiu praktikas aŭ profesias formalan alproksimigon al programado povas esti konata ankaŭ kiel program-analizisto.

Specoj de programaro

redakti

Estas malfacile klasigi la diversajn specojn de programaro, sed eblas fari tion jene:

Sistema programaro

redakti

Sistema programaro regas la aparataron.

 
Tekstoredaktilo Esperantilo.
Tekstredaktilo
Operaciumo
Firmvaro
Peliloj
Helpiloj
...

Ellabora programaro

redakti

Ellabora programaro helpas al programistoj skribi programojn kaj uzi malsamajn programlingvojn.

Tekstredaktilo Interpretilo Erarserĉilo Bindilo Kompilumilo ...

Uzanta (labor)programaro

redakti

Uzanto-laborprogramoj ebligas al uzantoj fari unu aŭ plurajn konkretajn laborojn, en ia ajn kampo de aktiveco kiun eblas aŭtomatigi aŭ apogi per komputiko.

Bildumilo Datumbazo Dokumentoredaktilo Retpoŝtilo Sterntabelo Tradukilo TTT-legilo Videoludo ...

Libera programaro

redakti
  Pli detalaj informoj troveblas en artikolo Libera programaro.

Libera programaro estas programaro kiu estas libere uzebla, distribuebla kaj ŝanĝebla laŭ la sekvaj specoj[1][2][3][4]:

  • La libereco por uzi la programon, por iu ajn celo (libereco 0).
  • La libereco por studi kiel la programo funkcias, kaj ŝanĝi ĝin por viaj bezonoj (libereco 1). Dispono pri la fontkodo de la programo estas antaŭkondiĉo por tio ĉi.
  • La libereco por disdoni kopiojn, do vi povas helpi vian najbaron (libereco 2).
  • La libereco por plibonigi la programon, kaj disdoni viajn plibonigojn al la publiko, por helpi ĉiujn (libereco 3). Atingo al la fontkodo estas antaŭkondiĉo por tio ĉi.

Liberan programaron subtenas kaj stimulas la libera programaro-movado. La iniciatinto de tiu movado estas Richard Stallman, kiu fondis organizon Fondaĵo por Libera Programaro (Free Software Foundation) por antaŭenigi ĝin. Ili promesas al ni ke Libera Programaro konservas la kvar suprajn specojn de libereco, por la uzantoj de la programaro.

 
Google Chrome estas ekzemplaĵo de mallibera programo, male al Mozilla Firefox

Mallibera programaro

redakti

Mallibera programaro, ankaŭ nomata "ne-libera", "proprieta" aŭ "fermit-fonta" estas programaro kiu ne estas sub la kriterioj por libera programaro. Senpaga programaro (angle freeware) estas speco de mallibera programaro, kiu disponeblas por uzado senpage. Malgraŭ tio, oni ne rajtas modifi, redistribui aŭ studi (inversa inĝenierarto) ĝin sen la permeso de la kreinto.

  • Mikroprogramaro (ankaŭ nomata integrita programaro aŭ firmprogramo aŭ firmvaro, el la angla firmware) estas speco de programaro kiu ebligas kontrolon, monitoradon kaj datummanipuladon de eletronikaj produktoj kaj sistemoj.
  • Viruso estas programaro, kies celo estas mem-kopiiĝi en aliajn programojn aŭ al aliajn komputilojn, ofte ne informante la uzanton kiu ĝin lanĉas, kaj fojfoje difektante aŭ kopiante dosierojn.

Neologismo "softvaro"

redakti

Kelkaj esperantistoj uzas la vorton softvaro en Esperanto ĉar la angla vorto software estas uzata kiel neologismo en multaj lingvoj tutmonde.

Laŭ ili tiu vorto estas unuradika (softvar + o ), do ili opinias ke nova radiko aldoniĝis al Esperanto laŭ la 15-a regulo de la Fundamento. Aliaj interpretas ĝin kiel kunmetaĵon de la radikoj soft kaj var, sed tio ne estas tre logika, ĉar en Esperanto softa signifas milde mallaŭta, do neniel rilatas al komputikaĵo.

La malvorto de softvaro estas la neologismo hardvaro, nome aparataro. Kiel malvorto de hardvaro, softvaro estas uzata por pli vasta signifo: ekz. datumoj ludataj per aparataro kiel datumoj en registradaj mediojelektra signo.

La plej ofta esprimo en Esperanto por tiu koncepto estas la kunmetaĵo programaro, kiu bone kaptas la intencitan signifon sen neceso de nova radiko.

Evolua karaktero de la programaro

redakti

La programaro estas la produkto generita de la procezo de disvolvigo, laŭ la inĝenierado de programaro. Tiu produkto estas esence alte evolua kaj evoluema dum sia vivociklo: ĝenerale, ĝi evoluas generante versiojn pli kaj pli kompletajn, kompleksajn, plibonigitajn laŭ iu konsidero, plo taŭgajn al novaj platformoj (ĉu de aparataro ĉu de operaciaj sistemoj), ktp.[5]

Cuando un sistema deja de evolucionar, eventualmente cumplirá con su ciclo de vida, entrará en obsolescencia e inevitablemente, tarde o temprano, será reemplazado por un producto nuevo.

El software evoluciona sencillamente porque se debe adaptar a los cambios del entorno, sean funcionales (exigencias de usuarios), operativos, de plataforma o arquitectura hardware.

La dinámica de evolución del software es el estudio de los cambios del sistema. La mayor contribución en esta área fue realizada por Meir M. Lehman y Belady, comenzando en los años 70 y 80. Su trabajo continuó en la década de 1990, con Lehman y otros investigadores[6] de relevancia en la realimentación en los procesos de evolución (Lehman, 1996; Lehman et al., 1998; lehman et al., 2001). A partir de esos estudios propusieron un conjunto de leyes (conocidas como leyes de Lehman)[7] respecto de los cambios producidos en los sistemas. Estas leyes (en realidad son hipótesis) son invariantes y ampliamente aplicables.

Lehman y Belady analizaron el crecimiento y la evolución de varios sistemas software de gran porte; derivando finalmente, según sus medidas, las siguientes ocho leyes:

  1. Cambio continuo: Un programa que se usa en un entorno real necesariamente debe cambiar o se volverá progresivamente menos útil en ese entorno.
  2. Complejidad creciente: A medida que un programa en evolución cambia, su estructura tiende a ser cada vez más compleja. Se deben dedicar recursos extras para preservar y simplificar la estructura.
  3. Evolución prolongada del programa: La evolución de los programas es un proceso autorregulativo. Los atributos de los sistemas, tales como tamaño, tiempo entre entregas y la cantidad de errores documentados son aproximadamente invariantes para cada entrega del sistema.
  4. Estabilidad organizacional: Durante el tiempo de vida de un programa, su velocidad de desarrollo es aproximadamente constante e independiente de los recursos dedicados al desarrollo del sistema.
  5. Conservación de la familiaridad: Durante el tiempo de vida de un sistema, el cambio incremental en cada entrega es aproximadamente constante.
  6. Crecimiento continuado: La funcionalidad ofrecida por los sistemas tiene que crecer continuamente para mantener la satisfacción de los usuarios.
  7. Decremento de la calidad: La calidad de los sistemas software comenzará a disminuir a menos que dichos sistemas se adapten a los cambios de su entorno de funcionamiento.
  8. Realimentación del sistema: Los procesos de evolución incorporan sistemas de realimentación multiagente y multibucle y estos deben ser tratados como sistemas de realimentación para lograr una mejora significativa del producto.

Referencoj

redakti
  1. (Referu al GNU Project. What is Free Software. Free Software Foundation.)
  2. Philosophy of the GNU Project (gnu.org)
  3. Free Software Movement (gnu.org)
  4. What is free software (fsf.org)
  5. Sommerville, Ian. Ingeniería del Software. Pearson Educación S.A. 2005 Ĉapitro 21 .- Evolución del software
  6. ACM Fellow Profile for Meir M. (Manny) Lehman Association for Computing Machinery, ACM, 31a de Majo 2007, alirita la 27an de Novembro 2011 Arkivita en [1] la 28an de Septembro 2011
  7. Citaĵa eraro Malvalida etikedo <ref>; neniu teksto estis provizita por ref-oj nomataj Evo2; $2

Vidu ankaŭ

redakti

Eksteraj ligiloj

redakti
  • En tiu ĉi artikolo estas uzita traduko de teksto el la artikolo Software en la itala Vikipedio.