Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CIISA 2008
AGENDA
1.
2.
3.
4.
Caso y Actividades
5.
Conclusiones y Referencias
javiergs@acm.org
CONTEXTO
CMMi TS
RUP
software architecture
javiergs@acm.org
EXPECTACTIVAS
developer
engineer
Cul es tu perfil?
4
javiergs@acm.org
manager
miscellaneous / client
CONOCIMIENTO PREVIO
T experiencia con:
S CMMi S Procesos S Arquitectura de software Ingeniera de software S Diseo de componentes S Reuso S Patrones (diseo, arquitectura, cdigo) S Arquitectura Model-drive S Arquitectura Reuse-drive
javiergs@acm.org
LA BATALLA
javiergs@acm.org
PRESENTACIN
Estudios y Certificaciones
S Maestra en Ciencias Computacionales S CMU Certified Instructor Object-Oriented Design S IBM Mastering Object-Oriented Analysis and Design S IBM Mastering Requirements Managements
Experiencia
S Arquitecto de Software / Lder de proyecto / Desarrollador S Consultor S Profesor S Director de programa acadmico
javiergs@acm.org
OBJETIVO
Comprender en toda su extensin el concepto de Solucin Tcnica desde la perspectiva del modelo CMMi, as como los factores a considerar para cumplir con los objetivos de esta rea de proceso utilizando el Proceso Unificado de Desarrollo (RUP) y los Patrones de Arquitectura y Diseo de Software
RUP
CMMi TS
ARQ
"CMO" empatar las recomendaciones de CMMi TS y la adopcin de RUP como metodologa de creacin de software. "CMO" integrar en RUP tcnicas especificas de arquitectura de software benficas para la creacin de productos.
8
javiergs@acm.org
DEFINICIN
10
javiergs@acm.org
11
javiergs@acm.org
PROBLEMA
S CMMi no es un proceso. S CMMi es un Modelo de Proceso. S Las practicas no se presentan en secuencia (aunque algunas veces lo
parece). Se deben realizar las practicas especificas (SP) en el orden que tenga sentido para el negocio, y algunas veces incluso repetir SP.
12
javiergs@acm.org
RUP
13
javiergs@acm.org
CMMi TS :: SG1
Seleccionar las Soluciones para Productos y Componentes El diseo de la solucin debe considerar la evaluacin de varias alternativas de solucin: arquitectura y modularizacin, desarrollo interno contra productos comerciales, etc. Estas decisiones deben fundamentarse en:
S Requerimientos S Restricciones de diseo S Evolucin a futuro del producto S Productos comerciales disponibles S Cualidades del software
14
javiergs@acm.org
CMMi TS :: SP1.1
15
javiergs@acm.org
CMMi TS :: SP1.2
Seleccionar las soluciones para los componentes del producto que mejor satisfagan los criterios establecidos
S Establecer los requerimientos asociados al conjunto de soluciones, como
los requerimientos asignados a los componentes asociados con dicho conjunto de soluciones.
S Identificar las soluciones que sern reutilizadas o compradas.
16
javiergs@acm.org
CMMi TS :: SG2
El diseo del producto o componentes debe incluir informacin para su implementacin y dems fases del ciclo de vida del producto como son la instalacin y mantenimiento. Adems, la documentacin del diseo provee una referencia que soporta el entendimiento del diseo con los agentes relevantes.
17
javiergs@acm.org
CMMi TS :: SP2.1
S Considera cualidades deseables S Se debe evaluar el uso de productos comerciales o el reutilizar productos
S Considera el establecimiento de un framework que de soporte a familias S Subpracticas: RUP y aplicacin de patrones
18
javiergs@acm.org
CMMi TS :: SP2.2
Establecer el Paquete Tcnico
Modelos
Activity Diagrams
19
javiergs@acm.org
CMMi TS :: SP2.3
Disear las interfaces del producto y componentes en base a los criterios establecidos
20
javiergs@acm.org
CMMi TS :: SP2.4
Evaluar, en base a criterios establecidos, si los componentes se desarrollarn, comprarn o reutilizarn S La decisin entre desarrollar, comprar o reutilizar comienza en los
primeros diseos y se completa a medida que los diseos se van detallando y refinando.
21
javiergs@acm.org
CMMi TS :: SG3
S CMMi TS :: SP3.1 implementar (incluye pruebas) S CMMi TS :: SP3.2 Documentar S Hablemos de Trazabilidad
22
javiergs@acm.org
Prctica en Equipo
Cmo?
23
javiergs@acm.org
Antecedentes
25
javiergs@acm.org
El modelo LEGO
La creatividad es positiva
componentes
26
javiergs@acm.org
Arquitectura y de software
27
javiergs@acm.org
El arquitecto
Arquitectura de software
S NO IMPLICA DETALLES DE IMPLEMENTACION
Arquitecto
S Obtener Informacin del problema y disear solucin que S satisfaga requerimiento (funcionales, no funcionales)
PERO
S Apoyndose en patrones, modelos y Framework
ADEMAS DE
S Participar activamente en el desarrollo. PERO no es un desarrollador S Generar lineamientos GENERALES a considerarse en la creacin de
FAMILIAS de productos.
28
javiergs@acm.org
S S S S S
una persona estructura simple proceso simple herramientas simples Conocimiento terico limitado
S S S S
A medida que los sistemas crecen Los algoritmos y las estructuras de datos dejan de ser el mayor problema.
29
javiergs@acm.org
casas vs software
30
javiergs@acm.org
Conceptos
S estilo arquitectnico
Estilos
Arquitectura ?
Columnas:
maya
azteca?
Egipto
Roca, madera en la estructura interna y ventanales emplomados. Fuego, Poder y Belleza grandes y extravagantes, un placer a la vista. azoteas son impresionantes y detalladas
clsico
china
Gtico
32
javiergs@acm.org
Tipos
fsica
Aplicacin o negocio
Datos
componente
patrn
reglas 33
javiergs@acm.org
Cualidades Arquitectnicas
Estticas: Modificabilidad, Portabilidad, Reusabilidad, Integrabilidad, Verificabilidad. Dinmicas: Desempeo, Disponibilidad, Funcionalidad, Usabilidad. Arquitectnicas: Integridad Conceptual, Correctitud, Completitud, Factibilidad econmica
34
javiergs@acm.org
Modelo de Aplicacin
35
javiergs@acm.org
Idioms
programacin
S Describe como implementar componentes o relaciones aplicando el
lenguaje Ejemplos:
S Convenciones de nombres S Formato para el cdigo fuente S Manejo de memoria S Etc.
36
javiergs@acm.org
Patrones de Diseo
Patrones de medio nivel, organizan la funcionalidad de subsistemas de manera independiente. Describe esquemas comunes de comunicacin entre componentes para la solucin de problemas generales en un contexto particular. Patrones de Creacin Patrones Estructurales Patrones de Comportamiento
S S S
37
javiergs@acm.org
Gang of Four
38
javiergs@acm.org
De Monitos a Cdigo
39
javiergs@acm.org
Prctica en Equipo
40
javiergs@acm.org
El modelo LEGO
g) Producto predecible
41
javiergs@acm.org
Hablando de Relaciones
g) Soy parte de
42
javiergs@acm.org
Observer
43
javiergs@acm.org
Facade
44
javiergs@acm.org
Decorator
45
javiergs@acm.org
Builder
46
javiergs@acm.org
Strategy
47
javiergs@acm.org
Composite
48
javiergs@acm.org
Memento
49
javiergs@acm.org
Chain of Responsability
50
javiergs@acm.org
51
javiergs@acm.org
Patrones de Arquitectura
Patrones de alto nivel, applicable a la especificacin fundamental del sistema de software Ejemplos:
Distributed Event-driven Frame-based Batch Pipes and filters Repository-centric Blackboard Interpreter Rule-based
52
javiergs@acm.org
Antipatrones
Antipatrones aplicados en desarrollo S Lava Flow S Spaghetti code S Poltergeists: muchas clases S God class: the blob S Golden Hammer Aplicados a la arquitectura S Reinventando la rueda S Stovepipeline System S Stovepipeline Enterprise S Vendor Lock-in Aplicados a la gestin S Mythical Man Month S Death March Project S Analysis paralysis S Corncob
53
javiergs@acm.org
Prctica en Equipo
54
javiergs@acm.org
RUP
56
javiergs@acm.org
Fundamento Necesidad
requerimientos
Notacin
modelos (diagramas)
Proceso metodologa
Herramientas
Producto
57
javiergs@acm.org
Ciclo de Vida
fases
Iniciacin Elaboracin Construccin Transicin
Iteraciones preliminares
Fuente: Jacobson et al., 2000
Iter #1
Iter #2
Iter #n
Iter #n+1
Iter #n+2
Iter #m
Iter #m+1
58
javiergs@acm.org
Diagramas
Use Case Use Case Diagrams Diagramas Diagrams de Secuencia Scenario Scenario Diagrams Diagramas Diagrams de Colaboracin Scenario Scenario Diagrams Diagramas Diagrams de Estados
Dinmicos De funcionalidad De Comportamiento
Modelo(s)
Diagramas de Actividad
Distribucin
59
Relacin
verificado por
especificado por
Modelo de Prueba
Modelo de Anlisis
implementado por
Modelo de Implementacin
60
javiergs@acm.org
Agrupando Modelos
Mode lo de l Ne gocio Mode lo de l Dom inio Mode lo de Cas os de Us o Es t. Din. Mode lo de Anlis is Mode lo de Dis e o Mode lo de Proce s os Mode lo de De s plie gue Mode lo Im ple m e ntacin Es t. Din. Mode lo de Prue ba
Es t. Diagram a de Cas os de Us o Diagram a de Inte raccinSe cue ncia Diagram a de Inte raccinColaboracin Diagram a de Clas e s de Anlis is Diagram a de Obje tos de Anlis is Diagram a de Clas e s de Dis e o Diagram a de Obje tos de Dis e o Diagram a de Es tados Diagram a de Actividade s Diagram a de Com pone nte s Diagram a de De s plie gue
Din.
Es t.
Din.
Es t.
Din.
Es t.
Din.
Es t.
Din.
Es t.
Din.
Es t.
Din.
X X X X X
X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
X X X
61
javiergs@acm.org
Modelando
Mtodos
S IEEE SRS
62
javiergs@acm.org
OOSE
UML
Construir modelos que representan al sistema Cada modelos es examinado o manipulado por un grupo de stakeholders
Objetos, tipos, clases cambiante informal Problema real complejo sistema sistemtico cdigo modelo
OO-SE
63
javiergs@acm.org
OOSE
OO-SE
encapsulamiento transicin
objetos
Modelan y codifican
relaciones
casos de uso
paquetes cdigo
pruebas automticas
64
javiergs@acm.org
Prctica en Equipo
65
javiergs@acm.org
Prctica en Equipo
67
javiergs@acm.org
Conclusiones y Referencias
javiergs@acm.org
AHORRO DE RECURSOS
69
javiergs@acm.org
CALIDAD
70
javiergs@acm.org
RUP es un BUFFET
71
javiergs@acm.org
REFERENCIAS
S S
Software Architecture in Practice, Len Bass, Adisson Wesley 2003. Software Reuse: Architecture, Process and Organization for Business Success, Ivar Jacobson, ACM Press. Design Patterns, Head First, Eric Freeman & Elisabeth Freeman CMMI Versin 1.1 SEI, 2002
S S
72
javiergs@acm.org