Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
El alumno debe saber utilizar los conceptos bsicos de la Ingeniera de Software (Tcnicos y de Gestin)
Manejar Tcnicas de Gestin para planificar, Organizar, Supervisar y Controlar Proyectos de Software. Entender que el desarrollo de un Software implica la utilizacin de mtodos, mediciones, diseo y prueba para crear un Software de Calidad. Aplicar los conocimientos adquiridos a travs de ejemplos prcticos. Aprender haciendo.
Productos de Software
Productos Genricos. Son producidos por una organizacin para ser vendidos al mercado. Productos hechos a medida. Sistemas que son desarrollados bajo pedido a un desarrollador especfico.
La mayor parte del gasto del software es en productos genricos, pero hay ms esfuerzo en el desarrollo de los sistemas hechos a medida.
El software no debe causar perjuicios econmicos en el caso de fallos. Apoya eficientemente la toma de decisiones.
Eficiencia.
El software debe contar con una interfaz de usuario adecuada y slida documentacin.
QU ES SOFTWARE?
El software son instrucciones (programas) que cuando se ejecutan proporcionan la Funcin y el rendimiento deseado.
Baja Calidad del Software. Tiempo y Presupuesto Excedido. Confiabilidad Cuestionable. Altos requerimientos del personal para desarrollo y mantenimiento.
Realidad
Una mala definicin inicial es la principal causa del trabajo intil en software. Es esencial una descripcin formal y detallada del mbito de la informacin. Es necesaria una exhaustiva comunicacin entre el cliente y el analista.
Realidad
Es verdad que los requisitos del software cambian, pero el impacto del cambio varia segn en el momento que se presenten.
Definicin: Bajo Impacto Desarrollo: Alto Impacto Despus de la entrega: Crtico Impacto
Realidad
Cuando ms pronto se comience a escribir cdigo, ms se tardar en terminarlo Entre el 50% y el 70% de todo el esfuerzo dedicado a un programa se realizar despus de que se la haya entregado al cliente por primera vez.
Realidad
Un programa que funciona es slo una parte de una configuracin del software que incluye programas, documentos y datos. La documentacin es la base de un desarrollo y, lo que es ms importante, proporciona guas para la tarea de mantenimiento del software.
Es una disciplina que ofrece mtodos y tcnicas para desarrollar y mantener Software de Calidad el cual tiene como objetivo satisfacer los requerimientos del Cliente
DEFINICION DE LA IEEE*
IEEE: The Institute of Electrical and Electronics Engineers, Instituto de Ingenieros Elctricos y Electrnicos; Es una asociacin tcnico-profesional mundial dedicada a la estandarizacin de TI entre otras cosas
La Ingeniera de Software es una disciplina de la Ingeniera que concierne a todos los aspectos de la produccin de software.
Diseo de la Solucin
Implementacin de la Solucin
Desarrollo de SW
Administracin de Proyectos
Mtricas de SW
Mantencin de SW
Aseguramiento de calidad
Evaluar
Medir Controlar Mantener Mejorar Entrenar Educar
Administracin de proyectos
Mtricas de software
Mantencin de software
Objetivo de la Ingeniera de SW
Es producir Software
Completo Cuenta con una buena documentacin. Cumple con los requerimientos establecidos
Componentes de un Producto SW
Procedimientos almacenados.
Objetos Reutilizables Planificacin del Proyecto Registros de administracin Configuracin Documentacin Planes de Control de Calidad Manuales Cdigos al desarrollo
Revisiones
Inspecciones Resultado de los Planes
Fuentes
Ejecutables
De usuarios De procedimientos
Importante
Documentos de desarrollo
Objetos reutilizables
A travs de la aplicacin Apropiada y Controlada de: Mtodos, Tcnicas, Estndares, Procedimientos y Herramientas
A tiempo
Planes
Cdigos
Calidad
Desarrollo
Anlisis de negocio Anlisis de requerimientos Diseo Construccin Pruebas Aceptacin
Documentacin
EL PROCESO
Lo definiremos como un marco de trabajo de las tareas que se requieren para construir/desarrollar Software de alta calidad.
SI y NO, un proceso de software define el enfoque que se toma cuando el software es tratado por la ingeniera . Pero la tecnologa del software tambin acompaa a las tecnologas que pueblan el proceso (mtodos tcnicos y herramientas automatizadas).
Herramientas Proceso
Proceso: Conjunto de pasos que ayudan a obtener el resultado esperado. Mtodos: Indican cmo construir tcnicamente el software.
+
Estrategia de Desarrollo
Modelo de Proceso
Para resolver los problemas reales de una empresa, el equipo de ingenieros de SW deben incorporar una ESTRATEGIA DE DESARROLLO que acompae al Proceso, Mtodos y Herramientas.
Esta estrategia a menudo se llama
Modelo de Proceso
Como se selecciona un Modelo?
Se selecciona un modelo de proceso segn:
La naturaleza del proyecto La aplicacin que se necesite Los Mtodos y herramientas a utilizar Los controles y entregas que se requieran
Especificacin Funcional
Modelo lineal considera que cada etapa debe ir a continuacin de la anterior. Pone nfasis en la documentacin que resulta de cada una y que es la entrada de la siguiente. Todo tendiente a formar una cadena de produccin de Software.
Diseo
Implementacin
Aqu es donde el Software a ser desarrollado se codifica Es la fase en donde todos los mdulos codificados independientemente se juntan
Integracin
Validacin y Verificacin
Etapa donde el software es probado para verificar que es consistente con las definiciones
Mantencin
Modelo Cascada
Anlisis Requerimientos
Diseo
Implementacin
Pruebas Mantenimiento
Tambin conocido como Ciclo de vida clsico. Es una extensin del Modelo de Etapas pero con un reconocimiento de ciclos de retroalimentacin entre etapas sucesivas esto ltimo con el objeto de minimizar el costo del retrabajo involucrado en retroalimentaciones a travs de muchas etapas
Modelo Prototipo
Todos los requerimientos no son conocidos al principio. Pone nfasis en la etapa de Especificacin de Requerimientos a travs de la construccin de Prototipos que aproximan al usuario a la idea final del sistema con el propsito de poder clarificar los requerimientos Los usuarios lo prueban y aaden requerimientos.
Anlisis y Especificacin
Diseo y Construccin
Evaluacin
Verificacin y requerimientos
Modificacin
Diseo Tcnico
Diseo detallado. Rediseo del Prototipo y documentacin para programacin y mantencin Las especificaciones del diseo tcnico son implementadas y probadas
Programacin y Prueba
Se hace una implementacin parcial del sistema y se prueba. Se utiliza en sistemas complejos.
Operacin y Mantencin
Desarrollo Evolutivo
Especificacin Inicial
Definicin del problema y especificacin inicial en base a los requerimientos definidos
Implantacin y uso del software en ambiente de explotacin, monitoreo de los nuevos requerimientos
Modelo de desarrollo que ha diferencia de los prototipos, busca reemplazar el viejo sistema por uno nuevo que tiene la propiedad de satisfacer los nuevos requerimientos lo mas rpido posible. El desarrollo evolutivo asume que los requerimientos estn sujetos a cambios continuos y la estrategia para enfrentarlos es tener la capacidad de enfrentarlos
Re-especificacin
Modelo Incremental
Requerimiento
Diseo
Diseo
Operacin y Mantencin
Operacin y Mantencin
En este modelo el sistema se desarrolla por partes que se van incrementando y juntando posteriormente. Es menos arriesgado construir un sistema pequeo que uno grande. Los errores producidos en un incremento son solucionados para el prximo incremento.
Modelo en Espiral
Determine objetivos alternativas y restricciones
Anlisis de Riesgos
Anlisis de Proto Riesgos tipo 1 Prototipo Prototipo 3 2
Prototipo Operacional
REVISIN
Simulaciones y modelos Plan de requerimientos Concepto de Plan del ciclo de vida Operacin RequeriDiseo Diseo mientos de SW del Detallado Plan de Validacin de Producto Codificacin Desarrollo Requerimientos Prueba de Unidades Plan de Integracin Diseo Prueba de y Prueba V &V Prueba de Integracin Desarrolla y verifica Aceptacin el siguiente nivel Servicio del producto
Modelo Espiral
Se construyen sucesivas versiones del software cada vez ms complejas.
1.- Determinar que se quiere lograr. 2.- Determinar las rutas alternativas para logras las metas. 3.- Por cada una analizar riesgos y resultados finales y selecciona el mejor. 4.- Seguir la alternativa del paso 2.
Establecer que se tiene terminado. Cada vuelta de la espiral se resuelve un conjunto particular de problemas del cliente. Despus de cada vuelta realizamos un prototipo.
Ventajas y Desventajas
Modelo Etapas y Cascada Las ventajas que presentan tanto el modelo de etapas y de cascada tiene relacin con la idea de postular un marco de trabajo claro, que reconoce y define las actividades involucradas en el desarrollo de software, permitiendo establecer relaciones de cooperacin entre ellas. Corresponden, tambin, a los mtodos ms usados en desarrollo de software y que han sido exitosos durante dcadas tanto en el desarrollo de grandes sistemas como en el de pequeos. Tanto el modelo de etapas como el de cascada, presentan algunas dificultades comunes. Por ejemplo, la especificacin de los problemas. Ambos mtodos asumen que el diseador puede distinguir entre lo que el sistema debe hacer y como el sistema lo har; pero algunos problemas no pueden ser divididos tan fcilmente para ser atacados desde este prisma.
Por otro lado, generalmente los requerimientos son especificados al inicio del proyecto y, paradojalmente, cuando se tiene la claridad suficiente para definir precisamente lo que se quiere es cuando se est en las ltimas etapas del proyecto. Esto es consecuencia, en general, de que los clientes no estn familiarizados con la tecnologa, con lo cual producen requerimientos muy vagos, que son interpretados arbitrariamente por los desarrolladores. Otro factor importante es que estos mtodos asumen que una vez que los requerimientos han sido definidos entonces ellos no cambiarn ms. Pero, dependiendo de la complejidad de el proyecto, la implementacin final puede ocurrir meses o, eventualmente, aos despus de que los requerimientos han sido especificados; as, en las ltimas etapas del proyecto, los requerimientos pueden haber cambiado. Existira un nfasis en la elaboracin de documentos. El sistema completo es descrito y registrado en papel, cada etapa produce cierta cantidad de documentos. Por ltimo, se ha detectado que el enfoque lineal de estos mtodos no sera el adecuado para reflejar el proceso de desarrollo de software.
Ventajas y Desventajas
Modelo Prototipo Las ventajas : reduccin de la incertidumbre y del riesgo, reduccin de tiempo y de costos, incrementos en la aceptacin del nuevo sistema, mejoras en la administracin de proyectos, mejoras en la comunicacin entre desarrolladores y clientes, etc. Desventajas : la dependencia de las herramientas de software para el xito ya que la necesidad de disminucin de incertidumbre depende de las iteraciones del prototipo, entre ms iteraciones existan mejor y esto ltimo se logra mediante el uso de mejores herramientas lo que hace a este proceso dependiente de las mismas. Tambin, no es posible aplicar la metodologa a todos los proyectos de software y, finalmente, la mala interpretacin que pueden hacer los usuarios del prototipo, al cual pueden confundir con el sistema terminado. Modelo Evolutivo Problemas Poca visibilidad en el proceso Los sistemas estn pobremente especificados Se requieren habilidades especiales. Aplicabilidad Para sistemas interactivos pequeos o medianos. Para partes de sistemas grandes (p.ej. la interfaz de usuario). Para sistemas de corta vida.