Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Linea de Producto de Software

No description
by

elena barreto

on 6 November 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Linea de Producto de Software

Líneas de Productos de Software (LPS) Reutilización Introducción LPS Definición Conclusión
"Reutilización de software es el proceso de crear sistemas de software a partir de software existente, en lugar de desarrollarlo desde el comienzo” (Sametinger, 1997)

Enfoques de Reutilización
Oportunista: el ingeniero de software reutiliza piezas de software que se ajustan al problema actual y las incorpora en el nuevo software.

Planificada: la organización pone especial énfasis en el desarrollo de artefactos reutilizables que proporcionan las abstracciones apropiadas, con el nivel de variabilidad apropiada y que encajan en una estructura de más alto nivel.
Cuando una empresa ofrece un producto software a distintos clientes, surge toda la problemática de las versiones y mantenimiento del producto. En este escenario, no es raro encontrarse con alguna de las siguientes situaciones:

• Relaciones conflictivas entre los equipos

• Coordinación compleja y costosa de múltiples tareas de desarrollo
en paralelo que comparten software común.

• Código fuente poco robusto, que resulta difícil de extender con
variaciones del nuevo producto y propenso al error.
Para ello surge el desarrollo mediante: Líneas de Productos de Software (LPS):

Definición : se definen las líneas del producto de software como un conjunto de sistemas software, que comparten un conjunto común de características, las cuales satisfacen las necesidades específicas de un dominio o segmento particular de mercado, y que se desarrollan a partir de un sistema común de activos base de una manera preestablecida”.

Entre los precursores de este enfoque en el mundo del software se encuentran McIllory (1968), Parnas (1976) y Neighbors (1989) que en sus trabajos ya intuían el potencial de estas ideas.

Las Líneas de Producto Software (LPS) se engloban dentro de ese anhelo recurrente dentro de la Ingeniería del Software que es la reutilización.
La Línea de Producto Software es una etapa más en la búsqueda del equilibrio entre coste y calidad del software. Hay tres cosas importantes en las que tiene que jugar este enfoque: la organizativa, la metodológica y la técnica.

Si bien las ideas aquí expuestas fueron expuestas hace ya más de 30 años, no es hasta hace poco más de diez años que estas ideas se han evaluado en casos reales de cierta envergadura. Los resultados han sido muy esperanzadores, y los trabajos para profundizar en modelos de organización, metodologías y técnicas adaptadas a las LPS son temas de interés creciente.

Además la LPS permite a la empresa convertirse en una FABRICA de SOFTWARE brindando ganancias evidentes en productividad, calidad y costos de los desarrollos.
Esta problemática no es exclusiva del software. Se da también en la fabricación de otros productos como automóviles, celulares, electrodomésticos, y en general, cuando un mismo producto admite distintas variaciones. La producción en serie es la capacidad para crear eficientemente múltiples copias del mismo producto.
La pregunta es cómo se plasma el enfoque de "personalización
en serie” y se eliminan estos conflictos en el desarrollo de productos software?
Objetivo El reto está en delimitar el ámbito de este dominio, identificar las variaciones que se van a soportar, y dotarse de la infraestructura que permita producir el producto a bajo coste pero manteniendo altas cotas de calidad. Es decir, aplicar los principios de la producción en serie también al software.

Por lo cual el objetivo de una LPS: no es el desarrollo de un producto, sino el de un conjunto de productos, orientándose a un segmento de mercado concreto. Es decir, la empresa ya no se centra en un producto para un cliente (por ejemplo, construir un portal para LAN), sino en un dominio (por ejemplo, construir portales para líneas aéreas).

Con LPS los productos son desarrollados a partir de un conjunto común de activos reutilizables. Este término engloba la diversidad de elementos, tales como requisitos, planificaciones, modelo de características, arquitecturas, componentes, código fuente, descriptores, etc., que conforman la base sobre la que se construye el producto. El reto está en determinar no sólo lo común sino también lo que se va a permitir variar.
Modelo Básico de una LPS La entrada: Activos de Software: Una colección de partes de software (requisitos, diseños, componentes, casos de prueba, etc.) que se configuran y componen de una manera prescrita para producir los productos de la línea

El control: Modelos de Decisión y Decisiones de Productos : Los Modelos de decisiones describen los aspectos variables y opcionales de los productos de la línea.
El proceso de producción Establece los mecanismos o pasos para componer y
configurar productos a partir de los activos de entrada

La salida: Productos de software: Conjunto de todos los productos que pueden o son producidos por la línea de productos
Beneficios de LPS Las LPS producen mejoras en
Reducción en los Tiempos de entrega de los productos (time to market)
Reducción de costos de ingeniería
Aumento del Tamaño del portafolio de productos de la empresa
Reducción de las tasas de defectos
Mayor calidad en los productos

La siguiente figura ilustra la evolución en los costes entre el desarrollo convencional y las LPS
Muchas Gracias! Beneficios relativos a la CALIDAD Un aspecto importante es la tasa de defectos en los productos de la LPS. Aquí los
beneficios se derivan de la reutilización de los elementos comunes (core assets).

La continua utilización de estos elementos a lo largo del tiempo hace que finalmente estén muy depurados/probados.

Esta figura ilustra dos aspectos. Primero, la tendencia descendente del número de defectos al testear un conjunto de productos y otro segundo aspecto del mismo fenómeno se produce al comparar diferentes lanzamientos de los mismos productos.
Aspectos Metodológicos Estrategias:
El proceso de desarrollo de la LPS depende, entre otros muchos factores, del ámbito de la LPS. Es fundamental saber acotar la familia de productos que serán objeto de la línea. En general, existe una tendencia a generalizar en exceso cuando se está desarrollando software re-usable, considerando casos poco probables.

Esta importante decisión, es decir, el ámbito inicial de la línea de producto, depende del punto de partida, de la experiencia acumulada en proyectos anteriores y de la posición en el mercado que ocupe la empresa en cuestión. El enfoque a largo plazo recibe el nombre de proactivo ya que intenta adelantarse a las necesidades existentes por ejemplo dentro de cinco años. Por otro lado, el enfoque reactivo va acometiendo los cambios conforme se van necesitando .
Tecnologías de desarrollo Desarrollo de Componentes

Las componentes de software son uno de los activos más claramente reutilizable.

Las LPS dan un marco para el desarrollo y uso planificado de las componentes de software.

Tecnologías de definición de componentes: COM, ActiveX, JavaBeans, CCM, CORBA, etc.

Paradigmas

Programación Orientada a Componentes
Programación Orientada a Objetos
Arquitectura Orientada a Servicios (SOA)
Procesos Un aspecto central compartido por las distintas metodologías de desarrollo de LPS es la división de los procesos de ingeniería en dos equipos de trabajo:

la Ingeniería de Dominio: este equipo es responsable de desarrollar los elementos comunes al dominio: estudiar el dominio, definir su alcance (requisitos) dentro del mercado objetivo de la LPS, definir las características, implementar los activos reutilizables y su mecanismo de variabilidad, y establecer cómo es el plan de producción.

El segundo equipo se encarga de la Ingeniería de Producto: sus cometidos incluyen desarrollar los productos para clientes concretos, a partir de los recursos basados no en los requisitos del dominio, sino en requisitos concretos de clientes. Para ello, este segundo equipo utiliza los recursos creados por el equipo anterior.
Referencias Oscar Díaz y Salva Trujillo (2010).“Fábricas de Software: experiencias, tecnologías y organización” (2º edición) M.G. Piattini, J. Garzás (editores), Editorial Ra-Ma.

Paul Clements & Linda Northrop. Software Product Lines: Practices and Patterns. Addison Wesley, Agosto 2001.

Jan Bosch. Design and Use of Software Architectures. Adopting and evolving a product-line approach. Addison Wesley, Mayo 2000.

Software Engineering Institute (SEI), Carnegie Mellon University. The Product Line Practice Initiative, 2002, http://www.sei.cmu.edu/plp/.

M.López & M.C.Bastarrica. Business Case for a Product Line of Legacy Application Data-Middleware. Reporte Técnico TR/DCC- 2002-3.

M.C.Bastarrica. Arquitectura Base en una Línea de Productos deSoftware.
Full transcript