Beruflich Dokumente
Kultur Dokumente
" $ %
# &'
"
"
(
"
)
+) # , -../
*
# $
A MIS PADRES
RESUMEN
El objetivo del presente trabajo, es aplicar patrones de diseo orientados a objetos, para el anlisis y desarrollo de una Arquitectura de Software en la Facultad de In enier!a Industrial "niversidad #acional $ayor de San $arcos el cual se deno%ina &I#'(A#E' I#)"S'(IA*+, y %edir el i%pacto en el costo de desarrollar el siste%a con patrones y el costo de ,acerlo sin patronesEn la pri%era parte del trabajo, se define los conceptos te.ricos y el escenario en el que se aplican los patrones de diseo, ade%s se incluye una cate ori/aci.n de los patrones %as conocidos en la industria del softwareEn la se unda parte del trabajo se ,ace referencia a los patrones de diseo utili/ados para el desarrollo del siste%a de software &I#'(A#E' I#)"S'(IA*+, donde se procede a esque%ati/arlos y clasificarlos for%al%enteEn la 0lti%a parte del trabajo, se ,ace una descripci.n del siste%a desarrollado, los %.dulos que lo co%ponen, las ,erra%ientas necesarias para su desarrollo- Ade%s se incluye una esti%aci.n del costo del siste%a de software, utili/ando el 1atr.n Infor%ador, y sin su utili/aci.n, para esta esti%aci.n se utili/a el %2todo de 3434$4 5$odelo 3onstructivo de 3ostos6Se incluye, en un ane7a, toda la docu%entaci.n t2cnica detallada del siste%a de software de la I#'(A#E' I#)"S'(IA* de la Facultad de In enier!a Industrial "niversidad #acional $ayor de San $arcos-
D#)I3E )E 34#'E#I)4
)edicatoria ii (esu%en iii Dndice 3ontenido iv Dndice )e Fi uras v Dndice )e 3uadros vii Dndice )e 3.di os viii Introducci.n 1 3apitulo I? El 1roble%a 2 1-1- For%ulaci.n )el 1roble%a 2 1-2- Eustificaci.n 2 1-9- 4bjetivos 9 1-< Fip.tesis 9 3apitulo ii? Funda%entos 'e.ricos < 2Bases 'e.ricas < 3apitulo iii? Arquitectura )el Siste%a 29 9Arquitectura )el Siste%a 29 9-1- 1atrones )e Software "tili/ados 29 9-2- 1atr.n Arquitect.nico )e 9 3apas 29 9-9- 1atr.n Infor%ador 2; 9-<- 1atr.n Sensor 98 9-8- 3o%paraci.n? 4peraci.n '!pica )e Base )e )atos Sin 1atr.n @ 3on 1atr.n Infor%ador 9= 3apitulo iv? )esarrollo Siste%a Intranet Industrial <G <Introducci.n <G <-1- (equeri%ientos <G <-2- >isi.n )el 1royecto <1 <-9- $isi.n )e 1royecto <1 <-<- Alcances )el 1royecto <1 <-8- Especificaciones *en uaje<9 <-;- Funcionalidad )el Siste%a <9 <-:- $etodolo !a <9 <-<- Ferra%ientas 1ara El Anlisis @ )iseo <; <-8- Ferra%ientas 1ara )esarrollo )el Siste%a <= <-;- 3rono ra%a )e 'rabajo 8< 3apitulo >? 3osto )e "tili/ar 1atr.n Infor%ador 8A 8Introducci.n 8A 8-9- E7plicaci.n :; 8-<- Interpretaci.n := 3apitulo >i? 3onclusiones @ (eco%endaciones :A 3onclusiones :A (eco%endaciones =1 Biblio raf!a =2 Closario )e '2r%inos =<
NDICE DE FIGURAS Figura 2.1. Fra%eworH conceptualFigura 2.2. 3iclo de >ida del Software orientado a objetos Figura 2.3. 1atr.n Arquitect.nicoFigura 2.4. "suarios FII "#$S$Figura 2.5. 1atr.n Sin letonFigura 2.6. Ejecuci.n 1atr.n Sin leton Figura 2.7. 1atr.n FaIadeFigura 2.8. Ejecuci.n FaIadeFigura 2.9. 1atr.n 4bserverFigura 2.10. 1atr.n 4bserver Figura 3.1. 1atr.n Arquitect.nico FII "#$S$Figura 3.2. Fi ura de 3lases de 1atr.n Infor%ador Figura 3.3. Base de )atos de $.dulo Biblioteca FII "#$S$ Figura 3.4. Fi ura de 3lases de 1atr.n Sensor Figura 4.1. Interacci.n de "suario con la I#'(A#E' I#)"S'(IA* Figura 4.2 $etodolo !a ("1Figura 4.3. )esarrollo Iterativo Figura 4.4. $odela%iento de 3lasesFigura 4.5. $odela%iento de 3asos de "so 5J)E for -#E'6Figura 4.6. )esarrollo de 3.di o en -#E' 5>isual Studio 2GG96Figura 4.7. $odela%iento de Entidad (elaci.n 5Erwin6Figura 4.8. 3odificaci.n de Base de )atos 5'oad68 ; 1G 12 19 1< 1; 1= 1A 22 2< 2: 9G 9; <2 << <8 <: <: <= <A 8G
<
Figura 4.9. >ista de p ina de *o in Intranet Industrial Figura 4.10. >ista de Fo%e de la Intranet Industrial Figura 4.11. )etalle de #oticias Figura 4.12. >isuali/aci.n de 3ontenido de 3arpeta Figura 4.13. 3rono ra%a de 'rabajo Figura 5.5. Se%anas #ecesarias para co%pletar las operaciones Bsicas Figura 5.6. 3ostos )esarrollo $.dulos Intranet Figura 5.7. 3o%paraci.n 1la/os Esti%ados )esarrollo $.dulos Intranet Figura 5.8. 3o%paraci.n 3ostos Esti%ados )esarrollo $.dulos Intranet
81 81 82 82 89 ;= :1 :2 :9
NDICE DE CUADR S
!a"#a 2.1. 1atrones de )iseo !a"#a 3.1. 1articipantes 1atr.n Infor%ador !a"#a 3.2. 3olaboraciones 1atr.n Infor%ador !a"#a 3.3. 1articipantes 1atr.n Sensor !a"#a 3.4. 3olaboraciones 1atr.n Sensor !a"#a 4.1. )istribuci.n de 1la/os y (ecursos se 0n el ("1 !a"#a 5.1. Factores en esti%aci.n de esfuer/o !a"#a 5.2. Atributos de 3osto !a"#a 5.3.$ Dndice de 3ostos de Software !a"#a 5.4. *!neas de 3.di o por $.dulos 53on 1atr.n6 !a"#a 5.5. *!neas de 3.di o por $.dulos 5Sin 1atr.n6 12 2A 9G 9< <G 89 8; 8= ;G
;1
;9 ;<
!a"#a 5.6. 3uadro 3o%parativo de l!neas de 3.di o 3on "so y Sin "so de 1atr.n Infor%ador !a"#a 5.7. Factores de 3osto !a"#a 5.8. 3onsideraciones de 'ie%pos !a"#a 5.9. 3lculo de Esfuer/o Ajustado y 1roductividad !a"#a 5.10. 3lculo de Esfuer/o Ajustado y 1roductividad !a"#a 5.11. 3lculo de Esfuer/o Ajustado y 1roductividad !a"#a 5.14. 'abla 3o%parativa de Sin 1atr.n versus "so de 1atr.n ;8 ;; ;; ;: ;A ;A :;
NDICE DE C%DIG S
C&'ig( 2.1. I%ple%entaci.n 1atr.n Sin leton C&'ig( 2.2. I%ple%entaci.n 1atr.n FaIade C&'ig( 2.3. I%ple%entaci.n 1atr.n 4bserver C&'ig( 3.1. (efactori/aci.n 1atr.n Infor%ador C&'ig( 3.2. (efactori/aci.n en 3apa Business 1atr.n Infor%ador C&'ig( 3.3. "so 1atr.n Infor%ador C&'ig( 3.4. "so 1atr.n Sensor C&'ig( 3.5. Sin "so de 1atr.n Infor%ador C&'ig( 3.6. Sin "so de 1atr.n Infor%ador C&'ig( 3.7. "so 1atr.n Infor%ador 18 1A 29 99 9< 98 9= 9A 9A <G
IN!R DUCCI%N
)e la %is%a %anera co%o se ,i/o con la introducci.n de partes y patrones reutili/ables en el %bito industrial con el uso de estndares, patrones, partes reutili/ables y l!neas de %ontaje que incre%entaron la productividad industrial a inicios del si lo JJ, el uso de patrones y estructuras recurrentes en el
desarrollo de software se constituye co%o la %ejor for%a de reutili/aci.n siste%tica de estructuras l. icas1ara llevar a cabo la reutili/aci.n de software, se requiere un proceso de
diseo que considere co%o reutili/ar los diseos e7istentes y que or anice e7pl!cita%ente el diseo alrededor de co%ponentes de software e7istentes- *a pro ra%aci.n orientada a objetos satisface los requeri%ientos para el desarrollo de estructuras l. icas reutili/ables)entro de las bondades del uso de patrones en principio, se puede indicar, que su uso si%plifica drstica%ente el proceso de construcci.n de un siste%a de software, reduce los costos de i%ple%entaci.n a trav2s de una infraestructura reutili/able y %ejorar la inte ridad del siste%a as! co%o las verificaciones espec!ficas propias de cada siste%a-
CAPI!U)
I$ E) PR *)EMA
KS4$$E(>I**EG2L *os analistas y desarrolladores de siste%as de software, tienen que disear y construir siste%as %s co%plejos, escalables, y ,acerlos en %enores pla/os de tie%poMEs posible el desarrollo de siste%as de software por %edio de la reutili/aci.n siste%tica de patrones de softwareN M)e que %anera afecta al costo, y a los pla/os de entre a del siste%aN
1.2. +US!IFICACI%N
*os costos operativos para el diseo, anlisis y desarrollo de siste%as de software co%plejos son altos, por esa ra/.n es necesario orientar la
investi aci.n al desarrollo de aplicaciones de software, ,aciendo uso de t2cnicas que posibiliten la reutili/aci.n de estructuras de software-
1.3.
1.3.1.
)efinir estructuras l. icas recurrentes bajo un patr.n, estableciendo de esta %anera %acro esque%as para su reutili/aci.n durante el desarrollo de un siste%a, de for%a tal que se incre%ente la productividad en el desarrollo de software-
1.3.2.
*+E!I, S ESPECFIC S
1- >alidar patrones, y linea%ientos definidos, %ediante el desarrollo del siste%a de la Intranet de la Facultad de In enier!a Industrial "niversidad #acional $ayor de San $arcos2- Evaluar y co%parar el desarrollo de un siste%a de software, con el uso de patrones y sin su uso, para ponderar el i%pacto econ.%ico y a,orro de pla/os en proyectos si%ilares9- )esarrollar un siste%a de software escalable, consistente, inte rado y %odular bajo la reutili/aci.n de patrones de software-
1.4 -IP%!ESIS
1robar que el desarrollo de un siste%a co%plejo de software con patrones arquitect.nicos, y de diseo, es una opci.n t2cnica viable, en el desarrollo de una Intranet para Facultad de In enier!a Industrial "#$S$-
1G
CAPI!U)
2. *ASES !E%RICAS
1ara entrar al te%a de los patrones en software, es necesario definir el escenario en el que 2stos se ubican e interact0an-
2.1. AR.UI!EC!URA
"n concepto, de carcter vinculante con los patrones, es el concepto de arquitecturaSe 0n la IEEEOS')P1<:1P2GGG
5&1ractica (eco%endada 1ara *a )escripci.n Arquitect.nica )e Siste%as )e Software Intensivos+6 la arquitectura es &la
or ani/aci.n funda%ental de un siste%a inte rado en sus co%ponentes, la relaci.n entre ellos y el %edio, y los principios que establecen su desarrollo y evoluci.n+ KIEEEP1<:1L
11
*a reco%endaci.n IEEE Std 1<:1P2GGG procura establecer una base co%0n para la descripci.n de arquitecturas de siste%as de software, e i%ple%enta para ello dos t2r%inos bsicos, que son? Arquitectura, y 3lientes
)e all! la i%portancia de esta definici.n que incluye a la arquitectura co%o un conjunto de estructuras recurrentes 5>er Fi ura 2-1-6-
12
2.2. CIC)
RIEN!AD
*os objetos, tienen %ayor potencial de reutili/aci.n que los tradicionales co%ponentes de Software- El 14*I$4(FIS$4 per%ite trabajar el %is%o co%ponente en diferentes conte7tos, y la FE(E#3IA per%ite la reutili/aci.n de propiedades y %2todos de una clase abstracta, sin afectar a la clase ori inal- *a E#3A1S"*A3IQ# a!sla la co%plejidad de un subsiste%a del siste%a que lo contiene&*os investi adores, quienes ,an e7plorado objetos, ,an observado, que estos sur en de un proceso alta%ente iterativo- El %odelo fractal trata de describir las fases de esta actividad iterativa, y describe co%o %adurar y reutili/ar co%ponentes de software resultado de esta iteraci.n+ KF44'A2L-
Figura 2.2. 3iclo de >ida del Software orientado a objetos Fu/01/$ A fractal %odel of t,e lifecycles of reusable objects KF44'A2L-
19
En el Fi ura 2-2 se describe el proceso de evoluci.n del software, desde el prototipado ,asta la consolidaci.n del software, y es en el punto de la consolidaci.n que la evoluci.n del software es diri ida por dos necesidades en conflicto? 516 el software debe satisfacer %s requeri%ientos 526 el software debe ser %s reutili/able KC4FA8L*os nuevos requeri%ientos de parte del cliente, se 0n la KIEEEP1<:1L 5ver fi ura 2-16, aaden nuevas clases y operaciones y talve/ todo un conjunto nuevo de clases ,eredadas, el software pasa a trav2s de un proceso de e7pansi.n ,asta satisfacer los nuevos requeri%ientos-
1<
2.3.1.DEFINICI N
El &patr.n+ es una descripci.n del proble%a y la esencia de su soluci.n de tal for%a que 2sta se pueda reutili/ar en diferentes casos- Es, por lo tanto, una soluci.n dada a un proble%a co%0nKS4$$E(G2L Si se utili/an patrones en las etapas te%pranas del ciclo de vida del software orientado a objetos, dis%inuyendo el ciclo de iteraciones en el ciclo de vida del software orientado a objetos- KC4FA8L- Es necesario indicar, que los acad2%icos de las ciencias de la co%putaci.n sealan, que el ciclo de vida del software nunca ter%ina KF44R@4)E(A8L
2.3.2. *ENEFICI S
)is%inuir n0%ero de iteraciones en el ciclo de vida del software KC4F A8L-
2.3.3. RE.UISI! S
*os patrones tienen los si uientes ele%entos KC4FA8L? N(3"r/ 4 C#a5i6i7a7i&0$ "na palabra que resu%a y describa el patr.nI01/07i&0? )escribe el proble%a que resuelve A#ia5$ 4tros no%bres por el que es conocido este patr.n
18
M(1i8a7i&0$ )escribe el a%biente en el cual se aplica este patr.n, definiendo un proble%a y co%o el patr.n lo resuelveE51ru71ura. (epresentaci.n Crfica del patr.n, en el a%plia%ente conocido "$* 5"nified $odelin *an ua e6 Par1i7i9a01/5. 3lases y objetos del patr.n y sus responsabilidadesC(#a"(ra7i(0/5$ )escribe la interacci.n entre las clases y objetos para reali/ar sus responsabilidadesC(05/7u/07ia5$ )escribe co%o el patr.n cu%ple los objetivos definidos I39#/3/01a7i&0$ 3uales son los cuidados, y trucos a to%ar en cuenta cuando se utili/a este patr.nC&'ig( '/ U5(? $uestra fra %entos del c.di o que sirva de referencia t2cnica, al %o%ento de i%ple%entarlo U5(5 7(0(7i'(5$ )escribe co%o se ,a utili/ado este patr.n en casos prcticos Pa1r(0/5 R/#a7i(0a'(5$ Seala los patrones, con los que tienen al 0n rado de asociaci.n-
2.3.4.C)ASIFICACI%N
*os patrones, ,an sido a rupados y clasificados por su nivel de abstracci.n? PA!R NES AR.UI!EC!%NIC S "n patr.n Arquitect.nico, que &e7presa el esque%a funda%ental de estructura or ani/acional para los siste%as de software1roveyendo un conjunto de subsiste%as predefinidos, especifica
1;
sus responsabilidades, e incluye las re las y los linea%ientos, para las or ani/aciones y las relaciones entre ellas+ :*MR96; 5>er Fi ura 2-9-61 A ' (Q # )E A (S " I' E 3' 4 # I34 ? $4 )E *4 )E 9 3A 1 A S
TlayerU 3 apa de 1resentaci.n 1--V 1--V TlayerU 3 apa Business 1--V 1--V TlayerU 3apa de )atos
Figura 2.3. 1atr.n Arquitect.nico- Fu/01/$ Elaboraci.n 1ropia PA!R NES DE DISE< En 1AA8 Eric, Ca%%a, (ic,ard Fel%, (alp, Eo,nson y Eo,n >lissides KC4FA8L, plas%an los conceptos de 3,ristop,er Ale7ander en el libro &Design Patters Elements of Reusable Object-Oriented Soft are!" El aporte de este libro es i%portante ya que estableci. los requisitos que debe poseer un patr.n de
1:
diseo orientado a objetos, y recopil. los patrones de diseo %s bsicosEs en este libro que definen 29 patrones de diseo, y los clasifican en tres cate or!as?
C#a5i6i7a7i&0 Pa1r(0/5 '/ Di5/=(
Pa1r(0/5 '/ Cr/a7i&0 Pa1r(0/5 '/ C(39(r1a3i/01( Pa1r(0/5 E51ru71ura#/5 Abstract Factory Builder Factory $et,od 1rototype Singleton 3,ain of (esponsibility 3o%%ander Interpreter Iterator $ediator $e%ento Observer State Strate y 'e%plate $et,od >isitor Adapter Brid e 3o%posite )ecorator Faade Flywei ,t 1ro7y
!a"#a 2.1. 1atrones de )iseo Fu/01/$ )esi 1attern Ele%ents of (eusable 4bjectP4riented Software KCofA8L
%bito
lobal
la
creaci.n
de
consecuente a,orro de recursos de %e%oria en tie%po de ejecuci.nP(r />/39#($ 'ene%os una clase "suario de la FII, este usuario puede ser un docente, un estudiante o un e%pleado
ad%inistrativo, los tres 0lti%os ,eredan toda funcionalidad y potencia de la clase "suario FII 5>er Fi ura 2-<-6, para instanciar por %edio de un solo punto patr.n Sin letonSe adjunta el dia ra%a "$* del patr.n 5>er Fi ura 2-8-6, el c.di o de i%ple%entaci.n en 3X 5ver 3.di o 2-16, y la fi ura de la ejecuci.n del pro ra%a 5>er Fi ura 2-;-6lobal a las otras clases se usa el
D(7/01/
E51u'ia01/
P/r5(0a# A '3i0i51ra1i8(
In s ta n c ia Clo b al
S i0 g #/ 1 ( 0
7 #5 A #u 30 (
7 #5 D ( 7 / 0 1 /
7 #5 A ' 3i0 i5 1 r a 1 i8 (
6 6 /// )plicacin >ue utli?a Patrn de Diseo 2Singleton2 pu&lic class Singleton)pp { pu&lic static 'oid %ain, string;< args { $suario (a/ * $suario.8et4nstancia,-; $suario (a * $suario.8et4nstancia,-; $suario (a@ * $suario.8et4nstancia,-;
Console.AriteLine, 2BBBBBBPatrn SingletonBBBBBBB2 -; Console.AriteLine, 2BBBCreado: Por Paul LorenaBBB2 -; Console.AriteLine, 22 -; // C'aluamos si es la misma instancia i9, ,(a/ ** (a - DD ,(a@ ** (a/- Console.AriteLine, 2Cs la misma instanciaEEEE2 -; else Console.AriteLine, 25o es la misma instanciaEEEE2 -; // 0eri9icamos la creacin de las instancias Console.AriteLine, 22 -; Console.AriteLine, (a/.('ar-; Console.AriteLine, (a .('ar-; Console.AriteLine, (a@.('ar-; Console.Fead,-; 6
PA!R%N DE C MP R!AMIEN!
FA?ADE
1rovee una interfase unificada a un conjunto de interfaces en un subsiste%a- Este patr.n define una interfase a alto nivel que ,ace al siste%a, %s fcil de utili/ar- KC4FA8L )ividir un siste%a intensivo en subsiste%a ayuda a dis%inuir la co%plejidad- "no de los principales objetivos de los patrones del diseo es dis%inuir la co%unicaci.n y la dependencia entre los subsiste%as- El 1atr.n FaIade provee una si%ple interfase para %ayor facilidad a los de%s subsiste%asP(r />/39#($ 1ara un %.dulo de e*earnin en la Facultad de
In enier!a Industrial, un estudiante desea saber si un curso virtual esta ,abilitado- 1ara reali/ar esto, el Siste%a debe validar a trav2s de otros subsiste%as 5que constituyen en si %is%os otros %.dulos6 la identidad y el ciclo del usuario 5subsiste%as de "suarios6, que el alu%no no adeude libros 5subsiste%a de
Biblioteca6, y obtener la lista de docu%entos disponibles para el alu%no y para un deter%inado cursoA trav2s del patr.n FaIade se puede definir una sola interfase para invocar a todos los siste%as involucrados con una si%ple l!nea de c.di o9ii0irtual.permisoLectura,(alumno-;
Se adjunta el dia ra%a "$* del patr.n 5>er Fi ura 2-:-6, el c.di o de i%ple%entaci.n en 3X 5ver 3.di o 2-26, y la fi ura de la ejecuci.n del pro ra%a 5>er Fi ura 2-=-6-
E5 1 u ' ia 0 1 /
Fa @ a ' /
$ . dulo de e *e a r nin
F II "#$ S $
Ts ub s ys te % U M& ' u #( U5 u a r i( 5
using System; namespace 3aGade { /// <summary> /// Descripcin de Patrn de Diseo 3aGade /// Desarrollado por: Paul Lorena /// Creado: !//"/ ""! /// </summary> // 2Su&Sistema $suarios2 class $suarios { // %7todos pu&lic &ool 0eri9ica4dentidad, )lumno a { Console.AriteLine, 20eri9ica identidad para {"62H a.nom&re -; return true; 6 6 // 2Su&Sistema Ii&lioteca2 class Ii&lioteca { // %7todos pu&lic &ool 5oDe&eLi&ro, )lumno a { Console.AriteLine,20eri9ica li&ros adeudados para2 : a.nom&re -; return true; 6 6 // 2Su&Sistema Documentacin2 class Documentacion { // %7todos pu&lic &ool Separatas0irtuales, )lumno a -
{ Console.AriteLine, 2J&tiene separatas para {"6 2H a.nom&re -; return true; 6 6 class )lumno { // Datos Pri'ados pri'ate string 5om&re; // Constructores pu&lic )lumno, string nom&re { t1is.5om&re * nom&re; 6 // Propiedades pu&lic string nom&re { get{ return 5om&re; 6 6
6 // 2Patrn 3aGade2 class eLearning { // Campos pu&lic string nom&re(curso; pri'ate $suarios usuario * ne+ $suarios,-; pri'ate Ii&lioteca &i&lioteca * ne+ Ii&lioteca,-; pri'ate Documentacion documentacion * ne+ Documentacion,-; // Constructores pu&lic eLearning, string (nom&re(curso { t1is.nom&re(curso * (nom&re(curso; 6 // %7todos pu&lic &ool permisoLectura, )lumno a { // 0eri9ica a1orros i9, Eusuario.0eri9ica4dentidad , a - return 9alse; i9, E&i&lioteca.5oDe&eLi&ro , a - return 9alse; i9, Edocumentacion.Separatas0irtuales , a -return 9alse; return true; 6 pu&lic string (nom&re(curso { get {return nom&re(curso ;6 6 6 /// <summary> /// Cliente 3aGade /// </summary> pu&lic class 3acade)pp { pu&lic static 'oid %ain,string;< args{
Console.AriteLine, 2BBBBBBPatrn 3aGadeBBBBBBB2 -; Console.AriteLine, 2BBBCreado: Por Paul LorenaBBB2 -; Console.AriteLine, 22 -; // Creacion Patrn 3acade eLearning 9ii0irtual * ne+ eLearning,2%antenimiento %ec2-; )lumno (alumno * ne+ )lumno ,2Paul Lorena2-; // Llamada de otros Sus&sistema por 3aGade 9ii0irtual.permisoLectura,(alumno-; Console.Fead ,-; 6 6
PA!R%N DE C MP R!AMIEN!
*SER,ER
)efine una dependencia uno a %uc,os entre los objetos, de tal for%a que cuando uno de los objetos ca%bia de estado, todas sus dependencias son actuali/adas y notificadas auto%tica%ente KC4FA8LEste patr.n de diseo en el %bito de co%porta%iento, es una ,erra%ienta %uy 0til para la co%unicaci.n de ca%bio de estado entre los objetos y los co%ponentesP(r />/39#($ Si la 1anader!a de la FII "#$S$, ,a decidido ,acer una %odificaci.n en el precios de los panetones, o en los pla/os de entre a de producto finales, es necesario que todos los co%ponentes 5clases, y otros subsiste%as6 sean notificados
rpida%ente, sin que el desarrollador se preocupe de i%ple%entar estas co%unicaciones a bajo nivel 5en el %bito de c.di o6, estructural%ente el patr.n 4bserver, notifica a todos los Siste%as de la "niversidad 5(ectorado y Facultades relacionadas6 ca%bio de estado o precio 5ca%bio de l. ica de ne ocio, etc-6 Se adjunta el dia ra%a "$* del patr.n 5>er Fi ura 2-A-6, el c.di o de i%ple%entaci.n en 3X 5ver 3.di o 2-96, y la fi ura de la ejecuci.n del pro ra%a 5>er Fi ura 2-1G-6I1/3 Y #otificar 5 6 "5/r8a'(r Y "pdate 5 6
el
C(01r(#I1/3 Y etState 5 6 Y setState 5 6 "sa E51a'(I1/3 "sa Y etAtributo 5 6 Y setAtributo 5 6 1A'(Q# 4BSE(>E( 1(4@E3'4?FIIP"#$S$ E*AB4(A)4? 1A"* *4(E#A FE3FA? 11[G8[2GG< $4)IFI3A)4? 11[G8[2GG< G--1
using System; using System.Collections; namespace J&ser'er { /// <summary> /// Descripcin de Patrn de Diseo Comportamiento J&ser'er /// Desarrollado por: Paul Lorena /// Creado: !/"#/ ""! /// </summary> a&stract class StocK { // Datos Pri'ados protected string sym&ol; protected dou&le precio; pri'ate )rrayList agentes * ne+ )rrayList,-; // Constructor pu&lic StocK, string sym&olH dou&le precio { t1is.sym&ol * sym&ol; t1is.precio * precio; 6 // %7todos pu&lic 'oid )ttac1, 4n'estor in'estor { agentes.)dd, in'estor -; 6 pu&lic 'oid Detac1, 4n'estor in'estor { agentes.Femo'e, in'estor -; 6 pu&lic 'oid 5oti9y,{ 9oreac1, 4n'estor i in agentes i.$pdate, t1is -; 6 // Propiedades pu&lic dou&le Precio { get{ return precio; 6 set { precio * 'alue; 5oti9y,-; 6 6 pu&lic string Sym&ol { get{ return sym&ol; 6 set{ sym&ol * 'alue; 6 6
// 2ConcreteSu&Lect2
class Paneton : StocK { // Constructor pu&lic Paneton, string sym&olH dou&le precio : &ase, sym&olH precio {6 6 // 2Patrn J&ser'er2 inter9ase 44n'estor { // %7todos 'oid $pdate, StocK stocK -; 6 // 2ConcreteJ&ser'er2 class 4n'estor : 44n'estor { // Datos Pri'ados pri'ate string name; pri'ate string o&ser'erState; pri'ate StocK stocK; // Constructores pu&lic 4n'estor, string name { t1is.name * name; 6 // %7todos pu&lic 'oid $pdate, StocK stocK { Console.AriteLine, 2Comprador {"6 noti9icado cam&io de { :C62H nameH stocK.Sym&olH stocK.Precio -; Console.AriteLine,22-; 6 // Propiedades pu&lic StocK StocK { get{ return stocK; 6 set{ stocK * 'alue; 6 6
precio {/6
/// <summary> /// J&ser'er)pp test /// </summary> pu&lic class J&ser'er)pp { pu&lic static 'oid %ain, string;< args { // Crea )gentes 4n'estor s * ne+ 4n'estor, 2Fectorado $5%S%2 -; 4n'estor & * ne+ 4n'estor, 23)C. )dministracin2 -;
Console.AriteLine, 2BBBBBBPatrn J&ser'erBBBBBBB2 -; Console.AriteLine, 2BBBCreado: Por Paul LorenaBBB2 -; Console.AriteLine, 22 -; // Creacin Patrn J&ser'er // Create stocK Paneton y adLunta )gentes Paneton paneton * ne+ Paneton, 2Paneton2H / "."" -; paneton.)ttac1, s -; paneton.)ttac1, & -; // Cam&io de PreciosH se noti9ica a )gentes paneton.Precio * / "./"; paneton.Precio * / /.""; paneton.Precio * / ".M"; paneton.Precio * / ".NM; Console.Fead,-; 6 6 6
Figura 2.10. Ejecuci.n de 1ro ra%a con 1atr.n 4bserverFu/01/$ Elaboraci.n 1ropia
CAPI!U)
3.
DE 3 CAPAS
1ara el desarrollo de la arquitectura del siste%a Intranet Industrial se utili/a, el patr.n arquitect.nico de las 9 capas 5ver fi urar 9-1-6-
Este patr.n per%ite una visi.n a%plia y fle7ible de toda la distribuci.n de los co%ponentes que poseen la capa de interfase, separada de la l. ica de ne ocio, a su ve/ e7iste la capa de datos*a ventaja de este esque%a arquitect.nico es que per%ite a rupar los co%ponentes del siste%a, en diferentes unidades l. icas funcionales durante el anlisis, el desarrollo, la i%ple%entaci.n y el %anteni%iento)e esta for%a la propia arquitectura, deter%ina la distribuci.n de los co%ponentes, y su a rupaci.n en capas l. icas KB$(A;L-
Asociado
C(39(0/01 /UI 2
Asociaci.n
M&'u#( N
C#a5/5 C(3u0/5
1atr.n Arquitect.nico 3reado por? 1aul *orena *- Fec,a? 21[G8[2GG< $odificado? 2<[G8[2GG<
En la fi ura 9-1-, se define la estructura del Siste%a Arquitect.nico definido por el patr.n arquitect.nico de 9 capas- Se puede distin uir ta%bi2n la e7istencia de co%ponentes o subsiste%as contenidos por las capas K$1*A''G2L4bs2rvese la presencia de los subsiste%as de 1atr.n Infor%ador y el 1atr.n Sensor en la capa de datos y en la capa de #e ocios respectiva%enteEstos patrones se encuentran docu%entados
a%plia%ente en el docu%ento A(S"I'E3'"(A E$1(ESA(IA* FII "#$S$, en la )43"$E#'A3IQ# '\3#I3A del Siste%a de la Intranet Industrial-
Y T property U 1acHa e Y T property U Store Y T property U #a% e P ZpacHa e P Zstore P Zna% e Y Y Y Y #ew 5 T etU T etU T etU 6 1acHa e 5 6 Store 5 6 #a% e 5 6
"tili/a
7#5Da1 aPri3i1 i8 / -/ #9/r Y Be in' ransaction 5 6 Y Build1ara% eterInput 5 6 Y Build1ara% eter4utpu 5 6 Y E7ecute)ataS et 5 6 Y E7ecute#onSuery 5 6 1
"tili/a
G--1
Y T property U ' ransaction ? 4 racle' ransaction Y Y Y Y Be in' ransaction 5 6 3o% % it 5 6 (ollBacH 5 6 T etU ' ransaction 5 6
"tili/a
"tili/a
1--V 7#5Da1 aPri3i1 i8 / SC# Y TpropertyU ' e7t Y TpropertyU #a% e P Zte7t P Zna% e Y #ew 5 6 Y T etU ' e7t 5 6 Y T etU #a% e 5 6 7#5Da1 aPri3i1 i8 / !a"#/ Y #ew 5 6 Y Cet1ara% eter 5 6 Y Add1ara% eterInput 5 6 Y Add1ara% eter4utput 5 6 Y E7cute)ataS et 5 6 Y E7ecute#onSuery 5 6
7#5Da1 aPri3i1 i8 / E01 i1 4 Y ZpacHa e Y Zna% e X ZstoreZrecordset X ZstoreZinsert X ZstoreZupdat-e-Y #ew 5 6 X Cet1ara% eter 5 6 X Add1ara% eterInput 5 6 X Add1ara% eter4utput 5 6 X Insert 5 6 X 3onfi "pdate 5 6 X 3onfi )elete 5 6
$A#EEA)4( )E BAS E )E )A' 4S I#' (A#E' FII "#$S $ 3reado 1or? 1aul *orena * Fec,a? 1G[G8[2GG< $odificado?12[G8[2GG<
Par1i7i9a01/5
C#a5/ cls)ata1ri%itive3onnection cls)ata1ri%itiveFelper R/59(05a"i#i'a' 4btiene o define la cadena de cone7i.n a la Base de )atos 3onstruye los 1ar%etros de acceso a la base de datos, definiendo los tipos espec!ficos para cada proveedor )efine los %2todos y operaciones 5 en2rica%ente6 de la clase para el in reso de los par%etros Esta es una clase en2rica que %e per%ite ar%ar los no%bres de los pacHa es y[o store procedures en la Base de )atos 3lase que establece los no%bres f!sicos de los pacHa es y store procedures en la Base de )atos, ade%s es el punto donde se define el ta%ao de los par%etros de entrada 3lase en2rica para definir #o%bre y >alor 5'ipo, y variable6 de in reso
cls)ata1ri%itive'able
cls)ata1ri%itive1rocedure
cls)ata1ri%itiveEntity
cls)ata1ri%itiveSql
cls)ata1ri%itive'ransaction Fabilita los procedi%ientos transaccionales en las operaciones t!picas de Base de )atos cls)ata1ri%itive'ype3*4B 3lase especifica para definir la lon itud del tipo 3*4B
cls)ata1ri%itiveFelper
cls)ata1ri%itive'able
cls)ata1ri%itive1rocedure
cls)ata1ri%itiveEntity
3lase que e7,ibe sus %2todos a la 3ls)ata1ri%itive 1rocedure para que ar%e los no%bres de los objetos en la Base de datos 5especificando el ta%ao de estos6 3lase en2rica para definir #o%bre y >alor 5'ipo, y variable6 de in reso Esta clase es invocada por la clase cls)ata1ri%itiveFelper, que define si la operaci.n es transaccional o no 3lase invocada por la cls)ata1ri%itive'able para establecer el ta%ao del tipo 3*4B
cls)ata1ri%itiveSql cls)ata1ri%itive'ransaction
cls)ata1ri%itive'ype3*4B
C NSECUENCIAS El c.di o necesario para reali/ar una operaci.n en la base de datos es un c.di o %as co%pacto y claro, con %enos l!neas de c.di o, y ,aciendo uso de operaciones y %2todos con funcionalidad ya conocida*a depuraci.n es %s si%ple ya que al reutili/ar clases se procede a aislar el error, al eli%inar la posibilidad de ,allar un error en las clases reutili/adas- Es decir ,ace%os que el error puntual se convierta en un error siste%tico, de esta %anera es %s fcil repararlo, o detectarlo, y las %odificaciones afectar!an a todos las clases que ,ereden dic,a funcionalidadIMP)EMEN!ACI%N "na ve/ i%ple%entado en el len uaje esco ido, se debe incorporar una capa adicional que per%ita interactuar con el patr.n1or eje%plo en la Fi ura 9-9, se observa < tablas relacionadas, para i%ple%entar el patr.n Infor%ador- En esta confi uraci.n se procede a for%ar la capa adicional, de tal for%a que para cada tabla se debe crear
una clase, y de preferencia a ruparla en un do%inio especifico P #a%espace en 3YY KBS'(4"S'("1A:L, para este caso se establece que el do%inio es i ual al no%bre del %.dulo al cual pertenecen estas tablas? Biblioteca-
Figura 3.3. Base de )atos de $.dulo Biblioteca FII "#$S$ Fu/01/$ Elaboraci.n 1ropia
Proyecto: 4ntranet 45D$S=F4)L 344.$5%S% Capa de Datos para =a&la Solicitud Creado por: Paul Lorena Creado el:"P//"/ ""!
O//De9ino el Dominio o %dulo al >ue pertenece 5amespace 4ntranet.344.Data.Ii&lioteca O// De9ino nom&re de Clase Pu&lic Class clsDatasolicitud O// Qeredo 9uncionalidad del patrn 4n9ormador 4n1erits clsDataPrimiti'eCntity
RFegion 2Properties2 OO// De9ino cada uno de los campos de la ta&la Pri'ate (c(user )s 4nteger Pu&lic Property C($ser,- )s 4nteger 8et Feturn %e.(c(user Cnd 8et Set,Iy0al 0alue )s 4nteger%e.(c(user * 0alue Cnd Set Cnd Property Pri'ate (c(li&ro )s 4nteger Pu&lic Property C(Li&ro,- )s 4nteger 8et Feturn %e.(c(li&ro Cnd 8et Set,Iy0al 0alue )s 4nteger%e.(c(li&ro * 0alue Cnd Set Cnd Property Pri'ate (t(clasi9icacion )s String Pu&lic Property =(Clasi9icacion,- )s String 8et Feturn %e.(t(clasi9icacion Cnd 8et Set,Iy0al 0alue )s String%e.(t(clasi9icacion * 0alue Cnd Set Cnd Property Pri'ate (c(solicitud )s 4nteger Pu&lic Property C(Solicitud,- )s 4nteger 8et Feturn %e.(c(solicitud Cnd 8et Set,Iy0al 0alue )s 4nteger%e.(c(solicitud * 0alue Cnd Set Cnd Property Pri'ate (9(9ec(solicitud )s Date Pu&lic Property 3(3ec(Solicitud,- )s Date 8et Feturn %e.(9(9ec(solicitud Cnd 8et Set,Iy0al 0alue )s Date%e.(9(9ec(solicitud * 0alue Cnd Set Cnd Property Pri'ate (&(atendido )s String Pu&lic Property I()tendido,- )s String 8et Feturn %e.(&(atendido Cnd 8et Set,Iy0al 0alue )s String%e.(&(atendido * 0alue Cnd Set Cnd Property RCnd Fegion O// Constructor . Creo la clase
O// )signo a mi clase 1eredada clsDataPrimiti'eCntity O// los parSmetros constructores Su& 5e+,%yIase.5e+,2&i&lioteca2H 2solicitud2Cnd Su& O// %odi9ico la 9uncion Con9ig4nsert de la clase Iase Protected J'errides Su& Con9ig4nsert,%e.)ddParameter4nput,2'(c(li&ro2H %e.(c(li&ro%e.)ddParameter4nput,2'(c(user2H %e.(c(user%e.)ddParameter4nput,2'(t(clasi9icacion2H %e.(t(clasi9icacionH @"%e.)ddParameter4nput,2'(c(solicitud2H %e.(c(solicitud%e.)ddParameter4nput,2'(9(9ec(solicitud2H %e.(9(9ec(solicitud%e.)ddParameter4nput,2'(&(atendido2H %e.(&(atendidoH /Cnd Su& OO// %odi9ico la 9uncion Con9ig$pdate de la clase Iase Protected J'errides Su& Con9ig$pdate,%e.)ddParameter4nput,2'(c(solicitud2H %e.(c(solicitud%e.)ddParameter4nput,2'(c(li&ro2H %e.(c(li&ro%e.)ddParameter4nput,2'(c(user2H %e.(c(user%e.)ddParameter4nput,2'(t(clasi9icacion2H %e.(t(clasi9icacionH @"%e.)ddParameter4nput,2'(c(solicitud2H %e.(c(solicitud%e.)ddParameter4nput,2'(9(9ec(solicitud2H %e.(9(9ec(solicitud%e.)ddParameter4nput,2'(&(atendido2H %e.(&(atendidoH /Cnd Su& O// %odi9ico la 9uncion Con9igDelete de la clase Iase Protected J'errides Su& Con9igDelete,%e.)ddParameter4nput,2'(c(solicitud2H %e.(c(solicitudCnd Su& Cnd Class Cnd 5amespace
O// Creo la Clase Ii&lioteca Pu&lic Class clsIi&lioteca O// De9ino como miem&ro pri'ado a la 'aria&le (solicitud O// del tipo 4ntranet.344.Data.Ii&lioteca.clsDatasolicitud Pri'ate (solicitud )s 4ntranet.344.Data.Ii&lioteca.clsDatasolicitud O// creo la clase Su& 5e+,O// instancio a (solicitud
%e.(solicitud * 5e+ 4ntranet.344.Data.Ii&lioteca.clsDatasolicitud Cnd Su& O// De9ino la operacin de insercin Su& 9unc(ins(solicitud, ( Iy0al '(c(li&ro )s 4ntegerH ( Iy0al '(c(user )s 4ntegerH ( Iy0al '(t(clasi9icacion )s String%e.(solicitud.C(Li&ro * '(c(li&ro %e.(solicitud.C($ser * '(c(user %e.(solicitud.=(Clasi9icacion * '(t(clasi9icacion %e.(solicitud.4nsert,Cnd Su& O// De9ino la operacin de actuali?acin Su& 9unc(upd(solicitud, ( Iy0al '(c(solicitud )s 4ntegerH ( Iy0al '(&(atendido )s C1ar%e.(solicitud.C(Solicitud * '(c(solicitud %e.(solicitud.C(Li&ro * '(c(li&ro %e.(solicitud.C($ser * '(c(user %e.(solicitud.=(Clasi9icacion * '(t(clasi9icacion %e.(solicitud.$pdate,Cnd Su& O// De9ino la operacin de &orrado Su& 9unc(del(solicitud,Iy0al '(c(solicitud )s 4nteger%e.(solicitud.C(Solicitud * '(c(solicitud %e.(solicitud.Delete,Cnd Su& O// De9ino la operacin de Listado Pu&lic 3unction 9unc(lst(solicitud,- )s DataSet Feturn %e.(solicitud.FecordSet,Cnd 3unction O// De9ino la operacin de o&tener un solo registro Pu&lic 3unction 9unc(get(solicitud,Iy0al '(c(solicitud )s 4nteger- )s DataSet %e.(solicitud.C(Solicitud * '(c(solicitud Feturn %e.(solicitud.JneFecord,Cnd 3unction
C&'ig( 3.2. (efactori/aci.n en 3apa Business 1atr.n Infor%ador Fu/01/$ Elaboraci.n 1ropia C%DIG DE US
1ara utili/ar el 1atr.n Infor%ador para la tabla Solicitud, una ve/ i%ple%entada la clase cls)ataSolicitud- Se procede a utili/ar la clase, si uiendo las si uientes l!neas de c.di o?
<1
producto final ,a sido entre ado, se 0n el len uaje que se utilice se podr!a utili/ar local%ente un controlador de e7cepciones, que da un control 0til, pero %uy puntual sobre un errorEl patr.n Sensor, provee un control en el %bito de toda la aplicaci.n para detectar y canali/ar al error de diferentes %aneras? 1or la %uestra de una pa ina de error t!pico Al%acenado toda la infor%aci.n del error en una base de datos 1roveer otro tipo de lo o al%acena%iento del error 5env!o de %ail al ad%inistrador del siste%a, etc-6 co%o una alternativa del clsico #indo s Application Event Log 5sin e7cluirlo6 1rovee toda la infraestructura para que el desarrollador construya su propia for%a de %anejar los errores de su aplicaci.n-
<2
E51ru71ura.
*a5/A 99#i7a1i(0ED7/91i(0 1atr.n Sensor I#'(A#E' FII "#$S$ 3reado 1or? 1aul *orena * Fec,a? 1G[G8[2GG< $odificado?12[G8[2GG<
Fereda
ED7/91i(0Ma0ag/r
"tili/a
i%ple%enta
IED7/91i(0E3#Pu"#i5F/r
D/6au#1Pu"#i5F/r
i%ple%enta
IED7/91i(0Pu"#i5F/r
Par1i7i9a01/5
C#a5/ ( I01/r6a7/5 BaseApplicationE7ception R/59(05a"i#i'a' Esta es la clase base de e7cepci.n usada para ase urar que todas las e7cepciones proveen un %!ni%o nivel de infor%aci.n conte7tual E7ception$ana erSectionFandler Esta clase es usada para recuperar los par%etros del 1atr.n Sensor 5de un arc,ivo J$*6- Estos par%etros son usados para definir el co%porta%iento del patr.n SensorE7ception$ana er3lase encar ada de publicar los errores del Siste%a )efault1ublis,er Esta clase establece una funcionalidad bsica de al%acena%iento de errores IE7ception1ublis,er IE7ceptionJ%l1ublis,er Interfaces i%ple%entadas por la clase )efault1ublis,er Interfaces i%ple%entadas por la clase )efault1ublis,er
<9
C(#a"(ra7i(0/5
C#a5/ ( I01/r6a7/5 BaseApplicationE7ception C(#a"(ra7i(0/5 Esta clase ,ereda todas sus propiedades y %2todos a todas las de%s clases que se i%ple%entan en este patr.nE7ception$ana erSectionFandler Esta clase es invocada por E7ception$ana er para ,eredar sus propiedades, donde se obtiene los par%etros definidos por el usuario E7ception$ana er3lase encar ada de publicar los errores del Siste%a )efault1ublis,er IE7ception1ublis,erIE7ceptionJ%l1ublis,er Esta clase al%acena los errores en el ]indows Application Evento *o E7posici.n de %2todos y propiedades del 1atr.n Sensor E7posici.n de %2todos y propiedades del 1atr.n Sensor en J$*
C(05/7u/07ia5$ El c.di o necesario para %anejar los errores es definido en una sola l!nea de c.di oI39#/3/01a7i&0$ Incluir en el proyecto la )** E7ception$ana e%ent-dll, y en cada p ina de c.di o incluir la si uiente l!nea?
4mports %icroso9t.)pplicationIlocKs.CTception%anagement
C&'ig( '/ U5(? 1ara utili/ar el 1atr.n Sensor, se procede a ,acer la captura de errores en %anera tradicional, y lue o a re ar la l!nea
E7ception$ana e-1ublis,5Error6
<<
3.5.
C MPARACI%N$
<8
"n desarrollador tiende a escribir este c.di o ,abitual%ente- Estando %s e7puesto a que producir errores, ade%s su le ibilidad es afectada, si otra persona se ,ace car o del %anteni%iento, el c.di o ade%s nos %uestra que ,ay %uc,a redundancia y reescritura de c.di oUS DE PA!R%N INF RMAD R
3on el uso del 1atr.n Infor%ador, el desarrollador solo utili/a 2 l!neas de c.di o para reali/ar la inserci.n de un nuevo re istro en la tabla solicitud de la Base de )atos- >er c.di o 9-;- El c.di o resultado es %uc,o %s co%pacto y le ible-
<;
CAPI!U)
I,$ DESARR ))
SIS!EMA IN!RANE!
INDUS!RIA)
4. IN!R DUCCI%N
*a Intranet Industrial de la FII "#$S$, ,a sido desarrollada sobre la base de los conceptos, patrones arquitect.nicos y de diseos anterior%ente definidos@a que se trata de un siste%a de software co%plejo, el anlisis y desarrollo se encuentra docu%entada detallada%ente en la
)43"$E#'A3IQ# '\3#I3A del Siste%a de la Intranet Industrial, presentado al final del trabajo-
4.1.
RE.UERIMIEN! S
'odos los (equeri%ientos del Siste%a de la I#'(A#E' I#)"S'(IA* estn recopilados en el docu%ento (ES"E(I$IE#'4S I#'(A#E' I#)"S'(IA* de la )43"$E#'A3IQ# '\3#I3A del Siste%a de la Intranet Industrial- *os requeri%ientos por %.dulos, estn especificados en la docu%entaci.n t2cnica de cada %.dulo-
<:
<=
$.dulo de E%presas $.dulo de Bolsa de 'rabajo $.dulo de $ailin $.dulo de una 'ienda En *!nea $.dulo de Encuestas $.dulo de Ad%inistraci.n
Futuras i%ple%entaciones sern soportadas por el Siste%a si se observan la arquitectura, y los linea%ientos definidosEn la fi ura <-1 se observa la
$.dulo de $ailin
$.dulo de E%presas
$.dulo de Auditorio
TaccessU
TaccessU
$.dulo de 3ontactos
TaccessU TaccessU TaccessU TaccessU U5uari( TaccessU $.dulo de Encuestas TaccessU TaccessU TaccessU $.dulo de )ocu%entaci.n $.dulo de Bolsa de 'rabajo
$.dulo de Ad%inistraci.n
$.dulo de "suarios
$.dulo de #oticias
3AS4 )E "S4? $Q)"*4S I#'(A#E' I#'(A#E' FII "#$S$ 3reado 1or? 1aul *orena * Fec,a? G:[G8[2GG< $odificado? G:[G8[2GG<
<A
4.7. ME! D ) GA
*a %etodolo !a a utili/ar para el desarrollo de la intranet, es la establecido por los linea%ientos del (ational "nified 1rocess 5("16, 5ver fi ura <-1-6
("1, es una %etodolo !a, de desarrollo de siste%as co%plejos, que se basa en las si uientes practicas? D/5arr(##( i1/ra1i8(. El producto en el %bito del anlisis, diseo, codificaci.n, y docu%entaci.n iterativaEstas
iteraciones dis%inuyen los &ries os+- 3ada iteraci.n es una entre a del producto 5release6 K("1G9L- 5,/r 6igura 4.2-6-
A'3i0i51ra7i&0 '/ R/Cu/ri3i/01(5. $antener en estricto control y se ui%iento todo el ca%bio de versiones a nivel de c.di o fuente, requeri%ientos, etc- K("1G9L- 1ara el desarrollo de la Intranet Industrial, se ,ace un control estricto de los requeri%ientos, ver en la )43"$E#'A3IQ# '\3#I3A del Siste%a de la Intranet Industrial-
U5(
'/
7(39(0/01/5
arCui1/71&0i7(5.
En
("1
las
actividades de diseo, estn centrali/adas en el %bito de nociones del concepto de arquitectura de software- *os co%ponentes arquitect.nicos estn inte rados por
co%ponentes independientes, %odulares, y ree%pla/ables ayudan a ad%inistrar la co%plejidad del siste%a y alientan el concepto de reutili/aci.n K("1G9LM('/#a3i/01( 8i5ua# 7(0 UM). $odela%iento visual es el uso de la notaci.n se%ntica rica a nivel visual y de te7to, para
capturar y esque%ati/ar los procesos de una or ani/aci.n K("1G9L- I,/r 6igura 4.3J. Ade%s? Ayuda a co%prender siste%as co%plejos E7plorar y anali/ar alternativas a bajos costos 3apturar los requeri%ientos de los clientes 3o%unicar a%bi `edadesA'3i0i51ra7i&0 '/# Ca3"i(. 1ara el diseo y el desarrollo de siste%as intensivos de software, es necesario contar con diferentes versiones de docu%entaci.n, pro ra%as, prototipos, se debe llevar control de todos estos ca%bios, por lo que para la docu%entaci.n es controlada por versiones 5>er en la )43"$E#'A3IQ# '\3#I3A del Siste%a de la Intranet Industrial6 especificaciones t2cnicas sin
4.4.
1ara Anlisis y )iseo del siste%a, se ,ace uso del Software Rational XDE Version 2003.06.00 de Rational Corporation (pl g in en Vis al St dio 2003! K(J)EG9L- Este es un producto ideal que per%ite el %odela%iento visual en "$* vara las fases de anlisis y diseo- 'iene toda la potencia y funcionalidad del producto de %odela%iento del producto (ational (ose, la ventaja que J)E se inte ra al I)E 5Interfase )evelop%ent Environ%ent6 de >isual Studio-#E' 5>er fi ura <-96- Esta es una ,erra%ienta sofisticada de
%odela%iento y anlisis, e7iste docu%entaci.n disponible para el entrena%iento en el uso del J)E para #E' KECJ)EG2L-
PARA
DESARR ))
DE)
DE)
1ara el desarrollo y construcci.n de clases y c.di o, se utili/a el "i#roso$t Vis al St dio 2003. 5>er fi ura <-86-
8;
PARA
E)
ANK)ISIS
EN E) KM*I!
DE *ASE DE
1ara el anlisis y diseo de la Base de )atos se usa el paquete %ll F sion Data "odeler Er&in Version '.(.220) (Co*p ter %sso#iates C%!, que per%ite reali/ar Fi uras de Entidad (elaci.n a alto nivel, antes de %ateriali/arlo en la Base de datos- 5>er fi ura <-;6- Esto es i%portante porque dis%inuye los costos de anlisis, al e7istir una etapa previa de evaluaci.n y %odela%iento antes de llevarlo a la base de datos-
8:
1ara el %anejo de la Base de )atos 4racle Ai 5especificado en el docu%ento de (equeri%ientos6, puede utili/ar la propia ,erra%ienta que brinda el suite 4racle 5SS* 1*"S, de 4racle 3orporation6, para este proyecto se utili/a el software +oad Version ,.6.0.(( (- est so$t&are! 5>er fi ura <-:6-
8=
8A
;G
4.6.
CR N GRAMA DE !RA*A+
Dura7i&0
:< d!as
8 $odela%iento
; )ocu%entaci.n
:< d!as
1G[G8[G<
21 d!as
91[G8[G<
F/7Fa N(1a R/7ur5(5 Fi0 *a Fase de 3oncepci.n es i%portante para los objetivos de desarrollo del Siste%a, porque es la fase en la cual se define los linea%ientos de 1A[G=[G< ne ocio y los requeri%ientos, que el Siste%a de la Intranet Industrial FII "#$S$ debe resolverSe definen cuales es el objetivo del 1royecto, cuales son las %etas, que In -(ui/, 11[G8[G< es lo que se quiere de%ostrar al desarrollar el Siste%a de *a Intranet 1aul *orena IndustrialSe define cual es el %bito y los subsiste%as que sern afectados por el In -(ui/, 12[G8[G< Siste%a1aul *orena "na ve/ definida, los alcances y los %.dulos del siste%a, el In - (ui/ 1A[G8[G< redacta todos los requeri%ientos que debe tener cada uno de los1aul *orena subsiste%as 5$.dulos de la Intranet6El %odela%iento co%ien/a una ve/ que se ,a definido a %uy alto nivel, la 2G[G8[G< 1aul *orena %isi.n, la visi.n, los alcances y requeri%ientos del Siste%a*a docu%entaci.n del todo el proyecto es un proceso i%portante tanto para los desarrolladores y analistas, para los usuarios especiali/ados y 1A[G=[G< 1aul *orena bsicos, sino que constituye un docu%ento funda%ental en el %anteni%iento y escalabilidad posterior del siste%a*a %eta de la Fase de Elaboraci.n es definir los linea%ientos de la arquitectura del Siste%a, para proveer una base estable que sea el %arco G;[G=[G< de referencia para el diseo y la i%ple%entaci.n- *a estabilidad de la arquitectura es evaluada a trav2s de uno o %s prototipo arquitect.nicoSe reali/a un anlisis del siste%a en el %bito l. ico, si el siste%a In -(ui/, G;[G=[G< involucra procesos %s sensibles or ani/acional%ente, se debe ,acer un 1aul *orena se ui%iento %as profundo del worHflowSe procede a levantar los dia ra%as "$*, el diseo de la Entidad G<[G=[G< 1aul *orena (elaci.n 5E(6 de la Intranet IndustrialSobre la base de los requeri%ientos visuales del Siste%a 5>er adjunto )E> ES'("3'"(A >IS"A* I#'(A#E' I#)"S'(IA* FII "#$S$6 se)avid 2=[G;[G< reali/a los pri%eros prototipos de diseo visual, de acuerdo al loo. and (odri ue/ $eel definido en el docu%ento2=[G:[G< Se procede a preparar todo el %arco de desarrollo necesario para la etapa 1aul *orena
12
19
:,8 d!as
G:[G;[G< 1;[G;[G<
1<
<,8 d!as
1;[G;[G< 22[G;[G<
18
= d!as
22[G;[G< G1[G:[G<
1;
<,8 d!as
G;[G:[G< 12[G:[G<
1:
1 d!a
12[G:[G< 12[G:[G<
1=
9,8 d!as
19[G:[G< 1;[G:[G<
de la Fase de 3onstrucci.n, es decir se instala los scripts en la Base de )atos, el esbo/o de las clases utili/adas y su distribuci.n se 0n linea%ientos del 1atr.n Arquitect.nico*a %eta de la fase de 3onstrucci.n es clarificar los requeri%ientos y co%pletar el desarrollo del siste%a basados en el Esque%a Arquitect.nico 5definido por el patr.n arquitect.nico y los patrones de diseo6- *a fase de 3onstrucci.n, es en al una for%a parecida a un proceso de %anufactura, donde se pone 2nfasis al control de recursos, control de operaciones, opti%i/ar los costos, pla/os y la calidadEn este %.dulo se desarrolla todo lo relacionado a la Ad%inistraci.n de 1er%isos, se uridad, roles tablas $aestras, control de "suarios- Esto incluye la codificaci.n en la Base de )atos 53apa de )atos6 y la1aul *orena codificaci.n en la 3apa de #e ocios, y la Interfase 53apa de 1resentaci.n6En este %.dulo se desarrolla todo lo relacionado al control de "suariosEsto incluye la codificaci.n en la Base de )atos 53apa de )atos6 y la 1aul *orena codificaci.n en la 3apa de #e ocios, y la Interfase 53apa de 1resentaci.n6En este %.dulo se desarrolla todo lo relacionado al 3ontrol de E%presas, este %odulo es un %odulo funda%ental para otros %.dulos- Esto incluye 1aul *orena la codificaci.n en la Base de )atos 53apa de )atos6 y la codificaci.n en la 3apa de #e ocios, y la Interfase 53apa de 1resentaci.n6En este %.dulo se desarrolla todo lo relacionado a las encuestas que tendrn los alu%nos, docentes, personal ad%inistrativo y e7alu%nos de la FII "#$S$- Esto incluye la codificaci.n en la Base de )atos 53apa de1aul *orena )atos6 y la codificaci.n en la 3apa de #e ocios, y la Interfase 53apa de 1resentaci.n6En este %.dulo se desarrolla todo lo relacionado a las #oticias dela FII "#$S$- Esto incluye la codificaci.n en la Base de )atos 53apa de )atos6 1aul *orena y la codificaci.n en la 3apa de #e ocios, y la Interfase 53apa de 1resentaci.n6En este %.dulo se desarrolla todo lo relacionado a la Ad%inistraci.n de la Bolsa de 'rabajo de la FII "#$S$- Este es un $.dulo que interact0a con 1aul *orena el $.dulo de E%presas y 3ontactos- Esto incluye la codificaci.n en la Base de )atos 53apa de )atos6 y la codificaci.n en la 3apa de #e ocios,
;9
1A
9,8 d!as
1;[G:[G< 21[G:[G<
22[G:[G< G9[G=[G<
21
:,8 d!as
G9[G=[G< 12[G=[G<
22 'estin 29 !ra05i7i&0
= d!as : d!as
y la Interfase 53apa de 1resentaci.n6En este %.dulo se desarrolla todo lo relacionado al env!o de $ail a los contactos e%presariales o contactos institucionales de la FII "#$S$Esto incluye la codificaci.n en la Base de )atos 53apa de )atos6 y la1aul *orena codificaci.n en la 3apa de #e ocios, y la Interfase 53apa de 1resentaci.n6En este %.dulo se desarrolla todo lo relacionado a la Ad%inistraci.n de la 'ienda en *!nea para e7,ibir los productos y servicios de la FII- Esto incluye la codificaci.n en la Base de )atos 53apa de )atos6 y la1aul *orena codificaci.n en la 3apa de #e ocios, y la Interfase 53apa de 1resentaci.n6En este %.dulo se desarrolla todo lo relacionado al control, y b0squeda de $aterial Biblio rfico de la FII "#$S$- Esto incluye la codificaci.n en la 1aul *orena Base de )atos 53apa de )atos6 y la codificaci.n en la 3apa de #e ocios, y la Interfase 53apa de 1resentaci.n6 Se controla la solide/ del siste%a, es un proceso continuo, que persiste In -(ui/, ,asta el final del proyecto1aul *orena *a fase de 'ransici.n se ocupa en ase urar que el software sea disponible a los usuarios finales- En esta etapa ta%bi2n se opti%i/a, se confi ura y perfecciona el producto con el feedbacH del usuario Final1aul *orena, Se reali/a la pri%era instalaci.n del Siste%a en la FII "#$S$- Se BracH deno%ina >ersi.n 1-G-2Fernande/ *os usuarios finales deben dar su feedbacH o sus observaciones acerca 1aul *orena del Siste%a de la Intranet, esto constituye el final de la 1era- Iteraci.n-
;<
CAPI!U) 5.
,$ C S!
IN!R DUCCI%N
1ara evaluar el i%pacto econ.%ico en el uso del 1atr.n Infor%ador, es i%portante ponderar los costos en los que se incurre al desarrollar el siste%a de la Intranet Industrial con el 1atr.n y evaluar el costo de ,acerlo sin 1atr.n- El $odelo 3onstructivo de 3ostos, o %s conocido por 3o3o$o por $onstructive $ost %odel, fue desarrollado por Barry- ]Boe,% a finales de los :G, e7poni2ndolo detallada%ente en su libro WSoftware En ineerin Econo%icsW 51renticePFall, 1A=16- 3434$4
KB4EF$=1L es una jerarqu!a de %odelos de esti%aci.n de costos software, de naturale/a e%p!rica, desarrollada a partir de :1 proyectos de software-
5.1. M DE)
C C M
En este %odelo se introducen 18 atributos de costo para tener en cuenta el entorno de trabajo- Estos atributos se utili/an para ajustar el costo
no%inal del proyecto al entorno real, incre%entando la precisi.n de la esti%aci.n*as ecuaciones de esti%aci.n del esfuer/o de desarrollo tienen la si uiente for%a [B4EF$=1] PM =a * EDSI * EAF )onde? a EDSI el n0%ero de %iles de l!neas de c.di o fuente a EAF es un %ultiplicador que depende de 18 atributos PM 1ersonal $ensual necesario para el desarrollo de l!neas
b
Ecuaci.n 8-1
!a"#a 5.1. Factores en esti%aci.n de esfuer/o Fu/01/$ [B4EF$=1] 1ara reali/ar el clculo de la duraci.n del desarrollo de las l!neas en %eses Boe,% propone la si uiente ecuaci.n e%p!rica?
DuracionMeses = 2.5 * PM Ecuaci.n 8-2 0.38 )onde? 1$ 51ersonal $ensual6 b obtenido de la ecuaci.n 8-1 5.1.2. A1ri"u1(5 '/ 7(51(. Estos atributos tratan de capturar el i%pacto del entorno del proyecto en el costo de desarrollo- )e un anlisis estad!stico de %s de 1GG factores que influencian el costo, Boe,% retuvo 18 de ellos para 3434$4-
;;
Estos atributos se a rupan en cuatro cate or!as? atributos del producto, atributos del ordenador, atributos del personal y atributos del proyectoI1J A1ri"u1(5 '/# 9r('u71( a (E*@? arant!a de funciona%iento requerido al software a )A'A? ta%ao de la base de datos a 31*J? co%plejidad del producto I2J A1ri"u1(5 '/# (r'/0a'(r a 'I$E? restricci.n de tie%po de ejecuci.n a S'4(? restricci.n del al%acena%iento principal a >I('? volatilidad de la %quina virtual a '"(#? tie%po de respuesta del ordenador I3J A1ri"u1(5 '/# 9/r5(0a# a A3A1? capacidad del analista a AEJ1? e7periencia en la aplicaci.n a 13A1? capacidad del pro ra%ador a >EJ1? e7periencia en %quina virtual a *EJ1? e7periencia en len uaje de pro ra%aci.n I4J A1ri"u1(5 '/# 9r(4/71( a $4)1? prcticas de pro ra%aci.n %odernas a '44*? utili/aci.n de ,erra%ientas software a S3E)? plan de desarrollo requerido3ada atributo se cuantifica para un entorno de proyecto- *a escala es %uy bajo PP bajo PP no%inal PP alto PP %uy alto PP e7tre%ada%ente alto-
En la tabla 8-1-, se %uestran los valores del %ultiplicador para cada uno de los 18 atributos- Estos 18 valores se %ultiplican al cn, y nos proporciona el esfuer/o ajustado al entorno,) G,:8 G,A< G,:G 1,GG 1,GG G,=: G,=: 1,<; 1,2A 1,<2 1,21 1,1< 1,2< 1,2< 1,29 ) G,== G,A< G,=8 1,GG 1,GG G,=: G,=: 1,1A 1,19 1,1: 1,1G 1,G: 1,1G 1,1G 1,G= NM 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG 1,GG -I 1,18 1,G= 1,18 1,11 1,G; 1,18 1,G: G,=; G,A1 G,=; G,AG G,A8 G,A1 G,A1 1,G< ,1,<G 1,1; 1,9G 1,9G 1,21 1,9G 1,18 G,:1 G,=2 G,:G G,AG G,A8 G,=2 G,=9 1,1G E1,<G 1,1; 1,;8 1,;; 1,8; 1,9G 1,18 G,:1 G,=2 G,:G G,AG G,A8 G,=2 G,=9 1,1G
uAtributos de Siste%a
RE)G 3onfiabilidad de Software (equerida DA!A 'a%ao de Base de )atos CP)E 3o%plejidad del Siste%a Atributos 3o%putacionales !IME (estricci.n de 'ie%po de Ejecuci.n S! R (estricci.n en Al%acena%iento ,IR! >olatilidad de $aquina >irtual !URN 'ie%po de (espuesta del Siste%a Atributos de 1ersonal ACAP 3apacidad de Analista AEEP E7periencia de Aplicaci.n PCAP 3apacidad del 1ro ra%ador ,EEP E7periencia en $aquina >irtual )EEP E7periencia en 1ro ra%aci.n 44 Atributos de 1royecto M DP 1racticas $odernas de 1ro ra%aci.n ! ) Ferra%ientas de Software SCED 1la/o (equerido de )esarrollo
ParL3/1r(5 '/ C(51( #o%inal #$ Fi , FI >ery Fi , >F (ies o de vida ,u%ana B) con inte ridad relacional y vistas y procesos transaccionales A%bos For%ularios con funciones co%plejas E7tra Fi , JF
(E*@
Efecto li ero, Bajo, $oderado, sin fcil%ente p2rdidas Altas p2rdidas inconvenientes (ecuperable recuperables financieras )ata en arc,ivos de Base de )atos (elacional te7to For%ulario Si%ple con co%plejas Funciones $0ltiples for%ularios 0nico usuario d8Ge uso 31" d8Ge uso de )IS34 3a%bio $!ni%o Interactivo 18 e d < %eses 18e d 1 %es d 1 %es #o "sado 1equeas ,erra%ientas :Ge #o% 98 e 1 ao 98e < %eses 8 %eses 3o%en/ando a usar 3a%bio poco frecuente d< ,oras 88 e 9 aos 88e 1 ao 2 ao Al 0n "so B) con inte ridad relacional y vistas $0ltiples for%ularios, %ulti,ilo o %ultiusuario
)A'A
#o )ata
31*J 'I$E S'4( >I(' '"(# A3A1 AEJ1 13A1 >EJ1 *EJ1 $4)1
For%ularios Si%ples
:Ge =8e :Ge, espacio de disco =8e, espacio de li%itado disco li%itado 3a%bio Frecuente <P12 Foras :8 e ; aos :8e 9 aos < aos "so Ceneral "so de (utina Ferra%ientas adicionales de trabajo 1;Ge 3a%bio %uy frecuente f12 ,oras AG e 12 aos AGe
'44* S3FE)
2 C* =8e
I)E con *en uajes, ,erra%ientas 144, y de )epuraci.n co%ponentes 1GGe 19Ge
!a"#a 5.3.$ Dndice de 3ostos de Software Fu/01/$ Boe,%, Barry- WSoftware En ineerin Econo%icsW KB4EF$=1L
5.2. CL#7u#( '/ 7(51(5 '/# 5i51/3a '/ #a I01ra0/1 I0'u51ria# a# u1i#iMar Pa1r&0 I06(r3a'(r 1ara evaluar el a,orro que se incurre al utili/ar el patr.n infor%ador, se procede a reali/ar un clculo apro7i%ado del costo del Siste%a de la Intranet industrial, utili/ando el $odelo 3onstructivo de 3ostos 53o3o$o6, anterior%ente e7puesto5.2.1. Pr(7/'i3i/01( ED9/ri3/01a# Se procede a reali/ar al conteo de las l!neas de c.di o involucradas en las 9 operaciones bsicas de todo siste%a de Software con la Base de )atos 5Inserci.n, Actuali/aci.n, y Eli%inaci.n6, las %uestras se a rupan de la %is%a for%a que los subsiste%as o %.dulos del siste%a, esco iendo una tabla de cada tabla1ara co%parar las %is%as operaciones sin el uso del 1atr.n Infor%ador, se procede a ,acer el c.di o necesario para reali/ar las %is%as operaciones bsicas con la base de datos pero, esta ve/ sin aplicar el 1atr.n infor%ador-
M&'u#( !a"#a Ad%inistraci.n Actividad Sala(eserva Auditorio 1r2sta%o Biblioteca Bolsa de 'rabajo 4fertaZ*aboral 3ontactos 3ontactos 'ipoZ)oc E%presa EncZ)etZ>ot Encuesta #oticia #oticia E%pZIdio%a "suarios (epositorio )ocu%ento 'ienda en *!nea 3ate or!a
Ca9a '/ Da1(5 Ca9a '/ *u5i0/55 )DC I05/r7i&0 A71ua#iMa7i&0 E#i3i0a7i&0 *u5i0/55 I05/r7i&0 A71ua#iMa7i&0 E#i3i0a7i&0 !(1a# 8 8 9 8 ; ; < 9< 19 19 9 8 18 1< < ;: = < 9 8 A 8 < 9= ;2 12 19 9 8 12 19 < 22 29 9 8 29 2< < 1G< < < 9 8 8 8 < 9G 8 8 9 8 ; ; < 9< 1: 1: 9 8 1= 1= < =2 ; : 9 8 : = < <G 8< 1G 1G 9 8 11 11 < : = 9 8 = = < <9
!a"#a 5.4.$ $uestreo de *!neas de 3.di o "sando 1atr.n Infor%ador Fu/01/$ Elaboraci.n 1ropia
Mu/51r/( '/ NN3/r( '/ )O0/a5 Para 9/ra7i(0/5 7(0 *a5/ '/ Da1(5 /0 I01ra0/1 I0'u51ria# FII UNMSM SIN US DE PA!R%N INF RMAD R NN3/r( '/ )O0/a5 Inserci.n Actuali/aci.n Eli%inaci.n $.dulo 'otal *)3 'abla Ad%inistraci.n ;1 Actividad 2< 29 1< Auditorio 192 Sala(eserva 8A 8A 1< Biblioteca 1<: ;< ;A 1< 1r2sta%o Bolsa de 'rabajo 4fertaZ*aboral 1=G =1 =8 1< 3ontactos 228 3ontactos 1G8 1G; 1< E%presa ;1 'ipoZ)oc 2< 29 1< Encuesta ;1 EncZ)etZ>ot 2< 29 1< #oticia 1=G #oticia =1 =8 1< "suarios 1G1 <1 <; 1< E%pZIdio%a )ocu%ento (epositorio 118 8G 81 1< 'ienda en *!nea 3ate or!a A= <2 <2 1<
!a"#a 5.5.$ $uestreo de *!neas de 3.di o Sin 1atr.n Infor%ador Fu/01/$ Elaboraci.n 1ropia
:2
C(39ara7i&0 '/ NN3/r( '/ )O0/a5 Para 9/ra7i(0/5 7(0 *a5/ '/ Da1(5 /0 I01ra0/1 I0'u51ria# FII UNMSM C N US G SIN US DE PA!R%N INF RMAD R NN3/r( '/ )O0/a5 D/ C&'ig( I)DCJ E#i3i0a7i&0 I05/r7i&0 A71ua#iMa7i&0 $.dulo 'abla 3on 1atr.n Sin 1atr.n 3on 1atr.n Sin 1atr.n 3on 1atr.n Sin 1atr.n Ad%inistraci.n Actividad 1; 2< 1; 29 12 1< Auditorio Sala(eserva 99 8A 92 8A 12 1< Biblioteca 1resta%o 2; ;< 1< ;A 12 1< Bolsa de 'rabajo 4fertaZ*aboral 9G =1 91 =8 12 1< 3ontactos 3ontactos 81 1G8 82 1G; 12 1< E%presa 'ipoZ)oc 1< 2< 1< 29 12 1< Encuesta EncZ)etZ>ot 1; 2< 1; 29 12 1< #oticia #oticia <G =1 <G =8 12 1< "suarios E%pZIdio%a 1= <1 2G <; 12 1< (epositorio )ocu%ento 2; 8G 2; 81 12 1< 'ienda en *!nea 3ate oria 2G <2 21 <2 12 1<
!a"#a 5.6.$ 3uadro 3o%parativo de l!neas de 3.di o 3on "so y Sin "so de 1atr.n Infor%ador Fu/01/$ Elaboraci.n 1ropia
:9
(E*@ )A'A 31*J 'I$E S'4( >I(' '"(# A3A1 AEJ1 13A1 >EJ1 *EJ1 M DP ! ) S3FE)
Fa71(r/5 '/ C(51( IC(051ru71i8/ C(51 M('/#J I01ra0/1 I0'u51ria# UNMSM Sin 1atr.n 3on 1atr.n Dndice >alor Dndice >alor *4 G,== *4 G,== >F 1,1; >F 1,1; #$ 1,GG #$ 1,GG FI 1,11 FI 1,11 #$ 1,GG #$ 1,GG *4 G,=: *4 G-=: >* G,=: >* G,=: #$ 1,GG #$ 1,GG *4 1,19 *4 1,19 #$ 1,GG #$ 1,GG #$ 1,GG #$ 1,GG #$ 1,GG #$ 1,GG -I ,) 0B91 1B24 -I 0B91 NM 1B00 FI 1,G< FI 1,G<
:<
Ad%inistraci.n Auditorio Biblioteca Bolsa de 'rabajo 3ontactos E%presa Encuesta #oticia "suarios (epositorio 'ienda en *!nea
F(r3u#ari( C(39ara1i8( '/ Ni8/# '/ E51i3a7i&0 9(r M&'u#( IC(051ru71i8/ C(51 M('/#J I01ra0/1 I0'u51ria# UNMSM E)SI EAF 1$ #o%inal 1$ Ajustado Se%anas )!as 1roductividad $iles de *!neas Factor de Esfuer/o de 3.di o Ajustado 1ersonal $ensual 1ersonal $ensual 1roductividadV$es $esV)!as[$es 1$A [ E)SI 3on Sin 3on Sin 3on Sin 3on Sin 3on Sin 3on Sin 3on Sin 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n 1atr.n G,G9< G,G;1 G,A8A 1,<9: G,G==1< G,2<9=2 G,G=8 G,98G 2,<=: 8,:<2 1G,9: 29,A< 81,=8 11A,:2 G,G;: G,192 G,A8A 1,<9: G,1:A;= G,8<=9; G,1:2 G,:== 2,8:9 8,A;= 1G,:9 2<,=A 89,;< 12<,<9 G,G9= G,1<: G,A8A 1,<9: G,GAAG; G,;19A: G,GA8 G,==2 2,8G1 ;,GGG 1G,<9 28,G2 82,1< 128,1G G,G;2 G,1=G G,A8A 1,<9: G,1;8;9 G,:8A<; G,18A 1,GA1 2,8;9 ;,G;1 1G,;A 28,2: 89,<< 12;,9: G,1G< G,228 G,A8A 1,<9: G,2=811 G,A8AA: G,2:< 1,9:A 2,;9G ;,12A 1G,A: 28,8; 8<,=< 12:,:A G,G9G G,G;1 G,A8A 1,<9: G,G::2A G,2<9=2 G,G:< G,98G 2,<:2 8,:<2 1G,91 29,A< 81,89 11A,:2 G,G9< G,G;1 G,A8A 1,<9: G,G==1< G,2<9=2 G,G=8 G,98G 2,<=: 8,:<2 1G,9: 29,A< 81,=8 11A,:2 G,G=2 G,1=G G,A8A 1,<9: G,2221< G,:8A<; G,219 1,GA1 2,8AA ;,G;1 1G,=< 28,2: 8<,1A 12;,9: G,G<G G,1G1 G,A8A 1,<9: G,1G<8< G,<1<GG G,1GG G,8A8 2,8G: 8,=== 1G,<; 2<,88 82,2= 122,:: G,G8< G,118 G,A8A 1,<9: G,1<92: G,<:<<; G,19: G,;=2 2,8<8 8,A2: 1G,;1 2<,:1 89,G: 129,8: G,G<9 G,GA= G,A8A 1,<9: G,112:A G,<G11G G,1G= G,8:; 2,81; 8,==G 1G,<A 2<,82 82,<: 122,8A !(1a#/5 1,8G2 =,19< 2:,==G ;8,19A 11;,28A 2:1,;9G 8=1,2A: 198=,1<= 5B544 V3lculo )uraci.n 2,8V1$gG,9= Dura7i&0 I3/5/5JP 2B918
!a"#a 5.9.$ 3lculo de Esfuer/o Ajustado y 1roductividad Fu/01/$ Elaboraci.n 1ropia 1ara el clculo del esfuer/o ajustado 5EAF6 se utili/a los !ndices de costos, y las 3onsideraciones de 'ie%po indicadas en las 'ablas 8-: y 8-= respectiva%ente 1$ 51ersonal $ensual6 b 9-2 V EAF V E)SI g 1-G8 5Ecuaci.n 8-16 1$A 51ersonal $ensual Ajustado6 b 1$ V EAF
:8
Figura 5.5.$ Se%anas #ecesarias para co%pletar las operaciones Bsicas Fu/01/$ Elaboraci.n 1ropia
:;
C(51(5 7(0 Pa1r&0 IC(051ru71i8/ C(51 M('/#J I01ra0/1 I0'u51ria# UNMSM 3osto 5"Sh6 8-GG 122-G8 122-G8 A18-9: ;1-G2
h h h h h
h 1,GA=-<<
!a"#a 5.10.$ 3lculo de 3ostos con 1atr.n Infor%ador Fu/01/$ Elaboraci.n 1ropia
P#aM(5 7(0 Pa1r&0 IC(051ru71i8/ C(51 M('/#J I01ra0/1 I0'u51ria# UNMSM $eses 1 G-2A G-2A 2-1A G-18 2.63 Se%anas <-1: 1-22 1-22 A-12 G-;1 1G-A< )!as ; :-9G :-9G 8<-:1 9-;8 ;8-;; Foras ;-8G <:-<2 <:-<2 988-;< 29-:1 <2;-:;
::
C(51(5 Si0 Pa1r&0 IC(051ru71i8/ C(51 M('/# IIJ I01ra0/1 I0'u51ria# UNMSM $eses 1 G-=1 G-=1 ;-1G G-<1 7.32 Se%anas <-1: 9-9A 9-9A 28-<2 1-;A 9G-8G )!as ; 2G-99 2G-99 182-81 1G-1: 1=9-G1 Foras ;-8G 192-1= 192-1= AA1-99 ;;-GA 11=A-;G 3osto 5"Sh6 h 8-GG h ;;G-=A h ;;G-=A h <,A8;-;8 h 99G-<< h 8,A<:-A=
!a"#a 5.12.$ 3lculo de 3ostos sin 1atr.n Infor%ador Fu/01/$ Elaboraci.n 1ropia
P#aM(5 Si0 Pa1r&0 IC(051ru71i8/ C(51 M('/# IIJ I01ra0/1 I0'u51ria# UNMSM $eses 1 G-88 G-88 <-1; G-2= 4.99 Se%anas <-1: 2-91 2-91 1:-99 1-1; 2G-:A )!as ; 19-=; 19-=; 1G9-A; ;-A9 12<-:8 Foras ;-8G AG-1G AG-1G ;:8-:9 <8-G8 =1G-=:
!a"#a 5.13.$ 3lculo de 1la/os con 1atr.n Infor%ador Fu/01/$ Elaboraci.n 1ropia
:=
h;,GGG-GG h8,GGG-GG h<,GGG-GG US Q h9,GGG-GG h2,GGG-GG h1,GGG-GG hP h;;G-=A h122-G8 3oncepci.n h;;G-=A h122-G8 Elaboraci.n 3onstrucci.n hA18-9: h99G-<< h;1-G2 'ransici.n
h<,A8;-;8
:A
P#aM(5 E51i3a'(5 /0 M/5/5 IM('/#( C(051ru71i8( '/ C(51(5J IN!RANE! FII UNMSM
;-GG 8-GG <-GG M/5/5 9-GG 2-GG 1-GG G-GG Sin 1atr.n 3on 1atr.n 2-;9 <-AA
Figura 5.7.$ 3o%paraci.n 1la/os Esti%ados )esarrollo $.dulos Intranet Fu/01/$ Elaboraci.n 1ropia
Figura 5.8.$ 3o%paraci.n 3ostos Esti%ados )esarrollo $.dulos Intranet Fu/01/$ Elaboraci.n 1ropia
5.3. EEP)ICACI%N
!a"#a 5.4B 4 5.5 se recolecta el n0%ero de l!neas, a rupados por los %.dulos del siste%a de la Intranet Industrial, y diferenciadas por las operaciones bsicas de la base de datos 5Inserci.n, Actuali/aci.n, y Eli%inaci.n6- En la tabla 8-; se %uestra la co%paraci.n de las 2 tablas anteriores!a"#a 5.7. En esta tabla se definen los valores para cada uno de los 18 par%etros, que constituyen la variable EAF IFa71(r '/ E56u/rM( A>u51a'(J en la ecuaci.n 8-14bservar que se ,an %odificado 2 par%etros para a%bos escenarios, para obtener el EAF? M DP$ 'o%a un valor de FICF 5FIbG-A16 para el clculo de costo con uso de patrones, y para el clculo sin uso de patrones to%a el valor de *4] 5*4b1-1G6- Esto se e7plica, porque $4)1 es un factor, dentro de la cate or!a de Atributos de 1royecto 5ver tabla 8-26, y su !ndice indica el rado de
utili/aci.n de t2cnicas %odernas de pro ra%aci.n- "tili/a%os FICF porque cuando se ,ace uso de 1atrones se utili/a toda la rique/a y la potencia de la pro ra%aci.n orientada a objetos, ,erencia, interfaces, y encapsulaci.n- En ca%bio cuando no se utili/a patrones no se ,ace uso de nin una de estas propiedades de la ,erra%ienta, por esta ra/.n se aplica el !ndice *4]! )$ 'o%a un valor de FICF 5FIbG-A16 para el clculo de costo con uso de
1atr.n, y para el clculo sin uso de patrones to%a el valor de #o%inal 5#$b1-GG6- Esto se e7plica, porque '44* es un factor, dentro de la cate or!a de Atributos de 1royecto 5ver tabla 8-26, y su !ndice indica el rado de
"tili/a%os FICF porque cuando se ,ace uso de 1atrones se utili/a toda la rique/a y la potencia de la pro ra%aci.n orientada a objetos, ,erencia, interfaces, y encapsulaci.n- En ca%bio cuando no se utili/a patrones no se ,ace uso de nin una de estas propiedades de la ,erra%ienta, por esta ra/.n se aplica el !ndice #$!a"#a 5.8. En 2sta tabla se define, los par%etros de tie%po, para los clculos respectivos- 4bvia%ente, estos par%etros pueden ser %odificados, pero deben ser i uales para a%bos escenarios, a fin de establecer resultados co,erentesS/3a0a5 R M/5$ que est referido a la cantidad real de se%anas que ,ay por un %esDOa5 R S/3a0a$ Indica la cantidad de d!as laborables por se%ana -(ra R DOa$ Indica cuantas ,oras se trabaja por d!a3o%o se puede observar estos, valores pueden ser %odificados, pero per%anecen id2nticos en a%bos escenarios 53on y sin 1atr.n6 a fin de co%parar los costos en los que se incurren!a"#a 5.9. En la tabla 8-A, se ,ace el clculo de Esfuer/o ajustado y 1roductividad, se 0n indica la ecuaci.n 8-1Es necesario, convertir el n0%ero de l!neas de c.di o 5*)36 a %iles de l!neas de c.di o 5c*)364bs2rvese en la tabla 8-A que el 1$ #o%inal 51ersonal #o%inal $ensual #ecesario6, es %ayor que en el escenario &Sin 1atr.n+!a"#a 5.10. 4 !a"#a 5.12. Establece los costos en los que se incurre al desarrollar el siste%a 3on patr.n y Sin 1atr.n- 4bservar que se alinea la
=9
distribuci.n de los costos con las fases del ("1, otor ndole un porcentaje a cada fase? 3oncepci.n? 1Ge Elaboraci.n? 1Ge 3onstrucci.n? :8e 'ransici.n? 8e Estos porcentajes son dados por el )r- Boe,% KB4EF$=1L, ,an sido definidos, por ser la fracci.n de tie%po utili/ado en proyectos de software si%ilares!a"#a5 5.11B 5.13. Se indica los pla/os de tie%pos en los que incurre, en a%bos escenarios, al i ual que en las tablas 8-1G y 8-12, se distribuye los pla/os de acuerdo las fases del ("1-
5.4. IN!ERPRE!ACI%N
El 3osto econ.%ico, que i%plica la utili/aci.n de un patr.n en la capa de datos y la capa de Business 51atr.n Infor%ador6, si nifica un a,orro del =1,89e versus la noPutili/aci.n de al 0n patr.nEn 1la/os de entre a, el uso del patr.n, i%plica una dis%inuci.n del <:,9:e en t2r%ino de tie%pos de entre a!a"#a C(39ara1i8a '/ Si0 Pa1r&0 8/r5u5 U5( '/ Pa1r&0 IC(051ru71i8/ C(51 M('/#J I01ra0/1 I0'u51ria# UNMSM Sin 1atr.n <-AA 8A<:-A= 3on 1atr.n 2-;9 1GA=-<< e <:,9: =1-89
!a"#a 5.14.$ 'abla 3o%parativa de Sin 1atr.n versus "so de 1atr.n Fu/01/$ Elaboraci.n 1ropia
=<
CAPI!U)
C NC)USI NES
1*os patrones de diseo orientados a objetos, son una alternativa t2cnica para el desarrollo de siste%as de software, pro%oviendo la reutili/aci.n, y ,aciendo posible la %odularidad de los siste%as de software2El uso siste%tico del 1atr.n Infor%ador en el desarrollo de la Intranet Industrial, constituye un a,orro econ.%ico apro7i%ado del =Ge, y una dis%inuci.n de alrededor del <=e en t2r%inos de %eses necesarios para concluir el proyecto, se 0n la apro7i%aci.n e%p!rica 3o3o$o 53onstructive 3ost $odelin 69El 1atr.n Infor%ador es una capa abstracta que provee acceso a diferentes bases de datos, el siste%a de software reali/a operaciones t!picas con la base de datos a trav2s de esta capa abstracta, estas operaciones pueden ser transaccionales-
=8
<-
El 1atr.n Sensor, son interfases de clases abstractas que %onitorean continua%ente el siste%a de software, reportando cualquier error . ca!da del siste%a de software-
8-
El 1atr.n de 9 3apas, es una distribuci.n arquitect.nica de los co%ponentes de ne ocio, capa de datos y presentaci.n- El uso de 2ste patr.n proporciona fle7ibilidad y encapsula la co%plejidad de cada una de las capas en %acro %.dulos fcil%ente ad%inistrables-
;-
El 1atr.n Infor%ador, el 1atr.n Sensor, y el 1atr.n de 9 capas constituyen %acro estructuras l. icas reutili/ables en el desarrollo de un siste%a de software co%plejo, independiente%ente del len uaje o del siste%a de software, estos patrones ofrecen un vocabulario con %ayor valor se%ntico, que per%ite poder trans%itir estructuras l. icas en ve/ de ideas sola%ente, proporcionando otro nivel de co%unicaci.n entre los desarrolladores y analistas de software-
:-
El Siste%a de la Intranet Industrial, es un siste%a %odular, d2bil%ente acoplado, provee un co%pleto conjunto de objetos y los patrones para su reutili/aci.n posterior en el proceso de
escalabilidad del siste%a- Este siste%a es escalable, es decir puede soportar el creci%iento l. ico 5nuevos %.dulos o subsiste%as co%plejos6, y el creci%iento f!sico 5%ayor n0%ero de usuarios, %ayor trfico en las transacciones6=*os patrones de diseo, son posibles, racias al uso de len uajes de pro ra%aci.n orientados a objetos? -#E', Eava, )elp,i, entre otros, estos patrones no se pueden i%ple%entar con len uajes que no
=;
posean
los
conceptos
funda%entales
de
objetos,
,erencia,
poli%orfis%o, y encapsula%iento-
=:
*I*)I GRAFA
:A)E77; 3F(IS'41FE( A*EJA#)E( 51A::6 SA Pa11/r0 )a0guag/T 547ford "niversity 1ress 1A::6:A)E77U1; 3F(IS'41FE( A*EJA#)E( 51A::6 SE) M('( I01/39(ra# D/ C(051ruirT 547ford "niversity 1ress 1A=86, :AN!IPA!98; S!F/ S(61Har/ Pa11/r05 Cri1/ria IPr(9(5/' D/6i0i1i(05 6(r E8a#ua1i0g S(61Har/ Pa11/r0 .ua#i14JT >ersion 1G-2 Eune 2, 1AA=
)a0guag/T Addison ]esley 9era Edition 1AA::*RAD99; )4#A*) B(A)*E@ (4BE('S 51AAA6 SPra71i7a# A0a#45i5 F(r R/6a71(ri0gT "niversity of Illinois at "rbanaP3,a%pai n :*MR96; F(A#c B"S3F$A##, (ECI#E $E"#IE(, FA#S (4F#E(', 1E'E( S4$$E(*A) @ $I3FAE* S'A*- &Pa11/r0U ri/01/' S(61Har/ Ar7Fi1/71ur/ U A S451/3 6 Pa11/r05. & Eo,n ]iley R Sons, 1AA;-
:* E-M81; B- ]- B4EF$ WS(61Har/ E0gi0//ri0g E7(0(3i75W 1renticeP Fall, 1A=1:C P)IEN00; EA$ES 4- 341*IE# 52GGG6 SS(61Har/ Pa11/r05T *ucent
'ec,nolo ies, Bell *abs Innovations :EGEDE02; E>A*"A'4(S C"I)E 52GG26 SRa1i(0a#X EDE Y Pr(6/55i(0a# 82002 R/#/a5/ 2.1 .NE!Y E'i1i(0T (ational Software ],ite 1aper :F !92; B(IA# F44'E- 51AA26 SA Fra71a# M('/# 6 !F/ )i6/747#/5 6
R/u5a"#/
==
:F
ZG DER95; B(IA# F44'E A#) E4SE1F @4)E(- 51AA86 SE8(#u1i(0B a0' M/1a3(r9F(5i5T
Ar7Fi1/71ur/B
,ttp?[[www-joeyoder-co%[papers[patterns[Evolution[plopA8-pdf :G F95; E(I3F CA$$A, (I3FA() FE*$, (A*1F E4#FS4#, EF4# >*ISSI)ES 51AA86 SD/5ig0 Pa11/r5 E#/3/015 (6 R/u5a"#/ S(61Har/T Addison ]esley :IEEEU1471; (I3F FI**IA() SIEEEU1471 R/7(33/0'/' Pra71i7/ 6(r R/7(33/0'/' Pra71i7/ I01/05i8/ www-enterpriseP arc,itecture-info[I%a es[)ocu%ents[IEEEe2G1<:1P2GGG-pdf :MP)A!!02; $I3FAE* 1*A'' 52GG26 SMi7r(5(61 Ar7Fi1/71ur/ ED/7u1i8/ Su33ar4 +u#4 2002T $icrosoft 3orporation : PDG95; B(IA# F44'E A#) ]I**IA$ F- 41)@cE 51AA<6 S)i6/747#/ A0' R/6a71(ri0g Pa11/r05 !Fa1 Su99(r1 E8(#u1i(0 A0' R/u5/.T "#I>E(SI'@ 4F I**I#4IS A' "(BA#AP3FA$1AIC# and A'R' Bell *aboratories :RUP03; (A'I4#A* "#IFIE) 1(43ESS 52GG96 SD(7u3/01a7i&0T >ersion 2GG9-G;-GG-;8 :REDE03; W(ational J)E^ $odel Structure Cuidelines for $icrosofti 8/r8i/H 6(r Ar7Fi1/71ura# D/57ri91i(0 (6 S(61Har/U ">/71U ri/01/'
S451/35.T
-#E'&www-12=-ib%-co%[developerworHs[rational[library[content[G9Euly[28GG[28 8<[288<Znet-pdf :S MMER02; IA# S4$$E(>I**E 52GG26 SI0g/0i/rOa '/ S(61Har/T Addison ]esley
=A