Está en la página 1de 52

TEMA 3.

EL PROCESO DE
DESARROLLO DE
SOFTWARE

Jose Onofre Montesa Andrs

Universidad Politcnica de Valencia


Escuela Universitaria de Informtica
2000
3. El proceso de desarrollo de software 1
Que queremos decir con
proceso de desarrollo?

Deseos, Software
necesidades,
Especificaciones,

3. El proceso de desarrollo de software 2


Introduccin al proceso de
desarrollo.

En general, cuando las personas


abordan el desarrollo de cualquier
proyecto evolucionan desde ideas
abstractas hacia concreciones
realizables.

3. El proceso de desarrollo de software 3


Es extrao que alguien diga:
"Me puse a programar y me sali una
contabilidad"
Algunas aplicaciones da la impresin de que...
Recordar que la probabilidad de que un mono teclee en
una maquina de escribir y salga el quijote no es cero

3. El proceso de desarrollo de software 4


Normalmente el
planteamiento es:

Vamos a desarrollar una contabilidad,


Hacer la especificacin.

en Visual BASIC y Access,


Realizar el diseo.

y se codifica la aplicacin.

3. El proceso de desarrollo de software 5


El grado de precisin con que se
lleve a cabo cada paso influir en
el resultado
Me podras indicar, por favor, hacia
dnde tengo que ir?
Eso depende de adnde quieras llegar,
contesto el gato.
A m no me importa demasiado adnde...-
empez a explicar Alicia.
En ese caso, da igual cualquier direccin -
interrumpi el Gato.
...Siempre que llegue a alguna parte -
termin Alicia a modo de explicacin.
Basta que empieces a andar - le aseguro el
Gato-, dando un paso tras otro.
Alicia en el pas de las maravillas

3. El proceso de desarrollo de software 6


Ingeniera e Ingeniera del
Software

Donde nos encontramos?


Que hace un Ingeniero?
Definiciones de Ingeniera del
software
Tcnicas bsicas utilizadas
histricamente

3. El proceso de desarrollo de software 7


Donde nos encontramos?

Con Problemas, tendremos que disponer de:


Tcnicas de desarrollo que minimicen la
complejidad de un sistema software.
Mtodos y conceptos que permitan al productor
y al cliente explorar la naturaleza del sistema
software lo antes posible.
Tcnicas que minimicen los efectos
devastadores de las modificaciones durante el
desarrollo y la explotacin.
3. El proceso de desarrollo de software 8
Que hace un Ingeniero?

Construir artefactos dentro de unas


limitaciones de coste, utilizando el
conocimiento y las teoras de la ciencia
sobre la cual se basa el artefacto.

3. El proceso de desarrollo de software 9


Definicin de la ingeniera
del software (NATO 68)

La ingeniera del software es el


establecimiento y uso de principios de
ingeniera razonables con el objetivo
de obtener software econmicamente,
que sea de confianza y trabaje
eficientemente en las maquinas
reales.

3. El proceso de desarrollo de software 10


Definicin
(R.E. Fairley 1985)

Hemos definido la Ingeniera del Software como la


disciplina tecnolgica concerniente a la produccin
y mantenimiento sistemticos de productos
software que son desarrollados y modificados en el
tiempo y con los costes estimados...
Adems, la Ingeniera del software tiene que ver
con cuestiones de gestin que caen fuera del
dominio de la programacin tradicional.
3. El proceso de desarrollo de software 11
Caractersticas de la ingeniera del
software (Van Vliet 1993)

Construccin de programas grandes


Controlar la complejidad
Cooperacin entre las personas
implicadas
Evolucin del software
Eficiencia en el desarrollo
Soporte real a los usuarios
3. El proceso de desarrollo de software 12
Modelo de la Ingeniera del
software (Thayer 1988)

Ingeniera
del software
Desarrollo Gestin de Metricas Mantenimiento
de Software proyectos del software de software
Analisis Planificacin Fiabilidad Correccin de Errores
Diseo Organizacin Usabilidad Modificaciones
Codificacin Reclutamiento Flexibilidad
Pruebas Direccin Mantenibilidad
Control Reusabilidad
Etc.

3. El proceso de desarrollo de software 13


Tcnicas bsicas usadas en
las ingenieras

Histricamente se han utilizado


tcnicas como:
El modelado
Divisin del Producto
Divisin del Proceso
En principio se deberan utilizar estas
tcnicas, tambin en informtica .

3. El proceso de desarrollo de software 14


El modelado.

Simplificacin del objeto en el mundo


real, pero que es suficientemente
realista como para dar una idea de lo
que ocurrir en la realidad y usarse
como base del desarrollo.

3. El proceso de desarrollo de software 15


Divisin del Producto.

Se fracciona el producto de modo que


cada fragmento lo puede realizar un
miembro del grupo de desarrollo.

3. El proceso de desarrollo de software 16


Divisin del Proceso.

Implica dividir el desarrollo del artefacto


por fases. Normalmente se habla de
especificacin, diseo y fabricacin.

Que Como? Realizacin Pruebas


? 3. El proceso de desarrollo de software 17
En el desarrollo de software nos
encontramos con la siguiente situacin

Ciclos de Metodologas de
Vida del Desarrollo del
SOFTWARE SOFTWARE

3. El proceso de desarrollo de software 18


Ciclo de Vida del Software

Consiste en determinar:
las fases productivas de un proyecto,
los objetivos de cada fase productiva, y
los productos obtenidos en cada una de
estas fases as como sus caractersticas.

3. El proceso de desarrollo de software 19


Ciclos de Vida del Software
Se han propuesto muchos ciclos de vida
para el desarrollo del software, pero estos
son los ms representativos:
Poner la cola al burro.
Ciclo de vida clsico o en cascada.
Construccin rpida de Prototipos Desechables
Incremental
Evolucin de prototipos
Reutilizacin de Software
Sntesis automtica de software
En espiral.
3. El proceso de desarrollo de software 20
Poner la cola al burro
Se coge a uno o varios
informticos,
Se les muestra ms o
menos el problema,
Se les deja solos en un
cuarto a oscuras,
Transcurrido un tiempo
se abre la puerta.

3. El proceso de desarrollo de software 21


Ciclo de vida clsico o en
cascada.

La Versin Ideal (Perfecta)


El Modelo en V
El Helado de Cucurucho
El Modelo Real
Propuesta de Yourdon

3. El proceso de desarrollo de software 22


La Versin Ideal
A alguien se le ha ocurrido la Brillante idea de Informatizar
Requerimientos ?
del Sistema Investigacin Inicial, Identificacin de
Necesidades, Encuesta, etc.
Estudio de Viabilidad
Requerimientos
del Software Anlisis
Especificacin
Diseo Preliminar y
Diseo
Detallado Especificacin de diseo
Codificacin y
Codificacin
Depuracin Aplicacin
Test y pruebas previas a la
OPERACIN Validacin

Instalacin, Explotacin
OPERACIN Y MANTENIMIENTO
3. El proceso de desarrollo de software 23
El Modelo en V

Identificacin
de Necesidades Explotacin

Especificacin
Esencial Validacin

Especificacin
Fsica Empaquetado

Diseo Integracin

Codificacin

3. El proceso de desarrollo de software 24


El Helado de Cucurucho

USUARIOS
Identificacin
de Necesidades Explotacin

Especificacin CLIENTES
Esencial Validacin

Especificacin ANALISTA Empaquetado


Fsica

Diseo Integracin

DISEADORES Y Codificacin
CODIFICADORES

3. El proceso de desarrollo de software 25


El Modelo Real
Identificacin
de Necesidades Explotacin

Especificacin
Esencial Validacin

Especificacin
Fsica Empaquetado

Diseo Integracin

Codificacin

3. El proceso de desarrollo de software 26


Propuesta de Yourdon

Requerimientos del Usuario


Sistema
Probado
Encuesta
Prueba de
Sistema
Subsistemas
Anlisis Probados
Especificacin
Funcional
Prueba de
Necesidades de subsistema
diseo Rendimiento Estudio
Preliminar del HW
Mdulos
Configuracin Probados
Especificacin Final
del Sistema Diseo Prueba de
Detallado Unidad

Especificacin Mdulos
de los Codificados
Codificacin
Programas
3. El proceso de desarrollo de software 27
Construccin Rpida de
Prototipos Desechables

Al igual que otras ingenieras se


utilizan los prototipos para que el
cliente observe, confirme y mejore el
producto
Este enfoque es apropiado cuando:
El cliente no tiene claro lo que quiere,
Al cliente le gustara ver algo similar para
poder hacerse una idea de lo que obtendr

3. El proceso de desarrollo de software 28


El ciclo de vida de Prototipos
Desechables es el siguiente:

Aceptado
Obtencin Construccin Ciclo de
Evaluacin
Especificacin Prototipo Vida
Cliente
Clsico
Mejora de la
Especificacin NO Aceptado

3. El proceso de desarrollo de software 29


Existen dos 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 mens del sistema
y simula dbilmente los procesos.
En profundidad. Cubre funciones que presentan
ambigedades al cliente o a los informticos.
Completo pero de baja calidad y rendimiento.
3. El proceso de desarrollo de software 30
Incremental
Requeri Diseo Impleme Pruebas
Bloque 1 mientos ntacin

Requeri Diseo Impleme Pruebas


Bloque N mientos ntacin

o
Requerimientos Requerimientos Permite el
Diseo Impleme Pruebas
desarrollo
Bloque 1 ntacin concurrente

Diseo Impleme Pruebas


Bloque N ntacin

3. El proceso de desarrollo de software 31


Evolucin de Prototipos

Observacin
Requerimientos

Abstraccin
Validacin

Especificacin
Verificacin
Empezamos por los
requerimientos ms claros, Prototipo
menos complejos y ms Verificacin
necesarios.
Experimentar
Prototipo rpido Validacin
3. El proceso de desarrollo de software 32
Reutilizacin de Software

Tiene como objetivos:


reducir el coste del software.
Producir sistemas de mayor calidad.
Se basa en reutilizar Diseos,
programas, mdulos y datos.
Es compatible con el prototipo
evolutivo.

3. El proceso de desarrollo de software 33


Sntesis automtica de
software
Requerimientos
Informales Anlisis de Especificacin Formal
Requerimientos (Prototipo)

Validacin

Mantenimiento Optimizacin
Mecnica

Racionalidad y
Decisiones
Ajuste
(tuning)

Desarrollo Programa
Formal Fuete

3. El proceso de desarrollo de software 34


En espiral.
Determinar objetivos, Evaluar alternativas,
alternativas, restricciones identificar y resolver
riesgos

Acuerdo
REVISIN

Planificar las prximas Desarrollar, verificar


fases
3. El proceso de desarrollo de software 35
Metodologas de Desarrollo
del Software

Mtodos informales
Mtodos Semiformales
Mtodos Formales

3. El proceso de desarrollo de software 36


Mtodos informales

Joaqun Lucio-Villegas los clasifica


como:
Quick & Dirty (USA)
Match stick box (Europa)
Balones p'alante y maricn el ltimo

3. El proceso de desarrollo de software 37


Mtodos Semiformales

Mtodos Estructurados
SA/SD (structured analysis & structured
design)
Mtrica
Mtodos Orientados a Objetos
OMT
UML

3. El proceso de desarrollo de software 38


Mtodos Estructurados

Mtodos Orientados a la Estructura


de los Datos
Mtodos de flujo de datos

PROCESOS DATOS
3. El proceso de desarrollo de software 39
Mtodos Orientados a
Objetos

Los mtodos orientados a objeto describen


e implementan los sistemas de informacin
desde un punto de vista ontolgico.

3. El proceso de desarrollo de software 40


Mtodos Formales
Los mtodos formales permiten al ingeniero de
software especificar, desarrollar y verificar un
sistema informtico mediante la aplicacin de una
notacin matemtica rigurosa.
Utilizando un lenguaje de especificacin formal,
un mtodo formal proporciona los medios de
especificar un sistema de forma que se aseguren,
de forma sistemtica, la consistencia, la
completitud y la correccin.
Se suelen basar en notaciones matemticas
similares a las del lgebra de conjuntos y la lgica
3. El proceso de desarrollo de software 41
Madurez del proceso en la
organizacin de desarrollo

La misma industria, diferentes niveles


de madurez.

3. El proceso de desarrollo de software 42


Madurez del proceso en la
organizacin de desarrollo

Hay factores que no quedan


claramente reflejados en el ciclo de
vida ni en las tcnicas de desarrollo.
Los factores no estudiados son:
El cumplimiento de los plazos de entrega.
La calidad (nmero de errores en el
Software).
El coste del proyecto.
3. El proceso de desarrollo de software 43
CMM (Capability Maturity
Model)

Proporciona una Gua sobre como


controlar los procesos:
de desarrollo del software.
de mantenimiento.
Hacer evolucionar hacia una cultura de:
Ingeniera del software.
Gestin eficiente.

3. El proceso de desarrollo de software 44


Evolucin de las
organizaciones segn el CMM
Control
del
Proceso Optimizacin
Medicin
del
Proceso Gestionado
Definicin
del
Proceso Definido
Control
Bsico
Repetible
Inicial
3. El proceso de desarrollo de software 45
Correlacin entre estimaciones y
niveles de madurez

3. El proceso de desarrollo de software 46


Nivel Inicial.

Segn las circunstancias utilizamos un


proceso distinto. (algunos caticos)
A medida,
Poco formalizado,
Uso de herramientas informales.
Pocos procesos definidos.
El xito depende del esfuerzo individual.
3. El proceso de desarrollo de software 47
Nivel de Repeticin.

Se tiene procesos estables de desarrollo,


con control estadstico.
Uso de datos historicos
Establecimiento de procesos de gestin
de proyecto, para hacer seguimiento de:
Coste.
Planificacin.
Funcionalidad.
3. El proceso de desarrollo de software 48
Nivel de Definicin.

Proceso de desarrollo perfectamente


definido y estandarizado.
Integrado en la organizacin.
Bien documentado.
Todos los proyectos utilizan una
versin documentada y aprobada de
proceso.

3. El proceso de desarrollo de software 49


Nivel de Gestin.

Mejoras de calidad sustanciales.


Control cuantitativo de productos y
proceso a travs de
Mediciones del proceso comprensibles.
Mediciones de la calidad

3. El proceso de desarrollo de software 50


Nivel de Optimizacin.

A travs de mediciones del proceso


utilizando ideas y tecnologas
innovadoras obtenemos:
Mejoras en calidad y cantidad.

3. El proceso de desarrollo de software 51


Resumen

Hemos visto:
Como trabajan los ingenieros,
Definiciones de ingeniera del software,
El ciclo de vida del software,
Metodolgicas de desarrollo
Madurez del proceso de desarrollo.

3. El proceso de desarrollo de software 52

También podría gustarte