INTRODUCCIÓN A LA INGENIERÍA DE SW

1.1 Ingeniería, ingeniería y ciencias de la ingeniería, el SW como artefacto tecnológico. Actualmente la ingeniería de SW se trata desde la perspectiva de grupos de ingenieros (programadores y diseñadores fundamentalmente, pero también otros roles profesionales como gestores del proceso de desarrollo, analistas, etc.) y no desde la perspectiva de un programador aislado. DEFINICION DE INGENIERÍA: Es la aplicación de un enfoque sistemático y cuantificable al desarrollo, la operación y el mantenimiento de una actividad a desarrollar. De acuerdo a esta definición podemos mencionar que un ingeniero de SW es un desarrollador en sentido amplio, que desempeña un rol como profesional en la producción de SW. Por su parte la definición implica investigación y estudio de las actividades de la ingeniería del SW por lo tanto un ingeniero de SW tiene que tener el perfil de un investigador. La ingeniería es la ciencia de la producción, la cual junto con la reproducción es la más fundamental en las actividades humanas (Auyang 2004). La asociación de la ingeniería con la producción es fácilmente identificable en muchas ramas de la ingeniería moderna. Un ingeniero civil, por ejemplo, se especializa en diseñar y construir obras publicas tales como puentes o carreteras, mientras que un ingeniero químico se especializa en la aplicación industrial de la química. Hoy día además se denomina ingeniería a ciertas sub disciplinas o aspectos muy concretos de disciplinas existentes. Así por ejemplo dentro de las ciencias de la computación se han hecho populares la ingeniería de la usabilidad, cuyo objeto es diseñar y construir interfaces persona-computadora, y la ingeniería de conocimiento cuyo objeto es producir representaciones del conocimiento para un dominio o propósito dado. En los mismos textos de ingeniería de SW suelen encontrarse referencias a la ingeniería de requisitos como una sub disciplina. Ya entonces nos damos cuenta que en todo momento esta implícito la palabra disciplina que será la herramienta fundamental que nos ayudará a la construcción o producción de SW. En el terreno del conocimiento, la transición de la artesanía a la ingeniería es fundamentalmente un paso del pensamiento practico desde su intuición hasta el método científico y de la tutela de aprendices a la educación formal universitaria. Ya entonces podemos enfocar a la ingeniería como el diseño y manufactura de productos complejos. INGENIERIA Y CIENCIAS DE LA INGENIERIA Las diferentes ramas o disciplinas de la ingeniería difieren en el objeto de la producción, pro todas ellas tienen en común 3 aspectos fundamentales: a) La ciencia de la ingeniería, que se ocupa de los principios y mecanismos subyacentes de la disciplina. b) Procesos de diseño, se ocupa en lo general de la fase de conceptualización y una fase de diseño detallado. c) Aspectos de gestión y organización, pues como tecnología que se produce implica tanto a personas como a las organizaciones. Además, las propias personas que crean tecnología no suelen trabajar aisladas si no en equipos y organizaciones. En el caso de la ingeniería de SW las actividades de diseño serian asimilables a lo que normalmente conocemos como desarrollo. Evidentemente la ciencia de la computación está asociada a esta ingeniería pues abarca principios matemáticos y físicos en el sentido más amplio de los sistemas basados en pc. Mas sin en cambio es importante distinguir entre ciencia de la computación e ingeniería de SW, ya que lo especifico de esta última es lo concerniente al diseño y uso del SW, utilizando el conocimiento que es objeto de la ciencia de la computación. Dentro de la ciencia de la Ing. del SW hay que separar los conocimientos científicos que se aplican en la misma y por tal motivo se practican, como son: a) Las ciencias que se aplican en la Ing. del SW son la ciencia de la computación y otras ciencias que son de utilidad para aspectos determinados como los relativos a las organizaciones, la economía, la psicología y por supuesto las matemáticas en general. Así como estas ciencias también se requiere de conocimientos de física mientras que por ejemplo para el desarrollo de un SAW para biotecnología serán necesarios ciertos conocimientos de biología. b) La ingeniería de SW como ciencia es la aplicación del método científico relacionado con la teoría y la creación del conocimiento. Está dedicada al conocimiento de actividades y centrada en generar teorías, modelos explicativos o enunciados descriptivos sobre la práctica de la ingeniería. “las leyes de evolución del SW (lehman, Ramil 2003) son enunciados teóricos sobre el mantenimiento del SW. Uno de estos enunciados puede ser “a medida que un programa evoluciona, su complejidad aumenta a menos que se dedique un esfuerzo especifico a reducir o mantener constante dicha complejidad”. En realidad, los ingenieros en SW desconocen estas leyes, aunque en su vida diaria las practiquen y ejecuten. EL SOFTWARE COMO ARTEFACTO TECNOLOGICO Teorías: Fundamentos de física º Teoría de compiladores º Autómatas º Algoritmia º seguridad Fundamentos matemáticos Herramientas Procesos Estándares 1.2 EL SOFTWARE COMO ARTEFACTO TECNOLOGICO El SW es la tecnología o producto resultante de las actividades de ingeniería del SW. Se tiene que tener en cuenta que el SW como tal tienen una naturaleza que lo diferencia de otros productos, lo que hace que tenga una problemática en especial. En años atrás se ha venido manejando el termino (crisis del SW) haciendo referencia a ciertos problemas específicos y persistentes de la ingeniería del SW. Podemos clasificar estos problemas como problemas asociados al desarrollo tales como: a) Retrasos en los plazos de los proyectos o la baja productividad de los desarrolladores. b) Problemas de uso de los productos finales, como por ejemplo la calidad deficiente. A parte del evidente problema de carácter económico que provocan los retrasos y las diferencias en la estructura que se planteó al inicio del proyecto. Existen además consecuencias de carácter social, el cual implica la resistencia a la adopción del SW. Es un hecho que la ingeniería del SW es una actividad compleja y difícil de gestionar esto debido a la misma naturaleza del SW. ¿QUE ES EL SOFTWARE? El termino SW puede atribuirse a (John W. Tukey) quien, en su artículo publicado en 1957, introdujo por primera vez el termino SW quien era un sinónimo de programa de computadora es decir un artefacto que proporciona las instrucciones necesarias para que una computadora lleve a cabo una tarea. Esta definición en la actualidad es demasiado especifica pro nos sirve como base para definir al SW como un conjunto completo de programas, procedimientos y documentación relacionada que se asocia con el sistema y especialmente con un sistema de cómputo. En un sentido especifico, un SW lo podemos ubicar como un programa de computadora, pero lo más importante es tener en cuenta que un programa de computadora por muy sencillo que sea debe contener la documentación necesaria que lo describe (los manuales de usuario), los procedimientos para su instalación o modificación e incluso los datos necesarios para su operación. Un aspecto adicional es que un software siempre va a estar destinado a evolucionar. Otros productos de ingeniería como los aviones o los automóviles no cambian tan fácilmente durante su tiempo de vida, punto importante que diferencia a un desarrollador de SW. 1.3 SISTEMATIZIDAD DISCIPLINA Y CUANTIFICACION Ya se ha mencionado que la ingeniería como disciplina profesional y de carácter industrial, hace referencia a la forma de cómo se va a estructurar un SW. Se menciona 3 calificativos que pueden aplicarse a la ingeniería: sistematización, disciplina y cuantificación. El termino sistemático es cuando “sigue un sistema” así diremos que una actividad es sistemática cuando es metódica en cuanto al procedimiento o al plan por otra parte una actividad es disciplinada cuando está sujeta a un control con respecto a ciertos estándares, entendiendo el termino estándar como una norma o patrón y no como una especificación formal respaldad por un organismo de estandarización. Decimo que una actividad es cuantificable si tanto su relación como sus resultados pueden medirse. Tanto el producto final del desarrollo, como el propio proceso de desarrollo del SW normalmente pueden ser sometidos a medición con diferentes fines. Reafirma lo anterior que la programación como actividad casual o esporádica no puede ser considerada ingeniería de SW, esto no quiere decir que dicha actividad no tiene valor o que no pueda producir resultados interesantes. En el caso de que la sistematicidad y la disciplina se consideren desde la perspectiva individual, solo hay ingeniería cuando exista un plan y una referencia ce como se deben hacer las cosas. Un ejemplo de esta perspectiva individual es denominado proceso de SW personal (psp) un conjunto de buenas prácticas para el desarrollo de SW que se encuentra como disciplina individual en los ingenieros dedicados al desarrollo de SW. Entre las recomendaciones del PSP, se menciona el control del tiempo que se materializa a nivel personal en el registro de los tiempos que se resumen semanalmente durante el desarrollo de un SW. El PSP enfatiza la medición detallada del trabajo individual y su uso para valorar el proceso y la eficiencia en el desarrollo. Su interés radica en que reproduce a escala personal los problemas más importantes de la gestión de la ingeniería de SW (estimación, planificación, seguimiento) los cuales fortalecen el desarrollo de un proyecto.

Más información  
ESTE SITIO FUE CONSTRUIDO USANDO