Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Descubre Edición sobre ciclo de vida incremental L A I N F O R M A C I Ó N M Á S O P O R T U N A P A R A T I En este modelo se desarrol la el s istema para sat isfacer un subconjunto de requis i tos especif icados y en poster iores vers iones se incrementa el s istema con nuevas funcional idades que sat isfagan más requis i tos. N O V I E M B R E 2 0 2 1 | N Ú M E R O 5 | V O L . 1 3 02 | Metodología orientada a objetos La metodología orientada a objetos fue propuesta por Gary Booch y en ella propone que los sistemas pueden ser vistos como un conjunto de objetos o entidades con una identidad y comportamiento propio, las cuales interactúan entre sí para alcanzar el objetivo común del sistema. La metodología orientada a objetos ha derivado de las metodologías anteriores a este modelo. Así como los métodos de diseño estructurado realizados guían a los desarrolladores que tratan de construir sistemas complejos utilizando algoritmos como sus bloques fundamentales de construcción, similarmente los métodos de diseño orientado a objetos han evolucionado para ayudar a los desarrolladores explotar el poder de los lenguajes de programación basados en objetos y orientados a objetos, utilizando las clases y objetos como bloques de construcción básicos. Actualmente el modelo de objetos ha sido influenciado por un número de actores no solo de la Programación orientada a objetos, POO (Object Oriented programming, OPP por sus siglas en inglés) . POR LUIS DÍAZ 03 | Además, el modelo de objetos ha aprobado ser un concepto uniforme en las ciencias de la computación, aplicable no solo a los lenguajes de programación sino también al diseño de interfaces de usuario, bases de datos y arquitectura de computadoras /por completo. La razón de ello es, simplemente, que una orientación a objetos nos ayuda a hacer frente ala inherente complejidad de muchos tipos de sistemas. El diseño orientado a objetos (DOO) es una fase de la metodología orientada a objetos para el desarrollo de software. Su uso induce a desarrolladores y programadores a pensar en términos de objetos y responsabilidades, en vez de procedimientos, cuando planifican el código. Se define a un objeto como “una entidad tangible que muestra alguna conductabien definida”. Un objeto es cualquier cosa, real o abstracta, acerca dela cualalmacenamos datos y los métodos que controlan dichos datos”. Un objeto agrupa datos encapsulados y procedimientos para representar una entidad. La interfaz del objeto, esto es, las responsabilidades del objeto, también se definen en esta etapa. Un programa orientado a objetos se caracteriza por la interacción de esos objetos. El diseño orientado a objetos es la disciplina que define los objetos y sus interacciones para resolver un problema de negocio que fue identificado y documentado durante el análisis orientado a objetos (AOO). Mejoras significativas de la productividad y calidad del código. Estabilidad de los modelos respecto a entidades del mundo real Construcción iterativa. Promueve la reutilización de software y de diseños (componentes, frameworks). Los sistemas OO son generalmente más pequeños que su equivalente no OO: menos código y más reutilización. Permite desarrollar sistemas más preparados para el cambio. Vale para aplicaciones de pequeño y gran tamaño. Ventajas de Objetos Ventajas del AOO Dominio del problema. El paradigma OO es más que una forma de programar. Es una forma de pensar acerca de un problema en términos del mundo real en vez de en términos de un ordenador. El AOO permite analizar mejor el dominio del problema, sin pensar en términos de implementar el sistema en un ordenador. El AOO permite pasar directamente el dominio del problema al modelo del sistema. ¿ Ventajas de la metodología orientada a objetos ? 19 Comunicación. El concepto OO es más simple y está menos relacionado con la informática que el concepto de flujo de datos. Esto permite una mejor comunicación entre el analista y el experto en el dominio del problema (es decir, el cliente). Consistencia. Los objetos encapsulan tanto atributos como operaciones. Debido a esto, el AOO reduce la distancia entre el punto de vista de los datos y el punto de vista del proceso, dejando menos lugar a inconsistencias o disparidades entre ambos modelos. Expresión de características comunes. El paradigma OO utiliza la herencia para expresar explícitamente las características comunes de una serie de objetos. Estas características comunes quedan escondidas en otros enfoques y llevan a duplicar entidades en el análisis y código en los programas. 04 | POR BARBARA MEJIAS Sin embargo, el paradigma OO pone especial énfasis en la reutilización, y proporciona mecanismos efectivos que permiten reutilizar aquello que es común, sin impedir por ello describir las diferencias. Resistencia al cambio. Los cambios en los requisitos afectan notablemente a la funcionalidad de un sistema, por lo que afectan mucho al software desarrollado con métodos estructurados. Sin embargo, los cambios afectan en mucha menor medida a los objetos que componen o maneja el sistema, que son mucho más estables. Las modificaciones necesarias para adaptar una aplicación basada en objetos a un cambio de requisitos suelen estar mucho más localizadas. Reutilización. Aparte de la reutilización interna, basada en la expresión explícita de características comunes, el paradigma OO desarrolla modelos mucho más próximos al mundo real, con lo que aumentan las posibilidades de reutilización. Es probable que en futuras aplicaciones nos encontremos con objetos iguales o similares a los de la actual. 19 Fácil de mantener, los objetos representan entidades auto-contenidas. Los objetos son componentes reutilizables. Para algunos sistemas, puede haber un mapeo obvio entre las entidades del mundo real y los objetos del sistema. Ventajas del Diseño Orientado a Objetos 05 | Hablamos sobre... Principios de la metodología orientada a objetos 06 | Existen cuatro principios básicos, estos principios son fruto de la experiencia en todas las ramas de la ingeniería. POR L ISDUER PARRA Modularización Módulos fáciles de manejar y que comprenden las estructuras de datos y las operaciones permisibles. Encapsulado Distingue entre las interfaces a un objeto (qué es lo que hace), de la implementación (cómo lo hace). Tipos de datos abstractos Agrupa todos los objetos que tienen la misma interface y los trata como si fueran del mismo tipo. Herencia Reutilización, ya que permite definir nuevos tipos en funciones de otros tipos. El nuevo tipo hereda las estructuras de datos y los métodos del tipo precedente. Mensajes Un objeto lleva a cabo sus acciones cuando recibe un mensaje concreto, codificado de una forma simple, estándar e independiente de cómo o dónde está implementado el objeto. Polimorfismo Diferentes objetos responden al mismo mensaje. El sistema determina en tiempo de ejecución qué código invocar dependiendo del tipo de objeto (técnicas de Overloadingy Dynamic binding) 07 | Surge en la década de 1980, su principal característica es tomar a los procesos y datos en forma conjunta. Los sistemas orientados a objetos se desarrollan alrededor de entidades del dominio del problema, lo cual resulta en desarrollos bastante estables. El análisis orientado a objetos, a diferencia del estructurado, que considera comportamiento y datos de forma separada, combina ambos. En el análisis orientado a objetos, la forma de modelar la realidad difiere del análisis convencional. Características de la metodología orientada a objetos. 19 Modelamos el mundo en términos de tipos de objetos y lo que le ocurre a éstos. Los modelos que construimos en el análisis OO reflejan la realidad de modo más natural que los del análisis tradicional de sistemas. Mediante las técnicas OO construimos software que modela más fielmente el mundo real. Cuando el mundo real cambia, nuestro software es más fácil de cambiar, lo que esuna ventaja real. 08 | POR JOSE PERDIGON En este ciclo el modelo fundamental es el modelo de requisitos, ya que a partir de este modelo se generarán los restantes Requisitos: el modelo de casos de uso sirve para expresar el modelo de requisitos, el cual se desarrolla en cooperación con otros modelos, como se verá más adelante. Análisis: la funcionalidad especificada por el modelo de casos de uso se estructura en el modelo de análisis, que es estable con respecto a cambios, siendo un modelo lógico independiente del ambiente de implementación. Diseño: la funcionalidad de los casos de uso ya estructurada por el análisis es realizada por el modelo de diseño, adaptándose al ambiente de implementación real y refinándose aún más. Implementación: los casos de uso son implementados mediante el código fuente en el modelo de implementación. Pruebas: los casos de uso son probados a través de las pruebas de componentes y pruebas de integración. Ciclo de vida en el desarrollo de software orientado a objetos 19 FUSION (Object-Oriented Development). RDD (Responsibility-Driven Design). OOAD (Object-Oriented Analysis and Design). OOAD (Object-Oriented Analysis and Design). OMT (Object Modeling Technique). OOSE (Objectory Object Oriented Software Engineering). OOK/MOSES Object-Oriented Knowledge. OOSA Object-Orientd System Analysis. OOAD Object-Oriented Analysis and Design OOSA Object-Oriented Systems Analysis OBA Object Behavior Analysis. OORA Object-Oriented Requirements Analysis. OOSD Object-Oriented System Development OOAD/ROSE Object-Oriented Analysis & Design Documentación: el modelo de casos de uso debe ser documentado a lo largo de las diversas actividades, dando lugar a distintos documentos, como son los manuales de usuario, manuales de administración, etcétera. Metodologías orientadas a objetos más importantes Existen varias metodologías orientadas a objetos, cada una empleando sus propios diagramas y modelos, pero las más importantes son: 09 | POR GRAICELYS VOLCÁN Sabías qué... La metodología orientada a objetos se aplica a las empresas 10 | Ama de casa La empresa ama de casa de los Palos Grandes Caracas presentaba varios problemas específicamente en la administración , aunque tenían otros problemas que como la aplicación de diversas metodologías , es decir no tenían una metodología definida y por ello tenían pérdidas financieras. De igual forma se debe agregar que la empresa pudo solicitar su problemática gracias a la implementación de la metodología orientada a objetos, ya que se adaptaba a su forma de trabajar y les permitió implementar un sistema de simple y efectivoseguro para la organización. La empresa de Valencia La Reingeniería de la Empresa de Valencia España es un ejemplo de esta metodología orientada a objetos. Ya que le permitió usar un modelo que les ayude en sus procesos de forma eficaz y poder tener un sistema fácil de aplicar. POR GRAICELYS VOLCÁN 11 | Ciclo de vida incremental Propuesto por Mills en 1980 sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema. Modelo de desarrollo incremental. En este modelo se desarrolla el sistema para satisfacer un subconjunto de requisitos especificados y en posteriores versiones se incrementa el sistema con nuevas funcionalidades que satisfagan más requisitos. Los ciclos de vida iterativos e incrementales son aquellos en los cuales se repiten las actividades del proyecto en fases o iteraciones y en cada una de ellas se aumenta el entendimiento del producto por parte del equipo del proyecto. Las iteraciones desarrollan el producto a través de una serie de ciclos repetidos que van añadiendo sucesivamente funcionalidad al producto. Al final de cada iteración, se habrá completado un entregable o un conjunto de entregables. Las futuras iteraciones pueden mejorar dichos entregables o crear nuevos. El producto final será la acumulación de funcionalidades construida en las iteraciones. Desarrollar por partes el producto software, para después integrarlas a medida que se completan. POR LUIS DÍAZ 12| Ciclo de vida incremental Propuesto por Mills en 1980 sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema. Modelo de desarrollo incremental. En este modelo se desarrolla el sistema para satisfacer un subconjunto de requisitos especificados y en posteriores versiones se incrementa el sistema con nuevas funcionalidades que satisfagan más requisitos. Los ciclos de vida iterativos e incrementales son aquellos en los cuales se repiten las actividades del proyecto en fases o iteraciones y en cada una de ellas se aumenta el entendimiento del producto por parte del equipo del proyecto. Las iteraciones desarrollan el producto a través de una serie de ciclos repetidos que van añadiendo sucesivamente funcionalidad al producto. Al final de cada iteración, se habrá completado un entregable o un conjunto de entregables. Las futuras iteraciones pueden mejorar dichos entregables o crear nuevos. El producto final será la acumulación de funcionalidades construida en las iteraciones. Desarrollar por partes el producto software, para después integrarlas a medida que se completan. POR LUIS DÍAZ Una rápida adaptación a los cambios. La intervención del cliente a lo largo de todo el proyecto. Las entregas progresivas y funcionales del producto al final de cada ciclo. Un ejemplo de un desarrollo puramente incremental puede ser la agregación de módulos en diferentes fases. El agregar cada vez más funcionalidad al sistema. Se opta por los ciclos de vida iterativos e incrementales cuando es necesario gestionar objetivos poco definidos o de una alta complejidad o cuando la entrega parcial del producto es clave para el éxito. Este tipo de ciclo de vida permite al equipo del proyecto incorporar la retroalimentación e ir incrementando la experiencia del equipo durante el proyecto. El ciclo de vida incremental, también conocido como adaptativo, está enfocado a la aplicación en metodologías ágiles como Scrum y Kanban. Este sistema busca alcanzar un crecimiento progresivo de la funcionalidad. El procedimiento consiste en estructurar las fases en procesos cíclicos al final de los cuales se hace entrega de un incremento del producto y una mejora de calidad de las entregas previas. Como ves se trata de una evolución del ciclo de vida iterativo. En definitiva, los proyectos que aplican el tipo de ciclo de vida incremental se caracterizan por tres detalles: 13 | Este tipo de ciclo de vida presenta claras diferencias con el tipo predictivo. Sin embargo, es fácil confundirlo con el tipo iterativo. Aunque se trata de una derivación de éste, es importante reconocer los matices que los diferencian. Es un proceso bajo el cual se produce una aplicación parcial y poco a poco se aumenta la funcionalidad o el rendimiento planificación con anterioridad a través de mediante incrementos subsecuentes. La Ingeniería del Software y la Orientación a Objetos son dos áreas cuya intersección produce un amplio abanico de técnicas y metodologías que pretenden facilitar la construcción de software. Este artículo revisa algunas de estas técnicas, que pueden ser de gran utilidad para el desarrollo de proyectos complejos con éxito. La estructura de fases en el ciclo de vida incremental 14 | Definición de los requerimientos a alcanzar al concluir esa iteración. Planificación de las tareas necesarias para cumplir con el objetivo previsto. Ejecución de las tareas de acuerdo con la planificación establecida. Evaluación del incremento a entregar. Al término de cada iteración se debe valorar si lafuncionalidad definida al comienzo de ésta ha sido alcanzada. Entrega del producto. Al concluir los trabajos se hace entrega al cliente del producto intermedio. Este tipo de ciclo de vida se estructura en procesos iterativos que se repiten a lo largo de todo el proyecto. Estos ciclos están constituidos por, al menos, las siguientes fases: POR BARBARA MEJ IAS Análisis de la estructura de fases en el ciclo de vida incremental Requerimientos Esta fase se refiere a todos los objetivos del proyecto, tanto el general o central como los específicos. Se precisan las tareas e iteraciones Ya teniendo claros los objetivos que el proyecto nos ayudará a alcanzar, la siguiente fase es definir las tareas y las iteraciones con que las que los concretaremos. Si observamos, esta fase incrementa el alcance del objetivo central en comparación con la anterior. Diseño de los incrementos Se define cuál será la evolución del proyecto en las iteraciones. Cada una de ellas debe superar a la que le precede para que se pueda dar el incremento. Desarrollo del incremento Las tareas definidas son llevadas a cabo y así los incrementos previstos son desarrollados. Validación de los incrementos Los responsables de la gestión de proyecto han de verificar que cada iteración culminada de los resultados esperados. Si no es así, hay que hacer una revisión de las tareas y buscar las causas de los errores. Integración de los incrementos Como lo indica el nombre de esta fase, se trata de integrar todos los incrementos aprobados o validados por la gestión de proyectos. Así se da la evolución global del proyecto, lo que también se conoce como línea incremental. Entrega del producto Una vez hecha la integración y se constante que el producto cumple con los objetivos planteados, se realiza la entrega. Este es el último paso del modelo incremental fases. 15| Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar a usarlo desde el primer incremento. Los clientes pueden aclarar los requisitos que no tengan claros, conforme ven las entregas del sistema. Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en cada incremento. Las partes más importantes del sistema son entregadas primero, por lo cual se realizan más pruebas en estos módulos y se disminuye el riesgo de fallos. Ventajas del modelo Incremental 19 16| POR LISDUER PARRA Se requiere mucha experiencia en el proceso de definición de los requerimientos y la distribución de las tareas en la planificación de las iteraciones. Es importante que esos requerimientos tengan una funcionalidad que aporte valor al concluir el ciclo. Además, la distribución de tareas en cada ciclo debe distribuirse equitativamente entre el equipo. Se trata de que en una iteración no se cargue de trabajo a un determinado perfil del equipo mientras que otro perfil quede ocioso. Cada incremento debe pasar por pruebas de regresión. Se debe asegurar en todo momento que no se producen errores y que hay una perfecta compatibilidad con lo ya entregado. Esto puede suponer un elevado coste. Desventajas del ciclo de vida incremental 19 17| POR JOSE PERDIGON Se debe mejorar la calidad de las entregas previas. Es habitual que los equipos se concentren el aumentar la funcionalidad olvidando realizar las mejoras de calidad en el producto ya entregado. El resultado de no atender este aspecto es un producto de baja calidad. Se presupone que todos los requisitos se han definido al inicio. Se requiere de una experiencia importante para definir los incrementos de forma de distribuir en ellos las tareas en forma proporcional. Si el sistema a desarrollar es de gran magnitud y se cuenta con un único grupo para construirlo se corre el riesgo que el desarrollo se prolongue demasiado en tiempo. Combina elementos del modelo de cascada con la filosofía interactiva de construcción de prototipos. Cada secuencia lineal produce un producto operacional con cada incremento de la misma forma que progresa el tiempo en el calendario. El primer incremento es a menudo el núcleo. Como un resultado de evaluación y/o utilización se desarrolla un plan para el incremento siguiente, este proceso se repite hasta llegar al producto completo. Este modelo es particularmente útil cuando la dotación de personal no es suficiente para una implementación completa. Los primeros incrementos se pueden implementar con menos recursos. Si es muy riesgoso desarrollar el sistema completo de una sola vez, entonces debería considerar este modelo. Características del ciclo de vida incremental 19 18| POR GRAICELYS VOLCÀN
Compartir