2. Necesidades Universales
• Despliegue de nuevos servicios de forma rápida.
• Acomodar una demanda creciente de nuevos productos en
un amplio espectro de categorías de características.
• Conectar los productos de formas sin precedentes.
• Explotar una tecnología que cambia rápidamente.
• Ganar un limite competitivo.
3. Objetivos de Negocio Universales
Alta calidad
Rápido time to
Mind share
market
Personalización Agilidad del
en masa mercado
Bajo costo de Alineación del
mantenimiento producto
Producción a
bajo costo
4. Razones!!!!
• Incesante demanda de software.
• Es una actividad riesgosa.
• Fuerza de trabajo cada vez mas productiva.
• No se puede seguir con el modelo “maestro-aprendiz”
• Se ha intentado antes:
– Herramientas CASE.
– Metodologías Formales
– OOP
5.
6. Industrialización del Software
• “El Software es en ciertos aspectos como productos tangibles
de las disciplinas de ingeniería convencionales tales como
puentes, edificios y computadores. Pero también existen
ciertas diferencias importantes que dan al desarrollo de
software un sabor único. Ya que el Software es lógico y no
físico, sus costos están concentrados en su desarrollo en vez
de su producción, y ya que el software no se ve, su confiabilidad
depende de cualidades lógicas como correctitud y robustez, en
vez de las características físicas como maleabilidad y dureza.”
Peter Wegner
7. Software Factories 1
• Economías de Escala
• Se producen instancias idénticas de un solo diseño
colectivamente, en vez de individualmente.
8. Software Factories 2
• Economías de Alcance
• El software no se fabrica.
• Pero el software no es un diseño único y replicable.
• No es un nuevo producto, tampoco una nueva metodología
ni proceso; es un enfoque sobre como hacer sistemas; y
que va directo a que los equipos de desarrollo hagan lo que
tienen que hacer.
PROGRAMAR
9. Cambio Cultural
• Construcción Monolítica
– Protocolos Específicos para una plataforma
– Empaquetamiento débil
– Encapsulación Fuerte
– Síndrome de “No inventado aquí”
• Generalidad Gratuita
– Lenguajes de Modelado Débiles.
– Generación de Código Débil.
– Débiles metadatos para integración.
• One off development
• Inmadurez del proceso.
– Formalismo Excesivo
– Excesiva Autonomía
We hire people who build doghouses, give them cranes and ask them to build skyscrapers.
Then we're surprised when they fail.
Eileen Steets Quann
10. Cambio Cultural – Que es lo innovador?
• Reuso sistemático
• Software Product Lines
• Salir del One-Off Development
• Desarrollo por Ensamble
– Protocolos Independientes de la plataforma
– Auto Descripción
– Encapsulación Separada
– Desarrollo Dirigido por la Arquitectura
– Orquestación
11. Cambio Cultural – Que es lo innovador?
• Desarrollo Dirigidos por Modelos
– Lenguajes Específicos de Dominio
– Uso de Frameworks
– Transformación de Modelos
• Frameworks de Procesos
– Vigilancia Activa
– Cronogramas basados en restricciones
12. Software Product Lines
• A software product line (SPL) is a set of
software-intensive systems that share a
common, managed set of features satisfying
the specific needs of a particular market
segment or mission and that are developed
from a common set of core assets in a
prescribed way.
Logo del SEI Product Line Practice ™
13. Que no son Software Product Lines
• Reuso fortuito en pequeñas cantidades
– Reusar librerías que contienen algoritmos, módulos, objetos o componentes.
• Desarrollo de un solo sistema con reuso
– Modificar el código que se necesita para ese sistema
• Solo desarrollo basado en componentes o servicios.
– Seleccionar componentes o servicios de una librería in-house, mercado o la web sin foco
arquitectónico.
• Solo versiones de un solo producto
• En vez, releases simultáneos y soporte de múltiples productos.
• Solo una arquitectura configurable
– Un buen inicio, pero solo una parte del potencial de reuso
• Solo un conjunto de estándares técnicos.
– Restringiendo elecciones sin una estrategia de reuso basada en la arquitectura.
15. Que es una fabrica de software
A software factory is a software product line that
configures extensible tools, processes, and content using a
software factory template based on a software factory
schema to automate the development and maintenance of
variants of an archetypical product by adapting,
assembling, and configuring framework-based
components.
16. Que se necesita?
• En una fabrica de software hay 2 elementos centrales:
– El esquema de fabrica de software.
– La plantilla de fabrica de software basada en ese esquema.
17. Software Factory Schema
• Necesitamos categorizar y resumir los artefactos de
desarrollo.
– De una manera ordenada.
• Generalmente se usa una matriz.
– Columnas: Intereses
– Filas: Niveles de abstracción.
• Each cell defines a perspective or viewpoint from which we
can build some aspect of the software
19. Software Factory Template
• Son los activos que implementan la fabrica de software.
• Incluye código, metadatos, frameworks, etc.
• Es como las plantillas en Word o Excel.
22. Que enfoque debe adoptar Avansoft?
• Por Tradición
– En el mercado empresarial en el que aplicaciones de negocio
verticales no consiguen producirse masivamente, el software se
comporta como una economía de alcance
• Por Futuro
– En el mercado de consumo masivo como aplicaciones de
escritorio en el cual sistemas operativos y suites de oficina se
producen en grandes cantidades, el sofware se comporta como
una economía de escala
23. Objetivos de la adopción
• Los objetivos son tangibles:
– Tener un core de activos base, procesos de soporte y estructura
organizacional
– Desarrollar productos a partir de esos activos base de tal
manera que logremos las metas de negocio
– Institucionalizar mecanismos para mejorar y extender el
esfuerzo en la adopción de líneas de productos de software a
medida que esto tiene sentido.