MODELOS DEL PROCESO DEL SOFTWARE
1
MODELOS DEL PROCESO DEL SOFTWARE
2
MODELOS DEL PROCESO DEL SOFTWARE
2
MODELOS DEL PROCESO DEL SOFTWARE
Introducción En el presente módulo se permite entregar un material de apoyo que le permita al alumno alumno poder deinir deinir diagramas propio propios s !omo !omo tam"i# tam"i#n n poder poder entend entender er el mode modela lami mien ento to de diag diagra rama mas s ya e$is e$iste tent ntes es%% y ina inalm lmen ente te se anal anali& i&a a los los 3
MODELOS DEL PROCESO DEL SOFTWARE diagramas que !omponen 'ML y ore!e a!er!amientos a !asos de uso guiados so"re !ómo estos diagramas se usan para modelar sistemas% toda (e& que el Lengua)e de Modelamiento 'nii!ado *'ML + 'niied Modeling Language, es un lengua)e gr-i!o para (isuali&ar% espe!ii!ar y do!umentar !ada una de las partes que !omprende el desarrollo de sot.are/ 'ML entrega una orma de modelar
!osas
!on!eptuales
!omo
lo
son pro!esos de
nego!io
y un!iones de sistema% adem-s de !osas !on!retas !omo lo son es!ri"ir !lases
en
un
lengua)e
determinado%
esquemas
de "ase
de
datos y
!omponentes de sot.are reusa"les/
El lenguaje UML Cualquier rama de ingenier0a o arquite!tura 1a en!ontrado 2til desde 1a!e mu!1o tiempo la representa!ión de los dise3os de orma gr-i!a/ Desde los ini!ios
de
representar
la inorm-ti!a se los
dise3os
1an estado utili&ando de
una 4
orma
m-s
distintas
ormas
"ien personal o
de !on
MODELOS DEL PROCESO DEL SOFTWARE alg2n modelo gr-i!o/ La alta de estandari&a!ión en la manera de representar gr-i!amente un modelo imped0a que los dise3os gr-i!os reali&ados se pudieran !ompartir -!ilmente entre distintos dise3adores/4
•
MODELADO VISUAL Tal !omo indi!a su nom"re% 'ML es un lengua)e de modelado/ 'n modelo es una simplii!a!ión de la realidad/ El o")eti(o del modelado de un sistema es !apturar las partes esen!iales del sistema/ Para a!ilitar este modelado% se reali&a una a"stra!!ión y se plasma en una nota!ión gr-i!a/ Esto se !ono!e !omo modelado (isual/
'ML es adem-s un m#todo ormal de modelado/ Esto aporta las siguientes (enta)as5 6 Mayor rigor en la espe!ii!a!ión/ 6 Permite reali&ar una (erii!a!ión y (alida!ión del modelo reali&ado/ 6 Se pueden automati&ar determinados pro!esos y permite generar !ódigo a partir de los modelos y a la in(ersa *a partir del !ódigo uente generar los modelos,/ Esto permite que el modelo y el !ódigo est#n a!tuali&ados% !on lo que siempre se puede mantener la (isión en el dise3o% de m-s alto ni(el% de la estru!tura de un proye!to/
•
HISTORIA DE UML El lengua)e 'ML !omen&ó a gestarse en o!tu"re de 7889 :7;% !uando Rum"aug1 se unió a la !ompa30a Rational undada por
a!o"son% se unió a Rational y se in!luyeron ideas suyas/ Estas tres personas son !ono!idas !omo los ?tres amigos?/
Adem-s%
este
lengua)e
se
a"rió
a
la
!ola"ora!ión
de
otras empresas para que aportaran sus ideas/ Todas estas !ola"ora!iones !ondu)eron a la deini!ión de la primera (ersión de 'ML/
5
MODELOS DEL PROCESO DEL SOFTWARE •
¿Qué e UML! El Lengua)e 'nii!ado de Modelado prees!ri"e un !on)unto de nota!iones y diagramas est-ndar para modelar sistemas orientados a o")etos% y des!ri"e la sem-nti!a esen!ial
de
lo
que
estos
diagramas
y s0m"olos signii!an/
Mientras que 1a 1a"ido mu!1as nota!iones y m#todos usados para el dise3o orientado a o")etos% a1ora los modeladores sólo tienen que aprender una 2ni!a nota!ión/
Las o")eti(os de 'ML son mu!1os% pero se pueden sinteti&ar sus un!iones5 6 @isuali&ar5 'ML permite e$presar de una orma gr-i!a un sistema de orma que otro lo puede entender/ 6 Espe!ii!ar5 'ML permite espe!ii!ar !u-les son las !ara!ter0sti!as de un sistema antes de su !onstru!!ión/ Construir5 A partir de los modelos espe!ii!a+dos se pueden !onstruir los sistemas dise3ados/ 6 Do!umentar5 Los propios elementos gr-i!os sir(en !omo do!umenta!ión del sistema desarrollado que pueden ser(ir para su utura re+(isión/ Aunque 'ML est- pensado para modelar sistemas !omple)os !on gran !antidad de sot.are% el lengua)e es los sui!ientemente e$presi(o !omo para modelar sistemas que no son inorm-ti!os% !omo lu)os de tra"a)o *workflow , en una empresa% dise3o de la estru!tura de una organi&a!ión y por supuesto% en el dise3o de 1ard.are/ 'n modelo 'ML est- !ompuesto por tres !lases de "loques de !onstru!!ión5 6 Elementos5 Los elementos son a"stra!!iones de !osas reales o i!ti!ias *o")etos% a!!iones% et!/, 6 Rela!iones5 rela!ionan los elementos entre s0/ 6 Diagramas5 Son !ole!!iones de elementos !on sus rela!iones/
•
DIA"RAMAS UML 'n diagrama es la representa!ión gr-i!a de un !on)unto de elementos !on sus rela!iones/ En !on!reto% un diagrama ore!e una (ista del sistema a modelar/ Para poder representar !orre!tamente un sistema% 'ML ore!e una amplia
6
MODELOS DEL PROCESO DEL SOFTWARE (ariedad de diagramas para (isuali&ar el sistema desde (arias perspe!ti(as 'ML ore!e nue(e diagramas en los !uales modelar sistemas/ 6 Diagramas de Casos de 'so para modelar los pro!esos ?"usiness?/ 6 Diagramas de Se!uen!ia para modelar el paso de mensa)es entre o")etos/ 6 Diagramas de Cola"ora!ión para modelar intera!!iones entre o")etos/ 6 Diagramas de Estado para modelar el !omportamiento de los o")etos en el sistema/ 6 Diagramas de A!ti(idad para modelar el !omportamiento de los Casos de 'so% o")etos u opera!iones/ 6 Diagramas de Clases para modelar la estru!tura est-ti!a de las !lases en el sistema/ 6 Diagramas de O")etos para modelar la estru!tura est-ti!a de los o")etos en el sistema/ 6 Diagramas de Componentes para modelar !omponentes/ 6 Diagramas de mplementa!ión para modelar la distri"u!ión del sistema/
Figura 3: Diagrama de casos de uso
7
MODELOS DEL PROCESO DEL SOFTWARE
Figura 4: Diagrama de clases
•
UML o#rece notación $ e%&ntica et&ndar 'ML prees!ri"e una nota!ión est-ndar y sem-nti!as esen!iales para el modelado de un sistema orientado a o")etos/ Pre(iamente% un dise3o orientado a o")etos podr0a 1a"er sido modelado !on !ualquiera de la do!ena de metodolog0as populares% !ausando a los re(isores tener que aprender las sem-nti!as y nota!iones de la metodolog0a empleada antes que intentar entender el dise3o en s0/ A1ora !on 'ML% dise3adores dierentes modelando sistemas dierentes pueden so"radamente entender !ada uno los dise3os de los otros/
8
MODELOS DEL PROCESO DEL SOFTWARE UML no e un Método
•
Aun as0% 'ML no prees!ri"e un pro!eso o m#todo est-ndar para desarrollar un sistema/ Bay (arias metodolog0as e$istentes entre las m-s populares se in!luyen las siguientes5 6 Catalsis5 'n m#todo orientado a o")etos que usiona mu!1o del tra"a)o re!iente
en
m#todos
orientados
a
o")etos%
y
adem-s
ore!e t#!ni!as espe!0i!as para modelar !omponentes distri"uidos/ 6 Objetor 5 'n m#todo de Caso de 'so guiado para el desarrollo% !reado por (ar >a!o"son/ 6 !"laer#Mellor 5 El m#todo para dise3ar sistemas de tiempo real% puesto en mar!1a por Sally S1laer y Ste(en Mellor en dos li"ros de 7887% Ci!los de (ida de O")etos% modelando el Mundo en Estados y Ci!los de (ida de O")etos% Modelando el mundo en Datos *Prenti!e Ball,/ S1laerMellor !ontin2an a!tuali&ando su m#todo !ontinuamente *la a!tuali&a!ión m-s re!iente es el OOA8 report,% y re!ientemente pu"li!aron una gu0a so"re !ómo usar la nota!ión 'ML !on S1laerMellor/ 6 Fusion5 Desarrollado en Be.lett Pa!ard a mediados de los no(enta !omo primer intento de un m#todo de dise3o orientado a o")etos est-ndar/ Com"ina OMT
y
!on tar)etas CRC
y
m#todos
ormales/
*.../1pl/1p/!omusionileteameps/pd, 6 OMT 5 La T#!ni!a de Modelado de O")etos ue desarrollada por >ames Rum"aug1 y otros% y pu"li!ada en el li"ro de gran inluen!ia ?Dise3o y Modelado Orientado a O")etos? *Prenti!e Ball% 7887,/ 'n m#todo que propone an-lisis y dise3o ?iterati(e?% m-s !entrado en el lado del an-lisis/ 6 $ooc"5
Pare!ido
al
OMT%
y
tam"i#n
muy
popular%
la
primera
y
segunda edi!ión de ?Dise3o Orientado a O")etos% !on Apli!a!iones? *
•
'ML Sc(e%a en UML e)tendido 'n GML S!1ema es un do!umento que deine el !ontenido y la estru!tura de un tipo de do!umento GML% es de!ir% des!ri"e los elementos y atri"utos que 9
MODELOS DEL PROCESO DEL SOFTWARE puede !ontener un do!umento y la orma en la que se pueden deinir dentro de una estru!tura )er-rqui!a de un do!umento (-lido/ Dado que GML S!1ema no tiene su propia nota!ión gr-i!a se 1a de!idido utili&ar 'ML/ Sin em"argo% este lengua)e no permite representar dire!tamente estos esquemas% !on lo que ser- ne!esario reali&ar una e$tensión al mismo/
Una *er*ecti+a general de UML •
Una +uelta *or un cao de uo 'na (e& m-s% 'ML es una nota!ión% no un m#todo/ Ho prees!ri"e un pro!eso para modelar un sistema/ Ho o"stante% !omo 'ML in!luye los diagramas de !asos de uso% se le !onsidera estar dotado de una apro$ima!ión al dise3o !entrada en el pro"lema !on los !asos de uso/ El Diagrama de Caso de 'so nos da el punto de entrada para anali&ar los requisitos del sistema% y el pro"lema que ne!esitamos solu!ionar/
•
,ao de Uo $ Diagra%a de Interacción 'n !aso de uso se modela para todos los pro!esos que el sistema de"e lle(ar a !a"o/ Los pro!esos se des!ri"en dentro de el !aso de uso por una des!rip!ión te$tual o una se!uen!ia de pasos e)e!utados/ Los Diagramas de A!ti(idad se pueden usar tam"i#n para modelar es!enarios gr-i!amente/
•
,lae $ Diagra%a de I%*le%entación Conorme se (an en!ontrando los o")etos% pueden ser agrupados por tipo y !lasii!ados en un Diagrama de Clase/ Es el diagrama de !lase el que se !on(ierte en el diagrama !entral del an-lisis del dise3o orientado a o")etos% y el que muestra la estru!tura est-ti!a del sistema/
•
Tarjeta ,R, -,R, card. / Una e)tenión in#or%al de UML Como una e$tensión inormal a 'ML% la t#!ni!a de las tar)etas CRC se puede usar para guiar el sistema a tra(#s de an-lisis guiados por la responsa"ilidad/ Las !lases se e$aminan% se iltran y se reinan en "ase a sus responsa"ilidades 10
MODELOS DEL PROCESO DEL SOFTWARE !on respe!to al sistema% y las !lases !on las que ne!esitan !ola"orar para !ompletar sus responsa"ilidades/
•
Diagra%a de Etado El !omportamiento en tiempo real de !ada !lase que tiene !omportamiento din-mi!o y signii!ati(o% se modela usando un Diagrama de Estado/ El diagrama de a!ti(idad puede ser usado tam"i#n aqu0% esta (e& !omo una e$tensión del diagrama de estado% para mostrar los detalles de las a!!iones lle(adas a !a"o por los o")etos en respuesta a e(entos internos/ El diagrama de a!ti(idad se puede usar tam"i#n para representar gr-i!amente las a!!iones de m#todos de !lases/
•
I%*le%entando el die0o La implementa!ión del sistema trata de tradu!ir inorma!ión desde m2ltiples modelos 'ML en !ódigo y estru!tura de "ases de datos/ Cuando se modela un sistema grande% es 2til ragmentar el sistema en su !apa ?"usiness? *in!luyendo los o")etos de la intera& de usuario,% su !apa de apli!a!ión *in!luyendo los o")etos de implementa!ión,% y su !apa de datos *in!luyendo la estru!tura de la "ase de datos y el a!!eso a o")etos,/
•
I%*le%entando la a*licación
11
MODELOS DEL PROCESO DEL SOFTWARE El Diagrama de Clase se usa para generar una estru!tura "ase del !ódigo en el lengua)e es!ogido/ norma!ión de los diagramas de intera!!ión% estado% y a!ti(idad% puede ore!er detalles de la parte pro!edimental del !ódigo de implementa!ión/
I%*le%entando el die0o de 1ae de Dato
•
La !apa de datos del diagrama de !lase se puede usar para implementar dire!tamente un dise3o orientado a o")etos de una "ase de datos% o% !omo e$tensión de 'ML% puede ser reeren!iado en un diagrama de rela!ión de entidad para m-s an-lisis de rela!iones de entidad/ Est- en el diagrama de rela!ión de entidad *ER diagram% entity relations1ip, el !ual rela!iona entre entidades que pueden ser modeladas "asadas en atri"utos !la(e/ El diagrama de rela!ión de entidad lógi!o ore!e una "ase desde la !ual !onstruir un diagrama 0si!o representando las ta"las y rela!iones a!tuales de la "ase de datos rela!ional/
2ro3ar teniendo en cuenta lo re4uiito
•
Los !asos de uso se utili&an tam"i#n para pro"ar el sistema y (er si satisa!e los requisitos ini!iales/ Los pasos de los !asos de uso (an lle(ando a !a"o para determinar si el sistema est- satisa!iendo los requisitos del usuario/
Un etudio a #ondo de UML Las siguientes se!!iones presentan una (ista m-s detallada al modelado !on 'ML/ 'n sistema de reser(a de aerol0neas simple se (a a usar para mostrar los diagramas y t#!ni!as de modelado !on 'ML/ Se !u"ren los siguientes puntos5 6 Organi&ando tu sistema !on paquetes 6 Modelando !on Casos de 'so% y us-ndolos para a(eriguar los requisitos del sistema 6 Modelando !on Diagramas de Se!uen!ia y Cola"ora!ión 6 Anali&ando y dise3ando !on el Diagrama de Clase% y e$tendiendo 'ML !on la t#!ni!a de las tar)etas CRC 6 Modelando !omportamiento !on Diagramas de A!ti(idad y de Estado 12
MODELOS DEL PROCESO DEL SOFTWARE 6 Modelando !omponentes de sot.are% distri"u!ión e implementa!ión 6 E$tendiendo 'ML !on el dise3o de
•
Modelado de ,ao de Uo El modelado de Casos de 'so es la t#!ni!a m-s ee!ti(a y a la (e& la m-s simple para modelar los requisitos del sistema desde la perspe!ti(a del usuario/
•
Etudiar $ decu3rir lo re4uiito El o")eti(o inal en !ualquier dise3o de sot.are es satisa!er los requisitos del usuario para el sistema/ Estos requisitos pueden ser requisitos de sot.are% requisitos de produ!tos% o requisitos de prue"as/ La meta de !apturar y !ompro"ar los requisitos del usuario es asegurar que todos los requisitos son !ompletados por el dise3o% y que el dise3o es a!orde !on los requisitos espe!ii!ados/ Mu!1as (e!es los requisitos del sistema ya e$isten en orma de do!umentos de requisitos/ Los !asos de uso se utili&an para !orrela!ionar !ada es!enario !on 13
MODELOS DEL PROCESO DEL SOFTWARE los requisitos que !ompleta/ Si los requisitos no e$isten% modelar el sistema a tra(#s de los Casos de 'so% permite el des!u"rimiento de estos requisitos/
•
Organi5ación de Diagra%a de ,ao de Uo Durante el an-lisis de nego!io *"usiness, del sistema% puedes desarrollar un modelo de !aso de uso para este sistema% y !onstruir paquetes para representar los (arios dominios de nego!io *"usiness, del sistema/ Puedes des!omponer !ada paquete !on un Diagrama de Caso de 'so que !ontenga los Casos de 'so de un dominio% !on intera!!iones de a!tor/
•
Un ,ao de Uo *ara cada ecenario El o")eti(o es !onstruir un Diagrama de Caso de 'so para !ada tipo de es!enario dierente en el sistema/ Cada es!enario muestra una se!uen!ia dierente de intera!!iones entre a!tores y el sistema% sin !ondi!iones ?or?/
•
Modelar ecuencia alterna a tra+é de la relación 6E)tiende6 -e)tend. T0pi!amente% uno modela !ada Caso de 'so !on una se!uen!ia normal de a!!iones/ El usuario enton!es !onsidera !ondi!iones ?que si? para !ada paso% y desarrolla Casos de 'so "asados en estas se!uen!ias alternas de e(entos/ Las se!uen!ias alternas se modelan en !asos de uso separados% los !uales est-n rela!ionados !on el !aso de uso original mediante una rela!ión ?E$tiende? *e$tends,/ Las rela!iones E$tiende *e$tends, pueden ser pensadas !omo un !aso de uso equi(alente a 1eren!ia% en el !ual el !aso de uso e$tendido% 1ereda y modii!a el !omportamiento del !aso de uso original/ En 'ML la rela!ión de e$tensión es un elemento espe!ial de modelado% por lo tanto la rela!ión apare!e e$pl0!itamente en las siguientes deini!iones/
•
Eli%inar el %odelado redundante a tra+é de la relación 6Incluir6 -Include. Para eliminar el modelado redundante de "uena parte del !omportamiento que apare&!a en (arios !asos de uso% la parte del !omportamiento puede ser modelada en un !aso de uso separado que est- rela!ionado !on los otros 14
MODELOS DEL PROCESO DEL SOFTWARE !asos de uso mediante la rela!ión ?n!luir? *n!lude,/ La rela!ión n!luir *n!lude, se puede pensar !omo un !aso de uso equi(alente ?o aggregation?/ La relación Include 'na rela!ión in!lude entre dos Casos de 'so indi!a que el !omportamiento deinido en el Caso de 'so a adi!ionar% es in!lu0do en un lugar dentro de la se!uen!ia del !omportamiento reali&ado por una instan!ia del Caso de 'so "ase/ Cuando una instan!ia del Caso de 'so Illega al lugarJ donde el !omportamiento de otro Caso de 'so de"e ser in!lu0do% e)e!uta todo el !omportamiento des!ripto por el Caso de 'so in!lu0do y luego !ontin2a de a!uerdo a su Caso de 'so original/ El Caso de 'so in!lu0do no depende del Caso de 'so "ase/ En este sentido% el Caso de 'so in!lu0do representa !omportamiento en!apsulado que puede ser reusado en (arios Casos de 'so/
•
A$uda en cao de uo *ro3ando el ite%a #rente a lo re4uiito Los Casos de 'so tam"i#n se utili&an para !onstruir s!ripts de prue"a que se usan a su (e& para !ompro"ar que la apli!a!ión satisa!e los requisitos de nego!io y de sistema/
•
Diagra%a de Secuencia El Diagrama de Se!uen!ia es uno de los diagramas m-s ee!ti(os para modelar intera!!ión entre o")etos en un sistema/ 'n diagrama de se!uen!ia se modela para !ada !aso de uso/ Mientras que el diagrama de !aso de uso permite el modelado de una (ista ?"usiness? del es!enario% el diagrama de se!uen!ia !ontiene detalles de implementa!ión del es!enario% in!luyendo los o")etos y !lases que se usan para implementar el es!enario% y mensa)es pasados entre los o")etos/ T0pi!amente uno e$amina la des!rip!ión de un !aso de uso para determinar qu# o")etos son ne!esarios para la implementa!ión del es!enario/ Si tienes modelada la des!rip!ión de !ada !aso de uso !omo una se!uen!ia de (arios pasos% enton!es puedes ?!aminar so"re? esos pasos para des!u"rir qu# o")etos son ne!esarios para que se puedan seguir los pasos/ 'n diagrama de se!uen!ia muestra los o")etos que inter(ienen en el es!enario !on l0neas dis!ontinuas (erti!ales% y los mensa)es pasados entre los o")etos 15
MODELOS DEL PROCESO DEL SOFTWARE !omo (e!tores 1ori&ontales/ Los mensa)es se di"u)an !ronológi!amente desde la parte superior del diagrama a la parte inerior la distri"u!ión 1ori&ontal de los o")etos es ar"itraria/
Diagra%a de ,ola3oración
•
El Diagrama de Cola"ora!ión presenta una alternati(a al diagrama de se!uen!ia para modelar intera!!iones entre o")etos en el sistema/ Mientras que el diagrama de se!uen!ia se !entra en la se!uen!ia !ronológi!a del es!enario que estamos modelando% el diagrama de !ola"ora!ión se !entra en estudiar todos los ee!tos de un o")eto dado durante un es!enario/ Los o")etos se !one!tan por medio de enla!es% !ada enla!e representa una instan!ia de una aso!ia!ión entre las !lases impli!adas/ El enla!e muestra los mensa)es en(iados entre los o")etos% el tipo de mensa)e *sin!róni!o% asin!róni!o% simple% "laning% y ?time+out?,% y la (isi"ilidad de un o")eto !on respe!to a los otros/
An&lii $ Die0o con el Diagra%a de ,lae
•
El Diagrama de Clase es el el diagrama prin!ipal de dise3o y an-lisis para un sistema/ En #l% la estru!utra de
!lases
del
sistema
se
espe!ii!a%
!on
rela!iones
entre
!lases
y estru!turas de 1eren!ia/ Durante el an-lisis del sistema% el diagrama se desarrolla "us!ando una solu!ión ideal/ Durante el dise3o% se usa el mismo diagrama% y se modii!a para satisa!er los detalles de
las
implementa!iones/
7898:8 Dearrollo de Diagra%a de ,lae durante el an&lii 7898:8:8 A*ro)i%ación a un ,ao de Uo guiado En una apro$ima!ión a un Caso de 'so guiado 1a!ia el an-lisis orientado a o")etos% el diagrama de !lases se desarrolla a tra(#s de inorma!ión o"tenida en los Casos de 'so% Diagramas de Se!uen!ia y Diagramas de Cola"ora!ión/ Los o")etos en!ontrados durante el an-lisis son modelados en t#rminos de la !lase a la que instan!ian% y las intera!!iones entre o")etos son reeren!iados a rela!iones entre las !lases instan!iadas/ 16
MODELOS DEL PROCESO DEL SOFTWARE
7898:8;8 E)tenión guiada *or la re*ona3ilidad La t#!ni!a de la tar)eta CRC se usa a (e!es !omo una e$tensión a 'ML para an-lisis guiados por la responsa"ilidad/ Las deini!iones de !lase son reinadas "as-ndose en las responsa"ilidades de !lase y en otras !lases !on las que !ola"ora para !ompletar sus responsa"ilidades/ Cada !lase se representa en una tar)eta 0ndi!e *inde$ !ard,% y los dise3adores esta"le!en los papeles *roles, de las !lases en el sistema para deinir su tra"a)o%
y
!on
qu#
otras
ne!esitan
!ola"orar
para
!ompletar
sus
responsa"ilidades/ Esta inorma!ión se pasa dire!tamente a un diagrama de !lase las responsa"ilidades !oin!iden !on los m#todos de !lase% las !ola"ora!iones se tradu!en en aso!ia!iones entre !lases/
7898;8 Die0o del ite%a con Diagra%a de ,lae Durante el dise3o% el Diagrama de Clase se ela"ora para tener en !uenta los detalles !on!retos de la implementa!ión del sistema/
7898;8:8 Ar4uitectura Multica*a 'na (e& !on!ien!iados del dise3o% esta"le!eremos la arquite!tura del sistema/ Esto in!luye esta"le!er si ser- un sistema simple dise3ado para !orrer en una sola m-quina% un sistema ?t.o+tiered? !onsistente en un !liente y un ser(idor % o un sistema ?multi+tiered? !on o")etos intera& de usuario separados de los o")etos ?"usiness?% separado de la "ase de datos% !ada uno !orriendo en plataormas distintas/
7898;8;8 Die0o de ,o%*onente 'n !omponente es un grupo de o")etos o !omponentes m-s peque3os que intera!!ionan entre ellos y se !om"inan para dar un ser(i!io/ 'n !omponente es similar a una !a)a negra% en la !ual los ser(i!ios del !omponente se espe!ii!an por su intera!e o intera!es% sin ore!er !ono!imiento del dise3o e implementa!ión
internas
del
!omponente/
El desarrollo "asado
en
!omponentes es el pro!eso de ensam"lar la !om"ina!ión !orre!ta de
17
MODELOS DEL PROCESO DEL SOFTWARE !omponentes en la !onigura!ión !orre!ta para lle(ar a!a"o la un!ionalidad deseada para un sistema/
7898;878 An&lii $ die0o 6Iterati+e6 El diagrama de !lase se puede desarrollar en una ?iterati(e as1ion?% a tra(#s de un !i!lo repetido de an-lisis% dise3o e implementa!ión% y despu#s (uelta al an-lisis% para empe&ar el !i!lo de nue(o/ Este pro!eso se suele llamar ?round+ trip engineering?/ El modelado de 1erramientas !omo System Ar!1ite!t K7 puede
a!ilitar
este pro!eso
permiti#ndote
implementar
el dise3o
en
un lengua)e !omo C44 o >a(a% y despu#s traer de (uelta al !ódigo a al diagrama de !lase% autom-ti!amente a!tuali&ando la inorma!ión !ontenida en el diagrama y en el ?underlying repository?/
•
Modelando el co%*orta%iento de la ,lae con Diagra%a de Etado
18
MODELOS DEL PROCESO DEL SOFTWARE Mientras los diagramas de intera!!ión y !ola"ora!ión modelan se!uen!ias din-mi!as de a!!ión entre grupos de o")etos en un sistema% el diagrama de estado se usa para modelar el !omportamiento din-mi!o de un o")eto en parti!ular% o de una !lase de o")etos/
•
Diagra%a de Acti+idad El Diagrama de A!ti(idad es un diagrama de lu)o del pro!eso multi+propósito que se usa para modelar el !omportamiento del sistema/ Los diagramas de a!ti(idad se pueden usar para modelar un Caso de 'so% o una !lase% o un m#todo !ompli!ado/
78<8:8 Uando Diagra%a de Acti+idad *ara %odelar ,ao de Uo Los Diagramas de A!ti(idad ore!en una 1erramienta gr-i!a para modelar el pro!eso de un Caso de 'so/ Se pueden usar !omo un a3adido a una des!rip!ión te$tual del !aso de uso% o para listar los pasos del !aso de uso/ 'na des!rip!ión te$tual% !ódigo% u otros diagramas de a!ti(idad pueden detallar m-s la a!ti(idad/
78<8;8 Uando Diagra%a de Acti+idad *ara %odelar ,lae Cuando se modela el !omportamiento de una !lase% un diagrama de estado de 'ML se suel usar normalmente para modelar situa!iones donde o!urren e(entos asin!róni!os/ El diagrama de a!ti(idad se usa !onado todos o la mayor0a de los elementos representan el desarrollo de los pasos dados por las a!!iones generadas internamente/ De"er0as asignar a!ti(idades a las !lases antes de terminar !on el 19
MODELOS DEL PROCESO DEL SOFTWARE diagrama de a!ti(idad/
•
Modelando ,o%*onente de So#t=are El Diagrama de Componentes se usa para modelar la estru!tura del sot.are% in!luyendo las dependen!ias entre los !omponentes de sot.are% los !omponentes de !ódigo "inario% y los !omponentes e)e!uta"les/ En el Diagrama de Componentes modelas !omponentes del sistema% a (e!es agrupados por paquetes% y las dependen!ias que e$isten entre !omponentes *y paquetes de !omponentes,/
20
MODELOS DEL PROCESO DEL SOFTWARE •
Modelando la Ditri3ución $ la I%*le%entación Los Diagramas de mplementa!ión se usan para modelar la !onigura!ión de los elementos de pro!esado en tiempo de e)e!u!ión *run+time pro!essing elements, y de los !omponentes% pro!esos y o")etos de sot.are que (i(en en ellos/ En el diagrama ?deployment?% empie&as modelando nodos 0si!os y las aso!ia!iones de !omuni!a!ión que e$isten entre ellos/
•
Die0o de 1ae de Dato Relacionale // Una e)tenión in#or%al de UML El Diagrama de Clase presenta un me!anismo de implementa!ión neutral para modelar los aspe!tos de alma!enado de datos del sistema/ Las !lases persistentes% sus atri"utos% y sus rela!iones pueden ser implementadas dire!tamente en una "ase de datos orientada a o")etos/ Aun as0% en el entorno de desarrollo a!tual% la "ase de datos rela!ional es el m#todo m-s usado para el alma!enamiento de datos/
21
MODELOS DEL PROCESO DEL SOFTWARE
a en el Diagrama de Rela!ión de Entidad% el modelador puede empe&ar el pro!eso de determinar !ómo el modelo rela!ional en!a)a y qu# atri"utos son !la(es primarias% !la(es se!undarias% y !la(es e$ternas "asadas en rela!iones !on otras entidades/ La idea es !onstriur un modelo lógi!o que sea !onorme a las reglas de normali&a!ión de datos/
Uo de una (erra%ienta de %odelado El inter!am"io de inorma!ión de dise3o e ideas usando la nota!ión 'ML ser0a 1e!1o en los medios que siempre 1an sido populares5 pi&arras% !uadernos y tro&os de papel por nom"rar algunos/ Pero 'ML se sir(e me)or por una 1erramienta de modelado% la !ual puede ser usada para !apturar% guardar% re!1a&ar% integrar autom-ti!amente inorma!ión% y dise3o de do!umenta!ión/
2roceo de dearrollo Aunque 'ML es "astante independiente del pro+!eso de desarrollo que se siga% los mismos !readores de 'ML 1an propuesto su propia metodolog0a de desarrollo% denominada el %roceso &nificado de Desarrollo'
22
MODELOS DEL PROCESO DEL SOFTWARE
'L -lenguaje de *rogra%ación. 'L signii!a lengua)e eGtensi"le/ Es el primer y 1asta a1ora el 2ni!o lengua)e de programa!ión dise3ado para apoyar la programa!ión de !on!eptos / :7; GL !uenta !on sinta$is y sem-nti!a re!onigura"les por el programador/ Los !omplementos del
com(ilador se
pueden
utili&ar
para
agregar
nue(as
un!iones al idioma/ 'n !on)unto "-si!o de !omplementos implementa un lengua)e imperati(o relati(amente est-ndar/ Los programadores pueden es!ri"ir sus propios !omplementos para implementar anota!iones espe!0i!as de la apli!a!ión% !omo la dieren!ia!ión sim"óli!a % que luego se pueden utili&ar tan -!ilmente !omo !ara!ter0sti!as de lengua)e in!orporadas /
Idio%a GL se deine en !uatro ni(eles dierentes5 •
GL deine !ómo un te$to de entrada se transorma en un -r"ol de an-lisis /
•
GL7 deine un lengua)e "ase !on !ara!ter0sti!as !ompara"les a C 44 /
•
GLK deine la "i"liote!a est-ndar% que in!luye tipos de datos y operadores !omunes/
•
GLR deine un tiempo de e)e!u!ión din-mi!o para GL "asado en GL/
GL no tiene tipos primiti(os ni pala"ras !la(e/ Todos los operadores 2tiles y tipos de datos% !omo enteros o adi!ión% se deinen en la "i"liote!a est-ndar *GLK,/ GL7 es port-til entre dierentes entornos de e)e!u!ión/ Ho e$iste tal garant0a para GLK5 si una CP' parti!ular no implementa la multipli!a!ión de 23
MODELOS DEL PROCESO DEL SOFTWARE !oma lotante% la deini!ión de operador !orrespondiente puede altar en la "i"liote!a est-ndar y si utili&a una multipli!a!ión de !oma lotante puede resultar en un error en tiempo de !ompila!ión/ El programa Bello World en GL se pare!e a lo siguiente5 'tili&ar GL/TEGTNO WriteLn ?Bola Mundo? 'na orma alternati(a en un estilo m-s ade!uado para programas a gran es!ala ser0a5 mportar O GL/TEGTNO O/WriteLn ?Bola Mundo? 'na e)e!u!ión re!ursi(a de a!torial en GLR se pare!e a lo siguiente5 +Q 7 HORTE +Q H *H + 7,/
Sinta)i La sinta$is se deine en el ni(el GL/ La ase GL del !ompilador se puede !onigurar utili&ando un ar!1i(o de des!rip!ión de sinta$is% en el que se deinen propiedades !omo la representa!ión de te$to y la pre!eden!ia de los operadores/ 'n ar!1i(o de sinta$is "-si!o deine anota!iones matem-ti!as !omunes%
!omo
4
para
sumar%
!on
el orden
de
opera!iones
generalmente a!eptado/ El -r"ol de an-lisis se !ompone de tipos de nodos% 9 tipos de nodos de 1o)a *entero% real% te$to y s0m"olo, y U tipos de nodos internos *ini)o% prei)o y "loque,/ •
)os nodos enteros representan un literal entero% !omo K / El signo V se puede utili&ar para espe!ii!ar una "ase distinta de 7% !omo en 24
MODELOS DEL PROCESO DEL SOFTWARE * KV77 ,/ 'n su"rayado de separa!ión se puede utili&ar para me)orar la legi"ilidad% !omo en 7NN / •
)os nodos reales representan n2meros no integrales% !omo K/= / Las nota!iones "asadas y los separadores se pueden utili&ar% !omo para los nodos enteros% por e)emplo 7VF/FFFVE+7 es un literal 7VF/FFFVE+ 7 (-lido/
•
)os nodos
de te*to representan
!ontenidos
te$tuales/ Hormalmente
est-n rodeados de !omillas simples o do"les% !omo ?Bello? o a % pero el ar!1i(o de sinta$is se puede usar para agregar otros separadores% in!luyendo el !ontenido te$tual de (arias l0neas/ Con el ar!1i(o de sinta$is predeterminado% lo siguiente es (-lido GL% independientemente de !ualquier sem-nti!a/ A < 4 ?Bola? Se anali&a !omo5 ni)o *??% S0m"olo *?A?,% ni)o *?4?% S0m"olo *?,% te$to *?Bola?,,,
Se%&ntica de 'L La ase GL se deine !omo una se!uen!ia de opera!iones en el -r"ol de an-lisis de GL/ Estas opera!iones son propor!ionadas por (arios plug+ins del !ompilador% que se a!ti(an en un!ión de la orma del -r"ol de an-lisis/ Las !onstru!!iones espe!iales% translate y translation % son translation por un plug+in dise3ado para a!ilitar la es!ritura de otros plug+ins/ La !onstru!!ión de quote genera un -r"ol de an-lisis/ Aqu0 es !ómo estas anota!iones se pueden utili&ar para implementar un plug+in llamado XeroRemo(al que elimina las adi!iones y multipli!a!iones superluas por !ero/ 25
MODELOS DEL PROCESO DEL SOFTWARE
Tradu!!ión XeroRemo(al !uando G 4 enton!es De(ol(er G !uando G enton!es Regresar parseNtree *, 'n plug+in puede ser in(o!ado en un ar!1i(o entero desde la l0nea de !omandos% o m-s lo!almente en el !ódigo uente usando la nota!ión (ragma % de la siguiente manera5 G5 YDieren!iarZ d *sin *omega T, e$p *+T T,, dT La ase GL7 !ontiene un gran !on)unto de plug+ins% GLSemanti!s % que propor!ionan
a"stra!!iones
datos y de!lara!ión y deini!ión
!omunes de
!omo su"rutina % tipo
(aria"les %
as0
!omo senten!ias
de de
programa!ión estru!turada "-si!a% !omo !ondi!ionales o "u!les/
Ti*o de ite%a La
!ompro"a!ión
de
tipo
GL7
es est-ti!a %
!on !apa!idades
de
programa!ión gen#ri!as que est-n m-s all- de las de idiomas !omo Ada o C 4 4/ Tipos !omo arrays o punteros% que son primiti(os en lengua)es !omo C 44% se de!laran en la "i"liote!a en GL/ Por e)emplo% un tipo de matri& unidimensional podr0a deinirse !omo sigue5 [en#ri!o :Art0!ulo5 tipo Tama3o5 entero; tipo array 'n ti(o gen+rico ,alidado es un tipo gen#ri!o donde una !ondi!ión indi!a !ómo se puede utili&ar el tipo/ Tales tipos no ne!esitan par-metros gen#ri!os/ Por 26
MODELOS DEL PROCESO DEL SOFTWARE e)emplo% se puede de!larar que se ordered un tipo si tiene un operador menor que el siguiente5 Se ordena un tipo si tiene una rela!ión de menos que Tipo gen#ri!o ordenado si A% <5 ordenado Prue"a5 "oolean5 A \< Enton!es es posi"le de!larar una un!ión que es impl0!itamente gen#ri!a porque el tipo ordered es gen#ri!o/ Fun!ión gen#ri!a para el m0nimo de un elemento Fun!ión Min *G5 ordenada, retorno ordenado es /// !al!ula de tipo ordenado /// Regresa Esto
tam"i#n
se
apli!a
a
tipos
gen#ri!os
que
tienen
par-metros%
!omo array / 'na un!ión que !al!ula la suma de los elementos de !ualquier matri& se puede es!ri"ir de la siguiente manera5 Fun!ión Sum *A5 array, return array/tem es Para en //array/Si&e+7 loop Resultado 4 A :;
Lita de argu%ento de +aria3le de ti*o eguro Las un!iones pueden estar so"re!argadas / Se puede de!larar una un!ión para usar un n2mero (aria"le de argumentos usando /// en la lista de par-metros *1istóri!amente% la pala"ra !la(e ot1er ue usada para ese propósito,/ En tal un!ión% /// se puede utili&ar para pasar el n2mero (aria"le de argumentos a otra su"rutina% una un!ión a1ora llamada plantillas @ariadi! 5 Fun!ión gen#ri!a para el m0nimo de H elemento 27
MODELOS DEL PROCESO DEL SOFTWARE
Fun!ión Min *G5 ordenada ///, return ordenada es Resultado5 Min *///, Si G \resultado enton!es Resultado5 G Cuando se llama una un!ión de este tipo% el !ompilador instan!ia re!ursi(amente las un!iones para que !oin!idan !on la lista de par-metros5 E)emplos de uso del Min re!i#n de!larado G5 real5 M0n *7%U% K%=% %K7, 5 entero5 M0n *7% U% % % 7% K, Reducción de la e)*reión> o3recarga del o*erador Los
operadores
pueden
deinirse
utili&ando
la
orma .ritten de
las
de!lara!iones de un!iones/ A !ontinua!ión se muestra el !ódigo que de!larar0a la adi!ión de enteros5 Fun!ión A3adir *G% 5 entero, de(ol(er el entero es!rito G 4 Tales formas escritas pueden tener m-s de dos par-metros/ Por e)emplo% una transorma!ión lineal de la matri& se puede es!ri"ir !omo5 Fun!ión Matri& de retorno lineal *A% <% C5 matri&, es!rita A 4 < C 'na orma es!rita puede utili&ar !onstantes% y tal orma es m-s espe!iali&ada que una orma sin !onstantes/ Por e)emplo5 Fun!ión Equal *A% <5 matri&, retorno "ooleano es!rito A < Fun!ión sHull *A5 matri&, retorno "ooleano es!rito A Fun!ión s'nity *A5 matri&, retorno "ooleano es!rito A 7 El me!anismo se utili&a para implementar todos los operadores "-si!os/ 'na e$presión se redu!e progresi(amente a llamadas de un!ión usando ormas 28
MODELOS DEL PROCESO DEL SOFTWARE es!ritas/ Por esta ra&ón% el me!anismo se denomina reduccin de e*(resin en lugar de so"re!arga del operador/ Iteradore ? editar @ Los
iteradores
GL permiten
a
los
programadores
implementar
tanto
los generadores !omo los iteradores / I%*ortar O GL/'/COHSOLE
terador ntegerterator * +ar out Contador5 integer % Lo.% Big15 integer , ecrito Contador en Lo.//Big1 i Contador5
## Tenga en cuenta .ue no es necesario declarar/ (or.ue declar 0,ar out0 en el iterador ## %or lo tanto/ se "ace a.u1 una declaracin im(l1cita de 2 como un nmero entero 2ara en 7//= la5o O/WriteLn ? ?%
Etado e (itoria del dearrollo GL es el resultado de un largo tra"a)o de dise3o de lengua)e que !omen&ó alrededor de 788K/ El lengua)e ue dise3ado e implementado prin!ipalmente por C1ristop1e de Dine!1in /
Ancetr$ GL7 se inspiró en un gran n2mero de otros idiomas/ En orden ala"#ti!o5
29
MODELOS DEL PROCESO DEL SOFTWARE •
Ada inspiró parte del apoyo a programas a gran es!ala% mane)o de e$!ep!iones % tareas y aspe!tos de apoyo/
•
•
C se utili&ó !omo est-ndar para esperar en t#rminos de tiempo de e)e!u!ión y apoyo a ni(el de m-quina/ GL no requerir- que se e)e!ute una m-quina (irtual/
•
C 44 y la "i"liote!a de plantillas est-ndar demostraron la ne!esidad de un "uen soporte de tipos gen#ri!os% in!luyendo la instan!ia!ión impl0!ita de gen#ri!os *que Ada !are!e,/
•
El rendimiento !ontinuo de Fortran so"re C y C 44 para apli!a!iones de uso intensi(o num#ri!o ayudó a identii!ar qu# !onstru!!iones de lengua)e impedir0an optimi&a!iones 2tiles/
•
>a(a demostró la importan!ia de una gran "i"liote!a de soporte port-til/ Los !ontenedores >a(a tam"i#n mostraron las limita!iones de un enoque no "asado en la programa!ión gen#ri!a/ ntera& !on !ódigo >a(a sigue siendo un desa0o interesante para GL/
Se%&ntica GLR es un lengua)e din-mi!o% originalmente pensado !omo un "a!+end para el !ompilador GL7% de a10 el nom"re% que signii!a tiempo de e)e!u!ión GL/ Comparte la sinta$is "-si!a de GL !on GL7% pero su !omportamiento es mu!1o m-s !er!ano a un lengua)e un!ional% mientras que GL7 est- destinado a "us!ar prin!ipalmente !omo un lengua)e imperati(o/ GLR tiene pr-!ti!amente sólo un operador in!orporado% ?+Q?% que denota una rees!ritura/ La nota!ión a la i&quierda de la rees!ritura se transorma en la nota!ión a la dere!1a de la rees!ritura/ Este me!anismo se utili&a para implementar las nota!iones est-ndar5
30
MODELOS DEL PROCESO DEL SOFTWARE
Si es !ierto enton!es True
Modelo RU2 Es un pro!eso de ingenier0a de sot.are% que 1a!e una propuesta orientada por dis!iplinas para lograr las tareas y responsa"ilidades de una organi&a!ión que desarrolla
sot.are/
Su meta prin!ipal es aegurar la *roducción de o#t=are de alta calidad que !umpla !on las ne!esidades de los usuarios% !on una planea!ión y presupuesto prede!i"le/ ¿2ara 4uién e RU2! Dise3ado para5 ]Proesionales en el desarrollo de sot.are/ ]nteresados en produ!tos de sot.are/ ]Proesionales en la ingenier0a y administra!ión de pro!esos de sot.are/ ¿2or 4ué uar RU2! ]Pro(ee un entorno de pro!eso de desarrollo !onigura"le% "asado en est-ndares/ ]Permite tener !laro y a!!esi"le el pro!eso de desarrollo que se sigue/ ]Permite ser !onigurado a las ne!esidades de la organi&a!ión y del proye!to/ ]Pro(ee a !ada parti!ipante !on la parte del pro!eso que le !ompete dire!tamente% iltrando el resto/ 31
MODELOS DEL PROCESO DEL SOFTWARE ,aractertica •
Dirigido por Casos de 'so5 ]Los !asos de uso son los artea!tos primarios para esta"le!er el !omportamiento deseado del sistema
•
Centrado en la Arquite!tura5 ]La
arquite!tura es utili&ada
para
!on!eptuali&ar% !onstruir% administrar y e(olu!ionar el sistema en desarrollo •
terati(o ]Mane)a
e una
serie
n!remental5 de
entregas
e)e!uta"les
]ntegra !ontinuamente la arquite!tura para produ!ir nue(as (ersiones me)oradas •
Con!eptualmente amplio y di(erso
•
Enoque orientado a o")etos
•
En e(olu!ión !ontinua
•
Adapta"le
•
Repeti"le
•
Permite
medi!iones5
]Estima!ión de !ostos y tiempo% ni(el de a(an!e% et!/
,iclo de Vida $ u Bace
En !uanto a tiempo el !i!lo de (ida de R'P se des!ompone en 9 FASES se!uen!iales% !ada !ual !on!luye !on un produ!to intermedio/
32
MODELOS DEL PROCESO DEL SOFTWARE Al terminar !ada ase se reali&a una e(alua!ión para determinar si se 1a !umplido o no !on los o")eti(os de la misma/ Las ases son5 •
ni!io *n!eption,
•
Ela"ora!ión
•
Constru!!ión
•
Transi!ión/
,oncluione Es -!il prede!ir que 'ML ser- el lengua)e de modelado de sot.are de uso uni(ersal/ Las prin!ipales ra&ones para ello son5 6 En el desarrollo 1an parti!ipado in(estigadores de re!ono!ido prestigio/ 6 Ba sido apoyado por pr-!ti!amente todas las empresas importantes de inorm-ti!a/ 6 Se 1a a!eptado !omo un est-ndar por la OM[/ 6 Pr-!ti!amente todas las 1erramientas CASE y de desarrollo la 1an adaptado !omo lengua)e de modelado/ En resumen% 'ML resuel(e de orma "astante satisa!toria un (ie)o pro"lema del desarrollo de sot.are !omo es su modelado gr-i!o/ Adem-s% se 1a llega+ do a una solu!ión unii!ada "asada en lo me)or que 1a"0a 1asta el momento% lo !ual lo 1a!e toda(0a m-s e$!ep!ional/
33