27/03/2009
MAESTRIA EN GESTION Y DESARROLLO DE PROYECTOS DE SOFTWARE
PRESENTACIÓN PERSONAL ESTUDIANTES
ANALISIS Y DISEÑO ORIENTADO A OBJETOS Nombre Profesión Empresa Conocimiento del Paradigma Orientado a Objetos Plataformas de Desarrollo que Maneja
PRESENTACIÓN PERSONAL DOCENTE Nombre Profesión Cargo
: Oscar Hernán Franco B. : Ingeniero de Sistemas : Coordinador Especialización IS-UAM Docente Investigador UAM-UNacional Emprendedor Empresa dllo SW
Estudios
:Ingeniería de Sistemas UAM Especialización. Alta Gerencia UNAL Magíster Ciencias Computacionales UNAB Desarrollo de aplicaciones en .NET
Áreas de Investigación Ingeniería de Software Computación Móvil Sistemas Multiagentes
REGLAS DE JUEGO • Metodología
• Exposición Magistral • Casos de Estudio Prácticos
• Asistencia • 90%
• Evaluación • Exámenes • Articulo • Proyecto
20% 20% 60%
La ingeniería de Software Ingeniería de Software
1
27/03/2009
La ingeniería de Software
La ingeniería de Software
La ingeniería de Software
La ingeniería de Software
La ingeniería de Software
La ingeniería de Software
2
27/03/2009
La ingeniería de Software
La ingeniería de Software
La ingeniería de Software
Una realidad pesimista • Insatisfacción del cliente porque el sistema no satisface sus requerimientos • Abandono de los proyectos • Desfases de 2 o más veces el tiempo y el costo estimado • Mala calidad percibida como: – errores frecuentes – sistemas no confiables – difícil de usar
• Sistemas difíciles de adaptar, extender, mejorar
Causas? • Durante la construcción – La ingeniería del software – La administración de la construcción – La tecnología
Causas: • Durante la construcción – La ingeniería del software
• Durante el mantenimiento – La herencia del desarrollo – Factores Humanos – El proceso de cambio caótico
3
27/03/2009
Causas: • Durante la construcción – La ingeniería del software
Causas: • Durante la construcción – La ingeniería del software
Causas: • Durante la construcción – La administración de la construcción
Causas: • Durante la construcción – La ingeniería del software
Causas: • Durante la construcción – La administración de la construcción
Causas: • Durante la construcción – La administración de la construcción
4
27/03/2009
Causas: • Durante la construcción – La administración de la construcción
Causas:
◦ La administración de la construcción
Causas:
Durante la construcción ◦ La administración de la construcción
Causas:
Durante la construcción
Durante la construcción
Causas:
Durante la construcción ◦ La administración de la construcción
Causas:
◦ La administración de la construcción
• Durante la construcción – La administración de la construcción
5
27/03/2009
Causas:
Causas:
• Durante el mantenimiento
• Durante el mantenimiento
La herencia del desarrollo: – Se entrega antes de ser terminado y debidamente probado. – No se tiene la documentación del sistema. La única manera para entender el software es a través de las líneas de código! – Código escrito por varias personas, cada una con estilos y convenciones distintas, difícil entender el software. – Malos diseños (o ausencia de ellos) que se traducen en software poco flexible, difícil de extender o adaptar.
Causas
Causas: • Durante el mantenimiento Factores Humanos :
– Menosprecio hacia estas actividades de mantenimiento. – Típicamente, los costos del mantenimiento son a menudo subestimados. – Las personas menos expertas son designadas para – mantener software, los equipos de mantenimiento – trabajan en malas condiciones (las nuevas tecnologías y herramientas son dejadas para los proyectos nuevos!) y en general, las soluciones rápidas son a menudo adoptadas.
Primeros pasos a la solución: • Mejorar las prácticas de ingeniería de software: – Ingeniería (análisis, diseño, programación, pruebas,..) – Procesos de administración (control de cambios, versiones, pruebas, contratación, admin. riesgos, manejo personal, …) – Tecnología – Formación y entrenamiento de las personas
• Durante el mantenimiento Deficiente proceso de cambio : – los cambios son hechos sin evaluar su impacto, causando inconsistencias con otros productos, creando conflictos con solicitudes previas, etc. – se agrava en la medida que los cambios se realizan concurrentemente por desarrolladores distintos. – bajo la presión de tiempo, es difícil mantener – actualizados los demás productos asociados del software como la documentación, los manuales, las pruebas, etc.
Primeros pasos a la solución: • Guiar a las organizaciones en la selección de estrategias para mejorar los procesos de desarrollo de software. • Evaluación: – Capability Maturity Model CMM – SPICE
• Normatización: ISO 9001, ISO 10007, ISO ....
6
27/03/2009
Primeros pasos a la solución:
Que es la Ingeniería de Software? • Es la disciplina del desarrollo y mantenimiento de sistemas computacionales que se comportan de manera confiable y eficiente y que su costo de desarrollo y mantenimiento puede ser pagado [1] [1] Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. A Volume of the Computing Curricula Series. ACM y IEEEComputer Society. 2004
Ejes de la ingeniería de software
Dependencias • Dependencias profundas entre los ejes:
– No se puede ser un buen diseñador sin saber de tecnologías – No se puede diseñar el proceso sin tener en cuenta la Arquitectura – El proceso tiene que ir apoyado por metodologías – No se puede ser un buen arquitecto sin saber de tecnología – No basta con saber de tecnología para ser un buen Arquitecto – No se puede ser un buen director/administrador de proyectos informáticos sin saber a profundidad del resto de ejes
7