Documente Academic
Documente Profesional
Documente Cultură
DEL S®FTWARE
Un enfoque practico
• •
•
•
•
•
•
--- - •
•
• I
I l· •
•
.' "-- ~\'I.,
CAPiTU LO
MODELADO
,
DEL ANALISIS
E
CONCEPTOS n el ambito tecnico. la ingenieria de software comienza con una serie de
CLAVE tareas de mo del ado que conducen a una especificaci6n de requisitos y a
ooiI"'del una representaci6n completa del disef\o del software que se construira. EI
IIooinIo .... .. 194 modelo de analisis, qu e en realidad es una serie de modelos, es la primera repre-
ooiIsi. sentaci6n tecnica de un sistem a.
_urado ... 196 En un libra sobre metodos de model ado del analisis, Tom DeMarco [OEM 79]
dose••. •••• •219 describe el praceso de la siguiente manera:
..,..... de
Al observar los problemas y fallas reconocidas de la rase de analisis es necesario agre-
IIojo de datos . •211
garle los siguientes objetivos:
IIOIIoIado
.......
.......1. • Los productos del analisis deben teneT una eJevacta facilidad de man ten i-
rniento. Esto se aplica en particular al documento final [especificaci6n de re-
.......
dose• •••••• 219
_ • ••. 202
•
quisitos de software).
Los problemas de gran tamafto deben tratarse con un metoda efectivo de par-
tidon. La especificaci6n del tipo de las novelas victorianas ya no sirve.
eRe •••• •••• 225 • Deben utilizarse graficas cuando sea posible.
de dolo• ••••• 197
• Se debe diferenciar entre consideraciones J6gicas [esenciales) y fisicas [de im-
_.10 ....
del CDlftpor·
234
plementaci6n) ..
Como minima se necesita ..
•sptdf"Kodo.
de ,onlrol •••• 215 • Algo que ayude a hacer una partici6n de los requisitos y a documentarla antes
orietolado de Ja especificaci6n ..
alliujo ••• ••• 211
• Algunos medios para el seguimiento y evaluaci6n de las interfases ..
objoto. de
dato• •..• .. .• 198 • Herramientas nuevas para describir la 16gica y la tactica, algo mejor que un
texto narrativ~.
reglas pt'actkas 194
Aunque DeMarco escribi6 acerca de los atributos del modelado del analisis hace
mas de un cuarto de siglo, sus contribuciones se siguen aplicando en la notaci6n
y los metodos modernos de model ado del analisis.
a,Qui ••? La palabro eocriIa as un que eo relativamente facil de entender y, aun mas
vehiculo morovilloso parala comunl- importante, conduce a una revision para Iograr la
caci6n, pero no es,
la mejor forma de rep~.""
requisitos para eI sofiwore1. cIe ~.
_
necesariament&, c:orrecci6n, la inlegridad y 10 consistencia.
.Quilln 10 hac.? Un ingeniero de software [algu·
nos vace. lIamado analistol conslruye el madelo
putodora. EI modelado del anali.i. uIIIiza ImO empleanda requisitas abtenidas del d iente.
combinaci6n de formalo$ en 1exta y cliqpQlilOl tpor que .s importante? Para validar los
para representor los requisilo$ de 10. cIatoI, _ ..requisitos del software es necesa rio examinarlos
funciones y el compartamiento de uno I1I(IiIjIIQ desde algunos puntos de visto diferenles. EI mode·
191
192 PARTE DOS PAAcnCA DE LA INGEN1ERlA DEL SOF1WARE
lado del aOOlisis represenla las requillitos en niul·_ Una vez que se han creacIo los modelos
tiples dimensiones#, con 10 que $& ~ fa
U ""'_..ares, estos se refinon y analizan para
probobilidad de encontrar errones,' de ~ sur- su calidad, integridad 'I cansistenda.
jan'1'ncansistendas y de que se ~.omi·madeIa de anellisis ~nal 10 validan
sianes. ',. las inlel~
~Cuales son los pasos? Los requisitosdell. . ,:,Cu61 .... producto obIenido? Para el
madan, funcionales y de comportamienlO;.:.;~.•.1IICde1o de anc'iIisis <i!sposible elegir una amplia
madelan mediante varies ~pos de diagramos. • w •• -:VGriedad de tipos de diagrornas. Coda una de
madelada basado en escenarias representa .1' :, ,"
'ISlas representaciones afrece una visian de uno
sistema desde eI punto de vista del usooria. EI.~de las elementos del modeIa.
madelada orien!ado 01 Hujo indico c6ma se ,~ JMMIo eskIr seguro de que 10 he
transforman los objelas de datos allllQ!izarse hecho ._tamente? Los praductos de
las funcianes del pracescimlerliO,;~.~1eIado ~.Jj\!KWado del aOOlisis deb... revisar-
basado en doses define objetos, ~t-- se en 10 nsIotiva a sue oarrecciOn, integridad y
ciones. EI madelada del comportomiento PflI" cansistencia. Estos deben reHejar las neeesida-
senta los estados del sistema y sus closes, <lSI' des de !ados 100 inleresadoo y eotablecer una
como el impodo de 10. eventoo sabre sus esto- base desde 10 cual pueda condudrse el di.eno.
8 1 r ANi,LISIS DE R§QyISIIOS
I Es necesario mencionar que con forme los clientes se vuelven mas refinados en el sentido tecnolo-
gico existe una tendencia hacia la especificacion tanto del c6mo como del que. Sin embargo, el en -
roque prima rio debe permanecer en el que.
CAPITULO 8 MODELADO DEL ANAusIS 193
Elmodelo de
cm6l1s1scomo
an puente De5Cripcion
ae 1a del sistema
descrtpclon
del sistema y
I1modelo de
diseno.
Es importante puntualizar que algunos elementos del modelo de anal isis estan
presentes (en un grado mas alto de abstracci6n) en la descripci6n del sistema, y que
esas tareas de ingenieria de requisitos en realidad comienzan como parte de la inge-
nieria de sistemas. Ademas, todos los elementos del modelo de analisis son identi-
ficables de manera directa en las partes del modelo del disefio. No siempre es posi-
ble una divisi6n clara de tareas de analisis y disefio entre estas dos importantes acti-
vidades del modelado. De modo invariable, como parte del analisis se realiza algun
disefio y algun analisis se efectua durante el disefio.
• El modelo debe centrarse en los requisitos visibles dentro del problema a dominio
de negocio. EI grade de abstraccion debe ser alto de forma relativa. "No se debe
perder tiempo en detalles" IARL02] que tratan de explicar como funcionara el
sistema.
• Cada elemento del modelo de analisis debe agregarse a un acuerdo general de los
requisitos de software y proporcionar una vision interna del dominio de informa -
cion, funcion y comportamiento del sistema.
• Debe retrasarse la consideracion de la infraestructura y otros modelos no fun cio-
nales hasta el diseflO. Por ejemplo, es posible que se requiera una base de
datos, pero las clases necesarias para implementarla, las funciones que se
requieren para acceder a ella y el comportamiento que se exhibira cuando se
utilice debe considerarse solo despues de que se haya completado el analisis
de dominio del problema.
• EI modelo debe mantenerse tan simple como sea posible. No se deben agregar
diagramas adicionales cuanda estos no ofrezcan informacion nueva. No se
deben utilizar formas de notaci6n nuevas cuanda basta con una simple !isla.
Literatura tecnica
- Taxonomias de close
Fuentes del
Aplicociones existentes / \ Estondares de reutilizadon
Sondeos a los clientes Modelo
conocimienlo Anal;.;. Modelos funcionales de an61isis
del dominio Recomendocion experto del dominio del dominio
~ Lenguojes de dominio
Requisitos octuoles/futuros '\..
- --'
~Pero, en primer lugar, como se reconocen los patrones de analisis? .;.Quienes los
definen, los asignan a una categoria y los preparan para aplicarlos en proyectos sub-
secuentes? Las respuestas a estas preguntas residen en e! analisis del dominio.
Firesmith [FIR93] describe el aniliisis del dominio de la siguiente manera,
3 Una vision complementaria del analisis del dominio "involucra el modelado del dominio de forma
que los ingenieros de software y otros interesados puedan aprender mas de el. .. no todas las clases
del dominio resultan necesariamente en el desarrollo de clases reutilizables"[LET03].
4 No debe suponerse que si se cuenta con la colab·oraci6n de un analista del dominio, un ingeniero de
software no tiene por que comprender el dominio de aplicacion. Todos los miembros de un equipo
de software deben tener algun conocimiento del dominio en el cual se colocara el software.
196 PARTE DOS PAAcnCA DE LA lNGENIERlA DEL SOFJ'INARE
Una visi6n del modelado del analisis, Ilamado analisis estructurado, considera que los
datos y el proceso que transforman los datos son entidades separadas. Los objetos
de datos se modelan en una forma que define sus atributos y relaciones. Los proce-
sos que manipulan los objetos de los datos se modelan de tal manera que muestran
c6mo transforman los datos, mientras los objetos de datos fluyen por el sistema.
Un segundo enfoque del modelado del anal isis, Ilamado analisis orientado a obje-
tos, se centra en la definicion de clases y en la manera en que estas colaboran entre
elias para efectuar los requisitos del cliente . EI UML Y el proceso unificado (capitulo
3) estan orien tados a objetos en forma predominan te.
B[olnolisil os frustronte, lIeno de relociones interperlonoles complejol, indefinido y dill«l. En pocos polabros, 8\
foscinonte. Una vez que estos engonchado, el vieio placer de 10 construcdon de sistemas mmca sera 5uficiente pam
sotisfocert•. "
T... DeM.rco
,Por que debemos construir modelos? ,Por que no (onstruimos el sistema y yo? Lo respuesto es que podemos
If
construir modelos de tal forma que resoltemos 0 enfaticemos dertos coracteristicas criticos de un sistemal 01 mismo
nempo que quitomos ;nlolil 0 otros' olpectol del liltema."
Ed YOIrdon
CAPITULO 8 MODELADO DEL ANAuSIS 197
Modelo de an61isis
5 Esta distinci6n sepa ra los objetos de datos y las clases u objetos definidos como parte del enfoque
orientado a objetos.
198 PARTE DOS PRAcnCA DE LA INGENIERiA DEL SOFTWARE
Atributos
~
Atributos
idenlificodor descriptivos referencioles
~~ ~
- Morea
lexus
Modelo # de id.
l5400 AB123.
Tipo
Sedan
Color
Blanco
Propietario
R5P
Ins! oneie Chevy Corveffe X456. DeportivQ Roje CCD
BMW 750il XZ765. Coupe Blanco Ul
Ford Taurus Q12A45. .. Sedan Azul BlF
8.3,2 Atrlbutos
Los alribulas deflnen las propiedades de un objeto de datos y toman una de las tres
caracteristicas diferentes. Se pueden utilizar para l) nombrar una ocurrencia del
Los otribulos definen a objeto de datos, 2) describir la ocurrencia 0 3) hacer referencia a otra ocurrencia en
un objeto de dotos, otra tabla. Ademas, se debe deflnir uno 0 mas atributos como un identiflcador; es
describen ~s
decir, el atributo identificador se convierte en una "clave" cuando se desea encontrar
corocteristicos y, en
algunos rosos, hocen una ocurrencia del objeto de datos. En algunos casos, los valores para el (los) iden-
referencio (] olro tiflcador(es) son (micas, aunque esto no es un requisito. En referencia al objeto de
objeto. datos auto, un identiflcador razonable podria ser el numero de serie.
; ." ;
EI (oocepfo Ilomrn:lo
EI canjunto de atributos apropiado para un objeto de datos se determina median-
te la comprensi 6n del contexto del problema. Los atributos para auto sirven bien
"normoliloci6n· es para una aplicaci6n que utilice el Departamento de vehiculos de motor, pero estos
importonte pam todos atribu tos serian inutiles para una compania automotriz que necesite un software
oquellos que intenton para el control de fabricaci6n . En este ultimo caso, los atributos para auto tal vez
realizer modelodo de
detos. En www. incluirian tambiE!n nurnero de serie, tipo de carrocerfa y color, pero ademas tendrian que
d"amodel.Olg adicionarse much os mas atri butos (como c6digo interior, tipo de tren de rnanejo, designa-
puede encontrorse UflO dar de paquete de ajuste, tipo de transmisi6n),.para hacer de auto un objeto s i gnificativ~
intJOducci6n om.
en el contexto de control de fabricaci6n.
~
Objetos de datos y clases 00, "son 10 mismo?
(uando se debate ocerco de los objetos de tambien incorpora las operociones que manipulan los
datos es comun que suria una pregunto: aun datos implicodos por dichos atributos. Ademes, 10
ob jeto de dotos es 10 mismo que una dose orientado a definicion de doses implico una infraestructura completa
ob jetos? La respuesta es: "noN. que es parte del enfoque de la ingenierio de software
Un objeto de dotos define un elemento compuesto de orientado a objetos. Las doses se comunican entre 51 a
los datos' esto es incorpora una coleccion de elementos de troves de mensajes; pueden organizarse en jerorquios;
datos individuale's (atributos) y do un nombre a 10 proporcionan caracteristicas heredadas para objetos que
coleccion de elementos (el nombre del objeto de datos). son uno instancio para una dose .
Uno dose 00 encapsula atributos de los datos, pero
CAPiTULO 8 MODELADO DEL ANAuSIS 199
Relac10nes
entre objetos
p."ono I IoUlomov;1 1
de datos.
0) Una conexion b6sica entre objetos
de dotos
8 .3.3 Relaciones
Los objetos de datos estan conectados entre si de muchas maneras diferentes. Por
ejemplo. dos objetos de datos, persona y auto, pueden representarse con la simple
notaci6n ilustrada en la figura S.Sa. Se establece una conexi6n entre persona y
auto porque los objetos se relacionan entre sl. l.Pero, cuales son las relaciones? La
Los lelociones indicon
~ monelO en que los
respuesta se determina entendiendo el papel de las personas (propietarios, en este
objetos de dotos eston caso) y de los autos dentro del contexte del software que se construira. Se puede
conectodos entre sf. definir un conjunto de parejas objeto/ relaci6n que definan las relaciones re levantes.
Por ejemplo:
• Una persona posee un auto,
• Una persona esta asegurada para conducir un auto.
Las relacionesposee y esla asegurada para conducir definen las conexiones reI evan-
tes entre persona y auto. En la figura S.Sb se ilustran estas parejas objeto/relaci6n
de manera grafica. Las fiechas de la figura S.Sb ofrecen informaci6n importante
ace rca de la direccionalidad de la relaci6n y a menudo reducen la ambiguedad 0 las
malas interpretaciones.
~
Diagramas de entidad-reJacion
La porejo objeto-relaci6n es 10 piedra angular represenlan par medio de un rectangulo etiquelado. Los
del modele de datos. Estes porejas pueden relociones se representan mediante una linea etiquelada
representorse de monero grcifica mediante el diagromo de que conedo objetos. En algunos variaciones del DER 10
enlidad-reloci6n (OERJ .7 EIDER 10 propu$O originalmente linea de conexion conliene un rombo que esta etiquelado
Peter Chen [CHEll] para el diseno de sistema!. de bases con 10 re lacion. Las conexiones entre objetos de datos y
relacio nale!., y despues otrmlo han ompliado . Con eiDER relaciones se establecen mediante una voriedod de
se identifieo un caniunlo de componentes primarios: simbolos especioles que indican su cardinalidad y
objetos de datos, atributos, relaciones e indicodores de modolidod.
vorios tipos. EI propOsito primordial del DER es representor
Para mas informacion sabre el modelodo de datos y el
objetos de dotos y sus relaciones.
diogromo de entidad-relacion ellector inleresado puede
Ya se ha hecho una introduccion de 10 notacion consultor [THAOOj
rudimentaria para eIDER. Los objetos de datos se
·Pora que un sistemo de information seo util, "nfioble, odoptoble y economico debe es10r bosodo primero en 01
mocIeIodo de dol.., y sOlo de monero ,e(Undorio en el onoli,i, del proceso ... porque 10 esInKIuro d. dot.. so roliore
de Ionno inherente a 10 verdod, mientro, que el proceso os relotivo 0 10 tirniro."
~
ModeJado de datos
Objetivo: Las herramientas para el modelodo caraclerislicas y relaciones. Estas herramientas -que se
de datos proparcionon 01 ingeniero de sohware utilizan sabre lodo para grondes aplicaciones de bases de
10 copocidod de representor objetos de datos, sus datos y olres proyectos de sistemas de informacion-
6 Par ejempia, un tia puede tene r muchos sobrinos y un sabrina puede tene r muchos tias .
7 Aunque el DER todavia se usa en algunas aplicacianes para el disefio de bases de datos, en la ac-
tualidad la notacion en UML es la mas utilizada para el disefia de datos
CAPITULO 8 MODELADO DEL ANAuS IS 201
proporcionon un medio automatizodo para crear Oroefe/Designer, desarrollado per Oracle Systems
diagramas de entidad-relacion, diccionarios de objetos de (www.oracle.com). modelo procesos de negocios,
datos y modelos relacionados. entidades de datos y relaciones que se transforman en
Mecanica: las herramientas en esta categorla permiten disenos a partir de los cuales se generan aplicaciones
01 usuario describir objetos de datos y sus relaciones. En completas y bases de datos.
algunos casos uti lizan 10 notacion del DER; en otras MetaScope, desa rrollado per Madrone Systems
ocasiones modelan las relaciones por medio de otros (www.madronesystems.coml. es uno herramienta para
mecanismos. Adem6s permiten 10 creacion de un modelo el modelado de datos de bajo costo que do soperte a
de base de datos 01 generar un e5quema de bose de datos 10 representacion gr6fica de datos.
pora 5MBD.
Mode/Sphere, desarrollado per Magno Solutions GMBH
Herramientas representativas 8 (www.mognosolutions.coml, do soporte a uno variedad
AI/Fusion ERWin, desarrollado por Computes Associates de herromientas de modelado relocional.
(WWVv'3.ca.com), oyuda en el disena de objetos de datos,
Visib/eAno/yst, desorrollodo por Visible Systems
estructuras propias y elementos clove para bases de datos.
(www.visible.coml, do soporte a una va riedad de
ER/Sfudio, desorrollado per Embarcadero Software fvnciones de modelado del analisis, incluido el
(www.embarcodero.coml.brindo soporte 01modelado modelado de datos.
entidad-relaci6n.
1. Deben comunicarse los req uisitos basicos del usuario entre el cliente y el in-
geniero de software.
2 . Deben identificarse las clases (es decir, se definen los atributos y metodos).
3 . Se define una jerarquia de c1ases.
4. Deben representarse las relaciones de objeto a objeto (conexiones entre objetos).
5. Debe modelarse el comportamien to del objeto.
6 . Las tareas 1 a 5 se vuelven a aplicar de manera iterativa hasta que el modelo
este comple to.
8 Las herramientas mencionadas aqui son una muestra de esta categoria. En la mayoria de 105 casos
los nombres estan registrados par sus respectivos desarrolladores.
202 PARTE DOS pRAcnCA DE LA INGENIERlA DEL SOFIWARE
~
Conceptos orientados a objetos
, Los conceptos orientodos a objetos (00) est6n plano de Irabajo) que describe una coleccion de objelos
bien establecidos en el mundo de 10 ingenieria similares.
del sohware. A continuoci6n 5e presentan los descripciones Objelos: inslancias de una close espedfica. los obielos ,
abreviodos de conceptos 00 que 5e encuentran con heredan los atributos y operaciones de una close.
frecuencia durante el modelado del ancilisis. En el capitulo
Operaciones: tambiEln lIamodas mefodos y servicios,
lOse presenton aIres objetos 00 que est6n alineados de
proporcionan 10 representacion de uno de los
monero mas cercone 01 diseno de software.
comportamientos de una close.
Atributos: una colecci6n de valores de los datos que
Subclase: una especializacion de 10 superclase. Uno
describen una close.
subclose puede heredar tanto los atributos como las
Close: encapsulo los dotos y las abstracciones de operaciones de una superclase.
procedimiento requeridos para describir el contenido y el
Superclase: tambien lIamada uno close basico, es una
comportomiento de alguna entidad del mundo real. Oicho
generalizacion de un conjunto de closes que estan
de olra manera, una clase es una descripcion
relacionadas con ella.
generolizada (por ejemplo, una plantilla, un patron 0 un
9 Los casos de uso son una parte particularmente importante del modelado del analisis para las in -
terfases con el usuario. El analisis de la interfaz se trata con detalle en el capitulo 12.
CAPITULO 8 MODELADO DEL ANALlSIS 203
de un actor definido.lO Pero como puede saberse 1) .;.sobre que escribir? 2). .;.cuanto
escribir acerca de ella' 3), <que tan detallada debe ser la descripcion', y 4) <coma orga-
nizar la descripcion? Estas son las preguntas que deben contestarse para que los casas
de usa tengan un valar como herramienta para el modelada del anillisis.
'[los!ll!OS d. usa) son simplemente uno oyuda para delinif 10 que existe luera del sistema (odoresl y 10 que deberi.
reaIiw eI sisfemo (OOIOS de usol."
1.0' JtKObsoo
lSobre que escribir? Las primeras dos tareas de la ingenieria de requisitos 11 -ini-
cia y obtenci6n- proporcionan la informaci6n necesaria para comenzar a escribir
En afgunas situa- casas de usa. Las reuniones para la recapilacion de requisitas, despliegue de la fun-
(ianes, fos casas de cion de calidad (QFD) y atros mecanismas para la ingenierla de requisitas se utilizan
usa se vuefven ef
para identificar a las interesados, definir el ambito del problema, especificar las
mecanismo
dominante de fa inge- metas aperativas glabales, esquematizar todas las requisitas funcianales canacidos
nierfa de requisifos. y describir las casas (abjetas) que manipulara el sistema.
Sin embargo, esto no El desarrollo de una serie de casos de uso se comienza haciendo una lista de las
signifiea que deban funciones a actividades que realiza un actar especifico. Estas pueden abtenerse de
descof/Voe los
una lista de funciones requeridas del sistema par medio de conversaciones can los
mnceptos y temicas
eslud/odos en el clientes a usuarios finales, 0 mediante una evaluaci6n de los diagramas de actividad
copilulo 7. (seccion 8.5.2) desarrolladas camo parte del madelada del analisis.
10 Un actor no es una persona especifica, sino el papel que desempeiia una persona (0 dispositivo) den-
tro de un contexto especifico. Un actor "llama al sistema para entregar uno de sus servicios"
[CaCOII·
II Estas tareas de la ingenieria de requisitos se examinan con detalle en el capitulo 7.
204 PARTE DOS pRAcnCA DE LA !NGENIERiA DEI.. SOFIWARE
.~
.•
~r.;;;~ '~S parte de Ia octividod de conflguroci6n, me
Ia funci6n de vigilancio.
Meredith: Bien, entonces quiero vistas en minioturtl de
todas las comaras. Tambier, quiero que Ia interfaz can Ia
. . ._ ..... (.....riencIo): Me quilasfe las palabras funci6n de vigilancia tengo Ie misma opariencia que
boca. todas las otras inlerloses de HogarSeguro. OUi.... que
.,. r I ....: Mm ... Quiero tener occeso a 10 funci6n de sea intuitiva; es decir, que no sea n&Ce$Orto leer un
~, yo sea a troves de 10 PC 0 de Internet. Siento
manual para poder usorta.
que eI ocxeso por Internet serio eI de uso mas frecuente. Moderador: Suen trabajo, ahara entremos en esta
De ........ier monera, quiero ser capaz de desplegor funci6n con un poco m6s de detalle ...
Wtos de las c6ma1'O> en uno PC y cantrolar el
Con forme se reali zan las conversaciones posteriores con el interesado (quien
desempef\a el papel de un propietario), el equipo de recopilacian de requisitos desa-
rrolla casos de uso para cada una de las funciones mencionadas. En general, los
casos de uso se escriben primero en un estil o narrativo informal. Si se requiere
mayor formalidad se rescribe el mismo caso de usa utilizando un formato estructu -
rado similar al propuesto en el capitu lo 7 y reproducido en esta seccian como un
recuadro.
Con fines i1ustrativos, considerese la fundon "acceso a camara de vigilancia-des-
pliegue de vistas de camara (ACV-DVC)". EI interesado que desempef\a el papel del
propietario pod ria escribir el siguiente rel ata:
CAPITULO 8 MODELADO DEL ANAuSIS 205
caso de uso: Acceso a camara d e vigilancia-des plie gue de vis tas de camara
(ACV-DVC)
Actor: propietario
Si me encuentro en un lugar lejano puedo usar una PC con un soflware de navegad6n
apropiado para en trar al sitio web de los productos HogarSeguro , Ingreso mi clave de usua -
rio y dos niveies de con trasenas y, despues de que estoy validado, tengo acceso a toda la
funciona lidad de mi sistema HogarSeguro instalado. Para tener acceso a la vista de una ca-
mara especifica selecciono "vigilancia" de los botones desplegados para las funciones mas
importantes. Oespues escojo "seleccionar una camara" y se despli ega un plano de planla
de la casa. Entonces selecciono la camara en la que estoy interesado. En forma alterna,
puedo ver simultaneamente una lista con vistas en miniatura de todas las camaras al se-
leccionar "todas las camaras" como mi opd6n de visualizaci6n. Una vez que he seleccio-
nado una camara, selecciono "vista" y una vista de un cuadro por segundo aparece en una
ventana, a la cua l identifica la camara clave. 5i quiero cambiar de camara, elijo "seleccio-
nar una camara" y la ven tana de visi6n original desaparece y se despliega de nuevo el
plano de planta de la casa.
Una variaci6n del caso de usa relatada presenta la in teracci6n como una secuencia
orden ada de las acciones del usuario. Cada acci6n se representa como un enuncia-
do declarativo. Despues de vi sitar la funci6n ACV-DVC, se puede escribir:
Caso de uso: Acceso a camara de vigilancia-despliegue d e vis tas de camara
(ACV-DVC)
Actor: pro pietario
1. El propi etario entra en el sitio Web de HogarSeguro.
2. EI propietario introduce su clave de usuario.
3. EI propietario introduce dos contrasenas (cada una de a1 menos ocho caracteres).
4. EI sistema despJiega todos los botones de las funciones mas importantes.
5. EI propietario selecdona "vigilancia" de los botones de funciones mas importantes.
6. EI propietario elige "seleccionar una camara".
7. EI sistema despliega el plano de planta de la casa.
8. El propietario seiecciona un icono de camara del plano de pianta,
"Los msos de UIO pueden UIOIW en muchos p,o<osos [de softwnre]. Nuestr. levoril. es un PC"'" que sea iIwaIiYo Y
anIu<ido pot eI 'iesgo: -
Geri SdooeIder Y...... WIIItn
206 PARTE DOS pRAcnCA DE LA INGENIERlA DEL SOFlWARE
Por supuesto, para una comptensi6n comple ta de la funci6n que se pretende des-
cribir es esendal una descripcion de las interacciones alternativas. Por 10 tanto, cada
paso en el escenario primario se eva ilia realizando las siguientes preguntas [5CH98j:
tiEl actor puede ejecutQr aUa acdon en este punta? La respuesta es: "si". Con referen -
cia al relato de flujo libre, el actor puede elegir ver las vistas en miniatura de todas
las camaras de manera simultanea. Por ende, un escenario secundario podria seT:
"Ver las vistas en miniatura de todas las camaras".
,Es posible que eI actor encuenlre alguna condici6n de error en este punto' Cuando
un sistema basado en computadora esta en funcionamiento puede ocurrir cualquier
cantidad de condiciones de error. En este contexte se consideran s6lo las condicio-
nes de error que pueden ocurrir como resultado directo de las acciones descritas en
los pasos 6 0 7. De nuevo, la respuesta a la pregunta es: "si". Puede ser que nunca
se haya configurado un plano de planta con iconos de las camaras. Por 10 tanto, al
elegir "seleccionar una camara" se produce una cond ici6n de error: "no existe un
plano de planta configurado para esta casa"Y Esta condici6n de error se convierte
en un escenario secunda rio .
,Es posible que eI actor encuentre algun OIrO comportamiento en este punto' De
nuevo, la respuesta a la pregunta es: "si". Cuando se realizan los pasos 6 y 7 el sis-
tema puede encontrar una condici6n de alarma. Esto pod ria resultar en que el siste-
ma desplegara una notificaci6n especial de alarma (tipo, ubicaci6n , acci6n del sis-
tema) y Ie proporcione al actor una serie de opciones relacionadas con la naturale-
za de la alarma. Como este escenario secundario puede ocurrir para casi todas las
interacciones, no se convertira en una parte del caso de uso para el ACV-OVC. En
12 En este caso, otro actor, el administrador del sistema, tendria que configurar el plano de planta,
instalar e inicializar (es decir. aSignar una [D a cada equipo) para todas las camaras, aSl como rea-
lizar pruebas para estar seguro de que cada una de elias es accesible por medio del sistema y a tra·
ves del plano de planta.
CAPiTULO 8 MODELADO DEL ANAuSIS 207
HOGARSEGURO
3. EI propietorio introduce dos controsenas (cada una Prioridod: Prioridad moderacla, que se
de aI monos acha coracte,..,. impiemenlQr6 despue. de 10.
... EI sistema despliega todos 10. botones de las Funciones b6sicos.
Iunciones me. impartante•. Oisponible en; EI tercer incremento.
5. EI propietario selecciona "vigilancia" de los botones Frecuencia de uso: Poco frecuente.
'de las, funciones mOs importontes. Conal hacio el odor: A troves de un browser bosodo en
6. EI propietario seiecciona "escoger uno coma ron. PC y conexi6n de Internet al sitio
7. EI sistema despliega el plano de 10 cosa. web de HogarSeguro.
8. Et propietario selecciono el icono de una camara del Adores secundarios: Administrodor del sistema,
plano de planlQ. comoros.
9. EI propietario selecciona el boron "vista". Canales hacia los adores secundarios:
10. EI sislemo despliega una ventana de visualizaci6n 1. Admi[listrador del sistema: ~istemo basodo en PC.
que est6 identificodo can 10 10 de la comaro.
2 . Camaras: conectividad inalombrica
208 PARTE DOS pRACTICA DE LA INGENIERlA DEL SOFrVVARE
Aspectos pencli.nles: 3. ilo respuesta del sistema via Internet ser6 ac:epkIhIe
1. aCu61 es eI meconismo que protege contro el usc no dado el ancho de banda requerido para las vistas
autorizado de esfa capacidad pa' parte de los de cornaro?
empIeados de Ia campania? 4. iSe desorrollor6 uno capacidod para proporcionor
2. ela seguridod $$ sofidente? EI ingreso no outorizodo video a una tosa mayor de cuodros pot' segundo
en esta carocteristico representario una invasi6n cuando esten disponibles conexiones con ~
impartanle de Ia privocidod . oncho de banda?
•. MI,}!.!!,) &1 En muchos casas no es necesario crear una representacion gratica de un escena- ,
t(uando se han rio de lisa. Sin embargo, la representacion diagramatica puede facilitar 1a compren-
terminodo de escribir los sian, en particular cuando el escenario es complejo. Como se mendono en el capi-
(Osos de usa? POf{! uno
exposici6n volioso de tulo 7, el UML proporciona una capacidad para hacer diagram as de casos de uso pre-
asle t6piro, veose liminar para eJ producto HogarSeguro. Cada caso de uso se representa mediante un
ootips.org/ 6valo. En esta secci6n 5610 se ha examinado en detalle el caso de uso para eJ ACV-
use~cases'1loae.
hlmloo!ip••org/ DVe.
use-cases'1ione.
hlml. 8.5.2 Desarrollo de un diagrama de actividad
EI diagrama de actividad en UML (que se trat6 en forma breve en los capitulos 6 y 7)
complementa el caso de uso aJ proporcionar una representaci6n gni.fica del flujo de inte-
raedon dentro de un escenario especifico. De manera similar al diagrama de flujo,
un diagrama de actividad utiliza rectimgulos redondeados para indicar una funcian
especifica del sistema, flechas para representar el flujo a traves del sistema, rombos
de decision para mostrar una ramificacian por decision (cada flecha que sale del
rombo se eliqueta), y lineas horizontales s6lidas para indicar que ocurren activida-
des paralelas.
Diagrama HogorSeguro
prellminar de
casode uso
para el Camoras
sistema
HogarSeguro.
~ \
Propielario
de 10
coso
CAPITULO 8 MODELAOO DEL ANALISIS 209
Diagrama de
actlvidad
Introducir contrasefia }-_ _ _ _ _ _---,
para la
e ID del usuario
funcionde
acceso a la
cCanara de
vigUancia-
despliegue Contrasefias/ID v61idas Contrasefias/ID no validas
de vistas de
camara. Opcion para
Tambien se pueden _":::::='-7':;';';";;'~~
seleccionar
otras funciones
No reston
intentos de entrada
,
vistas de camara.
Introducir controseno'\.
e 10 del usuorio .J
Conlrosenas/IO volidas ~
Conlraseiias/ID
( Seleccionor una ~ no validas
funci6n importante J
Tambien se ___ (oPCi6n para reingres<)
pueden
~Ieccionar I ~:on inlenlos
olras Seleccionor vi9ilonci~ @ e enlrodo
funciones
No reston
". .-A'-,"·,"·
intentos de entrada
como segmentos paralelos que dividen el diagrama en forma vertical, como los
ca rriles de una alberca.
Existen tres clases de analisis - Propietario, Interfaz y Camara- con responsa -
Un diDgtamD d, bilidades directas 0 indirectas en el contexto del diagrama de actividad representado
wniles en UMl en la figura 8.7. Respecto de la figura 8.8, el diagrama de actividad se reorganiza de
representD ,I fluiD d, forma que las actividades asociadas con una c1ase de analisis particular pertenezcan
las acciones y las
al carril correspondiente a dicha clase. Por ejemplo, la clase Interfaz representa la
dedsiones e indica
cuales oelores reolizon interfaz con el usuario de acuerdo con la vision del propietario. El diagrama de activi-
woo uno de ,liDS. dad considera dos opciones que son responsabilidad de la interfaz: opcion para eJ rein -
CAPiTuLo 8 M ODELADQ DEL ANALISIS 211
greso y opeion para otra vista. Estas opciones y las decisiones asociadas con elias per-
tenecen al carril de Interfaz. Sin embargo, las fiechas conducen desde ese carril de
regreso al carril de propietario, don de ocurren las acciones del propietario.
-0 prop6silo de los diagramas de fluio de datos as proporcionar un puente semantico entre los usuarios y los
desorrolladores de sistemas."
$ensores
Estatus
de alarmo
B Linea
del sensor numero telef6nico
telefOnica
14 Esto es, los objetos de datos que fluyen hacia el sistema 0 eualquier transformaci6n en algun nivel,
deben ser los mismos objetos de datos (0 sus partes eonstituyentes) que fluyen hacia la transfor-
maei6n en un nivel mas refinado.
15 Una narrativa del proeesamiento es similar en estilo al easo de usc, pero algo diferente en prop6-
sito. La narrativa del proeesamiento proporeiona una descripci6n general de la funci6n que sera de-
sarrollada. No es un eseenario eserito desde el punto de vista de alguno de los aetores.
16 Debe notarse que se omiten los sustantivos 0 verbos que son sin6nimos 0 que no tienen una inge-
rencia direeta en el proeeso de modelaci6n. Tambien se debe notar que, euando se eonsidere el mo-
delado basado en clases de la seeci6n 8.7, se usara un analisis gramatieal similar
CAPiTULO 8 MODELADQ DEL ANALISIS 213
En relacion can el analisis gramatical comienza a surgir un patron. Los verbos son
los procesos de HogarSeguro; esto es. al final pueden representarse como burbujas
en un DFD subsecuente. Los sustantivos son entidades externas (cajas), objetos de
datos a de control (flechas), a almacenamientos de datos (lineas dob!es). Oespues
debe observarse que los sustantivos y verbos se puedan asociar de distintas formas
DFD de nivel 1
para la funci6n
de seguridad de
HogarSeguro.
......_..., ........Confi g uraci6n
de aatos
Configuraci6n de informaci6n
Procesar Despliegue
contrasena Mensal·e .....,===-1 del panel
de ID va ido de control
Configu raci6n
\=-__I~nf~o:r~m~O~C~i6~n~~::=: --------~
de oatos
del sensor __ ~
Sensores 1---."...,...,---1 Tipo de cilarma
Estatus sensores
del sensor linea
Tonos del numero telefonica
telefonico
214 PARTE DOS PAAcnCA DE LA LNGENIERiA DEL SOFTWARE
OFD de nivel 2
Informacion
que refina el del sensor
procesode
monitoreo
de sensores. T;r.
Informacion de configuroci6n alorma
Datos
de configuraci6n
Numero
telef6nico
ID,Iipo
de sensor
Mercer
lelMono
Estatus
d el sensor Tonos de numeros
telef6nicos
entre 51. Por ejemplo, a cada sensor se Ie asigna un numero y un tipo; por 10 tanto,
fl'ONSlJO" el numero y el tipo son atributos del objeto de datos sensor. Entonces, al realizar un
Se debe tener 10 analisis gramatical sobre la narrativa de procesamiento para una burbuja en cual-
segur;dod de que rodo quier nivel del DFD, se puede generar mucha informaci6n uti I acerca de c6mo pro-
fo narrafiva de prOCfr ceder con la reflnaci6n para el siguiente nivel. En la figura 8.10 se presenta un DFD
samiento Que se
intenta anolizar e5th de nivel I para el cual se ha utilizado esta informaci6n. EI proceso al nivel de con-
escrifa con el mismo texto mostrado en la figura 8.9 se ha expandido a seis procesos obtenidos de un exa-
grado de obslro((;On. men del analisis gramatical. De manera similar, el flujo de informaci6n entre los pro-
cesos en el nivel I ha sido obtenido del analisis. Ademas, se mantiene la continui-
dad del flujo de inform aci6n entre los niveles 0 y I.
Los procesos representados en el DFD de nivel I se refinan despues hacia niveles
mas bajos. Por ejemplo, es posible reflnar el proceso monitorear sensares hacia un
DFD de nivel 2 como se muestra en la figura 8. 1 I . De nuevo, debe sefialarse que se
mantiene la continuidad del flujo de informaci6n entre los niveles.
La refinaci6n de los DFD continua hasta que cada burbuja reali za una sola fun-
ci6n; es decir, hasta que el proceso que representa la burbuja desempefie una funci6n
que podria implementarse con facilidad como un componente de programa. En el
capitulo 9 se examina un concepto, lIamado cohesion, con el cual se evalua la si m-
plicidad de una funci6n dada. Por ahora, se busca refinar los DFD hasta que cada
burbuja tenga "un solo significado".
software. Sin embargo, como ya se ha mencionado, existe una clase muy grande de
aplicaciones que estan guiadas por eventos en lugar de datos, que producen infor-
macion de control en lugar de reportes 0 despliegues, y que procesan informacion
con un especial interes por el tiempo y el rendimiento. Dichas aplicaciones requie-
ren aplicar el modelado de control del flujo, ademas del model ado del flujo de datos.
Va se ha mencionado que un even to 0 elemento de control se implementa como
un valor booleano (por ejemplo, verdadero 0 falso, encendido 0 apagado, 1 0 0) 0
una lista discreta de cond iciones (vacio, saturado, lIeno). En la seleccion de los even-
tos que son candidatos potenciales se sugieren las siguientes directrices,
lComo se • Hacer una lista de todos los sensores que el so ftware "lee".
seleccionan
• Listar todas las condiciones de interrupcion.
105 eventos
pOlencioles para • Li star todos los "interruptores" que maneja un operador.
un diagrama de
• Ustar todas las condiciones de datos.
,onlrol delll.jo,
un diagrama de • De acuerdo con el analisis de sustantivos y verbos aplicado a la narrativa de
eSlado 0 una procesamiento, revisar todos los "elementos de control" como posibiJidades
especificacion de de entradas y salidas del control de flujo.
(antral?
• Describir el compartamiento de un sistema mediante la identificaci6n de sus
estados; determinar el grado en el que se alcanza cada estado, y definir las
transiciones entre los estados.
• Enfocarse en posibles omisiones - un error muy camon al especificar el
control-; por ejemplo, se puede preguntar, "<existe alguna otra manera de
alcanzar este estado 0 salir de eI 7 " .
17 Despues, en este mismo capitulo, se presenta notaci6n adicional para el modelado del comporta-
miento.
18 La notaci6n para el diagrama de estado se rrlUestra aqui de confonnidad con la notaci6n del UML.
En el analisis estructurado se cuenta con un "diagrama de transici6n de estado", pero el formate del
UML es superior en contenido y representaci6n de informaci6n.
216 PARTE DOS PAAcrTCA DE LA JNGENIERIA DEL SOITWARE
-
~ Inlerruptor
in icie/para,
encendido
Entror/inicior
Reinido
E~loIussi$lemo ~inodivo'
Entrorjinicior despliegueMensoje 1
Nlniciondo sistemo"
Entrar/iniciar despliegueMensoje2
"POI" favor espere"
Sistema
correcto
Reinic io
DesO(upodo
• I
FolloDetectodo/ inic iar
Activor I apagado/control
Apogodo
1
despliegueMensaje2 "conlodar
01 Yendedo r"
MonitoreoEstatusSistema
I desoctivorControsena
desact ivorCon troseiio
AccionEnAlarma
@
fa lsaAlarma
Entror/inicier EsloltJ!.!;istema ~monitoreo" Enlrm/inieiar EsloltJs$i~tema
Entrm/iniciar despliegueMensojel NArmado" tiempoFuero "moniloreoYAlarmo'
Enlrer/inieior despliegueMensaje2 N. Enlrar/inieiar despliegueMensojel
~ALARMK
Enlrar/inieior despliegueEsfotus esloble
Haeer: monitorearYConlrolarSblema EOlrar/ioieiar despliegueMeosaje2
Golpedetedo/Tedademonejo senso rDispo rodo/ disporadordeSensor
ioie io Temporizodor Entrar /inicior despliegueEstotus
Destellorapido
Hoeer: mon[loreorYConlrolarSi5lemo
Hoeer: sooidodeAlorma
Haeer: notifiearRespuestoAiormo
GolpedetedofTeclodemanejo
U
sensorDisparodo/
reinieio Tern porizador
Por ejemplo, el diagrama de estado (figura 8.1 2) indica que las transiciones desde
el estado desocupado pueden ocurrir si el sistema se rei nicia, activa 0 apaga . Si el sis-
tema se activa (es decir, se enciende el sistema de aiarma) ocurre una transicion
hacia el estado MonitoreoEstatusSistema, los mensajes que se despli ega n cambian,
como se muestra, y se solicita el proceso SistemaControiyMonitoreo . Con el estado
Monitoreo Stratus Sistema ocurren dos transiciones: 1) al desactivar el sistema se pre-
senta una transicion de regreso al estado desocupado; 2) cuan do se dispara un sen-
sor ocurre una transicion hacia el estado Acci6nEnAlarma. Duran te la revision se
consideran todas las transiciones y el contenido de todos los estados.
HOGARSEGURO
I
k:::'~ 10 forma en que los objetos Auyen a troves del Doug: Entonces, alas primeros dios estoron dedicados 01
c6mo estos $8 transformon.
desarrollo del modelo de on6lisls, eM
Parece como si pudieromos convertir codo burbuja
Jamie (con orgullo): Yo comenzomos.
Ii" '""$O'"p'",ente ejecutobJe... . 01 menos en el nivel mas
Doug: Bien, tenemos mucho trabajo par hacer y no
1iIii,&,..1o mejor porte, 51 '" puede. De hecho, mucho tiempo para hacerlo.
forma de traducir los OFO a uno arquitectura (los tres ingenieros de software se miran entre Sl y
sonden.)
poro codo puede servir como guia para el diseno del componente del software que implemen-
tronsformocion en el tara el proceso.
nivel menos refinodo Para ilustrar el uso de la EP, considerese la transformacion procesamiento de con-
de un OFD. traseila representada en el modelo de flujo para HogarSeguro (fIgura 8. 10). La EP para
esta funcion pod ria tomar la forma:
Si en esta etapa se desean tener detalles algoritmicos adicionales, se pod ria incluir
tambien una representaci6n en lenguaje de diseiio de program as como parte de la
EP. Sin embargo, muchos profesionales del so ftware creen que la versi6n en LDP se
puede posponer hasta que comience el diseiio de componentes.
~
AnCrIisis estruc turado
Objetivo: los herromientos del onolisis Herramientos repre sentativas 20
estructurodo oyudon a un ingeniero de softwore
o crear modelos de datos, modelos de Huio y modelos de AxiomSys, desarrollado por STG, Inc. (www.slgcase.comj,
comportomiento de uno monero que permito 10 proporciona un paquete completo de herramientas
verificocion de 10 conlinuidod y 10 consistencio , osl como pora el onolisis de 10 estructura que incluye extensiones
su focil edicion y extension . Los modelos creados utilizondo de Hartley-Pirbhai para el modelado de sistemas en
estos herramientos brindon 01 ingeniero de software una tiempo real.
vision de 10 representoci6n del onolisis y oyudon 0 MacA&D, WinA&D, desarrollados par Excel Software
eliminar errores ontes de que estos se propaguen en el (www.excelsoftware.coml, proporcionan un conjunto
diseno 0 , oun pear, en 10 m'ismo implementocion. de he rromientas simples y berotas para el anolisis y el
Meccm ica : Los herramientas de esto categoria utilizon un disei'io en moquinas Mac y Windows.
Ndiccionario de datos Ncomo 10 bose de dotos centrol paro
MetaCASE Workbench, desarrollado par Metocose
10 descripcion de todos los ob jetos de datos. Uno vez que
Consulting (www.metacase.com) es uno
los entrodos del diccionorio eston definidos, pueden
metoherram iento uti lizada para definir un metodo de
crearse diagramas de entidad-relacion y se pueden
anol isis 0 diseno (incluide en ono lisis estructurodo): sus
desorrollor los jerorquias de obietos. Las corocteristicas de
conceptos, reglos, notaciones y generadores.
diagramacion del Huio de datos permiten crear focilmente
este modelo grofico y tambien proporciona caracteristicos Sysfem Architect, desarrollado por Popkin Software
para 10 creaci6n de especificaciones de control lEe) y (www.popkin .com). proporciena un amplie range de
especificaciones de proceso (EPj. Las herromientas de herramientos de onolisis y disei'io, incluye herromientas
onolisis tombien ayudon 01 ingeniero de software en 10 para el modelado de dolos y el onolisis estructurodo.
creacion de modelos de compartamiento que usan los
diagramas de estado como notacion operativa.
20 Las herramientas mencionadas aqui representan una muestra de esta categoria. En la mayoria de
los casas los nombres estan registrados par sus respectivos desarrolladores.
CAPITULO 8 MODELADO DEL ANAuSlS 219
' 8 problemo reolmente difidl es dOSl.brir lUales son los objelDS ,0"ectDS [doses] en primer lugor:
,De qui • Entidades externas (por ejemplo, otros sistemas, dispositivos, personas) que
forma se producen 0 consumen informacion que usara un sistema basado en compu-
manifiestan a si
tadora.
mismos las doses
de analisis (omo • Casas (por ejemplo, reportes, despliegues, letras, senales) que son parte del
elementos del dominio de la informaci6n para el problema.
espa,io de solu-
cion? • Sucesas a eventos (por ejemplo, una transferencia de propiedad 0 la consecu -
cion de una serie de movimientos de robot) que ocurren dentro del contexto
de la operaci6n del sistema.
• PapeJes (por ejemplo, gerente, ingeniero, personal de ventas) que desempenan
personas que interactuan con el sistema.
• Unidades organizacionales (por ejemplo, divisi6n, grupo, equipo) relevantes
para alguna aplicaci6n.
• Sitios (por ejemplo, el piso de manufactura 0 el puerto de cargal que esta-
blecen el contexto del problema y la funci6n global del sistema.
220 PARTE DOS PAAcnCA DE LA INGENIERlA DEL SOITWARE
Esta categorizacion es una de las muchas que se han propuesto en la bibliografia .21
Por ejemplo, si los desarrolladores del software para un sistema de observacion
medica definen un objeto con el nombre de Imagenlnvertida 0 Inversi6ndeImagen,
podrian estar cometiendo un error suti!. La Imagen obtenida del software podria,
par supuesto, ser una clase (es una cosa integrante del dominic de la informacion) .
La inversion de la imagen es una operaci6n que se aplica a 1a c1ase. Probable mente,
1a inversion( ) se definiria como una operaci6n para la clase Imagen, pero no se esta-
bleceria como una clase diferente para connotar "inversion de imagen". Como esta-
blece Cashman [CAS89] : "EI objetivo de la orientacion hacia los objetos es encapsu-
lar, pero aun as! mantener separados, los datos y las operaciones sabre los datos".
Para ilustrar 1a forma en que las clases de analisis pueden definirse durante las
primeras eta pas del model ado, se utiliza de nuevo la funcion de seguridad de
HogarSeguro . En la seccion 8.6.1 se realizo un "analisis gramatical" sobre la narra ti-
va del procesamiento22 para 1a fu nci6n de seguridad. Al extraer los sustantivos se
puede proponer una serie de clases potenciales:
instolaci6n ocurrencia
La lista pod ria extenderse hasta que todos los sustantivos en la narrativa del proce-
samien to hayan side considerados. Observese que cada entrada en 1a !ista ha side
21 Olra categarizaci6n impartante -la cual define entidad. frontera y clases de controladar- se exa-
mina en la secci6n 8.7.4 .
22 Es importante notar que esta tecnica debe usarse tambien para todos los casas de uso desarro!la -
dos como parte de la actividad para la recopHaci6n de requisitos (obtenci6n). Esto es, los casos de
uso pueden analizarse gramaticalmente para extraer clases de analisis potenciales.
CAPiTuLo 8 MO DELAOO DEL AN AuSIS 221
llamada como un objeto potencial. Cada uno de ellos debe considerarse a fonda
antes de tomar una decision final.
,Como se 1. Informacion referida. La clase potencial sera uti! durante el analisis solo si la
determina informacion ace rca de ella debe recordarse para que el sistema pueda funcio-
si una clase
nar.
pOlencial debe,
d. hecho, 2. Servicios requeridos. La clase potencial debe tener un conjunto de operaciones
(onvertirse en una identiflcables que puedan cambiar el valor de sus atributos de alguna manera.
dase de analisis?
3. Alribulos muJlipJes. Durante el analisis de requisitos el enfoque debe estar en
la informacion "importante"; una clase con un solo atributo puede, de hecho,
ser uti! durante el diseno, pero probablemente es mejor representarla como
un atributo de otra clase durante la actividad de anal isis.
4 . Alribulos comunes. Es posible defln ir un conjunlo de atributos para la clase
potencial, y estes atributos pueden aplicarse en todas las instancias de la
clase .
5. Operaciones comunes. Es posible defini r un conjunto de operaciones para la
clase potencial, y estas operaciones pueden aplicarse en todas las instancias
de la clase.
6. Requisitos esenciales. Las entidades externas que aparecen en el espacio del
problema, y que producen 0 consumen informacion esencial para la opera-
cion de cualquier solucion para el sistema, se definiran casi siempre com o
clases en el modele de requisitos.
instoloci6n rechozodo:
sistema (olios funci6n de seguridodl aceptodo: lodos oplicon
numera , tipo rechazada: falla 3, alributos del sensor
conlra sena maestro rechozodo: fo lio 3
numero telef6nico rechozodo: folio 3
evenlo del sensor oceplodo : lodos oplicon
olarmo audible aceplodo: aplicon 2, 3, 4 , 5, 6
servicio de moniloreo rechozodo: 1 y 2 fallan aunque oplico 6
Se debe senalar que I) la !ista anterior no esta com pi eta (se tendrian que agregar cla-
ses adicionales para terminar el modelo); 2) algunas de las clases potenciales recha-
zadas se convertiran en atributos para las clases aceptadas (por ejemplo, n"mero y
iipo son atributos de sensor, y contrasena maestra y numero telef6nico se pueden conver-
tir en atributos de sistema); 3) la existencia de enunciados diferentes del problema
pod ria ocasionar decisiones distintas de "aceptaci6n 0 rechalO" (por ejemplo, si cada
propietario tuviera una contrasena diferente 0 si pudiera identificarse par su voz, la
clase Propietario satisfaria las caracteristicas I y 2 Y esta habria sido aceptada) .
Algunos de los datos a la derecha del signo de igual podrian refin arse hasta un nivel
elemental, pero para los prop6sitos de este capitulo constituyen una !ista razonable
de atributos para la clase sistema (parte sombreada de la figura 8.13) .
CAPiTULO 8 MODELADO DEL ANAuSIS 223
Los sensores son parte del sistema global de HogarSeguro , y aun asi no estan en-
Iistados como elementos de datos como atributos en la flgura 8.13. Ya se ha defl-
0
nido sensor como una ( lase, y varios objetos de sensor se asociarim con la clase
sistema. En general, se evita la definicion de un elemento co mo un atributo si mas
de uno de los elementos se asociara con la clase.
,
Diagramade Sistema
close para 10
clase del ID sistema
sistema. verificaci6nNumeroTelef6nico
Eslatussistema
Tiemporelra so
Numerotelef6n ico
Controseiiamaestra
Contraseiiatemporal
Numerodeintentos
programor( )
desplegarl)
reiniciar( J
buscor( ) .
modificor( J
lIamarl)
224 PARTE DOS pRAcnCA DE LA INGENlERIA DEL SOFTWARE
En una investigacion posterior tal vez la operacion programar( ) sea dividida en una
serie de 5uboperaciones mas especificas que se requieren para configurar el sistema.
Par ejemplo, programar( ) implica la especificaci6n de numeros telefonicos, la confI -
guraci6n de caracteristicas del sistema (como al crear la tabla de sensores, al intro-
ducir las caracteristicas de la aiarma) y la introducci6n de contrasena(s). Sin embar-
go, par ahara programar( ) se especifica como una sola operacion.
HOGARSEGURO
B. Modelos de c1ase
. .. I . .' EI escenario: Cubfculo de Ed, 01 de estos paredes. ,C6mo sobe eI plono de pIan!o d&.d.
comenzar el mocIelodo del anal isis. colocar esos objetos?
Los adores: Jamie, Vinod y Ed, miembros del equipo Ed; No 10 sabe, pero las otros doses sf. Miren 10$
de ingenierfo del soft..vare de HogarSeguro. atributos de abajo, digomos, SegmentosdePared, los
La conversacion: cuales se usan para construir uno pared. EI segmento de
pared tiene unas coordenadas de inido y flnalAy Ie
{Ed ho estodo trobojondo en 10 extracci6n de closes a operocion de dibuio( ) hace el resto. ~,
partir de 10 plontillo de coso de uso para el U Acceso a
la camara de vigilancia-despliegue de vistas Jamie: Y 10 mismo pasa para los poertas y venkJna$.
de camara" Ipresentado en un recuadro anterior en Porece como si las comoros tuvieron unes pocOl de
este capitulo 1 y esla mostrando a sus colegas las closes otributos extra.
que ha extraido. Ed: 5i, los necesito para poder dar 10 informaciOn del
Ed: Entonces, cuando el propietario quiere escoger una movimiento y el acercamiento.
camara, el 0 ella debe elegirla de un plano de plonta. He Vinod: Tengo uno pregunla. iPor que 10 camara tiene
definido una clase lIamada PlanodePlanta. Aquf esla uno ID, pero las otras clases no?
el diagrama.
Ed: Vamos 0 necesitar identificar coda camoro para
(Todos miran 10 figura 8.1 A.J propOsitos del despliegue.
Jamie: Entonces PlanodePlanta es uno close que se Jamie: Tiene sentido para mi, pero tengo algunos otras
une a los paredes que estan compuestos por segmentos preguntos. (Jamie hace preguntas que resultan en
de pared, puertas y ventonos, y tombien los comoros; modificaciones menores.)
eso es 10 que significon esos Ifneas etiquetadas, ino?
Vinod: iTienes tarjetas CRC para coda una de estas
Ed: 5i, esas lineas se lIaman "asociaciones". las doses closes? 5i es asf, debemos seguirlos, s610 hay que estar
estcin asociadas entre sf de ocuerdo con las asociaciones seguros de que no se ha omitido nada.
que les he mostrado. [las asociaciones se estudian en 10
seccion 8.7.5.1 Ed: No estoy seguro de como hacerlas.
,
Diagrama de PlanodePlanta
clasepara
"po
PlanodePlanta nombra
(Vease el Dimensionesexlernas
an6:l.isis en el
recuadro). delerminarTIpo( )
posicionarPlanodePlantal )
escalar( )
cambiar color( )
Se ubica dentro de ~ I •
Es parte de
Camara Pared
reo ti
Wmensionespared
ubicad6n
campodeVisi6n
AngulodeTorno
Configurad6n determinarTIpo( I
Acercamiento calcularDimensiones( )
determinarTIpo{j
traducirUbicaClon( )
desplegarlD( ) Se usa para
desplegarVisto( ) Se usa para
deplegarAcercamiento( J construir
constru!r
~
• ~
son los atributos y las op~raciones relevantes para la c1ase. Dicho de manera mas
simple, una responsabi!idad es "cualguier cosa gue la clase sabe 0 hace" [AMB95J.
Los colaboradores son aguellas c1ases gue se reguieren para gue una c1ase reciba la
informacion necesaria para completar una responsabilidad. En general, una colabo-
radon implica ya sea una solicitud de informacion 0 la solicitud de alguna acci6n.
·Uno de los propOsilos de los torjetas CRC os follor 01 inieio, follor (On,tontemente y follor 'in que sea (0(0. Es mudlO
mils borata firor un bulla de Inrielos que reorganizar uno gran confided de (odigo Fuente."
En la figura 8.15 se i1ustra una tarjeta indice CRC simple para la c1ase Planode-
planta. La !ista de responsabilidades gue se muestra en la tarjeta CRC es preliminar
y esta sujeta a adiciones 0 modificaciones. Las c1ases Pared y Camara se anotan
enseguida de la responsabilidad gue reguerira su colaboracion.
Clases. Las directrices basicas para identificar c1ases y objetos ya se han presen-
tado en este mismo capitulo. La taxonomia de los tipos de clases gue se presento en
la seccion 8.7.1 se puede extender considerando las siguientes categorias:
,! • Closes de entidad, tambien lIamadas c1ases de modele 0 negocios, se extraen
Enwww. de manera directa del enunciado del problema (por ejemplo, Planodeplanta
IheuonkaIt._1 y Sensor). De manera tipica, estas c1ases representan c1ases gue se almace-
aG079..... puede
eJ]controrse uno naran en una base de datos y gue persisten durante la ap!icacion (a menos
Gxcelenfe exposid6n gue se borren de manera especifica).
de e,1e ,po de (osos.
• Closes de frontera. Se utilizan para crear la interfaz (por ejemplo, pantallas
interactivas 0 reportes impresos) que el usuario ve y con la cual interactua
cuando se utiliza el software. Las clases de entidad contienen informaci6n
Una carta
indice del
modeloCRC. Close: PlanodePlanta
Descripcion
Respansabilidad Colabarador
Define el nombre/tipo del plano de planta
Maneja 10 posicion del plano de planta
Escala el plano de planta para su despliegue
Escala el plano de planta para su despl iegue
Incorpora paredes, puertas y ventanas Pared
Muestra la posicion de las camaras de video Camara
CAPiTuLo 8 MODELADQ DEL ANAuSIS 227
"Los objelOS pueden dosificorse de monerD cientifico en Iresgrandes categories: los que no func:ionan, los que se
d05<Ompone. y las que so pierd •• :
IlSseI .....
·(uale, 1. La inteligencia del sistema se debe distribuir entre las c\ases para
directrices abordar de mejor manera las necesidades del problema. Cada aplica-
pueden apli,arse
cion abarca un cierto grado de inteligencia; esto es, 10 que el sistema sabe y
para la asignacion
de re'pon,abilida- puede hacer. Esta inteligencia puede distribuirse entre las clases de varias
de, a la, d.,e,? maneras diferentes. Las clases "poco inteligentes" (aquellas que tienen menos
responsabilidades) pueden modelarse para actuar al servicio de unas cuantas
clases "muy inteligentes" (las que tienen muchas responsabilidades). Aunque
este enfoque hace que el flujo de control en un sistema sea directo, tiene unas
cuantas desventajas: a) concentra toda la inteligencia en unas pocas clases, 10
que dificulta los cambios, y b) tiende a requerir mas clases, y por ende, un me-
jor esfuerzo de desarrollo.
5i la inteligencia del sistema se distribuye con mayor amplitud entre las
clases de una aplicacion, cada objeto sabe y hace solo unas cuantas cosas (las
cual es, por 10 general, son bien enfocadasl, y la cohesion del sistema mejora.
Lo anterior aumenta la facilidad de mantenimiento del software y reduce el
impacto de los efectos colaterales debidos al cambio.
Para determinar si la inteligencia "del sistema esta bien distribuida las res-
ponsabilidades anotadas en cada tarjeta In dice del modelo CRC deben eva-
luarse y asl comprobar si alguna clase tiene una lista de responsabilidades
228 PARTE DOS PRAcnCA DE LA lNGENIERiA DEL SOITWARE
23 En tales casos puede ser necesario dividir las clases en multiples clases 0 subsistemas completos
para distribuir la inteligencia de manera mas eficaz.
CAPiTULO 8 MOOELAOO DEL ANAuSIS 229
colaboraci6n senc il la fluye en una direccion, 10 que representa una solicitud del cliente al
servidor. Desde el punta de vista del diente, cada una de sus colaboracianes esta asociada
can una responsabilidad pa rticular que ha implementado el servidar.
Unaclase Jugador
agregada
compuesta.
I I
T I I
CabezaJugadOl CuerpaJugadot BrazasJugada PiemasJugacior
Esta forma de operacion continua hasta que se termina con el caso de uso. Cuando
se han revisado todos los casos de uso se contin ua con el modelado del analisis.
HOGARSEGURO
~ Modelos CRC
~ EI escenario: Cubiculo de Ed, Con uno solo selecdon, quiero ser capaz de configurar
continuo eI modelodo del on6lisis. 10 coso complete para varias situaciones. Una es en
a.o. actores: Vinod y Ed, miembros del equipo de coso; 10 otra, fuera de coso; uno tercero, salido po¥' Ia
ingenierio del sohwore de HogarSeguro. noche, y uno cuorto, vioje largo. Todos estes situociones
tendr6n configuraciones que se aplicorem a todos los
Lac_ciOn.
dispositivos. En los estados salida per 1a noche y via;e
(\Iinod he decidido ensenorle 0 Ed romo desarrollar largo el sistema debe encender y apagar luces a
tarjelas CRC medionte un eiemplo.1 intervolos a leotorios (para oparentar que alguien est6 en
Vinod: Mientros tU has estodo trabajondo en 10 coso) y controlar el sistema de calefcccion yaire
vigiloncia y Jamie ho estado involucrado con 10 acondicionado. Debe ser copaz de involidor estos
seguridad, yo he estodo trabajando en la Nnden de configuradones a troves de Intemet con Ie protecd6n de
..dminislraci6n del hagor. una contraseno opropiada .
lei: aCu61 es el estatus de esc? Mercodotecnia c~mbia su Ed: ,Lo gente de hordware nene cancebidos todotlo.
punta de vista a coda momento. interfases inalombricas?
V"mod: Aqui estO eI primer corte del coso de uso para Vinod (sonriendo). Est6n trobojondo en ellos,
Iodo 10 funci6n ... to hemos refinodo un poco, pero d igomos que no es un gran problema. De cuolquier
puede dorte uno ideo generol. monera, extroie uno serie de doses poro 10
odministrod6n del hogar, y podemos utilizer alguno de
ea.o de uso: Funci6n de odministrodon del hogor de elias como ejemplo. Usemos 10 dose
HogorSeguro.
InterfaxAdministraciemHogar.
Narrativa: Queremos utilizor 10 interfaz de
Ed: De ocuerdo .. . entonces, los responsobilidades
odministroci6n del hogor en una PC 0 con una conexi6n
son ... los atributos y operaciones pora Ie dose, y las
de Internet para controlor dispositivos electronicos que coloborociones son las doses hado los que opunton las
tengan con~ de interfaz inal6mbricos. EI sistema responsabilidades.
debe permirume encender y opagor luces especificas,
eontrOlOr OpIicociones conectodos a uno interfaz
Vinod: (reo que no entendiste 10 eRe.
inal6mbrico, conflguror los sistemas de colefocdon y eire Ed: Tal vez un poco, pero continua.
ocondicionoclo con las temperaturas que yo defina; para Vinod: Entonces, oqui esta mi definicion de close para
hocerIo quiero seleccionar los dispositivos de un plano de InteriazAdministracionHogar.
pIonta de 10 coso. Coda dispositivo debe estor Atributos:
identificado sabre.1 plono de 10 plonta. Como uno Ponelopciones: proporciona informoci6n en botones que
eoroderlstico optional, quiero contralar todos los
permiten al usuario seleccionor uno Funcionolidod.
disposItivos oudiovisuoles: audio, television, DVD,
grobodoras digitales, etcetera. Ponelsituaci6n: proporci6no informaciOn en botones que
pe~mjten 01usuario selecdonor 10 situociOn.
232 PARTE DOS pRAcnCA DE LA INGENIERIA DEL SOFIWARE
24 Otras relaciones de multiplicidad - una a una, una a muchas, muchas a muchas, una a un rango es-
pedfico con hmites inferior y superior, y otras- se pueden indicar como parte de una asociacion.
CAPITULO 8 MODELAOO DEL ANALlSIS 233
Multiplicidad. Pared
I I I
- o. . • -
Se utiliza para Se utiliza para
construir construir
I ·1 Se utiliza para
construir
I .
O.
5egmentoPared Ventana Puerta
Dependencias. Ventana
Camara
Despliegue
«acceso»
...................•
(contrasenal
tra del UML que permite a un ingeniera de software definir un elemento de modela-
do especial cuya semimtica define el cliente. En UML los estereotipos se representan
dentro de comillas angulares (por ejemplo, «estereotipo»).
Como una ilustraci6n de una dependencia simple dentro del sistema de vigilan·
cia de HogarSeguro, un objeto de Camara (en este caso, la clase de servidor) pro·
porciona una imagen de video 0 un abjeta de VentanadeDespliegue (en este casa,
la del cliente). La relaci6n entre estos dos objetos no es una asociaci6n simple, aun asi
existe una asociaci6n de dependencia. En un caso de uso escrilo para la vigilancia
(que no se muestra), el modelador aprende que se debe praporcionar una contrasefia
especial para ver ubicaciones espedficas de camara. Una forma de iograr esto es que
camara pida una contrasena y despues de permisa a VentanadeDespliegue para
producir la imagen de video. Esto se puede representar cama se muestra en la figura
8.18, dande «accesa» implica que el usa de la salida de la camara esta controlada
mediante una contrasefia especial.
Personaies
+Jugodor
+Protogonista
+Antagonista
+Papelde$oporte
ana lis is) se clasifican de una manera que los empaquete como una agrupaci6n - lJa-
mada un paquete de analisis-, a la cual se Ie asigna un nombre representativo.
Para ilustrar la utilizaci6n de paquetes de anal isis considerese el videojuego que
se present6 parrafos atras. Al desarrollar el modele de analisis para el videojuego se
obtiene un gran numero de clases. Algunas se enfocan en el ambiente del juego; par
Un poquete se u~liz(] ejemplo, las escenas visuales que el usuario ve mientras se desarrolla el juego.
para ensomblar uno Clases como Arbol, Paisaje, Camino, Pared, Puente, Edificio, EfectoVisual,
coleccion de closes podrian estar dentro de esta categoria. Otras se enfocan en los personajes dentro del
relocionodos. juego al describir sus caracteristicas fisicas, acciones y restricciones. Se podrian defi-
nir clases como Jugador (la cual se describi6 can ante riori dad I. Protagonista,
Antagonista y PapelesdeSoporte. Ademas, otras describen las reglas del juego:
como navega el juga dar a traves del ambiente. Aqui son candidatas clases como
ReglasDeMovimiento y RestriccionesEnAcci6n. Pueden existir muchas otras
categorias. Estas clases pueden representarse como los paquetes de analisis que se
muestran en la figura 8.19.
EI signa de mas que precede al nombre de la clase de analisis en cada paquete
indica que las clases tienen visibilidad publica y que, par 10 tanto, son accesibles
desde otros paquetes. Aunque no se muestran en esta figura, hay otros simbolos que
pueden preceder a un elemento dentro de un paquete. Un signa de menos indica que un
elemento esta oculto de todos los otros paquetes, y un simbolo # indica que un ele-
mento es accesible 5610 a las clases contenidas dentro de un paquete dado.
Los diagramas de clase, las tarjetas indice CRC y otros modelos orientados a las cla-
ses tratados en la secci6n 8.7 representan elementos estaticos del modele de anali-
CAPITULO 8 MODELADO DEl ANAuSIS 235
, Como se sis. Ahora es tiempo de hacer una transici6n al comportamiento dinamico del siste-
model. I. m a 0 producto. Para lograrlo el com portam ien to del sistema debe presentarse como
nalcion del soft- una funci6n de los elementos especiflcos y el tiempo.
ware a alglln EI modelo de comportamiento indica la fonna en que el software responde,,; a los even-
pento externo?
tos 0 estimulos extemos. En la creaci6n del modele el analista debe realizar los siguien-
tes pasos:
1. Evaluar todos los casos de uso para entender por completo la secuencia de
interacci6n dentro del sistema.
2. ldentificar los eventos que conducen la secuencia de interaccion y entender la
forma en que estos eventos se relacionan con las c1ases especificas.
los (osos de uso se
anolizan poro definir 3. Crear una secuencia para cada caso de uso.
"",los. POlO logrorlo,
4 . Construir un diagrama de estado para eI sistema .
kiI (osos de uso se
exominon con el fin de 5_ Revisar el modele de comportamien to para veriflcar su exactitud y consisten -
eflCootrar los puntas de cia.
interccmbic de
informociol1. Cad a uno de estos pasos se expone en las seccion es sigu ientes.
E! propietarjo Uljljza el teclado para jntroducjr una contrasefta de cuatro digitos. La mn.:.
trasefta se compara can !a conlraselia yalida alm acenada en el sistema 5i la contraselia
es incorrecta, el pan el de control emjtira un sonido por una sola vez y se reiniciara para
esperar otra entrada. 5i la contraselia es correcta, el panel de control esperara 1a acci6n
posterior.
Las partes subrayadas del escenario del caso de usa indican eventos. Se debe iden-
ti fi car a un autor para cada evento; la informaci6n intercambiada se debe anotar, y
cua lquier condici6n 0 restricci6n debe registrarse.
Como ejem plo de un even to tipico, consi derese la Frase subrayada del caso de uso
"el propietario utiliza el teclado para introducir una cont rasei'ia de cuatro digitos". En
el contexte del modele de analisis, el objeto, propietario," transmi te un evento al
25 En este ejemplo se asume que cada usuario (propietario) que interactua con HogarSeguro tiene una
contrasena de identjficaci6n y que, por 10 tanto, es un objeto legitimo.
236 PARTE DOS pRAcnCA DE LA tNGENIERiA DEL SOF1WARE
26 Los diagramas de estado presentados en la secci6n 8.~.3 muestran el estado del sistema. La expo-
sicion en esta secci6n se enfocarit al estado de cada clase dentro del modelo de anitlisis.
CAPITULO 8 MODELADO DEL ANALlSIS 237
r--
-
Contrasefia = incorrecta
y numeroDelntentos < Intentosmaximos
L
-- Golpe Lectura Comparacion numeroDelntentos >
de tecla Intentosmaximos
Contrasena
r-- introducida Hacer: validar
Contrasena Contrasena = correcta
Seleccion
I--
estos estados activos . En la flgura 8.20 se ilustra un diagrama de estado para la clase
PaneldeControl en la funcion de seguridad de HogarSeguro.
Cada flecha en la figura 8.20 representa una transicion desde un estado activo de
una clase hasta otro. Las etiquetas mostradas para cad a flecha representan el even-
to que dispara la transicion. Aunque el modelo de estado activo proporciona un dis-
cernimiento activo de la "historia de vida" de una c1ase, es posible especificar infor-
macion adicional para proporcionar mayor profundidad en la comprension del com -
portamiento de una c1ase. Ademas de especificar el evento que ocasiona la transi -
cion, el analista puede especiflcar una guardia y una accion [CHA93]. Una guardia es
una condicion booleana que debe satisfacerse para que ocurra !a transicion. Por
ejemplo, la guardia para la transicion desde el estado de "\ectura" al est ado de "com-
AMerencio de un paracion" de la figura 8.20 se puede determinar al examinar el caso de uso:
diograma de eslodo
que represento el si (introducci6n de contrasena =4 dfgitos), entonces comparar con contrasena almacenada
comportomienlo sin
mencionar las closes
involucrodos, un En general, la guardia para una transicion por 10 regular depende del valor de uno 0
diogmma de secuencio mas atributos de un objeto. En otras palabras, la guardia depende del estado pasivo
represento el delobjeto.
comporlomienlo 01 Una acd6n sucede de manera concurrente con la transicion del estado 0 como
describir10 formo en
consecuencia de este, y por 10 general implica una 0 mas operaciones (responsabili -
que las closes se
mueven de estodo a dades) del objeto. Por ejemplo, una accion conectada con el even to contrasefja intro-
"tudo. ducida (figura 8.20) es una operacion llamada ValidarContrasena( ) que da acceso a
238 PARTE DOS pRAcnCA DE LA iNGENIERfA DEL SOFTWARE
- I Propietoria I
. .. Sistema
lislo
r
,
CD
Contrasena introducido
I Panel de control I
lecture
~
,
Solicitud de busqueda
,
,
,
....L,
Sensor
,
,
,
,
,
, Comparoci6n I I ,
, , ,
, Resultado
,
, numerDe'ntentos > > ~
Contrasena = correcto .1. Solicitud de activacion
, Intentosm6ximos
,
, Temporizador >
Cerrado
,
, A Tiempocerrodo
,
, , ,
, , ,
, ,
, Selecdon
,
, ,
I
Activaci6n exitosa
, , Activaci6n exitoso
un objeto de contrasefia y realiza una comparacion digito par digito para validar 1a
contrasena introducida.
Diagramas de secuencia. El segundo tipo de representacion de comportamien-
to, Hamada un diagram a de secuencia en UML, indica como los eventos causan tran-
siciones de objeto a objeto. Una vez que se han identificado los eventos al examinar
un caso de usa, el modelador crea un diagrama de secuencia: una representacion de
c6mo los eventos causan un flujo de un even to a otro como una funci6n del tiempo.
En esencia, eJ diagrama de secuencia es una versi6n abreviada del caso de uso.
Representa c1ases clave y eventos que causan que el comportamiento Ouya de clase
a clase.
En la figura 8.21 se ilustra un diagrama de secuencia parcial de la funci6n de
seguridad de HogarSeguro. Cada Oecha representa un even to (derivado de un caso
de uso) e indica como el even to canaliza el comportamiento entre los objetos de
HogarSeguro. EI tiempo se mide de manera vertical (hacia abajo), y los rectimgulos
verticales delgados representan el tiempo invertido en procesar una actividad. Los
est ados se pueden mostrar a 10 largo de una linea de tiempo vertical.
EI primer evento, sistema /isto, se deriva del ambiente externo y canaliza el COffi-
portamiento a un objeto de propietario. EI propietario introduce una contrasena. Se
pasa un even to de solicitud de bUsqueda al sistema, el cual busca la contrasefia en
una base de datos simple y regresa un resultado (encontrado 0 no enconlrado) al
PaneldeControl (ahara en el estado de comparacion). Una contraseiia valida resul·
CAPiTuLo 8 MODELADO DEL ANAuSIS 239
89 RlsyMEN
EI objetivo del modelado del anal isis es crear una varied ad de representaciones que
muestran los requisitos del software para la informaci6n, la funci6n y el comporta -
miento. Esto se logra aplicando dos diferentes filosofias de model ado (pero poten-
cialmente complementarias): el anal isis estructurado y el analisis orientado a obje-
tos. El analisis estructurado considera al software com o un transformador de in for-
27 Las herramientas mencionadas aqui son una muestra de esta categoria. En la mayoria de los casos
los nombres estan registrados par sus respectivos desarrolladores.
240 PARTE DOS pRAcnCA DE LA INGENIERiA DEL SOf1WARE
maci6n. Este ayuda al ingeniero de software a identiflcar los objetos de datos, sus
relaci.ones y la manera en la cual estos objetos de datos se transforman mientras fiu-
yen a traves de las funciones de procesamiento del software . EI analisis orientado a
objetos exam ina un dominic de problema definido como un conjunto de casos de
uso en un esfuerzo por ex traer clases que deflnen el problema. Cada clase tiene un
conjunto de atributos y operaciones. Las clases esttm relacionadas entre si en una
variedad de formas diferentes y se moldean mediante la aplicacion de diagramas de
UML. EI modele de am\lisis 10 componen cuatro elementos de modelado: modelos
basados en escenarios, modelos de flujo, modelos basados en clases y modelos de
comportamiento.
Los modelos basados en escenarios muestran los requisitos del software desde el
punto de vista del usuario. EI caso de usc - una descripcion narrativa 0 basad a en
una plantilla de una interaccion entre un actor y el software- es el elemento pri-
mario del model ado. EI caso de usc, derivado durante la obtencion de requisitos,
define los casos clave para una funcion 0 interaccion especifica. EI grado de forma-
lidad y detalle del caso de usc varia, pero el resultado final proporciona la entrada
necesaria a las otras actividades de model ado del analisis. Los escenarios tambien
pueden describirse por medio de un diagrama de actividad: una representacion gra-
fi ca del tipo de un diagrama de flujo que muestra el flujo del procesamiento dentro
de un escenario especiflco. Los diagramas de carril i1ustran la forma en que el flujo
de procesamiento incumbe a varios ac tores 0 clases.
Los modelos de flujo se enfocan en el flujo de objetos de datos con forme las fun -
ciones de procesamiento los transforman. Los modelos de fluj o, que se derivan del
anal isis estructurado, utilizan el diagrama de flujo de datos; esta es una notacion de
modelado que muestra la manera en que una entrada se transform a en una salida
conforme los objetos de datos se mueven a traves del sistema. Cada funcion del soft-
ware que transforma datos se describe mediante una especiflcaci6n del proceso 0
narrativa. Ademas del flujo de datos, este elemento de model ado tam bien muestra
el fluj o de control (una representacion que ilustra la forma en que los eventos afec-
tan el comportamiento del sistema) .
EI modelado basado en cJases utiliza informacion derivada de elementos de
model ado orientado al fluj o y basado en escenarios para extraer clases candidatas,
atributos y operaciones de las narrativas basadas en texto. Se establecen los crite -
rios para la definicion de una cJase. La tarjeta indice clase-respon sabilidad-colabo-
rador puede usarse en la definicion de relaciones entre las clases. Ademas, se puede
aplicar una variedad de notaciones de modelado en UML para defl nir jerarquias,
reJaciones, asociaciones, agregaciones y dependencias entre las clases. Los paque-
tes de analisis se utili zan para categori zar y agrupar c\ases de manera que sean mas
manejables para los sistemas gran des.
Los primeros tres elementos del model ado del analisis proporcionan una vision
estatica del software. Los modelos de comportamiento muestran un desempeno
dinamico. EI modele de comportamiento utiliza la entrada de elementos basad os en
CAPITULO 8 MODELADO DEL ANAuSIS 241
[ABB83] Abbott, R., "Program Design by Informal English Descriptions", en CACM, vol. 26, num.
11. noviembre de 1983, pp. 892 -894
IAMB95] Ambler, S., "Using Use-Cases", en Software Development, julio de 1995, pp. 53-61.
[ARA89] Arango, G. y R. Prieto-Diaz, "Domain Analysis: Concepts and Research Directions", en
Domain Analysis: Acquisition oJReusable Information Jor Software Construction, (Arango, G. y
R. Prieto-Diaz, eds.J. IEEE Computer Society Press, 1989.
[ARL02j Arlow, J. e 1. Neustadt, UML and the Unified Process, Addison-Wesley, 2002.
[BER931 Berard. E. v., Essays on Objetc-Oriented Software Engineering, Addison-Wesley, 1993.
IB0086] Booch, G., "Object-Oriented Development", en lEE Trans. Software Engineering, vol. SE-
12, num. 2, febrero de 1986, pp. 211ff.
fBUD96j Budd, T, An Introduction to Objetc-Oriented Programming, 2a. ed., Addison-Wesley,
1996
[CAS89] Cashman, M., "Object-Oriented Domain Analysis", en ACM Software Engineering Notes,
vol. 14, num. 6, octubre de 1989, p. 67.
[CHA93] de Champeau x, D., D. Lea y P. Faure, Object -Oriented System Development, Addison-
Wesley. 1993.
[CHE77] Chen, P., The Entity-Relationship Approach to Logical Database Design, QED Information
Systems, 1977.
[COA91] Coad, P. y E. Yourdon, Object-Oriented Analysis, 2a. ed., Prentice -Hall, 1991.
[COC01J Cockburn, A., Writing Effective Use Cases, Addison-Wesley, 2001.
[DAV93j Davis, A., Software Requirements: Objects, Functions and States, Prentice-Hall, 1993.
[DEM79] DeMarco, T, Structured Analysis and System Specification, Prent ice-Hall, 1979
[FIR93] Firesmith, D. G., Object-Oriented Requirements Analysis and Logical Design, Wiley, 1993.
[LET03] Lethbridge , T, comunicaci6n personal sobre el analisis del dominio, mayo de 2003.
[OMG03] Object Management Group, OMG Unified Modeling Language Specification, version
1.5, marzo de 2003, disponible en http://www.rational.com/um!/resources/documenta-
tion/.
[SCH02l Schmuller, 1., Teach YourseJfUML in 24 Hours, 2a. ed., SAMS Publishing 2002.
[SCH98] Schneider, G. y J. Winters, Applying Use Cases, Addison-Wesley, 1998.
[STR88] Stroustrup, B., "What is Object-Orien ted Programming?", en IEEE software, vol 5, num.
3, mayo de 1988, pp. 10-20.
[TAY90] Taylor, D. A., Object-On·ented Technology: A Manager's Guide, Addison-Wes!ey, 1990.
[THAOO] Thal heim, B., Entity Relationship Modeling, Springer-Ve rlag, 2000.
]TIL93] Ti!lmann, G., A Practical Guide to Logical Data Modeling, McGraW-Hill, 1993.
[UML03] The UML Cafe, "Customers Don't Print Themselves", disponible en http://www.
theumicafe.com/a0079.htm, mayo de 2003.
[WIR90] Wirfs-Brock, R., B. Wilkerson y L. Weiner, Designing Object-Oriented Software, Prentice-
Hall, 1990 .
8.2. Un analisis practico es aquel en el eua! el modele "debe enfocarse en los requisitos que
son visibles dentro de los domini6s del problema 0 del negocio". ,:.Cuaies tipos de requisitos no
son visibles en estos dominios? Dar algunos ejemplos.
8.3. ,-Cual es el prop6sito del analisis del dominio? GComo se relaciona con el concepto de los
patrones de requisitos?
8.4. En unas cuantas !ineas, tratese de describir las diferencias primordiales entre el analisis
estructurado y el amllisis orienta do a objetos.
8.5 ..... Es posible desarrollar un modelo de analisis eficaz sin desarrollar los cuatro elementos
que se muestran en 1a figura 8.3? Explicar la respuesta.
8.6. Sup6ngase que han pedido construir uno de los siguientes sistemas.
a) Un registro de cursos basado en red para una universidad.
b) Un sistema procesador de 6rdenes basado en Internet para una tienda de computadoras.
C) Un sistema simple de facturaci6n para un negocio pequeno.
d) El software que reemplace un Rolodex y que se encuentre dentro de un telefono inalam-
brico.
e) Un libro de cocina automatico que este construido dentro de un horno electrico 0 de
microondas.
Selecci6nese el sistema que se considere interesante y describanse sus objetos de datos, rela-
ciones y atributos.
8.7. Dibujar un modelo al nivel de contexte (DFD de nivel 0) para uno de los cinco sistemas que
se listan en el problema 8.6. Escribir una narrativa del procesamiento para el sistema al nivel de
contexto.
8.8. Utilizar el DFD al nivel de contexte desarrollado en el problema 8.7 para dibujar los dia-
gramas de flujo de los niveles 1 y 2. Para comenzar, utilicese un "anal isis gramatical" en la
narrativa del procesamiento al nivel de contexto. Recuerdese especificar todo el fluido de infor-
macion mientras rotula todas las flechas que se encuentran entre las burbujas. 0sense nombres
significalivos para cada transformaci6n.
8.9. Desarr61lense especificaciones de control (EC) y especificaciones de proceso (EP) para el
sistema que seleccion6 en el problema 8.6. Tratese de que el modele sea 10 mas completo posi-
ble.
8.10. El departamento de obras publicas de una ciudad grande ha decidido desarrollar un sis-
tema de rastreo y reparaci6n de baches basado en la Web (SRRB). Se incluye la siguiente des-
cripci6n:
Los ciudadanos pueden entrar al siUo Web y reportar la ubicaci6n y severidad de los
baches. Cuando estos se reportan entran a un "sistema de reparacion del departamento de
obras publicas", donde se les asigna un numero de identificaci6n, junto con la direccion de la
calle, el tamafto (en una escala de 0 a 10), la ubicaci6n (en la orilla de la calle, en medio,
etcetera), el distrito (determinado por la direcci6n de la calle), y la urgencia de Ja repara-
cion (determinada por el tamafto del bache). Los datos de la orden de trabajo estan aso-
ciados con cada bache e incluyen la ubicacion y el tamafto del bache, numero de identifi-
caci6n de la reparaci6n, cantidad de personal necesario, horas aplicadas a la reparaci6n,
estado del bache (trabajo en progreso, reparado, reparado en forma temporal, no repara-
do), cantidad de material de relleno utilizado, y costo de!a reparacion (calculo de las horas
aplicadas, numero de personas, material y equipo utilizados). Por ultimo, se crea un archi-
vo de danos para registrar informaci6n sobre averias reportadas debido a los baches, el
cual incluye nombre del ciudadano, direcci6n, numero telef6nico, tipo de dano, precio del
dano en doJares. El SRRB es un sistema basado en la web; todas las peticiones se hacen
en forma interactiva.
Con base en una notacion de analisis estructurada, desarrolle un modelo de analisis para eJ
SRR6.
CAPiTULO 8 MODELADQ DEL ANAUS(S 243
8. 15. Desarrollar un conj unto completo de tarjetas indice del modele CRC para el sistema SRRB
presentado en el problema 8.10.
8. 16 . Encabezar una revision de [as tarjetas indice de CRC con sus colegas. iCuantas clases
adicionaies, responsabilidades y colaboradores fueron agregados como consecuencia de la revi-
si6n?
8. 17. Describir la diferencia entre una asociaci6n y una dependencia para una clase de anali-
sis.
8.IB. iQUe es un paquete de analisis y c6mo debe utilizarse?
B. 19 . .!oDe que mane ra di fiere un diagrama de estado para c1ases de ana l isis de los diagramas
de estado presentados para el sistema completo?
Se han pubJicado docenas de Iibros sobre analisis estructurado. En la mayoria se trata el tema
de una manera adecuada, pero 5610 en unos cuantos se presenta un trabajo en verdad exce-
lente. DeMarco y PI auger (Structured Analysis and System Specification, Pearson, 1985) es un cJa-
sica que sigue siendo una buena introducci6n a la notaci6n basica. Los Jibros de Kendal y
Kendal (Systems Anatysis and Design, 5a. ed. , Prentice-Hall, 2002) y Hoffer et al. (Modern Systems
Anatysis and Design, Addison-Wesley, 3a. ed., 2001) son referencias valiosas. Ellibro de Yourdon
(Modern Structured Ana!'ysis, Yourdon-Press, 1989) sobre el tema se conserva entre las publica-
ciones mas completas a la fecha.
Allen (Data Modeling Jor Everyone, Wrox Press, 2002), Simpson y Witt (Dala Modeling
Essentials, 2a. ed., Coriol is Group, 2000), Reingruber y Gregory (Data Modeling Handbook, Wiley,
1995) presen tan guias detalladas para crear modelos de datos relacionados con la ca lidad
industriaL Un interesante libro de Hay (Data Modeling Patterns, Dorset House, 1995) presenta
patrones de modelos de datos tipicos que se encuentran en muchos negocios diferentes. Un tra-
tamiento detallado del modelado del comportamienlo puede encontrarse en Kowal (Behavior
Models: SpeciJjting User's Expeclations, Prentice-Hall, 1992).
Los casos de usa son 1a base del anal isis orientado a objetos. Los libros de Bittner y Spence
(Use Case Modeling, Addison-Wesley, 2002), Cockburn [COC01 LArmour y Miller (Advanced Use-
Case Modeling: Software Systems, Addison-Wesley, 2000) y Rosemberg y Scot (Use-Case Driven
Object Modeling with UML: A Practical Approach, Addison-Wesley, 1999) proporcionan una guia
valiosa en la creaci6n y usa de este importante mecanismo de representacion y lagro de reque-
rimi entos.
Arlow y Neustadt han escrito apreciables analisis del UML [ARL02], Schmuller [SCH02l,
Fowler y Scott (UML Distilled, 2a. ed., Addison-Wesley, 1999), Booch y sus colegas (The UML User
Guide, Addison-Wesley, 1998) y Rumbaugh y sus cO legas (The Unified Modeling Language
ReJerence Manual, Addison-Wesley, 1998).
Los metodos de analisis y diseiio que apoyan el proceso . unificado los explica Larman
(Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified
process, 2a. ed. ;"" Prentice-Hall, 2001), Dennis y sus cOlegas (System Analysis and Design: An
Object-Oriented Approach with UML, Wiley, 2001), y Rosenberg y Scott (Use-Case Driven Objecl
Modeling with UML, Addison-Wesley, 1999), Balcer y Mellor (Executable UML: A FoundationJor
244 PARTE DOS pRACTICA DE LA INGENIERlA DEL SOFlWARE
Model Driven Architecture, Addison-Wesley, 2002) exponen la semimtica general del UML, los
modelos que se pueden crear, y una forma de considerar el UML como un lenguaje ejecutable.
Starr (Executable UML: How Io Build Class Models, Prentice-Han, 200 I) ofrece una guia uti! y
sugerencias detalladas para crear clases de diseiio y analisis efectivos.
En Internet se dispone de una gran varied ad de fuentes de informacion sabre el modelado
del analisis. En el sitio SE PA se puede encontrar una lista actuali zada de referencias de la red
que son notables para el model ado del anaJisis:
http: //www.mhhe.com/pressman.