El Producto - cs.buap.mxrossainz/ingSw... · Mitos del Cliente Los requerimientos del proyecto...

Preview:

Citation preview

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