Sei sulla pagina 1di 35

Objetivos de la Asignatura

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.

Caractersticas del Software


Mantenibles. Debe ser posible que el software evolucione y que siga cumpliendo con sus especificaciones.
Confiabilidad.

El software no debe causar perjuicios econmicos en el caso de fallos. Apoya eficientemente la toma de decisiones.
Eficiencia.

El software no debe desperdiciar los recursos del sistema.


Utilizacin adecuada.

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.

Estructuras de datos que permiten a los programas manipular adecuadamente la informacin.


Documentos que describen la operacin y el uso de programas.

Problemtica del Desarrollo de Sistemas de Informacin

CRISIS DEL SOFTWARE


Sntomas

Baja Calidad del Software. Tiempo y Presupuesto Excedido. Confiabilidad Cuestionable. Altos requerimientos del personal para desarrollo y mantenimiento.

Crisis del Software


El 75% de los recursos informticos se destinan a la mantencin.

Solo el 25% de los recursos se destinan al desarrollo de nuevas aplicaciones.

No se valoran los beneficios de una correcta implementacin de Software


Los clientes quieren el Software para ayer. No tienen tiempo para dar informacin. Cambian constantemente sus requerimientos. Para que anlisis, diseo, documentacin, slo les interesa la aplicacin.

Mitos del SW - Cliente


Mito
Una declaracin general de los objetivos es suficiente para comenzar a escribir los programas, podemos dar los detalles ms adelante.

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.

Mitos del SW - Cliente


Mito
Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fcilmente ya que el software es flexible

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

Mitos del SW -Desarrolladores


Mito
Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado.

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.

Mitos del SW -Desarrolladores


Mito
Lo unico que se entrega al final del Proyecto, es el programa funcionando.

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.

Definicin de Ingeniera de SW (1)

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

Definicin de Ingeniera de SW (2)


Es la aplicacin de un enfoque sistemtico disciplinado y cuantificable al: Desarrollo, Operacin y Mantencin del Software

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

Definicin de Ingeniera de SW (3)

Anlisis del Problema

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

Areas de la Ingeniera de SW (1)


Segn estndar de la IEEE la Ingeniera de Software se divide en 4 grandes reas

Desarrollo de SW

Administracin de Proyectos

Mtricas de SW

Mantencin de SW

Areas de la Ingeniera de SW (2)


Desarrollo de Software Anlisis Diseo Construccin Pruebas e Implementacin Planificacin Organizacin Dotacin Direccin Control Al proceso Al producto Correccin de Errores Adaptaciones Perfecciones

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

A tiempo Confiable Apoya eficientemente con la toma de decisiones

Cumple con las fechas y plazos establecidos

Completo Cuenta con una buena documentacin. Cumple con los requerimientos establecidos

Componentes de un Producto SW
Procedimientos almacenados.

Registros de estados Planes de pruebas Testeos

Librerias, Funciones, Mdulos, etc.

Controles de cambio Control de versiones

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

Planificacin del Proyecto

Objetos reutilizables

Fcil de usar. Preciso Eficiente Completo Confiable

A travs de la aplicacin Apropiada y Controlada de: Mtodos, Tcnicas, Estndares, Procedimientos y Herramientas

A tiempo

Planes

Cdigos

Calidad

Arquitectura del Proceso de SW


Administracin de Proyectos (Planificar, Organizar, Controlar, Dirigir, Dotar)
Administracin de Proveedores

Desarrollo
Anlisis de negocio Anlisis de requerimientos Diseo Construccin Pruebas Aceptacin

Documentacin

Aseguramiento de la Calidad de Software


Administracin de Requerimientos Verificacin & Validacin Administracin de Configuracin

EL PROCESO
Lo definiremos como un marco de trabajo de las tareas que se requieren para construir/desarrollar Software de alta calidad.

Es proceso sinnimo de Ingeniera de Software?

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).

Ing. de SW, una Tecnologa multicapa


Herramientas: Suministran un soporte automtico para los mtodos y procesos.
Ejemplo: Herramientas CASE.

Herramientas Proceso

Proceso: Conjunto de pasos que ayudan a obtener el resultado esperado. Mtodos: Indican cmo construir tcnicamente el software.

Mtodos Enfoque de Calidad

+
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

Modelos de Proceso Genricos


Modelo Lineal o de Etapas Modelo de Cascada Modelo de Construccin de Prototipo Modelo Evolutivo Modelo Incremental. Modelo en Espiral. Desarrollo T4G (Tcnicas de cuarta generacin)

Modelo de Etapas o Lineal


Plan Operativo Definicin del problema y establecimiento del proyecto de desarrollo Visin profunda del problema desde el punto de vista de los desarrolladores y usuarios Especificacin de Requerimientos

Especificacin Funcional

Especifica la informacin sobre la cual el software a desarrollar trabajar

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

Permite describir cmo el software va a satisfacer los requerimientos

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

Modificaciones al software producto de errores, adecuaciones, etc.

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

Investigacin Investigacin Preliminar Preliminar

Definicin del problema, sus efectos organizacionales. Estudio de factibilidad

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.

Especificacin de Requerimientos y Prototipado

Anlisis y Especificacin

Diseo bsico del Prototipo

Diseo y Construccin

Construccin prototipo inicial

Evaluacin

Verificacin y requerimientos

Modificacin

Modificacin del Prototipo

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

Instalacin del sistema y modificaciones posteriores

Desarrollo Evolutivo
Especificacin Inicial
Definicin del problema y especificacin inicial en base a los requerimientos definidos

Desarrollo del Producto

Desarrollo del software en base a un proceso con nfasis en la rapidez de la liberacin

Implementacin uso y evaluacin

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

Versiones del Software

Re-especificacin

Re-definicin del problema en base a los nuevos requerimientos

Modelo Incremental
Requerimiento

Diseo

Diseo

Codificacin y Test Unitario

Codificacin y Test Unitario Integracin del Sistema

Integracin del Sistema

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

Evale alternativas, identifique y resuelva riesgos


Anlisis de Riesgos Anlisis de Riesgos

Anlisis de Riesgos
Anlisis de Proto Riesgos tipo 1 Prototipo Prototipo 3 2

Prototipo Operacional

REVISIN

Planea la siguiente fase

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.

Se utiliza cuando no se tiene claro los requerimientos.


Se eligen mltiples alternativas y se escoge la mejor. Tan pronto se termina un esfuerzo de desarrollo, otro comienza. En cada desarrollo ejecutado, se pueden seguir 4 pasos:

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.

Comparacin entre Modelos


CRITERIO Disponibilidad De recursos Complejidad del proyecto Entendimiento de requeriminetos Tecnologia del producto Manejo de la perspectiva del riesgo Conocimiento del dominio del problema CASCADA INCREMENTAL Todos Algunos PROTOTIPADO Algunos Media Vago Vago Si Regular ESPIRAL Algunos Alta Vago Vago Si Pobre

Baja Media Especifico Vago Vieja No Alto Nueva Si Regular

Potrebbero piacerti anche