SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Tecnografía


DESARROLLO

El futuro de la ingeniería de
software




El diseño de programas a partir de información binaria significó un paso sustantivo para
la industria desarrolladora de software. Desde ese hallazgo, ocurrido en la década de
los cincuenta, hasta hoy, el crecimiento de metodologías para su desarrollo ha subido
notablemente en complejidad. Sin embargo, los circulos viciosos que acusa hoy la con-
fección de programas informáticos, impiden conceptualizar el objeto a un nivel superior
de abstracción, tal y como lo exige el avance tecnológico y los procesos de negocios. El
siguiente artículo sondea el futuro de la ingeniería, a la luz de su propia evolución.


Por Aleksandar Orlic.




L
         a calidad de los sistemas informá-    llo de sistemas, aumento de productividad     esta ingeniería, analizar su contexto actual
         ticos, satisfacción de sus usuarios   del ingeniero de software, mayor control      y, finalmente, proyectar hacia dónde se
         y clientes, son temas ampliamente     del proceso de desarrollo, establecimiento    dirige, es el pilar de este artículo.
conocidos, recurrentes y de constante pre-     de nuevos métodos de desarrollo. Estos ele-
ocupación por parte de los practicantes de     mentos, combinados y aplicados de buena       • algo de historia
la Ingeniería de software.                     forma, logran un buen proceso de desarro-
    Esta joven y dinámica ingeniería siem-     llo y, en definitiva, un buen producto.           La evolución del desarrollo de software
pre está en busca de mejoras en el desarro-         Identificar los pasos que ha recorrido   ha empezado por las tarjetas perforadas (Fig.


                                                                                                                                       Informática   35
Tecnografía

                                        1) en la década de       software creados hoy en día son los lla-            se propone es bastante natural: analizar la
                                        los cuarenta, cuan-      mados sistemas corporativos; es decir, son          situación actual de la ingeniería de software
                                        do los desarrollado-     orientados a formar una parte importante            en la luz de sus tendencias históricas.
                                        res debían conocer       de los negocios de las grandes empresas.                 La primera de ellas, relacionada con
                                        detalles de bajo              Continuando en nuestro contexto, se            los problemas que resuelven los sistemas,
                                        nivel de la máquina      identifica un nuevo enfoque del problema de         obviamente presente y muy utilizada en
                                        que ejecutaba los        desarrollo, el apoyo en la sincronización de los    nuestra realidad: los sistemas de hoy no
Fig. 1: Primeros programas computacio- programas. La so-         procesos de negocio, estructuras complejas          sólo resuelven los problemas del mundo
nales en formato de tarjeta perforada.  lución desarrollada      de información manejada por el negocio, todo        real, sino que están fuertemente influen-
                                        era para pequeños        esto entrelazado por restricciones dadas por        ciando el desarrollo del mundo real.
              problemas y muy ligada a la máquina que            las reglas del negocio. La tecnología actual,            El enfoque de los ingenieros, desde
              ejecutaba el programa.                             por otro lado, ha alejado más todavía los inge-     hace unos años, no se ha movido signifi-
                   En la década de los cincuenta se avanzó a     nieros de las máquinas, sistemas operativos,        cativamente por el camino del aumento de
              la confección de programas que contenían in-       incluso de las tareas de programación.              abstracción establecido históricamente. Se
              formación binaria (Fig. 2). La solución desarro-        El enfoque de la mayoría de los equipos        han hecho ciertos avances en temas pun-
              llada abordaba problemas de mayor magnitud         de desarrollo e ingenieros, participes en pro-      tuales (como arquitecturas de componen-
              y complejidad. Se logra la primera separación      yectos, sigue siendo con un bajo nivel de abs-      tes, patrones de diseño, nuevos lenguajes
              entre el programador y la máquina.                 tracción, cerca de la codificación. Se tiende a     de programación, etc.), pero conceptual-
                   En la década de los sesenta hacen su apa-     pensar en la base de datos a utilizar, establecer   mente, metodológicamente, la tarea de
              rición los lenguajes estructurados (Fig. 3). Los   la navegación de las páginas, programar los         programación sigue siendo ejecutada de la
              programas se escribían en un lenguaje que se       protocolos de comunicación, etc. Esto lleva         misma forma: escribiendo códigos fuentes
              parecía al lenguaje hablado. Las soluciones        a utilizar las tareas de programación y de          en forma de los programas textuales.
              desarrolladas involucraban principalmente          pruebas para validar el entendimiento y cum-             Éste es, justamente, el “atraso” meto-
              fórmulas y cálculos matemáticos. La sepa-          plimiento de la funcionalidad de los sistemas.      dológico que se mencionó. Para disminuir
              ración entre el programador y la máquina es             Lo anteriormente expuesto muestra              la brecha entre las tendencias históricas,
              evidente, quedando ésta en un plano inferior       un problema metodológico, consecuencia              es necesario ajustar la metodología, en
              al momento de desarrollar una solución.            de un desfase entre el enfoque teórico              términos de aumentar la abstracción del
                                                                 óptimo (análisis de negocio) y el enfoque           enfoque de los ingenieros de software y
                                                                 práctico real (programación y pruebas) en           acercarlo a la abstracción del problema.
                                                                 los proyectos de hoy. En otras palabras, la              El aumento de la abstracción del proceso
                                                                 metodología actualmente usada está atra-            de desarrollo del software hace pensar que la
                                                                 sada con respecto al avance tecnológico.            próxima generación de métodos de desarrollo
                                                                      Desarrollando más esta idea, se iden-          se perfila en un conceptualmente nuevo con-
                                                                 tifican algunos problemas concretos de las          junto de herramientas, que permitan aumen-
                                                                 metodologías:                                       tar en un mayor grado al actual la abstracción,
                                                                 - Ellas no obligan a sus ejecutores a respetar      escondiendo los detalles de más bajo nivel.
            Fig. 2: Lenguaje de máquina como secuencia           todas las normas y los procedimientos esta-
            de 0’s y 1’s.
                                                                 blecidos, especialmente en las etapas tem-
                 Al analizar la evolución de la ingeniería       pranas del proyecto. Es muy fácil y tentador
            de software, se detectan dos tendencias. La          “saltar” una o más de estas etapas, uno o más
            primera tiene en cuenta la solución de pro-          documentos o modelos, pasando directamen-
            blemas a gran magnitud y complejidad, acer-          te a implementación, producción y posterior
            cándose al mundo real y estableciendo una            corrección de los sistemas desarrollados.
            lejanía con máquina. La otra, tiene relación         - Control de calidad del producto final. La
            con el enfoque abstractivo, dejando escondi-         codificación y complejidad del programa,
            dos los detalles de tecnologías de bajo nivel.       es demasiada para ser revisada y verificada
                 Con respecto a la metodología de desa-          fehacientemente. Por otro lado, los códi-
            rrollo de software (o proceso de desarrollo), a      gos fuentes y los ejecutables actualmente           Fig. 3: Lenguaje estructurado se parece al len-
            lo largo del tiempo es notable el crecimiento        son los únicos entregables eficientemente           guaje natural.
            en su complejidad e importancia. Desde un            verificables.                                            Las nuevas herramientas permitirán
            solo ingeniero que preparaba la tarjeta perfo-            Estos dos problemas al parecer forman          “programar” en nivel de análisis, generando
            rada, la instalaba y la usaba, se llegó a los pro-   una situación contradictoria: la metodolo-          códigos en un lenguaje de programación tradi-
            yectos de software de varios años de duración,       gía tradicional no permite validar eficien-         cional de forma automática, tal como hoy los
            con los ejercicios de ingenieros de muchas           temente la calidad de los sistemas antes            compiladores generan el lenguaje máquina a
            especialidades realizando distintas tareas. En       de llegar al código fuente y, por otro lado,        partir del código fuente. Nuevos “lenguajes de
            estas condiciones, la aplicación de una buena        tampoco permite llegar eficientemente a             programación” naturalmente serían visuales y
            metodología se hace indispensable.                   códigos fuentes de calidad.                         se parecerían a las especificaciones de soft-
                                                                                                                     ware en uno de los lenguajes de modelamien-
            • actualidad                                         • futuro                                            to, por ejemplo UML (Fig. 4).
                                                                                                                          De hecho, hoy en día existe una tendencia
                 La gran mayoría de los sistemas de                  La salida de este “círculo vicioso” que         que ya está formalizando este paso evolutivo


36 Informática
Tecnografía

en la ingeniería de software. Se llama MDA
(Model Driven Architecture) y es establecida
por el OMG (Object Management Group),
la institución dueña de UML, el lenguaje
estándar de modelamiento de software.
     Finalmente, ¿cómo estas mejoras in-
fluyen en el “círculo vicioso”? Por un lado,
nuevas herramientas obligarán a los ingenie-
ros a prestar mayor atención a los modelos
de más alto nivel, que al código fuente, y no
“saltar” etapas tempranas del proyecto. Por
otro lado, los modelos generados serían per-
fectamente verificables y no se tendría que
esperar la codificación y las pruebas para
identificar errores funcionales.

• conclusión
                                                cabeza” con esta pregunta ahora, quizás        Fig. 4: Probable modelo a futuro.
    Es muy probable que estemos próxi-          sería suficiente recordarse otra vez de la
mos a ver un nuevo paso evolutivo en la         historia. Los primeros compiladores de
ingeniería de software. Tan grande como el      ninguna generación alcanzaban de inme-
invento de lenguajes de alto nivel o análisis   diato lo deseable y óptimo. Sin embargo,
y diseño orientado a objetos. Una nueva         con el paso del tiempo, apoyados en la ex-
generación que absorberá a la actual,           periencia de los ingenieros y en el avance          Aleksandar Orlic
automatizando la mayoría de las buenas          tecnológico, se mejoraban hasta el nivel de
prácticas usadas actualmente.                   superar significativamente las generacio-        Aleksandar Orlic es ingeniero de elec-
    Una pregunta natural es si una má-          nes anteriores. Es poco factible que hoy en      trotécnica con un postgrado en Arqui-
quina puede llegar a generar programas          día alguien cuestione la calidad de los com-     tectura de Sistemas. En la actualidad,
tan buenos como los hechos por un pro-          piladores de, por ejemplo, Java y la calidad     es consultor principal y socio funda-
gramador experto. En vez de “romper la          del código de máquina generado por ellos.        dor de Craftware Consultores.




                                                                                                                                          Informática   37

Más contenido relacionado

La actualidad más candente

Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Lucero Mtz
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Softwareem3marquez
 
Modelos de desarrollo de software separata
Modelos de desarrollo de software separataModelos de desarrollo de software separata
Modelos de desarrollo de software separataMarvin Romero
 
Metodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSLMetodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSLSantiago Jacome
 
Diapositivas De Ingenieria De Software
Diapositivas De Ingenieria De SoftwareDiapositivas De Ingenieria De Software
Diapositivas De Ingenieria De Softwarerapa69
 
Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001Jose Emilio Labra Gayo
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobarEdwin Alexander
 
Insidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareInsidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareUniversidad De Cordoba
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Yaskelly Yedra
 
EliDastaSoftware
EliDastaSoftwareEliDastaSoftware
EliDastaSoftwareElidaDasta
 

La actualidad más candente (18)

Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015Apuntes ing-sof-unidad-4-1-2015
Apuntes ing-sof-unidad-4-1-2015
 
Software
SoftwareSoftware
Software
 
La importancia del_modelado_en_la_producción_de_sw_vf
La importancia del_modelado_en_la_producción_de_sw_vfLa importancia del_modelado_en_la_producción_de_sw_vf
La importancia del_modelado_en_la_producción_de_sw_vf
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Modelos de desarrollo de software separata
Modelos de desarrollo de software separataModelos de desarrollo de software separata
Modelos de desarrollo de software separata
 
Comunicación y colaboración
Comunicación y colaboraciónComunicación y colaboración
Comunicación y colaboración
 
Software y ciclo de vida
Software  y ciclo de vidaSoftware  y ciclo de vida
Software y ciclo de vida
 
Metodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSLMetodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSL
 
Diapositivas De Ingenieria De Software
Diapositivas De Ingenieria De SoftwareDiapositivas De Ingenieria De Software
Diapositivas De Ingenieria De Software
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001Arquitectura software.taxonomias.negocio.001
Arquitectura software.taxonomias.negocio.001
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Miguel mena
Miguel menaMiguel mena
Miguel mena
 
Insidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De SoftwareInsidencias En Los Paradigmas De La Ingeniera De Software
Insidencias En Los Paradigmas De La Ingeniera De Software
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 
Tesis luis iribarne
Tesis luis iribarneTesis luis iribarne
Tesis luis iribarne
 
EliDastaSoftware
EliDastaSoftwareEliDastaSoftware
EliDastaSoftware
 

Destacado

Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisisJavier Rivera
 
Modelado del AnáLisis
Modelado del AnáLisisModelado del AnáLisis
Modelado del AnáLisisCarolina Rojas
 
Diagrama De Secuencia
Diagrama De SecuenciaDiagrama De Secuencia
Diagrama De SecuenciaRafael
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesstill01
 
Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estadoguest5ed375
 
Tipos de tarjetas de vídeo (1ro.INF)
Tipos de tarjetas de vídeo (1ro.INF) Tipos de tarjetas de vídeo (1ro.INF)
Tipos de tarjetas de vídeo (1ro.INF) Jose David
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividadesTerryJoss
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesNedoww Haw
 
Diagrama de actividades uml
Diagrama de actividades umlDiagrama de actividades uml
Diagrama de actividades umlcamiloan40
 
Diagramas De Secuencia
Diagramas De SecuenciaDiagramas De Secuencia
Diagramas De SecuenciaFabian Garcia
 

Destacado (12)

Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
 
Modelado del AnáLisis
Modelado del AnáLisisModelado del AnáLisis
Modelado del AnáLisis
 
Diagrama De Secuencia
Diagrama De SecuenciaDiagrama De Secuencia
Diagrama De Secuencia
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estado
 
Tipos de tarjetas de vídeo (1ro.INF)
Tipos de tarjetas de vídeo (1ro.INF) Tipos de tarjetas de vídeo (1ro.INF)
Tipos de tarjetas de vídeo (1ro.INF)
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
UML: CASOS DE USO
UML: CASOS DE USOUML: CASOS DE USO
UML: CASOS DE USO
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividades
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Diagrama de actividades uml
Diagrama de actividades umlDiagrama de actividades uml
Diagrama de actividades uml
 
Diagramas De Secuencia
Diagramas De SecuenciaDiagramas De Secuencia
Diagramas De Secuencia
 

Similar a Mda informatica

Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software Monica Glez
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwareMonica Glez
 
6. is construcción del software
6. is construcción del software6. is construcción del software
6. is construcción del softwareNagut
 
Estado arte-ing-software
Estado arte-ing-softwareEstado arte-ing-software
Estado arte-ing-softwareLaura Maruri
 
Estado arte-ing-software
Estado arte-ing-softwareEstado arte-ing-software
Estado arte-ing-softwareLaura Maruri
 
Reseña conferencias
Reseña conferenciasReseña conferencias
Reseña conferenciassandrariveram
 
Resolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasResolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasAndrés Felipe Montoya Ríos
 
Sistemas II- Ingeniería del software
Sistemas II- Ingeniería del software Sistemas II- Ingeniería del software
Sistemas II- Ingeniería del software llmdmyn14
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwareJORGE MONGUI
 
Intoduccion A La Ingenieria Del2
Intoduccion A La Ingenieria Del2Intoduccion A La Ingenieria Del2
Intoduccion A La Ingenieria Del2guest9ad165
 
Ingenieroa de de Software Conceptos Iniciales
Ingenieroa de de Software Conceptos InicialesIngenieroa de de Software Conceptos Iniciales
Ingenieroa de de Software Conceptos InicialesMaikoUrizar1
 
Ingenieria de Software Introducción a los Conceptos Basicos
Ingenieria de Software Introducción a los Conceptos BasicosIngenieria de Software Introducción a los Conceptos Basicos
Ingenieria de Software Introducción a los Conceptos BasicosMaikoUrizar1
 
Software de ingeniería.diana.2ºc
Software de ingeniería.diana.2ºcSoftware de ingeniería.diana.2ºc
Software de ingeniería.diana.2ºcdianafani
 
Procesos de desarrollo de software
Procesos de desarrollo de softwareProcesos de desarrollo de software
Procesos de desarrollo de softwareLeynes Morán
 

Similar a Mda informatica (20)

Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
6. is construcción del software
6. is construcción del software6. is construcción del software
6. is construcción del software
 
Estado arte-ing-software
Estado arte-ing-softwareEstado arte-ing-software
Estado arte-ing-software
 
Estado arte-ing-software
Estado arte-ing-softwareEstado arte-ing-software
Estado arte-ing-software
 
Reseña conferencias
Reseña conferenciasReseña conferencias
Reseña conferencias
 
Reseña ponencia españoles
Reseña ponencia españolesReseña ponencia españoles
Reseña ponencia españoles
 
Resolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De SistemasResolver Problemas Por Medio De La Ingeniería De Sistemas
Resolver Problemas Por Medio De La Ingeniería De Sistemas
 
Sistemas II- Ingeniería del software
Sistemas II- Ingeniería del software Sistemas II- Ingeniería del software
Sistemas II- Ingeniería del software
 
JavierPerez_Ing
JavierPerez_IngJavierPerez_Ing
JavierPerez_Ing
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1
 
Intoduccion A La Ingenieria Del2
Intoduccion A La Ingenieria Del2Intoduccion A La Ingenieria Del2
Intoduccion A La Ingenieria Del2
 
Ingenieroa de de Software Conceptos Iniciales
Ingenieroa de de Software Conceptos InicialesIngenieroa de de Software Conceptos Iniciales
Ingenieroa de de Software Conceptos Iniciales
 
Ingenieria de Software Introducción a los Conceptos Basicos
Ingenieria de Software Introducción a los Conceptos BasicosIngenieria de Software Introducción a los Conceptos Basicos
Ingenieria de Software Introducción a los Conceptos Basicos
 
Mahikel peñuela ing
Mahikel peñuela ingMahikel peñuela ing
Mahikel peñuela ing
 
Robert milt ing
Robert milt ingRobert milt ing
Robert milt ing
 
Software de ingeniería.diana.2ºc
Software de ingeniería.diana.2ºcSoftware de ingeniería.diana.2ºc
Software de ingeniería.diana.2ºc
 
Examen omar
Examen omarExamen omar
Examen omar
 
Procesos de desarrollo de software
Procesos de desarrollo de softwareProcesos de desarrollo de software
Procesos de desarrollo de software
 

Más de Isabel

Isabel trejo reconocimientofacial_evidencia1
Isabel trejo reconocimientofacial_evidencia1Isabel trejo reconocimientofacial_evidencia1
Isabel trejo reconocimientofacial_evidencia1Isabel
 
Expresiones Regulares
Expresiones RegularesExpresiones Regulares
Expresiones RegularesIsabel
 
Compiladores
CompiladoresCompiladores
CompiladoresIsabel
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formalesIsabel
 
Herramientas
HerramientasHerramientas
HerramientasIsabel
 
Algortimos
AlgortimosAlgortimos
AlgortimosIsabel
 
Unidad 3
Unidad 3Unidad 3
Unidad 3Isabel
 
Unidad 3
Unidad 3Unidad 3
Unidad 3Isabel
 
Factores
FactoresFactores
FactoresIsabel
 
Software de alta calidad
Software de alta calidadSoftware de alta calidad
Software de alta calidadIsabel
 
Unidad 2
Unidad 2Unidad 2
Unidad 2Isabel
 
Historia
HistoriaHistoria
HistoriaIsabel
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datosIsabel
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicosIsabel
 
Unidad 1 ciclo de vida
Unidad 1 ciclo de vidaUnidad 1 ciclo de vida
Unidad 1 ciclo de vidaIsabel
 
Roles desarrollo software
Roles desarrollo softwareRoles desarrollo software
Roles desarrollo softwareIsabel
 
Unidad 1 conceptos introductorios
Unidad 1 conceptos introductoriosUnidad 1 conceptos introductorios
Unidad 1 conceptos introductoriosIsabel
 
Tablas dinámicas
Tablas dinámicasTablas dinámicas
Tablas dinámicasIsabel
 

Más de Isabel (20)

Isabel trejo reconocimientofacial_evidencia1
Isabel trejo reconocimientofacial_evidencia1Isabel trejo reconocimientofacial_evidencia1
Isabel trejo reconocimientofacial_evidencia1
 
Expresiones Regulares
Expresiones RegularesExpresiones Regulares
Expresiones Regulares
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Lenguajes formales
Lenguajes formalesLenguajes formales
Lenguajes formales
 
Herramientas
HerramientasHerramientas
Herramientas
 
Gmail
GmailGmail
Gmail
 
Algortimos
AlgortimosAlgortimos
Algortimos
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Factores
FactoresFactores
Factores
 
Software de alta calidad
Software de alta calidadSoftware de alta calidad
Software de alta calidad
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Historia
HistoriaHistoria
Historia
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Sgbd
SgbdSgbd
Sgbd
 
Conceptos basicos
Conceptos basicosConceptos basicos
Conceptos basicos
 
Unidad 1 ciclo de vida
Unidad 1 ciclo de vidaUnidad 1 ciclo de vida
Unidad 1 ciclo de vida
 
Roles desarrollo software
Roles desarrollo softwareRoles desarrollo software
Roles desarrollo software
 
Unidad 1 conceptos introductorios
Unidad 1 conceptos introductoriosUnidad 1 conceptos introductorios
Unidad 1 conceptos introductorios
 
Tablas dinámicas
Tablas dinámicasTablas dinámicas
Tablas dinámicas
 

Mda informatica

  • 1. Tecnografía DESARROLLO El futuro de la ingeniería de software El diseño de programas a partir de información binaria significó un paso sustantivo para la industria desarrolladora de software. Desde ese hallazgo, ocurrido en la década de los cincuenta, hasta hoy, el crecimiento de metodologías para su desarrollo ha subido notablemente en complejidad. Sin embargo, los circulos viciosos que acusa hoy la con- fección de programas informáticos, impiden conceptualizar el objeto a un nivel superior de abstracción, tal y como lo exige el avance tecnológico y los procesos de negocios. El siguiente artículo sondea el futuro de la ingeniería, a la luz de su propia evolución. Por Aleksandar Orlic. L a calidad de los sistemas informá- llo de sistemas, aumento de productividad esta ingeniería, analizar su contexto actual ticos, satisfacción de sus usuarios del ingeniero de software, mayor control y, finalmente, proyectar hacia dónde se y clientes, son temas ampliamente del proceso de desarrollo, establecimiento dirige, es el pilar de este artículo. conocidos, recurrentes y de constante pre- de nuevos métodos de desarrollo. Estos ele- ocupación por parte de los practicantes de mentos, combinados y aplicados de buena • algo de historia la Ingeniería de software. forma, logran un buen proceso de desarro- Esta joven y dinámica ingeniería siem- llo y, en definitiva, un buen producto. La evolución del desarrollo de software pre está en busca de mejoras en el desarro- Identificar los pasos que ha recorrido ha empezado por las tarjetas perforadas (Fig. Informática 35
  • 2. Tecnografía 1) en la década de software creados hoy en día son los lla- se propone es bastante natural: analizar la los cuarenta, cuan- mados sistemas corporativos; es decir, son situación actual de la ingeniería de software do los desarrollado- orientados a formar una parte importante en la luz de sus tendencias históricas. res debían conocer de los negocios de las grandes empresas. La primera de ellas, relacionada con detalles de bajo Continuando en nuestro contexto, se los problemas que resuelven los sistemas, nivel de la máquina identifica un nuevo enfoque del problema de obviamente presente y muy utilizada en que ejecutaba los desarrollo, el apoyo en la sincronización de los nuestra realidad: los sistemas de hoy no Fig. 1: Primeros programas computacio- programas. La so- procesos de negocio, estructuras complejas sólo resuelven los problemas del mundo nales en formato de tarjeta perforada. lución desarrollada de información manejada por el negocio, todo real, sino que están fuertemente influen- era para pequeños esto entrelazado por restricciones dadas por ciando el desarrollo del mundo real. problemas y muy ligada a la máquina que las reglas del negocio. La tecnología actual, El enfoque de los ingenieros, desde ejecutaba el programa. por otro lado, ha alejado más todavía los inge- hace unos años, no se ha movido signifi- En la década de los cincuenta se avanzó a nieros de las máquinas, sistemas operativos, cativamente por el camino del aumento de la confección de programas que contenían in- incluso de las tareas de programación. abstracción establecido históricamente. Se formación binaria (Fig. 2). La solución desarro- El enfoque de la mayoría de los equipos han hecho ciertos avances en temas pun- llada abordaba problemas de mayor magnitud de desarrollo e ingenieros, participes en pro- tuales (como arquitecturas de componen- y complejidad. Se logra la primera separación yectos, sigue siendo con un bajo nivel de abs- tes, patrones de diseño, nuevos lenguajes entre el programador y la máquina. tracción, cerca de la codificación. Se tiende a de programación, etc.), pero conceptual- En la década de los sesenta hacen su apa- pensar en la base de datos a utilizar, establecer mente, metodológicamente, la tarea de rición los lenguajes estructurados (Fig. 3). Los la navegación de las páginas, programar los programación sigue siendo ejecutada de la programas se escribían en un lenguaje que se protocolos de comunicación, etc. Esto lleva misma forma: escribiendo códigos fuentes parecía al lenguaje hablado. Las soluciones a utilizar las tareas de programación y de en forma de los programas textuales. desarrolladas involucraban principalmente pruebas para validar el entendimiento y cum- Éste es, justamente, el “atraso” meto- fórmulas y cálculos matemáticos. La sepa- plimiento de la funcionalidad de los sistemas. dológico que se mencionó. Para disminuir ración entre el programador y la máquina es Lo anteriormente expuesto muestra la brecha entre las tendencias históricas, evidente, quedando ésta en un plano inferior un problema metodológico, consecuencia es necesario ajustar la metodología, en al momento de desarrollar una solución. de un desfase entre el enfoque teórico términos de aumentar la abstracción del óptimo (análisis de negocio) y el enfoque enfoque de los ingenieros de software y práctico real (programación y pruebas) en acercarlo a la abstracción del problema. los proyectos de hoy. En otras palabras, la El aumento de la abstracción del proceso metodología actualmente usada está atra- de desarrollo del software hace pensar que la sada con respecto al avance tecnológico. próxima generación de métodos de desarrollo Desarrollando más esta idea, se iden- se perfila en un conceptualmente nuevo con- tifican algunos problemas concretos de las junto de herramientas, que permitan aumen- metodologías: tar en un mayor grado al actual la abstracción, - Ellas no obligan a sus ejecutores a respetar escondiendo los detalles de más bajo nivel. Fig. 2: Lenguaje de máquina como secuencia todas las normas y los procedimientos esta- de 0’s y 1’s. blecidos, especialmente en las etapas tem- Al analizar la evolución de la ingeniería pranas del proyecto. Es muy fácil y tentador de software, se detectan dos tendencias. La “saltar” una o más de estas etapas, uno o más primera tiene en cuenta la solución de pro- documentos o modelos, pasando directamen- blemas a gran magnitud y complejidad, acer- te a implementación, producción y posterior cándose al mundo real y estableciendo una corrección de los sistemas desarrollados. lejanía con máquina. La otra, tiene relación - Control de calidad del producto final. La con el enfoque abstractivo, dejando escondi- codificación y complejidad del programa, dos los detalles de tecnologías de bajo nivel. es demasiada para ser revisada y verificada Con respecto a la metodología de desa- fehacientemente. Por otro lado, los códi- rrollo de software (o proceso de desarrollo), a gos fuentes y los ejecutables actualmente Fig. 3: Lenguaje estructurado se parece al len- lo largo del tiempo es notable el crecimiento son los únicos entregables eficientemente guaje natural. en su complejidad e importancia. Desde un verificables. Las nuevas herramientas permitirán solo ingeniero que preparaba la tarjeta perfo- Estos dos problemas al parecer forman “programar” en nivel de análisis, generando rada, la instalaba y la usaba, se llegó a los pro- una situación contradictoria: la metodolo- códigos en un lenguaje de programación tradi- yectos de software de varios años de duración, gía tradicional no permite validar eficien- cional de forma automática, tal como hoy los con los ejercicios de ingenieros de muchas temente la calidad de los sistemas antes compiladores generan el lenguaje máquina a especialidades realizando distintas tareas. En de llegar al código fuente y, por otro lado, partir del código fuente. Nuevos “lenguajes de estas condiciones, la aplicación de una buena tampoco permite llegar eficientemente a programación” naturalmente serían visuales y metodología se hace indispensable. códigos fuentes de calidad. se parecerían a las especificaciones de soft- ware en uno de los lenguajes de modelamien- • actualidad • futuro to, por ejemplo UML (Fig. 4). De hecho, hoy en día existe una tendencia La gran mayoría de los sistemas de La salida de este “círculo vicioso” que que ya está formalizando este paso evolutivo 36 Informática
  • 3. Tecnografía en la ingeniería de software. Se llama MDA (Model Driven Architecture) y es establecida por el OMG (Object Management Group), la institución dueña de UML, el lenguaje estándar de modelamiento de software. Finalmente, ¿cómo estas mejoras in- fluyen en el “círculo vicioso”? Por un lado, nuevas herramientas obligarán a los ingenie- ros a prestar mayor atención a los modelos de más alto nivel, que al código fuente, y no “saltar” etapas tempranas del proyecto. Por otro lado, los modelos generados serían per- fectamente verificables y no se tendría que esperar la codificación y las pruebas para identificar errores funcionales. • conclusión cabeza” con esta pregunta ahora, quizás Fig. 4: Probable modelo a futuro. Es muy probable que estemos próxi- sería suficiente recordarse otra vez de la mos a ver un nuevo paso evolutivo en la historia. Los primeros compiladores de ingeniería de software. Tan grande como el ninguna generación alcanzaban de inme- invento de lenguajes de alto nivel o análisis diato lo deseable y óptimo. Sin embargo, y diseño orientado a objetos. Una nueva con el paso del tiempo, apoyados en la ex- generación que absorberá a la actual, periencia de los ingenieros y en el avance Aleksandar Orlic automatizando la mayoría de las buenas tecnológico, se mejoraban hasta el nivel de prácticas usadas actualmente. superar significativamente las generacio- Aleksandar Orlic es ingeniero de elec- Una pregunta natural es si una má- nes anteriores. Es poco factible que hoy en trotécnica con un postgrado en Arqui- quina puede llegar a generar programas día alguien cuestione la calidad de los com- tectura de Sistemas. En la actualidad, tan buenos como los hechos por un pro- piladores de, por ejemplo, Java y la calidad es consultor principal y socio funda- gramador experto. En vez de “romper la del código de máquina generado por ellos. dor de Craftware Consultores. Informática 37