5. Desarrollo de Software
Problemas
Dimensionar para cumplir con los tiempos
y los costos. (Gestión)
Manejar requerimientos. (Software)
CAL/Proceso de Software
6. Desarrollo de Software
Para el primer problema tenemos las
metodologías de gestión de proyectos
(PMP)
Para el segundo problema tenemos las
metodologías de desarrollo de
software, algunas veces llamadas
proceso de software. (RUP – ICONIX -
XP –etc.) aunque no estan
desvinculadas.
CAL/Proceso de Software
7. Metodología : el quien, que, y cuando de
interacciones clave entre personas.
Team Values Hitos
Precisión Planeamiento
Exactitud Testing
Tolerancia
Calidad Actividades Equipo
MBWA Gerente de Proyecto
Modelo Objetos Use cases Documentador
Plan Proyecto CRC cards Diseñador
Tester
Artefactos Técnicas Roles
Microsoft Project
3month increments Envy/Developer JAD facilitation
UML Sofware Through Pictures Java programming
Microsoft Project Modeling
Java
Estándares Tools Habilidades
CAL/Proceso de Software
8. Desarrollo de Software
Para gestionar un proyecto debemos
conocerlo y describirlo:
Objetivo – ¿Qué?
Contexto - ¿dónde? - ¿quiénes? - ¿con
quienes? – Modelo del negocio CUN
Alcance – detalle del objetivo –
requerimientos de alto nivel. (+)
Restricción – Limitantes del proyecto (-)
CAL/Proceso de Software
10. ElProceso Unificado
Concepción Elaboración Construcción Transición
Modelado del Negocio
Requisitos
Análisis y Diseño
Implementación
Prueba
Implantación
Control de Cambios
Gestión Proyecto
Entorno
CAL/Proceso de Software Iteraciones IT #1 IT # 2 IT # 3 IT # 4 IT # 5 IT # 6 IT # 7 IT # 8
11. Dimensiones
La dimensión horizontal representa el
tiempo y muestra los aspectos del ciclo
de vida del proceso.
La dimensión vertical representa las
disciplinas núcleo del proceso (o flujos
de trabajo), que agrupan actividades de
ingeniería de software por su
naturaleza.
CAL/Proceso de Software
12. Dimensión horizontal
La dimensión horizontal representa los
aspectos dinámicos en términos de
ciclos, fases, iteraciones y milestones
(hitos). Un producto de software se
diseña y construye en una sucesión de
iteraciones incrementales. Permitiendo
la prueba y validación así como el
mitigar los riesgos.
CAL/Proceso de Software
13. Dimensión Vertical
Representa los aspectos estáticos del
proceso descritos en términos de
componentes de procesos: Actividades,
disciplinas, artefactos y roles.
CAL/Proceso de Software
14. Ciclo de Vida Cascada
Ciclo de vida tradicional, en el que se debía terminar una
tarea para continuar otra. El desarrollo del software se
hacía de una sola vez.
CAL/Proceso de Software
15. Ciclo de Vida Iterativo
Incremental (Evolutivo)
El desarrollo de Software se construye en una sucesión de
iteraciones de las disciplinas e incrementos en la capacidad.
CAL/Proceso de Software
16. Artefactos : Producto del trabajo
Sucesión de iteraciones incrementales
CAL/Proceso de Software
17. Ciclo de desarrollo
Una pasada a través de las cuatro fases es un ciclo
de desarrollo; cada paso a través de las cuatro fases
produce una generación de software.
CAL/Proceso de Software
18. Releases
Cada Iteración en una fase resulta en una liberación (release)
ejecutable del sistema
CAL/Proceso de Software
19. Iteración
Una iteración lleva cabo el desarrollo
de actividades que conducen a producir
un release del producto – una versión
del producto ejecutable, estable, junto a
otro conjunto de elementos periféricos
necesarios para usar este release.
Es como una pequeña cascada.
Un release puede ser interno o externo.
CAL/Proceso de Software
20. Hitos
La elección de los hitos del ciclo de
vida debería reflejar el mismo
enfoque (iterativo incremental).
Las cuatro fases se concentran en
remover las incertidumbres y por lo
tanto manejar el acuerdo con el
stakeholder de que los riesgos sean
eliminados.
CAL/Proceso de Software
21. Desarrollo Iterativo
El uso del ciclo de vida iterativo es
mejor al cascada por muchas razones:
Permite estar al tanto de cambios en los
requisitos. La verdad es que los requisitos
usualmente cambian.
La integración no debe ser un “big bang” al
final; los elementos deben integrarse
progresivamente en el tiempo.
CAL/Proceso de Software
22. Desarrollo Iterativo
Los riesgos, normalmente, se
descubren y tratan durante la
integración. Con este enfoque se
pueden mitigar mas temprano.
El desarrollo iterativo proporciona un
medio al gerente, para hacer cambios
tácticos al producto.
CAL/Proceso de Software
23. Desarrollo Iterativo
Facilita el reuso; es mas fácil identificar
partes comunes diseñadas o
implementadas parcialmente que
reconocerlas durante el planeamiento.
El proceso de desarrollo en si puede
ser mejorado y refinado.
CAL/Proceso de Software
24. Inception : Creación
La primera fase inception (creación) se enfoca
en el espacio del problema: determinando lo que
el sistema necesita para ser entregado, sus
límites, interacciones, servicios, y asi
sucesivamente. La fase se completa cuando
todos los stakeholders (grupos de interés) están
de acuerdo con la descripción del sistema.
Definimos una “visión” del producto final y los
casos de uso del negocio asociados, definiendo
el alcance global del proyecto.
CAL/Proceso de Software
26. Elaboración
La segunda fase Elaboración se enfoca
en identificar una arquitectura robusta
para lograr satisfacer las necesidades del
stakeholder (grupo de interés).
Se refina la definición del producto, se
define y se establece una línea base de la
arquitectura y se desarrolla un plan mas
preciso para su desarrollo y despliegue.
CAL/Proceso de Software
28. Arquitectura
Es el nivel conceptual de mas alto nivel de un
sistema y su ambiente (IEEE). La
arquitectura de un sistema de software (en
un momento dado del tiempo), es su
organización o estructura de componentes
significativos que interactúan a través de
interfaces, cuyos componentes estan a su
vez compuestos de componentes mas
pequeños e interfaces
CAL/Proceso de Software
29. Arquitectura
Estructura organizativa de un sistema:
una arquitectura puede descomponerse
recursivamente en partes que
interactúan a través de interfaces,
vínculos y partes conectadas y
restricciones para el ensamble de sus
partes. Partes que interactúan a través
de una interface incluye: clases,
componentes y subsistemas.
CAL/Proceso de Software
30. Criterios de evaluación - Elaboración
¿La visión del producto es estable?
¿La arquitectura es estable?
¿Las demostraciones ejecutables, muestran
que los principales elementos de riesgo han
sido considerado y resueltos?
¿Está el plan de construcción
suficientemente detallado, tiene una base
creíble de estimados?.
CAL/Proceso de Software
31. Criterios de evaluación - Elaboración
¿Todos los stakeholder concuerdan que la
visión actual se puede lograr si se ejecuta el
plan para desarrollar el sistema completo, en
el contexto de la arquitectura?.
¿Son aceptables los gastos en recursos
actuales versus los planeados?.
CAL/Proceso de Software
32. Construcción
La tercera fase, construcción, se enfoca
en la construcción incremental del
sistema que elimine los riesgos para
una entrega exitosa.
Cada una de las iteraciones en esta
fase proporcionan mas capacidad que
la anterior y por lo tanto puede pasar
por mas pruebas del sistema.
CAL/Proceso de Software
34. Transición
La cuarta fase, transición, concluye con
la adopción exitosa del sistema.
El producto es entregado a la
comunidad de usuarios; incluye
manufactura, entrenamiento, soporte,
entrega y mantenimiento del producto .
CAL/Proceso de Software
35. Transición
Objetivos:
Lograr que el usuario sea autosuficiente.
Lograr el producto tan rápido y efectivo en
costo como sea practico.
Actividades:
Hacer el despliegue de ingeniería del
producto, empaque, entrenamiento del
personal de campo, ventas.
Actividades de afinamiento.
CAL/Proceso de Software
36. Participantes Equipo Roles
System A nalyst Use case
Specifier
Requerimientos
User-Interface
Designer Architect
Análisis
Use case
Engineer Diseño Component
Engineer
Implementación
System Integrator
Test Engineer
Test
Integration Tester
System Tester
CAL/Proceso de Software
37. Overview del Modelo Negocio
El modelo del negocio es una técnica que permite
responder algunas preguntas críticas:
¿Cómo sabe usted que ha identificado todos los casos
de uso del sistema (funcionalidades del sistema).?
¿Qué hacen los trabajadores (usuarios) antes de usar el
sistema?
¿Qué valor del negocio brinda el sistema?
¿Cuál es el sistema de negocio (proceso) que el sistema
computarizado apoya?
CAL/Proceso de Software
38. Propósito
El modelo del negocio no implica que se hagan
cambios en la forma como se hace el negocio.
Simplemente es una técnica para documentar
visualmente lo que su negocio hace. Para ello
existen herramientas (Websphere Bussines
Process Modeler).
Modelar el negocio no deben confundirse con la
ingeniería de proceso del negocio
CAL/Proceso de Software
39. Propósito
Comprender la estructura y la dinámica de la
organización para la que se desarrolla el
proyecto.
Comprender los problemas actuales de la
organización y su impacto.
Asegurar que los clientes, usuarios finales y
desarrolladores tengan un entendimiento común
de la organización. Visión compartida.
Obtener, de forma preliminar, los requisitos del
sistema que necesita la organización.
CAL/Proceso de Software
40. Propósito
¿Cómo aseguramos que el sistema tendrá valor si
no entendemos como, quién y en que
circunstancias se usará?
Para asegurar que estamos construyendo
soluciones orientadas al cliente (es decir sistemas
de información que satisfacen a nuestros clientes)
no debemos pasar por alto:
El ambiente en el que estos sistemas trabajarán,
Los roles y responsabilidades de los empleados que
usan el sistema,
Las "cosas" que son manejadas por el negocio,
CAL/Proceso de Software
41. Beneficios
Uno de los grandes beneficios de
modelar el negocio es mejorar la
obtención de requisitos del sistema,
requisitos que conducirán a la creación
de sistemas de información que
realmente encajen en la organización y
sean usados por usuarios finales.
CAL/Proceso de Software
42. Problema
Un problema que frecuentemente se
produce la dificultad para que los
analistas del negocio comuniquen sus
resultados eficazmente a los
participantes del equipo.
Dicho problema se puede resolver
usando el UML.
CAL/Proceso de Software
44. Modelado del Negocio
Artefactos (Productos concretos del
trabajo) del modelo del negocio
Modelo de Casos de Especificación de Modelo de Objetos Visión Glosario de
Uso del Negocio Casos de Uso del del Negocio Términos
Negocio
Actores del Casos de Uso Trabajadores Entidades del
Negocio del Negocio del Negocio Negocio
CAL/Proceso de Software
45. Notación UML Para el Modelo
del Negocio
icono Nombre UML Definición
Actor del Alguien o Algo, fuera del negocio que
Negocio interactúa con el negocio.
Cliente
Trabajador del Rol o conjunto de roles dentro del
Negocio negocio. Un trabajador del negocio
interactúa con otros trabajadores del
Empleado Bco
negocio y manipula entidades del
negocio.
Entidad del una "cosa" manipulada o usada por
Negocio trabajadores del negocio.
Cuenta Cliente
Caso de uso del Una sucesión de acciones que un
negocio negocio ejecuta para producir un
resultado de valor observable a un
Gestión de Prestamo actor de negocio particular. (En este
caso, sinónimo de proceso del negocio)
CAL/Proceso de Software
46. Notación
Realización del Una colección de diagramas para
caso de uso del mostrar como los elementos de la
negocio organización (trabajadores y
entidades) son utilizados para
Realizar gestión de prestamo
soportar un proceso de negocio.
Unidad Una colección de trabajadores del
organizaciona o negocio, entidades del negocio,
Bussiness vínculos, realizaciones de casos de
System uso del negocio, diagramas y otras
Colocaciones unidades de la organización. Usadas
para estructurar el modelo del negocio
(objeto) por división en partes mas
pequeñas.
CAL/Proceso de Software
47. Diagramas UML (M. Negocio)
Cada diagrama de UML proporciona una vista
diferente del negocio:
Diagramas de casos de uso describen el contexto del
negocio.
Diagramas de actividad describen las conductas en el
negocio, o el flujo de trabajo del negocio.
Diagramas de clase que describen la estructura
estática del negocio.
Diagramas de interacción describen la interacción
dinámica entre los empleados y las cosas que ellos
manipulan.
CAL/Proceso de Software
48. Actores del Negocio
Negocio
Organización
Mundo Exterior
CAL/Proceso de Software
49. Actores del Negocio
¿Dónde encontrar a los actores del negocio?
Clientes.
Socios.
Proveedores.
Autoridades.
Entidades legales y reguladoras.
Sucursales.
Dueños e inversionistas
Sistemas informáticos fuera del negocio con los
que se interactúa.
Otras partes de la organización.
CAL/Proceso de Software
50. Actores del Negocio
La lista de los actores del negocio se
realiza especificando:
Nombre del actor:
Debe dar idea clara de la función que realiza o
desempeña.
Sustantivo con letra inicial mayúscula.
Descripción:
Describir la función que realiza fuera del
negocio y la responsabilidad que tiene para el
negocio.
CAL/Proceso de Software
52. Trabajador del Negocio
¿Dónde encontrar trabajadores del
negocio?
Roles dentro del negocio.
Personas que ejecutan los proceso o
actividades del negocio.
Hardware o sistemas informáticos dentro
del negocio con los que se intercambia
información directamente.
CAL/Proceso de Software
53. Trabajador del Negocio
La lista de los trabajadores del negocio
se realiza especificando:
Nombre del trabajador:
Debe dar idea clara de la función que realiza o
desempeña.
Sustantivo con letra inicial mayúscula.
Descripción:
Describe la función que realiza dentro del
negocio y su responsabilidad.
CAL/Proceso de Software
54. Caso del Uso del Negocio
Negocio
Organización
Mundo Exterior
CAL/Proceso de Software
55. Caso del Uso del Negocio
¿Dónde encontrar casos de uso del
negocio?
Principales procesos del negocio.
Servicios principales para el cliente.
Procesos de servicio a otras entidades.
CAL/Proceso de Software
56. Caso del Uso del Negocio
La lista de los casos del negocio se realiza
especificando:
Nombre del caso de uso:
Debe dar idea clara de las acciones a realizar.
Se concibe desde el punto de vista del actor.
Debe ser un verbo o una frase verbal en infinitivo.
Descripción:
Se indica el objetivo fundamental del caso de uso
CAL/Proceso de Software
57. Caso del Uso del Negocio
Al comienzo se especifica el PUNTO DE INICIO.
Es la forma en que comienza el caso de uso.
Se enuncia “El caso de uso se inicia cuando...”
Está delimitado por:
La ocurrencia de algún evento externo al negocio.
Debido a una necesidad del actor del caso de uso.
Al final se especifica el PUNTO DE
TERMINACION.
Es la forma en que termina el caso de uso.
Se enuncia “El caso de uso termina cuando...”
CAL/Proceso de Software
58. Caso del Uso del Negocio
Flujo de eventos.
Describe QUÉ hace el actor y QUÉ responde el
proceso del negocio y no CÓMO se implementa.
Se describen las acciones del actor y la interacción
con el proceso del negocio para satisfacer la meta u
objetivo propuesto.
Se establece un diálogo de dos columnas entre el
actor y el proceso del negocio ordenando los pasos
por secuencia de ocurrencia.
El último evento debe coincidir con el PUNTO DE
TERMINACION.
Debe alcanzarse el propósito del caso de uso.
CAL/Proceso de Software
59. Diagrama de Actividad
Muestra la secuencia u orden de las
actividades para alcanzar el objetivo del caso
de uso.
Elementos:
Actividades (activity states).
Transiciones (transitions).
Decisiones (decissions).
Barras de sincronización.
Roles (swimlanes).
CAL/Proceso de Software
60. Objetos del Negocio
Identificar las entidades del negocio
(business entities).
Lista de entidades del negocio.
Diagrama de Objetos del negocio.
Incluye a los actores, trabajadores y
entidades del Negocio y las asociaciones
entre ellos.
CAL/Proceso de Software
61. Entidad del Negocio
Una entidad del negocio (business entity)
representa a un conjunto de información con
propiedades, comportamiento y semántica
similares y que es manipulado o manejado
por trabajadores del negocio.
Ejemplo:
Factura.
Solicitud de pago.
Cuenta Cliente
Tarjeta de crédito.
CAL/Proceso de Software
62. Entidad del Negocio
Negocio
Organización
Mundo Exterior
CAL/Proceso de Software
63. Entidad del Negocio
¿Dónde encontrar entidades del negocio?
Áreas, departamentos, direcciones.
Objetos físicos.
Transacciones.
Personas.
Sistemas externos.
Organizaciones.
Socios.
CAL/Proceso de Software
64. Entidad del Negocio
La lista de las entidades del negocio se
realiza especificando:
Nombre de la entidad:
Debe dar idea clara de la función que realiza o
desempeña.
Sustantivo con letra inicial mayúscula.
Descripción:
Describir la función que realiza dentro del
negocio.
CAL/Proceso de Software
65. Caso Cuentas de Ahorros
Sea un Caso de Control de cuentas de
ahorros que pueden ser de tres tipos,
individuales, indistintas y conjuntas.
Las personas deben llenar una solicitud
de cuenta de ahorros y el especialista
procederá a abrir la cuenta respectiva.
Con la tarjeta de la cuenta el cliente del
banco podrá realizar las operaciones de
depósito y extracción de dinero.
CAL/Proceso de Software
67. Paquete Cuentas
Cliente Apertura de Cuenta
(from Actores y Trabajadores)
Servicio que obtiene el cliente
CAL/Proceso de Software
68. Paquete Atención Al Cliente
Cliente Movimiento de Cuenta
(from Actores y Trabajadores)
Lo usual es no mostrar a
Los trabajadores.
Controlar Caja
CAL/Proceso de Software
69. Caso de uso del negocio
Define la interacción entre las
entidades fuera del negocio (los
proveedores, clientes, socios, colegas
en secciones que actúan
recíprocamente con la sección que Ud.
modela, etc), y sus procesos de
negocio.
CAL/Proceso de Software
70. Casos de uso del negocio
Un diagrama de Casos de Uso del
negocio representa visualmente la
interacción entre los servicios primarios
(casos del uso del negocio) que su
negocio proporciona y aquellos a
quienes los servicios se proporcionan
(los actores del negocio).
CAL/Proceso de Software
71. Diagramas de actividad
Un diagrama de actividad del negocio
proporciona una manera gráfica de
documentar un flujo de trabajo del
negocio.
Lo que pasa en un flujo de trabajo,
que actividades pueden hacerse en
paralelo,
si hay caminos alternativos a través de un
flujo de trabajo
CAL/Proceso de Software
72. Diagramas de actividad
Antes de construir el diagrama de
actividad se debe contar con una
descripción textual, narrativa del
CUN.
Lo usual es comenzar describiendo
un diagrama simple general sin
carriles y con actividades macro.
CAL/Proceso de Software
73. D. Actividad Para Caso
Cuenta
Inicio
Eventos
Solicita Boleta
de inscripcion generales
Recibir Boleta de inscripcion para
el tipo de cuenta de ahorros
Llena Boleta con
datos personales
Describe el Caso de
Verificacion de datos de la
uso Apertura de
Cuenta en términos
Boleta de inscripcion
Apertura y generación
de tarjeta de ahorros
de interacción entre
actor y CUN (macro
Recibir la Tarjeta y la palabra
clave de acceso a la cuenta actividades)
Fin
CAL/Proceso de Software
74. CASO
Revisar el texto “Encontrar actores y
casos de uso del negocio”,
Revisar caso_credito_personal.doc
CAL/Proceso de Software
Notas del editor
Modelar el negocio desde nuestro punto de vista no es modelar los procesos del negocio, no es ingeniería de procesos del negocio; La finalidad de modelar el negocio bajo una metodología como RUP está ceñida a identificar el o los problemas o necesidades a resolver con una sistema de software. No hay que confundir entonces, modelar procesos con modelar casos de uso del negocio. Para modelar procesos existen herramientas variadas.
Metodología es la forma en la que hacemos nuestras tareas, la forma en la que estudiamos, la forma en que nos dirigimos a algún lugar, la forma en que resolvemos problemas ... Cualquier acción que desarrollemos tiene una forma de hacerlo, puede ser una forma sin nombre, entonces sin darnos cuenta estamos aplicando una metodología propia. Los componentes de una metodología fueron propuestos por Alistair Cockburn hace muchos años; reflejan lo que las metodologías son o contienen; nueve componentes que pueden ser cubiertos total o parcialmente por una metodología. En RUP, ICONIX, XP, etc, podemos reconocer los componentes – pueden ser muy densos (muchas actividades, roles y entregables) o pueden ser muy ligeras. Incluso las metodologías para gestión de proyectos podemos aplicarle este modelo.