El Producto
¿Qué es la Ingeniería de Software?n Tecnología para construir softwaren Un proceson Un conjunto de métodosn Herramientas
Evolución
Primeros años Principios 1960’sn orientación batchn distribución limitadan software a la medida
Evolución
Segunda era Mediados 60’s, finales 70’sn multiusuarion tiempo-realn bases de datosn producto de software
Evolución
Tercera era Mediados 70’s Finales 80’sn sistemas distribuidosn “inteligencia embebida”n bajo costo de hardwaren impacto al consumidor
Evolución
Cuarta era Desde mediados 80’sn sistemas desktop poderososn tecnologías orientadas a objetosn sistemas expertosn redes neuronales artificialesn cómputo paralelon redes de computadoras
Problemas Relacionados con Software
Hardware muy rápidoNo se satisface la demanda de nuevos programasDependencia de una operación confiable de softwareBatalla para crear software altamente confiable y de calidadProblemas para mantener y extender programas existentes debido a un pobre diseño y recursos inadecuados
Perspectiva de la Industria
Al principion Orientación a hardware, Ingeniería de HWn SW era sólo el paso final (artístico)
Hoyn Orientación a software, Ingeniería de SWn SW cuesta más
Perspectiva de la Industria
Preguntas:n ¿Porqué toma tanto tiempo terminar los
programas?n ¿Porqué los costos son tan altos?n ¿Porqué no es posible encontrar todos los
errores antes de la entrega?n ¿Porqué es tan difícil medir el progreso del
software mientras se desarrolla?
Planta de Software en Decadencia
industria de software en decadenciaInvertir para seguir compitiendo con industrias nuevas (con nueva tecnología)Miles de aplicaciones necesitan reconstruirsen Aplicaciones viejas ya no se pueden mantener (20
años atrás)n Difícil entender estructura de aplicaciones de
diseño crítico por su edad (estilos de diseño)n Sistemas embebidos tienen comportamiento
extraño, pero no hay nada que los reemplace
Competitividad
Antes el software se hacía a la medidan Software caron No competencia
Ahora el software es un negocio muy competidon Competencia mundialn Fuerza de trabajo barata
Software
¿Qué entendemos por software?n instrucciones que al ejecutarse producen
una función deseadan estructuras de datos que permiten a los
programas manipular adecuadamente la información
n documentos que describen la operación y uso de los programas
¿Realmente nos referimos a esto?
Características del Software
El software es algo lógico, no físico y de aquí que sus características difieran de las del hardwareEl software se desarrolla, no se manufactura en el sentido clásicon Requiere calidadn Costos básicamente de ingeniería
El software no echa a perder, pero si se deterioraLa mayoría del software se hace a la medida en lugar de ensamblar partes existentes
Componentes de Software
Reusabilidadn Diseñar para reutilizarw Algoritmosw Estructuras de datosw Encapsulación de datos y procesow Código a distintos niveles
n bajo nivel: lenguaje máquinan nivel medio: Cn alto nivel: íconos
Aplicaciones de Software
SistemaTiempo realNegociosIngeniería y científicoEmbebidoComputadora personalInteligencia artificial
Software: Crisis en el horizonte
Evolución lentaSe ha vivido con el problema por mucho tiempoProblema de:n Cómo desarrollamos softwaren Cómo damos mantenimienton Cómo satisfacer la demanda de software
Mitos Administrativos
Ya tenemos libros llenos de estándares y procedimiento para construir software. ¿Proveerá esto a mis desarrolladores con todas las herramientas que necesitan?n ¿Se utiliza el libro?n ¿Los desarrolladores saben de su existencia?n ¿Refleja la práctica moderna de desarrollo de SW?n ¿Está completo?n En muchos casos la respuesta es NO
Mitos Administrativos
Mi gente cuenta con las herramientas de software más recientes, les compramos las computadoras más recientesn Se necesita más que el mejor modelo de
computadora para generar SW de calidadn CASE son más importantes
Mitos Administrativos
Si nos retrasamos podemos contratar mas programadores para recuperarnosn Desarrollo de SW no es manufacturan Añadir más gente retrasa el proyectow Entrenamiento
n Añadir gente debe ser una actividad planeada
Mitos del Cliente
Un planteamiento general de los objetivos es suficiente para empezar a programarn Esta es la causa de la mayoría de las fallasn Es esencial una detallada descripción de:w Información del dominiow Funciónw Desempeñow Interfacesw Restricciones de diseñow Criterios de validación
Mitos del Cliente
Los requerimientos del proyecto cambian continuamente, pero éstos pueden ser ajustados porque el SW es flexiblen El impacto varía con el tiempo en que se introduce
un cambiow Poco impacto en la primer fasew Impacto crece mucho en fase de diseñow Impacto severo durante implementación (función,
desempeño, interfaces)w Impacto muy costoso cuando el SW ya está en uso
Mitos del Practicante
Una vez terminado el programa y trabajando, hemos terminadon Mientras más pronto empieces a escribir
código, el tiempo de terminado se alargan Se gasta entre un 50 y 70% del tiempo
después de entregado por primera vez
Mitos del Practicante
No es posible trabajar en calidad hasta que se termine de programarn La calidad del software se asegura con las
revisionesw Revisiones Formales del Software
Mitos del Practicante
El único entregable de un proyecto exitoso es el programa trabajandon El programa es sólo una parte, también se
requiere de:w documentaciónw datos
Top Related