SlideShare una empresa de Scribd logo
EL PROCESO DE 
DESARROLLO DE 
SOFTWARE 
. El proceso de desarrollo de software 1
¿Que queremos decir con 
proceso de desarrollo? 
3. El proceso de desarrollo de software 2 
Deseos, 
necesidades, 
Especificaciones, 
… 
Software
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 
3. El proceso de desarrollo de software 6 
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
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. 
3. El proceso de desarrollo de software 11
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) 
G e s t ió n d e 
p r o y e c t o s 
M e t r i c a s 
d e l s o f t w a r e 
M a n t e n i m i e n t o 
d e s o f t w a r e 
3. El proceso de desarrollo de software 13 
D e s a r r o l l o 
d e S o f t w a r e 
A n a l i s i s 
D i s e ñ o 
C o d i f i c a c i ó n 
P r u e b a s 
P l a n i f i c a c i ó n 
O r g a n i z a c i ó n 
R e c l u t a m i e n t o 
D i r e c c i ó n 
C o n t r o l 
F i a b i l i d a d 
U s a b i l i d a d 
F l e x i b i li d a d 
M a n t e n i b i l i d a d 
R e u s a b i l i d a d 
E t c . 
C o r r e c c i ó n d e E r r o r e s 
M o d i f i c a c i o n e s 
I n g e n ie r í a 
d e l s o f t w a r e
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
3. El proceso de desarrollo de software 17 
¿Que 
? 
División del Proceso. 
• Implica dividir el desarrollo del artefacto 
por fases. Normalmente se habla de 
especificación, diseño y fabricación. 
¿Como? Realización Pruebas
En el desarrollo de software nos 
encontramos con la siguiente situación 
3. El proceso de desarrollo de software 18 
Ciclos de 
Vida del 
SOFTWARE 
Metodologías de 
Desarrollo del 
SOFTWARE
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 
• El Helado de Cucurucho 
• El Modelo Real 
• Propuesta de Yourdon 
3. El proceso de desarrollo de software 22
Estudio de Viabilidad 
Especificación 
Validación 
Análisis 
Test y pruebas previas a la 
OPERACIÓN 
OPERACIÓN Y MANTENIMIENTO 
Instalación, Explotación 
3. El proceso de desarrollo de software 23 
Requerimientos 
del Software 
Diseño 
Especificación de diseño 
Diseño Preliminar y 
Detallado 
Codificación 
Aplicación 
Codificación y 
Depuración 
La Versión Ideal 
A alguien se le ha ocurrido la Brillante idea de Informatizar 
¿? 
Investigación Inicial, Identificación de 
Necesidades, Encuesta, etc. 
Requerimientos 
del Sistema
El Modelo en V 
Integración 
Validación 
3. El proceso de desarrollo de software 24 
Identificación 
de Necesidades 
Especificación 
Esencial 
Especificación 
Física 
Diseño 
Codificación 
Empaquetado 
Explotación
El Helado de Cucurucho 
Integración 
Validación 
3. El proceso de desarrollo de software 25 
Identificación 
de Necesidades 
Especificación 
Esencial 
Especificación 
Física 
Diseño 
Codificación 
Empaquetado 
Explotación 
USUARIOS 
CLIENTES 
ANALISTA 
DISEÑADORES Y 
CODIFICADORES
El Modelo Real 
Integración 
Validación 
3. El proceso de desarrollo de software 26 
Identificación 
de Necesidades 
Especificación 
Esencial 
Especificación 
Física 
Diseño 
Codificación 
Empaquetado 
Explotación
Propuesta de Yourdon 
Subsistemas 
Probados 
Módulos 
Probados 
3. El proceso de desarrollo de software 27 
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 
Sistema 
Probado
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 28
El ciclo de vida de Prototipos 
Desechables es el siguiente: 
Aceptado 
Evaluación 
Cliente 
NO Aceptado 
Construcción 
Prototipo 
Mejora de la 
Especificación 
3. El proceso de desarrollo de software 29 
Obtención 
Especificación 
Ciclo de 
Vida 
Clásico
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 30
Incremental 
3. El proceso de desarrollo de software 31 
Requerimientos 
Requeri 
mientos 
Diseño Impleme 
ntación 
Pruebas 
Bloque 1 
Requeri 
mientos 
Diseño Impleme 
ntación 
Pruebas 
Bloque N 
Requerimientos 
Bloque 1 
Diseño Impleme 
ntación 
Pruebas 
Bloque N 
Diseño Impleme 
ntación 
Pruebas 
o 
Permite el 
desarrollo 
concurrente
Evolución de Prototipos 
3. El proceso de desarrollo de software 32 
Observación 
Requerimientos 
Abstracción 
Validación 
Especificación 
Verificación 
Prototipo 
Verificación 
Experimentar 
Validación 
Empezamos por los 
requerimientos más claros, 
menos complejos y más 
necesarios. 
Prototipo rápido
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 33
Síntesis automática de 
software 
Requerimientos 
Informales Análisis de 
Requerimientos 
Especificación Formal 
(Prototipo) 
Validación 
Mantenimiento Optimización 
Mecánica 
Desarrollo 
Formal 
Ajuste 
(tuning) 
Programa 
Fuete 
Racionalidad y 
Decisiones 
3. El proceso de desarrollo de software 34
En espiral. 
Determinar objetivos, 
alternativas, restricciones 
Evaluar alternativas, 
identificar y resolver 
riesgos 
Acuerdo 
Planificar las próximas Desarrollar, verificar 
fases 
3. El proceso de desarrollo de software 35 
REVISIÓN
Metodologías de Desarrollo 
del Software 
• Métodos informales 
• Métodos Semiformales 
• Métodos Formales 
3. El proceso de desarrollo de software 36
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 37
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 38
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 39
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 40
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 41
Madurez del proceso en la 
organización de desarrollo 
• La misma industria, diferentes niveles 
de madurez. 
3. El proceso de desarrollo de software 42
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 43
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 44
Evolución de las 
organizaciones según el CMM 
3. El proceso de desarrollo de software 45 
Inicial 
Repetible 
Optimización 
Gestionado 
Definido 
Control 
Básico 
Definición 
del 
Proceso 
Medición 
del 
Proceso 
Control 
del 
Proceso
Correlación entre estimaciones y 
niveles de madurez 
3. El proceso de desarrollo de software 46
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 47
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 48
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 49
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 50
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 51

Más contenido relacionado

PPTX
casos de uso
PPTX
Presentacion: Usando Archimate
DOCX
Desarrollo estructurado
PPT
Fundamentos de POO
PPTX
Programación lógica y funcional
PPTX
Clasificación de las metodologías de desarrollo de software
PPTX
Modelo Cascada y Espiral
PDF
Normas ISO 9126 - 25000
casos de uso
Presentacion: Usando Archimate
Desarrollo estructurado
Fundamentos de POO
Programación lógica y funcional
Clasificación de las metodologías de desarrollo de software
Modelo Cascada y Espiral
Normas ISO 9126 - 25000

La actualidad más candente (20)

PPTX
Presentación Modelo de Datos
PPTX
Metodología WEB UWE
DOCX
Reporte de practicas android studio
PDF
C4model - Arquitectura de Software
PDF
PRESENTACIÓN RUP
PPT
Rup disciplinas
DOCX
Diccionario De Datos
PPTX
Metodología IWeb
PPT
Historia de la tecnologia de base de datos
PDF
Modelos de desarrollo de aplicaciones web
DOCX
Unidad 7 Desarrollo y supervisión del proyecto de software
PDF
Metodologia Diseño Web
PPTX
Presentacion iconix
PDF
Tema N° 14 Especificación de Requisitos del Software
PPTX
Modelo furps
PPTX
Tipos de pruebas de software
PPTX
Base de datos colegio
PPTX
Programacion Orientada a Objetos
Presentación Modelo de Datos
Metodología WEB UWE
Reporte de practicas android studio
C4model - Arquitectura de Software
PRESENTACIÓN RUP
Rup disciplinas
Diccionario De Datos
Metodología IWeb
Historia de la tecnologia de base de datos
Modelos de desarrollo de aplicaciones web
Unidad 7 Desarrollo y supervisión del proyecto de software
Metodologia Diseño Web
Presentacion iconix
Tema N° 14 Especificación de Requisitos del Software
Modelo furps
Tipos de pruebas de software
Base de datos colegio
Programacion Orientada a Objetos
Publicidad

Destacado (19)

PPTX
Intro agil
PPTX
Introducción al desarrollo de software ágil
PPTX
Análisis del informe CORA y preguntas desde ASTIC
PDF
Charla: "Negociación SimpleSales para Acuerdos Sostenibles" vía @taskforceCL ...
PDF
Sesión 11. Introducción al desarrollo de software
PDF
Confianza. un factor indispensable peligrosamente descuidado
PPTX
Security Services Portfolio
PDF
Neuromarketing - ClinicSEO - eShow Barcelona 2014
PPTX
Webinar Modelo para incrementar ventas
PPT
Sesiones 06 y 07 mercado comportamiento de compra
PPT
Enrutamiento
PPT
Cadena de valor
PDF
Assessment GDPR
PPTX
Diferencia Entre Router Y Acces Point
PDF
SPI - PROCESOS - PERSONAS - TECNOLOGIA
PDF
Sales Performance International y Solution Selling
PPT
ingenieria del software
PDF
Modulo venta-tecnica-ud-1-compra-venta
Intro agil
Introducción al desarrollo de software ágil
Análisis del informe CORA y preguntas desde ASTIC
Charla: "Negociación SimpleSales para Acuerdos Sostenibles" vía @taskforceCL ...
Sesión 11. Introducción al desarrollo de software
Confianza. un factor indispensable peligrosamente descuidado
Security Services Portfolio
Neuromarketing - ClinicSEO - eShow Barcelona 2014
Webinar Modelo para incrementar ventas
Sesiones 06 y 07 mercado comportamiento de compra
Enrutamiento
Cadena de valor
Assessment GDPR
Diferencia Entre Router Y Acces Point
SPI - PROCESOS - PERSONAS - TECNOLOGIA
Sales Performance International y Solution Selling
ingenieria del software
Modulo venta-tecnica-ud-1-compra-venta
Publicidad

Similar a Introducción al Desarrollo de Software (20)

PPTX
PPTX
Desarrollo INGENIERIA EN SOFTWARE.pptx
PPT
Proceso de dasarrollo de software
PPT
GESTION DE PROYECTOS INFORMATICOS
PPT
metodologias de software y procesos en desarrollo
PPT
4- EL PROCESO DE DESARROLLO DE SOFTWARE.ppt
PPT
Tema 3 proseso de desarrollo del software
PPTX
Clase 11
PPTX
Ingeniería de software
PPTX
Ingeniería de software
PPTX
Ingen de software
PPTX
Ingeniería de software
PPTX
Ingeniería%20de%20 software[1], maryy
PPTX
Ingeniería de software16
PPTX
Ingenier%c3%ada de software
PDF
procesos de desarrollo de sw
PPT
Ciclosdevida procesos
PPT
Elproceso de desarrollo de software
PPT
Elproceso de desarrollo de software
PPT
Que queremos decir con Proceso de Desarrollo de Software.ppt
Desarrollo INGENIERIA EN SOFTWARE.pptx
Proceso de dasarrollo de software
GESTION DE PROYECTOS INFORMATICOS
metodologias de software y procesos en desarrollo
4- EL PROCESO DE DESARROLLO DE SOFTWARE.ppt
Tema 3 proseso de desarrollo del software
Clase 11
Ingeniería de software
Ingeniería de software
Ingen de software
Ingeniería de software
Ingeniería%20de%20 software[1], maryy
Ingeniería de software16
Ingenier%c3%ada de software
procesos de desarrollo de sw
Ciclosdevida procesos
Elproceso de desarrollo de software
Elproceso de desarrollo de software
Que queremos decir con Proceso de Desarrollo de Software.ppt

Más de Barbara brice? (20)

PDF
Microorganismos de montaña
PDF
El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...
DOCX
PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida
PDF
Trabajo Final de Photoshop. Joel Montenegro
PDF
Consultoria
PPTX
Planeacion de Marketing
PPTX
Planeaciondemarketing
PDF
Flip card-03
PDF
Vision estrategica del posicionamiento
PPT
Estrategia de Precio. Marketing Mix
PPT
Fases de la Auditoría en Sistemas
PDF
Componentes internos y externos de una laptop
PDF
El microprocesador
PDF
Gestion en memoria
PPT
Algoritmosplanificacin
PPTX
Microprocesador
PPT
Algoritmosplanificacin
PPTX
Propuesta de macrodiseño
PPTX
Plantilla power point
PPTX
Eva university
Microorganismos de montaña
El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...
PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida
Trabajo Final de Photoshop. Joel Montenegro
Consultoria
Planeacion de Marketing
Planeaciondemarketing
Flip card-03
Vision estrategica del posicionamiento
Estrategia de Precio. Marketing Mix
Fases de la Auditoría en Sistemas
Componentes internos y externos de una laptop
El microprocesador
Gestion en memoria
Algoritmosplanificacin
Microprocesador
Algoritmosplanificacin
Propuesta de macrodiseño
Plantilla power point
Eva university

Último (20)

PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PPTX
Welcome to the 7th Science Class 2025-2026 Online.pptx
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PPTX
Welcome to the 8th Physical Science Class 2025-2026
PDF
2.0 Introduccion a processing, y como obtenerlo
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Doctrina 1 Soteriologuia y sus diferente
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
Presentación de la Cetoacidosis diabetica.pptx
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PLANES DE área ciencias naturales y aplicadas
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
Welcome to the 7th Science Class 2025-2026 Online.pptx
Punto Critico - Brian Tracy Ccesa007.pdf
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
DI, TEA, TDAH.pdf guía se secuencias didacticas
PLAN DE CASTELLANO 2021 actualizado a la normativa
Welcome to the 8th Physical Science Class 2025-2026
2.0 Introduccion a processing, y como obtenerlo
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf

Introducción al Desarrollo de Software

  • 1. EL PROCESO DE DESARROLLO DE SOFTWARE . El proceso de desarrollo de software 1
  • 2. ¿Que queremos decir con proceso de desarrollo? 3. El proceso de desarrollo de software 2 Deseos, necesidades, Especificaciones, … Software
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. El grado de precisión con que se lleve a cabo cada paso influirá en el resultado • ¿Me podrías indicar, por favor, hacia 3. El proceso de desarrollo de software 6 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
  • 7. 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
  • 8. ¿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
  • 9. ¿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
  • 10. 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
  • 11. 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. 3. El proceso de desarrollo de software 11
  • 12. 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
  • 13. Modelo de la Ingeniería del software (Thayer 1988) G e s t ió n d e p r o y e c t o s M e t r i c a s d e l s o f t w a r e M a n t e n i m i e n t o d e s o f t w a r e 3. El proceso de desarrollo de software 13 D e s a r r o l l o d e S o f t w a r e A n a l i s i s D i s e ñ o C o d i f i c a c i ó n P r u e b a s P l a n i f i c a c i ó n O r g a n i z a c i ó n R e c l u t a m i e n t o D i r e c c i ó n C o n t r o l F i a b i l i d a d U s a b i l i d a d F l e x i b i li d a d M a n t e n i b i l i d a d R e u s a b i l i d a d E t c . C o r r e c c i ó n d e E r r o r e s M o d i f i c a c i o n e s I n g e n ie r í a d e l s o f t w a r e
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 3. El proceso de desarrollo de software 17 ¿Que ? División del Proceso. • Implica dividir el desarrollo del artefacto por fases. Normalmente se habla de especificación, diseño y fabricación. ¿Como? Realización Pruebas
  • 18. En el desarrollo de software nos encontramos con la siguiente situación 3. El proceso de desarrollo de software 18 Ciclos de Vida del SOFTWARE Metodologías de Desarrollo del 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 características. 3. El proceso de desarrollo de software 19
  • 20. 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
  • 21. 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
  • 22. Ciclo de vida clásico o en cascada. • La Versión Ideal (Perfecta) • El Modelo en V • El Helado de Cucurucho • El Modelo Real • Propuesta de Yourdon 3. El proceso de desarrollo de software 22
  • 23. Estudio de Viabilidad Especificación Validación Análisis Test y pruebas previas a la OPERACIÓN OPERACIÓN Y MANTENIMIENTO Instalación, Explotación 3. El proceso de desarrollo de software 23 Requerimientos del Software Diseño Especificación de diseño Diseño Preliminar y Detallado Codificación Aplicación Codificación y Depuración La Versión Ideal A alguien se le ha ocurrido la Brillante idea de Informatizar ¿? Investigación Inicial, Identificación de Necesidades, Encuesta, etc. Requerimientos del Sistema
  • 24. El Modelo en V Integración Validación 3. El proceso de desarrollo de software 24 Identificación de Necesidades Especificación Esencial Especificación Física Diseño Codificación Empaquetado Explotación
  • 25. El Helado de Cucurucho Integración Validación 3. El proceso de desarrollo de software 25 Identificación de Necesidades Especificación Esencial Especificación Física Diseño Codificación Empaquetado Explotación USUARIOS CLIENTES ANALISTA DISEÑADORES Y CODIFICADORES
  • 26. El Modelo Real Integración Validación 3. El proceso de desarrollo de software 26 Identificación de Necesidades Especificación Esencial Especificación Física Diseño Codificación Empaquetado Explotación
  • 27. Propuesta de Yourdon Subsistemas Probados Módulos Probados 3. El proceso de desarrollo de software 27 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 Sistema Probado
  • 28. 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 28
  • 29. El ciclo de vida de Prototipos Desechables es el siguiente: Aceptado Evaluación Cliente NO Aceptado Construcción Prototipo Mejora de la Especificación 3. El proceso de desarrollo de software 29 Obtención Especificación Ciclo de Vida Clásico
  • 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 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 30
  • 31. Incremental 3. El proceso de desarrollo de software 31 Requerimientos Requeri mientos Diseño Impleme ntación Pruebas Bloque 1 Requeri mientos Diseño Impleme ntación Pruebas Bloque N Requerimientos Bloque 1 Diseño Impleme ntación Pruebas Bloque N Diseño Impleme ntación Pruebas o Permite el desarrollo concurrente
  • 32. Evolución de Prototipos 3. El proceso de desarrollo de software 32 Observación Requerimientos Abstracción Validación Especificación Verificación Prototipo Verificación Experimentar Validación Empezamos por los requerimientos más claros, menos complejos y más necesarios. Prototipo rápido
  • 33. 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 33
  • 34. Síntesis automática de software Requerimientos Informales Análisis de Requerimientos Especificación Formal (Prototipo) Validación Mantenimiento Optimización Mecánica Desarrollo Formal Ajuste (tuning) Programa Fuete Racionalidad y Decisiones 3. El proceso de desarrollo de software 34
  • 35. En espiral. Determinar objetivos, alternativas, restricciones Evaluar alternativas, identificar y resolver riesgos Acuerdo Planificar las próximas Desarrollar, verificar fases 3. El proceso de desarrollo de software 35 REVISIÓN
  • 36. Metodologías de Desarrollo del Software • Métodos informales • Métodos Semiformales • Métodos Formales 3. El proceso de desarrollo de software 36
  • 37. 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 37
  • 38. 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 38
  • 39. 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 39
  • 40. 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 40
  • 41. 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 41
  • 42. Madurez del proceso en la organización de desarrollo • La misma industria, diferentes niveles de madurez. 3. El proceso de desarrollo de software 42
  • 43. 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 43
  • 44. 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 44
  • 45. Evolución de las organizaciones según el CMM 3. El proceso de desarrollo de software 45 Inicial Repetible Optimización Gestionado Definido Control Básico Definición del Proceso Medición del Proceso Control del Proceso
  • 46. Correlación entre estimaciones y niveles de madurez 3. El proceso de desarrollo de software 46
  • 47. 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 47
  • 48. 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 48
  • 49. 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 49
  • 50. 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 50
  • 51. 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 51

Notas del editor

  • #5: Algunas aplicaciones informáticas casi que se desarrollan así. Infinitos monos tecleando… Ver la tira de Dilbert (10 monos, en el libro de “aplace sus reuniones”
  • #6: Este no es el camino completo, falta probar, verificar, instalar, formar a los usuarios, ...
  • #7: Claramente, lo principal es saber a donde vamos: tener clara la meta; Disponer de una especificación. El camino que sigamos es lo que llamaremos el proceso de desarrollo. Todos los caminos llevan a Roma Importante la dirección (brújula) ¿Cual es el camino más corto?
  • #19: Clientes y Proveedores, con intereses distintos Desarrolladores que cada cual va a la suya. La forma de evitar el desastre pasa por: Tener un ciclo de vida apropiado a la situación. Complejidad: ¿Es un producto complejo? Incertidumbre: ¿El cliente sabe lo que quiere? Utilizar una metodología de desarrollo Lenguaje claro, Especificación, diseño, ... Conjunto de herramientas a utilizar. Un proceso maduro, es decir: Que conozcamos bien (utilizado otras veces) Que lo tengamos medido Que sea completo, para producir con calidad.
  • #20: En el momento en que se percibio el desastre del software se trato de regular las tareas que se deben realizar durante el desarrollo de software, y el ordenen que se deben realizar. Se tomaron como ejemplo otras ingenierías.
  • #22: Lo sorprendente es que aveces funciona.¿¿?? Las empresas que desean obtener software económico y rápidamente lo utilizan, con las siguientes mejoras: Se contrata a personas que no tengan experiencia, se les dan pocos recursos, son novatos y no saben exigir, se suele utilizar la técnica de desprecio: “siempre tarde y encima no hace lo que queremos” (imaginabamos que haría, aunque no lo habíamos dicho) Los resultados son curiosos: Se suele subcontratar a cualquier precio con empresas externas, “Seguro que ellos saben hacer las cosas” Caundo funciona existe mucha incertidumbre sobre el como o por que ha funcionado. Parece claro que cuando funciona, los informáticos sabian que se esperaba del producto, sabian que se debia hacer, estaban muy motivados y les gusta el trabajo que están haciendo. Pero es difícil prever que esto ocurrirá.