UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE DEPARTAMENTO DE INGENIERIA Y ARQUITECTURA
Ingeniería de Software Modelo Desarrollo Concurrente Ing. Carlos Arturo Ruano
Integrantes: Arias Guerrero, Fernando Audiel Díaz Cruz, Jorge Alberto García De la Cruz, Ana María. Pacheco Molina, Miguel Antonio Romero Reyes, Marta Cecilia
Modelo de Desarrollo Concurrente
¿Qué es El Modelo de Desarrollo Concurrente? Este modelo es conocido también como Ingeniería Concurrente dado por Davis Sitaram, el modelo se representa como una serie de actividades técnicas importantes, tareas y estados asociados a un proyecto en desarrollo. Fue creado luego de duras críticas a su antecesor el modelo en Cascada, ya que este era engorroso para poder solucionar problemas en las primeras capas. El modelo de Desarrollo concurrente define una serie de acontecimientos que dispararán transiciones de estado a estado para cada una de las actividades de la ingeniería del software. Durante las primeras etapas del diseño, no se contempla una inconsistencia del modelo de análisis. Esto genera la corrección del modelo de análisis de sucesos, que disparará la actividad de análisis del estado hecho al estado cambios en espera. Es un modelo de tipo de red donde todas las personas actúan simultáneamente o al mismo tiempo. Este modelo se centra en las necesidades del usuario y no se ata al tiempo de desarrollo del sistema, ya que debe definir y trabajar en las transiciones de estado que presenta cada etapa del diseño. Puede ser aplicado para un sistema cliente/servidor ya que se compone de un conjunto de componentes funcionales. Cuando se aplica a este, el modelo de proceso concurrente define actividades en dos dimensiones: 1. Dimensión de sistemas. 2. Dimensión de componentes. Los aspectos del nivel de sistema se afrontan mediante tres actividades: diseño, ensamblaje y uso. La concurrencia se logra de dos formas: 1. Las actividades de sistemas y de componentes ocurren simultáneamente y pueden modelarse con el enfoque orientado a objetos. 2. Una aplicación cliente/servidor típica se implementa con muchos componentes, cada uno de los cuales se pueden diseñar y realizar concurrentemente. Descripción del Modelo Los requerimientos son usualmente "líneas de base", cuando una mayoría de los requerimientos comienzan a ser bien entendidos, en este tiempo se dedica un esfuerzo considerable al diseño. Sin embargo, una vez que comienza el diseño, cambios a los requerimientos son comunes y frecuentes (después de
todo, los problemas reales cambian, y nuestro entendimiento de los problemas desarrollados también).
Durante el diseño de arquitectura, es posible que algunos componentes comiencen a ser bien definidos antes que la arquitectura completa sea estabilizada. En tales casos, puede ser posible comenzar el diseño detallado en esos componentes estables. Similarmente, durante el diseño detallado, puede ser posible proceder con la codificación y quizás regular testeando en forma unitaria o realizando testeo de integración previo a llevar a cabo el diseño detallado de todos los componentes.
Ventajas • Excelente para proyectos en los que se conforman grupos de trabajo independientes. Las tareas que se distribuyen en algún momento pueden tener correcciones y este modelo le permite aplicarlas aunque el desarrollo de software haya avanzado y esa corrección sea de requerimientos. • Proporciona una imagen exacta del estado actual de un proyecto. Este modelo tiene la capacidad de describir las múltiples actividades del software ocurriendo simultáneamente.
Desventajas • Si no se dan las condiciones señaladas no es aplicable. Para poder llevar a cabo este modelo debe de cumplir con las características que este dicta, así como el hecho que este método es de tipo red para grupos de trabajo. • Si no existen grupos de trabajo no se puede trabajar en este método El modelo Concurrente busca que el desarrollo de un proyecto sea repartido entre el grupo de trabajo, así cada uno tendrá su respectiva actividad(tarea) dentro del proyecto.
Tipos de Proyectos El modelo de Desarrollo concurrente es aplicable a todos los proyectos que manejan arquitectura Cliente/Servidor.
Un ejemplo claro seria la acción de visitar un sitio web, ya que la mayoría de las páginas requiere la arquitectura Cliente/servidor. Leer un artículo de Wikipedia, requiere el uso de una computadora así como también el uso de un navegador que estarían actuando como el cliente, y la base de datos y los usos que componen Wikipedia actuarían como Servidor.