Ingenieria de Software para Dummies 1234067613105981 3
Ingenieria de Software para Dummies 1234067613105981 3
Ingenieria de Software para Dummies 1234067613105981 3
Algunos discutirn mi forma de explicar la ingeniera de software, mi argumento es simple No puedes hacer bien algo de lo que no tienes conciencia, y saber de memoria un concepto de un libro pocas veces genera conciencia
Este es un curso para principantes, y tambin para personas de vieja guardia, que aun no entienden ahora por que nos complicamos tanto.
Los que todo lo saben, aqu tampoco encontrarn nada nuevo, o de pronto si, un poquito de conciencia.
Qu es Ingeniera de software?
"Ingeniera del Software es el estudio de los principios y metodologas para desarrollo y mantenimiento de sistemas de software" Zelkovitz 1978.
Ingeniera del Software es la aplicacin practica del conocimiento cientfico en el diseo y construccin de programas de computadora y la documentacin asociada requerida para desarrollar, operar(funcionar) y mantenerlos. Se conoce tambin como desarrollo de software o produccin de software Bohem 1976.
Ingeniera del Software trata del establecimiento de los principios y mtodos de la ingeniera a fin de obtener software de modo rentable que sea fiable y trabaje en maquinas reales Fritz Bauer 1972.
La aplicacin de un enfoque sistemtico, disciplinado, y cuantificable al desarrollo, operacin, y mantenimiento del software; es decir la aplicacin de Ingeniera del Software. IEEE 1993.
Se entendi?
Busquemos una definicin
Ira en un viaje alrededor de la tierra en globo, sabiendo que este esta controlado por una computadora?
Si su respuesta a estas preguntas ha presentado un poco de duda, vale la pena cuestionarse alguna cosas
Dudan los empresarios de los ingenieros civiles y arquitectos que construyen sus edificios?
Bueno, y es que no es carpintero por tener madera, clavos y martillo Como no se es desarrollador de software por saber programar.
Gracioso, no?
Pues no! No es gracioso que siendo un profesional tu trabajo sea tomado en broma El problema es, que pasa si nosotros mismos nos tomamos nuestro trabajo en broma?
Pues bien, si no se toma su trabajo en serio, lo que pasar es que usted mismo no ser tomado en serio.
Si usted sabe programar pero desconoce las motivaciones asociadas a su trabajo, las responsabilidades que implica y las consecuencias que acarrea su mal desempeo es decir, si no sabe ingeniera de software o le importa poco lo que
significa, pues usted no sabe hacer software, solo sabe programar.
Si comparamos saber hacer software, con saber hacer edificios, lo que usted sabe hacer bsicamente es pegar ladrillos
Y si bien los ladrillos y dems estructuras, conforman el producto final; existen una serie de roles asociados a la construccin, sin los cuales las admirables construcciones modernas no podran ser construidos.
Es el caso de los maestros de obra, arquitectos, ingenieros civiles Solo por mencionar algunos de los ms obvios.
Un programador es solo un rol del conjunto de roles implicados en el proceso de desarrollo de software
Pues bien, para desarrollar software existen una serie de roles asociados, encargados de analizar, planificar y establecer, que es lo que va a desarrollarse, como, con cuantos recursos, en cuanto tiempo e incluso a que nivel de calidad
No le gustara que quien va a construirla le garantizara la calidad del trabajo que va a realizar y le demostrara que cuenta con el conocimiento, materiales y equipo necesarios para hacer un trabajo perfecto?
Si?
Pues bien, los clientes y usuarios de los proyectos de software, esperan exactamente lo mismo!
La ingeniera de software es una idea casi tica sobre como hacer el software de forma correcta
El problema radica en que como casi todas las cosas en la vida, existen visiones diferentes de cmo hacer las cosas de forma correcta
No obstante, existen unos principios generales
Reemplacemos entonces la frase hacer software de forma correcta por hacer software de calidad
Si calidad!!,
La calidad determina el camino a seguir de todas las disciplinas asociadas a la ingeniera de software, aunque para algunos resultan excesivas y engorrosas
Yo dira que, hacer las cosas bien, siempre va a requerir un poco ms de esfuerzo, que hacerlas de cualquier otro modo
pues bien, la mayora de los crticos acerca del por que la ingeniera de software aade ms cantidad de trabajo, resultan ser personas que desconocen las motivaciones y el propsito de la labor que realizan
En que parte de las definiciones formales nuestro que hacer como personas?
La ingeniera es el conjunto de conocimientos y tcnicas cientficas aplicadas, que se dedica a la resolucin u optimizacin de los problemas que afectan directamente a la humanidad
Wikipedia
En ella, el conocimiento, manejo y dominio de las matemticas y fsica, obtenido mediante estudio, experiencia y prctica, se aplica con juicio para desarrollar formas eficientes de utilizar los materiales y las fuerzas de la naturaleza para beneficio de la humanidad y del ambiente.
Wikipedia
Ah coincidimos
No hablo de personas con ttulo de ingeniero, si no de personas que se dediquen a ejercer la ingeniera de software
En resumen
Ingeniera de software es la disciplina o rea de la informtica que ofrece mtodos y tcnicas para desarrollar y mantener software de calidad.
Wikipedia
http://es.wikipedia.org/wiki/Ingenier%C3%ADa_del_software
Therac-25
(1985 1987)
Era una mquina empleada en terapia de radiacin, producida por Atomic Energy of Canada Limited, notoria por haber sido objeto del error de software, causando al menos seis accidentes y que le cost la vida al menos a cinco personas
Mariner 1
(28 de Julio de 1962)
Un guin en las instrucciones del programa de guiado del cohete provoc la desviacin del Atlas y tuvo que enviarse un comando para su autodestruccin a los 4 minutos y 53 segundos de su lanzamiento
http://www.youtube.com/watch?v=ION cgYzVFlg
Pues bien, aunque actualmente existen muchas personas que construyen software con conocimiento emprico, tal como si fuera arte, lo que debe diferenciar un trabajo bien hecho (profesional o emprico), es los mtodos y la evidente forma de hacer el trabajo teniendo en mente la calidad de los procesos ejecutados y de los productos desarrollados.
Bueno, y si es que parece que la ingeniera de software establece tan claramente lo que hay que hacer Cual es el problema? Acaso no todos lo hacemos as?
Pues no, a veces pasa que
Y quien dice que siempre sale mal? A pues no, no siempre sale mal
Solo algunas veces
Veamos
CHAOS Report
(Estudio de Resultado de Ejecucin de los Proyectos de Software)
Exitoso
Fallido
Cancelado
33 53 40 31 16 27
46
49
51
53
28 26
23 28
15
18 29
34
1994
1996
1998
2000
2002
2004
Pues bien, muchos de estos errores son aducidos principalmente a falta de planeacin y buen anlisis, cosa que tiene mucho sentido pero que sin embargo, no es la nica razn Como seres humanos involucrados en el proceso de desarrollo, cometemos errores que de no ser corregidos a tiempo, van aumentando su costo y consecuencias
Veamos
Herramientas Personas Tiempo Dinero Recursos
Sin embargo
Pues bien, muchos de estos errores son aducidos principalmente a falta de planeacin y buen anlisis, cosa que tiene mucho sentido pero que sin embargo, no es la nica razn Como seres humanos involucrados en el proceso de desarrollo, cometemos errores que de no ser corregidos a tiempo, van aumentando su costo y consecuencias
Qu errores se comenten?
Falta de comunicacin
Falta de planificacin
Recursos Insuficientes
En la mayora de proyectos de desarrollo, los costes de mantenimiento, superan por un amplio margen los costos de desarrollo, se habla de un 30% en Desarrollo y un 70% en Mantenimiento.
Ahora bien, de acuerdo a lo que hemos hablado entonces, los Ingenieros de software no solo deben considerar aspectos tcnicos: Deben tener una visin ms amplia, en lo tico, social y profesional.
Y como se hace?
Bueno, una primera forma de pensar en las actividades que se involucra el proceso de desarrollo de software es preguntarse acerca de Que se construir? Como se har? Y De que forma evolucionar? O bien, como veamos en la grfica anterior, La Definicin, El Desarrollo y El Mantenimiento
Los cambios en las primeras etapas son ms costosos que en las ltimas
Ingeniera de Software
Sorey Bibiana Garca Zapata www.soreygarcia.com