Capitulo 1. El Producto.
Palabras clave: caracteristicas del software, categorias de aplicacion, curvas de fallos, desgaste, ensamblaje de componentes,
historia, Ingenieria del Software, mitos, reutillización.
Mitos del software:
- Es fácil modificar un Software.
- Como es complejo, el Software puede fallar.
- "Una vez el programa funciona, hemos terminado." La mayor parte del esfuerzo se realiza despues de la entrega: entre un 60% y 80% del esfuerzo.
- "Hasta que empiece a funcionar no sabré si está bien". Podemos comprobar la calidad del Software con Revisión técnica formal.
- "Al cliente basta con darle un código que funcione". Quizás deberiamos entregarle tambien documentación, para que sepa que botones pulsar.
- El programa no falla es el cliente que no sabe utilizarlo.
- Con pruebas y Revisión técnica formal. se pueden eliminar todos los errores.
- Cuanto má voluminosa sea la documentación de un producto, mejor será.
- Si una caracteristica no es nesesaria para el 80% de los usuarios, al 20% restante no le hará falta.
- Si un error ha sobrevivido a dos revisiones, no es un error, sino comportamiento normal del sistema.
Que es el Software segun Pressman:
- Instrucciones (programas de computadora) que cuando se ejecutan proporcionan la función y el rendimiento deseados.
- Estructuras de datos que permiten manipular adecuadamente la informacion.
- Documentos que describen la construcción y uso de programas.
Que es el software segun Somerville:
- Programas de ordenador y documentación asociada.
- Los programas de software pueden ser: Genéricos (Desarollado para clientes muy diversos) y Hecho a medida (Hecho para clientes a medida)
La evolucion del Software.
El Software desde los años 50 cambio importantemente, dado que los medios o el hardware mejoran muy rapidamente. Software tiene que adaptarse a todo eso. Anteriormente no creo que habia ninguna tableta grafica, teclado, pantalla tactil, ni siquiera habia un raton!!!. Los procesadores ya han pasado de 8bit a 128, memoria de pocos kilobytes a 4gigabytes. La complejidad de Software aumento muchisimo desde aquellos años. Para el usuario ese cambio es positivo. Pero y para la persona que lo desarolla? Hasta el año 90 cualquier persona con ganas podia crear un videojuego decente, ahora como no haga algo en java lo tiene dificil. Y seguramente todos se acordaran de aquel año 1999 a finales de diciembre donde todos los telediarios hablaban del fin del mundo...
Software.
Caracteriscas del Software: Si analizamos la creacion del hardware vemos que su fin es ser una cosa fisica. Pasamos por fases como analisis,
diseño, construcion y prueba para fabricar un cacharro fisico que lo podemos tocar y sentir. En cambio Software aun teniendo casi
los mismos pasos, es una cosa logica, no la podemos tocar o sentir. Tiene caracteristicas distintas el Software.
"El Software se desarolla no se fabrica". Es un proceso quizas similar pero no el mismo. No podemos gestionar el desarollo del software como una fabricacion.
"El Software no se estropea". Cuando creamos un Software, en los primeros años de su vida tenemos muchos fallos, errores de diseño o como queramos llamarlo.
segun pasa el tiempo, lo depuramos mas y los fallos bajan...Pero segun pase el tiempo introducimos cambios, lo actualizamos llegando a un momento que lo mas probable es que introduzcamos nuevos errores. Lo que puede producir que la curva de fallos aumente otra vez. El Software se va deteriorando (no se estropea) debido al mantenimiento.
Otro apunte importante en la diferencia entre el HW y SW es que si se estropea una pieza del HW la podremos sustituir.
Sin embargo si se estropea el SW tenemos que revisar el diseño en busca de errores, y es posible que arreglarlo nos cueste
un trabajo importante. "Es mas dificil areglar Software que Hardware."
La mayoria del Software se construye a medida, Ingeniera del Software aun es muy diferente de la industria donde podemos ensamblar componentes. Aunque ya existen muchas partes reutilizables: librerias, interfazes graficas, estructuras de datos.
Aplicaciones del Software.
- Software de sistemas. Es un conjunto de programas que estan para servir a otros programas. Se caracteriza por una fuerte interacción con Hardware, multiples usuarios, comparticion de recusros con gestion de procesos compleja, estructuras de datos compleja y multiples interfaces externas.
- Software de tiempo real. Es el que coordina, analiza y controla sucesos del mundo real segun ocurren.
- Software de gestion. Es el software que suelen utilizar los comercios para llevar sus invetarios o nóminas. Suelen incorporar bases de datos o ayudan a tomar decisiones comerciales.
- Software de ingenieria y cientifico. Es lógicamente aquel Software que se encarga de ayudar a los cientificos en hacer sus calculos, analisis, investigacion etc. Se caracteriza por utilizar mucho calculo numerico.
- Software empotrado. Es el Software que esta empotrado en hardware, por ejemplo una lavadora. Son muy limitados en opciones, actualizacion o mantenimiento.
- Software de computadoras personales. Son los programas que utilizamos en nuestras casas, como hojas de calculo, juegos o ediccion de fotos.