1 Tema: Análisis y diseño de sistemas Docente: Mg. Enzo Castillo Semana 1
2 Introducción
3 Para pensar “La programación de hoy es una carrera entre los ingenieros de software que se esfuerzan por construir programas más grandes y mejores a prueba de idiotas, y el universo tratando de construir idiotas más grandes y mejores. Hasta ahora el universo está ganando”
4 Introducción la ingeniería de software es todo lo que necesita hacer para producir software exitoso. Incluye los pasos que toman una idea cruda, posiblemente nebulosa y convertirla en una aplicación potente e intuitiva que se puede mejorar para satisfacer las necesidades cambiantes de los clientes en los próximos años. "Un enfoque organizado y analítico para el diseño, desarrollo, uso y mantenimiento de software".
5 Importancia Los programadores puedan entender lo que los usuarios quieren o necesitan, (que puede ser dos cosas separadas). Evitar que el software pueda estar tan lleno de errores que no se pueda usar Permitir que el software pueda mejorarse con el tiempo. El programa sea eficaz y de fácil uso para el usuario. Que la aplicación vaya en contra de los intereses de la empresa o política organizacional. Permite que el software sea reutilizable y mantenible en el tiempo. Ayuda a cumplir los hitos a tiempo, producirlo en un tiempo esperado y dentro del presupuesto.
6 Desarrollando Software Un plan de desarrollo es un mapa Ningún gran proyecto puede tener éxito sin un plan. A veces un proyecto no sigue el plan de cerca, pero cada proyecto grande debe tener un plan. El plan le dice a los miembros del proyecto qué deben hacer, cuándo y cuánto tiempo deben hacerlo, y lo más importante son los objetivos del proyecto. Ellos dan la dirección del proyecto. El cliente, el demandante Después de determinar los deseos y necesidades de los clientes (que no siempre son los mismos), puede convertirlos en documentos de requisitos. Esos documentos le dicen a los clientes lo que van a recibir, y les dicen a los miembros del proyecto lo que van a construir.
7 Desarrollando software
8 HIGH ‐ LEVEL DESIGN El diseño de alto nivel también debe incluir información sobre la arquitectura del proyecto a un nivel relativamente alto. Debe dividir el proyecto en los grandes trozos que manejan las principales áreas de funcionalidad del proyecto. Dependiendo de su enfoque, esto puede incluir una lista de los módulos que necesita para construir o una lista de familias de clases.
9 LOW ‐ LEVEL DESIGN Después de que su diseño de alto nivel rompe el proyecto en pedazos, usted puede asignar esas piezas a los grupos dentro del proyecto de modo que puedan trabajar en diseños de bajo nivel. El diseño de bajo nivel incluye información sobre cómo debe funcionar esa pieza del proyecto. El diseño no necesita dar todos los detalles necesarios para implementar las piezas principales del proyecto, pero deben dar suficiente orientación a los desarrolladores que implementarán esas piezas.
10 DEVELOPMENT Después de haber creado los diseños de alto y bajo nivel, es hora de que los programadores se pongan a trabajar. (En realidad, los programadores deberían haber estado trabajando duro reuniendo los requisitos, creando diseños de alto nivel y refinándolos en diseños de bajo nivel, pero el desarrollo es la parte que la mayoría de los programadores disfrutan más.) Los programadores continúan refiriendo la Diseños de bajo nivel hasta que sepan cómo implementar esos diseños en código.
11 TESTING Efectivamente probar su propio código es extremadamente difícil. Si acaba de escribir el código, obviamente no ha insertado los errores intencionalmente. Si supiera que hay un error en el código, lo habrá arreglado antes de escribirlo. Esa idea a menudo lleva a los programadores a asumir su código es correcto (supongo que son naturalmente optimistas) por lo que no siempre la prueba es tan a fondo como debería. Cada vez que una prueba falla, los programadores vuelven a sumergirse en el código para averiguar qué está mal y cómo solucionarlo. Después de cualquier reparación, el código vuelve a la cola para volver a probar.
12 DEPLOYMENT DESPLIEGUE o Implementación Lo ideal es que despliegues tu software, los usuarios están muy contentos y todos viven felices para siempre. Si ha creado una nueva variante de Tetris y lo libera en Internet, su implementación puede ser tan simple. A menudo, sin embargo, las cosas no van tan suavemente. La implementación puede ser difícil, lenta y costosa. Por ejemplo, supongamos que ha escrito un nuevo sistema de facturación para realizar un seguimiento de los pagos de los millones de clientes de su empresa.
13 Algunos elementos del despliegue o implementación 1.Nuevos ordenadores para la base de datos 2.Una nueva red 3.Nuevos ordenadores para los usuarios 4.Formación de usuarios 5.Soporte in situ mientras los usuarios conocen el nuevo sistema 6. Operaciones paralelas mientras algunos usuarios conocen el nuevo sistema y otros usuarios siguen utilizando el sistema antiguo 7.Tareas especiales de mantenimiento de datos para mantener sincronizadas las bases de datos viejas y nuevas 8.Corrección masiva de errores cuando los 250 usuarios descubren docenas o cientos de errores que la prueba no descubrió 9.Tonterías que nadie podría predecir
14 MAINTENANCE Mantenimiento Tan pronto como los usuarios empiecen a utilizar el software, encontrarán los errores. (Este es otro axioma de software, los errores que estaban completamente ocultos a los probadores aparecen cuando los usuarios tocan la aplicación.) Por supuesto, cuando los usuarios encuentran errores, deben ser corregirlos. Como se mencionó anteriormente, la fijación de un error a veces conduce a otro error, así que ahora también se puede corregir ese error. Si su aplicación es exitosa, los usuarios la usarán mucho, y tendrán más probabilidades de encontrar errores. También piensan en un montón de mejoras, mejoras y nuevas características que quieren agregar de inmediato. Este es el tipo de problema que cada desarrollador de software quiere tener: los clientes que usan una aplicación más, están clamando por más mejoras. Es el objetivo de cada proyecto de ingeniería de software, pero sí significa más trabajo.
15 WRAP ‐ UP Envolver En este punto del proceso, probablemente estés listo para un descanso. Usted ha puesto en largas horas de planificación, diseño, desarrollo y pruebas. Has encontrado errores que no esperabas, y los usuarios te mantienen ocupado con informes de errores y solicitudes de cambio. Usted no quiere nada más que unas buenas y largas vacaciones. Hay una cosa más importante que usted debe hacer antes de que ir a Cancún: Usted necesita realizar un post-mortem. Usted necesita evaluar el proyecto y decidir lo que salió bien y lo que salió mal. Necesita averiguar cómo hacer que las cosas que salieron bien ocurren más a menudo en el futuro. Por el contrario, es necesario determinar cómo prevenir las cosas que salieron mal en el futuro.
16 Fin de la presentación