METODOLOGIA DE DESARROLLO DE
SOFTWARE
MARTIN A. PEÑALOZA S
16.421.304
Rapid Application Development
(RAD)
Desarrollo Rapido De
Aplicaciones
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.
Programación Orientada a
Objetos (OOP)
Abstracción: Denota
las características esenciales
de un objeto, donde se
capturan sus
comportamientos.
Encapsulamiento: Significa
reunir a todos los elementos
que pueden considerarse
pertenecientes a una misma
entidad, al mismo nivel de
abstracción
Principio de ocultación: Cada
objeto está aislado del
exterior, es un módulo natural,
y cada tipo de objeto expone
una interfaz a otros objetos
que específica cómo
pueden interactuar con los
objetos de la clase.
Polimorfismo:
comportamientos diferentes,
asociados a objetos distintos,
pueden compartir el mismo
nombre, al llamarlos por ese
nombre se utilizará
el comportamiento
correspondiente al objeto que
se esté usando.
Herencia: Los objetos heredan
las propiedades y
el comportamiento de todas
las clases a las que pertenecen.
Recolección de basura:
la Recolección de basura o
Garbage Collector es la técnica
por la cual el ambiente de
Objetos se encarga de destruir
automáticamente, y por tanto
desasignar de la memoria, los
Objetos que hayan quedado
sin ninguna referencia a ellos.
VFSM (Virtual Finite
State Machine)
Intenta abstraer la
arquitectura real sobre
la que se
implementarán los
programas. Para
intentar aplicar
métodos matemáticos
genéricos que nos
permitan simular su
comportamiento. Y
poder así diseñar con
garantías de cual va a
ser su funcionamiento.
Aplica la tecnología de
las Máquinas Virtuales.
Y nació en el entorno de
los sistemas embebidos,
para independizarlos
del hardware donde se
insertan.
Rational Unified Process (RUP)
Apunta a una alta integración
con el usuario
Balancear prioridades
La idea es ofrecer muchas
entregas del sistema agregando
funcionalidad paulatinamente
en lapsos cortos de tiempo, esto
permite que el usuario tenga
más claro si el sistema hace lo
que él quiere, además de
comprometerlo en el desarrollo.
Colaboración entre equipos
Programación en parejas, dos
personas por máquina; esto
hace el desarrollo más llevadero
y el surgimiento de ideas, y la
estandarización del código,
además los grupos se pueden
rotar.
Utilizar estándares de
codificación.
No se manejan valores
iterativos
Orientando todo a las pruebas,
se realizan pruebas de unidad
de los módulos incluso se
diseñan antes del software
40 horas de trabajo semanal, las
horas extras mitigan los ánimos
de los desarrolladores
Se planificado a muy corto plazo
(a lo sumo un par de meses)
Corto nivel de Abstracción
Todo se centra en el resultado,
es decir, cumplir con lo que se
planeó y nada más.
Enfocarse en la calidad
Extreme Programming
(XP)
Balancear prioridades
Los requerimientos de
los diversos inversores
pueden ser diferentes,
contradictorios o
disputarse recursos
limitados.
Debe encontrarse un
balance que satisfaga los
deseos de todos.
Colaboración entre
equipos
El desarrollo de software
no lo hace una única
persona sino múltiples
equipos. Debe haber una
comunicación fluida para
coordinar
requerimientos,
desarrollo, evaluaciones,
planes, resultados, etc.
Demostrar valor
iterativamente
Los proyectos se
entregan, aunque sea de
un modo interno, en
etapas iteradas. En cada
iteración se analiza la
opinión de los
inversores, la estabilidad
y calidad del producto, y
se refina la dirección del
proyecto así como
también los riesgos
involucrados
Elevar el nivel de
abstracción
Constructionist Design Methodology
(CDM)
Es un enfoque para la construcción de
sistemas altamente modulares de
muchos componentes que interactúan.
La fuerza de MDL consiste en simplificar
el modelo de los sistemas funcionales
complejos, que requieren múltiples
evolución arquitectónica de las
jerarquías de flujo y control de datos
enredados.
Agile Unified Process (AUP)
Los procesos ágiles de desarrollo de
software, conocidos anteriormente
como metodologías livianas, intentan
evitar los tortuosos y burocráticos
caminos de las metodologías
tradicionales enfocándose en la gente y
los resultados.
Es un marco de trabajo conceptual de la
ingeniería de software que promueve
iteraciones en el desarrollo a lo largo de
todo el ciclo de vida del proyecto. Existen
muchos métodos de desarrollo ágil; la
mayoría minimiza riesgos desarrollando
software en cortos lapsos de tiempo. El
software desarrollado en una unidad de
tiempo es llamado una iteración, la cual
debe durar de una a cuatro semanas.
Cada iteración del ciclo de vida incluye:
planificación, análisis de requerimientos,
diseño, codificación, revisión y
documentación. Una iteración no debe
agregar demasiada funcionalidad para
justificar el lanzamiento del producto al
mercado, pero la meta es tener un demo
(sin errores) al final de cada iteración. Al
final de cada iteración el equipo vuelve a
evaluar las prioridades del proyecto.

Metodologia De Desarrollo De Software

  • 1.
    METODOLOGIA DE DESARROLLODE SOFTWARE MARTIN A. PEÑALOZA S 16.421.304
  • 2.
    Rapid Application Development (RAD) DesarrolloRapido De Aplicaciones 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. Programación Orientada a Objetos (OOP) Abstracción: Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase. Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. Herencia: Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. Recolección de basura: la Recolección de basura o Garbage Collector es la técnica por la cual el ambiente de Objetos se encarga de destruir automáticamente, y por tanto desasignar de la memoria, los Objetos que hayan quedado sin ninguna referencia a ellos. VFSM (Virtual Finite State Machine) Intenta abstraer la arquitectura real sobre la que se implementarán los programas. Para intentar aplicar métodos matemáticos genéricos que nos permitan simular su comportamiento. Y poder así diseñar con garantías de cual va a ser su funcionamiento. Aplica la tecnología de las Máquinas Virtuales. Y nació en el entorno de los sistemas embebidos, para independizarlos del hardware donde se insertan. Rational Unified Process (RUP) Apunta a una alta integración con el usuario Balancear prioridades La idea es ofrecer muchas entregas del sistema agregando funcionalidad paulatinamente en lapsos cortos de tiempo, esto permite que el usuario tenga más claro si el sistema hace lo que él quiere, además de comprometerlo en el desarrollo. Colaboración entre equipos Programación en parejas, dos personas por máquina; esto hace el desarrollo más llevadero y el surgimiento de ideas, y la estandarización del código, además los grupos se pueden rotar. Utilizar estándares de codificación. No se manejan valores iterativos Orientando todo a las pruebas, se realizan pruebas de unidad de los módulos incluso se diseñan antes del software 40 horas de trabajo semanal, las horas extras mitigan los ánimos de los desarrolladores Se planificado a muy corto plazo (a lo sumo un par de meses) Corto nivel de Abstracción Todo se centra en el resultado, es decir, cumplir con lo que se planeó y nada más. Enfocarse en la calidad Extreme Programming (XP) Balancear prioridades Los requerimientos de los diversos inversores pueden ser diferentes, contradictorios o disputarse recursos limitados. Debe encontrarse un balance que satisfaga los deseos de todos. Colaboración entre equipos El desarrollo de software no lo hace una única persona sino múltiples equipos. Debe haber una comunicación fluida para coordinar requerimientos, desarrollo, evaluaciones, planes, resultados, etc. Demostrar valor iterativamente Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto así como también los riesgos involucrados Elevar el nivel de abstracción Constructionist Design Methodology (CDM) Es un enfoque para la construcción de sistemas altamente modulares de muchos componentes que interactúan. La fuerza de MDL consiste en simplificar el modelo de los sistemas funcionales complejos, que requieren múltiples evolución arquitectónica de las jerarquías de flujo y control de datos enredados. Agile Unified Process (AUP) Los procesos ágiles de desarrollo de software, conocidos anteriormente como metodologías livianas, intentan evitar los tortuosos y burocráticos caminos de las metodologías tradicionales enfocándose en la gente y los resultados. Es un marco de trabajo conceptual de la ingeniería de software que promueve iteraciones en el desarrollo a lo largo de todo el ciclo de vida del proyecto. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en cortos lapsos de tiempo. El software desarrollado en una unidad de tiempo es llamado una iteración, la cual debe durar de una a cuatro semanas. Cada iteración del ciclo de vida incluye: planificación, análisis de requerimientos, diseño, codificación, revisión y documentación. Una iteración no debe agregar demasiada funcionalidad para justificar el lanzamiento del producto al mercado, pero la meta es tener un demo (sin errores) al final de cada iteración. Al final de cada iteración el equipo vuelve a evaluar las prioridades del proyecto.