SlideShare una empresa de Scribd logo
1 de 31
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

Tensión superficial
Tensión superficialTensión superficial
Tensión superficialMauricio Casa
 
Métodos de separación de mezclas
Métodos de separación de mezclasMétodos de separación de mezclas
Métodos de separación de mezclasCarl Astu
 
CaracteríSticas Y Principios De La PlanificacióN
CaracteríSticas Y Principios De La PlanificacióNCaracteríSticas Y Principios De La PlanificacióN
CaracteríSticas Y Principios De La PlanificacióNgalluccita26
 
Propiedades del agua
Propiedades del aguaPropiedades del agua
Propiedades del aguaAlexo28
 
Cuadro comparativo de sistemas operativo libres y privativos
Cuadro comparativo de sistemas operativo libres y privativosCuadro comparativo de sistemas operativo libres y privativos
Cuadro comparativo de sistemas operativo libres y privativosYesenia Serrano
 
Unidad i INTRODUCCION AL PNF INFORMATICA Y A LOS PROYECTOS SOCIOTECNOLOGICOS
Unidad i INTRODUCCION AL PNF INFORMATICA Y A LOS PROYECTOS SOCIOTECNOLOGICOSUnidad i INTRODUCCION AL PNF INFORMATICA Y A LOS PROYECTOS SOCIOTECNOLOGICOS
Unidad i INTRODUCCION AL PNF INFORMATICA Y A LOS PROYECTOS SOCIOTECNOLOGICOSjeda dalas
 
Diferencia entre software libre y licenciado
Diferencia entre software libre y licenciadoDiferencia entre software libre y licenciado
Diferencia entre software libre y licenciadoraulpingo
 
Base de datos con conclusion
Base de datos con conclusionBase de datos con conclusion
Base de datos con conclusionAngel kbn
 
Politica publica para el uso del software libre
Politica publica para el uso del software librePolitica publica para el uso del software libre
Politica publica para el uso del software libreEdwardVillalobos5
 
POLÍTICA PÚBLICA PARA LA ADQUISICIÓN Y USO DEL HARDWARE EN LA ADMINISTRACIÓN ...
POLÍTICA PÚBLICA PARA LA ADQUISICIÓN Y USO DEL HARDWARE EN LA ADMINISTRACIÓN ...POLÍTICA PÚBLICA PARA LA ADQUISICIÓN Y USO DEL HARDWARE EN LA ADMINISTRACIÓN ...
POLÍTICA PÚBLICA PARA LA ADQUISICIÓN Y USO DEL HARDWARE EN LA ADMINISTRACIÓN ...Yesy Diaz
 
Diapositiva de linux
Diapositiva de linuxDiapositiva de linux
Diapositiva de linuxYoily Marquez
 
Propiedades de los fluidos
Propiedades de los fluidosPropiedades de los fluidos
Propiedades de los fluidosMarelvis_inf
 
Organización Del Centro De Cómputo
Organización Del Centro De CómputoOrganización Del Centro De Cómputo
Organización Del Centro De Cómputodjelektro
 

La actualidad más candente (20)

Tensión superficial
Tensión superficialTensión superficial
Tensión superficial
 
Métodos de separación de mezclas
Métodos de separación de mezclasMétodos de separación de mezclas
Métodos de separación de mezclas
 
CaracteríSticas Y Principios De La PlanificacióN
CaracteríSticas Y Principios De La PlanificacióNCaracteríSticas Y Principios De La PlanificacióN
CaracteríSticas Y Principios De La PlanificacióN
 
Propiedades del agua
Propiedades del aguaPropiedades del agua
Propiedades del agua
 
Cuadro comparativo de sistemas operativo libres y privativos
Cuadro comparativo de sistemas operativo libres y privativosCuadro comparativo de sistemas operativo libres y privativos
Cuadro comparativo de sistemas operativo libres y privativos
 
mantenimiento preventivo a laptops
mantenimiento preventivo a laptopsmantenimiento preventivo a laptops
mantenimiento preventivo a laptops
 
Sistema operativo libre y propietario
Sistema operativo libre y propietarioSistema operativo libre y propietario
Sistema operativo libre y propietario
 
Unidad i INTRODUCCION AL PNF INFORMATICA Y A LOS PROYECTOS SOCIOTECNOLOGICOS
Unidad i INTRODUCCION AL PNF INFORMATICA Y A LOS PROYECTOS SOCIOTECNOLOGICOSUnidad i INTRODUCCION AL PNF INFORMATICA Y A LOS PROYECTOS SOCIOTECNOLOGICOS
Unidad i INTRODUCCION AL PNF INFORMATICA Y A LOS PROYECTOS SOCIOTECNOLOGICOS
 
Diferencia entre software libre y licenciado
Diferencia entre software libre y licenciadoDiferencia entre software libre y licenciado
Diferencia entre software libre y licenciado
 
Base de datos con conclusion
Base de datos con conclusionBase de datos con conclusion
Base de datos con conclusion
 
Politica publica para el uso del software libre
Politica publica para el uso del software librePolitica publica para el uso del software libre
Politica publica para el uso del software libre
 
POLÍTICA PÚBLICA PARA LA ADQUISICIÓN Y USO DEL HARDWARE EN LA ADMINISTRACIÓN ...
POLÍTICA PÚBLICA PARA LA ADQUISICIÓN Y USO DEL HARDWARE EN LA ADMINISTRACIÓN ...POLÍTICA PÚBLICA PARA LA ADQUISICIÓN Y USO DEL HARDWARE EN LA ADMINISTRACIÓN ...
POLÍTICA PÚBLICA PARA LA ADQUISICIÓN Y USO DEL HARDWARE EN LA ADMINISTRACIÓN ...
 
Sistema operativo(recursos,interfaz)
Sistema operativo(recursos,interfaz)Sistema operativo(recursos,interfaz)
Sistema operativo(recursos,interfaz)
 
Diapositiva de linux
Diapositiva de linuxDiapositiva de linux
Diapositiva de linux
 
Software de redes
Software de redesSoftware de redes
Software de redes
 
Comparacion de sistemas operativos
Comparacion de sistemas operativosComparacion de sistemas operativos
Comparacion de sistemas operativos
 
Virtual pc
Virtual pcVirtual pc
Virtual pc
 
Cuadro comparativo RAM vs ROM
Cuadro comparativo RAM vs ROMCuadro comparativo RAM vs ROM
Cuadro comparativo RAM vs ROM
 
Propiedades de los fluidos
Propiedades de los fluidosPropiedades de los fluidos
Propiedades de los fluidos
 
Organización Del Centro De Cómputo
Organización Del Centro De CómputoOrganización Del Centro De Cómputo
Organización Del Centro De Cómputo
 

Similar a Abstracción y resolución de problemas

Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del softwareGabrielRosendo2
 
Análisis de Sistemas
Análisis de SistemasAnálisis de Sistemas
Análisis de SistemasT.I.C
 
Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Presentacion modelos de proceso Grupo 3
Presentacion modelos de proceso Grupo 3Bruno
 
Modelo de cascadaa
Modelo de cascadaaModelo de cascadaa
Modelo de cascadaamendez45
 
Implementacion de software
Implementacion de softwareImplementacion de software
Implementacion de softwareTom Rodriguez
 
Carrera de informatica_educativa
Carrera de informatica_educativaCarrera de informatica_educativa
Carrera de informatica_educativaDiego Sinche
 
Ciclo Vida Sw
Ciclo Vida SwCiclo Vida Sw
Ciclo Vida Swmsc080277
 
PROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREAlejandro Leon
 
Procesos de calidad software
Procesos de calidad softwareProcesos de calidad software
Procesos de calidad softwareAlejandro Leon
 
PROCESOS DE CALIDAD SOFTWARE
PROCESOS DE CALIDAD  SOFTWAREPROCESOS DE CALIDAD  SOFTWARE
PROCESOS DE CALIDAD SOFTWAREAlejandro Leon
 
Etapas del desarrollo de proyectos.pdf
Etapas del desarrollo de proyectos.pdfEtapas del desarrollo de proyectos.pdf
Etapas del desarrollo de proyectos.pdfcristobal461607
 
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 softwareAndhy H Palma
 

Similar a Abstracción y resolución de problemas (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

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
 
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 algoritmosAlvaro Enrique Ruano
 
Ordenamientos por selección y Shell
Ordenamientos por selección y ShellOrdenamientos por selección y Shell
Ordenamientos por selección y ShellAlvaro 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 destructoresAlvaro Enrique Ruano
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserciónAlvaro 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 clasesAlvaro 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 polimorfismoAlvaro 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étodosAlvaro 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...
 

Abstracción y resolución de problemas

  • 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