Ingeniería de Software
UNIDAD Nº 4UNIDAD Nº 4
LIC. CONTRERAS PAMELA
Ingeniería de Software
Es una disciplina de Ingeniería de Sistemas: se ocupa de la aplicación
de teorías, métodos, herramientas para hacer que las cosas funcionen:
Software que sea fiable y trabaje en maquinas reales.
Teniendo en cuenta restricciones financieras, organizacionales y
técnicas que comprende todos los aspectos de la producción de
software.
Desde la especificación inicial al mantenimiento del sistema.
Administración y gestión del proceso de producción
Principios y metodologías para desarrollo y mantenimiento de
sistemas de software.
La informática como una ingeniería de software: para la creación de instrumentos que sustituyan o imiten al ser humano.
Calculo matemático
Almacenamiento y manejo de datos
Realización de algoritmos
Almacenamiento y manejo de informacion
Ejecución de tareas consideradas inteligentes
¿Qué es la Ingeniería de Sistemas?Es el estado actual de la evolución del trabajo de sistemas, desde un clásico concepto artesanal, hacia el logro de la producción industrial de sistemas.-
1. Hacer los planos del Sistemas(Análisis)2. Sobre los planos aprobados por sus usuarios, generar las instrucciones
de fabricación(Diseño)3. Sobre esas instrucciones aprobadas por los usuarios, proceder a
construir el sistema(Desarrollo e implementación)4. Entregar el sistema funcionando, a sus usuarios.5. Prepararse a dar apoyo al sistema durante su vida útil(mantenimiento)
¿Cómo construir un Sistema de Información? Identificar a los usuarios Definir la arquitectura del sistema Definir el software a desarrollar
Cada vez mas complejo Desarrollarlo rápidamente Se necesitan métodos mejores de desarrollo
Requerimientos de Usuarios
Sistema de Software
Ofrece un marco de trabajo genérico
LOS SISTEMAS INFORMATICOS ESTÁN COMPUESTO DE:
HARDWAREComponente físico tangible
Es la resolución psíquicaEs el cerebro humano
SOFTWAREComponente lógico intangible
Es la menteEs el pensamientoLa capacidad de inferencia
ACTIVIDADES DE LA INGENIERIA DE SOFTWARE
Analizar el problema hasta su total comprensión Diseñar el sistema software que cumpla las expectativas Programarlo, probarlo y mantenerlo hasta que se decida su retiro
¿Qué es el Software?
1. Instrucciones(programa de computadora) que cuando se ejecuta proporcionan la función y el rendimiento deseado
2. Estructura de datos que permiten a los programas manipular adecuadamente la información.-
3. Documentos que describen la construcción y uso de programas. Pressman
• Programas de ordenador y documentación asociada• Los productos de software puede ser
• Genéricos: desarrollados para clientes muy diversos• Hechos a medida: para un cliente particular de acuerdo a su especificación.- Sommerville
Ingeniería de Software e Ingeniería de Sistemas
La Ingeniería de Sistemas se refiere a todos los aspectos del desarrollo
de sistemas basados en computadora.
La Ingeniería de software es solo parte de este proceso.
Los especialistas de sistemas se encargan de especificar el sistema,
definir su arquitectura, integrar sus partes.
Al ser el software muchas veces la parte mas importante, las técnicas
de ingeniería de software se aplican en el proceso de ingeniería de
sistemas.-
Principios de la Ingeniería de SoftwarePrincipios de la gestión de Proyectos
1.La calidad debe ser siempre primero, se debe cuantificar2.Es posible desarrollar software de alta calidad3.Una buena gestión es mas importante que una buena calidad4.Las personas y el tiempo no son intercambiables.-
Principios técnicos:
5.Seleccionar el modelo de ciclo de vida adecuado6.Entregar productos al usuario lo antes posible7.Determinar el problema antes de escribir los requisitos8.Evaluar la alternativa de diseño9.Nunca diseñar sin documentación10.Minimizar la distancia intelectual entre el problema y el mundo real11.Inspeccionar el código antes de probarlo
Principios de actitud y de filosofía profesional:
12.Usar formalismos distintos para las distintas fases13.Las técnicas son anteriores a las herramientas14.Primero hazlo correcto, después hazlo rápido15.La gente es la clave el éxito16.Introduce las mejoras con cuidado17.Asunción de responsabilidades de hacerlo bien, o no hacerlo18.Las complejidad del software es creciente.
Evolución en la construcción de software
Años 70•De la programación al ciclo de vida
Salto conceptual del programa al productoCiclo de vida es el conjunto de ESTADOS por los que pasa el productodesde su nacimiento. El programa es un estado mas en el conjunto del
desarrollo de software.-Se definieron los demás estadosDescripción del problema: Análisis y especificaciónDiseño: de la arquitectura, de funciones, de datosCodificación e integración
Años 80•Del ciclo de vida al Proceso de SoftwareSalto conceptual del producto al proceso.El proceso de software es el conjunto de tareas que realiza el equipo de desarrollo.Definición de la IEEE de un estándar de proceso de proceso de software con la descripción de tareas, independiente del modelo de ciclo de vida.
Años 90•Del Proceso de Software a la evaluación de su madurez.Centro de investigaciones: fiabilidad y calidad del software.Condición necesaria para un Buen Producto
Proceso de softwareUn proceso de software es un conjunto de actividades y resultados asociados que conducen a la creación de un producto de software
Proceso de resolución de problema:Proceso de resolución de problema:
1.Decidir que que hacer2.Decidir comocomo hacerlo3.3.HacerloHacerlo4.4.ProbarProbar el resultado5.5.UsarUsar el resultado
Análisis de requerimientosDiseño de sistemaCodificaciónPruebasInstalación
El Proceso Software Básico debe estar formado por las siguientes 6 etapas:
1. Obtención de requisitos
2. Diseñar el sistema
3. Programar el código
4. Probar el sistema
5. Instalar el sistema
6. Mantener y ampliar.
Proceso Software
Conjunto de actividades interrelacionadas por diversas estrategias que transforman el producto software
Ciclo de VidaConjunto de estados por los que pasa el producto. Ciclo de transformaciones que el producto sufre a lo largo de su vida.
Proveen un esquema necesario para planificar, organizar, coordinar, asignar personal, presupuestar y dirigir las actividades de construcción de software
Ciclo de vida:
Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de requisitos hasta la finalización de su uso. ISO 12207-1
• Determina el orden de las fases del proceso• Establece los criterios de transición de una fase a otra
Actividades del Proceso
Obtención de
requisitos
Diseñar el
sistema
Programar el
código
Instalar, mantener ampliar
Probar el
sistema
Estados del Producto
Necesidad
Especific. de
requisitos
Diseño Sistema a Software
Programa
Modelos de ciclos de vida
Alternativos Espiral Desarrollo con
prototipado
Desarrolloincrementa
l
Tradicional
Refinamiento sucesivo
Cascada Refinamiento sucesivo
Cascada
Requisitos
Diseño
Codificación
Prueba
OperaciónCaracterísticas:•Obliga a especificar lo que el sistema debe hacer antes de construir el sistema•Obliga a definir como van a interactuar los componentes.•Permite detectar y resolver desviaciones sobre la planificación inicial•Requiere que el proceso de desarrollo genere una serie de documentos que posteriormente pueden utilizarse para la validación y el mantenimiento del sistema
Ventajas:•Las etapas están organizadas de un modo lógico•Cada etapa incluye cierto proceso de revisión.•Esta organizado de modo que se pase el menor numero de errores de una etapa a la siguiente•El ciclo es interactivo. El flujo básico es de arriba hacia abajo, no obstante, reconoce que los problemas de etapas inferiores afectan a las decisiones de las etapas superiores.-
Modelo de ciclo de vida en cascada
Requerimiento sistema global
Requerimiento sistema software
DiseñoPreliminar
Diseño detallado
Código
Integración software y hardware
Prueba del sistema software
Integracióndel software
Prueba de componente
Prueba de unidad
Visión alternativa del ciclo de vida en Cascada
• Los requisitos del sistema global se dividen en requisitos del hw y requisitos del sw
• Modelo alternativo que enfatiza en la validación de los productos.
Requisitos
Diseño de sistema
Diseño detallada
Implementación / pruebas unitarias
Pruebas de componentes
Pruebas de integración
Pruebas de aceptación
Valida requisitos
Verificadiseño
Modelo en cascada en V
Muestra la relación de las actividades de prueba con el análisis y diseño
A. Requisitos del sistema
A. Requisitos del sistema
A. Requisitos del softwareA. Requisitos del software
DiseñoDiseño
CodificaciónCodificación
A. Requisitos del softwareA. Requisitos del software
DiseñoDiseño
CodificaciónCodificación
A. Requisitos del softwareA. Requisitos del software
DiseñoDiseño
CodificaciónCodificación
………
Mantenimiento
Modelo incremental
El desarrollo incremental es el proceso de construir una implementación parcial del sistema global y posteriormente ir aumentando la funcionalidad del sistema.•Ventaja: Facilita la incorporación de nuevos requisitos, por lo tanto el software es fácil de mejorar.-•Desventaja: El equipo de desarrollo sacrifica la etapa de análisis a favor de una obtención rápida de la 1º versión, generando un 1º producto alejado de las necesidades del usuario.-
Recolección y refinamiento de requisitos
Producto de ingeniería
Diseño rápido
Construcción del prototipo
Evaluación del prototipo por el cliente
Refinamiento del prototipo
Parada
Comienzo Modelo de ciclo de vida Prototipo
Sigue el ciclo de vida tradicional , solo que su tiempo de desarrollo será bastante mas reducido. El usuario, mediante a utilización del prototipo, descubrirá los aspectos o requisitos no captados.
Modelo del ciclo de vida en Espiral
• En este modelo el radio representa el costo
• El ángulo representa el progreso obtenido en casa fase del
espiral
• Una distinción importante es que el producto estará
terminado al finalizar el espiral, no al terminal el ciclo
Ventajas:
• Su rango de opciones permite utilizar los modelos de
proceso de construcción de software tradicional, mientras
su orientación al riesgo evita muchas dificultades.
• Se centra en la eliminación de errores y alternativas poco
atractivas.
El Proceso Unificado
Es un proceso configurable aunque un único proceso no es adecuado para todas las organizaciones de desarrollo de software, el UP es adaptable y puede configurarse para cubrir las necesidades de proyectos pequeños y grandes.
Métodos agiles
Tratan de resolver el problema de los tiempos de desarrollo y de l evolución de los requerimientos
• Livianos : no se detienen en la planificación y documentación.• Adaptativos: rápida reacción a los cambios.• Iterativos: ciclos muy cortos, con entregables pequeños.
Principios agilistas:•Entrega temprana al cliente•Los requerimientos cambiantes son parte del desarrollo•Usuarios y desarrolladores trabajan juntos•Motivación de los desarrolladores•Los ejecutables entregados son la medida de avance•La simplicidad es primordial
Limitaciones:•Difícil de implementar en equipos de trabajo dispersos físicamente o demasiado grandes•Dificultad para desarrollar software grandes y complejos•No contemplan la reutilización de componentes•Problemas para utilizar herramientas CASE.
Top Related