La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniería de Software

Presentaciones similares


Presentación del tema: "Ingeniería de Software"— Transcripción de la presentación:

1 Ingeniería de Software

2 Referencias Brookshear: Introducción a las Ciencias de la Computación, Cap 6 Ingeniería de Software Ian Sommerville: Ingeniería de software, 6ª Edición

3 ¿Qué es Software? Programas computacionales y documentación asociada.
Los productos de software se pueden desarrollar para un cliente en particular o pueden ser desarrollados para un mercado general. Productos de software pueden ser: Genéricos: desarrollados para ser vendidos a un tipo de clientes. Específicos: desarrollado para un cliente de acuerdo a sus necesidades específicas.

4 ¿Qué es Ingeniería de Software?
La Ingeniería de Sofware es una disciplina de la Ingeniería que se preocupa de todos los aspectos de la producción de software. aplicación de los métodos de la ingeniería al proceso de desarrollo de software: Diseño Construcción Mantenimiento

5 La disciplina – una analogía
Diseñar y supervisar la construcción de un edificio de oficinas de varios pisos Recursos? Dinero, tiempo, otros División del proyecto en partes manejables? Asegurar que las partes sean compatibles? Mecanismo de comunicación entre los encargados de las diversas partes? Medición del grado de avance? Muchas otras…..

6 Diferencias con el software
Tolerancias para aceptación Una lavadora que difiere el 2% de su tiempo de trabajo con el deseado vs Sistema de contabilidad cuya exactitud difiere en un 2% ……?

7 Diferencias con el software
Métricas Sistemas de medición de la calidad. Para un sistema electromecánico: Tiempo medio entre fallas (el software no se desgasta)‏ ¿El número de líneas de un programa será una buena medida de su complejidad?

8 El ciclo de vida del software
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. Modificación: para adaptarse a los cambios del entorno. (en otros productos se conoce como reparación o mantención)‏

9 La fase de desarrollo del ciclo de vida del software
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

10 Algunas herramientas CASE Colaboran con
Computer – Aided Software Engineering Ingeniería de software asistida por computador Colaboran con Elaboración de diagramas de flujo Diagramas entidad relación Diccionarios de datos Generadores de código

11 ¿Qué atributos tiene un buen Software?
El software debería entregar la funcionalidad y desempeño requeridos por el usuario y debería ser mantenible, confiable y usable. Mantenibilidad El software debe evolucionar para cubrir necesidades cambiantes. Confiabilidad El software debe ser confiable. Eficiencia El software no debe malgastar los recursos del sistema. Usabilidad El software debe ser usable por los usuarios para quienes se diseñó.

12 Técnicas de desarrollo de software

13 Modelo de Cascada Diseño de sistemas y software Definición de requerimientos Implementación y prueba de unidades Integración y prueba de sistema Operación y mantenimiento Inconveniente: dificultad para incorporar cambios después de que el proceso parte. 13

14 Empleo de prototipos Desarrollo de versiones simplificadas
Para ser analizadas antes de continuar el desarrollo Facilitan el aprendizaje frente a situaciones nuevas o desconocidas Elimina la necesidad de un desarrollo en cascada o secuencial, permite un desarrollo iterativo o en espiral El prototipo puede ser desechable o evolutivo

15 Desarrollo evolutivo Desarrollo exploratorio Prototipos desechables
El objetivo es trabajar con los clientes y evolucionar hacia un sistema final desde una especificación inicial. Debería partir con requerimientos bien conocidos. Prototipos desechables El objetivo es entender los requerimientos del sistema. Debería comenzar con requerimientos pobremente conocidos. 15

16 Desarrollo evolutivo Actividades concurrentes Versión inicial
Especificación Versión inicial Bosquejo de la descripción Desarrollo Versiones intermedias Validación Versión final

17 Desarrollo evolutivo Problemas Aplicabilidad
Los sistemas a menudo resultan pobremente estructurados. Puede ser necesario contar con habilidades especiales (por ejemplo, lenguajes para prototipos rápidos). Aplicabilidad Para sistemas interactivos pequeños o de mediano tamaño. Para partes de sistemas grandes (por ejemplo, la interfaz del usuario). Para sistemas de corta vida útil.

18 Diseño descendente o top-down
Refinamiento por pasos sucesivos Sistema jerárquico de refinamientos Como resultado puede tenerse directamente una estructura de módulos

19 Estructura de un sistema de sueldos simplificado
Procesar Sueldos Calcular ingresos Calcular descuentos Calcular impuestos Procesar Sueldos Descuentos legales Otros descuentos

20 Diseño ascendente o bottom-up
Identifica las tareas individuales Utiliza las tareas individuales como herramientas abstractas para resolver problemas mas complejos. Estos bloques o módulos individuales podrían ser reutilizados en otras aplicaciones Ej.: filtros de Sistemas operativos familia Unix (Linux)‏

21 Modelo en espiral del proceso de Software
Determinar objetivos, alternativas y restricciones Evaluar alternativas e identificar y resolver riesgos Análisis de riesgos Análisis de riesgos Análisis de riesgos Prototipo operacional Prototipo 3 Análisis de riesgos Prototipo 2 REVISIÓN Proto-tipo 1 Simulaciones, modelos, pruebas comparativas Plan de requerimientos Plan de ciclo de vida Concepto de operación Requerimientos de software Diseño del producto Diseño detallado Validación de requerimientos Plan de desarrollo Código Prueba de unidades Diseño de V&V Integración y plan de prueba Prueba de integración Planear la siguiente fase Prueba de aceptación Desarrollo, verificar producto del siguiente nivel Servicio 21

22 Sectores del modelo en espiral
Fijación de Objetivo Se identifican objetivos específicos para la fase. Identificación de riesgo y reducción Riesgos son identificados y se realizan actividades para reducir los riesgos clave. Desarrollo y validación Se escoge un modelo de desarrollo para el sistema que puede ser cualquiera de los modelos genéricos. Planificación Se revisa el proyecto y se planifica la siguiente fase de la espiral.

23 Diagramas de flujo de datos
Representación gráfica de las trayectorias de los datos en un sistema. Calcular ingresos Calcular descuentos Hojas de asistencia ……………………… Tabla sueldo base Ingresos brutos Base de datos de empleados

24 Diagramas entidad-relación
Representación gráfica de los elementos de información o entidades manipulados por el sistema, y de sus relaciones imparte Asiste a Profesor n clase n n alumno 1

25 Validación de Software
Verificación es mostrar que un sistema adhiere a las especificaciones. Validación: alcanza los requerimientos del cliente del sistema. Involucra los procesos de chequeo y revisión, y las pruebas del sistema. Las pruebas del sistema consideran la ejecución del mismo con casos de prueba que se derivan desde la especificación de datos reales para ser procesados por el sistema.

26 Documentación La documentación se requiere para los siguientes fines:
Aprender a utilizar el sistema Documentación del usuario Realizar modificaciones o mantención Documentación técnica


Descargar ppt "Ingeniería de Software"

Presentaciones similares


Anuncios Google