Las metodologías para el desarrollo de software CL AS I F I CACI Ó N D E L AS M ET O D O L O G Í AS SEGÚN EL MODELO DE PROCESO SEGUN SU ENFOQUE
Universidad de Oriente
GENERACIONES Y CARACTERISTICAS DE LAS METODOLOGÍAS ¿ Q u e m e t o d o lo g ía e s c o n v e n ie n t e u s a r ?
AÑ O X - N Ú M E RO 0 2
Mayo - 2014
J ob e tson P a rri s/J org e Ce d e ñ o/H e ctor S a l a za r
Metodologías para el Contenido
8
2 8/0 5/2 0 1 4
desarrollo de software
5
CL AS I F I CACI Ó N D E L AS M ET O D O L O G Í AS
GENERACIONES Y CARACTERISTICAS
DE LAS METODOLOGÍAS
SEGÚN EL MODELO DE PROCESO SEGUN SU ENFOQUE
13 3 4
I n trod u cci on Introduccion a las metodologías para el desarrollo de software Metodologia de desarrollo de software y evolución
1 4 Referencias 15
Humor de Rayma
8 9
Cl a si fi ca ci ón
¿ Q u e m e t o d o lo g ía e s c o n v e n ie n t e u s a r?
S e g u n su e n foq u e
Clasificación de los modelos Convencionales o Prescriptivos de Procesos
de las metodologías 1 2 Clasificación para el desarrollo de software según su enfoque
Clasificación de los Modelos Evolutivos
de los Modelos de 1 0 Clasificación Desarrollo Ágiles
11
Ciclo de vida del modelo Scrum
Equipo editorial: Revista de las Metodologias para el desarrollo de sofware Editor del contenido: Jobetson Parris Asistente de Edición: Jorge Cedeño Redactores:Hector Salazar/ Jorge Cedeño Corrección:Hector Salazar Fotografía: Jobetson Parris
Metodologías para el desarrollo de software
Carta del editor
"Desde hace muchos años se han establecido soluciones para problemas de desarrollo de software, ya que esta es una tarea difícil, pare esto las metodologías aplicadas como técnicas resultan ser muy útil para el desarrollo de software, lo hace más predecible y eficiente al desarrollar un proceso para su planificación. Hoy en día ya ha ido evolucionando estas metodologías, existes muchas propuestas para el proceso de desarrollo. Gracias a ellas podemos desarrollar proyectos de gran tamaño dando como resultado una buena solución a los problemas de los proyectos."
28 Mayo 2014
2
28 Mayo 2014
3
In g e n ie r ía d e s o f t w a r e Metodología de desarrollo de software M E TO D O LO G Í A D E D E S A R R O LLO D E S O FTW A R E
predominaba
soporte
técnicas,
documental
el
diseño
años
60
y
andFix), si al terminar se descubría
y
que el diseño era incorrecto, la solución
de
era desecharlo y volver a empezar, este
procedimiento
para
los
consistía en codificar y corregir (Code
Se describe como el conjunto de herramientas,
para
modelo implementaba el código y luego
Sistemas de información.
se pensaba en los requisitos, diseño, validación y mantenimiento.
En Ingeniería de software cuando se habla de desarrollo de software se habla
En la década de los setenta empezó a
de desarrollo de programas y por lo tanto se
tomar la importancia de los datos, y
considera como una tarea de ingeniería,
para
en el cuál se debe ejecutar una serie
que
acuerdo
con
funcione
por
de
métodos
sistemas
complejos empezó el análisis
de fases, etapas para obtener un programa
solucionar
partes
o
etapas,
se
introducen la planeación y
ya
otras
administración. El modelo
disciplinas de ingeniería. Las
en cascada surge como
actividades que los ingenieros
respuesta al modelo de
de
procesos,
establecidos
en
software
encuentran proceso
realizan
asociadas
de
software
se a
este
modelo
un
tiene más disciplina y se
donde
basa en el análisis, diseño, pruebas
intervienen diferentes elementos
y
mantenimientos.
La década de los ochenta es la
(fases, actividades, producto, roles,
época
agentes) que permiten la definición del
marcada
por
las
software a producir (producto), el desarrollo
metodologías dirigida a datos cuya
o el diseño del software, la validación del
importancia va tomando cuerpo en las
software tanto lo interno (requerimientos
organizaciones. Se empiezan a estudiar
específicos) como lo externo(expectativas del
los objetos en sí como unidades de
cliente), y la evolución del software donde se modifica para adaptarlo a los cambios. Particularmente, una metodología se basa en una combinación de los modelos de proceso genéricos para obtener como beneficio un software que soluciones un problema.
E vol u c i ón h i st ór i c a d e l a s m et od ol og í a s d e d esa r r ol l o d e sof t w a r e Desde trabajar
sobre
que el
se
empezó
desarrollo
a de
programas, se siguieron ciertos métodos que permitían llevar a producir un buen
Los tiempos van cambiando
(aunque no de la misma manera para todo el mundo). La informática va madurando y tanto algunos profesionales de las tecnologías de la información como algunos de sus clientes se van dando cuenta de que se hace necesario seguir unas ciertas pautas predefinidas en el desarrollo del software de calidad.
información. Para los años 90 se quiere dar
respuesta
al
entorno
siempre
cambiante y en rápida evolución en que se han de desarrollar los programas informáticos, lo cual da lugar a trabajar en ciclos cortos (como miniproyectos) que implementan una parte de las funcionalidades, pero sin perder el rumbo general del proyecto global.
Los nuevos métodos van buscando minimizar riesgos y, puesto que los errores más perjudiciales se producen en los primeros pasos, se comienza ya
proyecto, estas metodologías aplicadas
desde la fase más general del estudio
eran simples, solo se preocupaban por
por analizar los riesgos que significa
los procesos mas no por los datos, por lo
seguir con las siguientes fases del
tanto
desarrollo.
los métodos eran desarrollado
hacia los procesos. El modelo de proceso
28 Mayo 2014 4
DE M E TO D O LO G ÍAS
Las metodologías han ido cambiando con el tiempo, al surgir nuevos paradigmas que rompe con lo tradicional para abrir paso a nuevas técnicas de solución.
Las metodologias han evolucionado a lo largo del tiempo estas herramientas, inicialmente el periodo de desarrollo convencional (practicas artesanales), luego surge el Desarrollo estructurada (parte de la programación estructurada seguido de los método de análisis y diseño, cubre todo el ciclo de vida completo). Actualmente aparece el paradigma de la orientación a objetos.
A.
Desarrollo Convencional
Hasta hace relativamente poco tiempo cuando se hablaba de “desarrollo” se aludía únicamente al crecimiento económico dando por supuesto que dicho crecimiento se revierte de manera casi automática en los otros sectores de la estructura social. El desarrollo convencional tiene serios problemas, como los siguientes: Los resultados finales son impredecibles, es decir no se sabe cuándo debe acabar un proyecto. No hay forma de controlar lo que está sucediendo en el proyecto, al no existir fases establecidas y productos intermedios sobre los que realizar verificaciones.
Los cambios organizativos afectan negativamente al proceso de desarrollo, no suele existir documentación estandarizada o no se actualizan oportunamente. En el desarrollo convencional todo el programa está en un solo bloque, con ejecución secuencial de instrucciones. Eran los tiempos del ensamblador, las capacidades reducidas y la necesidad de optimizar al máximo. Se enfoca tanto a las necesidades del cliente y por lo cual, los programas se hacían sin usar una metodología concreta, solo los programadores se proponían a construir un código y si contenía errores era muy difícil prever donde se encontraban. B.
Desarrollo Estructurado
El desarrollo estructurado comenzó con la programación. El diseño estructurado se caracteriza por lo siguiente: Mayor nivel de abstracción (independencia del lenguaje programación). Elemento básico de diseño: módulo. Modularidad que permite medir la calidad de programas.
28 Mayo 2014 5
Ven el sistema como entradas-proceso-salidas. Se concentran en la parte del proceso. Se lee de porciones, independientes de las especificaciones. Inconvenientes: Leer todas las especificaciones para entender el problema. Se repetía la misma información en partes diferentes del documento. El enfoque de requisitos se interpretaba diferente por cada usuario. Cuando se finalizaba el proceso de desarrollo las especificaciones eran obsoletas. En el desarrollo estructurado los programas están divididos en distintos bloques, estos bloques tienen funciones que se van confeccionado en forma de arriba-abajo, empezando desde las generales hasta las particulares, hasta llegar a detallar cada uno de los procedimientos y su interacción. Este desarrollo se enfoca al
28 Mayo 2014 6
diseño del programa y la compresión se hace más fácil. Se ha hecho evidente que este enfoque aun está un poco arraigado ya que se tiende a no pasar de un proceso o iteración a otra, sin culminar con la anterior, además que el ciclo de vida debe recorrerse completo y al manejarse de esta manera, trae como consecuencias información redundante, costos y desperdicio de tiempo.
C. Desarrollo Orientado a Objetos En la metodología orientada a objetos el sistema se organiza como una colección de objetos que interactúan entre sí y que contienen tanto estructuras de datos como un comportamiento. Esto se opone a la programación convencional, en la cual las estructuras de datos y el comportamiento solamente están relacionadas de forma débil, ya que estos se enfocan principalmente a las funciones. Los principios del modelo OO son: Abstracción Encapsulación
Modularidad Jerarquía o herencia Tipificación Concurrencia Persistencia El desarrollo orientado a objetos comprende dividir un programa en clases, donde estas clases estarán estructuradas por propiedades, atributos, variables, pretendiendo simular y describir de manera conceptual a un objeto, y lo importante de este desarrollo es que al usar el principio de encapsulamiento proporciona la ventaja de que se evite interferencias extrañas entre distintas partes del programa y podemos cambiar la implementación concreta de un objeto sin afectar al resto del sistema.
Características deseables de una metodología Existencia de reglas predefinidas, fases y subfases, tareas, productos intermedios, técnicas y herramientas tales que se amolden a cualquier desarrollo.
Cobertura total del ciclo de desarrollo. Verificaciones intermedias. Planificación y control. Comunicación efectiva. Utilización sobre un abanico amplio de proyectos. Fácil formación. Herramientas case. La metodología
debe contener
las etapas, las
actividades que mejoren el proceso de desarrollo.
salidas, entradas de un proyecto. Mantener un
Soporte al mantenimiento. Por ejemplo. Reingeniería. Soporte de la reutilización de software, no solo reutilización de código. Actualmente, se huye de métodos muy burocráticos o monolíticos.
programa no es fácil pero se puede lograr, por lo tanto, las metodologías deben permitir una robusta formación del proyecto que permita utilizar mecanismos de mejora y que se usen los recursos disponibles con su mayor rendimiento y eficacia.
Lo que se quiere de una metodología es que permita definir
28 Mayo 2014
7
Clasificación de las
Metodologías C L AS I F I C AC I Ó N D E L AS M E T O D O L O G Í AS
SEGÚN EL MODELO DE PROCESO Y SEGÚN SU ENFOQUE SEGÚN EL MODELO DE PROCESO SON:
1) Modelos Convencionales modelo del proceso que se desee usar, los ingenieros de o P r e s c r i p t i vos d e P r oc e s os software eligen una manera 2) Modelos de Desarrollo tradicional para realizar el marco de trabajo genérico Ág i l e s para el proceso, ya que estos Los modelos convencionales o modelos se caracterizan por modelos prescriptivos de ser en esencia rígidos, procesos permiten llenar el estrictos y los más utilizados marco de trabajo con un conjunto de tareas orientadas al desarrollo de un software. Se les llaman "prescriptivos" porque prescriben un conjunto de elementos del proceso, tales como: Ac t i v i d a d e s d e l M a r c o d e Tr a b a j o . Ac c i o n e s d e l a I n g e n i e r í a d e l s o f t wa r e . Ta r e a s . P r od u c t os d e t r ab aj o. As e g u r a m i e n t o d e l a c a l i d a d . M e c an i s m os d e c on t r ol d e l c am b i o p ar a c ad a p r oye c t o.
Estos modelos son útiles si queremos describir un conjunto único de actividades dentro de un marco de trabajo para un proceso de software. Cada actividad debe contener un conjunto de acciones de ingeniería del software, y definir cada acción en cuanto a un conjunto de tareas que identifique el trabajo (y los productos del trabajo) que deben completarse para alcanzar las metas de desarrollo. Sin importar el
28 Mayo 2014
8
En las metodologías convencionales, el ciclo de vida de un proyecto, puede definirse como un ciclo de vida lineal, ya que imponen una disciplina de trabajo sobre el proceso de desarrollo del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto software.
L os M ode l os Co n v e n c i o n a l e s o P r e s c r i pt i v os s e c l as i f i c an e n:
1 . 1 ) M o d e l o e n Ca s c a d a 1. 2) M od e l o d e P r oc e s os In c r e m e n t ab l e s 1. 3) M od e l o d e d e s ar r ol l o r á p i d o d e a p l i c a c i o n e s ( DRA) 1 . 4 ) M o d e l o s Ev o l u t i v o s 1. 5) M od e l os i t e r at i vos
1 . 1 ) M o d e l o e n Ca s c a d a El modelo en cascada, algunas veces llamado el ciclo de vida clásico, sugiere un enfoque sistemático, secuencial hacia el desarrollo del software, que se inicia con la especificación de requerimientos del cliente y que continúa con la planeación, el modelado, la construcción y el despliegue para culminar en el soporte del software terminado.
aplica secuencias lineales de manera escalonada conforme avanza el tiempo en el calendario. Cada secuencia lineal produce "incrementos" del software. El desarrollo incremental es útil sobre todo cuando el personal necesario para una implementación completa no está disponible. Los primeros incrementos se pueden implementar con menos gente. Si el producto esencial es bien recibido se agrega (si se requiere) más personal para implementar el incremento siguiente. Además, los incrementos se pueden planear para manejar los riesgos técnicos. Por ejemplo, un sistema grande podría requerir la disponibilidad de un hardware nuevo que está en desarrollo y cuya fecha de entrega es incierta.
Este modelo es aplicable en donde existen ocasiones en que los requisitos de un problema se entienden de una manera razonable y deben estar bien definidos, también cuando el trabajo fluye desde la comunicación a través del despliegue de una manera casi lineal, esta situación se encuentra a veces cuando es necesario 1.3) Modelo de desarrollo rápido de hacer adaptaciones o mejorías bien aplicaciones (DRA) definidas a un sistema existente. El desarrollo rápido de En la actualidad, el trabajo del aplicaciones (DRA) es un modelo de software está acelerado y sujeto a una proceso de software incremental que cadena infinita de cambios (de resalta un ciclo de desarrollo corto. El características, funciones y contenido de la modelo DRA es una adaptación a "alta información). Con frecuencia, el modelo en velocidad" del modelo en cascada en el que cascada no es apropiado para dicho se logra el desarrollo rápido mediante un trabajo. Sin embargo, puede servir como enfoque de construcción basado en un modelo de proceso útil en situaciones componentes. Si se entienden bien los donde los requerimientos están fijos y requisitos y se limita el ámbito del donde el trabajo se realiza, hasta su proyecto, el proceso DRA permite que un conclusión, de una manera lineal. equipo de desarrollo cree un "sistema completamente funcional" dentro de un 1. 2) M od e l o d e P r oc e s os I n c r e m e n t ab l e s periodo muy corto. El modelo incremental combina 1.4) Modelos Evolutivos elementos del modelo en cascada aplicado Se reconoce que el software al en forma iterativa. El modelo incremental igual que todos los sistemas complejos
28 Mayo 2014
9
evoluciona con el tiempo, los requisitos de gestión y de producto a menudo cambian conforme a que el desarrollo procede haciendo que el camino que lleva al producto final no sea real. El desarrollo evolutivo consta del desarrollo de una versión inicial que luego de exponerse se va refinando de acuerdo de los comentarios o nuevos requerimientos por parte del cliente o del usuario final. Los modelos evolutivos son iterativos, se caracteriza por la forma en que permiten a los ingenieros en software desarrollar versiones cada vez más completas del software.
L os M ode l os E v ol ut i v os s e c l asi f i c an e n:
1 . 4 . 1 ) Co n s t r u c c i ó n d e P r o t o t i p o s 1 . 4 . 2 ) M o d e l o e n Es p i r a l 1. 4. 3) M od e l o d e d e s ar r ol l o c on c u r r e n t e 1 . 4 . 1 ) Co n s t r u c c i ó n d e P r o t o t i p o s En Ingeniería de software la construcción de prototipos pertenece a los modelos de desarrollo evolutivo, El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar mucho dinero pues a partir de que este sea aprobado es que el desarrollador puede iniciar el verdadero desarrollo del software. La construcción de prototipos se puede utilizar como un modelo del proceso independiente. Sin importar la forma en que éste se aplique, el paradigma de
construcción de prototipos ayuda al 1.5) Modelos iterativos desarrollador de software y al cliente a Este modelo busca reducir el entender de mejor manera cuál será el resultado de la construcción cuando los riesgo que surge entre las necesidades del usuario y el producto final por malos requisitos estén satisfechos. entendidos durante la etapa de recogida de requisitos. Consiste en la iteración de 1 . 4 . 2 ) M o d e l o e n Es p i r a l varios ciclos de vida en cascada. Al final de El modelo en espiral representa cada iteración se le entrega al cliente una en forma de espiral una secuencia de versión mejorada o con mayores actividades. Este modelo fue originalmente funcionalidades del producto. propuesto por Boehm en 1988, y se El modelo iterativo se suele diferencia de los demás modelos por considerar el riesgo. El modelo en espiral utilizar en proyectos en los que los para la ingeniería de software es requisitos no están claros por parte del actualmente el enfoque más realista para usuario, por lo que se hace necesaria la el desarrollo de software y de sistemas a creación de distintos prototipos para gran escala. Utiliza un enfoque evolutivo, presentarlos y conseguir la conformidad permitiendo al desarrollador y al cliente del cliente. Cada iteración es un mini entender y reaccionar ante los riesgos en proyecto en cascada auto contenido compuesto de actividades como análisis de cada nivel evolutivo. requerimientos, diseño, programación y pruebas. 1. 4. 3) M od e l o d e d e s ar r ol l o c on c u r r e n t e El modelo de proceso concurrente se utiliza como paradigma de desarrollo de aplicaciones cliente/servidor. Un sistema cliente/servidor se compone de un conjunto de componentes funcionales. Cuando se aplica a cliente/servidor, el modelo de proceso concurrente define actividades en dos dimensiones: una división de sistemas y una división de componentes. Los aspectos del nivel de sistemas se afrontan mediante dos actividades: diseño y realización.
28 Mayo 2014
10
2 ) M o d e l o s d e De s a r r o l l o Ág i l e s Las metodologías ágiles son un conjunto de métodos de ingeniería del software, que se basan en el desarrollo iterativo e incremental, teniendo presente los cambios y respondiendo a estos mediante la colaboración de un grupo de desarrolladores auto-organizados y multidisciplinares.
solapada, donde el ciclo de vida del proyecto, es cíclico. La diferencia en el ciclo de vida de un proyecto ágil, en comparación con uno tradicional, se debe a la forma en la que el agilismo, solapa los procesos de manera iterativa. Los modelos de desarrollos agiles se clasifican en: 2 . 1 ) P r o g r a m a c i ó n E x t r e m a ( XP ) 2 . 2 ) De s a r r o l l o Ad a p t a t i v o d e l S o f t wa r e ( DAS ) 2 . 3 ) M o d e l o d e De s a r r o l l o d e S i s t e m a s Di n á m i c o s ( M DS D) 2. 4) M od e l o S c r u m 2 . 5 ) De s a r r o l l o c o n d u c i d o c a r a c t e r í s t i c a s ( DCC)
p or
2 . 6 ) P r o c e s o Un i f i c a d o d e Ra t i o n a l ( RUP ) 2 . 1 ) P r o g r a m a c i ó n E x t r e m a ( XP )
La programación extrema (XP, extreme Programming) es un modelo de proceso de software el fue acuñado por Beck el cual toma los principios y practicas aceptadas y las lleva a niveles extremos. Tiene como objetivo reducir el riesgo en el ciclo de vida del software mediante grupos de desarrollo pequeños, En las metodologías ágiles, los considera que la mejor manera de tratar procesos se desarrollan de manera la falta de requisitos estables en un
sistema, es mediante la agilidad de un grupo pequeño de desarrollo. Esta se basa en la simplicidad, la comunicación y el reciclado continuo de código. El modelo considera varios aspectos problemáticos del desarrollo de software como lo son los retrasos, proyectos cancelados, cambios en el negocio y la rotación del personal. Sus actividades básicas son : Codificar, hacer pruebas, escuchar y diseñar.
equipo, fue desarrollado por Jeff Sutherland y elaborado más formalmente por Ken Schwaber. Se enfoca en el hecho de que procesos definidos y repetibles sólo funcionan para atacar problemas definidos y repetibles con gente definida y repetible en ambientes definidos y repetibles. Y se divide un proyecto en iteraciones (que ellos llaman carreras cortas) de 30 días. La literatura de Scrum se orienta principalmente en la planeación 2.2) Desarrollo Adaptativo del Software iterativa y el seguimiento del proceso. ( DAS ) En cuanto al ciclo de vida del modelo El desarrollo adaptativo de Scrum es el siguiente: software (DAS) 1998 fue propuestos por Jim Highsmith como una metodología para desarrollar el software y sistemas muy complejos. Este se centra en la colaboración humana y la organización del equipo . El Desarrollo adaptativo del software proporciona un marco para el desarrollo iterativo de sistemas grandes y complejos, el mismo fomenta el desarrollo iterativo e incremental con el uso de prototipos. 2 . 3 ) M o d e l o d e De s a r r o l l o d e S i s t e m a s Di n á m i c o s ( M DS D) Es un método de desarrollo ágil de software que apoyado por su continua implicación del usuario en un desarrollo iterativo y creciente que sea sensible a los requerimientos cambiantes, para desarrollar un sistema que reúna las necesidades de la empresa en tiempo y presupuesto. Este se caracteriza por proporcionar un marco de trabajo el cual permita construir y mantener sistemas con restricciones de tiempo muy estrechas mediante el empleo de la construcción de prototipos increméntales en un ambiente de proyecto controlado.
planificación, diseño exploratorio y prototipos. 4) P r e - Ju e go / P l an e am i e n t o: El propósito es establecer la visión, definir expectativas y asegurarse la financiación. 2 . 5 ) De s a r r o l l o c o n d u c i d o c a r a c t e r í s t i c a s ( DCC)
p or
El desarrollo conducido por características (DCC) lo concibieron originalmente Peter Coad como un modelo de proceso práctico para la ingeniería del software orientada a objetos. Stephen Palmer y John Felsin han extendido y mejorado el trabajo de Coad, al describir un proceso adaptativo y ágil que puede aplicarse en proyectos de software de tamaño moderado y grande. En el contexto del DCC una característica "es una función evaluada por el cliente que puede implementarse en dos semanas o menos”. 2 . 6 ) P r o c e s o Un i f i c a d o d e Ra t i o n a l ( RUP )
El Proceso Unificado de Rational es una 1 ) J u e g o / De s a r r o l l o : metodología de desarrollo de software orientada a objetos creada por Rational El propósito es implementar un Software Corporation. sistema listo para entrega en una serie de iteraciones de treinta días llamadas Es una de las metodologías más extendidas “corridas” (sprints). y conocidas por su amplia difusión comercial. Se puede estudiar como una 2 ) P o s - J u e g o / Li b e r a c i ó n : metodología representativa de tipo clásico. Fue definido por los creadores del UML El propósito es el despliegue unificando los métodos de Ivar Jacobson, operacional. Las actividades, Grady Booch y James Rumbaugh. El documentación, entrenamiento, mercadeo hecho de que la empresa RATIONAL y venta. también distribuya herramientas específicas basadas en el mismo método, 2. 4) M od e l o S c r u m 3) P r e - Ju e go / M on t aj e ( S t agi n g) : que facilitan el desarrollo, ha contribuido a su gran expansión. Scrum es una metodología ágil de gestión El propósito es identificar más de proyectos cuyo objetivo primordial es requerimientos y priorizar las tareas para elevar al máximo la productividad de un la primera iteración. Las actividades son
28 Mayo 2014 11
Clasificación de las
Metodologías
SEGÚN SU ENFOQ UE SON:
1) M e t od ol ogí as e s t r u c t u r ad as
3 ) M e t o d o l o g í a s Or i e n t a d a s a Ob j e t o s
2) Metodologías para sistemas de tiempo La orientación a objetos unifica procesos y r e al datos encapsulándolos en el concepto de objetos. La esencia del desarrollo 3 ) M e t o d o l o g í a s Or i e n t a d a s a Ob j e t o s orientado a objetos es la identificación y organización de conceptos del dominio de 1) M e t od ol ogí as e s t r u c t u r ad as la aplicación y no tanto de su representación final en un lenguaje de Se basan en la forma top-down. Entre programación. estas están: Tiene dos enfoques distintos: 1. 1) M e t od ol ogí as or i e n t ad as a p r oc e s os Se basan en la utilización de un método descendente de descomposición funcional para definir los requisitos del sistema, dan lugar a un nuevo concepto "la especificación estructurada" que es un modelo gráfico particionado, descendente y jerárquico de los procesos del sistema. 1. 2) M e t od ol ogí as or i e n t ad as a d at os Son metodologías basadas en la información, ya que los datos son más estables que los procesos. Primero se definen las estructuras de datos y, a partir de éstos, se derivan los componentes procedimentales. 2) M e t od ol ogí as p ar a s i s t e m as d e t i e m p o r e al Las metodologías en tiempo real procesan información orientada al control más que a los datos. Se caracterizan por: Concurrencia. Priorización de procesos. Comunicación y sincronización entre tareas. Acceso simultáneo a datos comunes. Permiten el manejo de interrupciones. Gestión de procesos concurrentes Respuesta oportuna ante eventos externos. Datos continuos o discretos.
28 Mayo 2014
12
Revolucionario, puro u ortodoxo: Rompen con las metodologías tradicionales. La Orientación a objetos se entiende como un cambio profundo de las metodologías estructuradas que se ven como obsoletas. Ejemplos: metodologías OOD de Booch, CRC/RDD de Wirfs-Brock. Sintetista o evolutivo:El análisis y diseño estructurado se considera como la base para el desarrollo Orientado a objetos.
Para concluir con
¿ Q u e m e t o do l o gí a e s c o n v e n i e n te u s a r ? Tener metodologías diferentes para aplicar de acuerdo con el proyecto que se desarrolle resulta una idea interesante. Estas metodologías pueden involucrar prácticas tanto de metodologías ágiles como de metodologías tradicionales. De esta manera podríamos tener una metodología para cada proyecto, la problemática sería definir cada una de las prácticas, y en el momento preciso definir parámetros para saber cual usar.Es importante tener en cuenta que el uso de un método ágil no es para todos. Sin embargo, una de las principales ventajas de los métodos ágiles es su peso inicialmente ligero y por eso las personas que no estén acostumbradas a seguir procesos encuentran estas metodologías bastante agradables. Por otro lado, las metodologías tradicionales o convencionales permiten crear software de manera mas segura ya que estas entan mas establecidas según por sus pasos.
28 Mayo 2014
13
C on c l u s i on e s c o n f e c c i o n a do e n f o r m a de
pe qu e ñ o s , c o n pl az o s
e n u n a c o m b i n a c i ó n de l o s
a r r i b a a b a j o , e m p e z a n d o
r e du c i do s , r e q u i s i t o s v o l á t i l e s
m o de l o s de p r o c e s o
de s de l a s g e n e r a l e s h a s t a l a s
y n u e v as t e c n o l o g í as .
g e n é r i c o s par a o bt e n e r
par t i c u l ar e s , h as t a l l e g ar a
c o m o b e n e f i c i o u n s o f t wa r e
de t a l l a r c a da u n o de l o s
qu e s o l u c i o n e s u n pr o bl e m a
p r o c e di m i e n t o s y s u
de s c r i b e c o m o de s a r r o l l a r
L a t r a s c e n de n c i a de l a s
i n t e r ac c i ó n .
u n a v i s i ó n de l a n u e v a
U n a m e t o do l o g í a s e b a s a
o r g a n i z a c i ó n , b a s a do e n e s t a
m e t o do l o g í a s s e h a h e c h o n o t o r i a , p a s a n do de s o l o
E l m o de l a do de n e g o c i o
E l de s a r r o l l o o r i e n t a do a
v i s i ó n s e de f i n e n p r o c e s o s ,
pr o g r am ar , e s t abl e c e r
o b j e t o s c o m p r e n de di v i di r u n
r o l e s y r e s p o n s a b i l i da de s de
f u n c i o n e s e n e t apas o
p r o g r a m a e n c l a s e s , do n de
l a o r g a n i z a c i ó n p o r m e di o de
m ó du l o s , o b j e t o s , y p o r ú l t i m o
e s t as c l as e s e s t ar án
u n M o de l o de C a s o s de U s o
a g i l i z a r e l de s a r r o l l o de l
e s t r u c t u r a da s p o r
de l N e g o c i o
s o f t wa r e y m i n i m i z a r l o s
p r o p i e da de s , a t r i b u t o s ,
c o st o s.
v a r i a b l e s , p r e t e n di e n do s i m u l a r y de s c r i b i r de m a n e r a
E n e l de s a r r o l l o
c o n c e pt u al a u n o bje t o .
e s t r u c t u r a do l o s p r o g r a m a s e s t á n di v i di do s e n di s t i n t o s
L o s m é t o do s á g i l e s f u e r o n
bl o qu e s , e s t o s bl o qu e s t i e n e n
p e n s a do s e s p e c i a l m e n t e
f u n c i o n e s qu e s e v an
p a r a e q u i p o s de de s a r r o l l o
• Daniel, Cohen y Enrique Asín Lares. Sistemas de información para los negocios. Tercera Edición. MCGraw H ill.
Referencia
:
http://wiki.monagas.u do.edu.ve/index.php/ Metodologías_para_el_ desarrollo_de_software
h t t p : / / l a t e cl a d e e s ca p e . co m / t / M e t o d o lo g ía s + d e + d e s a r r o llo + d e l+ s o f t w a r e
28 Mayo 2014
14
HU M O R
RAYMA
28 Mayo 2014
15