Factoria software
-
Upload
lenin-lozano -
Category
Documents
-
view
470 -
download
1
description
Transcript of Factoria software
CENSURADO
CENSURADO
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.
Objetivos de Negocio Universales
Alta calidad
Rápido time to market
Agilidad del mercado
Alineación del producto
Producción a bajo costo
Bajo costo de mantenimiento
Personalización en masa
Mind share
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
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
Software Factories 1
• Economías de Escala
• Se producen instancias idénticas de un solo diseño
colectivamente, en vez de individualmente.
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
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
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
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
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 ™
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.
Que es una fabrica de software
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.
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.
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
Esquema como Grafico
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.
Construyendo la fabrica de software
Construyendo la fabrica de software
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
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.