0% encontró este documento útil (0 votos)
44 vistas59 páginas

Tema 3

El proceso de desarrollo de software abarca desde la identificación de necesidades hasta la implementación y mantenimiento del producto final. Se enfatiza la importancia de la especificación, diseño y codificación, así como la gestión de la complejidad y la cooperación entre los involucrados. Existen diversas metodologías y ciclos de vida que guían este proceso, cada uno con sus propias características y enfoques.

Cargado por

ptordoyadisispto
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
44 vistas59 páginas

Tema 3

El proceso de desarrollo de software abarca desde la identificación de necesidades hasta la implementación y mantenimiento del producto final. Se enfatiza la importancia de la especificación, diseño y codificación, así como la gestión de la complejidad y la cooperación entre los involucrados. Existen diversas metodologías y ciclos de vida que guían este proceso, cada uno con sus propias características y enfoques.

Cargado por

ptordoyadisispto
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd

TEMA 3.

EL PROCESO DE
DESARROLLO DE
SOFTWARE

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
Introducción 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 extraño que alguien
diga:
– "Me puse a programar y me salió una
contabilidad"
– Algunas aplicaciones da la impresión 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 especificación.

• en Visual BASIC y Access,


• Realizar el diseño.

• y se codifica la aplicación.

3. El proceso de desarrollo de software 5


El grado de precisión con que
se lleve a cabo cada paso
influirá en el resultado
• ¿Me podrías indicar, por favor, hacia
dónde tengo que ir?
• Eso depende de adónde quieras
llegar, contesto el gato.
• A mí no me importa demasiado
adónde...- empezó a explicar Alicia.
• En ese caso, da igual cualquier
dirección - interrumpió el Gato.
• ...Siempre que llegue a alguna parte -
terminó Alicia a modo de explicación.
• Basta que empieces a andar - le
aseguro el Gato-, dando un paso tras
otro.
– Alicia en el país de las maravillas

3. El proceso de desarrollo de software 6


Ingeniería e Ingeniería del
Software

• ¿Donde nos encontramos?


• ¿Que hace un Ingeniero?
• Definiciones de Ingeniería del
software
• Técnicas básicas utilizadas
históricamente

3. El proceso de desarrollo de software 7


¿Donde nos encontramos?
• Con Problemas, tendremos que disponer de:
– Técnicas de desarrollo que minimicen la
complejidad de un sistema software.
– Métodos y conceptos que permitan al productor
y al cliente explorar la naturaleza del
sistema software lo antes posible.
– Técnicas que minimicen los efectos
devastadores de las modificaciones durante el
desarrollo y la explotación.

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 teorías de la
ciencia sobre la cual se basa el
artefacto.

3. El proceso de desarrollo de software 9


Definición de la ingeniería
del software (NATO ‘68)

• La ingeniería del software es el


establecimiento y uso de principios
de ingeniería razonables con el
objetivo de obtener software
económicamente, que sea de
confianza y trabaje eficientemente
en las maquinas reales.

3. El proceso de desarrollo de software 10


Definición
(R.E. Fairley 1985)

• Hemos definido la Ingeniería del Software


como la disciplina tecnológica concerniente a
la producción y mantenimiento sistemáticos de
productos software que son desarrollados y
modificados en el tiempo y con los costes
estimados...
• Además, la Ingeniería del software tiene que
ver con cuestiones de gestión que caen fuera
del dominio de la programación tradicional.11
3. El proceso de desarrollo de software
Características de la ingeniería
del software (Van Vliet 1993)

• Construcción de programas grandes


• Controlar la complejidad
• Cooperación entre las personas
implicadas
• Evolución del software
• Eficiencia en el desarrollo
• Soporte real a los usuarios

3. El proceso de desarrollo de software 12


Modelo de la Ingeniería
del software (Thayer
1988)

In ge n ie ría
d e l so ftw a re
D e sa rro llo G e stió n de M e tricas M a nte nim ie n to
d e S oftw a re p ro ye ctos d e l so ftw a re d e so ftw a re
A n a lisis P la nificación F ia bilid ad C o rre cción de E rrores
D ise ño O rg an ización U sa bilid ad M o d ifica cio n es
C o d ifica ción R e clu ta m ie n to F le xib ilid ad
P rue bas D irección M a nte nib ilid ad
C o ntrol R e usa b ilid ad
E tc.

3. El proceso de desarrollo de software 13


Técnicas básicas usadas
en las ingenierías

• Históricamente se han utilizado


técnicas como:
– El modelado
– División del Producto
– División del Proceso
• En principio se deberían utilizar
estas técnicas, también en
informática .
3. El proceso de desarrollo de software 14
El modelado.

• Simplificación 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


División 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


División del Proceso.
• Implica dividir el desarrollo del artefacto
por fases. Normalmente se habla de
especificación, diseño y fabricación.

¿Que ¿Como Realización Prueba


? ? 3. El proceso de desarrollo de software s 17
En el desarrollo de software nos
encontramos con la siguiente
situación

Ciclos de Metodologías
Vida del de Desarrollo
SOFTWARE del 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
características.

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 más representativos:
– Poner la cola al burro.
– Ciclo de vida clásico o en cascada.
– Construcción rápida de Prototipos Desechables
– Incremental
– Evolución de prototipos
– Reutilización de Software
– Síntesis automática de software
– En espiral.
3. El proceso de desarrollo de software 20
Poner la cola al burro
• Se coge a uno o varios
informáticos,
• Se les muestra más 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 clásico o en
cascada.

• La Versión Ideal (Perfecta)


• El Modelo en V
• Diseño centrado en el Usuario
• El Helado de Cucurucho
• El Modelo Real
• Propuesta de Yourdon

3. El proceso de desarrollo de software 22


La Versión Ideal
A alguien se le ha ocurrido la Brillante idea de Informatiza
Requerimient ¿?
os del Sistema Investigación Inicial, Identificación de
Necesidades, Encuesta, etc.
Estudio de Viabilidad
Requerimient
os del Análisis
Especificación
Software
Diseño
Diseño
Preliminar y Especificación de diseño
Detallado
Codificación y
Codificación
Depuración Aplicación
Test y pruebas previas a
la OPERACIÓN Validación

Instalación, Explotación
OPERACIÓN Y MANTENIMIENTO
3. El proceso de desarrollo de software 23
Inconveniencias
– Rígido, difícil de rectificar
– Documentación inicial se vuelve obsoleta
Desarrollo evolutivo
– Ciclo de vida en espiral
– Uso de prototipos (de diversa fidelidad)
– Extreme Programming
– RAD (Rappid Application Development)
Cambia el proceso pero no las
actividades
3. El proceso de desarrollo de software 24
El Modelo en V

Identificación
de Necesidades Explotación

Especificación
Esencial Validación

Especificación
Física Empaquetado

Diseño Integración

Codificación

3. El proceso de desarrollo de software 25


Diseño Centrado en el
Ususario

3. El proceso de desarrollo de software 26


Análisis
• Entrada
– Conocimiento del dominio de la aplicación,
actividades de los usuarios, mercado, etc.
• Actividades
– Identificar las necesidades del usuario
– Análisis de viabilidad
– Determinar los requerimientos de la aplicación
• Salida
– Documento de requerimientos del software
Diseño
• Entrada
– Documento de requerimientos del software
• Actividades
– Establecer estrategia de solución
– Análisis de alternativas. Formalizar la solución
– Descomponer y organizar la aplicación
– Fijar descripciones de cada módulo
• Salida
– Documento de diseño del software
– UML (Universal Modeling Language)
Codificación

• Entrada
– Documento de diseño del software
• Actividades
– Creación del código fuente
– Pruebas de unidades
• Salida
– Código de módulos, probado
Integración. Validación
(FEEDBACK)
• Entrada
– Código de módulos, probado
– Documento de requerimientos del software
(validación)
• Actividades
– Pruebas de integración
– Pruebas de validación
• Salida
– Aplicación completa, lista para usar
Mantenimiento
• Entrada
– Software listo para usar
• Actividades
– Instalación
– Uso en paralelo
– Implementación
– Nuevos requerimientos, correcciones y
modificaciones
– Soporte de usuarios
• Salida
– Aplicación respondiendo a las necesidades actuales
El Helado de Cucurucho

USUARIOS
Identificación
de Necesidades Explotación

Especificación CLIENTES
Esencial Validación

Especificación ANALISTA
Física Empaquetado

Diseño Integración

DISEÑADORES Codificación
Y
CODIFICADORE
S 3. El proceso de desarrollo de software 32
El Modelo Real
Identificación
de Necesidades Explotación

Especificación
Esencial Validación

Especificación
Física Empaquetado

Diseño Integración

Codificación

3. El proceso de desarrollo de software 33


Propuesta de Yourdon

Requerimientos del Usuario


Sistema
Probado
Encuesta
Prueba de
Sistema
Subsistemas
Análisis Probados
Especificación
Funcional
Prueba de
Necesidades de subsistema
diseño Rendimiento Estudio
Preliminar del HW
Módulos
Configuración Probados
Especificación
del Sistema Diseño Final Prueba de
Detallado Unidad

Especificación Módulos
de los Codificados
Codificación
Programas
3. El proceso de desarrollo de software 34
Construcción Rápida de
Prototipos Desechables

• Al igual que otras ingenierías 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 gustaría ver algo similar para
poder hacerse una idea de lo que
obtendrá
3. El proceso de desarrollo de software 35
El ciclo de vida de
Prototipos Desechables es
el siguiente:

Acepta
Obtención Construcci do Ciclo
Evaluació
Especificaci ón de
n Cliente
ón Prototipo Vida
Clásico
Mejora de la
Especificaci NO
ón Aceptado

3. El proceso de desarrollo de software 36


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

3. El proceso de desarrollo de software 37


Incremental
Requeri Diseño Impleme Pruebas
Bloque 1 mientos ntación

Requeri Diseño Impleme Pruebas


Bloque N mientos ntación

o
Requerimientos Requerimientos Permite el
Diseño Impleme Pruebas
desarrollo
Bloque 1 ntación concurrente

Diseño Impleme Pruebas


Bloque N ntación

3. El proceso de desarrollo de software 38


Evolución de Prototipos

Observación
Requerimiento
s
Abstracción
Validación

Especificación
Verificación
Empezamos por los
requerimientos más claros, Prototipo
menos complejos y más Verificación
necesarios.
Experimentar
Prototipo rápido Validación
3. El proceso de desarrollo de software 39
Reutilización de Software

• Tiene como objetivos:


– reducir el coste del software.
– Producir sistemas de mayor calidad.
• Se basa en reutilizar Diseños,
programas, módulos y datos.
• Es compatible con el prototipo
evolutivo.

3. El proceso de desarrollo de software 40


Síntesis automática de
software
Requerimientos
Informales Análisis de Especificación Formal
Requerimientos (Prototipo)

Validación

Mantenimiento Optimización
Mecánica

Racionalidad y
Decisiones
Ajuste
(tuning)

Desarrollo Programa
Formal Fuete

3. El proceso de desarrollo de software 41


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

Acuerdo
REVISIÓN

Planificar las próximas Desarrollar, verificar


fases
3. El proceso de desarrollo de software 42
Metodologías de
Desarrollo del Software

• Métodos informales
• Métodos Semiformales
• Métodos Formales

3. El proceso de desarrollo de software 43


Métodos informales

• Joaquín Lucio-Villegas los clasifica


como:
– Quick & Dirty (USA)
– Match stick box (Europa)
– Balones p'alante y maricón el último

3. El proceso de desarrollo de software 44


Métodos Semiformales

• Métodos Estructurados
– SA/SD (structured analysis &
structured design)
– Métrica
• Métodos Orientados a Objetos
– OMT
– UML

3. El proceso de desarrollo de software 45


Métodos Estructurados

• Métodos Orientados a la Estructura


de los Datos
• Métodos de flujo de datos

PROCESOS DATOS
3. El proceso de desarrollo de software 46
Métodos Orientados a
Objetos

• Los métodos orientados a objeto


describen e implementan los sistemas
de información desde un punto de vista
ontológico.

3. El proceso de desarrollo de software 47


Métodos Formales
• Los métodos formales permiten al ingeniero de
software especificar, desarrollar y verificar un
sistema informático mediante la aplicación de una
notación matemática rigurosa.
• Utilizando un lenguaje de especificación formal, un
método formal proporciona los medios de
especificar un sistema de forma que se aseguren,
de forma sistemática, la consistencia, la
completitud y la corrección.
• Se suelen basar en notaciones matemáticas
similares a las del álgebra de conjuntos y la lógica

3. El proceso de desarrollo de software 48


Madurez del proceso en la
organización de desarrollo

• La misma industria, diferentes


niveles de madurez.

3. El proceso de desarrollo de software 49


Madurez del proceso en la
organización de desarrollo
• Hay factores que no quedan
claramente reflejados en el ciclo de
vida ni en las técnicas de desarrollo.
• Los factores no estudiados son:
– El cumplimiento de los plazos de
entrega.
– La calidad (número de errores en el
Software).
– El coste del proyecto.
3. El proceso de desarrollo de software 50
CMM (Capability Maturity
Model)

• Proporciona una Guía sobre como


– controlar los procesos:
• de desarrollo del software.
• de mantenimiento.
– Hacer evolucionar hacia una cultura
de:
• Ingeniería del software.
• Gestión eficiente.

3. El proceso de desarrollo de software 51


Evolución de las
organizaciones según el
CMM
Control
del
Proceso Optimización
Medición
del
Proceso Gestionado
Definición
del
Proceso Definido
Control
Básico
Repetible
Inicial
3. El proceso de desarrollo de software 52
Correlación entre estimaciones y
niveles de madurez

3. El proceso de desarrollo de software 53


Nivel Inicial.

• Según las circunstancias utilizamos un


proceso distinto. (algunos caóticos)
• A medida,
• Poco formalizado,
• Uso de herramientas informales.
• Pocos procesos definidos.
• El éxito depende del esfuerzo individual.
3. El proceso de desarrollo de software 54
Nivel de Repetición.
• Se tiene procesos estables de
desarrollo, con control estadístico.
• Uso de datos historicos
• Establecimiento de procesos de gestión
de proyecto, para hacer seguimiento de:
– Coste.
– Planificación.
– Funcionalidad.
3. El proceso de desarrollo de software 55
Nivel de Definición.
• Proceso de desarrollo
perfectamente definido y
estandarizado.
• Integrado en la organización.
• Bien documentado.
• Todos los proyectos utilizan una
versión documentada y aprobada
de proceso.
3. El proceso de desarrollo de software 56
Nivel de Gestión.

• Mejoras de calidad sustanciales.


• Control cuantitativo de productos y
proceso a través de
– Mediciones del proceso
comprensibles.
– Mediciones de la calidad

3. El proceso de desarrollo de software 57


Nivel de Optimización.

• A través de mediciones del


proceso utilizando ideas y
tecnologías innovadoras
obtenemos:
– Mejoras en calidad y cantidad.

3. El proceso de desarrollo de software 58


Resumen

• Hemos visto:
– Como trabajan los ingenieros,
– Definiciones de ingeniería del
software,
– El ciclo de vida del software,
– Metodológicas de desarrollo
– Madurez del proceso de desarrollo.

3. El proceso de desarrollo de software 59

También podría gustarte