¿Qué es la Ingeniería del Software?

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

Ciclo de vida de desarrollo de software
Desarrollo en espiral.
Proceso de desarrollo con UML y el modelo CMM
VALORACIÓN Y SELECCIÓN DE INVERSIONES EN RECURSOS INFORMÁTICOS
CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
Metodologías de desarrollo
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
Sistemas de Información Basados en Computadoras (CBIS)
Ingeniería de Software
10º2 Sergio Posso. Jonatán Agualimpia. Julia Blandón. Docente:
Otros métodos de Diseño de Sistemas...
Modelos de Proceso del Software
Ingeniería del Software
El Producto y el Proceso (Cap. I y II , “Ing
M.S.C. Ivette Hernández Dávila
HERRAMIENTAS CASE.
Ingeniería de Software Dr. Marcello Visconti Departamento de Informática Universidad Técnica Federico Santa María
INGENIERIA DEL SOFTWARE
Temas Unidad I – 1.1 Modelos Prescriptivos de Procesos Cascada
Modelo de ciclo de vida en espiral
Ingeniería de Software
Metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo.
Ingenieria de software
Ciclo de Vida del Software Paradigmas de Desarrollo
El Proceso de Software es la única manera de desarrollar sistemas de calidad. F. o V. Justifica tu respuesta. Que tiene que ver la globalización.
Tema 1: Introducción al análisis y diseño de aplicaciones software
Modelo de espiral Fue originalmente propuesto por Barry Boehm en Es una secuencia de actividades con retrospectiva de una actividad a otra, representado.
Técnicas de Programación
MODELO DE DESARROLLO DE SOFTWARE
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software
Ingeniería de Requerimiento
Gestión de la Configuración
EL APORTE DE LA INGENIERIA DE SOFTWARE A LAS ORGANIZACIONES
Tema 1: Introducción a la Ingeniería de Software
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
INGENIERIA DE SOFTWARE
Alexander Aristizabal Ángelo flores herrera
Tecnológico de Estudios Superiores Huixquilucan
Docente: Lic. M. Alina Vargas García Horario: Lunes 20:05 – 21:25 Miércoles 20:05 – 21:25 Gestión: 2011.
Problemáticas en la Ingeniería Mitos del Software
Capitulo 1 Roger S. Presman
Procesos de Desarrollo de Software
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
Ing. José Manuel Poveda.  Muchas personas asocian el término de Software con los programas de PC. Sin embargo, software no son sólo programas, sino todos.
Proceso de desarrollo de software Pablo Gervás F. Informática, UCM, noviembre 2007.
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Actividades en el Proceso de desarrollo de Software
GRUPO ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION SENA DESARROLLO ITERATIVO E INCREMENTAL INTEGRANTES STEVEN PALOMA ALEJANDRO BERNAL TATIANA.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Modelo Prescriptivos de proceso
Ingeniería del Software I
JHENNIFER SANCHEZ ORTIZ CRISTIAN CAMILO RIASCOS ALEJANDRO PINEDA SANCHEZ FERNANDO JAVIER REBELLON.
El producto de software y su ciclo de vida
Ciclo de Vida del Software
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
INGENIERIA DE SOFTWARE
Proceso de desarrollo de Software
¿Qué es la Ingeniería De Software? Ingeniería de Software.
INTRODUCCION AL DESARROLLO DE PROYECTO SOFTWARE. ¿Qué es software? Elemento lógico del sistema.
Fundamentos de Computación
Maestría en Gerencia en Tecnología de la Información Cátedra Ingeniería de Software Profesora: Mary Carmen Milano. Integrantes: Rosa Arellano Osbaldo Goitia.
Software de Comunicaciones
Modelo de procesos de software
Experiencia de México Taller sobre TIC y Compras Públicas.
1 CICLO DE VIDA. 2 CICLO DE VIDA DE Los Sistemas de Información “ Es un proceso por el cual los analistas de sistemas, los ingenieros computacionales,
Desarrollo iterativo e incremental
Transcripción de la presentación:

¿Qué es la Ingeniería del Software? “(1) La aplicación de un enfoque sistemático, disciplinado y cuantificable hacia el desarrollo, operación y mantenimiento del software; es decir la aplicación de la Ingeniería al software. (2) El estudio de enfoques como (1).” [IEEE, 1993]

Aspectos clave en la IS Escala del problema Calidad y productividad Consistencia Manejo del cambio Desafío: Lograr consistentemente alta calidad y productividad en problemas cuya escala puede ser grande y donde pueden ocurrir cambios continuamente es el principal desafío de la Ingeniería del Software.

¿Qué es el Software? Producto que construyen y diseñan los Ingenieros de Software. Comprende: Programas Datos (texto, números, imágenes, sonidos, video) Documentación.

Características del Software Producto y vehículo. Lógico, no físico. Se desarrolla, no se fabrica. No se desgasta, se deteriora. Mayoría hecho a medida, tendencia a reusar.

Aplicaciones del Software SW de Sistemas SW de Tiempo Real SW de Negocio o Gestión SW de Ingeniería o Científico SW Embebido o Empotrado SW de PC SW de IA SW basado en la Web

Mitos del Software Propagaron confusión e información errónea. Del administrador del proyecto Mitos del SW Del usuario final o cliente Del desarrollador

Mitos del Administrador Los estándares y procedimientos son toda la guía que los Ing. de software necesitan. Si contamos con la última generación de computadoras tenemos todas las herramientas necesarias. Si fallamos en la planificación, podemos añadir más programadores y adelantar el tiempo perdido.

Mitos del Cliente Una declaración general de los objetivos del cliente es todo lo necesario para empezar a programar. Los requisitos cambian continuamente, pero los cambios pueden acomodarse fácilmente porque el software es flexible. Definición Desarrollo Después de la Entrega C o s t e 1x 1,5 – 6x 60 – 100x

Mitos del Desarrollador Una vez que se escribió el programa y se lo hizo funcionar, el trabajo del Ing. de software está terminado. No hay forma de comprobar la calidad del software hasta no poder ejecutarlo en alguna máquina. Lo único que se entrega al terminar el proyecto es el programa funcionando.

El Proceso de Desarrollo de Software ¿Qué es? Marco de trabajo de tareas a realizar para desarrollar SW de alta calidad. ¿Es sinónimo de Ingeniería de Software? Define un enfoque para desarrollar software en forma ingenieril pero la Ing. de Soft. comprende, además, Métodos y Herramientas.

¿ Qué es la Ingeniería del Software? Tecnología multicapa (Pressman) Herramientas Métodos Proceso Capa fundamental Un enfoque de calidad

El Proceso – Visión Genérica Ing. Sistemas Planificación Análisis de req. Definición (QUE) Desarrollo (COMO) Diseño G. de Código Prueba Mant. Correctivo Mant. Adaptativo Mant. Perfectivo Mant. Preventivo o Reingeniería del Software Soporte (CAMBIOS)

Modelo Lineal Secuencial Ciclo de vida clásico, modelo en cascada + antiguo, + usado Enfoque sistemático secuencial

Modelo Lineal Secuencial Críticas: Proyectos reales raras veces se ajustan al modelo. Raras veces cliente expone todos los req. de entrada. Producto operativo al final Paciencia (cliente) alta. Todo o nada. Consejo: Usar cuando todos los requerimientos han sido establecidos claramente de entrada o la organización está familiarizada con el dominio.

Modelo de Construcción de Prototipos No están claros de entrada los requisitos. Sistemas nuevos, poco conocimiento del dominio Reduce el riesgo. Iterativo. Hasta cuando se itera? Working prototype, desechar y empezar con desarrollo de sistema. Escuchar al cliente Validar prototipo Construir prototipo

Modelo de Construcción de Prototipos Críticas: Producto de mala calidad. Cliente cree que es el sistema. Peligro de familiarización con malas elecciones iniciales (quick and dirty). Consejo: Usar cuando inicialmente no están claros los requisitos. Definir claramente al inicio las reglas de juego con el cliente. No ceder a presión del cliente.

Modelo de Desarrollo Rápido de Aplicaciones (DRA) Lineal secuencial con ciclo extremadamente corto. Candidatos: sistemas que se pueden modularizar => equipos de desarrollo paralelos. Basado en el uso de componentes y T4G.

Generación de Aplicación Modelo DRA Equipo # n Modelo de Negocio Modelo de Datos Modelo de Proceso Generación de Aplic. Prueba y Entrega Equipo # 2 Modelo de Negocio Modelo de Datos Modelo de Proceso Generación de Aplic. Prueba y Entrega Equipo # 1 Modelo de Negocio Modelo de Datos Modelo de Proceso Generación de Aplicación Prueba y Entrega ¿Qué información? ¿Quién la genera? ¿A dónde va? Identificación de objetos y relaciones Descripciones de procesos de negocio para ABM de objetos de MD T4G + Reusabilidad de Componentes Prueba de componentes nuevos e interfaces. Tiempo <-------------------------------60-90 días------------------------>

Modelo DRA Críticas: Proyectos grandes => gran nro. de personas. Alto compromiso en tiempo. No apto para todo tipo de sistema (ej. no modularizable, bajo reuso de componentes). Desaconsejable cuando existen riesgos tecnológicos altos.

Modelos Evolutivos Se adaptan más fácilmente a los cambios introducidos a lo largo del desarrollo. Iterativos En cada iteración se obtienen versiones más completas del SW. Modelos Evolutivos: Modelo Incremental Modelo en Espiral Modelo de Desarrollo Basado en Componentes …

Modelo Incremental Combina lineal secuencial (aplicado repetidamente) con filosofía interactiva de construcción de prototipos. Cada iteración devuelve un “Incremento” o versión operativa. Útil cuando no se está seguro de cumplir con plazos de tiempo o se tiene una fecha imposible de cambiar.

Modelo Incremental Análisis Diseño Prueba Codif. Entrega 1er Inc. Inc1 Tiempo Análisis Diseño Prueba Codif. Entrega 1er Inc. Inc1 Entrega 2do Inc. Inc2 Entrega 3er Inc. Inc3

Modelo en Espiral

Modelo en Espiral Permite usar el prototipado en todas las etapas de la evolución para reducir el riesgo. Mantiene el enfoque sistemático de los pasos sugeridos por el lineal secuencial, pero lo incorpora dentro de un marco iterativo más real. Críticas: Difícil de convencer a los clientes de que es controlable. Requiere mucha habilidad para el análisis de riesgos y de esta habilidad depende su éxito.

Desarrollo Basado en Componentes Basado en modelo en Espiral (evolutivo e iterativo) + Tecnologías de Objetos. Enfatiza la Reusabilidad. Planificación Análisis de Riesgos Ingeniería, Construcción y Entrega Evaluación del Cliente Comunicación con el Cliente Ident. Comps. candidatos Buscar Comps. en biblioteca  Construir Extraer Colocar en biblioteca Construir iteración V F

Modelo de Métodos Formales Usan notación rigurosa. Especificaciones sin ambigüedades. Útiles para sistemas críticos. Demostraciones formales de propiedades. Dificulta validación con cliente => combinación con otras técnicas semi-formales. Buen nivel de manejo de Lógica y Algebra.

Técnicas de Cuarta Generación (T4G) Herramientas que facilitan la realización de especificaciones a alto nivel  código fuente. Basadas en Lenguajes de 4ta Generación (L4G). Ventajas: Reducción en tiempo de desarrollo. Lenguaje de Consulta a BD Generador de Pantallas Planillas de Cálculo Generador de Informes Sistema de Administración de Base de Datos Un entorno de desarrollo de software basado en Técnicas de 4ta Generación Generador de Código

Técnicas de Cuarta Generación (T4G) Críticas: Código ineficiente. No mas fáciles de usar que L3G. Mantenimiento cuestionable. Consejo: En sistemas grandes, aunque se usen T4G se debe hacer análisis, diseño y pruebas.

El Proceso Modelo de Madurez de Capacidad (CMM) http://www.sei.cmu.edu Nivel 1: Inicial Nivel 2: Repetible Nivel 3: Definido Nivel 4: Gestionado Nivel 5: Optimizado