You are on page 1of 45

| 



  




:
: Lic. en Sistemas de Información

: Sistemas de Información

 
:
|   : Pighin, Fabián

 : Alberto Szendrey; Martín Crettaz
 
 :
Proceso Unificado de Software

‡ Visión General
‡ Principios Básicos
‡ Ciclo de Vida
‡ Ventajas
‡ Conclusión
Visión General del Proceso Unificado de Software

v    
  
una forma disciplinada de asignar
tareas y responsabilidades (quién hace qué, cuándo y cómo).

· RUP es un 
 que se puede adaptar a proyectos variados en
tamaño y complejidad.

Objetivo: Formalizar las actividades relacionadas con el desarrollo de sistemas


informáticos.

Está basado en cuatro elementos principales:

Roles: Quién hace


Actividades: Cómo hacer
Productos o Artefactos: Qué hacer
Flujos de Trabajo: Cuando hacer
Principios Básicos del Diseño de Software - RUP

Los principios básicos son:

- Dirigido por casos de uso


- Es iterativo e incremental
- Está centrado en la arquitectura
Principios Básicos: Casos de Uso
Dirigen y controlan el proceso de desarrollo en su totalidad e integran las siguientes actividades:

- Requisitos (Definición de los casos de uso)


- Análisis y Diseño e Implementación (Construcción de los casos de uso)
- Prueba (Verificar que se satisfacen los casos de uso)

Se describen mediante diagramas y la secuencia de pasos que definen el comportamientos de cada funcionalidad.
El objetivo de los casos de uso es modelar los requerimientos funcionales del sistema. Sirven de modelo a los
desarrolladores y llevan un hilo conductor durante todo el proceso de desarrollo.

Los casos de uso reemplazan a la especificación funcional tradicional


Principios Básicos: Centrado en la Arquitectura
   


2  


   
        

 

  
 


 
   
 


  

 
  


     


     

 
 




 

  

Se necesita una arquitectura para:

- Comprender el sistema
- Organizar el desarrollo
- Fomentar la reutilización
- Hacer evolucionar el sistema
La Arquitectura se representa mediante varias vistas que se centran en aspectos
concretos del sistema (Modelo 4+1):

þ   þ 
 þ 
 þ 
 þ 


   
     





 
 
    
 
 
  "
 


 
   







  


      ! 



 
 


  


 #  #  #  #  #

$ )
 $ '   $ +

$ %
 $ '  
$ )!
  $ *  $ 

$  
 $ ( $ 
 $  $  

$   
 $ )
 $ "
 
   
 $   

$ "
 
 $ ( 

$ 
&
Principios Básicos: Iterativo e Incremental

Divide el problema en sus partes para facilitar el desarrollo y disminuir los riesgos.

Cada ³parte´ del problema es una iteración que resulta en un incremento.

Las iteraciones hacen referencia a pasos en el flujo de trabajo, y los incrementos a


crecimientos en el producto.

|   

  

 

· Planifica
· Especifica, diseña, e implementa.
· Integrar, probar, y ejecutar un poco en cada iteración.

    




- Reducción de riesgos asociados al costo, alcance y tiempo del proyecto.


- Priorización y atención de riesgos
- Acelera el desarrollo. Resultados a corto plazo.
- Enfoque realista. No se dispone de todos los requisitos desde un comienzo.
v  
 |  

Cada fase se subdivide en  
. En cada iteración se desarrolla
en secuencia un conjunto de 
o flujos de trabajos.


Cada disciplina es un conjunto de actividades relacionadas (flujos de trabajo) vinculadas
a un área específica dentro del proyecto total. Las más importantes son:

!  


"  
 
 #$
 %

&%
"  
 & 

   %


- 

    



%



"  #  

| #

- |
 
 
'

 #
 
 
  
.

El agrupamiento de actividades en disciplinas es principalmente una ayuda


para comprender el proyecto desde la visión tradicional en cascada.
El Proceso Unificado consiste en una serie de disciplinas o flujos de trabajo que van
desde los requisitos hasta las pruebas. Los flujos de trabajo desarrollan modelos
desde el modelo de casos de uso hasta el modelo de pruebas.

    '


,   '



+-   '

+-  
 
 '

 
 '






"

 '

"

 


 '



Componentes de cada Fase del Ciclo de Vida
Ö  
 
  
 




 $
 - 
 $
 %  $
 
 $þ  

 
    

 
   $

 $
  
, 
 $+

  $


  

, 


 


 
 

 
$"
  
 "
  
 $

-  


&  .



  


 $  $ 
 

,  $
 
,  
, 



 0
  
1


 $


 $+-  

 
# $ 


,  / $"

 
, 

/
$

  
/
$

/
$

 
.

  


 $
  
 *

     $%  



 $( 
"
 

$    0
   
  
   
1 $'

 
$%  


$+   



$
 
 $   

  - 



 
 
$+  
 

$  
  
  
2
- 


 



 


  


 


 $)
 
  $    $  
 
   $  
 
 
,  

  $

  

  ( 


 
,

 
   
 

  
 
 

  
,  

 
0  1
  
( 

Cada fase finaliza con un $ . Cada hito se determina por la disponibilidad de un


conjunto de artefactos (modelos o documentos) que han sido desarrollados hasta alcanzar
un estado predefinido.

Los hitos tienen muchos objetivos. El más crítico es que los directores deben tomar
ciertas decisiones antes de que el trabajo continúe con la siguiente fase.

Los hitos también permiten controlar la dirección y progreso del trabajo.

Al final se obtiene un conjunto de datos a partir del seguimiento del tiempo y esfuerzo
consumidos en cada fase.

Estos datos son útiles para la estimaciones en futuros proyectos.


Hitos de las Fases del Ciclo de Vida del Proceso Unificado


   


 


 

 


 


   
£ #

 
#

 
£ #Ö
#Ö 
£ #+ 

#+ 
 £ #



#


   
Ö

  

Ö

  

(
   
 (
   



, 

 (
   

, 

  
 3
!
 (
   


, 

   3
!




 
, 

   
3
!

 
 
#

# 3
!



 
# 
 
#
$(
!    
*

 

 $   


 
   
 
$ $ 
,



"  
*
 
 
     
 

 

$   

 $   
-
$4 
,
   
!
$  &


 
    

 

, 
  

$ 

! $ )  

-
     
  
  
$   



)
 
 


‡ Tolerable a cambios en los requerimientos.

‡ Los elementos son integrados progresivamente.

‡ Los riesgos son mitigados en etapas tempranas.

‡ Permite a la organización aprender e improvisar.

‡ Facilita la reutilización porque es fácil identificar partes comunes diseñadas o


implementadas.

‡ Resulta un producto más robusto ya que los errores se van corrigiendo en


cada iteración.

‡ El proceso puede ser improvisado y refinado en el desarrollo.


 

|   *
   

Un proceso es un conjunto de pasos ordenados para alcanzar un objetivo. En
ingeniería de software, el objetivo es construir un producto de software nuevo o
extender uno existente. En RUP esto se organiza en un conjunto de Disciplinas que
define un flujo de trabajo.



Una disciplina es una colección de actividades relacionadas vinculadas con un área


específica del proyecto. Este agrupamiento de actividades en disciplinas es
principalmente para facilitar la comprensión del proyecto desde la perspectiva
tradicional del modelo en cascada.

+) 
#
)
Un flujo de trabajo describe la secuencia en que se realizan las actividades en una
disciplina, quienes la realizan (trabajadores) y que artefactos producen.

,
#
)
 -!.
Un trabajador o , define un comportamiento o responsabilidades de un individuo o
grupo de individuos trabajando en equipo, en el contexto de una organización de
ingeniería de software.
 

Los trabajadores realizan actividades. Una actividad es algo que realiza un trabajador
para proveer un resultado de valor en el contexto de un proyecto.

|
- .
Las actividades son descompuestas en pasos. Podemos distinguir tres categorías de
pasos:
· Pasos de análisis: donde el trabajador comprende la naturaleza de la tarea,
examina los artefactos de entrada, y formula las salidas.
· Pasos de acción: donde los trabajadores crean o actualizan algunos artefactos.
· Pasos de revisión: donde los trabajadores inspeccionan los resultados según
determinados criterios.

 
 
Las actividades tienen artefactos de entrada y de salida. Un artefacto es un producto
de trabajo en un proceso: los trabajadores utilizan artefactos para realizar actividades
y producen artefactos como resultado de sus actividades. Los artefactos son
responsabilidad de un único trabajador y promueven la idea de que toda pieza de
información en el proceso debe ser responsabilidad de un rol específico. Un trabajador
es el ³propietario´ de un artefacto, pero otros trabajadores pueden usarlo y tal vez
modificarlo si tienen permiso para ello.


‡ El software es un producto con gran peso en la economía

‡ El desarrollo de software es una actividad compleja

‡ El software no se fabrica en el sentido clásico

‡ Los objetivos de la Ingeniería del Software son desarrollar software de calidad, con mayor
productividad, en menor tiempo y de forma lo más económica posible

‡ Resulta necesario establecer un enfoque sistemático y disciplinado para llevar a cabo un desarrollo
software

‡ Los procesos software son las actividades que intervienen en la producción de un sistema software

‡ Los modelos de proceso son representaciones abstractas de los procesos software

‡ Todos los modelos de proceso incluyen especificación de requisitos, diseño e implementación,


validación y evolución

‡ La linealidad en el desarrollo del software no es realista. Normalmente se necesitan diversas


iteraciones
|




:
: Lic. en Sistemas de Información

: Sistemas de Información

 
:
|   : Pighin, Fabián

 : Alberto Szendrey; Martín Crettaz
 
 :
Introducción
  
5

 
 
  



 


  
  
 



 


  

 

   




 

  


  
 

 





 

  


6    2

6  



5

 
 


6 +   
 



 

  


 


6  
  
   
  
Introducción
  


6   


5

  

6    


& 
  
 

5

 
   

6 
 

  


 


&


6 

 

6 
 


5/
   

6 "
   



 
,


 


 - 
Definición
  
 

 ,






 

 ,




 


5/ 



 ,





5   7+
5
/89:9;

  
 



 

  
 
  
 


7

3
 /899<;

   
 
 

   

/  
5

 

 

 




5/
 


 ,



 






5/ 
  
,

 


 

 

& 7
/=>>:;

  
 


 
  
    
,
 



    
 
 
  

5  




,





5 

 


 7+
/=>>>;

  
 

. 

 

.  ,



 ,


 



5
/   





  

  
7/=>>=;

  
 



 

  
 
 
 - 



&/  
 


 


 

5  
7?
 /899@;

  
 


 
 


 


 /,









5

&   7+3
!/8999;
Descripción de un patrón
  


 
  
 



6     

 
/,


  

6 5 
 




  



  4
+
5
7+
5
/89:9;

  4 7A!
 /899<;

  4
?47?
 /899@;
Descripción de un patrón
  *

6      ,




   
 
 

  
5

6 
   !
 


  

   

,
!

5  ,


 

 
    
 

  


6 
  

 . 
 
   

  
& 0
 1

6 "   


 
,
!


  ,





 



6 (
  
  
B
,
  B   

,C



  
 
Descripción de un patrón


 

6 +     




6     


    

 
  

 


6
   
0 


1
   


  (  

6 
    
 

  
,

 


6 " 

   / 
   
   


   # 


 
0
- 1

  
# 
 
 0 - 1

  
 

6 
 
  


  

  

6 
,
  
B
,
,
 C

   

6
 


 


  

  +-  
Tipos de patrones
6 
 
 
 
 

   

& 74
/899<;

  %  

6 +  
   

 


  +, 
 

6 , 
 
5

,
  
  
 
 


6  
 


  /
 
/
  

 


  
  
 





   


6 
 
 
,


 

 




 

/ 
 





6 
 




2


,

  ,







 
 



5  

  " 

6  

 


& 



 

6  
 
 


  
 




 
   
& 




Clasificación de los patrones de
diseño
  %(+7A!
 /899<;

6 
&


 
     

   



 


6 
&



   


 

,


 


 
 


  ?47?
 /899@;

6  

 

,C!



6 D 

  ( 

  



  ? +(7/=>>=;

6 +
 


 


6 A-    


POSA ± Categorías de patrones
  
, 
 

6 
5


,

  
  
   


6 (  , 






6  
 


  /

  
 

  

  

  

  
 


  


6 

 
, 
 

  
 
 
  

  


6 
 #'
$þ $  /0
1/A3
/ 
 4 


  

 


6 


 ,
 
, 
   


 
 
 
  


6  
,

   
 


 

 
 





6 
 







 ,

  ,






 
 



5  

6 
 #%

/ !
$( 


  " 

6 (

 


& 



 

6 
 
 


   



  
 



   
& 



  

6 
 #!
0E
 FFGEFF1B
POSA ± Categorías de problemas
  

 0 
1

6 
,

  
 
 


 
 




 

  ( 
   

6 
,
  
 
,




  






  
 



  ( 
 
 

6 
,
  
 
 
 !
$-, 

  ( 
 


6 
,
  
 
5
    
  





,   
,
  
  

  
  


6 
,

  
 
 
 






 
POSA ± Categorías de problemas
  %  


6 
,

 
  

 
  


   



6 

    

 
  



  ?
 

6 




 
!C


/
   



 

    

6 
,
      





  '




6 
,
  
 

 
 
GoF ±Introducción
  )



 


 


6 
  
 
  

 


6  

 

 
   


6 

 
   
 
 , 

 


    - 

6 *


 


6 "
 

6 ) C 

6 '  

6 +   

6 

6   


6   


6 

 

6 "

 

6  


 

6  

6 

  
GoF ± Clasificación de patrones
  D 

6   
  

   

 
 


 

  


  %


 
 

 



0


1

    

  
 



   

6 HC!


  
 

  


 



  

    
 
 


  


  
 ,
  
 
 
  
  
 
 

GoF ± Clasificación de patrones
  D 
 

6 


 I   
   


& 



 
  4 '
!

6 

I   !

 
  
  + 


6 


I 
  
 


- 
  )
 
'
!

  D 



6 


 I 




  +4

6 


I 
!


   

  5 /4 
!

6 


I 

J
, 

K0

1



,

& 



  '
/! 
   /%

/'

/(


  D 
  
6 


 I 


 


  A


6 


I 


 


   
/L


6 


I  



 


  "

POSA y GoF - Patrones
POSA y GoF - Patrones
GRASP - Introducción
  ? +(0?

 
   + 
(

1

  *
J

K

6 (
  


    


 

 
 
 
  

  

5
 


  
  
 
   

 

6 
  
  
    7%'?/=>>M;

6 NHC

,


 


O

  
    
  

  
 

  

  
 ,



   

6 NHC

,
!

 


O

  £
 C  /

!
-  

  "   





       





GRASP - Patrones
  +
 


 


6 5

  

6 
 

6 A 


6 + !
 

6   

6   

  +
  
 


6 4  

6 " 
 

6 þ  

 
Patrones Significativos
  '
$$þ $
'
 $  7A!
 /899<;

  4 7?
 /899@;

  

7?
 /899@;

  '
 7?
 /899@;

  5

  05
17/=>>=;

  
 7/=>>=;

  A 
7/=>>=;

  + !
 7/=>>=;

    7/=>>=;

    7/=>>=;

  4  7/=>>=;

  " 
 7/=>>=;

  þ  

 7/=>>=;

  +%7(/=>>=;
Bajo Acoplamiento
  ? +(7/=>>=;

      
 
 
 


  


6 N


 / 
 
 


 

  O

    



 
 ,




-
 /

 

/
&
/




  


0 C 1 





  




   
 0

1 
&
 
)
 
 &



B
  


  




6  
  

  
   


6 ( &





   

6 ( &


 ,

,

 

    
  

 ,




  (  

6 + 
  

,

 



Bajo Acoplamiento

  þ

  D  


 


 

 

  ! 
"
#$
 %


 
&

% 8 % =



 01 8#

01 
 01 8#

01
#
  # #
  #

88#

01

=# 01

 #þ

Bajo Acoplamiento
     

6 *




 
 





 





  
6    

&

B


  





,




  
 /

 / 

 


 

  A

  
6 *
  



6 4- 





   
6 



 
Alta cohesión
  ? +(7/=>>=;
      
 
 
 

  

6 N

 
  

O
  
 

 
 !
 0!
   1



 
  ,


  
 
  


 





6 5 
 !
     





0 
1
   2


  
7A!/899P;
  



 
 


  / ,
!

  
/

 !
 
   
!
 !
!
  /!


  )
 



  


 
 



6  &





6  &


 
6  &




  
 /



   
  

   
!
 





 /

!  
  ,


&!




 


  (  
6 + 
  

,
 !
 


 
Alta cohesión
     

6 5 

 ,

C    
 
!
 
6 


!
   
 

 

  / ,










 
/

  
!
 /,
 
 
 !

 

6 '
  

6 '

 


  A

  
6 (
 

       
 
 

6 (
   

 
  

6 (

  

6   
    


   

 
  
,
 
!
 


   

& 

You might also like