Está en la página 1de 47

1

CAPAS DE LA INGENIERIA DE SOFTWARE


Herramientas Mtodos Proceso Un enfoque de calidad

El fundamento de la Ingeniera de Software es la calidad


2

Capas de la ingeniera de software


El fundamento de la ingeniera de software es la capa del proceso. El

proceso de la ingeniera de software es la unin que mantiene juntas las capas de tecnologa y que permite un desarrollo racional y oportuno de la ingeniera de software.

El proceso define un marco de trabajo para un conjunto de reas claves

de proceso (ACPs ) [PAU93] que se deben establecer para la entrega efectiva de la tecnologa de la ingeniera de software. Las reas claves del proceso forman la base del control de gestin de proyectos del software y establecen el contexto en el que se aplican los mtodos tcnicos, se obtienen productos del trabajo (modelos, documentos, datos, informes, formularios, etc.), se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente.

Capas de la ingeniera de software..


Los mtodos de la ingeniera de software indican cmo construir tcnicamente el software. Los mtodos abarcan una gran gama de tareas que incluyen anlisis de requisitos, diseo, construccin de programas, pruebas y mantenimiento. Los mtodos de la ingeniera de software dependen de un conjunto de principios que gobiernan cada rea de la tecnologa e incluyen actividades de modelado y otras tcnicas descriptivas. Las herramientas de la ingeniera del software proporcionan un enfoque automtico o semi-automtico para el proceso y para los mtodos. Cuando se integran herramientas para que la informacin creada por una herramienta la pueda utilizar otra, se establece un sistema de soporte para el desarrollo del software llamado ingeniera del software asistida por computadora (CASE)

Proceso
Ejecutar una serie de acciones, y que stas tengan cierto orden, dependencias, roles responsables, resultados, tiempos de ejecucin y herramientas de apoyo
Conjunto de prcticas relacionadas entre si, llevadas a cabo a travs de roles y por elementos automatizados, que utilizando recursos y a partir

de insumos producen un satisfactor de negocio para el cliente. (MoProSoft)

Proceso de Desarrollo de Software


Es

un conjunto de personas, estructuras de organizacin, reglas, polticas, actividades y sus procedimientos, componentes de software, metodologas, y herramientas utilizadas o creadas especificamente para definir, desarrollar, ofrecer un servicio, innovar y extender un producto de software.

Un Proceso Software :
Permite estandarizar esfuerzos, promover el reuso,

repeticin y constistencia entre proyectos. Provee la oportunidad de introducir mejores prcticas. Permite entender que las herramientas deben ser utilizadas para soportar un proceso.

Proceso de Desarrollo de Software


Es aquel en que las necesidades del usuario son traducidas en requerimientos de software, estos requerimientos transformados en diseo y el diseo implementado en cdigo, el cdigo es probado, documentado y certificado para su uso operativo. Concretamente "define quin est haciendo qu, cundo hacerlo y cmo alcanzar un cierto objetivo.

Proceso de Desarrollo de Software


El conjunto de actividades fundamentales que se encuentran presentes en los procesos de desarrollo de software son:

Especificacin de software: Define la funcionalidad y restricciones operacionales que debe cumplir el software. Diseo e Implementacin: Se disea y construye el software de acuerdo a la especificacin. Validacin: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente. Evolucin: El software debe evolucionar, para adaptarse a las necesidades del cliente.

Caractersticas del proceso


Entendible

Se encuentra el proceso bien definido y es entendible ?.

Visible

El proceso es visible al exterior ?.

Soportable

Puede el proceso ser soportado por herramientas CASE ?.

Aceptable

El proceso es aceptado por aquellos involucrados en el ?.

10

Caractersticas del proceso Confiable

Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ?.

Robusto

Puede continuar el proceso a pesar de problemas inesperados ?.

Mantenible

Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?.

Rapidez

Que tan rpido puede producirse el sistema ?.

11

Mtodos de Proceso de Software


Todo el desarrollo del software se puede caracterizar como un bucle de resolucin de problemas en el que se encuentran cuatro etapas distintas: definicin de problemas, desarrollo tcnico, status quo e integracin de soluciones.

12

Problemas en el Modelo del Proceso


Normalmente, las especificaciones son incompletas o

anmalas No existe una distincin precisa entre la especificacin, el diseo y la manufactura Solo hasta que el sistema se ha producido se puede probar El software no se puede remplazar siempre durante el mantenimiento

13

Representacion formal o simplificada de proceso de software. Modelos de Desarrollo de Software Modelos Genericos:
Modelo de Cascada

Separar en distintas fases de especificacin y desarrollo.


La especificacin y el desarrollo estn intercalados. Un modelo sirve de prototipo para la construccin del sistema final. Un modelo matemtico del sistema se transforma formalmente en la implementacin. El sistema es ensamblado a partir de componentes existentes.

Desarrollo Evolutivo

Prototipado

Transformacin Formal

Desarrollo basado en Reutilizacin

14

Modelo de Cascada (grfica)


Definicin de Requerimientos Diseo del Software y del Sistema

Implementacin y Prueba de unidades

Integracin y Prueba del Sistema

Operacin y Mantenimiento

15

Fases del Modelo de Cascada


Anlisis de requerimientos y definicin.
Diseo del sistema y del software. Implementacin y prueba de unidades

Integracin y prueba del sistema.


Operacin y mantenimiento. La dificultad en esta modelo reside, en la dificultad de

hacer cambios entre etapas.

16

Ciclo de Vida en V

17

Ciclo de Vida en V
Las caractersticas de este modelo son las mismas que las del ciclo de vida en

cascada, con el agregado de los controles cruzados entre etapas para lograr una mayor correccin.
Proviene del principio que establece que los procedimientos utilizados para probar si la aplicacin cumple las especificaciones ya deben haberse creado en la fase de diseo. Una fase adems de utilizarse como entrada para la siguiente, sirve para validar o verificar otras fases posteriores.

18

Documentacin Producto Proceso


Entrada
Requerimientos Comunicados Especificacin de requerimientos (documentos) Especificacin de Diseo ( documento) Modulos ejecutables de Software Producto de Software Integrado Producto de Software Entregado Ingenieria de Requerimientos Diseo Programacin

Producto Salida
Especificacin de requerimientos (documentos) Especificacin de Diseo ( documento) Modulos ejecutables de Software Producto de Software Integrado Producto de Software Entregado Requerimientos para cambio

Integracin
Entrega Mantenimiento

POR QU FALLA ALGUNAS VECES EL MODELO LINEAL?


1.- Como resultado, los cambios pueden causar confusin cuando el equipo del proyecto comienza. 2.-El modelo lineal secuencial requiere dificultades a la hora de afrontar la incertidumbre natural al comienzo de muchos proyectos. 3.-Un grave error puede ser desastroso si no se detecta hasta que se revisa el programa.
Cada uno de estos errores es real. Tiene un lugar definido e importante en el trabajo de la ingeniera del software proporciona una plantilla en la que se encuentran mtodos para anlisis, diseo, codificacin, y mantenimiento.

Desarrollo Evolutivo
Actividades Concurrentes
Versin Inicial

Especificacin

Descripcin del sistema

Desarrollo

Versiones Intermedias

Validacin

Versin Final

21

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

22

Prototipado
Prototipado exploratorio

El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a partir de una especificacin inicial. Se debe comenzar con unas especificaciones bien entendidas.

Prototipado de throw-away.

El objetivo es entender los requerimientos del sistema. Se puede comenzar con especificaciones poco entendidas.

23

Modelo de construccin de prototipos


Escuchar al cliente Construir/ revisar maqueta

El cliente prueba la maqueta

Modelo de construccin de prototipos

Por qu se usar este modelo?


El cliente no puede especificar todos los

requerimientos al principio. Existen dudas de alguna parte del sistema. Facilita un modelo al programador

Modelo Incremental

Combina elementos del modelo lineal con la filosofa de

creacin de prototipos El primer incremento a menudo es un producto esencial que el cliente utiliza o evala A partir de la evaluacin se planea el siguiente incremento y as sucesivamente Es interactivo por naturaleza Es til cuando el personal no es suficiente para la implementacin completa.

Modelo Incremental
Anlisis Diseo

Incremento 1 Cdigo Pruebas

Entrega de 1.er incremento Entrega de 2.o incremento Entrega de 3.er incremento

Anlisis

Diseo

Incremento 2 Cdigo Pruebas

Anlisis

Diseo

Incremento 3 Cdigo Pruebas

Anlisis

Diseo

Incremento 4 Cdigo Pruebas

Entrega de 4.o incremento

Tiempo de calendario

Modelo Incremental

Modelo de ensamble de componentes


El modelo utiliza el marco de trabajo tcnico del paradigma

orientado a objetos Incorpora muchas caractersticas del modelo en espiral La actividad de ingeniera comienza con la identificacin de clases candidatas Segn estudios realizados este modelo: reduce el tiempo de desarrollo en un 70% reduce el costo del proyecto en un 84%

Modelo de ensamble de componentes


Identificar componentes candidatos Construir n interacciones del sistema Poner componentes nuevos en la biblioteca Buscar componentes en biblioteca Extraer componentes si estn disponibles

Construir componentes si no estn disponibles

Modelo de desarrollo concurrente


Bajo desarrollo Cambios en espera Bajo revisin En lnea base

Cambios en espera

Actividades de anlisis

Hecho

Representa un estado de una actividad en ingeniera del software

Modelo del proceso orientado a objetos


Identificando clases candidatas

Planeacinn
i

Anlisis de riesgo

Customer Comunicacin Communication con el cliente

Construyendo nesima versin del sistema

Buscando clases en libreras

Agregar clase a las libreras Ingeniera si las clases no disponibles

Extrayendo clases si estn disponibles

Custome Evaluacin r Ev cliente del aluation

Ingeniera Construccin y rediseo

Anlisis OO Diseo OO CodificacinOO Pruebas OO

Problemas y Riesgos con los Modelos.


Cascada.

Alto riesgo en sistemas nuevos debido a problemas en las especificaciones y en el diseo. Bajo riesgo para desarrollos bien comprendidos utilizando tecnologa conocida.

Prototipado.

Bajo riesgo para nuevas aplicaciones debido a que las especificaciones y el diseo se llevan a cabo paso a paso. Alto riesgo debido a falta de visibilidad

Evolutivo.

Alto riesgo debido a la necesidad de tecnologa avanzada y habilidades del grupo desarrollador.

34

Manejo de Riesgos
La tarea principal del administrador consiste en minimizar

riesgos. El riesgo inherente en una actividad es se mide en base a la incertidumbre que presenta el resultado de esa actividad. Las actividades con alto riesgo causan sobre-costes en cuanto a planeacin y costos El riesgo es proporcional al monto de la calidad de la informacin disponible. Cuanto menos informacin, mayor el riesgo.
35

Modelos de Procesos Hbridos


Los sistemas grandes estn hechos usualmente de varios

subsistemas. No es necesario utilizar el mismo modelo de proceso para todos los subsistemas. El prototipado es recomendado cuando existen especificaciones de alto riesgo. El modelo de cascada es utilizado en desarrollos bien comprendidos.

36

Modelo de Proceso de Espiral


Determine objetivos alternativas y restricciones Anlisis de Riesgos Anlisis de Riesgos Anlisis de Riesgos Evale alternativas, identifique y resuelva riesgos Prototipo Prototipo 3 2 Prototipo Operacional

REVISIN

Anlisis de Proto Riesgos tipo 3

Plan de requerimientos Concepto de Plan del ciclo de vida Operacin

Simulaciones, modelos y benchmarks

Planea la siguiente fase

Requeri Diseo Diseo mientos de del Detallado SW 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 37

Modelo del Ciclo de Vida en Espiral

38

Fases del Modelo de Espiral


Planteamiento de Objetivos

Se identifican los objetivos especficos para cada fase del proyecto.

Identificacin y reduccin de riesgos.

Los riesgos clave se identifican y analizan, y la informacin sirve para minimizar los riesgos.

Desarrollo y Validacin.

Se elige un modelo apropiado para la siguiente fase del desarrollo.

Planeacin.

Se revisa el proyecto y se trazan planes para la siguiente ronda del espiral.

39

Plantilla para una ronda del espiral


Objetivos.
Restricciones. Alternativas.

Riesgos.
Resolucin de riesgos. Resultados. Planes. Garantas (commitments).

40

Ventajas del Modelo de Espiral


Centra su atencin en la reutilizacin de componentes y

eliminacin de errores en informacin descubierta en fases iniciales. Los objetivos de calidad son el primer objetivo. Integra desarrollo con mantenimiento. Provee un marco de desarrollo de hardware/software.

41

Problemas con el Modelo de Espiral


El desarrollo contractual especifica el modelo del proceso

y los resultados a entregar por adelantado. Requiere de experiencia en la identificacin de riesgos. Requiere refinamiento para uso generalizado.

42

Que modelo utilizar ?


Para sistemas bien comprendidos utiliza el Modelo de

Cascada. La fase de anlisis de riesgos es relativamente fcil. Con requerimientos estables y sistemas de seguridad crticos, utiliza modelos formales. Con especificaciones incompletas, utiliza el modelo de prototipado. Pueden utilizarse modelos hbridos en distintas partes del desarrollo.
43

Visibilidad de Procesos
Los sistemas de software son intangibles por lo que los

administradores necesitan documentacin para identificar el progreso en el desarrollo. Esto puede causar problemas..

El tiempo planeado para entrega de resultados puede no coincidir con el tiempo necesario para completar una actividad. La necesidad de producir documentos restringe la iteracin entre procesos. .El tiempo para revisar y aprobar documentos es significativo.

El modelo de cascada es an el modelo basado en

resultados mas utilizado.


44

Documentos del Modelo de Cascada


Actividad Anlisis de Requerimientos Definicin de Requerimientos Especificacin del Sistema. Diseo Arquitectural Documentos Producidos Documento de Requerimientos Documento de Requerimientos.
Especificacin Funcional, Plan de Pruebas de Aceptacin. Especificacin de la Arquitectura, y Plan de Pruebas del Sistema Especificacin de la Interfaces y Plan de pruebas de Integracin. Especificacin del diseo y Plan de prueba de Unidades.

Diseo de Interfaces
Diseo Detallado Codificacin Prueba de Unidades Prueba de Mdulos Prueba de Integracin Prueba del Sistema Prueba de Aceptacin

Cdigo de Programa Reporte de prueba de unidades Reporte de prueba de mdulos


Reporte de prueba de integracin y Manual de usuario final

Reporte de prueba del sistema


Sistema final mas la documentacin.
45

Visibilidad del Modelo


Modelo de Proceso
Modelo de Cascada

Visibilidad del Proceso


Buena visibilidad, cada actividad produce un documento o resultado
Visibilidad pobre, muy caro al producir docuementos en cada iteracin.

Desarrollo Evolutivo

Modelos Formales

Buena visibilidad, en cada fase deben producirse documentos. Visibilidad moderada. Importante contar con documentacin de componentes reutilizables. Buena visibilidad, cada segmento y cada anillo del espiral debe producir un documento.
46

Desarrollo orientado a la reutilizacin

Modelo de Espiral

Metodos Orientados a Objetos


Modelado de Casos de Uso
Proceso Unificado Programacin Extrema

47

También podría gustarte