ch2-1 el proceso de desarrollar software (organización y disciplina en las actividades) contribuyen...

30
CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que se desarrolla * Significado del Proceso * Modelos de Proceso de Software * Herramientas y Técnicas * Modelado en la Práctica Vida Puntos a tratar Ing. de Software

Upload: nazario-almonte

Post on 23-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

CH2-1

El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que se desarrolla

* Significado del Proceso

* Modelos de Proceso de Software

* Herramientas y Técnicas

* Modelado en la Práctica

Modelando el proceso y el Ciclo de Vida Puntos a tratar

Ing. de Software

Page 2: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Significado del Proceso

• Conjunto ordenado de tareas como Proceso: serie de pasos con actividades, restricciones y recursos que producen una salida de cierto tipo.

• Cuando el proceso involucra la construcción de un producto, a veces se menciona como Ciclo de Vida (del producto).

Ing. de Software

Page 3: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Siguiendo un Proceso

• Un proceso es un conjunto de procedimientos (receta), organizado para construir productos que satisfacen una seria de objetivos y estándares.

• Los procesos son importantes porque imponen consistencia y estructura en un conjunto de actividades.

• Sabemos cómo hacer algo bien y queremos forzar que otros lo hagan de la misma forma.

Ing. de Software

Page 4: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Escribiendo un Proceso (un “programa” que otros deben seguir)

• Prescribir todas las actividades principales• Usa recursos sujeto a restricciones• Puede estar compuesto de subprocesos• Cada actividad tiene un criterio de

entrada y otro de salida• Las Actividades están organizadas en una

secuencia. • Establecer los objetivos de cada actividad.

Ing. de Software

Page 5: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelos de Proceso de Software

• Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo.

• Descripciones de la forma en que el desarrollo se lleva a cabo realmente.

• Cada modelo de desarrollo de software incluye los requerimientos del sistema como entrada y el producto librado al uso como salida.

Ing. de Software

Page 6: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelo Cascada

ANALISIS DE REQUERIMIENTOS

DISEÑO DEL SISTEMA

DISEÑO DE PROGRAMAS

IMPLEMENTACION DE PROGRAMAS

PRUEBA UNITARIA Y DE INTEGRACION

PRUEBA DEL SISTEMA

PRUEBA DE ACEPTACION OPERACION

Y MANTENIMIENTO

Ing. de Software

Page 7: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

(Proceso de desarrollo en la realidad) ANALISIS DE

REQUERIMIENTOS

DISEÑO DEL SISTEMA

DISEÑO DE PROGRAMAS

IMPLEMENTACION DE PROGRAMAS

PRUEBA UNITARIA PRUEBA DE

INTEGRACION

PRUEBA DEL SISTEMA

LIBRAR AL USO

MANTENIMIENTO

Ing. de Software

Page 8: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Cascada c/prototipos

ANALISIS DE REQUERIMIENTOS

DISEÑO DEL SISTEMA

DISEÑO DE PROGRAMAS

IMPLEMENTACION DE PROGRAMAS

PRUEBA UNITARIA Y DE INTEGRACION

PRUEBA DEL SISTEMA

PRUEBA DE ACEPTACION

OPERACIONY MANTENIMIENTO

PROTOTIPADO

Validar

Verificar

Ing. de Software

Page 9: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelo VANALISIS DE

REQUERIMIENTOS

DISEÑO DEL SISTEMA

DISEÑO DE PROGRAMAS

IMPLEMENTACION DE PROGRAMAS

PRUEBA UNITARIA Y DE INTEGRACION

PRUEBA DEL SISTEMA

PRUEBA DE ACEPTACION

OPERACIONY MANTENIMIENTO

Verificar diseño

Validar requerimientos

Ing. de Software

Page 10: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelo de PrototipaciónLISTA DE

REVISIONESLISTA DE

REVISIONESLISTA DE

REVISIONES

PROTOTIPARREQUERIMIENTOS

PROTOTIPARDISEÑO

PROTOTIPARSISTEMA

PRUEBA

SISTEMA LIBRADO AL USO

REQUERIMIENTOS DEL SISTEMA

(a veces informales o incompletos)

revisarprototipo

revisión de usuario/cliente

Ing. de Software

Page 11: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Especificación Operacional: los requerimientos se ejecutan utilizando un producto de software

PRUEBA

SISTEMA LIBRADO AL USO

Ejecutar yRevisar

ESPECIFICACIONOPERACIONAL

(orientada al problema)

ESPECIFICACION TRANSFORMADA(orientada a la

implementación)

REQUERIMIENTOS DEL SISTEMA

(a veces informales o incompletos)

Ing. de Software

Page 12: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelo TransformacionalComparar

con requerimien

tos; actualizar si se necesita

ESPECIFICACIONFORMAL

TRANSFORM. N. .

TRANSFORM. 2

TRANSFORM. 1

REGISTRO FORMAL DEL DESARROLLO

Secuencia de transformaciones+ sus justificaciones

REQUERIMIENTOS DEL SISTEMA

(a veces informales o incompletos)

SISTEMA LIBRADO AL USO

PRUEBA

Ing. de Software

Page 13: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Desarrollo en Fases

Sistemas en Desarrollo

Sistemas en Producción

DES

AR

RO

LLA

-D

OR

ES

USU

AR

IOS

Construir liberación 1

Usar Lib. 1

Construir liberación 2

Usar Lib. 2

Construir liberación 3

Usar Lib. 3

Tiempo

Ing. de Software

Page 14: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Incrementos e IteracionesDESARROLLO INCREMENTAL

DESARROLLO ITERATIVO

Ing. de Software

Page 15: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelo Espiral

Planificar

Determinar Objetivos,Alternativas y Restricciones

Evaluar Alternativas y Riesgos

startRequirims,plan ciclo/vida

Presupto1

Alternativas1

Restriccs1

An. Riesgos1

An.Riesgos2

An.Riesgos3

Análisis de Riesgos4

Restriccs2

Restriccs3

Restriccs4

Prespto2Prespto3Prespto4

Altern

ativas 2

Altern

ativ

as3

Altern

ativ

as4

Prototipo1

Proto-tipo2

Proto-tipo3

Proto-tipo4

Concepto deoperacion

Reqs.

de

Softwar

e

Requers.

Validados

Plan de Desarrollo

Plan de Integracion

y Pruebas

Diseñ

o de

So

ftwar

e

Diseño Validado,

y verificado

Diseño Detallado

Codificación

Prueba Unitaria

Prueba del SistemaPrueba de

AceptaciónPlan de

ImplantaciónIng. de Software

Page 16: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

RAD - Desarrollo Rápido de Aplicaciones

• El Desarrollo rápido de aplicaciones (o RAD) definido por James Martin a principios de la década de 1980, consiste en un ciclo de desarrollo corto basado en tres fases (Requisitos, Diseño y Construcción) con un plazo de entrega ideal de 90 a 120 días como máximo.

Ing. de Software

Page 17: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

DSDM (Método de Desarrollo de Sistema Dinámico)

• El se desarrolló para completar lo que le faltaba al método RAD al proporcionar una estructura que tome en cuenta el ciclo de desarrollo completo.

• Las características principales del método DSDM son las siguientes:

• Participación del usuario• Desarrollo iterativo y creciente• Frecuencia de entrega mejorada• Pruebas integradas en cada fase• La aceptación de los productos entregados depende

directamente del cumplimiento de los requisitos.

Ing. de Software

Page 18: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Método: Proceso Unificado

• Es un proceso de desarrollo iterativo y creciente. Esto significa que el proyecto se divide en fases más cortas y que se envía una nueva versión gradual al final de cada fase.

• Este enfoque está basado en el modelo UML para la descripción de la arquitectura del software (funcional, de aplicación y física) y para el desarrollo del caso del usuario. Dicho modelo describe los requisitos y las demandas del usuario.

Ing. de Software

Page 19: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

RUP. Proceso Unificado Racional

• Es un método de desarrollo iterativo promovido por la compañía Rational Software, que fue comprada por IBM.

• El método RUP especifica, principalmente, la constitución del equipo y las escalas de tiempo, así como un número de modelos de documento.

Ing. de Software

Page 20: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Método XP• El método XP (Programación extrema) define un conjunto de

prácticas óptimas para el desarrollo de aplicaciones en excelentes condiciones al colocar al cliente en el centro del proceso de desarrollo, manteniendo una cercana relación con dicho cliente.

• La Programación extrema se basa en los siguientes conceptos: • Los equipos de desarrollo trabajan directamente con el

cliente durante ciclos cortos de una o dos semanas como máximo.

• La entrega de las versiones del software ocurre muy temprano y en intervalos muy cortos para maximizar la interacción con el usuario.

• Existe una fuerte colaboración entre el equipo de desarrollo mientras trabaja en el código.

• El código se prueba y depura a lo largo del proceso de desarrollo.

• Existen indicadores que miden el progreso del proyecto para poder actualizar el plan de desarrollo.

Ing. de Software

Page 21: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelo de Proceso y de Ciclo de Vida

• La preocupación por el “Proceso” (fin de los ’80) es más reciente que la definición del “Ciclo de Vida” (fin de los ’60)

• En general se asocia a la noción de modelo de proceso un mayor detalle y precisión

• Los modelos previos presentan en general poco nivel de detalle y fueron propuestos originalmente como modelos de Ciclo de Vida

Ing. de Software

Page 22: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Herramientas y Técnicas para el Modelado de Procesos• Elegir un lenguaje o notación• Tener claro objetivos del modelo

Detalle (granularidad)Describir-prescribirPredecir (requiere agregar relaciones

cuantitativas entre elementos)Ejecutar (asistir en el uso)

• Vamos a ver algunos ejemplos…

Ing. de Software

Page 23: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Preguntas

• 1. How does the description of a system relate to the notion of process models? For example, how do you decide what the boundary should be for the system described by a process model?

• 2. For each of the process models described in this lesson, what • are the benefits and drawbacks of using the model? • 3. For each of the process models described in this lesson, how

does the model handle a significant change in requirements late in development?

• 4. Should a development organization adopt a single process model for all of its software development? Discuss the pros and cons.

• 5. Consider the processes introduced in this lesson. Which ones give you the most flexibility to change in reaction to changing requirements?

Ing. de Software

Page 24: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelo ETVX

• Entry Task Verification eXit• Entry: Condiciones necesarias para poder

cumplir una tarea• Task: Tarea que se lleva a cabo

Quién y con qué responsabilidad

• Verification: Criterios para verificar que concluyó de forma adecuada (a veces se le menciona como Validation)

• eXit: Resultados a obtener

Ing. de Software

Page 25: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Notación de Lai

• Artefacto, subartefacto, Actividad,subActividad, Rol, Operación, Análisis

• Tablas de estado muestran información referida a cuán completo está un artefacto en un instante dado

• Tablas de estado muestran cómo puede operar el proceso sobre los artefactos

• Diagramas de transición de estado muestran cómo se relacionan unos estados con otros (máquina de estados compuestos)

• Formularios para definir cada tipo de elemento (en los que se especifican las relaciones)

Ing. de Software

Page 26: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Lai- relaciones entre elementos

Actividad

Operación

Rol

Artefacto

Estado-P(roceso)

Estado- A(rtefacto)

Análisis

Ejecuta

Ejecuta

Ejecuta Manipula

Sub-actividad

Sub-artefacto

compuesto por controlaRefiere a

cambia

Refiere a

proceso artefacto

Ing. de Software

Page 27: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Lai – Formulario para operación

Componente Definición

Pre-Condición Predicado en Estado-A para poder realizarla

Artefacto El artefacto manipulado por la operación

Acción La función a ser relizada por la operación

Rol Lista de roles habilitados

Post-Condición Predicados sobre Estado-A

Ing. de Software

Page 28: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelo de Factores que inciden en la productividad (Abdel-Hamid 96)

Porción de personal experiente

Productividad potencial nominalde personal experiente

Productividad potencialpromedio nominal

Productividad potencial nominal de personal nuevo

Productividad potencial

% completadodel proyecto

Multiplicadorde aprendizaje

Sobre/bajo Tolerancia del trabajo

Porción real de persona-díaen el proyecto

Presión del Calendario

Pérdidas por motivación y comunicación

Tamaño del equipo

Esfuerzo adicional de comunicación

Productividad de Desarrollo

Ing. de Software

Page 29: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Estructura del Desarrollo de Software (Abdel-Hamid 96)

Pérdidas del Proceso

Detección y Corrección de Errores

Productividad potencial

Personal

Tasa deincorporaciónde personal

Mezcla de experienciadel personal

Nivel de Personalpercibido comonecesario

Presión del Calendario

Fecha estimada deTerminación

Estado percibido del proyecto

Productividad Percibida

Esfuerzode Q A

Tasa deErrores

Aprendizaje

PRODUCCION DE SOFTWARE

Tasa debajas

GESTION DE RRHH

CONTROLPLANIFICACION

Ajustes aPersonal yCalendario

Fecha Planificadade Terminación

Tareas percibidascomo terminadas

Nivel de precisiónen medir el avance

Esfuerzo faltante percibido

Productividad Real

Tasa deDesarrollode SW

Ing. de Software

Page 30: CH2-1 El proceso de desarrollar software (organización y disciplina en las actividades) contribuyen a la calidad del software y a la velocidad con que

Modelado de Proceso¿Para qué?

• Entender el proceso (real o propuesto)Revelar inconsistencias, problemas (base para

la mejora)

• Simulación del proceso y planificación del proyectoPoco nivel de detalle adicional necesarioFactores que afectan la productividad global.Relaciones (cuantificadas) entre los factores. Soportados por sw que simulan el proceso.

• Guía en la ejecución real del procesoSe precisa agregar múltiples detalles

Ing. de Software