13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 20 — #58<br />

✐<br />

Capítulo 1. Introducción a los Objetos<br />

3. «¿Cómo puede este actor hacer eso con este sistema»<br />

4. «¿Cómo podría algui<strong>en</strong> más hacer este trabajo si algui<strong>en</strong> más estuviera haciéndolo,<br />

o si el mismo actor tuviera un objetivo difer<strong>en</strong>te» (para revelar variaciones).<br />

5. «¿Qué problemas podrían ocurrir mi<strong>en</strong>tras hace esto con el sistema» (para<br />

revelar excepciones).<br />

Si está diseñando un cajero automático, por ejemplo, el caso de uso para un aspecto<br />

particular de la funcionalidad del sistema es poder describir qué hace el contestador<br />

automático <strong>en</strong> todas las situaciones posibles. Cada una de esas «situaciones»<br />

se d<strong>en</strong>omina esc<strong>en</strong>ario, y se puede considerar que un caso de uso es una colección<br />

de esc<strong>en</strong>arios. Puede p<strong>en</strong>sar <strong>en</strong> un esc<strong>en</strong>ario como una pregunta que comi<strong>en</strong>za con:<br />

«¿Qué hace el sistema si...» Por ejemplo, «¿Qué hace el cajero automático si un cli<strong>en</strong>te<br />

ingresa un cheque d<strong>en</strong>tro de las 24 horas y no hay sufici<strong>en</strong>te <strong>en</strong> la cu<strong>en</strong>ta para<br />

proporcionar la nota para satisfacer el cargo»<br />

Los diagramas de caso de uso son int<strong>en</strong>cionadam<strong>en</strong>te simples para impedir que<br />

se atasque con los detalles de implem<strong>en</strong>tación del sistema demasiado pronto:<br />

Usos<br />

Hacer<br />

Depósito<br />

Retirar<br />

Fondos<br />

Banco<br />

Cajero<br />

Cli<strong>en</strong>te<br />

Pedir Balance<br />

de cu<strong>en</strong>ta<br />

Transferir<br />

<strong>en</strong>tre cu<strong>en</strong>tas<br />

Cajero<br />

automático<br />

Figura 1.10: Diagramas de casos de uso<br />

Cada monigote repres<strong>en</strong>ta un «actor», que típicam<strong>en</strong>te es un humano o algún<br />

otro tipo de ag<strong>en</strong>te libre. (Incluso puede ser otro sistema de computación, como es<br />

el caso del «ATM»). La caja repres<strong>en</strong>ta el límite del sistema. Las elipses repres<strong>en</strong>tan<br />

los casos de uso, los cuales son descripciones de trabajo válido que se puede llevar<br />

a cabo con el sistema. Las líneas <strong>en</strong>tre los actores y los casos de uso repres<strong>en</strong>tan las<br />

interacciones.<br />

No importa cómo está implem<strong>en</strong>tado realm<strong>en</strong>te el sistema, mi<strong>en</strong>tras se lo parezca<br />

al usuario.<br />

Un caso de uso no necesita ser terriblem<strong>en</strong>te complejo, incluso si el sistema subyac<strong>en</strong>te<br />

es complejo. Lo único que se persigue es mostrar el sistema tal como aparece<br />

ante el usuario. Por ejemplo:<br />

20<br />

✐<br />

✐<br />

✐<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!