Está en la página 1de 56

Anlisis y diseo software sistemtico para la Ingeniera Web que usa el Proceso UML

Mayo 2006

Developed by Ignacio Gonzlez Mayo 2006

PDF created with pdfFactory Pro trial version www.pdffactory.com

Introduccin
l

El problema:
l

l l

Tenemos que transformar especificaciones e ideas en software. Para ello usamos metodologas de desarrollo. Todas implican pensar primero en el problema para comprenderlo (Analizarlo).

Developed by Ignacio Gonzlez Mayo 2006

PDF created with pdfFactory Pro trial version www.pdffactory.com

Hasta ahora
l

Para analizar el problema se utilizan tcnicas tradicionales:


l l l

Divide et impera (anlisis descendente) Bottom-up (anlisis ascendente) Otros

Pero una vez dividido hay que construir, idear, inventar, crear la solucin.

Developed by Ignacio Gonzlez Mayo 2006

PDF created with pdfFactory Pro trial version www.pdffactory.com

Inventar la solucin, en el pasado


l

Para crear una solucin en el mejor de los casos se proponen tcnicas tradicionales para la creacin:
l l

l l l

Brainstorming (Tormenta de ideas). Lateral thinking. (Frase radicales para cambiar el enfoque del problema) Mtodo delphi (Varios expertos) Ensayo y error (sic) Imaginacin (sic sic)
Developed by Ignacio Gonzlez Mayo 2006 4

PDF created with pdfFactory Pro trial version www.pdffactory.com

Sin embargo, la ingeniera


l

Podemos tener un mtodo de creacin estandarizado y sistemtico? Volver creativo a cualquier ingeniero?

Developed by Ignacio Gonzlez Mayo 2006

PDF created with pdfFactory Pro trial version www.pdffactory.com

Buscando, buscando
l

Encontramos estos candidatos en otras ramas de la ciencia:


l

Anlisis de la innovacin como mecanismo psicolgico (problema de la inercia psicolgica). Anlisis Axiomtico (heursticos) (no es una teora emprica) Systematic approach of Pahl and Beitz(tampoco es emprica) TRIZ (Theory of Inventive problem solving)
Developed by Ignacio Gonzlez Mayo 2006 6

PDF created with pdfFactory Pro trial version www.pdffactory.com

TRIZ
l

Presencia de una teora emprica que cataloga los avances en las patentes mediante cuarenta principios. Propone luego un mtodo, un proceso, con su algoritmo, para la creacin e invencin de nuevas soluciones en productos que necesitan una mejora.

Developed by Ignacio Gonzlez Mayo 2006

PDF created with pdfFactory Pro trial version www.pdffactory.com

TRIZ explicado
l

l l l l l

Se basa en analizar ms de un milln de patentes. Extrae 39 parmetros de ingeniera. Extrae 40 Principios inventivos. El concepto de contradiccin. Matriz de Contradicciones El algoritmo de la innovacin Cmo aplicarlo
Developed by Ignacio Gonzlez Mayo 2006 8

PDF created with pdfFactory Pro trial version www.pdffactory.com

Explicando TRIZ
l

Para una correcta explicacin de TRIZ revisar:

http://www.mazur.net/triz

Developed by Ignacio Gonzlez Mayo 2006

PDF created with pdfFactory Pro trial version www.pdffactory.com

TRIZ en el Software
l

Hasta ahora [1][2][3][4] TRIZ ha sido utilizado para realizar algunos exmenes de avances realizados dentro de la ingeniera del software. Sin embargo, todava no ha sido propuesta una generalizacin de su uso en la Ingeniera de software, y tampoco en la ingeniera Web. El problema radica en buscar la escala correcta para aplicarlo: Hasta ahora enfoques demasiado generales (problema goto-less[5], o cmo conseguir aplicaciones ms rpidas[6])
Developed by Ignacio Gonzlez Mayo 2006 10

PDF created with pdfFactory Pro trial version www.pdffactory.com

TRIZ en el software (y II)


l

Bajaremos el nivel donde aplicar:


l

Dentro de los sistemas de software y no sobre sistemas de software. Para ello debemos establecer relaciones entre las matrices de TRIZ y los patrones que han sido encontrados.

Developed by Ignacio Gonzlez Mayo 2006

11

PDF created with pdfFactory Pro trial version www.pdffactory.com

Y en el software, cmo?
l

l l

Los 40 principios son patrones para disear inventando. Nosotros tenemos patrones de software. Podramos crear una matriz parecida para la invencin del software? Si lo logramos tenemos:
UN MTODO SISTEMTICO PARA REALIZAR EL CLCULO INVENTIVO O CREATIVO DEL ANLISIS Y DISEO DE SOFTWARE
Developed by Ignacio Gonzlez Mayo 2006 12

PDF created with pdfFactory Pro trial version www.pdffactory.com

El anlisis con TRIZ


l

Pero y para analizar con TRIZ?


l

En el fondo una vez identificados los requisitos, la creacin de un programa es resolver la contradiccin de esos requisitos contra la tecnologa existente. Escoger lenguaje, algoritmos, y patrones para la solucin del problema. POR TANTO: Podramos especializar el algoritmo de invencin para generar la parte inventiva anlisis y diseo de software.
Developed by Ignacio Gonzlez Mayo 2006 13

PDF created with pdfFactory Pro trial version www.pdffactory.com

ARIZ
l

l l l

l l

Algoritmo para la solucin de problemas de tipo inventivo: 1. Formula el problema. 2. Transforma el problema en un modelo. 3. Analiza el modelo (desde la perspectiva de TRIZ). 4. Resuelve las contradicciones fsicas. 5. Formula una solucin ideal.
Developed by Ignacio Gonzlez Mayo 2006 14

PDF created with pdfFactory Pro trial version www.pdffactory.com

Otras tcnicas TRIZ


l l l l l

Su-Field Analysis Anticipatory Failure Determination (AFD) Directed Product Evolution (DPE) Quality Function Deployment (QFD),

Developed by Ignacio Gonzlez Mayo 2006

15

PDF created with pdfFactory Pro trial version www.pdffactory.com

TRIZ especializado para SW


l

El algoritmo especializado para el SW es el mismo, salvo que los 40 principios, son sustituidos all donde es posible por los patrones de software de la tabla anexa. Importante tanto los patrones como los principios, se han detectado empricamente lo cual extrae un valor que otras tcnicas de diseo no van a tener.
Developed by Ignacio Gonzlez Mayo 2006 16

PDF created with pdfFactory Pro trial version www.pdffactory.com

Identificar el problema
l

Debemos ver cuales son las cosas que queremos que el sistema haga. Debemos identificar que ocurrir para hacerlas con la tecnologa que hayamos escogido. (el software) Ej.: Aumentar el nmero de usuarios concurrentes para una aplicacin. NOTA: Este
ejemplo es simple, y no representa todava el caso de revisar el software desde dentro sin embargo lo usamos porque tiene mayor valor pedaggico.

Developed by Ignacio Gonzlez Mayo 2006

17

PDF created with pdfFactory Pro trial version www.pdffactory.com

Replantear el problema en modo TRIZ


l

Identificar las contradicciones en trminos del sistema a construir.


l

Ej.: Si tenemos ms usuarios concurrentes, implica sistemas ms complejos. Pero queremos programarlos ms rpido, luego deberan ser ms simples: HAY UNA CONTRADICCIN.

Developed by Ignacio Gonzlez Mayo 2006

18

PDF created with pdfFactory Pro trial version www.pdffactory.com

Identificar los parmetros


l l
l

36 Complexity of device (Ej.:Complejidad) 32 Manufacturability (Ej.: programar ms rpido)


De momento suponemos que los parmetros sirven en sistemas fsicos y en sistemas de software. (No todos parecen servir, pero eso no invalida el mecanismo para los que s sirven) La lista de parmetros est en el pdf adjunto.

Developed by Ignacio Gonzlez Mayo 2006

19

PDF created with pdfFactory Pro trial version www.pdffactory.com

Mirar en la matriz de contradicciones


l

Miramos en la matriz de contradicciones con el parmetro 36 en el eje de las x(efecto indeseado) y el 32 en el de las Ys (caracterstica a mejorar). Extraemos los siguientes principios para resolver el problema:
l

26,27, 1( nota: de la matriz de contradicciones [7])

Developed by Ignacio Gonzlez Mayo 2006

20

PDF created with pdfFactory Pro trial version www.pdffactory.com

26, 27, 1.
l

Los principios se refieren a:


l l l

26 Copying (Use simpler and inexpensive copies) 27 Dispose (Use multiple inexpensive objects) 1 Segmentation (Dividing an object into independent parts, Make an object modular, Increase the degree of fragmentation)

Developed by Ignacio Gonzlez Mayo 2006

21

PDF created with pdfFactory Pro trial version www.pdffactory.com

Proof-concept
l l

Las recomendaciones dirigen claramente hacia donde investigar. En realidad, la programacin estructurada, la orientacin a objetos, los aspectos, son todas mejoras que buscan lograr estos objetivos. Podemos predecir, que aquellas otras mejoras que trabajen en esta direccin sern igualmente exitosas (coincide con la evolucin de los sistemas que se desprende del anlisis de los avances tecnolgicos)
Developed by Ignacio Gonzlez Mayo 2006 22

PDF created with pdfFactory Pro trial version www.pdffactory.com

Como decamos TRIZ funciona tambin dentro del software


l

Los sistemas pueden verse como cajas blancas, y entonces TRIZ puede realizar mejoras en los subsistemas (no hay restriccin a la hora de aplicarlo) Por tanto deberamos poder usarlo dentro de los diagramas de anlisis y diseo de aplicaciones. Tambin de las aplicaciones Web.
Developed by Ignacio Gonzlez Mayo 2006 23

PDF created with pdfFactory Pro trial version www.pdffactory.com

Y no slo TRIZ como mtodo.


l

Otra idea derivada directamente de este proceso es la siguiente:


l

Si existen patrones de diseo de productos, y existen patrones de diseo de software: podemos establecer una transformacin de categoras y por tanto obtener nuevos patrones de software desde los patrones de productos? Y si esto es as, tendramos una nueva matriz de TRIZ especializada para el software?
Developed by Ignacio Gonzlez Mayo 2006 24

PDF created with pdfFactory Pro trial version www.pdffactory.com

Primero debemos buscar algn ejemplo que aparezca en ambos


l

Existe algn patrn de diseo de producto que sea ya patrn de software o viceversa? S, el principio 7 nesting y el patrn wrapper son un ejemplo. Pero hemos desarrollado otros 28 ejemplos ms (ver ms adelante) Estamos en el camino correcto?
Developed by Ignacio Gonzlez Mayo 2006 25

PDF created with pdfFactory Pro trial version www.pdffactory.com

Primeros resultados:
l

Los siguientes principios pueden transformarse en los siguientes patrones de software (ver siguiente)

Developed by Ignacio Gonzlez Mayo 2006

26

PDF created with pdfFactory Pro trial version www.pdffactory.com

Lista de conversiones

40 principios.xls

Developed by Ignacio Gonzlez Mayo 2006

27

PDF created with pdfFactory Pro trial version www.pdffactory.com

Hemos encontrado muchas similitudes


l

Pero lo ms importante, donde no hemos encontrado patrones, hay un hueco que podra cubrir un nuevo patrn. El estudio emprico de sistemas fsicos permite avanzar en la investigacin de patrones (tiene sentido en trminos de Teora de Categoras).

Developed by Ignacio Gonzlez Mayo 2006

28

PDF created with pdfFactory Pro trial version www.pdffactory.com

Posibles nuevos patrones:


l

Pre-load pattern (ejemplo: Precarga de las matrices de anlisis sintctico) Auto pattern ( ejemplo: actualizacin automtica del propio software, antivirus, firefox, etc) Reestructurator pattern (cambiar su propia configuracin) SON EN GENERAL REFLECTIVOS, DONDE LA INVESTIGACIN NO EST MUY DIFUNDIDA.

Developed by Ignacio Gonzlez Mayo 2006

29

PDF created with pdfFactory Pro trial version www.pdffactory.com

Entonces, tenemos una nueva tabla de 40 principios ampliada


l

Ahora la tabla de 40 principios, se amplia mediante patrones. Podramos entonces buscar los principios a aplicar a nuestro software e intentar aplicar el patrn. Un heurstico para aplicar patrones? Respondemos a la pregunta: dnde aplicar un patrn de manera sistemtica?

Developed by Ignacio Gonzlez Mayo 2006

30

PDF created with pdfFactory Pro trial version www.pdffactory.com

Donde usar TRIZ


l

Se propone usarlo en las fases de Anlisis y diseo del Proceso unificado de desarrollo de UML (que es el ms estndar).
l

Si bien, otras metodologas en espiral, giles, extremas, etc debera beneficiarse en cierta medida tambin del mismo mtodo (es suficientemente general)

All donde tengamos problemas que requieran nuevas soluciones.


Developed by Ignacio Gonzlez Mayo 2006 31

PDF created with pdfFactory Pro trial version www.pdffactory.com

Donde usar TRIZ


l

Pero tambin en Refactoring (de hecho en refactoring debera tener MUCHO sentido) Para Optimizar aplicaciones (en el fondo es refactorizar) Repitindonos: En general all donde necesitemos una solucin novedosa

Developed by Ignacio Gonzlez Mayo 2006

32

PDF created with pdfFactory Pro trial version www.pdffactory.com

Un nuevo anlisis y diseo


l

El enfoque ahora nos debera permitir una vez encontremos una contradiccin en una aplicacin Web, resolverla mediante TRIZ. Tampoco nada impide realizar todo el anlisis mediante TRIZ. Surge la pregunta: Sucesivas iteraciones sobre los requisitos llegarn a una anlisis correcto? Esto quedar para estudios posteriores.
Developed by Ignacio Gonzlez Mayo 2006 33

PDF created with pdfFactory Pro trial version www.pdffactory.com

Pero es que TRIZ resuelve problemas que requieran invencin


l

Sin embargo, seguramente un diseo tradicional, en el que TRIZ resuelva las partes que necesiten creatividad sea la opcin ms razonable. As resolveramos el anlisis y diseo de maneras bien conocidas, y centraramos la computacin triz en los problemas no resueltos todava (o resueltos de forma no tan ptima)
Developed by Ignacio Gonzlez Mayo 2006 34

PDF created with pdfFactory Pro trial version www.pdffactory.com

Ejemplo: Aplicacin web para ventas + Usable


l

Si queremos mejorar una aplicacin web para ventas, en concreto: queremos mejorar su usabilidad.

Developed by Ignacio Gonzlez Mayo 2006

35

PDF created with pdfFactory Pro trial version www.pdffactory.com

Identificar la contradiccin
l

Si queremos hacer algo ms usable invertimos ms tiempo en fabricarlo al principio, tenemos una productividad menor. Por tanto tenemos una contradiccin. Se tratara de conseguir que sea ms usable pero no ms complejo de fabricar.

Developed by Ignacio Gonzlez Mayo 2006

36

PDF created with pdfFactory Pro trial version www.pdffactory.com

Buscar los parmetros


l l

33 Convenience of use 32 Manufacturability

Developed by Ignacio Gonzlez Mayo 2006

37

PDF created with pdfFactory Pro trial version www.pdffactory.com

Buscar en la matriz los principios


l

Buscando en la matriz no nos devuelve ningn principio. Luego parece que no es posible mejorar la usabilidad sin que se vuelva ms complejo de fabricar.

Developed by Ignacio Gonzlez Mayo 2006

38

PDF created with pdfFactory Pro trial version www.pdffactory.com

Segundo Ejemplo: Aplicacin Web para ventas + Rpida


l

Si queremos mejorar una aplicacin web para ventas, en concreto: queremos mejorar su rendimiento (velocidad de ejecucin).

Developed by Ignacio Gonzlez Mayo 2006

39

PDF created with pdfFactory Pro trial version www.pdffactory.com

Identificar la contradiccin
l

Si queremos hacer algo ms rpido, en general en la informtica implica que consume ms recursos. Por tanto tenemos una contradiccin. Se tratara de conseguir que sea ms rpido pero que no consuma ms recursos.

Developed by Ignacio Gonzlez Mayo 2006

40

PDF created with pdfFactory Pro trial version www.pdffactory.com

Buscar los parmetros


l l

9 Speed 37 Energy spent by moving object

Developed by Ignacio Gonzlez Mayo 2006

41

PDF created with pdfFactory Pro trial version www.pdffactory.com

Buscar en la matriz los principios


l

Buscando en la matriz se obtienen los siguientes principios:


l

8 Counterweigth
l

Conter weight with lift Find an optimal operating condition

15 Dinamics
l

Sigue en la siguiente hoja

Developed by Ignacio Gonzlez Mayo 2006

42

PDF created with pdfFactory Pro trial version www.pdffactory.com

Buscar en la matriz los principios


l

Buscando en la matriz se obtienen los siguientes principios:


l

35 Transformation properties
l

Change the degree or flexibility

Developed by Ignacio Gonzlez Mayo 2006

43

PDF created with pdfFactory Pro trial version www.pdffactory.com

Vemos los principios, y sus patrones equipotentes


l

Equivalencias:
l

l l l

8 Counterweigth No identificamos patrn de software a aplicar 15 Dinamics Decorator, Extensibility 35 Transformation properties Strategy pattern 38 Accelerated oxidation Cache managment pattern

Developed by Ignacio Gonzlez Mayo 2006

44

PDF created with pdfFactory Pro trial version www.pdffactory.com

Aplicamos los patrones


l

Aplicar los patrones implica refactorizar el cdigo (pero esta tarea de aplicar patrones sabemos que es posible). Aunque queda fuera del alcance del documento.

Developed by Ignacio Gonzlez Mayo 2006

45

PDF created with pdfFactory Pro trial version www.pdffactory.com

El resultado
l l

Un sistema con los patrones Decorator, Extensibility, cache managment y Strategy es ms rpido? Normalmente los patrones strategy y cache managment suelen aplicarse para mejorar el rendimiento de una aplicacin con lo que parece que estamos en el buen camino. El patrn Decorator y el Extensibility aaden caractersticas una vez la aplicacin est funcionando. En el fondo es una carga dinmica de datos. Y si hubisemos aplicado patrones al azar? En principio no parece que cualquier patrn mejore la velocidad (Ej.: Wrapper pattern)

Developed by Ignacio Gonzlez Mayo 2006

46

PDF created with pdfFactory Pro trial version www.pdffactory.com

El resultado
l

Es de resaltar que podramos aplicar la conversin no slo mediante patrones, sino tambin mediante principios de anlisis y diseo. Tal vez un diseo con carga dinmica de datos sea mejor recomendacin que el patrn extensibility. Esto requiere ms investigacin.
Developed by Ignacio Gonzlez Mayo 2006 47

PDF created with pdfFactory Pro trial version www.pdffactory.com

Tercer Ejemplo: Aplicacin Web para ventas + Mantenible


l

Por ltimo se trata de mejorar una aplicacin Web para ventas, en concreto: queremos mejorar su mantenibilidad. El anlisis no nos servir de prueba del concepto pues cuando se aplican patrones en general siempre se consigue que el software sea ms mantenible (no aportar informacin, aunque no da un resultado contrario a lo que defendemos aqu).
Developed by Ignacio Gonzlez Mayo 2006 48

PDF created with pdfFactory Pro trial version www.pdffactory.com

Donde se est usando TRIZ


l l l

En compaias estadounidenses En compaas espaolas Donde se podra usar ahora que estamos en los dominios del software?

Developed by Ignacio Gonzlez Mayo 2006

49

PDF created with pdfFactory Pro trial version www.pdffactory.com

Pequea lista de compaas estadounidenses usando TRIZ


l l l l l l l l l

Allied Signal Aerospace Sector Chrysler Corp. Emerson Electric Ford Motor Co. General Motors Corp. Johnson & Johnson Rockwell International UNISYS Xerox Corporation
Developed by Ignacio Gonzlez Mayo 2006 50

PDF created with pdfFactory Pro trial version www.pdffactory.com

Pequea lista de compaas espaolas usando TRIZ


l l l l l l l l

Telefnica Endesa Iberdrola Uralita TALGO Televs Mondragn [8]


Developed by Ignacio Gonzlez Mayo 2006 51

PDF created with pdfFactory Pro trial version www.pdffactory.com

Dnde se podra usar un TRIZ especializado en software


l l l l

Compaas de fabricacin de software. Organizaciones de creacin de estndares. En aplicaciones abiertas. Etc.

Developed by Ignacio Gonzlez Mayo 2006

52

PDF created with pdfFactory Pro trial version www.pdffactory.com

Notas
l

[1] Teora de las categoras.

Developed by Ignacio Gonzlez Mayo 2006

53

PDF created with pdfFactory Pro trial version www.pdffactory.com

Bibliografa
l l l l l l l l l

Altshuller, Henry. 1994. The Art of Inventing (And Suddenly the Inventor Appeared). Translated by Lev Shulyak. Worcester, MA: Technical Innovation Center. ISBN 0-96407401-X Ideation International. "The Process for Systematic Innovation." Ideation International, Inc. Santa Monica, CA. Theory of Inventive Problem Solving (TRIZ) http://www.mazur.net/triz/ Anlisis Axiomtico. Lateral Thinking (wikipedia.org) UML OMG Jackobson, Ivan et altres El proceso unificado de desarrollo de software. Ed AddissonWesnley. Xtreme Programming Agile Methodologies

Developed by Ignacio Gonzlez Mayo 2006

54

PDF created with pdfFactory Pro trial version www.pdffactory.com

Off the topic: Nos ayudan las categoras?


l

Problema a resolver: encontrar una transformacin entre las categoras[1] patrones de productos y patrones de software. Esto permitira razonar en productos para obtener software y viceversa. Este problema requiere trabajo futuro, y queda fuera del alcance del documento.

Developed by Ignacio Gonzlez Mayo 2006

55

PDF created with pdfFactory Pro trial version www.pdffactory.com

Off the topic: Patrones de la naturaleza


l

Para desarrollos futuros tambin quedar la presencia de patrones en la naturaleza:


l

Ejemplo el fractal, la bsqueda por seleccin natural, etc Son ejemplos de patrones que encontramos en la naturaleza y que ya usamos en el software Existen ms?

Developed by Ignacio Gonzlez Mayo 2006

56

PDF created with pdfFactory Pro trial version www.pdffactory.com

También podría gustarte