Está en la página 1de 52

3.

El proceso de desarrollo de software 1


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 2
Que queremos decir con
proceso de desarrollo?
Deseos,
necesidades,
Especificaciones,

Software
3. El proceso de desarrollo de software 3
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 4
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 5
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 6
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 7
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 8
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 9
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 10
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 11
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 12
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 13
Modelo de la Ingeniera del
software (Thayer 1988)
Analisis
Diseo
Codificacin
Pruebas
Desarrollo
de Software
Planificacin
Organizacin
Reclutamiento
Direccin
Control
Gestin de
proyectos
Fiabilidad
Usabilidad
Flexibilidad
Mantenibilidad
Reusabilidad
Etc.
Metricas
del software
Correccin de Errores
Modificaciones
Mantenimiento
de software
Ingeniera
del software
3. El proceso de desarrollo de software 14
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 15
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 16
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 17
Que
?
Divisin del Proceso.
Implica dividir el desarrollo del artefacto
por fases. Normalmente se habla de
especificacin, diseo y fabricacin.
Como? Realizacin
Pruebas
3. El proceso de desarrollo de software 18
En el desarrollo de software nos
encontramos con la siguiente situacin
Ciclos de
Vida del
SOFTWARE
Metodologas de
Desarrollo del
SOFTWARE
3. El proceso de desarrollo de software 19
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 20
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 21
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 22
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 23
Validacin
Instalacin, Explotacin
Test y pruebas previas a la
OPERACIN
OPERACIN Y MANTENIMIENTO
Estudio de Viabilidad
Anlisis
Especificacin
Requerimientos
del Software
Diseo
Especificacin de diseo
Diseo Preliminar y
Detallado
Codificacin
Aplicacin
Codificacin y
Depuracin
La Versin Ideal
A alguien se le ha ocurrido la Brillante idea de Informatizar
?
Investigacin Inicial, Identificacin de
Necesidades, Encuesta, etc.
Requerimientos
del Sistema
3. El proceso de desarrollo de software 24
El Modelo en V
Identificacin
de Necesidades
Especificacin
Esencial
Especificacin
Fsica
Diseo
Codificacin
Integracin
Empaquetado
Validacin
Explotacin
3. El proceso de desarrollo de software 25
El Helado de Cucurucho
Identificacin
de Necesidades
Especificacin
Esencial
Especificacin
Fsica
Diseo
Codificacin
Integracin
Empaquetado
Validacin
Explotacin
USUARIOS
CLIENTES
ANALISTA
DISEADORES Y
CODIFICADORES
3. El proceso de desarrollo de software 26
El Modelo Real
Identificacin
de Necesidades
Especificacin
Esencial
Especificacin
Fsica
Diseo
Codificacin
Integracin
Empaquetado
Validacin
Explotacin
3. El proceso de desarrollo de software 27
Propuesta de Yourdon
Encuesta
Anlisis
diseo
Preliminar
Estudio
del HW
Diseo
Detallado
Codificacin
Prueba de
Unidad
Prueba de
subsistema
Prueba de
Sistema
Requerimientos del Usuario
Especificacin
Funcional
Necesidades de
Rendimiento
Especificacin
del Sistema
Configuracin
Final
Especificacin
de los
Programas
Mdulos
Codificados
Mdulos
Probados
Subsistemas
Probados
Sistema
Probado
3. El proceso de desarrollo de software 28
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 29
El ciclo de vida de Prototipos
Desechables es el siguiente:
Aceptado
NO Aceptado
Evaluacin
Cliente
Mejora de la
Especificacin
Construccin
Prototipo
Obtencin
Especificacin
Ciclo de
Vida
Clsico
3. El proceso de desarrollo de software 30
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 31
Incremental
Requerimientos
Requeri
mientos
Diseo Impleme
ntacin
Pruebas
Bloque 1
Requeri
mientos
Diseo Impleme
ntacin
Pruebas
Bloque N






Requerimientos
Bloque 1
Diseo Impleme
ntacin
Pruebas
Bloque N






Diseo Impleme
ntacin
Pruebas
o
Permite el
desarrollo
concurrente
3. El proceso de desarrollo de software 32
Evolucin de Prototipos
Observacin
Requerimientos
Abstraccin
Validacin
Especificacin
Verificacin
Prototipo
Verificacin
Experimentar
Validacin
Empezamos por los
requerimientos ms claros,
menos complejos y ms
necesarios.
Prototipo rpido
3. El proceso de desarrollo de software 33
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 34
Sntesis automtica de
software
Requerimientos
Informales
Anlisis de
Requerimientos
Especificacin Formal
(Prototipo)
Validacin
Mantenimiento
Optimizacin
Mecnica
Desarrollo
Formal
Ajuste
(tuning)
Programa
Fuete
Racionalidad y
Decisiones
3. El proceso de desarrollo de software 35
En espiral.
Determinar objetivos,
alternativas, restricciones
Evaluar alternativas,
identificar y resolver
riesgos
Desarrollar, verificar Planificar las prximas
fases
REVISIN
Acuerdo
3. El proceso de desarrollo de software 36
Metodologas de Desarrollo
del Software
Mtodos informales
Mtodos Semiformales
Mtodos Formales
3. El proceso de desarrollo de software 37
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 38
Mtodos Semiformales
Mtodos Estructurados
SA/SD (structured analysis & structured
design)
Mtrica
Mtodos Orientados a Objetos
OMT
UML
3. El proceso de desarrollo de software 39
PROCESOS DATOS
Mtodos Estructurados
Mtodos Orientados a la Estructura
de los Datos
Mtodos de flujo de datos
3. El proceso de desarrollo de software 40
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 41
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 42
Madurez del proceso en la
organizacin de desarrollo
La misma industria, diferentes niveles
de madurez.
3. El proceso de desarrollo de software 43
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 44
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 45
Inicial
Repetible
Optimizacin
Gestionado
Definido
Control
Bsico
Definicin
del
Proceso
Medicin
del
Proceso
Control
del
Proceso
Evolucin de las
organizaciones segn el CMM
3. El proceso de desarrollo de software 46
Correlacin entre estimaciones y
niveles de madurez
3. El proceso de desarrollo de software 47
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 48
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 49
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 50
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 51
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 52
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.

También podría gustarte