procesos de desarrollo de software víctor h. bustamante o. vhbo@yahoo.es facultad de ingeniería de...
Post on 24-Jan-2016
224 Views
Preview:
TRANSCRIPT
Procesos de Desarrollo de Software
Víctor H. Bustamante O.vhbo@yahoo.es
Facultad de Ingeniería de Sistemas e InformáticaUniversidad Nacional Mayor de San Marcos
2 perusoftware.homelinux.org
Ingeniería de Sw según PRESSMAN
Es una tecnología multicapa que contempla:
Herramientas Métodos Proceso (FUNDAMENTAL) Basado en un enfoque de calidad
3 perusoftware.homelinux.org
Proceso: Marco de trabajo aplicable a un conjunto de áreas clave del proceso para entregar software de calidad. Las ACP establecen el contexto donde se aplican los métodos, se pruducen documentos, se asegura calidad y se gestiona el cambio.
4 perusoftware.homelinux.org
Métodos: Indican “COMO” construir técnicamente el software, incluyen actividades de modelado y otras técnicas descriptivas.
Herramientas: Proporcionan un enfoque automático para el proceso y para los métodos.
5 perusoftware.homelinux.org
6 perusoftware.homelinux.org
¿Qué es un proceso de desarrollo?
Deseos, necesidades, Especificaciones, …
Software
7 perusoftware.homelinux.org
Proceso de desarrollo de SW
Propósito del proceso de desarrollo de Software
La producción eficaz y eficiente de un producto software que reúna los requisitos del cliente.
Este proceso es intensamente intelectual, afectado por la creatividad y juicio de las personas involucradas.
Requisitos nuevoso modificados
Sistema nuevoo modificado
Proceso de Desarrollo de Software
Requisitos nuevoso modificados
Sistema nuevoo modificado
Proceso de Desarrollo de Software
8 perusoftware.homelinux.org
Características del desarrollo de SW
El SW en sí es complejo, es prácticamente inviable conseguir un 100% de confiabilidad de un programa por pequeño que sea.
El SW es intangible y por lo general muy abstracto, esto dificulta la definición del producto y sus requisitos, sobre todo cuando no se tiene precedentes en productos software similares.
Los cambios en los requisitos son inevitables…
9 perusoftware.homelinux.org
Características del desarrollo de SW
El proceso de desarrollo de software no es único, lo que hace muy difícil su automatización.
La IS es todavía una actividad inmadura.
10 perusoftware.homelinux.org
Actividades Fundamentales
Existe un conjunto de actividades fundamentales que se encuentran presentes en todos proceso de desarrollo:
Especificación de software: Se define la funcionalidad y restricciones operacionales que debe cumplir el software.
Diseño e Implementación: Se diseña y construye el software de acuerdo a la especificación.
Validación: El software debe validarse, para asegurar que cumpla con lo que quiere el cliente.
Evolución: El software debe evolucionar, para adaptarse a las necesidades del cliente.
11 perusoftware.homelinux.org
Actividades Protectoras
Seguimiento y control de proyectos. Revisiones técnicas formales. Garantía de calidad del software. Gestión de configuración del software. Preparación y producción de documentos. Mediciones. Gestión de riesgos
12 perusoftware.homelinux.org
El Proceso según Pressman
Un marco común del proceso, son las actividades del marco de trabajo que son aplicables a todos los proyectos de software, con independencia del tamaño o complejidad.
Un conjunto de tareas, cada actividad es una colección de tareas de IS, hitos de proyectos, entregas y productos de trabajo del software que permiten que las actividades del marco de trabajo se adapten a las características del proyecto de software y los requisitos del equipo del proyecto.
Actividades de protección, tales como garantía de calidad del software, gestión de configuración del software y medición, abarcan el modelo del proceso. Son independientes de cualquier actividad del marco de trabajo y aparecen durante todo el proceso.
13 perusoftware.homelinux.org
El Proceso de Software
Marco de Trabajo Común del proceso.
Actividades del Marco de Trabajo.
Conuntos de Tareas. Tareas. Hitos, Entregas. Puntos de
aseguramiento de la calidad SQA.
Actividades de protección.
Garantía de calidad, gestión de configuración y medición.
Se define un Framework del proceso con un conjunto de actividades aplicables a todos los proyectos de SW.
El conjunto de tareas permiten que las actividades se adapten a las caracterísiticas del proyecto y los requisitos del equipo.
Las actividades de protección aparecen durante todo el proceso.
14 perusoftware.homelinux.org
Elementos del proceso de desarrollo
Quién debe hacer Qué, Cuándo y Cómo debe hacerlo.
ProcesoSW
Notación
HerramientasPersonas
ArtefactosRoles
Actividades
15 perusoftware.homelinux.org
Elementos del proceso de desarrollo
Quién: Las Personas participantes que desempeñan uno o más Roles específicos.
Qué: Un Artefacto es producido por un Rol en una de sus Actividades. Estos se especifican utilizando Notaciones específicas. Las Herramientas apoyan la elaboración de los Artefactos.
Cómo y Cuándo: Las Actividades son una serie de pasos que lleva a cabo un Rol durante el proceso de desarrollo. El avance del proyecto está controlado mediante hitos que establecen un determinado estado de terminación de ciertos Artefactos.
16 perusoftware.homelinux.org
Artefacto
Un artefacto es una pieza de información que:
(1) es producida, modificada o usada por el proceso,
(2) define un área de responsabilidad para un rol y
(3) está sujeta a control de versiones.
Un artefacto puede ser un modelo, un elemento de modelo o un documento.
17 perusoftware.homelinux.org
Principios y Prácticas
Forman la base para componer y sincronizar las actividades del proceso.
Las Prácticas y Principios enfatizan ciertas actividades y/o la forma como deben realizarse, por ejemplo:
desarrollar iterativamente, gestionar requisitos, desarrollo basado en componentes, modelar visualmente, verificar continuamente la calidad, gestionar los cambios, etc.
18 perusoftware.homelinux.org
Modelo de Proceso de Software
“Representación simplificada de un proceso de software, representada desde una perspectiva específica. Por su naturaleza los modelos son simplificados, por lo tanto un modelo de procesos del software es una abstracción de un proceso real.” [Ian Sommerville]
19 perusoftware.homelinux.org
Algunos modelos de proceso
El modelo es una representación simplificada de un proceso de software que conlleva una estrategia global para abordar el desarrollo de software
Codificar y corregir Modelo en cascada Desarrollo evolutivo Desarrollo basado en reutilización Desarrollo incremental Desarrollo en espiral
20 perusoftware.homelinux.org
Codificar y corregir
Este es el modelo básico utilizado en los inicios del desarrollo de software. Contiene dos pasos:
Escribir código. Corregir problemas en el
código.
Primero implementar algo de código y luego pensar acerca de requisitos, diseño, validación, y mantenimiento
21 perusoftware.homelinux.org
Desarrollo en cascada
La Versión Ideal (Perfecta)
El Modelo en V El Helado de
Cucurucho El Modelo Real Propuesta de
Yourdon
22 perusoftware.homelinux.org
Modelo en V
Identificación de Necesidades
Especificación Esencial
Especificación Física
Diseño
Codificación
Integración
Empaquetado
Validación
Explotación
23 perusoftware.homelinux.org
Helado de Cucurucho
Identificación de Necesidades
Especificación Esencial
Especificación Física
Diseño
Codificación
Integración
Empaquetado
Validación
Explotación
USUARIOS
CLIENTES
ANALISTA
DISEÑADORES Y CODIFICADORES
24 perusoftware.homelinux.org
Modelo Real
de Necesidades
Especificación Esencial
Especificación Física
Diseño
Codificación
Integración
Empaquetado
Validación
Explotación
25 perusoftware.homelinux.org
Propuesta de Yourdon
Encuesta
Análisis
diseño Preliminar
Estudio del HW
Diseño Detallado
Codificación
Prueba de Unidad
Prueba de subsistema
Prueba de Sistema
Requerimientos del Usuario
Especificación Funcional
Necesidades de Rendimiento
Especificación del Sistema
Configuración Final
Especificación de los
Programas
Módulos Codificados
Módulos Probados
Subsistemas Probados
Sistema Probado
26 perusoftware.homelinux.org
Construcción de Prototipos
Aceptado
NO Aceptado
Evaluación Cliente
Mejora de la Especificación
Construcción Prototipo
Obtención Especificación
Ciclo de
Vida Clásico
27 perusoftware.homelinux.org
Clases de prototipos
De INTERFACE. Usualmente un modelo de papel o sobre PC en
el que se muestran pantallas y listados.
De COMPORTAMIENTO: En anchura. Ofrece todos los menús del
sistema y simula débilmente los procesos. En profundidad. Cubre funciones que
presentan ambigüedades al cliente o a los informáticos.
Completo pero de baja calidad y rendimiento.
28 perusoftware.homelinux.org
Incremental
Requerimientos
Diseño Implementación
PruebasBloque 1
Requerimientos
Diseño Implementación
PruebasBloque N
Requerimientos
Bloque 1
Diseño Implementación
Pruebas
Bloque N
Diseño Implementación
Pruebas
oPermite el desarrollo concurrente
29 perusoftware.homelinux.org
Incremental
30 perusoftware.homelinux.org
Modelo de Madurez de Capacidades
CMM por sus siglas en inglés. Desarrollado por el Instituto de Ingeniería de
Software (SEI). Basado en un conjunto de funciones de ISw
que deberían estar presentes conforme se alcanzan diferentes grados de madurez del proceso del SW.
Proporciona una medida de la efectividad global de las prácticas de ISw de una compañía.
Establece 5 niveles de madurez del proceso
31 perusoftware.homelinux.org
Nivel 1 – Inicial. Proceso caótico, existen pocos procesos y el éxito depende del esfuerzo individual.
Situación sin ningún esfuerzo en la garantía de calidad y gestión del proyecto.
Cada equipo del proyecto desarrolla el software a a su manera.
32 perusoftware.homelinux.org
Nivel 2 – Repetible. Se establecen procesos de gestión de proyectos para hacer seguimiento del costo, planificación y funcionalidad. Para repetir exitos anteriores con proyectos similares se aplica la disciplina necesaria para el proceso.
Se han definido algunas actividades tales como:
Informe de esfuerzo y tiempo empleado. Informe de tareas realizadas.
33 perusoftware.homelinux.org
Nivel 3 – Definido. El proceso de las actividades de gestión y de ingeniería se documenta, se estandariza y se integra dentro de un todo. Todos lo proyectos utilizan una versión documentada y aprobada del proceso.
Se han definido tanto procesos técnicos como de gestión.
Ejemplo: se definen estándares de programación y se hacen cumplir mediante auditorías.
Pocos empresas han superado este nivel.
34 perusoftware.homelinux.org
Nivel 4 – Gestionado. Se recopilan medidas detalladas del proceso del software y de la calidad del producto.
Comprende el concepto de medición y métrica.
Una métrica es una cantidad insignificante que se puede extraer de algún documento o código.
Ejemplo: # de condicionales en una sección de código, la cual proporciona alguna indicación acerca del esfuerzo necesario para probar el código.
35 perusoftware.homelinux.org
Nivel 5 – Optimización. Se utiliza la retroalimentación para mejorar el proceso.
Representa la analogía del software con otros procesos de control de calidad que existen en otras industrias.
Se pueden predecir resultados tales como el # de errores latentes en función de las mediciones tomadas durante la ejecución de un proyecto.
top related