SlideShare una empresa de Scribd logo
Abstracción y resolución
de problemas
UNIDAD 1
ING. ALVARO ENRIQUE RUANO
Contenido
● Definición de Abstracción
● Resolución de Problemas
o Pasos de Polya
o Tipos de Análisis
 Top-Down
 Bottom-Up
● Herramientas Computacionales
Abstracción
Proceso de excluir detalles no deseados o no significativos
de un problema que se quiere resolver.
Un problema complejo se puede visualizar a distintos niveles
de abstracción.
Los niveles de abstracción dan lugar a una jerarquía de
abstracciones.
Los distintos niveles de abstracción permiten concentrarnos
en distintos objetivos a cada nivel de abstracción.
Abstracción
Actividad clave en el proceso de solución de
problemas por medio de la computadora
(programación).
Ejemplos de utilización en programación:
● Abstracción procedimental
● Abstracción de datos
● Ocultación de de información
● Recursividad
● Programación orientada a objetos
Pasos de Polya
Pasos de Polya
Análisis Top-Down
Estrategia de procesamiento de información muy
característica de las Ciencias de la Computación.
Se formula un resumen del sistema sin especificar detalles, se
utiliza como apoyo la técnica de “caja negra”.
Cada parte del sistema o “caja negra” se redefine con un
mayor nivel de detalle, generando a su vez nuevas cajas
negras.
Se continúa de esta manera hasta llegar a un nivel donde el
sistema ha sido definido por completo.
Análisis Bottom-Up
Es otra estrategia con una filosofía contraria al modelo “Top-
Down”.
Desde el inicio se realiza una especificación detallada de cada
una de las partes de un sistema.
Al haber completado la especificación de cada una de las
partes, se procede a vincularlas a un nivel superior.
Se repite el proceso hasta que se llega a un punto en que se
tiene el modelo completo del sistema.
Top-Down vs Bottom-Up
Top-Down enfatiza la planificación y
conocimiento completo del proceso,
permitiendo la minimización de errores o
trabajo extra. Retrasa el inicio del trabajo.
Bottom-Up permite un inicio temprano pero
es más riesgoso al no conocer el todo desde el
inicio.
Top-Down vs Bottom-Up
Top-Down
Bottom-Up
Introducción al Ciclo
de Vida del Software
UNIDAD 1
Contenido
● ¿Qué es el ciclo de vida del Software?
● Metodologías de desarrollo de Software
● Metodología Clásica (Cascada)
● Etapas de la Metodología Clásica
o Análisis
o Diseño
o Codificación
o Pruebas
o Mantenimiento
El ciclo de vida del Software
Marco de referencia que contiene los procesos, las actividades
y las tareas involucradas en el desarrollo, la explotación y el
mantenimiento de un producto de software, abarcando la vida
del sistema desde la definición de los requisitos hasta la
finalización de su uso
Define un estándar para que los compradores, proveedores,
desarrolladores, operadores, administradores y técnicos
envueltos en la vida del software manejen un lenguaje común.
El ciclo de vida del Software
Los seis procesos principales que definen el ciclo de vida del Software
según el estándar ISO/IEC 12207 (Systems and software engineering -
Software life cycle processes) son los siguientes:
● Adquisición: Procesos asociados a la solicitud del comprador
● Suministro: Procesos asociados a la propuesta del proveedor
● Desarrollo: Creación del producto (desarrollo del software)
● Operación: Utilización del software y soporte al mismo, también
llamado explotación.
● Mantenimiento: Modificaciones del sistema
El ciclo de vida del Software
Metodologías de desarrollo de SW
El ciclo de vida del software define Qué debe hacerse.
El orden en que debe realizarse y el Cómo debe de realizarse
está definido por las Metodologías de desarrollo.
Una metodología es un marco de trabajo usado para
estructurar, planificar y controlar el desarrollo de sistemas.
Normalmente incluye una filosofía, herramientas, modelos y
métodos.
Metodologías de desarrollo de SW
Existen varias metodologías para el desarrollo de software.
Cada metodología tiene sus fortalezas y debilidades, así como
ciertos contextos en los que son aplicables.
Ninguna metodología es la “Panacea universal”, es decir, no
existe una metodología considerada la solución definitiva.
En este curso se utilizará la metodología Clásica.
Metodología Clásica: También llamada Cascada, el el primer modelo
propuesto. Está basado en la producción de Hardware y productos físicos.
Metodologías de desarrollo de SW
Metodologías de desarrollo de SW
Incremental: Propone un desarrollo lineal en varios “Incrementos” o
entregas al cliente, los cuales son planificados desde el inicio. Se puede
desarrollar un sistema por módulos.
Metodologías de desarrollo de SW
Espiral: Propone un desarrollo iterativo, al igual que el incremental se
tienen varias entregas al cliente, pero en este caso se tienen
retroalimentación del usuario. Se entrega inicialmente el “core” o
funcionalidad básica del sistema y posteriormente se amplían estas
funcionalidades.
Metodologías de desarrollo de SW
SCRUM: Basada en el manifiesto ágil (http://agilemanifesto.org/iso/es/),
es una metodología ágil de desarrollo que busca la entrega de software
funcional en lugar de el cumplimiento de un ciclo de vida rígido.
Metodologías de desarrollo de SW
Metodología Clásica
Fue propuesta originalmente en 1970.
Ordena rigurosamente el procesos de tal forma que no se
puede iniciar uno si no se ha terminado el otro.
Todas las etapas producen un resultado que es llamado
“entregable”.
El nombre cascada se usa como metáfora para indicar que el
desarrollo del proyecto progresa naturalmente del inicio al final,
pero es muy difícil poder regresar a las etapas anteriores.
Análisis
Primera etapa sugerida por la metodología.
Se analiza el problema a resolver y se especifican todas las
funcionalidades con que el software deberá de contar. Se utiliza
la herramienta llamada “Casos de Uso”.
Su entregable es conocido como:
● DERCAS: Documento de Especificación de Requerimientos y
Criterios de Aceptación del Software
● SRS: Software Requirements Specification
● ERS: Especificación de Requerimientos de Software
Diseño
Se realiza una especificación de los componentes con los que
contará el sistema (ejecutables, librerías, páginas web,
servicios web, etc) así como de su distribución en los
diferentes equipos.
Se definen todos los lineamientos que guiarán la construcción
del software.
Su entregable es el documento de diseño del sistema que
usualmente incluye diagramas UML (Lenguaje Universal de
Modelado) de Distribución, Componentes, Estático de Clases y
de Secuencias.
Codificación
Es en esta etapa donde realmente se construye el
software. Se realiza bajo los lineamientos
especificados por el diseño.
El entregable de esta etapa es el software
funcionando.
Pruebas
Como su nombre lo indica, en esta etapa se realizan
pruebas con el sistema integrando todas sus partes
para verificar que el sistema funcione cómo el cliente
lo solicitó.
Las pruebas a realizar pueden clasificarse de dos
formas:
● Por el alcance de la revisión
● Por el objeto a probar
Pruebas
Por el alcance de revisión
● Caja Negra: Solamente se comprueba que haga lo que tiene que
hacer, también se llama validación.
● Caja Blanca: Se comprueba que haga lo que tiene que hacer y que lo
haga cómo lo debe de hacer apegandose al diseño del sistema (se
revisa el código), también se llama verificación.
Por el objeto a probar
● Pruebas Unitarias: Se prueba un módulo en específico para verificar
que cumpla con su funcionamiento de forma aislada.
● Pruebas de Integración: Se prueba el sistema funcionando como un
todo, se verifica el resultado global y no el comportamiento de cada
pieza.
Mantenimiento
Consiste en la implementación del sistema y el
soporte que se brinda posteriormente.
Se estima que en esta etapa se destinan
aproximadamente el 75% de los recursos.
Asistencia y Tarea
Toma de asistencia.
Tarea:
• Leer el Manifiesto Ágil y realizar una comparativa
con la metodología clásica.
• Incluir opinión personal indicando cuál consideran
que es mejor.
• Máximo 1 página.
• Entrega en el portal el lunes 24 a las 3:00 AM.
Gracias por su atención

Más contenido relacionado

La actualidad más candente

Rational Rose
Rational RoseRational Rose
Rational Rose
Viviana Hidalgo
 
Modelo en-espiral
Modelo en-espiralModelo en-espiral
Modelo en-espiral
soniaposligua
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Miguel Rodríguez
 
Proceso unificado
Proceso unificadoProceso unificado
Proceso unificado
Yolanda Uruchima
 
PROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASESPROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASES
GEOVANIFERNANDOMENDO
 
Conociendo a BlueJ
Conociendo a BlueJConociendo a BlueJ
Conociendo a BlueJ
Jehielyandrades
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
Marvin Zumbado
 
Metodologia de James A. Senn
Metodologia de James A. SennMetodologia de James A. Senn
Metodologia de James A. Senn
RobertoCaniza
 
Metodología ICONIX
Metodología ICONIXMetodología ICONIX
Metodología ICONIX
Jimmy Vicente
 
Vistas arquitectonicas. _Ing Software
Vistas arquitectonicas. _Ing SoftwareVistas arquitectonicas. _Ing Software
Vistas arquitectonicas. _Ing Software
Roberth Loaiza
 
Ciclo de vida por prototipos
Ciclo de vida por prototiposCiclo de vida por prototipos
Ciclo de vida por prototipos
May Rodriguez
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windows
omfib123
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
Juan Carlos Tapias
 
Ensayo ciclo de vida del software
Ensayo ciclo de vida del softwareEnsayo ciclo de vida del software
Ensayo ciclo de vida del software
EmilyOrdez1
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patrones
Gustavo De la Cruz Tovar
 
Caracteristicas rup
Caracteristicas rupCaracteristicas rup
Caracteristicas rup
Stefany Sulca Huamaccto
 
Lenguaje de programación: Pascal
Lenguaje de programación: PascalLenguaje de programación: Pascal
Lenguaje de programación: Pascal
Carola511
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
Facultad de Ciencias y Sistemas
 
Diagrama de secuencia.
Diagrama de secuencia.Diagrama de secuencia.
Diagrama de secuencia.
Rosmery Sanchez
 
Comparacion Java Swing y awt
Comparacion Java Swing y awtComparacion Java Swing y awt
Comparacion Java Swing y awt
Jessicavergara273
 

La actualidad más candente (20)

Rational Rose
Rational RoseRational Rose
Rational Rose
 
Modelo en-espiral
Modelo en-espiralModelo en-espiral
Modelo en-espiral
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y Emergentes
 
Proceso unificado
Proceso unificadoProceso unificado
Proceso unificado
 
PROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASESPROTOCOLO DE BLOQUEO EN 2 FASES
PROTOCOLO DE BLOQUEO EN 2 FASES
 
Conociendo a BlueJ
Conociendo a BlueJConociendo a BlueJ
Conociendo a BlueJ
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 
Metodologia de James A. Senn
Metodologia de James A. SennMetodologia de James A. Senn
Metodologia de James A. Senn
 
Metodología ICONIX
Metodología ICONIXMetodología ICONIX
Metodología ICONIX
 
Vistas arquitectonicas. _Ing Software
Vistas arquitectonicas. _Ing SoftwareVistas arquitectonicas. _Ing Software
Vistas arquitectonicas. _Ing Software
 
Ciclo de vida por prototipos
Ciclo de vida por prototiposCiclo de vida por prototipos
Ciclo de vida por prototipos
 
Estructura del sistema operativo windows
Estructura del sistema operativo windowsEstructura del sistema operativo windows
Estructura del sistema operativo windows
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Ensayo ciclo de vida del software
Ensayo ciclo de vida del softwareEnsayo ciclo de vida del software
Ensayo ciclo de vida del software
 
Arquitectura de software orientada a patrones
Arquitectura de software orientada a patronesArquitectura de software orientada a patrones
Arquitectura de software orientada a patrones
 
Caracteristicas rup
Caracteristicas rupCaracteristicas rup
Caracteristicas rup
 
Lenguaje de programación: Pascal
Lenguaje de programación: PascalLenguaje de programación: Pascal
Lenguaje de programación: Pascal
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Diagrama de secuencia.
Diagrama de secuencia.Diagrama de secuencia.
Diagrama de secuencia.
 
Comparacion Java Swing y awt
Comparacion Java Swing y awtComparacion Java Swing y awt
Comparacion Java Swing y awt
 

Similar a Solución de problemas y ciclo de vida del desarrollo de software

Modelos del software
Modelos del softwareModelos del software
Modelos del software
angelicasolishernnde
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
GabrielRosendo2
 
AMSI
AMSIAMSI
Análisis de Sistemas
Análisis de SistemasAnálisis de Sistemas
Análisis de Sistemas
T.I.C
 
Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3
Bruno
 
Metodologia clasica en cascada
Metodologia clasica en cascadaMetodologia clasica en cascada
Metodologia clasica en cascada
Christian Jesus Gonzalez Oceguera
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
JonathanSevilla10
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
mendez45
 
Implementacion de software
Implementacion de softwareImplementacion de software
Implementacion de software
Tom Rodriguez
 
Carrera de informatica_educativa
Carrera de informatica_educativaCarrera de informatica_educativa
Carrera de informatica_educativa
Diego Sinche
 
Mod 6.2 introducción al análisis
Mod 6.2 introducción al análisisMod 6.2 introducción al análisis
Mod 6.2 introducción al análisis
Pedro Montecinos Gaete
 
rup
ruprup
Ciclo Vida Sw
Ciclo Vida SwCiclo Vida Sw
Ciclo Vida Sw
msc080277
 
PROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWARE
Alejandro Leon
 
PROCESOS DE CALIDAD SOFTWARE
PROCESOS DE CALIDAD  SOFTWAREPROCESOS DE CALIDAD  SOFTWARE
PROCESOS DE CALIDAD SOFTWARE
Alejandro Leon
 
Procesos de calidad software
Procesos de calidad softwareProcesos de calidad software
Procesos de calidad software
Alejandro Leon
 
Etapas del desarrollo de proyectos.pdf
Etapas del desarrollo de proyectos.pdfEtapas del desarrollo de proyectos.pdf
Etapas del desarrollo de proyectos.pdf
cristobal461607
 
Ciclo de vida de un SW.pptx
Ciclo de vida de un SW.pptxCiclo de vida de un SW.pptx
Ciclo de vida de un SW.pptx
TomasGonzalez471291
 
Cascadas
CascadasCascadas
Cascadas
karykati
 
Unidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de softwareUnidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de software
Andhy H Palma
 

Similar a Solución de problemas y ciclo de vida del desarrollo de software (20)

Modelos del software
Modelos del softwareModelos del software
Modelos del software
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
AMSI
AMSIAMSI
AMSI
 
Análisis de Sistemas
Análisis de SistemasAnálisis de Sistemas
Análisis de Sistemas
 
Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3
 
Metodologia clasica en cascada
Metodologia clasica en cascadaMetodologia clasica en cascada
Metodologia clasica en cascada
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaa
 
Implementacion de software
Implementacion de softwareImplementacion de software
Implementacion de software
 
Carrera de informatica_educativa
Carrera de informatica_educativaCarrera de informatica_educativa
Carrera de informatica_educativa
 
Mod 6.2 introducción al análisis
Mod 6.2 introducción al análisisMod 6.2 introducción al análisis
Mod 6.2 introducción al análisis
 
rup
ruprup
rup
 
Ciclo Vida Sw
Ciclo Vida SwCiclo Vida Sw
Ciclo Vida Sw
 
PROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWARE
 
PROCESOS DE CALIDAD SOFTWARE
PROCESOS DE CALIDAD  SOFTWAREPROCESOS DE CALIDAD  SOFTWARE
PROCESOS DE CALIDAD SOFTWARE
 
Procesos de calidad software
Procesos de calidad softwareProcesos de calidad software
Procesos de calidad software
 
Etapas del desarrollo de proyectos.pdf
Etapas del desarrollo de proyectos.pdfEtapas del desarrollo de proyectos.pdf
Etapas del desarrollo de proyectos.pdf
 
Ciclo de vida de un SW.pptx
Ciclo de vida de un SW.pptxCiclo de vida de un SW.pptx
Ciclo de vida de un SW.pptx
 
Cascadas
CascadasCascadas
Cascadas
 
Unidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de softwareUnidad 3 los modelos de procesos de software
Unidad 3 los modelos de procesos de software
 

Más de Alvaro Enrique Ruano

Resumen caso Enron
Resumen caso EnronResumen caso Enron
Resumen caso Enron
Alvaro Enrique Ruano
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)
Alvaro Enrique Ruano
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
Alvaro Enrique Ruano
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
Alvaro Enrique Ruano
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
Alvaro Enrique Ruano
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
Alvaro Enrique Ruano
 
Ordenamientos rápido y mezcla
Ordenamientos rápido y mezclaOrdenamientos rápido y mezcla
Ordenamientos rápido y mezcla
Alvaro Enrique Ruano
 
Ordenamientos por selección y Shell
Ordenamientos por selección y ShellOrdenamientos por selección y Shell
Ordenamientos por selección y Shell
Alvaro Enrique Ruano
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
Alvaro Enrique Ruano
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
Alvaro Enrique Ruano
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
Alvaro Enrique Ruano
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
Alvaro Enrique Ruano
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
Alvaro Enrique Ruano
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
Alvaro Enrique Ruano
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
Alvaro Enrique Ruano
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
Alvaro Enrique Ruano
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
Alvaro Enrique Ruano
 
Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...
Alvaro Enrique Ruano
 

Más de Alvaro Enrique Ruano (18)

Resumen caso Enron
Resumen caso EnronResumen caso Enron
Resumen caso Enron
 
Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)Otras estructuras de datos (heap, tablas hash y diccionarios)
Otras estructuras de datos (heap, tablas hash y diccionarios)
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Introducción al análisis de algoritmos
Introducción al  análisis de algoritmosIntroducción al  análisis de algoritmos
Introducción al análisis de algoritmos
 
Ordenamientos rápido y mezcla
Ordenamientos rápido y mezclaOrdenamientos rápido y mezcla
Ordenamientos rápido y mezcla
 
Ordenamientos por selección y Shell
Ordenamientos por selección y ShellOrdenamientos por selección y Shell
Ordenamientos por selección y Shell
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Paradigmas de programación
Paradigmas de programaciónParadigmas de programación
Paradigmas de programación
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...Análisis de una inversión en activos financieros negociados por medio de la B...
Análisis de una inversión en activos financieros negociados por medio de la B...
 

Solución de problemas y ciclo de vida del desarrollo de software

  • 1. Abstracción y resolución de problemas UNIDAD 1 ING. ALVARO ENRIQUE RUANO
  • 2. Contenido ● Definición de Abstracción ● Resolución de Problemas o Pasos de Polya o Tipos de Análisis  Top-Down  Bottom-Up ● Herramientas Computacionales
  • 3. Abstracción Proceso de excluir detalles no deseados o no significativos de un problema que se quiere resolver. Un problema complejo se puede visualizar a distintos niveles de abstracción. Los niveles de abstracción dan lugar a una jerarquía de abstracciones. Los distintos niveles de abstracción permiten concentrarnos en distintos objetivos a cada nivel de abstracción.
  • 4. Abstracción Actividad clave en el proceso de solución de problemas por medio de la computadora (programación). Ejemplos de utilización en programación: ● Abstracción procedimental ● Abstracción de datos ● Ocultación de de información ● Recursividad ● Programación orientada a objetos
  • 7. Análisis Top-Down Estrategia de procesamiento de información muy característica de las Ciencias de la Computación. Se formula un resumen del sistema sin especificar detalles, se utiliza como apoyo la técnica de “caja negra”. Cada parte del sistema o “caja negra” se redefine con un mayor nivel de detalle, generando a su vez nuevas cajas negras. Se continúa de esta manera hasta llegar a un nivel donde el sistema ha sido definido por completo.
  • 8. Análisis Bottom-Up Es otra estrategia con una filosofía contraria al modelo “Top- Down”. Desde el inicio se realiza una especificación detallada de cada una de las partes de un sistema. Al haber completado la especificación de cada una de las partes, se procede a vincularlas a un nivel superior. Se repite el proceso hasta que se llega a un punto en que se tiene el modelo completo del sistema.
  • 9. Top-Down vs Bottom-Up Top-Down enfatiza la planificación y conocimiento completo del proceso, permitiendo la minimización de errores o trabajo extra. Retrasa el inicio del trabajo. Bottom-Up permite un inicio temprano pero es más riesgoso al no conocer el todo desde el inicio.
  • 11. Introducción al Ciclo de Vida del Software UNIDAD 1
  • 12. Contenido ● ¿Qué es el ciclo de vida del Software? ● Metodologías de desarrollo de Software ● Metodología Clásica (Cascada) ● Etapas de la Metodología Clásica o Análisis o Diseño o Codificación o Pruebas o Mantenimiento
  • 13. El ciclo de vida del Software Marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso Define un estándar para que los compradores, proveedores, desarrolladores, operadores, administradores y técnicos envueltos en la vida del software manejen un lenguaje común.
  • 14. El ciclo de vida del Software Los seis procesos principales que definen el ciclo de vida del Software según el estándar ISO/IEC 12207 (Systems and software engineering - Software life cycle processes) son los siguientes: ● Adquisición: Procesos asociados a la solicitud del comprador ● Suministro: Procesos asociados a la propuesta del proveedor ● Desarrollo: Creación del producto (desarrollo del software) ● Operación: Utilización del software y soporte al mismo, también llamado explotación. ● Mantenimiento: Modificaciones del sistema
  • 15. El ciclo de vida del Software
  • 16. Metodologías de desarrollo de SW El ciclo de vida del software define Qué debe hacerse. El orden en que debe realizarse y el Cómo debe de realizarse está definido por las Metodologías de desarrollo. Una metodología es un marco de trabajo usado para estructurar, planificar y controlar el desarrollo de sistemas. Normalmente incluye una filosofía, herramientas, modelos y métodos.
  • 17. Metodologías de desarrollo de SW Existen varias metodologías para el desarrollo de software. Cada metodología tiene sus fortalezas y debilidades, así como ciertos contextos en los que son aplicables. Ninguna metodología es la “Panacea universal”, es decir, no existe una metodología considerada la solución definitiva. En este curso se utilizará la metodología Clásica.
  • 18. Metodología Clásica: También llamada Cascada, el el primer modelo propuesto. Está basado en la producción de Hardware y productos físicos. Metodologías de desarrollo de SW
  • 19. Metodologías de desarrollo de SW Incremental: Propone un desarrollo lineal en varios “Incrementos” o entregas al cliente, los cuales son planificados desde el inicio. Se puede desarrollar un sistema por módulos.
  • 20. Metodologías de desarrollo de SW Espiral: Propone un desarrollo iterativo, al igual que el incremental se tienen varias entregas al cliente, pero en este caso se tienen retroalimentación del usuario. Se entrega inicialmente el “core” o funcionalidad básica del sistema y posteriormente se amplían estas funcionalidades.
  • 21. Metodologías de desarrollo de SW SCRUM: Basada en el manifiesto ágil (http://agilemanifesto.org/iso/es/), es una metodología ágil de desarrollo que busca la entrega de software funcional en lugar de el cumplimiento de un ciclo de vida rígido.
  • 23. Metodología Clásica Fue propuesta originalmente en 1970. Ordena rigurosamente el procesos de tal forma que no se puede iniciar uno si no se ha terminado el otro. Todas las etapas producen un resultado que es llamado “entregable”. El nombre cascada se usa como metáfora para indicar que el desarrollo del proyecto progresa naturalmente del inicio al final, pero es muy difícil poder regresar a las etapas anteriores.
  • 24. Análisis Primera etapa sugerida por la metodología. Se analiza el problema a resolver y se especifican todas las funcionalidades con que el software deberá de contar. Se utiliza la herramienta llamada “Casos de Uso”. Su entregable es conocido como: ● DERCAS: Documento de Especificación de Requerimientos y Criterios de Aceptación del Software ● SRS: Software Requirements Specification ● ERS: Especificación de Requerimientos de Software
  • 25. Diseño Se realiza una especificación de los componentes con los que contará el sistema (ejecutables, librerías, páginas web, servicios web, etc) así como de su distribución en los diferentes equipos. Se definen todos los lineamientos que guiarán la construcción del software. Su entregable es el documento de diseño del sistema que usualmente incluye diagramas UML (Lenguaje Universal de Modelado) de Distribución, Componentes, Estático de Clases y de Secuencias.
  • 26. Codificación Es en esta etapa donde realmente se construye el software. Se realiza bajo los lineamientos especificados por el diseño. El entregable de esta etapa es el software funcionando.
  • 27. Pruebas Como su nombre lo indica, en esta etapa se realizan pruebas con el sistema integrando todas sus partes para verificar que el sistema funcione cómo el cliente lo solicitó. Las pruebas a realizar pueden clasificarse de dos formas: ● Por el alcance de la revisión ● Por el objeto a probar
  • 28. Pruebas Por el alcance de revisión ● Caja Negra: Solamente se comprueba que haga lo que tiene que hacer, también se llama validación. ● Caja Blanca: Se comprueba que haga lo que tiene que hacer y que lo haga cómo lo debe de hacer apegandose al diseño del sistema (se revisa el código), también se llama verificación. Por el objeto a probar ● Pruebas Unitarias: Se prueba un módulo en específico para verificar que cumpla con su funcionamiento de forma aislada. ● Pruebas de Integración: Se prueba el sistema funcionando como un todo, se verifica el resultado global y no el comportamiento de cada pieza.
  • 29. Mantenimiento Consiste en la implementación del sistema y el soporte que se brinda posteriormente. Se estima que en esta etapa se destinan aproximadamente el 75% de los recursos.
  • 30. Asistencia y Tarea Toma de asistencia. Tarea: • Leer el Manifiesto Ágil y realizar una comparativa con la metodología clásica. • Incluir opinión personal indicando cuál consideran que es mejor. • Máximo 1 página. • Entrega en el portal el lunes 24 a las 3:00 AM.
  • 31. Gracias por su atención