1. INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE Ing. Sonia Godoy H Informática empresarial Ing-Sonia Godoy H
2.
3. INTRODUCCIÓN INGENIERÍA DEL SOFTWARE Crisis de software Éxito Problemático Fracaso El proyecto se aborta o el sistema no se llega a utilizar Desbordamiento de agendas o costes. Las funcionalidades no cubren las expectativas. Problemas funcionales Proyecto realizado en el tiempo previsto, con los costes previstos, con la funcionalidad esperada y ofreciendo un funcionamiento correcto. Fuente: Standish Group Survey, Proyectos para el desarrollo de sistemas de software Ing-Sonia Godoy H 2000 1998 1995 1994 28% 23% 49% 26% 28% 46% 27% 40% 33% 16% 31% 53% 2004 29% 19% 53%
4.
5.
6.
7.
8.
9. EL CICLO DE VIDA DEL SOFTWARE Modificación : para adaptarse a los cambios del entorno. (en otros productos se conoce como reparación o mantención) Ing-Sonia Godoy H
10. LA FASE DE DESARROLLO DEL CICLO DE VIDA DEL SOFTWARE Ing-Sonia Godoy H
11.
12.
13.
14. PLAN Tareas, agenda, asignaciones… CHECK Evaluación y medición DO Ejecición de planes y tareas ACT Problemas y acciones correctivas PROCESO INICIO FIN ISO 12207 Ing-Sonia Godoy H
22. CAPAS Define el marco de trabajo y permite un desarrollo racional y oportuno de la Ingeniería del Software Ing-Sonia Godoy H
23. CAPAS Indica cómo construir técnicamente el software. Se incluyen técnicas de modelado y otras técnicas descriptivas Ing-Sonia Godoy H
24. CAPAS Proporcionan el soporte automático o semiautomático para el proceso y para los métodos Ing-Sonia Godoy H
25.
26. CAPAS Colección de métodos para resolver un tipo de problemas Descompone el proceso de desarrollo en actividades y proporciona los métodos adecuados para llevar a cabo dichas actividades Ing-Sonia Godoy H
El software no se desgasta Se modifica por errores no descubiertos en la fase de desarrollo obliga a alterar Por cambios en la aplicación Porque cambios en una modificación anterior provocan problemas en otra parte Ejemplo: cambios de las leyes obliga a cambiar el procedimiento de calculo del sueldo, y ese cambio provoca cambios en otra parte del programa. El proceso de modificación requiere que una persona, usualmente diferente del programador original, estudie el programa y su documentación hasta entenderlo, de otra forma podría introducir mas problemas de los que ya tiene. Muchas veces es preferible desechar el programa y escribirlo de nuevo, que modificarlo.
Fases de desarrollo Análisis En la organización, se reconoce la necesidad de realizar una aplicación computacional. Tiene que ver mas con la operación de la organización. Identificación de los usuarios y de sus necesidades, es conveniente analizar la situación actual, cuando esta exista. Se debe conocer las necesidades de ,os usuarios de esta función y de sus expectativas. Identificar las salidas de información requeridas, las entradas de información existentes o determinar la forma de obtener la información si no existe, y los procesamientos requeridos de los datos (procesos de transformación) El resultado de la fase de análisis es el conjunto de requerimientos a satisfacer por el nuevo sistema. (ejemplo acceso de datos restringido a personal autorizado) Una vez aclarados los requerimientos, se convierten en especificaciones técnicas del sistema a desarrollar (se debe tener una contraseña de 5 caracteres letras o dígitos) Diseño Desarrollo de los detalles técnicos del sistema propuesto División en módulos Ingeniería Básica o modelamiento conceptual de la solución Construcción e Implantación Escritura de programas, desarrollo de las bases de datos Prueba Pruebas de módulos individuales, pruebas de integración, prueba de sistemas
La ingeniería de software es una tecnología multicapa, cualquier enfoque de ingeniería debe apoyarse sobre un compromiso de organización de calidad. El fundamento de la ingeniería de software es la capa del proceso. El proceso de la ingeniería de software es la unión que mantiene juntas las capas de tecnología y que permiten un desarrollo racional y oportuno de la ingeniería de software. El proceso define un marco de trabajo para un conjunto de áreas clave de proceso que se deben establecer para la entrega de la tecnología de la ingeniería de software.