Documente Academic
Documente Profesional
Documente Cultură
SOFTWARE
Integrantes: Miguel A. Pacosillo Limachi
Gabriela Quispe Apaza
Marco A. Sanchez Acarapi
Materia: Ingeniería de Software
EXTREME PROGRAMMING (XP)
Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el
éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el
aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se basa en
realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos
los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los
cambios.
CARACTERISTICAS:
Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.
Pruebas unitarias continuas, frecuentemente repetidas y automatizadas,
incluyendo pruebas de regresión Se aconseja escribir el código de la prueba
antes de la codificación.
Programación por parejas: se recomienda que las tareas de desarrollo se lleven
a cabo por dos personas en un mismo puesto. Se supone que la mayor calidad
del código escrito de esta manera: el código es revisado y discutido mientras se
escribe, es más importante que la posible pérdida de productividad inmediata.
Frecuente interacción del equipo de programación con el cliente o usuario. Se
recomienda que un representante del cliente trabaje junto al equipo de desarrollo.
Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer
entregas frecuentes.
FASES DE XP
1ª Fase: Planificación del proyecto. 3ª Fase: Codificación.
Historias de usuario. 4ª Fase: Pruebas.
Release planning. El uso de los test en X.P es el siguiente.
Test de aceptación.
Iteraciones:
Velocidad del proyecto.
Programación en pareja.
Reuniones diarias. Ventajas:
Programación organizada.
2ª Fase: Diseño.
Menor taza de errores.
Diseños simples.
Satisfacción del programador.
Glosarios de términos.
Desventajas:
Riesgos. Es recomendable emplearlo solo en proyectos a
corto plazo.
Funcionalidad extra.
Altas comisiones en caso de fallar.
Tarjetas C.R.C. (Class,
Responsabilities and Collaboration)
METODOLOGIA RUP
Rational Unified Process El Proceso Unificado fue desarrollado por Philippe Kruchten, Ivar Jacobson y otros de
la Rational como el proceso complementario al UML. El RUP es un armazón de proceso y como tal puede
acomodar una gran variedad de procesos.
El RUP puede usarse en un estilo muy tradicional de cascada o de una manera ágil. Como resultado se puede
usar el RUP como un proceso ágil o como un proceso pesado - todo depende de cómo lo adapte a su ambiente.
CARACTERISTICAS:
Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)
Pretende implementar las mejores prácticas en Ingeniería de Software.
Desarrollo iterativo
Administración de requisitos
Uso de arquitectura basada en componentes
Control de cambios
Modelado visual del software
Verificación de la calidad del software
FASES DE RUP
1ª Fase: Incepción. 3ª Fase: Construcción.
Significa “comienzo”, Se especifican Se desarrollan, integran y verifican todos los
los objetivos del ciclo de vida del componentes y rasgos de la aplicación. RUP
proyecto y las necesidades de cada considera que esta fase es un proceso de
participante, Establecer el alcance y manufactura, en el que se debe poner énfasis en la
las condiciones de límite y los administración de los recursos y el control de
criterios de aceptabilidad. Se costos, agenda y calidad.
identifican los casos de uso que
orientarán la funcionalidad. 4ª Fase: Transición.
2ª Fase: Elaboración. Comienza cuando el producto está suficientemente
maduro para ser entregado. Se corrigen los últimos
Se analiza el dominio del problema y errores y se agregan los rasgos pospuestos. La fase
se define el plan del proyecto. RUP consiste en prueba beta, piloto, entrenamiento a
presupone que la fase de elaboración usuarios y despacho del producto a mercadeo,
brinda una arquitectura distribución y ventas. Se produce también la
suficientemente sólida junto con documentación.
requerimientos y planes bastante
estables. Se describen en detalle la
infraestructura y el ambiente de
desarrollo, así como el soporte de
herramientas de automatización.
Ventajas:
Requiere de conocimientos del proceso y de UML
Progreso visible en las etapas tempranas
El uso de iteraciones
Evaluación de riesgos en lugar de descubrir en la integración final del sistema
Facilita la reutilización del código
Desventajas:
Por el grado de complejidad puede no resultar no muy adecuado
Mal aplicado en el estilo cascada
METODOLOGÍA SCRUM
Scrum es una metodología ágil de desarrollo, aunque surgió como modelo para el desarrollo de
productos tecnológicos, también se emplea en entornos que trabajan con requisitos inestables y que
requieren rapidez y flexibilidad; situaciones frecuentes en el desarrollo de determinados sistemas de
software.
Es una metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el
seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del
proyecto.
CARACTERISTICAS:
Equipos autodirigidos
Utiliza reglas para crear un entorno ágil de administración de proyectos
No prescribe prácticas específicas de ingeniería
Los requerimientos se capturan como ítems de la lista Product Backlog.
El producto se construye en una serie de Sprints de un mes de duración.
FASES DE SCRUM
1.- Pre-juego
Planificación: Definición de una nueva versión basada en la pila actual, junto
con una estimación de coste y agenda. Si se trata de un nuevo sistema, esta
fase abarca tanto la visión como el análisis. Si se trata de la mejora de un
sistema existente comprende un análisis de alcance más limitado.
Arquitectura: Diseño de la implementación de las funcionalidades de la pila.
Esta fase incluye la modificación de la arquitectura y diseño generales.
2.- Juego
Desarrollo de sprints: Desarrollo de la funcionalidad de la nueva versión con
respeto continuo a las variables de tiempo, requisitos, costo y competencia.
La interacción con estas variables define el final de esta fase. El sistema va
evolucionando a través de múltiples iteraciones de desarrollo o sprints.
3.- Post-juego
Preparación para el lanzamiento de la versión, incluyendo la documentación
final y pruebas antes del lanzamiento de la versión.
VENTAJAS
Evaluación en cada fase que permite cambios de objetivos.
Funciona bien en proyectos de innovación.
Es sencillo, ya que sigue los pasos intuitivos necesarios a la hora de
desarrollar el software.
Seguimiento detallado en cada una de las fases.
DESVENTAJAS
La evaluación de riesgos es compleja
Excesiva flexibilidad para algunos proyectos
Se pone al cliente en una situación que puede ser muy incómoda .
El cliente deberá ser capaz de describir y entender a un gran nivel de detalle
para poder acordar un alcance del proyecto con él.
METODOLOGIA AUP (AGIL UNIFIED PROCESS)
El AUP es un acercamiento aerodinámico a desarrollo del software basado en el
Proceso Unificado Rational de IBM (RUP), basado en disciplinas y entregables
incrementales con el tiempo. El ciclo de vida en proyectos grandes es serial
mientras que en los pequeños es iterativo. Las disciplinas de Aup son:
Modelado, Implementación, Prueba, Despliegue, Administración de la
configuración, Administración o gerencia del Proyecto, Entorno .
Características:
Iterativo e Incremental.
Descomposición de un proyecto grande en mini-
proyectos
Cada mini-proyecto es una iteración
Las iteraciones deben estar controladas
Cada iteración trata un conjunto de casos de uso
Ventajas del enfoque iterativo
Detección temprana de riesgos
Administración adecuada del cambio
Mayor grado de reutilización
Mayor experiencia para el grupo de desarrollo
Dirigido por Casos de Uso
Se centra en la funcionalidad que el sistema debe poseer para satisfacer las
necesidades de un usuario (persona, sistema externo, dispositivo) que interactúa con él
Arquitectura en software
• Diferentes vistas del sistema: estructural, funcional, dinámico, etc.
•plataforma en la que va a operar
•Determina la forma del sistema
DESVENTAJAS:
El AUP es un producto muy pesado en relación al RUP.
CARACTERISTICAS:
Equipos Híbridos
Equipos compuestos por alrededor de seis personas, incluyendo desarrolladores y
usuarios de tiempo completo del sistema así como aquellas personas
involucradas con los requisitos.
Los desarrolladores de RAD deben ser "renacentistas": analistas, diseñadores y
programadores en uno.
Herramientas Especializadas
Desarrollo "visual"
Creación de prototipos falsos (simulación pura)
Creación de prototipos funcionales
Múltiples lenguajes
Calendario grupal
Herramientas colaborativas y de trabajo en equipo
Componentes reusables
Interfaces estándares (API)
"Timeboxing“
Las funciones secundarias son eliminadas como sea necesario para cumplir con el
calendario.
FASES DE RAD
1ra fase Modelado de gestión: el flujo de información entre las funciones
de gestión se modela de forma que responda a las siguientes preguntas:
¿Qué información conduce el proceso de gestión? ¿Qué información se
genera? ¿Quién la genera? ¿A dónde va la información? ¿Quién la
proceso?
2da fase Modelado de datos: el flujo de información definido como parte de la fase de
modelado de gestión se refina como un conjunto de objetos de datos necesarios para apoyar
la empresa. Se definen las características (llamadas atributos) de cada uno de los objetos y las
relaciones entre estos objetos.
3ra fase Modelado de proceso: los objetos de datos definidos en la fase de modelado de
datos quedan transformados para lograr el flujo de información necesario para implementar
una función de gestión. Las descripciones del proceso se crean para añadir, modificar,
suprimir, o recuperar un objeto de datos. Es la comunicación entre los objetos.
5ta fase Pruebas de entrega: Como el proceso DRA enfatiza la reutilización, ya se han
comprobado muchos de los componentes de los programas. Esto reduce tiempo de pruebas.
Sin embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las
interfaces a fondo.
VENTAJAS:
Comprar puede ahorrar dinero en comparación con construir.
Los entregables pueden ser fácilmente trasladados a otra plataforma.
El desarrollo se realiza a un nivel de abstracción mayor.
Visibilidad temprana.
Mayor flexibilidad.
Menor codificación manual.
Mayor involucramiento de los usuarios.
Posiblemente menos fallas.
Posiblemente menor costo.
Ciclos de desarrollo más pequeños.
Interfaz gráfica estándar.
DESVENTAJAS:
Comprar puede ser más caro que construir.
Costo de herramientas integradas y equipo necesario.
Progreso más difícil de medir.
Menos eficiente.
Menor precisión científica.
Riesgo de revertirse a las prácticas sin control de antaño.
Más fallas (por síndrome de “codificar a lo bestia”).
Prototipos pueden no escalar, un problema mayúsculo.
Funciones reducidas (por “timeboxing”).
Dependencia en componentes de terceros: funcionalidad de más o
de menos, problemas legales.
MODELO LINEAL SECUENCIAL
También llamado "Ciclo de vida básico " tiene su origen en el "Modelo de cascada
“ basado en el modelo en cascada de Winston Royce, sugiere un enfoque
sistemático o más bien secuencial del desarrollo de software que comienza en un
nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y
mantenimiento.
CARACTERISTICAS:
Es una visión del proceso de desarrollo de software como una sucesión de
etapas que producen productos intermedios.
Para que el proyecto tenga éxito deben desarrollarse todas las fases.
Las fases continúan hasta que los objetivos se han cumplido.
Si se cambia el orden de las fases, el producto final será de inferior calidad
FASES DEL MODELO LINEAL SECUENCIAL
1. Ingeniería y Análisis del Sistema:
Debido a que el software es siempre parte de un sistema mayor el trabajo comienza
estableciendo los requisitos de todos los elementos del sistema y luego asignando
algún subconjunto de estos requisitos al software.
2. Análisis de los requisitos del software:
El proceso de recopilación de los requisitos se centra e intensifica especialmente en
el software. El ingeniero de software (Analistas) debe comprender el ámbito de
la información del software, así como la función, el rendimiento y las interfaces
requeridas.
3. Diseño:
El diseño del software se enfoca en cuatro atributos distintos del programa: la
estructura de los datos, la arquitectura del software, el detalle procedimental y la
caracterización de la interfaz. El proceso de diseño tradúcelos requisitos en una
representación del software con la calidad requerida antes de que comience la
codificación. Se dividen en:
Diseño de Alto Nivel o Arquitectónico
Diseño Detallado
4. Codificación:
El diseño debe traducirse en una forma legible para la maquina.El paso de codificación
realiza esta tarea. Si el diseño se realiza de unamanera detallada la codificación puede
realizarse mecánicamente.
5. Prueba:
Una vez que se ha generado el código comienza la prueba del programa. La prueba se centra
en la lógica interna del software, y en las funciones externas, realizando pruebas que
aseguren que la entrada definida produce los resultados que realmente se requieren. Existen
varios tipos de pruebas:
Pruebas de unidad
Pruebas de integración
Prueba de sistema
Prueba de aceptación
6. Mantenimiento:
El software sufrirá cambios después de que se entrega al cliente. Los cambios ocurrirán
debido a que hayan encontrado errores, a que el software deba adaptarse a cambios del
entorno externo (sistema operativo o dispositivos periféricos), o debido a que el cliente
requiera ampliaciones funcionales o del rendimiento. Los tipos de mantenimiento son:
Mantenimiento Preventivo o Perfectivo
Mantenimiento Correctivo
Mantenimiento Evolutivo
VENTAJAS:
Se tiene todo bien organizado y no se mezclan las fases.
Modelo y planificación fácil y sencillos.
Este método radica en su sencillez ya que sigue los pasos intuitivos necesarios a la hora de desarrollar el
software.
Es perfecto para proyectos que son rígidos, y además donde se especifiquen muy bien los
requerimientos y se conozca muy bien la herramienta a utilizar.
Los usuarios lo pueden comprender fácilmente.
DESVENTAJAS:
Los proyectos reales raramente siguen el flujo secuencial que propone el modelo, siempre hay
iteraciones y se crean problemas en la aplicación del paradigma.
Normalmente, es difícil para el cliente establecer explícitamente al principio todos los requisitos. El
ciclo de vida clásico lo requiere y tiene dificultades en acomodar posibles incertidumbres que pueden
existir al comienzo de muchos productos.
El cliente debe tener paciencia. Hasta llegar a las etapas finales del proyecto, no estará disponible una
versión operativa del programa. Un error importante no detectado hasta que el programa este
funcionando puede ser desastroso. Alto riesgo en sistemas nuevos debido a problemas en las
especificaciones y en el diseño.
Los responsables del desarrollo de software siempre se retrasan innecesariamente.
MODELO DE PROPOTIPOS
También conocido como Desarrollo con Prototipación, se inicia con la
definición de los objetivos globales para el software, luego se identifican
los requisitos conocidos y las áreas del esquema en donde es necesaria
más definición. Entonces se plantea con rapidez una iteración de
construcción de prototipos y se presenta el modelado (en forma de un
diseño rápido).
Características
El prototipo es una aplicación que funciona2.
Los prototipos se crean con rapidez3.
Los prototipos evolucionan a través de un proceso iterativo4.
Los prototipos tienen un costo bajo de desarrollo
Tipos De Prototipos.
1. El prototipo evolutivo: entrega a los usuarios finales un sistema funcionando. Se usa
con los requerimientos que mejor se comprenden. Desarrollado a base de incrementos de
acuerdo a la realimentación y los requerimientos detectados en sus versiones.
2. El prototipo desechable: valida o deriva los requerimientos del sistema. Se usa con los
requerimientos que no se conocen bien. Período de vida corto.
3. El prototipado rápido: Comienza en las áreas de mayor riesgo. Si supera obstáculos, se
puede desarrollar el resto del sistema a partir del prototipo, sino se puede descartar sin
tener que gastar más dinero.
FASES DEL MODELO DE PROTOTIPOS:
Identificar los requerimientos conocidos.
Los analistas y los usuarios trabajan juntos para identificar los requerimientos conocidos
que tienen que satisfacerse. Se debe: determinar los fines del sistema y el alcance de su
capacidad.
Desarrollar modelo que funcione.
Los desarrolladores explican a los usuarios:
El método
Las actividades a realizar
En el desarrollo del prototipo se preparan los siguientes componentes:
Pantallas y formatos para la entrada de datos
Módulos esenciales de procesamiento
Salida del sistema
En esta fase no se prepara la documentación ni las especificaciones de salida o de diseño del software.
Utilizar el prototipo.
La responsabilidad de trabajar con el prototipo y evaluar sus características y operación es del usuario. La
experiencia con el sistema bajo condiciones reales permite determinar los cambios o mejoras o eliminar
características innecesarias.
Revisar el prototipo.
Se realiza la evaluación y con la información obtenida se levantan las características que debe llevar la siguiente
versión del prototipo.
¿Prototipo terminado?
Los pasos anteriores se repiten varias veces, hasta que los usuarios y desarrolladores están de acuerdo en que el
sistema ha evolucionado lo suficiente e incluye todas las características necesarias.
Cuando el prototipo está terminado, el paso que sigue a continuación es tomar la decisión sobre cómo proceder, para
lo cual existen cuatro opciones:
Abandonar la aplicación: Se descartan el prototipo y la aplicación
Implantar el prototipo
Volver a desarrollar la aplicación: El desarrollo del prototipo proporcionó suficiente información para determinar las
características necesarias de toda la aplicación.
Ventajas
Este modelo es útil cuando el cliente conoce los objetivos generales para el
software, pero no identifica los requisitos detallados de entrada,
procesamiento o salida.
También ofrece un mejor enfoque cuando el responsable del desarrollo del
software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de
un sistema operativo o de la forma que debería tomar la interacción humano-
máquina.
Desventajas
El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara
al sistema final.
A causa de la intención de crear un prototipo de forma rápida, se suelen
desatender aspectos importantes, tales como la calidad y el mantenimiento a
largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una
vez que el prototipo ha cumplido su función.
EORM (Enhanced Object Relationship Methodology)
Se realizar un estudio de las necesidades de la aplicación, del entorno de trabajo y de los actores. La finalidad
principal de esta fase es conseguir los escenarios que representen las actividades que se pueden llevar a cabo
en el sistema.
2. FASE DE DISEÑO. El Diseño de Sistemas se define el proceso de aplicar ciertas técnicas y principios con el
propósito de definir un dispositivo, un proceso o un Sistema, con suficientes detalles como para permitir su
interpretación y realización física. La etapa del Diseño del Sistema encierra cuatro etapas:
A. El diseño de los datos Trasforma el modelo de dominio de la información, creado durante el análisis, en
las estructuras de datos necesarios para implementar el Software.
B. El Diseño Arquitectónico Define la relación entre cada uno de los elementos estructurales del programa.
C. El Diseño de la Interfaz Describe como se comunica el Software consigo mismo, con los sistemas que
operan junto con el y con los operadores que lo emplean.
CARACTERISTICAS:
UML son las siglas de “Unified Modeling Language” o “Lenguaje Unificado de Modelado”. Se trata de un
estándar que se ha adoptado a nivel internacional por numerosos organismos y empresas para crear
esquemas, diagramas y documentación relativa a los desarrollos de software (programas informáticos)
CARACTERISTICAS:
* Enfoque de ingeniería de software para el dominio web con el objeto de cubrir todo el ciclo.
* Se trata de un método que hace uso de técnicas de procedentes de orientación de objetos para
especificar aplicaciones hipermedia
Moldea aspectos dinámicos
* Se hace uso de modelos de tarea y diagramas de estado mientras la navegación y la presentación se
presentan por medio de UML y de estereotipos creados al efecto.
* Los elementos hipermedia se representan por medio de elementos propios de diagramas de clases
UML
Fase1 Análisis de requisitos VENTAJAS:
Fija los requisitos funcionales de la aplicación * Uso de método que hace uso de técnicas
Web para reflejarlos en un modelo de casos de orientado a objetos.
uso. Esto da lugar a los diagramas de casos de
* Ayuda a la navegación (índices o mapas).
uso
* Aumenta la exactitud de los modelos de datos.
Fase 2 Diseño Conceptual
* Modelan aspectos dinámicos que hace uso de
Se construye el modelo conceptual del dominio
modelos de tareas.
de la aplicación considerando los requisitos
reflejados en los casos de uso. El resultado es DESVENTAJAS:
el diagrama de clases de dominio.
* Especificación de restricciones
Fase 3 Diseño navegacional
* Se recomienda el uso de restricciones
Se obtiene el modelo de espacio de navegación escritas(OCL: Lenguaje de restricciones de
y el de estructura de navegación que muestra objetos)
como navegar atreves del espacio de
APLICACIÓN:
navegación. El resultado son diagramas de
clases que representan estos modelos. El modelado sirve no solamente para los
grandes sistemas, aun en aplicaciones de
Fase 4 Diseño de Presentación
pequeño tamaño se obtienen beneficios de
Representa las vistas del interfaz del usuario modelado, sin embargo es un hecho que entre
mediante modelos estándares de iteración UML más grande y más complejo es el sistema, más
importante es el papel de que juega el
modelado por una simple razón
METODOLOGIA WSDM(WEB SITE DESIGN
METHOD)
Es un Método de Diseño para Sitios Web (Web Site Design Method), donde hay un acercamiento al
usuario que define los objetos de información basado en sus requisitos de información para el uso
de la Web. En este método se definen una aplicación Web a partir de los diferentes grupos de
usuarios que vaya a reconocer el sistema.
CARACTERISTICA PRINCIPAL
Basada en grupos de usuarios orientada a kiosco web solo presenta la información al usuario sin
seguridad ni funcionalidad.
Fase de Modelo de Usuario VENTAJAS:
Se intenta detectar los perfiles de usuarios para En cada fase se permite cambios de objetivos.
los cuales se construye la aplicación
Funciona bien en proyectos de innovación en la
Fase de Diseño Conceptual web.
Se desarrolla el modelado conceptual no tiene
el mismo significado que en OOHDM. Durante Es sencillamente, ya que sigue los pasos
el modelado conceptual se realizan dos tareas a intuitivos necesarios a la hora de desarrollar el
la vez: el modelado de objetos, que es lo que en software.
OOHDM se llama modelo conceptual y el
diseño de la navegación Es fácil el uso y una mejor capacidad de
Fase de Diseño de Implementación respuesta e interactividad con el usuario.
Se modela la interfaz para cada rol de usuario, DESVENTAJAS:
Ahora que se tiene una versión definitiva del
plan se puedan comenzar con la construcción Es crítico en el desarrollo web moderna, las
del sitio web. Durante esta fase metodologías tienden a descuidar
Fase de Realización de Implementación A dejado fuera su ámbito en aspecto esencial la
Se codifican todos estos aspectos en el funcionalidad del sistema
lenguaje concreto que se haya seleccionado.
WSDM es también una propuesta viva que está Es necesario que los navegadores estén
cambiando y adaptándose a nuevos requisitos. actualizados ya que tienen algunas dificultades
MODELO DE CASCADA
En Ingeniería de software el desarrollo en cascada, también llamado modelo en cascada (denominado
así por la posición de las fases en el desarrollo de esta, que parecen caer en cascada “por
gravedad” hacia las siguientes fases), es el enfoque metodológico que ordena rigurosamente las etapas
del proceso para el desarrollo de software. de tal forma que el inicio de cada etapa debe esperar a la
finalización de la etapa anterior. Al final de cada etapa, el modelo está diseñado para llevar a cabo una
revisión final, que se encarga de determinar si el proyecto está listo para avanzar a la siguiente fase.
Este modelo fue el primero en originarse y es la base de todos los demás modelos de ciclo de vida.
CARACTERÍSTICAS
Es el más utilizado.
PLANEACION: En esta etapa evalúa la función y el *La especificación puede desarrollarse de forma
rendimiento que se asignaron al Software durante la creciente.
Ingeniería del Sistema de Computadora para establecer *Los usuarios y desarrolladores logran un mejor
un ámbito de proyecto que no sea ambiguo, e entendimiento del sistema. Esto se refleja en una mejora
incomprensible. de la calidad del software.
* Es más efectivo que el modelo de cascada, ya que
ANÁLISIS DE RIESGOS: en esta etapa l analista se cumple con las necesidades inmediatas del cliente.
encarga de analizar los riesgos que el software a crear
estará expuesto y así encontrar la manera de DESVENTAJAS
corregirlos.