{"id":439,"date":"2007-07-05T00:00:03","date_gmt":"2007-07-05T04:00:03","guid":{"rendered":"http:\/\/www.hamburgueta.com\/wordpress\/2007\/07\/05\/%c2%bfcomo-fue-que-los-computadores-llegaron-a-ser-parte-de-nuestra-sociedad-5\/"},"modified":"2012-08-25T22:47:46","modified_gmt":"2012-08-26T02:47:46","slug":"%c2%bfcomo-fue-que-los-computadores-llegaron-a-ser-parte-de-nuestra-sociedad-5","status":"publish","type":"post","link":"https:\/\/www.hamburgueta.com\/wordpress\/2007\/07\/05\/%c2%bfcomo-fue-que-los-computadores-llegaron-a-ser-parte-de-nuestra-sociedad-5","title":{"rendered":"\u00bfC\u00f3mo fue que los computadores llegaron a ser parte de nuestra sociedad? (5)"},"content":{"rendered":"<div class=\"pps-series-post-details pps-series-post-details-variant-classic pps-series-post-details-6279\" data-series-id=\"90\"><div class=\"pps-series-meta-content\"><div class=\"pps-series-meta-text\">This entry is part 5 of 6 in the series <a href=\"https:\/\/www.hamburgueta.com\/wordpress\/series\/cs\"><span class=\"caps\">CS<\/span><\/a><\/div><\/div><\/div><p>Estuvo muy bonito eso de tener <a href=\"https:\/\/www.hamburgueta.com\/wordpress\/2007\/04\/26\/%c2%bfcomo-fue-que-los-computadores-llegaron-a-ser-parte-de-nuestra-sociedad-4\/\" target=\"_blank\">lenguajes<\/a> para poder pedirle a la m\u00e1quina que haga lo que&nbsp;uno quiera.&nbsp;\u00bfQu\u00e9 se le puede pedir a la m\u00e1quina que&nbsp;haga?<\/p>\n<p>En un principio, calcular. Los cient\u00edficos quer\u00edan calcular trayectoras, para aplicaciones militares \/ aeroespaciales, modelos estoc\u00e1sticos, modelos de optimizaci\u00f3n, simulaciones, fuerzas y tensiones en estructuras.<\/p>\n<p>Pronto se dieron cuenta de algo. El hardware <a href=\"http:\/\/en.wikipedia.org\/wiki\/Moore%27s_Law\" target=\"_blank\">evolucionaba mucho m\u00e1s r\u00e1pido<\/a> que lo que le pod\u00edan sacar provecho con el software. \u00bfPor qu\u00e9? Porque el desarrollo de aplicaciones no le alcanzaba el&nbsp;ritmo.<\/p>\n<p>Los sintomas: Proyectos que no lograban sus metas de tiempo, costo y calidad. Proyectos cancelados, abortados, o que entregaron bastante menos de lo prometido.<\/p>\n<p>Era necesario reconocer que las pr\u00e1cticas de desarrollo a la fecha no eran disciplinadas. En el tiempo de los gur\u00fas, unos pocos especialistas realmente eran capaces de programar las m\u00e1quinas. Hacer <a href=\"http:\/\/en.wikipedia.org\/wiki\/Debugging\" target=\"_blank\">depuraci\u00f3n<\/a> era todo un arte. Y nadie \u2018de la oficina\u2019 era capaz de intervenir en esa \u00e1rea t\u00e9cnica.<\/p>\n<p>Pas\u00f3 el tiempo de los gur\u00fas, hab\u00eda m\u00e1s programadores, las m\u00e1quinas eran m\u00e1s baratas, pero el estado del arte de los equipos de programadores no estaba a la altura de las necesidades. Pronto aparecieron proyectos con decenas, cientos, y miles de participantes, y todos se preguntaban \u00bfc\u00f3mo administro estos proyectos para lograr las metas? En 1968 a esto se le denomin\u00f3 la <a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_crisis\" target=\"_blank\">Crisis del Software<\/a>.<\/p>\n<p>Los interesados en superar esta situaci\u00f3n comenzaron a trabajar en lo que hoy se conoce como <strong><a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_engineering\" target=\"_blank\">ingenier\u00eda de software<\/a><\/strong>.<\/p>\n<p>\u00bfDe qu\u00e9 se hace cargo esta disciplina? De dos cosas: a) de los aspectos t\u00e9cnicos de desarrollar software. b) de los aspectos administrativos de desarrollar software.<\/p>\n<p><strong>Aspectos t\u00e9cnicos<\/strong><\/p>\n<p>Responde a las siguientes preguntas: \u00bfc\u00f3mo entender lo que necesita el cliente? \u00bfc\u00f3mo especificar estas necesidades de una manera tal que los especialistas puedan desarrollar software? \u00bfc\u00f3mo dise\u00f1ar software a partir de estas especificaciones? \u00bfc\u00f3mo desarrollar software? \u00bfc\u00f3mo verificarlo y validarlo? \u00bfc\u00f3mo ponerlo en marcha? \u00bfc\u00f3mo operarlo y mantenerlo?<\/p>\n<p>Esas preguntas abarcan el <a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_development_process\" target=\"_blank\">ciclo de vida del software<\/a>. Para realizar esas actividades, nacieron los procesos de software, y se adaptaron los diversos&nbsp;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Programming_paradigm\" target=\"_blank\">paradigmas de desarrollo<\/a> (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Procedural_programming\" target=\"_blank\">estructurado<\/a>, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Object-oriented_programming\" target=\"_blank\">orientado a objetos<\/a>,&nbsp;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Functional_programming\" target=\"_blank\">funcional<\/a>, etc.).<\/p>\n<p>De particular inter\u00e9s hoy es&nbsp;un tema de la <a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_architecture\" target=\"_blank\">arquitectura de software<\/a>: el reuso. \u00bfC\u00f3mo organizar el software en diversas unidades (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_componentry\" target=\"_blank\">componentes<\/a>), de tal manera de no tener que escribirlas siempre desde cero? Las respuestas sucesivas fueron el <a href=\"http:\/\/en.wikipedia.org\/wiki\/Static_library\" target=\"_blank\">linkeo est\u00e1tico<\/a>, el <a href=\"http:\/\/en.wikipedia.org\/wiki\/Dynamic_linking#Dynamic_linking\" target=\"_blank\">linkeo din\u00e1mico<\/a> (las <span class=\"caps\">DLL<\/span>), frameworks como <a href=\"http:\/\/en.wikipedia.org\/wiki\/Microsoft_Foundation_Class_Library\" target=\"_blank\"><span class=\"caps\">MFC<\/span><\/a>, y luego elementos m\u00e1s aut\u00f3nomos, como <a href=\"http:\/\/en.wikipedia.org\/wiki\/Object_Linking_and_Embedding\" target=\"_blank\"><span class=\"caps\">OLE<\/span><\/a> y <a href=\"http:\/\/en.wikipedia.org\/wiki\/Component_Object_Model\" target=\"_blank\"><span class=\"caps\">COM<\/span><\/a>.&nbsp;Con la llegada de las redes, comenz\u00f3 a nacer el concepto de componentes distribuidos, con <a href=\"http:\/\/en.wikipedia.org\/wiki\/Remote_procedure_call\" target=\"_blank\"><span class=\"caps\">RPC<\/span><\/a>, <a href=\"http:\/\/en.wikipedia.org\/wiki\/Common_Object_Request_Broker_Architecture\" target=\"_blank\"><span class=\"caps\">CORBA<\/span><\/a>, y <a href=\"http:\/\/en.wikipedia.org\/wiki\/Distributed_Component_Object_Model\" target=\"_blank\"><span class=\"caps\">DCOM<\/span><\/a>. Todo esto evolucion\u00f3 a lo que hoy conocemos como <a href=\"http:\/\/en.wikipedia.org\/wiki\/Service-oriented_architecture\" target=\"_blank\">arquitectura de servicios<\/a>, con <a href=\"http:\/\/en.wikipedia.org\/wiki\/.NET_Framework\" target=\"_blank\">.<span class=\"caps\">NET<\/span><\/a> y <a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_Platform%2C_Enterprise_Edition\" target=\"_blank\"><span class=\"caps\">J2EE<\/span><\/a>.<\/p>\n<p><strong>Aspectos administrativos<\/strong><\/p>\n<p>Son m\u00e1s gen\u00e9ricos, y responden a preguntas tales como \u00bfc\u00f3mo administro uno o varios proyectos? \u00bfc\u00f3mo capacito al personal? \u00bfc\u00f3mo gestiono la calidad? \u00bfc\u00f3mo administro las distintas versiones de lo que se est\u00e1 desarrollando? \u00bfc\u00f3mo hago&nbsp;monitoreo y control de los proyectos? \u00bfc\u00f3mo adminsitro a proveedores?<\/p>\n<p>En los \u201980 se consensu\u00f3 que el problema central en la crisis del software es administrativo, no t\u00e9cnico. Por ello se desarroll\u00f3 lo que hoy se conoce como <a href=\"http:\/\/en.wikipedia.org\/wiki\/CMMI\" target=\"_blank\"><span class=\"caps\">CMMI<\/span><\/a>, que es un modelo de buenas pr\u00e1cticas para obtener una unidad de desarrollo de software cuyos proyectos terminan en tiempo y costo, a un nivel de calidad conocido y predecible, y que mejora en el tiempo.<\/p>\n<p>Todo lo conversado hoy est\u00e1 sistematizado en lo que se llama el <a href=\"http:\/\/en.wikipedia.org\/wiki\/Software_Engineering_Body_of_Knowledge\" target=\"_blank\">Software Engineering Body of Knowledge<\/a>.<\/p>\n<p>En la medida que todos tienen un computador a la mano, y que se puede conseguir herramientas de desarrollo gratuitas, pr\u00e1cticamente cualquiera puede ser hoy desarrollador de software. Un profesor de la universidad me dec\u00eda una vez que, cuando le contaba a un apoderado del colegio que \u00e9l trabajaba en el <a href=\"http:\/\/dcc.puc.cl\/\" target=\"_blank\">Departamento de Ciencia de la Computaci\u00f3n<\/a>, el otro respondi\u00f3 \u201cah, s\u00ed, mi hijo de segundo medio hace lo&nbsp;mismo\u201d.<\/p>\n<p>Este tipo de posibilidades abiertas hace que la superaci\u00f3n de la crisis del software a\u00fan no sea una realidad&nbsp;para la mayor\u00eda de las empresas que desarrollan o mandan a desarrollar software.<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"pps-series-post-details pps-series-post-details-variant-classic pps-series-post-details-6279 pps-series-meta-excerpt\" data-series-id=\"90\"><div class=\"pps-series-meta-content\"><div class=\"pps-series-meta-text\">This entry is part 5 of 6 in the series <a href=\"https:\/\/www.hamburgueta.com\/wordpress\/series\/cs\"><span class=\"caps\">CS<\/span><\/a><\/div><\/div><\/div><p>Estuvo muy bonito eso de tener lenguajes para poder pedirle a la m\u00e1quina que haga lo que&nbsp;uno quiera.&nbsp;\u00bfQu\u00e9 se le puede pedir a la m\u00e1quina que&nbsp;haga? En un principio, calcular. Los cient\u00edficos quer\u00edan calcular trayectoras, para aplicaciones militares \/ aeroespaciales, \u2026 <a href=\"https:\/\/www.hamburgueta.com\/wordpress\/2007\/07\/05\/%c2%bfcomo-fue-que-los-computadores-llegaron-a-ser-parte-de-nuestra-sociedad-5\">Continue reading <span class=\"meta-nav\">\u2192<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[5],"tags":[],"series":[90],"class_list":["post-439","post","type-post","status-publish","format-standard","hentry","category-tecnologias-de-informacion","series-cs"],"_links":{"self":[{"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/posts\/439","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/comments?post=439"}],"version-history":[{"count":1,"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/posts\/439\/revisions"}],"predecessor-version":[{"id":2869,"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/posts\/439\/revisions\/2869"}],"wp:attachment":[{"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/media?parent=439"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/categories?post=439"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/tags?post=439"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/www.hamburgueta.com\/wordpress\/wp-json\/wp\/v2\/series?post=439"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}