UD01 T01 1 Introduccion Al Desarrollo de Software

download UD01 T01 1 Introduccion Al Desarrollo de Software

of 32

Transcript of UD01 T01 1 Introduccion Al Desarrollo de Software

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    1/32

    CICLO DE GRADO SUPERIOR INFORMTICADESARROLLO DE APLICACIONES MULTIPLATAFORMA

    Mdulo:ENTORNOS DE DESARROLLO

    U.D. 1.- Desarrollo de Software

    TEMA 1.- Introduccin al desarrollo de aplicaciones informticas

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    2/32

    ENTORNOS DE DESARROLLO 2

    Autores: Javier Tamargo Rodrguez y Jos A. Priego. Partes de este documentoestn derivadas de un documento previo creado por Joaquin Alvarez.

    Este documento se publica bajo licencia Creative Commons No se permiteun uso comercial de la obra original ni de las posibles obras derivadas, ladistribucin de las cuales se debe hacer con una licencia igual a la queregula la obra original.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    3/32

    ENTORNOS DE DESARROLLO 3

    1. INTRODUCCIN

    Para el ser humano como individuo y para las organizaciones en las que participa, lanecesidad de informacin es fundamental para la realizacin de las actividades. Lacorrecta toma de decisiones define el xito o el fracaso de la actividad. Teniendo encuenta que cualquier accin a ejecutar se decidir a partir de la informacin disponible, sedebe concluir que, para que la toma de decisiones sea correcta, como mnimo esnecesario tener la informacin adecuada.

    Se define el procesamiento de datoscomo el conjunto de actividades que a partir deuna serie de datos, obtienen como resultado informacin til.

    El procesamiento de datos ha ido creciendo en importancia a lo largo de la historia hastallegar a la sociedad actual (Sociedad de la Informacin), donde ha ocupado un papel

    fundamental. Muchos factores han determinado esta preponderancia, pero podramoscitar tres como determinantes:

    La creciente complejidad moderna, donde muchas actividades que consideramoshoy en da como cotidianas, son relativamente nuevas y han creado una necesidadde realizar un tratamiento de la informacin (recibos, seguros, tarjetas de crdito,operaciones bancarias, etc).

    La nueva gestin que ahora se realiza en las organizaciones administrativas yeconmicas, donde las decisiones vienen dadas por la informacin existente encada instante. Las decisiones requieren disponer de la informacin adecuada; es

    decir, es necesario procesar todos los datos posibles (tanto internos comoexternos) en el menor tiempo posible, para facilitar la toma de decisines mseficaces.

    El avance imparable de la tecnologa encargada de ayudar a procesar los datos,cada vez ms abundantes. Una vez que disponemos de las herramientas, se veque gracias a ellas podemos tratar ms informacin y cuanto mayores son losdatos, mejores resultados obtenemos, en consecuencia solicitamos ms y ms. Elresultado es una creciente demanda de informacin y, en consecuencia, uncontinuo avance tecnolgico.

    Con la finalidad de ayudar en la toma de decisiones surge la INFORMTICA (palabra deorigen francs, formada por la contraccin de los vocablos INFORmacin y autoMTICA),como una ciencia encargada del estudio y desarrollo de mquinas y mtodos para eltratamiento automtico de la informacin.

    La Real Academia Espaola de la Lengua define:

    La Informtica como el conjunto de conocimientos cientficos y tcnicas que hacenposible el tratamiento automtico de la informacin por medio de ordenadores.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    4/32

    ENTORNOS DE DESARROLLO 4

    El ordenador como Mquina electrnica dotada de una memoria de gran capacidad y demtodos de tratamiento de la informacin, capaz de resolver problemas aritmticos ylgicos gracias a la utilizacin automtica de programas registrados en ella.

    Un programa informtico como Conjunto unitario de instrucciones que permite a unordenador realizar funciones diversas, como el tratamiento de textos, el diseo degrficos, la resolucin de problemas matemticos, el manejo de bancos de datos, etc.

    2. GNESIS Y EVOLUCIN DE LAS MQUINAS DE TRATAMIENTO DE LAINFORMACIN

    2.1. Generacin Cero ( - a 1936)

    El hombre desde hace muchos siglos no ha parado de buscar herramientas y mtodosque lo ayuden en las tareas de clculo y procesado de la informacin; de hecho la propiapalabra clculo tiene su origen en el trmino latino calculus, que significa piedra. Estetrmino se utilizaba hace miles de aos para denominar a unas pequeas piedras que sedepositaban en unos surcos hechos en la tierra y que se utilizaban para contar.

    A partir de este primitivo elemento de clculo apareci, en diferentes lugares, el primerelemento manual para contar, el baco.

    El baco ms antiguo encontrado hasta el momento data del ao 3.500 aC y fueencontrado en Mesopotamia, entre los ros Tigris y Eufrates. A lo largo de la historia hanexistido muchas variaciones de bacos, que utilizaban diferentes sistemas denumeracin.

    Este dispositivo es muy sencillo, consta de un marco rectangular de madera ensartado devarillas en las que se desplazaban bolas agujereadas de izquierda a derecha. La posicinde la cuenta en la varilla representa la cifra y nmero de la varilla representa la posicinde la cifra para obtener el nmero.

    Abco Japones (Soroban).

    Sistema Decimal

    Abco Maya (Nepohualtzintzin)

    Sistema Vigesimal

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    5/32

    ENTORNOS DE DESARROLLO 5

    Soroban

    Sistema decimal, base 10

    Nepohualtzintzin

    Sistema vigesimal, base 20

    Unidades 100= 1 Kines 200= 1

    Decenas 10 = 10 Uinales 20 = 20

    Centenas 10 = 100 Tunes 20 = 400

    Unidades de millar 10 = 1000 Katunes 20 = 8000

    Decenas de millar 104

    = 10000 Baktunes 204

    = 160000

    Centenas de millar 105= 100000 Pictunes 205= 3200000

    Unidades de milln 10 = 1000000 Calabtunes 20 = 64000000

    Decenas de milln 10 = 10000000 Kinchiltunes 20 = 1280000000

    Centenas de milln 108= 100000000 Alautunes 208= 25600000000

    Fernando Tejn, en la pgina webhttp://es.geocities.com/abacosoroban/ ha realizado un

    autntico manual de uso del baco Soroban.

    Con el baco, nos encontramos quiz con el primer dispositivo que permite representarvalores y realizar operaciones aritmticas (incluso races cuadradas) y que fue utilizado demanera ordinaria en occidente hasta el siglo XVI, cuando comenzaron a aparecerdispositivos y herramientas de clculo ms potentes.

    Otro paso ms en la evolucin de mecanismos para facilitar el tratamiento de lainformacin, vino de la mano del matemtico John Napier(1550-1617) que, en un intentode simplificar las operaciones de multiplicacin, divisin y potenciacin, invent loslogaritmos naturales o neperianos a finales del siglo XVI y en 1614 costruy las primerastablas de algoritmos neperianos.

    Los logaritmos neperianos permitan que el logaritmo del producto de dos nmeros sepudiera transformar en la suma de los logaritmos de los nmeros a multiplicar. Loslogaritmos de los nmeros a multiplicar se buscaban en una tabla y se sumaban, elresultado era el logaritmo del producto, luego si buscamos el valor en la tabla podemossaber a qu nmero le corresponde, que es precisamente el valor del producto. La

    divisin utilizando el mismo sistema en la resta y la potenciacin era el producto.

    http://es.geocities.com/abacosoroban/http://es.geocities.com/abacosoroban/
  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    6/32

    ENTORNOS DE DESARROLLO 6

    Napier ide un dispositivo mecnico que permitira realizar este proceso de formaautomtica, pero los impedimentos tcnicos de la poca impediran su construccin.

    Sera su amigo William Oughtred (1574-1660),reconocido matemtico de la poca, quien construirauna regla de clculoque permita realizar operacionesaritmticas mediante escalas basadas en los logaritmos.

    Hacia el ao 1623, el cientfico alemn Wilheim Schickard (1592-1635) ide unacalculadora electromecnica denominada reloj basculante,

    que funcionaba con ruedas dentadas que se engranabanentre s y que era capaz de sumar y restar, pero quetampoco pudo construirse debido a los impedimentostcnicos de la poca. Esta mquina combinada con la deNapier fue construida a principios del siglo XX por la actualIBM y es consideraba la primera mquina de calcular deorigen mecnico.

    En 1642, el matemtico Blaise Pascal (1623-1662) invent la primera mquinaautomtica de calcular completa, a base de ruedas dentadas, que simulaba el

    funcionamiento del baco. Esta mquina, denominada mquina aritmtica de Pascal,realizaba las operaciones de suma y resta.

    En 1672 el matemtico alemn Gottfried Wilhelm von Leibniz (1646-1716) mejor lamquina de Pascal, de forma que poda realizar, adems de las operaciones de suma yresta, las operaciones de multiplicar, dividir y realizar races cuadradas.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    7/32

    ENTORNOS DE DESARROLLO 7

    Un hecho muy determinante de la evolucin informtica se produjo en 1805, cuando elfrancs Joseph Marie Jackard(1752-1834) construy un telar automticoque realizabael control de las agujas tejedoras mediante unas tarjetas perforadas que contenan datospara el control de las figuras y dibujos que se tejan en las telas. Esta mquina seconsidera laprimera mquina mecnica programada.

    Sin embargo sera el matemtico ingls y profesor de la Universidad de Cambridge,Charles Babbage (1792-1871) quien dise dos mquinas de calcular que rompan lalnea general de las mquinas de la poca.

    La primera fue su Mquina Diferencial, que basada enfundamentos mecnicos era capaz de realizar operaciones declculo de tablas matemticas. Babbage tuvo tuvo la idea de crearuna mquina que ejecutara ese trabajo, eliminando el error humano,y facilitando la tarea de realizar operaciones repetitivas. En 1822present su proyecto en la Royal Astronomical Society, capaz deresolver polinomios de segundo grado mediante un mtodonumrico diferencial. Esta mquina nunca lleg a finalizarse, puesto

    que se abandon para afrontar el diseo de una segunda mquina.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    8/32

    ENTORNOS DE DESARROLLO 8

    En 1833, Charles Babbage se centr en un nuevo proyecto, una Mquina Analticaquetuviera un propsito general, capaz de resolver mltiples problemas matemticos.

    Su mquina analtica funcionara a vapor y constarade un mecanismo de entrada y salida mediantetarjetas perforadas basadas en el modelo deJacquard, una memoria para 1.000 nmeros de 50cifras, una unidad de control para que lasoperaciones se realizasen en el orden correcto yuna unidad aritmtico-lgica para los clculos.

    Esta mquina tampoco lleg a construirse por las

    limitaciones tcnicas de la poca, pero en su diseose encuentran reflejados los fundamentos bsicosde los ordenadores actuales.

    La mquina analtica de Babbage empleara tarjetas perforadas que se utilizaran parasumistrar y recoger datos del proceso, dispondra de una unidad de clculo, de unaunidad de almacenamiento temporal de los resultado intermedios y de una unidad decontrol.

    Por el diseo de la Mquina Analtica, a Babbage se le considera el padre de lainformtica.

    Esquema de la mquina analtica de Babbage

    UNIDAD

    DE

    CONTROL

    UNIDAD

    ARITMETICA

    UNIDADES DE UNIDADES DE

    MEMORIA TEMPORAL

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    9/32

    ENTORNOS DE DESARROLLO 9

    Sin embargo el diseo de Babbage estaba incompleto. Era necesario sentar las bases dela programacin de esta mquina y sera Lady Augusta Ada Byron, hija del poeta inglsLord Byron, la que dise el esquema de deberan de tener estos programas informticos.

    Ada Augusta estudi matemticas y ciencias, a pesar de loscondicionantes de la poca por ser mujer. Su relacin con CharlesBabbage comenz cuando ella visitaba su taller a una edad temprana.Babbage estaba muy impresionado con la manera en que ellaentenda su computador para el que escribi un "plan" describiendolos pasos que permitiran calcular los valores de los nmeros deBernoulli. Suyos son, adems, conceptos tan familiares en unlenguaje de programacin como un conjunto de instrucciones que

    permiten que otras se repitan en un bucle o subrutina.

    Posteriormente, Babbage pas a ser su tutor y ms tarde trabajaron juntos. Public en1843 una serie de influyentes notas sobre la computadora de Babbage, su mquinaanaltica que nunca lleg a construirse, aunque las firm con sus iniciales por miedo aser censurada por ser mujer.

    Ada Byron se llam a s misma una analista, un concepto realmente moderno para lapoca. Tambin podemos encontrar en sus notas una expresin que dice que lamquina analtica slo poda dar informacin disponible que ya era conocida, lo que

    nos lleva al concepto de que una mquina no puede originar conocimiento.

    Por sus aportaciones se reconoce a Ada Byron como la primera persona en describir unlenguaje de programacin de carcter general. Como reconocimiento a su persona, en1979 el Departamento de Defensa de los Estados Unidos cre un lenguaje deprogramacin basado en Pascal en honor de Ada Byron, llamado lenguaje deprogramacin Ada. Su rostro tambin ha aparecido como marca de autenticidad en loscertificados de licencia del sistema operativo Microsoft Windows.

    Lady Ada Augusta es consideraba la primera programadora de la historia.

    Es importante citar tambin a George Boole(1815-1864), matemtico y filsofo britnico,que en 1854 hizo pblico un estudio sobre las leyes del pensamiento en las que se basanlas teoras matemticas de la lgica y la probabilidad, aplicando smblos a operacioneslgicas estructurados segn el lgebra convencional. Surge as el lgebra de la lgica(lgebra de Boo le), que es el aplicado en la construccin de ordenadores y circuitos.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    10/32

    ENTORNOS DE DESARROLLO 10

    El 1880 la poblacin de los Estados Unidos llegaba a los50 millones de personas, y realizar el censo de lapoblacin llev cerca de 8 aos. El norteamericano yfuncionario de la Oficina del Censo de EEUU, HermanHollerith (1860-1929), analizando las preguntas que sehacan, desarroll un sistema de cmputo automatizado, ylo hizo diseando una mquina (mquina censadora deHollerith) que utilizaba tarjetas en las que serepresentaba la informacin (nombre, direccin, sexo,edad, raza...) mediante perforaciones, que eran

    detectadas por la mquina, clasificando (tabulando) debidamente la informacin segn lalgica de Boole.

    Mediante esa mquina el censo de 1890 se logr completar en 2 aos y medio, a pesarde que la poblacin haba aumentado en ms del 20%.

    En 1896 Hollerith fund su propia compaa, Tabulating Machine Company, que en 1911se fusion con otras dos empresas, formando as la Computing Tabulating RecordingCompany (CTR), sta a su vez pasa a manos de Thomas Watson en 1914 y, diez aosms tarde, en 1924, toma el nombre de International Business Machines (IBM).

    2.2. Primera Generacin (1936-1956)

    En el ao 1900 se celebr en Pars el Congreso Internacional de Matemticas, donde elmatemtico ruso David Hilbert formul una pregunta clave: existe un mtodo definidoque pueda aplicarse a cualquier sentencia matemtica y que nos diga si esa sentencia escierta o no?

    En agosto de 1936, Alan Mathison Turing(1912-1954) public un artculo que vena adar respuesta a la pregunta formulada por David Hilbert mediante el concepto de la

    Mquina de Turing; es decir, si hay un mtodo definido que pueda aplicarse a cualquiersentencia matemtica y que nos diga si esa sentencia es cierta o no.

    En el artculo On Computable Numbers, Turing construy un modelo matemticoabstracto de mquina de computacin, la Mquina de Turing, y demostr que habaproblemas tales que una mquina no poda resolver. La mquina de Turing es el primermodelo terico de lo que luego sera un computador programable. Con el tiempo, a estetipo de mquina se la conoci como mquina de estado finito, debido a que en cada etapade un clculo, la siguiente accin de la mquina se contrastaba con una lista finita deinstrucciones de estado posibles. Una mquina de Turing debe verse ms como un

    algortimo (software) que como un ordenador en s (hardware).

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    11/32

    ENTORNOS DE DESARROLLO 11

    Al estallar la Segunda Guerra Mundial, Turing fue alejado del mundo acadmico yreclutado por la Escuela de Cdigos y Cifrados del gobierno britnico. Las actividades querealizaba consistan de manera primordial en descifrar el cdigo militar alemn ENIGMA.Para ello colabor en el desarroll el invento ms secreto de dicha guerra: el Colossus,primer ordenador electromecnico del mundo. Ms adelante, sera destinado a losEstados Unidos con el fin de crear unos cdigos seguros para las comunicacionestransatlnticas entre los pases aliados.

    Acabada la guerra, Turing colabor en proyectos civiles para la construccin de nuevosequipos informticos (ENIAC, ACE, MARK I, ).

    En 1952, Turing fue acusado de homosexualidad y apartado de su trabajo en eldepartamento de comunicaciones del gobierno. Dos aos ms tarde se suicid.

    Diario el Mundo, 14 de septiembre de 2009

    El primer ministro del Reino Unido, Gordon Brown, ha pedido disculpas

    pblicamente en su web oficial (http://www.number10.gov.uk/Page20571) por el

    trato 'inhumano' que recibi Alan Turing por parte de las autoridades britnicas de

    la poca.

    Las disculpas oficiales llegan unas semanas despus de que el cientfico John

    Graham Cumming pusiera en marcha una peticin formal que solicitaba una

    disculpa pblica del gobierno britnico por el tratamiento que recibi quien logrdescifrar los mensajes alemanes durante la contienda. La inic iat iva cont con el

    apoy popu lar y lleg a reun ir ms de 30.000 firmas ,segn The Guardian.

    "En nombre del gobierno britnico, y de aquellos que viven libremente gracias al

    trabajo de Alan, estoy orgulloso de decir: lo s entim os, te merecas algo mu cho

    mejor" dijo Brown en el comunicado.

    Turing se hizo famos o du rante la II Guerra Mundial por log rar descif rar los

    cdigos alemanes de la mquina Enigma. Pero en 1952 fue perseguido tras

    admitir haber mantenido relaciones sexuales con otro hombre. Fue castradoqumicamente y se le impidi continuar con su trabajo para el departamento de

    comunicaciones del gobierno. En 1954 se suicid.

    Brown describi el tratamiento como "horroroso" y "tremendamente injusto".

    "Cientos de personas se han unido para pedir justicia por Alan Turing" dijo Brown.

    "Yo estoy agradecido de tener la oportunidad de decir cuanto lamento,

    lamentamos, lo que le ocurri" concluy Brown.

    http://www.number10.gov.uk/Page20571http://www.number10.gov.uk/Page20571http://www.number10.gov.uk/Page20571http://www.number10.gov.uk/Page20571
  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    12/32

    ENTORNOS DE DESARROLLO 12

    Prcticamente al mismo tiempo que Turing desarrollaba su modelo matemtico, enEstados Unidos, Alonzo Church (1903-1995) di a conocer el clculo lambda, untrabajo equivalente al de Turing, que puede ser usado para definir de manera limpia yprecisa qu es una funcin computable (una funcin computable es aqulla que puede sercalculada con una mquina de clculo). Se puede considerar al clculo lambda como elms pequeo lenguaje universal de programacin.

    Turing y Church son considerados los padres de la Ciencia de la Computacin y laInteligencia Artificial.

    El ingeniero alemn Konrad Zuse(1910-1995) construy en 1938 la Z1, un prototipo deuna mquina electromecnica de sistema binario que poda ser programada de forma

    limitada y que usaba rels elctricos para automatizar los procesos,leyendo las instrucciones de una cinta perforada.

    Un rel es un dispositivo electromecnico, que funciona como uninterruptor controlado por un circuito elctrico en el que, por medio de una bobina yunelectroimn,se acciona un juego de uno o varios contactos que permiten abrir o cerrarotros circuitos elctricos independientes. Fue inventado porJoseph Henry en 1835.

    El Z1 no lleg a funcionar correctamente debido a la imperfeccin de alguna de suspiezas mecnicas.

    En 1940 concluy la construccin de la Z2, modelo perfeccionado con rels telefnicos, yen 1941 cre la Z3, que dispona de una memoria de 64 palabras, un procesador con dosregistros, una unidad de lectura de cinta perforada y una unidad de control quedecodificaba una instruccin leda en la cinta perforada y transfera estos datos dentro dela mquina y los dispositivos de entrada/salida.

    En el bombardeo aliado sobre Berln en 1944, la Z3 original fue destruida. Konrad Zuse norecibi el apoyo del rgimen Nazi, por lo que tuvo que financiarse todos sus proyectos y,en su momento, tampoco obtuvo el reconocimiento del exterior que s recibieron otroscontemporneos. An as, fund varias empresas propias y, en 1950, realiza la primeraventa de un ordenador de la historia, el modelo Z4, a una compaa suiza.

    El ingeniero electrnico y doctor en fsica terica estadounidense de origen blgaro JohnVincent Atanasoff (1903-1995) es considerado el inventor del ordenador digitalelectrnico, despus de una resolucin judicial en la que se vi envuelto indirectamente.

    http://es.wikipedia.org/wiki/Bobinahttp://es.wikipedia.org/wiki/Electroim%C3%A1nhttp://es.wikipedia.org/wiki/Joseph_Henryhttp://es.wikipedia.org/wiki/Joseph_Henryhttp://es.wikipedia.org/wiki/Electroim%C3%A1nhttp://es.wikipedia.org/wiki/Bobina
  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    13/32

    ENTORNOS DE DESARROLLO 13

    Como le ocurri a Konrad Zuse, Antanasoff quera encontrar una manera de agilizar losnumerosos clculos que deba realizar, as que comenz a desarrollar ideas para laconstruccin de una mquina para tal fin, ms eficiente y rpida que las del momento.

    Antanasoff concibi la idea final fundamentndose en cuatro principios: el uso decomponentes elctricos, un sistema binario, condensadores como elementos de memoriay un sistema lgico para el cmputo.

    Un condensador o capacitador es un dispositivo que almacena energa elctrica y estformado por un par de superficies conductoras, separadas por un material dielctrico queacta como aislante, que adquieren una determinada carga elctrica, positiva en una delas placas y negativa en la otra

    En diciembre de 1939 tena terminado un prototipo que funcionaba correctamente que

    llam ABC(Atanasoff Berry Computer).

    En 1940, Atanasoff asiste a una lectura del Dr. JohnWilliam Mauchly y le muestra su mquina. Mauchlycopia muchas ideas de la ABC para disear juntocon John Presper Eckert la ENIAC, considerada laprimera computadora digital electrnica del mundo,hasta que en 1967 un litigio entre dos compaas,Honeywell y Sperry Rand Corporation (que habaadquirido la patente sobre la ENIAC), llevaran el

    caso a los juzgados. Tras seis aos de litigio el juezEarl R. Larson, de Minneapolis, sentenci que la patente del ENIAC no era vlida y di laautora a Atanasoff y a su ABC del primer ordenador digital electrnico.

    En febrero de 1944, el ingeniero estadounidense Howard Hathaway Aiken(1900-1973),financiado por IBM, termina la construccin del ordenador electromecnico MARK I,basndose en los diseos de la mquina analtica de Charles Babbage.

    Tena unas dimensiones gigantescas:meda unos 15,5 metros de largo, unos2,40 metros de alto y unos 60 centmetrosde ancho, su peso era de unas cincotoneladas y en su interior se reparta uncableado de unos 800 kilmetros delongitud con casi 3 millones de conexiones.Estaba compuesta por unas 750.000piezas, cerca de 1.500 interruptoresrotatorios de diez posiciones. Haca uso delsistema decimal en lugar del binario, y

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    14/32

    ENTORNOS DE DESARROLLO 14

    contena 72 registros mecnicos, cada uno de los cuales poda almacenar 23 dgitosdecimales ms un dgito para el signo. Para la compaa IBM fue el comienzo de su largay de sobra conocida trayectoria como fabricante de ordenadores.

    En febrero de 1944, un proyectosecreto britnico durante la SegundaGuerra Mundial deriv en laconstruccin de Colossus, un ordenadordigital destinado a leer y descifrar loscdigos alemanes, quienes utilizaban lamquina encriptadora Enigma para elenvo de instrucciones al frente. Hastaentonces no se haba encontrado un

    sistema de descifrado eficaz contra lamquina alemana.

    Colossusfue diseado por el ingeniero britnico Thomas Harold Flowers(1905-1998) yestaba compuesta originalmente por 1.500 vlvulas electrnicas (tubos de vidrio al vaco),un lector fotoelctrico que reciba los datos mediante una cinta perforada, posea unamemoria de cinco caracteres de cinco bits, su velocidad de proceso era de 5.000 herciosy empleaba el sistema binario. Tena unas medidas de 2,25 metros de alto, 3 metros de

    largo y 1,20 metros de ancho. Hasta el final de la guerra se construyeron varios modelosms de Colossus, contando con la participacin de Alan Turing.

    En 1940 John Mauchly y John P. Eckert, junto con cientficos de la Universidad dePensilvania construyeron la que se consideraba la primera computadora electrnica,hasta el litigio de 1967 entre las compaas Honeywell y Sperry Rand Corporation. Estamquina se la denomin ENIACy entr en funcionamiento en 1945.

    Constaba de 17.468 vlvulas o tubos de

    vidrio al vaco (ms resistencias,condensadores, etc.), con 32 toneladas depeso, 2,40 de ancho y 30 metros de largo.El calor de las vlvulas elevaba latemperatura del local hasta los 50.

    Para efectuar diferentes operaciones,deban cambiarse las conexiones (cables)como en las viejas centrales telefnicas, locual era un trabajo que poda tomar variosdas.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    15/32

    ENTORNOS DE DESARROLLO 15

    Era capaz de calcular con gran velocidad la trayectorias de proyectiles, principal objetivoinicial de su construccin. En 1,5 segundos poda calcular la potencia 5.000 de un nmerode 5 cifras. ENIAC poda resolver 5.000 sumas y 360 multiplicaciones por segundo, perosu programacin era terriblemente tediosa y deban cambirsele los tubos contnuamente.

    Otra figura importante en la historia de la computacin es el ingeniero y matemtico JohnVon Neumann(1903-1957). De origen hngaro, Neumann, fue un nio prodigio que a laedad de 6 aos poda dividir mentalmente cifras de 8 dgitos y que con slo 30 aosingres en el Instituto de Estudios Avanzados.

    En 1944 contribuy en forma directa en los diseos de fabricacin de computadoras,asesorando a Eckert y John Mauchly, creadores de laENIAC.Durante esa dcada trabajcomo consultor para la IBM colaborando con Howard Aiken para la construccin de lacomputadoraMark I de Harvard.

    Los primeros computadores se programaban en realidad recablendolos. Estoprcticamente equivala a reconstruir todo el computador cuando se requera de un nuevoprograma. La tarea era simplificada gracias a un panel de contactos (muy similar al de losprimeros conmutadores telefnicos que eran atendidos por operadoras, y que hoy en daslo llegamos a ver en viejas pelculas en blanco y negro) con el que era posible enlazarcircuitos para crear secciones dedicadas a una actividad especficas.

    Estas arquitecturas de cableado establecan una clara distincin entre los datos(representados por los estados o seales elctricas) y el programa (las conexiones que

    seran establecidas entre estos componentes del hardware).

    Esto vino a cambiar con el concepto del programa almacenado, un concepto terico muyimportante que fue establecido por el matemtico John von Neumann el 30 de junio de1945 en un borrador sobre el diseo de la EDVAC.

    A diferencia de los primeros computadores, von Neumann propona que tanto el programacomo sus datos fueran almacenados en la memoria del computador. Esto no slosimplificaba la labor de programacin al no tener que llevar a cabo el recableado delcomputador, sino que adems libraba y generalizaba el diseo del hardware para hacerlo

    independiente de cualquier problema y enfocado al control y ejecucin del programa.

    Este concepto fue tan importante y decisivo que dio lugar al concepto de la arquitecturade von Neumann, con la que se construyen los ordenadores actuales.

    Los ordenadores con arquitectura Von Neumann constan de las siguientes partes: unaunidad aritmtico-lgica (ALU), una unidad de control (UC), la memoria dealmacenamiento, un dispositivo de entrada/salida, el bus de datos que proporciona unmedio de transporte de los datos entre las distintas partes, el bus de direcciones, paraacceder a las posiciones de memoria donde estn almacenados los datos y el bus de

    control, para controlar todo el proceso. Adems dispone de pequeas memorias de apoyo(registros) de los procesos que ocurren.

    http://etsiit.ugr.es/alumnos/mlii/eniac.htmhttp://etsiit.ugr.es/alumnos/mlii/ibm.htmhttp://etsiit.ugr.es/alumnos/mlii/Aiken.htmhttp://etsiit.ugr.es/alumnos/mlii/Harvard%20Mark%20I.htmhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://www.monografias.com/trabajos14/control/control.shtmlhttp://www.monografias.com/trabajos/bus/bus.shtmlhttp://www.monografias.com/trabajos/transporte/transporte.shtmlhttp://www.monografias.com/trabajos/transporte/transporte.shtmlhttp://www.monografias.com/trabajos/bus/bus.shtmlhttp://www.monografias.com/trabajos14/control/control.shtmlhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://etsiit.ugr.es/alumnos/mlii/Harvard%20Mark%20I.htmhttp://etsiit.ugr.es/alumnos/mlii/Aiken.htmhttp://etsiit.ugr.es/alumnos/mlii/ibm.htmhttp://etsiit.ugr.es/alumnos/mlii/eniac.htm
  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    16/32

    ENTORNOS DE DESARROLLO 16

    En 1946 Mauchly y Eckert propusieron la construccin de una nueva mquina,denominada EDVAC por las siglas de su nombre en ingls Electronic Discrete VariableAutomatic Computer. Bajo la tutela de John von Neuman se dise un ordenadorconsistente en el almacenamiento en memoria y un sistema de numeracin en binario,

    donde la suma, la resta y la multiplicacin era automtica y la divisin programable.La EDVAC fue terminada en 1952 y entregada a un laboratorio militar americano. Tena6.000 tubos de vaco y 12.000 diodos de cristal, ocupaba 45,5 m de superficie y pesaba7.850 kg.

    La memoria consista en lneas de mercurio dentro de un tubo de vidrio al vaco, de talmodo que un impulso elctrico poda ir y venir en 2 direcciones, y de esa forma podarepresentar dos posibles estados. Esto era indispensable ya que en lugar de usardecimales, la EDVAC empleaba nmeros en sistema binario (0 y 1).

    Internamente el EDVAC estaba organizado en cinco partes principalmente:

    Unidad de lectura-grabacin, que era la encargada de la lectura, grabacin yborrado de las cintas magnticas.

    Unidad de control, que se encargaba de decodificar las instrucciones, emitaseales de control hacia el resto de unidades y almacenaba la instruccin que sedeba ejecutar en cada momento.

    Unidad de memoria, que almacenaba los datos y las instrucciones. Unidad de clculo, que realizaba las operaciones bsicas aritmticas. La unidad

    aritmtica estaba por duplicado, las operaciones se hacan en ambas unidades yse comparaban los resultados, interrumpindose la ejecucin si no eran idnticos.

    Un reloj, cuya misin era sincronizar los procesos y que emita pulsos de reloj aintervalos de 1 segundo (10-6sg)

    Posteriormente Eckert y Mauchly trabajaran en el proyecto UNIVAC. El primerordenador UNIVAC fue entregado a la Oficina de Censos de los Estados Unidos (UnitedStates Census Bureau) el 31 de marzo de 1951 y fue puesto en servicio el 14 de junio deese ao.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    17/32

    ENTORNOS DE DESARROLLO 17

    Los primeros contratos para la venta de UNIVACfueron realizados con instituciones del gobierno de

    los Estados Unidos, tales como la oficina decensos, la Fuerza Area, y el servicio de mapasdel ejrcito; tambin contrataron sus serviciosparticulares como la ACNielsen Company y laPrudential Insurance Company.

    UNIVAC fue la primera computadora comercial estadounidense y fue diseada desde elprincipio para su uso en administracin y negocios (es decir, para la ejecucin rpida degrandes cantidades de datos, con operaciones aritmticas relativamente simples, adiferencia de los clculos numricos complejos requeridos por las computadorascientficas).

    2.3. Segunda generacin: circuitos transistorizados (1957-1964).

    El transistor (palabra surgida por la contraccin de Transfer Resistor),es un elemento de silicio o germanio inventado por los LaboratoriosBell Telephoneen 1947, que acab sustituyendo a los tubos de vaco (ovlvulas), debido a la gran diferencia de sus prestaciones: tamaominsculo, menor coste y menor consumo elctrico, generando astambin menos calor. La vida til del transistor no tiene comparacintampoco, ya que es prcticamente ilimitada, mientras que las vlvulasdeban ser reemplazadas con mucha frecuencia.

    Las primeras computadoras construidas completamente a base de transistores fueronintroducidas por las compaas NCR(NCR 304, en 1957) y RCA(RCA 501, en 1958). Sinembargo, IBM cre los modelos ms populares, logrando una cuota de mercado del 70%en la dcada de los 60. El primer modelo de IBM que empleaba transistores fue el IBM

    7090, creado a finales de 1958.

    Durante el perodo que engloba la segunda generacin tiene lugar tambin la ampliacinde las memorias internas y el uso de perifricos de gran capacidad de memoria como lostambores y discos magnticos.

    Aparecen los lenguajes ensambladores que traducen las instrucciones del cdigomquina y aparecen lenguajes de alto nivel, cuyas instrucciones se parecen ms allenguaje natural. Los ms representativos de esa poca son:

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    18/32

    ENTORNOS DE DESARROLLO 18

    FORTRAN, contraccin de las palabras inglesas Formula Translator (traductor defrmulas), lenguaje empleado sobre todo en aplicaciones cientficas, fuedesarrollado entre 1954 y 1957 por la compaa IBM.

    LISP, acrnimo de LISt Processing (procesamiento de listas), creado en 1958 porJohn McCarthy en el Instituto Tecnolgico de Massachusetts (MIT). McCarthyintrodujo en 1956, en una conferencia en Dartmouth, el concepto de InteligenciaArificial.

    COBOL, acrnimo de COmmon Business Oriented Language (lenguaje comnorientado a negocios), orientado hacia la informtica de gestin empresarial y quese desarroll con la intencin de lograr un lenguaje estndar, debido a las mltiplesincompatibilidades de los equipos de la poca.

    ALGOL, que proviene del ingls Algorithmic Language (lenguaje algortmico). Suuso era bastante extendido en las universidades, pero no tuvo aceptacin comolenguaje de utilizacin comercial.

    En 1963 el Comit Estadounidense de Estndares (ASA, que en 1969 tomara el nombrede Instituo Estadounidense de Estndares Nacionales, o ANSI) aprueba el cdigo ASCII ,acrnimo ingls de American Standard Code for Information Interchange (cdigo estndaramericano para el intercambio de informacin), basado en el uso anglosajn del alfabetolatino. Su origen se encuentra en los conjuntos de cdigos usados hasta entonces entelegrafa. En 1967 se incluyeron las minsculas, y se redefinieron algunos cdigos decontrol para formar el cdigo conocido como US-ASCII.

    2.4. Tercera generacin: circuitos integrados (1964-1974).

    En 1959, el ingeniero elctrico estadounidense Jack St. Claire Kilby(1903-2005) inventel circuito integrado cuando trabajaba para la empresa Texas Instruments. Logro que

    sent los cimientos conceptuales y tcnicos para todo el campo de la microelectrnica yque en los aos 80 llevara al desarrollo de los microprocesadores.

    Un circuito integrado (CI), es una pastilla pequea desilicio,de algunos milmetros cuadrados de rea, sobre la que sefabrican circuitos elctricos y que est protegida dentro de unencapsulado de plstico o cermica. El encapsulado poseeconductores metlicos apropiados para hacer conexin entrela pastilla y un circuito

    http://es.wikipedia.org/wiki/Siliciohttp://es.wikipedia.org/wiki/Silicio
  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    19/32

    ENTORNOS DE DESARROLLO 19

    Este hecho permiti por un lado abaratar costes y por el otro, aumentar la capacidad deprocesamiento reduciendo el tamao fsico de las mquinas. Por su contribucin aldesarrollo de la tecnologa de la informacin, en el ao 2000 Kilby fue galardonado con elPremio Nobel de Fsica.

    Se considera como inicio de la tercera generacin el ao 1964, cuando el 7 de abril IBMpresenta el IBM S/360. Tena la capacidad de realizar tanto anlisis numricos comoadministracin y procesamiento de archivos y contaba con unidades de cinta magntica

    de nueve canales y paquetes de discos magnticos.

    La serie 360 fue la primera tambin en utilizar unSistema Operativo, el OS/360, en diferentes versionessegn el modelo, dotando as a la mquina decapacidad de multiprogramacin, al permitir ejecutarms de un programa simultneamente.

    Durante el perodo que representa la tercera generacin se estandarizaron los lenguajesde programacin ms utilizados como el FORTRAN (1966), el ALGOL (1968) y el COBOL(1970). Tambin aparecieron lenguajes nuevos, como el BASIC (1964) o el PASCAL(1970).

    El 21 de noviembre de 1969 se realiza la primera interconexin de computadoras, atravs de una red, entre la Universidad de California y el Instituto de Investigaciones deStanford. Fue un proyecto llamado ARPANET (Advanced Research Projects AgencyNetwork), desarrollado por la DARPA (Agencia de Investigacin de Proyectos Avanzadosde Defensa). El 5 de diciembre de ese mismo ao lograron interconectar cuatro nodos: elInstituto de Investigaciones de Stanford, la Universidad de California de Los ngeles, laUniversidad de California Santa Brbara y la Universidad de Utah.

    1969es la fecha tambin del desarrollo final del sistema operativo UNIX,cuyas siglasprovienen de UNiplexed Information and Computing System, ejecutado por primera vez en

    1970 en una mquina PDP 11/20. El proyecto estaba liderado por el cientfico KennethLane Thompsony el fsico Dennis MacAlistair Ritchie, quien escribira en 1972 el lenguajede programacin C para el sistema, lo que le dara portabilidad para ser instalado endiferentes ordenadores con unos pequeos cambios.

    En 1973, el presidente de Intel, Gordon Moore, postula la famosa ley de Moore quepredeca que el nmero de transistores en las CPU se duplicaran cada 18 meses, lo quese ha venido cumpliendo hasta la actualidad.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    20/32

    ENTORNOS DE DESARROLLO 20

    2.5. Cuarta generacin: circuitos integrados (1974-actualidad).

    La cuarta generacin de ordenadores se considera iniciada con la aparicin delmicroprocesador,invento que permitira luego la creacin del ordenador personal (PC).En 1974, la empresa estadounidense Intel Corporation present el modelo demicroprocesador 8080. Contena 4.500 transistores y poda manejar 64k de memoriaRAM a travs de un bus de datos de 8 bits.

    El 8080 fue el cerebro del primer ordenadorpersonal (PC), el Altair 8800, fabricado por lacompaa MITS (Micro InstrumentationTelemetry Systems), promoviendo un gran

    inters en hogares y pequeos negocios a partirde enero de 1975, cuando apareci publicitadaen la revista Popular Electronics y se vendacomo un kit.

    El primer lenguaje de programacin para la mquina fue el Altair BASIC, escrito porWil l iam Henry Gates y Paul Al len, quienes inmediatamente despus fundaranMicrosof t.El Sistema Operativo que utilizaba el Altair 8800 era el CP/M (Control Programfor Microcomputers), escrito por Gary Kildall.

    En 1976, Steve Wozniak (entonces ingeniero en Hewlett-Packard) y Steve Jobs (quetrabajaba en Atari) fabrican en el garaje de la casa de Jobs, la microcomputadora Apple Iy fundan, en abril de 1976, la empresa Apple Computers.

    El Apple I se construa manualmente, y no lleg a ser vendido masivamente, pero con eldesarrollo a partir de 1977 delApple II, la compaa de Wozniak y Jobs lleg a tener unaalta cuota de mercado, solamente superada por IBM.

    En 1980 Tim Paterson, programador de SCP (Seattle Computer Products), desarroll unsistema operativo conocido como 86-DOS(Disk Operating System, sistema operativo dedisco). En un principio se le llam QDOS (Quick and Dirty Operating System, sistema

    operativo rpido y sucio), se basaba en el CP/M para un procesador Intel 8086.

    Microsoft le compr por 50.000 dlares el Sistema Operativo y lo adapt a losrequerimientos que IBM deseaba para su novedoso modelo IBM PC. Microsoft se reservla patente y en 1984 eran ya 200 las marcas que haban adquirido una licencia de MS-DOS, lo que supondra el principio del casi-monopolio de Microsoft. IBM, por su parte,acrecent su liderazgo en el mercado con su PC (Personal Computer, ordenadorpersonal), vendiendo ms de 65.000 unidades el primer ao y acercando la figura delordenador a la sociedad y a los hogares con los modelos sucesivos.

    La privatizacin masiva que estaba sufriendo el software en la poca llev a Richard

    Matthew Stallmana desarrollar, a partir de 1983, un proyecto de creacin y difusin desoftware libre, denominado GNU(acrnimo de GNU is Not UNIX, GNU no es UNIX). Su

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    21/32

    ENTORNOS DE DESARROLLO 21

    finalidad era el desarrollo de un sistema operativo totalmente libre. En 1985 promovera elnacimiento de la FSF (Free Software Foundation, fundacin para el software libre).

    En noviembre de 1985 aparece la primera versin del sistema operativo Windows

    (1.0), que posibilitaba el uso de una interfaz grfica para los PC's de IBM, que desdehaca un ao ya ofrecan los modelos Macintosh (Mac) de Apple. Microsoft siguilanzando al mercado sucesivas versiones del sistema operativo, como Windows NT(1992), Windows 95 (1995), Windows 98 (1998), Windows 2000 (2000), Windows XP(2001), Windows Vista (2007) y Windows 7 (2009). Actualmente se estima que alrededordel 95% de los ordenadores usan alguno de estos sistemas operativos.

    En 1992, el ingeniero informtico finlands Linus Benedict Torvalds desarrolla elsistema operativo Linux, cuyo cdigo fuente es de libre acceso y supuso un hito para elmovimiento del software libre. Sistema Operativo que sigue en uso actualmente conconstantes mejoras y cambios del cdigo por parte de los programadores de todo el

    mundo, surgiendo as tambin diferentes versiones o sabores en terminologa Linux.Tambin en1992fue la presentacin pblica del sistema global de hipertextosiniciadopor el fsico ingls Timothy John Berners-Lee mientras trabajaba en proyectos deinvestigacin en el CERN de Ginebra. El sistema de hipertexto es el que ha posibilitado laexpansin de la world wide web (www), tal y como la conocemos hoy en da.

    2.6. Quinta generacin?

    En octubre de 1981, el mundo de los ordenadores se vio sacudido por el anuncio hechoen Japn de una iniciativa de investigacin y desarrollo orientada a producir una nuevageneracin de ordenadores en la primera dcada de los aos de los 90, a los que se lesdio el nombre de ordenadores de quinta generacin.

    Los ordenadores de esta generacin deberan de ser capaces de resolver problemas muycomplicados, algunos de los cuales requeriran la capacidad de razonamiento de laspersonas para ser resueltos. Deberan de ser capaces de trabajar con grandessubconjuntos de los lenguajes humanos y estar asentados en grandes bases de datos deconocimiento y deberan poder ser manejados por personas no expertas en informtica.

    Para conseguir estos fines tan ambiciosos estos equipos no tendrn un nico procesador,sino un gran nmero agrupado en tres subsistemas fundamentales: un sistemainteligente, un mecanismo de razonamiento y una interfaz de usuario inteligente.

    Actualmente no estn desarrollados estos ordenadores, por lo que se considera a estageneracin como fallida.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    22/32

    ENTORNOS DE DESARROLLO 22

    3. GENESIS DEL DESARROLLO DE APLICACIONES

    En este apartado se presentarn los porqus y el cmo del proceso de desarrollo desoftware, las distintas fases que ha atravesado a la largo de la historia reciente la forma en

    que se desarrollaban los programas informticos.

    Un proceso software es un conjunto de actividades y resultados que conducen a lacreacin de un producto software

    3.1. El proc eso de desarroll o de so ftw are en los Aos 60 y 70

    Desde una perspectiva histrica, el mercado de software apenas exista en los aos60-80 del siglo pasado. El software bsico se compraba al fabricante dela mquina (Sistema Operativo, Compilador, Sort, etc), Haba algn software depropsito general de fabricantes independientes (Bases de Datos, algn programa degestin de ficheros, y poco ms), y casi ningn Software de Aplicacin.

    En una palabra, todos los programas de gestin de las empresas estaban hechos exprofeso para las propias empresas, y casi siempre por personal de las propiasempresas que pertenecan al llamado entonces Departamento de Proceso de

    Datos.

    Las tareas eran casi artesanales, hechas a mano.

    Generalmente, aunque no siempre, haba una persona (Anal ista Funcio nal oJefe de Proyecto era su denominacin ms habitual), que se ocupaba de lacomunicacin con usuarios, como Contabilidad, Cuentas Corrientes, Prstamos, etc.Esta figura, se encargaba de recibir peticiones del Usuario, proponer soluciones y dirigiral equipo de programadores que deban programarla. Una vez consensuada laAplicacin, realizaba el Anlisis Funcional que era la descripcin ms o menos

    ordenada de las funciones que debe cubrir el Sistema de Informacin a disear.Este proceso, como se comentaba antes, era artesanal o al menos bastante informal.No se segua ningn mtodo preestablecido ni se generaba una documentacin segnuna estructura prediseada al efecto. No haba extensos documentos de justificacin degastos.

    El personal encargado del desarrollo era personal de la propia empresa

    (generalmente bancos), de las reas administrativas (cajeros, auxiliares, etc), que eranseleccionados para ser formados especficamente en el ordenador que haba

    adquirido la empresa, durante varios meses.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    23/32

    ENTORNOS DE DESARROLLO 23

    El desarrollo se realizaba por dos o tres programadores al servicio de cada jefe deproyecto o analista funcional. No era difcil decidir quin se encargaba de qu ni hacer elseguimiento al proyecto.

    El software se pona en produccin tras unas pruebas y el mismo equipo daba elsoporte (mantenimiento).

    Las bases de datos tenan escasas capacidades, se encontraban en los albores y lamayor parte de la informacin se almacenaba en ficheros secuenciales almacenadosen cinta magntica.

    Una de las herramientas de diseo era el diagrama de flujo u ordinograma, a veces

    mal llamado organigrama que defina las secuencias lgicas del programa. Se

    realizaba casi siempre a mano.

    Ilustracin 1: Diagrama de flujo

    En cualquier caso, los saltos de un lado a otro del flujo, segn las condiciones que se

    fueran satisfaciendo, se pintaban con flechitas, que tendan a entremezclarse y volar dearriba abajo, de derecha a izquierda y, en realidad, en todas direcciones ... de ah la

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    24/32

    ENTORNOS DE DESARROLLO 24

    denominacin decdigo spaghettipara los programas resultantes (frente al cdigoestructurado que surgir posteriormente).

    Una vez hecho el ordinograma (ms o menos detallado, segn la experiencia y habilidad

    del programador), se comenzaba a codificarlo, es decir, a traducirlo al lenguaje que elordenador entiende (Algol, Cobol, Fortran o lo que fuera). El programa se escriba amano en fichas que luego se transformaban en tarjetas perforadas. Esas tarjetas setraducan a cdigo mquina durante la compilacin, que era lo que se ejecutaba en laspruebas.

    3.2. El pr oc eso de desarroll o de so ftw are en lo s Aos 80

    3.2.1. Mejora tecnolgica

    A medida que la tecnologa progresaba, fue posible desarrollar aplicaciones mscomplejas por los que se hizo posible que ciertas necesidades pudieran ahora por fin sercubiertas mediante el desarrollo de software.

    Aparecen las bases de datos relacionales, que mejoran y racionalizan eltratamiento de datos, cambiando la filosofa en el diseo de aplicaciones.

    Aparece la programacin estructurada.

    El diseo de aplicaciones cada vez ms complejas necesitaba equipos depersonas ms numerosospara su implementacin.

    En esa situacin, haba que asegurarse, en lo posible, de que tanto elprocedimiento de Diseo de las Aplicaciones como la Documentacin asociadaestuvieran formalizados, uniformizados, reglamentados, constreidos, de tal modoque cualquier persona pudiera leer, comprender y, llegado el caso, modificar cualquierAplicacin sin necesidad de apelar a la memoria o el conocimiento de su creador.

    Lo realizado por un informtico, cualquiera que sea su posicin en la cadena dedesarrollo (jefe de proyecto, analista, programador, etc, ...), deba quedardocumentado mediante alguna manera que hiciera posible a otra persona

    retomar el trabajo del informtico anterior. Si al El Hombre-Aplicacin, esa

    persona que llevaba la Aplicacin de Nminas en la cabeza, igual que los Hombres-Libro le daba por irse de vacaciones, o enfermar, igual no se poda pagar la Nmina.Esta era una situacin que se daba con alguna frecuencia, y que las empresas noestaban dispuestas a que volviera a ocurrir en el futuro.

    Haba que implantar un procedimiento de Diseo, Construccin y Documentacinque permitiera eliminar a los Hombres-Aplicacin. Y para ello, se necesitaba, en primerlugar, un Mtodoque dijera qu haba que hacer, y qu no; en segundo lugar, unas

    Tcnicas de uso comn para realizar Anlisis, Diseo, y Programacin (aunque estaltima ya estaba bastante formalizada); y en tercero, a ser posible, un Sistema de

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    25/32

    ENTORNOS DE DESARROLLO 25

    algn tipo que se asegure que las Normas del Mtodo se cumplen y las Tcnicas seaplican.

    3.2.2. Nacimiento de las metodologas

    Estas necesidades bsicas son solucionadas, como habis intuido, por lasMetodologas de Desarrollo de Software, por las Tcnicas de Anlisis y Diseo,y por las Herramientas CASE (Computer Aided Software Engineering, Ingenierade Software Asistida por Ordenador), respectivamente.

    Las metodologas, en su mayora, fueron promovidas por ciertos Gobiernos para

    asegurar el cumplimiento de las especificaciones y, sobre todo, de los costes de losgrandes proyectos contratados por la Administracin.

    Por otro lado, el mantenimiento de aplicaciones era un serio problema, y tena toda lapinta de convertirse en El Problema. Aqu tenemos un grfico de los costes decualquier gran Aplicacin a lo largo del tiempo.

    Ilustracin 2: Curva de coste del Software

    Una vez puesta en marcha (puesta en produccin) la aplicacin comienza sufase de mantenimiento (la zona naranja), que supondr seguramente, a lo largo detoda la Vida de la aplicacin, entre un 75% y un 90% del coste total dedicado a dichaAplicacin a lo largo de su vida til.

    La consecuencia a la que se lleg es que no hay que escatimar esfuerzos durante la

    etapa inicial de Diseo y Construccin de la Aplicacin para reducir todo loposible el coste del Mantenimiento posterior.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    26/32

    ENTORNOS DE DESARROLLO 26

    Una segunda vuelta de tuerca consista en la bsqueda y construccin de laherramienta CASEideal en la que, introducidas de alguna manera las premisas de laaplicacin, se generase todo el diseo, documentacin y el desarrollo, amn defacilitar el mantenimiento. Varias decenas de aos despus y unos cientos deherramientas, la bsqueda contina an hoy.

    Desde luego se es el ideal del empresario, encontrar una herramienta que pueda sermanejada por personal poco especializado (y barato), para generar complejasaplicaciones.

    Las primeras herramientas fueron meras ayudas a la programacin, ayudando a

    hacer el trabajo ms rpido y facilitando la deteccin y eliminacin de errores

    del cdigo (depuracin). Editores y depuradores de programas sobre pantalla se

    encargaban de esa labor

    Mtodos o Tcnicas y herramientas de diseo

    Varios ingenieros de la computacin estaban atacando ya (de hecho, llevaban algunosaos en ello) el problema siguiente al de cmo realizar eficientemente la Programacin,es decir: cmo realizar el Diseo de los Sistemas? Hacer tanto el DiseoTcnico (Bases de Datos, Transacciones, Procesos Batch...) como el propio AnlisisFuncional, de alguna manera ciertamente ms formal que simplemente escribir ladocumentacin

    Uno de los esfuerzos vino de Michael Jackson1, que en 1983 public su libroSystem Development, en el que presenta su mtodo JSD de programacinestructurada, aunque ya estaba dando cursos y seminarios sobre el asunto desdehaca un par de aos.

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    27/32

    ENTORNOS DE DESARROLLO 27

    En realidad JSD es una extensin de su mtodo de Estructuracin de Programas,esta vez orientado al Diseo de los Sistemas. No tuvo excesivo xito (veremos quelleg algo tarde), pero nuevamente Jackson hizo una formalizacin extraordinaria: sumtodo fue el primero que estableci que los Sistemas deben ser diseados apartir de las Salidas (es decir, los resultados esperados). Todos los procesos, losdatos necesarios, etc, son la consecuencia lgica de conocer para qu debe servirnuestro sistema, es decir, qu es lo que esperamos que haga el sistema, lo que debede producir, en definitiva: las salidas. No tuvo el xito debido a que lleg tarde.

    Otra tcnica de programacin estructurada que parta de los datos fue Warnierr-Orr.Tanto JSD como Warnier reducan las estructuras o bloques programables a tres:Iteracin, Seleccin y Secuencia, eliminando los saltos incondicionales, rupturas dela secuencia del programa a capricho o sentencias GOTO.

    Anteriormente,Peter P. Chenhaba atacado con xito la problemtica de la modelizacinde los datos, mediante su tcnica Modelo de Entidad-Relacin (ERM), publicadoinicialmente tan pronto como en 1976, pero que no tuvo aceptacin real hasta quelas Bases de Datos Relacionales no comenzaron a invadir las instalaciones de todo elmundo, a mediados de los ochenta. Esta forma de modelizar los datos fue adoptada porvirtualmente todos los mtodos de Desarrollo de Aplicaciones de entonces (y de ahora),debido a su consistencia y, sobre todo, a su facilidad de aprendizaje y comprensin.

    Ilustracin 5: Modelo E-R extendido

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    28/32

    ENTORNOS DE DESARROLLO 28

    Pero haba otros gurs que pensaban justo lo contrario que Jackson y Chen: que loimportante de las aplicaciones no son los datos, sino los Procesos , es decir,conocido lo que hay que hacer, los datos necesarios para hacerlo se hacen evidentes,pues son el subproducto de los procesos.

    Edward Yourdon y Tom de Marco propusieron esta Tcnica de Anlisis y DiseoEstructurado, que se basa en una aproximacintop-downal problema del Diseo delos Sistemas de Informacin: comenzar con el diagrama ms general, e irdescomponiendo el Sistema desde lo ms general a lo ms particular. El resultado sonlosDiagramas de Flujo de Datos(DFDs)

    Ilustracin 6: Ed Yourdon y Tom de Marco

    Ilustracin 7: Ejemplo de un DFD

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    29/32

    ENTORNOS DE DESARROLLO 29

    En los DFD, las burbujas indican una accin (vase que contienen siempre un verbo),esto es, una accin o mejor, un proceso. Las flechas son los flujos o movimientos delos datos, que pueden recibirse o enviarse a otros procesos o bien recuperarse oalmacenarse en los almacenes indicados con dos lneas paralelas (en la figuraanterior, PARAMETROS es un almacn de datos).

    Uno de los personajes ms importantes de la informtica del siglo pasado, el britnicoJames Martin,se adhiri pronto y de modo estusiasta a las tcnicas de modelizacin,y cre, o quiz slo la adopt y dio a conocer, en 1981, la Metodologa IE(InformationEngineering), que tuvo casi de inmediato una muy buena aceptacin. Us las dostcnicas de modelizacin antes mencionadas: la de procesos, va los DFDs, y la dedatos, va los ERDs.

    Ilustracin 8: James Martin

    A raz de la publicacin de los mtodos grficos anteriores surgieron las herramientasCASE que facilitaban su uso de modo automatizado.

    Ilustracin 9: Notacin Martin de un modelo de datos

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    30/32

    ENTORNOS DE DESARROLLO 30

    3.3. La era de las Metodologas

    Una metodologa abarcar todo el proceso completo desde la concepcin de la

    aplicacin a desarrollar hasta su retirada, incluyendo la fase de mantenimiento,esto es, abarca todo el ciclo de vida del software y especifica al detalle cada paso.

    La metodologa especifica al detalle y de modo sistemtico:

    Cmo se debe dividir un proyecto en etapas. Qu tareas se realizan en cada etapa. Qu salidas se producen y cundo se deben producir. Qu restricciones se

    aplican. Qu herramientas se van a utilizar. Cmo se gestiona y controla un proyecto.

    La metodologa normalmente consistir en un conjunto de fases descompuestas ensubfases (mdulos, etapas, pasos, etc.) de forma que esta descomposicin gue a losdesarrolladores en la eleccin de las tcnicas que se debe elegir para cada estadodel proyecto, facilitando la planificacin, gestin, control y evaluacin de los proyectos.

    Una definicin de metodologa podra ser el conjunto de filosofas, fases,

    procedimientos, reglas, tcnicas, herramientas, documentacin y aspectos deformacin para los desarrolladores de sistemas de informacin (Maddison 1983).

    3.3.1. Metodologas de enfoque estructural

    A partir de los aos 80 en, EEUU, se comienzan a utilizar metodologas de desarrollo,primero de forma tmida, luego con cada vez mayor aceptacin. Todas ellas se basanen mayor o menor medida en la programacin estructurada o el anlisis estructuradoque ha desarrollado en el apartado anterior..

    En Europa, se desarrollaron mientras tanto unas metodologas globales que recogieronel paso a paso, usando diversas tcnicas y mtodos, del desarrollo y mantenimientode un producto software. Nacieron de mano de las Administraciones Pblicas de cadapas.

    En Francia exista desde haca unos aos (mediados de los setenta) la metodologaMerise, en principio una relacin (exhaustiva, eso s) de pasos y tareas con algunatcnica manual sencilla, y que tambin a principios de los ochenta se enriqueci con lasnuevas tcnicas de modelizacin de Datos y Procesos; se trata de un mtodo francs,

    pensado por y para franceses, y que tuvo pocos seguidores fuera del mundofrancfono, pero como la Administracin francesa exigi el uso de Merise para la

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    31/32

    ENTORNOS DE DESARROLLO 31

    contratacin de proyectos informticos desde muy pronto (principios de los ochenta),se convirti en el standard de factoen el mercado francs en el final de la dcada delos ochenta.

    En el Reino Unido, en la misma poca, se estaba gestando SSADM,que adoptentre sus tcnicas a una mezcla de varios de los incipientes mtodos de anlisisestructurado del momento, en particular los de Yourdon, De Marco, Jackson y Constantine, que fueron incorporados desde el principio al mtodo, se supone quetomando lo mejor de cada uno de ellos. A partir de 1983, tambin se hizo obligatorio eluso de SSADM para poder contratar proyectos para la Administracin britnica, por loque fue ampliamente seguida en el Reino Unido, y despus tambin en el resto deEuropa.

    Y en Espaa? A mediados de los ochenta, el Ministerio de Administraciones

    Pblicas comenz el desarrollo de una Metodologa Espaola (a imagen y semejanza dela francesa y la britnica), que recibi el nombre deMtrica.Participaron diferentesOrganismos de la Administracin, y se encarg su realizacin final a una consultora(Coopers & Lybrand, que por entonces no estaba an fusionada con Price Waterhouse,ni mucho menos con IBM, como ahora lo est). Se encuentra muy poca documentacinde Mtrica en Internet, y la poca que hay es de la versin 3, ya de fines de los noventa aqu2.

    Mtrica se pareca, inicialmente, a SSADM, pero se le aliger de bastantes pasosburocrticos, para adaptarlo ms a nuestra mentalidad, aunque se aadieron algunosotros. Result una Metodologa moderna y muy bien fundada. En cuanto a tcnicas,bsicamente usaba las mismas que los dems, ERD, DFD, Diseo Estructurado... A laversin 1 sigui la versin 2... y, por fin, la actual versin 3, desarrollada en la segundamitad de los noventa, que incorpora ya las ltimas novedades(Orientacin a Objetos,UML,etc).

    3.3.2. Metodologas orientadas a objetos

    En los aos 90 surgieron nuevos paradigmas, formas nuevas de concebir el anlisisy la implementacin de programas y bases de datos, tales como la orientacin aobjetos, lo que cambi en gran medida la perspectiva del desarrollo y, por extensin, laconcepcin de todo el ciclo del proyecto software.

    El paradigma orientado a objetos, a diferencia del enfoque estructurado, trata losprocesos y los datos de forma conjunta, esto es, modula tanto la informacin como elprocesamiento. La orientacin a objetos empieza con los lenguajes de programacinorientados a objetos (LOO) . En estos lenguajes se daba nfasis a la abstraccin de

    datos y los problemas del mundo real se representaban como un conjunto de objetos de

  • 7/25/2019 UD01 T01 1 Introduccion Al Desarrollo de Software

    32/32

    ENTORNOS DE DESARROLLO 32

    datos para los que se adjuntaban un conjunto de operaciones (SIMULA, Smaltalk comoprototipos y ADA, C++, Smaltalk y ObjetiveC como lenguajes de desarrollo).

    Entre las metodologas clsicas de anlisis y diseo estructurado y las de orientacin

    al objeto existe un cambio de filosofa apreciable. Mientras en las primeras seexaminan los sistemas desde el punto de vista de las funciones o tareas quedeben realizar (tareas que se van descomponiendo sucesivamente en otras tareasms pequeas y que forman los bloques o mdulos de las aplicaciones), en laorientacin al objeto cobra mucha ms importancia el aspecto de modelado delsistema, examinando el dominio del problema como un conjunto de objetos queinteractan entre s.

    En las metodologas tradicionales se produce una dicotoma entre los doselementos constituyentes de un sistema: las funciones que llevan a cabo los programas

    y los datos que se almacenan en ficheros o en bases de datos.

    Sin embargo, la orientacin al objeto intenta obtener un enfoque unificador de ambosaspectos, que se encapsulan en los objetos.

    Se profundizar en temas posteriores.