Está en la página 1de 425

UNIVERSIDADPRIVADADELVALLE DEPARTAMENTODESISTEMASYTECNOLOGA INFORMTICA

INGENIERADESISTEMASINFORMTICOS CENTRODECMPUTO

DESARROLLODEAPLICACIONESWEBENMICROSOFTC#.NET MODELADASENUML
Autores: Ing.MsC.RobertoFlixZamurianoSots Ing.CarlosEduardoCaldernVildoso


FEBRERO2008

DESCRIPCIN El Texto guiar al estudiante, por medio de documentos, a travs de los entornos de modelacin e implementacin,utilizandoUMLylaminiarquitecturaMicrosoft.NETparaeldesarrollodeunaaplicacin Web. La modalidad es terico prctico, el estudiante deber complementar con lecturas recomendadas sobrecadacaptuloantesderealizarlaparteprcticaqueserevaluada. ElObjetivogeneralesdocumentareldesarrollodeunaaplicacinWebdeacuerdoconellenguajeUML, siguiendo un determinado proceso desarrollo basado en RUP. Todo el texto se basa en un ejemplo prcticoqueincluirtodoslospuntossealadosenloscaptulos. OBJETIVOSESPECFICOS ConocerlascaractersticasdelaProgramacinen.NET ModelarenUMLaplicacionesWeb DesarrollaraplicacionesenC#quehansidomodeladasenUML ConocerlanuevafilosofadelaprogramacinWebyWebService ProfundizarenlastcnicasdeIngenieradeSoftwaredelasetapasdeRequisitosyAnlisis Profundizarenlastcnicasdediseodeaplicacionesdecualquiertipo(clsicasyWeb). CAPTULOSADESARROLLAR El proyecto est dividido en cinco captulos, los cuales engloban las caractersticas ms importantes de documentacin y de implementacin. El primer captulo introducir al estudiante al mundo de Microsoft.NET, donde podr ver las caractersticas fundamentales de esta miniarquitectura que permite desarrollar software, culminado con dos pequeas aplicaciones que permite garantizar el conocimiento del estudiante de la nueva filosofa de .NET. El segundo captulo trata de la ingeniera de requisitos y la fase de anlisis, el cual permitir obtener conocimientos para estudiar una determinada aplicacin de informacin y finaliza con una pequea vista de la futura aplicacin de informacin. Continuando, el captulo tres inicia con la determinacin de la arquitectura, que es el inicio de la fase de diseo. La fase de diseo tiene como objetivo fundamental de definir y determinar las clases y componentes para la implementacin de la aplicacin. La implementacin es el cuarto captulo, el cual se har por medio del nuevo lenguaje C# de Microsoft, antes de iniciar esta aventura se debe definir un estndar de implementacin para el futuro de la aplicacin. Por ltimo, el captulo cinco denominado Prueba de la Aplicacin, es el que dar validez a la aplicacin construida, se utilizar los casos de uso de prueba para realizarestafasedeldesarrollo. Sever,ahora,elcontenidodelosdistintoscaptulos.

NDICE
INTRODUCCIN A LA PROGRAMACIN EN MICROSOFT C#.NET...................................................................1 INTRODUCCIN AL TEXTO....................................................................................................................................................2 INTRODUCCIN A MICROSOFT .NET...................................................................................................................................20 ELEMENTOS BSICOS DE PROGRAMACIN C#.................................................................................................................. 31 IMPLEMENTAR LA PRIMERA APLICACIN EN WEB............................................................................................................... 50 IMPLEMENTAR UN SERVICIO WEB.......................................................................................................................................72 INGENIERA DE REQUISITOS Y ANLISIS...........................................................................................................85 INTRODUCCIN A LA MODELACIN CON UML..................................................................................................................... 86 INTRODUCCIN A LA MODELACIN DEL NEGOCIO.............................................................................................................. 95 MODELO DE CASOS DE USO DEL NEGOCIO...................................................................................................................... 109 DIAGRAMA DE ACTIVIDADES DEL CASO DE USO DEL NEGOCIO........................................................................................ 124 MODELO DE OBJETO DEL NEGOCIO.................................................................................................................................142 INTRODUCCIN AL FLUJO DE REQUISITOS....................................................................................................................... 156 DIAGRAMA DE CASOS DE USO..........................................................................................................................................161 DESCRIPCIN DE LOS CASOS DE USO DE LA APLICACIN............................................................................................... 175 DETERMINACIN DE LOS REQUISITOS NO FUNCIONALES DE LA APLICACIN..................................................................190 FLUJO DE ANLISIS: DESCRIPCIN DETALLA DE CASOS DE USO..................................................................................... 201 DIAGRAMA DE COLABORACIN O COMUNICACIN........................................................................................................... 224 DIAGRAMA DE PAQUETES.................................................................................................................................................250 DISEO DE APLICACIONES WEB.......................................................................................................................255 DEFINICIN DE LA ARQUITECTURA...................................................................................................................................256 MAPA DE NAVEGACIN .....................................................................................................................................................279 DIAGRAMA DE CLASES WEB.............................................................................................................................................293 DIAGRAMA DE SECUENCIA...............................................................................................................................................311 DIAGRAMA DE CLASES.....................................................................................................................................................329 CAPITULO IV.................................................................................................................................................................342 IMPLEMENTACIN.................................................................................................................................................342 ESTNDARES DE IMPLEMENTACIN.................................................................................................................................343 IMPLEMENTACIN DE LA CAPA DE PRESENTACIN.......................................................................................................... 347 IMPLEMENTACIN DE LA CAPA DE NEGOCIO Y DATOS..................................................................................................... 381 INTEGRANDO CAPAS .........................................................................................................................................................398 CAPITULO V..................................................................................................................................................................411 PRUEBA ...................................................................................................................................................................411 DISEO DE CASOS DE USO DE PRUEBA.............................................................................................................. 412 BIBLIOGRAFA........................................................................................................................................................421

Universidad Privada del Valle Unidad Acadmica Sucre

CAPTULOI
INTRODUCCINALAPROGRAMACINENMICROSOFTC#.NET
Objetivo Introduciryconocerlafilosofadelaprogramacinen.NET,paraqueelestudiantetengaunaclaridad sobrelaprogramacinorientadaaobjetos,deestamaneranotendrdificultadesparaentenderla filosofadelamodelacinconUML

1
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

INTRODUCCINALTEXTO Bienvenidos al Texto, lanzamos el presente texto esperando que cumpla con sus expectativas y quecontribuyaasuformacinprofesional. El texto abarca muchos temas de investigacin, sin embargo se ha dirigido hacia un ejemplo concreto para comprender la modelacin con UMLylautilizacindeartefactosyestereotipos

APRENDA A DESARROLLAR UNA APLICACIN EN 48 HORAS

Grupo de Investigacin Univalle - 2006

Introduccin al Curso
z La

modalidad del curso es terico prctico z Al final del curso se tendr implementada una aplicacin ASP.NET simple, donde estarn presentes todos los captulos del curso z Se abordar muy rpido y bsicamente las aplicaciones tradicionales con interfaz Windows.
Grupo de Investigacin Univalle - 2006 2

El texto est dividido por captulos, que sern descritos ms adelante. El texto toma ms en cuenta la parte prctica que la terica y la meta es cubrir los procesos fundamentales del desarrollo de software culminando con una aplicacin Web, para finalizar se realizar un ejemplosobrelainterfazWindows.

Introduccin al Curso
z Objetivos
z

del Documento

Conocer las caractersticas de la programacin en .NET z Modelar en UML aplicaciones a ser desarrolladas en .NET, utilizando Rational Rose z Desarrollar aplicaciones en C# que han sido modeladas en UML z Conocer la nueva filosofa de la programacin Web y Web Service
Grupo de Investigacin Univalle - 2006 3

La primera parte del texto est dirigida a las caractersticas de la programacin en .NET. Esta tecnologa ha dado un cambio muy provechoso en el mundo de la programacin. Luego, se realizar un modelo con ayuda de Rational Rose de anlisis y diseo de una aplicacin. Usted puede seleccionar otro software que le ayude con los diagramas de UML que se vern en este proceso de modelacin. El propsito fundamental del texto es programar en C#, pero la programacin estar guiada por la modelacin, todo lo que se modele debe estar plasmado en la implementacin. Por ltimo, se aprendercomoimplementarunServicioWeb.

2
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Introduccin
z Software
z

a Utilizar

Visual Studio .NET z MS-SQL Server 2000 z Lenguaje C# z Rational Software

Durante el texto utilizaremos distintas herramientas software que ayudan a llevar a caboeldesarrollodesoftware,entreellosestael Visual Studio, del cual utilizaremos el lenguaje C#, el MSSQL Server y por ltimo, la herramienta que nos ayudar a documentar nuestraaplicacin,elRationalRose

Grupo de Investigacin Univalle - 2006

Contenido Del Documento


z CAPTULO
z

I: Introduccin a la programacin en Microsoft C#.NET


Objetivo:
z

Introducir y conocer la filosofa de la programacin en .NET, para que el estudiante tenga una claridad sobre la programacin orientada a objetos, de esta manera no tendr dificultades para entender la filosofa de la modelacin con UML

Grupo de Investigacin Univalle - 2006

Contenido Del Documento


z CAPTULO
z z

I: Introduccin a la programacin en Microsoft C#.NET


Introduccin a Microsoft .NET Elementos bsicos de programacin C# z Implementar la primera aplicacin en Web z Implementar un Servicio Web

Grupo de Investigacin Univalle - 2006

El contenido del texto esta formado por cinco captulos, los cuales estarn abarcando el ciclo devidadeldesarrollodelproducto. El primer mdulo est dirigido a introducir al mundodelaprogramacincon.NETyC#. Es muy importante entender que la programacin en C# es totalmente orientada a objetos. Este primer mdulo asegurar que el estudiante comprenda de manera general la programacinorientadaaobjetos. A continuacin veremos el contenido del primer mdulo. Dentro del primer captulo se realizar una introduccin a Microsoft. NET donde se ver la arquitectura conformada por Microsoft para el desarrollo de software, para luego seguir con otro captulo de los elementos bsicos de C#, declaracin de variables, tipos de datos, bucles, sentencias de condicin, excepciones, declaraciones de clases, etc. Para finalizar, este primer captulo, se desarrollar una pequea aplicacin Web y un Servicio Web, los cuales servirn para reflejar la programacin orientada a objetos y la nuevas caractersticas que tiene ASP.NET

3
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Contenido Del Documento


z CAPTULO

II: : Ingeniera de Requisitos

y Anlisis
z

Objetivo:
z

Introducir y conocer la filosofa de las etapas de Ingeniera de Requisitos y Anlisis

Ya en el segundo captulo se iniciar la modelacin. El objetivo fundamental de este captulo es estimar el tiempo, costo y esfuerzo que se necesitara para el desarrollo de software, solo se realizar una estimacin, para esto necesitaremos parte de la Ingeniera de Requisitos. Luego de la estimacin, pasaremos a construirlaaplicacin.

Grupo de Investigacin Univalle - 2006

El contenido del captulo dos es muy amplio ya que englobar la Modelacin del Negocio, con el Diagrama de Casos de Uso del Negocio que son z CAPTULO II: : Ingeniera de Requisitos muy distintos a los Casos de Uso del Sistema, el y Anlisis DiagramadeActividad,elcualesutilizadoparala z Introduccin a la Modelacin con UML descripcin de los Casos de Uso del Negocio, z Modelacin del Negocio para finalizar con el Modelo de Objeto del z Flujo de Requisito Negocio. z Estimacin de Esfuerzo, Tiempo y Costo z Flujo de Anlisis El primer Flujo Requisitos, esta conformado con el Diagrama de Casos de Usos del Sistema y su descripcin de forma general. Cuando se tiene unaideadelosCasosdeUsodelSistemaque conformanlaaplicacinadesarrollaryasepuedellevaracabolaEstimacindeCostos,Esfuerzoy Tiempo,factoresmuyimportantesdelacalidaddesoftware. Parafinalizarelmdulo,estelFlujodeAnlisis El captulo III se iniciar con la definicin de la Contenido Del Documento arquitectura, una descripcin global del sistema, determinando las reglas de juego para el diseo z CAPTULO III: Diseo de Aplicaciones ylaimplementacin. Web Tambin, se ver los estereotipos para la z Objetivo: descripcindelaaplicacinWeb. z Profundizar en las tcnicas de diseo de

Contenido Del Documento

Grupo de Investigacin Univalle - 2006

aplicaciones de cualquier tipo (clsicas y Web)

Grupo de Investigacin Univalle - 2006

4
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

El contenido se inicia, como se indicaba anteriormente, con la definicin de la arquitectura, luego con una descripcin de la z CAPTULO III: Diseo de Aplicaciones posible navegacin entre pginas. Del Mapa de Web Navegacin se pasar a una describir del cmo z Definicin de la Arquitectura va a interactuar el sistema con los datos. Esta z Mapa de Navegacin Web interaccin se la describe a travs del diagrama z Diagrama de Clases Web de secuencias, el cual dar una gran lista de z Diagrama de Clases del Diseo z Diagrama de Secuencias mtodos correspondientes a las clases que z Definicin de la Base de Datos Relacional representan el comportamiento o funcionalidadesdelaaplicacin. Para culminar, debe definirse la base de datos relacional a travs del diagrama de clases del diseo. Pasando al captulo IV, denominado Contenido Del Documento Implementacin de la Aplicacin. No es ms que iniciar la codificacin, con la direccin del z CAPTULO IV: Implementacin de la modelo del diseo y cumpliendo con la Aplicacin arquitectura definida. Antes de llevar a cabo la z Objetivo: implementacin de la aplicacin, debe hacerse z Utilizar la modelacin efectuada anteriormente para desarrollar una aplicacin de acuerdo a lo un parntesis para determinar el estndar de modelado implementacin, este estndar debe considerar como sern escritas, las Variables, Componentes Web, Clases, Objetos, etc. Se ver un ejemplo de estndar de programacin que corresponda y responda con la arquitectura definida para la aplicacin. El captulo se inicia con la implementacin de la Contenido Del Documento Capa de Presentacin, la cual es la interfaz del usuario con la aplicacin, se debe colocar los z CAPTULO IV: Implementacin de la componentes que nos ayudan a mostrar y Aplicacin capturar los datos. Luego se implementa la Capa z Implementacin de la Capa de Presentacin z Implementacin de la Capa del Negocio del Negocio de la aplicacin, es aqu donde se z Implementacin del Servicio Web determina las reglas para los datos (validacin, z Implementacin de la Capa de Datos lgica). Si es necesario se llama a un Servicio z Implementacin de la Capa del Negocio de los Datos Webatravsdelacapadenegocio. z Integrando Capas Luego, se inicia la implementacin del Servicio Web con sus distintas capas para la consulta de losdatoshacialabasededatos.Estoimplicael desarrollo de la Capa de Datos y la Capa del Negocio de los Datos. No se debe olvidar que un Servicio Web es una aplicacin pero sin interfaz. Para culminar, con el captulo, se realizar la integracin de las distintas capas. Esta integracin permite observar que el trabajo del desarrollo se puede dividir, varias personas pueden desarrollar una determinada capa, y otro grupo de personaspuededesarrollarotra,deestamaneralograndodividireldesarrollo.

Contenido Del Documento

Grupo de Investigacin Univalle - 2006

10

Grupo de Investigacin Univalle - 2006

11

Grupo de Investigacin Univalle - 2006

12

5
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Contenido Del Documento


z CAPTULO

V: Diseo de Pruebas de la

Aplicacin
z

Objetivo
z

Validar la aplicacin desarrollada y ver si cumple con los requisitos utilizando una tcnica de prueba

Por ltimo est el captulo V, que culmina con el texto. El cual, tiene como objetivo realizar una validacin de la aplicacin con los requisitos determinados en la fase de Ingeniera de Requisitos. La Validacin se entiende como si la aplicacin desarrollada cumple con los requisitos delosusuarios.

Grupo de Investigacin Univalle - 2006

13

Contenido Del Documento


z CAPTULO

V: Diseo de Pruebas de la

Aplicacin
Diseo de Casos de Uso de Prueba Validacin de los Casos de Uso de Prueba z Recopilacin y Resumen de los defectos z Definir el Control de Cambio
z z

Grupo de Investigacin Univalle - 2006

14

Introduccin al Desarrollo de Software

Pararealizarlavalidacinseutilizareldiseode Casos de Uso de Prueba, los cuales estn en funcin de los Casos de Uso del Sistema que son los requisitos de la aplicacin. Los Casos de Uso de Prueba describen una situacin dentro del sistema que debe satisfacer al usuario, se puede tener varios Casos de Uso de Prueba por un solo CasodeUsodelSistema. El resultado de esta tcnica es un conjunto de defectos dentro de la aplicacin, los cuales deben ser corregidos. Esta correccin debe ser documentadayplanificadaparallevaruncontrol y tener una biblioteca de posibles defectos que sepuedenencontrarenlaimplementacin. Antes de iniciar la aventura de desarrollar una aplicacin Web, se realizar una introduccin al mundodeldesarrollodesoftware. Estaintroduccinnosdarunavisindelos problemasysolucionesquesedaneneste mundo.

Grupo de Investigacin Univalle - 2006

15

6
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Introduccin al Desarrollo de Software


z En

las siguientes Diapositivas se har referencia algunos conceptos que se deben tomar en cuenta en el desarrollo de software z El mantener un software cumple con el ciclo de vida del software el cual se debe documentar a travs de un proceso determinado y normado institucionalmente
Grupo de Investigacin Univalle - 2006 16

Para iniciar con esta introduccin se har referencia a algunos conceptos que son muy importantes para emprender el desarrollo de software, como por ejemplo la calidad de software, los modelos de proceso de software que involucra la calidad, algunas tcnicas para trabajar en equipo, etc. Todos estos conceptos contribuyen al inicio y culminacin con xito el ciclo de vida del software. El trabajo ms importante para esta aventura es la documentacin que se genera del software, ya queconellasepodrgarantizarunacalidadyun Veamos algunas mtricas que corresponden con el desarrollo de software. Esta mtrica depende de la complejidad de la aplicacin a desarrollar y delametodologadelciclodevidadelproducto. Generalmente, se utiliza el 15% del tiempo total del desarrollo para la implementacin. Imagnense, solo es el 15% que algunas veces es el 20%. Muchas personas que estn involucradas en el desarrollo de software solo realizan esta actividad,dejandoaunladolasotras. Para el Anlisis y el Diseo se utiliza el 60% del tiempototalyparalaintegracinypruebaun

futuroparalaaplicacinadesarrollar
Introduccin al Desarrollo de Software
z Mtricas
z

de la Industria de software

Slo el 15% del tiempo del desarrollo del producto de software se dedica a la programacin, algunas veces el 20% z 60% del tiempo es para el Anlisis y Diseo z 25% del tiempo para la Integracin y Prueba, algunas veces el (20%)

Grupo de Investigacin Univalle - 2006

17

25%. Algunas veces, dependiendo de la complejidad de la aplicacin, el porcentaje de integracin y prueba se incrementa, porque existen aplicaciones con muchos casos que pueden producir un errorovariosdefectos. Como es de conocimiento general la tecnologa Introduccin al Desarrollo va desarrollndose muy rpidamente, uno de los de Software objetivos es solucionar problemas ms z Hoy la tecnologa va desarrollndose complejos que abarcan ms requisitos de los muy rpidamente. Dando la posibilidad usuarios. Esto incrementa el esfuerzo de la de: creatividad para desarrollar o crear nuevos z Solucionar requisitos ms complejos paradigmas y soluciones. Estas soluciones y z Implementar soluciones ms complejas z Implantar nuevos paradigmas nuevos paradigmas deben ser documentados de z Desarrollar software ms complejo alguna forma para que futuras generaciones puedan estudiarlas y proponer sus propias soluciones.
Grupo de Investigacin Univalle - 2006 18

7
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Estas soluciones o nuevos paradigmas, respecto al software, toman en cuenta varias disciplinas o especialidadescomoporejemplo:lahabilidadde z Soluciones complejas trabajar en equipo, planificar el tiempo propio, z Desarrollo en equipo estndares de implementacin, el control de z Planificacin cambio dentro de los artefactos creados en el z Aseguramiento de la Calidad desarrollo de software. Todo esto en base a un z Gestin de Configuracin Proceso Definido de Desarrollo Software que z Proceso Definido de Software debe ser estudiado o por lo menos conocido por losdesarrolladores. Entendiendo como artefacto como cualquier cosa que es producida o creada por las actividadesdentrodeldesarrollodesoftware Como se puede evidenciar el desarrollo de Introduccin al Desarrollo software se ha convertido en una tarea muy de Software compleja, debido a los problemas surgidos en z El Desarrollo del Software se ha dcadas pasadas. Dentro de las instituciones, el convertido en una tarea muy compleja software se hace tan indispensable que cuando que ha sobrepasado en gran medida la falla en un momento dado, la institucin se habilidad personal y empresarial para el paraliza o se retrasa, unretraso de unos minutos mantenimiento del software e incluso en el ciclo de vida conocido. significa un trabajo adicional de horas o a veces das. El Desarrollo de Software ha sobrepasado en gran medida la habilidad personal, es decir que es muy POCO PROBABLE que una sola persona pueda realizar todas las actividades que involucra el ciclo de vida del producto incluyendo el mantenimiento. El Desarrollo de software se ha convertidoenunaactividadmultidisciplinaria. Comosemencionanteriormente,elsoftwarees Introduccin al Desarrollo difcil de desarrollar, pero toda institucin debe de Software tomar en cuenta la mejora de su proceso de z Toda institucin debe iniciar desarrollo Surge una pregunta: muchas de las z Una mejora del Proceso de Desarrollo de personas en nuestro medio no trabaja en una Software. Esto incluye el mantenimiento empresa de software, la cual desarrolla z La Gestin del conocimiento sobre el cmo desarrollar software aplicaciones por qu la persona debe tomar en z La definicin de sus actividades y del cuenta la mejora del proceso?.. Bien, en toda proceso institucin se maneja un determinado producto z El control del desarrollo del software software, ya sea para la contabilidad, para la facturacin, inventario, etc. Este software, necesita ser mantenido o se realiza una planificacinparasumantenimiento. El mantenimiento seguir con el ciclo de vida del software (planificacin, anlisis, diseo, implementacinyprueba),elcualimplicaseguirunprocesodedesarrollo.Cadamantenimientoo cambiodebeserdocumentado,paraqueningunadelaspersonasinvolucradasseaindispensable. Esporestemotivoquetodainstitucindebetomarencuentalamejoradelprocesodedesarrollo. Tambin, se debe pensar en una gestin del conocimiento, ya que es necesario que las nuevas
Introduccin al Desarrollo de Software
Grupo de Investigacin Univalle - 2006 19

Grupo de Investigacin Univalle - 2006

20

Grupo de Investigacin Univalle - 2006

21

8
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

personas que entren a trabajar ocupen el menor tiempo para el aprendizaje e integrarse en un tiempo ptimo al trabajo en grupo dentro de la institucin. Esta gestin del conocimiento permitir definir (poner en papel y de forma escrita) las actividades que se realizan para el desarrollo o para el mantenimiento. Es una responsabilidad del jefe de desarrollo o responsable delsoftwarellevaracaboestasactividadesconunacalidaddeterminada,adems,estdentrode laticaprofesionaldelIngenierodeSoftware. Al desarrollar software no debe olvidarse de las Introduccin al Desarrollo metas presentadasenladiapositiva. de Software Una meta al desarrollar software es que los z Se busca al desarrollar software desarrolladores deben hacer que los usuarios z Cumplir con la necesidades del usuario final utilicen la tecnologa disponible al mximo. Esto z Garantizar la calidad quieredecir,quesisedesarrollaunsoftwareque z Aumentar la cultura dentro de las personas que participan en el desarrollo corre en un CPU de 800 MHz y se solicita la z Mejor empleo de la tecnologa y del compra de un CPU de 2,8 GHz para el software, conocimiento. z Empleo correcto de los recursos y de la es muy posible que no llegue a utilizar de forma tecnologa totalelCPUde2,8GHz.Esteesunejemplobsico que trata de representar la importancia de la planificacindelosrecursos. Un ejemplo tradicional es el mal de las secretarias, generalmente a las secretarias de una determinadaempresaoinstitucinseledaunamaquinadeltimageneracinparasoloescribiry redactar cartas. Es muy claro que se pierden recursos. No se quiere decir, en ningn momento, queeltrabajodelasecretarianoocupatiempo. Otro punto a considerar, en este mismo aspecto, es la Facilidad de Uso dentro de la interfaz, ya que esta es la que ayudar al usuario a interactuar con el software, si se tiene una Facilidad de Usonoplanificadayllevadaacaboincorrectamenteesmuyposiblequeelsoftwarecreadonosea el correcto, no utilice correctamente la tecnologa y, es muy posible, que se pierdan recursos. La FacilidaddeUsoesunatributodelacalidaddesoftware,muyimportanteporserlaquedefinela interaccinentrelaaplicacinyelusuario. Muchosinvestigadoresrecalcanquelaobtencin Introduccin correcta de los requisitos garantiza en gran medida un buen desarrollo de software. La parte fundamental del desarrollo de software es z El problema de obtener un software que cumplir con los requisitos de los usuarios o cumpla con los requisitos de los institucin. La afirmacin, si se obtiene un usuarios y tenga una determinada calidad se inicia desde el momento de la software que cumple con los requisitos, es deteccin de los requisitos de un usuario posible gracias a las actividades de Prueba del Software, existen muchas, pero en el Mdulo V se ver un mtodo para validar el software desarrolladoyverdeesaformasicumpleconlos requisitosdelosusuarios
Grupo de Investigacin Univalle - 2006 22

Grupo de Investigacin Univalle - 2006

23

9
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Introduccin

La figura trata de expresar que si no se determina correctamente los requisitos es posiblequelosqueparticipaneneldesarrollode softwarenocomprendanloquese quierelograr. Enlasiguientediapositivasevequetodosdeben hablar el mismo idioma para lograr un producto quecumplaconlosrequisitos.

Grupo de Investigacin Univalle - 2006

24

Introduccin

Todos los del equipo deben entender, a la perfeccin, los requisitos y los objetivos del software a desarrollar,esto debe garantizar todo el proceso de desarrollo. El responsable del desarrollo de software son las personas involucradas en todas las actividades, es por eso que se afirma, el desarrollo de software es una actividad en equipo y se debe obtener la habilidaddetrabajarenequipo.
25

Grupo de Investigacin Univalle - 2006

Introduccin al Desarrollo de Software


z Problemas
z

de la industria de Software

Entrega del Software excesivamente tarde z Incremento del costo z Medios y procesos indisciplinados z Actividades y procedimientos no normalizados, son improvisados z La empresa se dedica a apagar el fuego z La planificacin en tiempo y recursos no se cumplen
Grupo de Investigacin Univalle - 2006 26

Gracias a la experiencia se han detectado varios problemas que involucran a la industria de software y a las instituciones que tienen un grupodedesarrollodesoftware. En la diapositiva se pueden observar varios problemas, es seguro que uno o ms de estos han ocurrido en su institucin, empresa o en su carrerauniversitaria.

10
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Dentro del ciclo de vida del software se han detectado varios problemas. El ms preocupante es el abandono de los programadores que se z Problemas en el Desarrollo de Software hacen cargo de todo el desarrollo, ellos no (Dentro del ciclo de vida) documentan en absoluto su actualidad, ya que z Retrasos en los plazos z Rpido deterioro del sistema instalado (requisitos no es su rol. Es un problema muy comn, que en muy dinmicos) el mundo entero se trata de eliminar con z Tasa de defectos, errores y fallas muy alta z Requisitos mal comprendidos distintaspolticas.Elprepararaunapersonapara z Cambios frecuentes en el dominio del problema que retome o finalice el desarrollo del software z Buenos programadores se cansan y dejan el seconvierteenalgoimposible. equipo Otro problema muy comn es el seguimiento que se realiza a los requisitos, algunas veces son muyvariableseneltiempo,estecaso incrementa la posibilidad de que el software no cumpla con los requisitos de los usuarios o no se llegue a terminar con xito. Este problema es un riesgo que hay que controlar y hacer seguimiento. Otro problema a sealar es cuando no existe un entendimiento en el equipo de desarrollo, este problema va produciendo errores que incrementan los defectos en el software, estos defectos incrementarneltiempoqueduraeldesarrollo. Algunos resultados de los problemas que existen Introduccin al Desarrollo en el desarrollo de software ya se han de Software mencionado, sin embargo, se sealan cuatro z Los problemas en la industria de importantes de manera general, el primero es Software dan como resultado que la calidad y la funcionalidad se llevan al z La calidad y la funcionalidad se llevan al limite lmite de no obtenerla. El segundo problema es z No se puede cuantificar la calidad del software que no se puede cuantificar o medir la calidad z No se sabe si realmente el software cumple los requisitos del usuario final (ms adelante definiremos lo que es calidad de z Las revisiones y pruebas son eliminadas o se software), que involucra a todas las actividades realizan parcialmente deldesarrollodesoftware,esdecirquetodaslas actividadesparaeldesarrollodebenrealizarsede una forma ptima para que se pueda hablar de calidad. El tercer problema, se genera cuando no existe suficiente tiempo para realizar las distintas pruebas al software. Esta actividad, la prueba del software, es la que permite validar el software contra los requisitos del usuario. El ltimo problema es la omisin del proceso de revisin, el cual es una actividad de control de calidad que permite realizar el seguimiento de varios aspectos dentrodeldesarrollo,comoporejemplo:lasrevisionesdelaFacilidaddeUso,deldesarrollodela especificacindeloscasosdeusoolaimplementacin,etc.
Introduccin al Desarrollo de Software
Grupo de Investigacin Univalle - 2006 27

Grupo de Investigacin Univalle - 2006

28

11
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Introduccin al Desarrollo de Software


z Calidad
z

y la Productividad se logra

Aplicando Metodologas y tecnologas para desarrollar y mantener el software z Administrando los procesos de Software z Realizando revisiones e inspecciones z Documentando los procesos respecto a normas internas y estndares internacionales z Planificar y documentar las pruebas z
Grupo de Investigacin Univalle - 2006 29

En la dispositiva se mencionan algunas polticas que se requieren para lograr calidad y, sobretodo, ser productivo a la hora de desarrollarsoftware. Elproblemaes: Cmopuedolograrlacalidadyserproductivo? Ms adelante, presentaremos algunos de los paradigmas mas recomendados en el mundo paraeldesarrollodesoftware.

En las siguientes diapositivas explicaremos algunos Modelos de Proceso de Calidad, los cuales pueden ayudar, en gran medida, en las instituciones y empresas de software a mejorar elprocesodedesarrollodesoftware. Antes de continuar se define lo que es la Calidad Que de Software. hacer? Eselgradoenelqueelsoftwaresatisface una serie de requisitos de operacin preestablecidos, los estndares de desarrollo especificados con anterioridad y las caractersticas inherentes a todo producto de software desarrollado de maneraprofesional(Pressman) Existen tres puntos importantes respecto a la definicin de la calidad de software que menciona Pressmanyson: 1. Los requisitos del software son la base de las medidas de la calidad. La falta de concordanciaconlosrequisitosesunafaltadecalidad. 2. Los estndares definen un conjunto de criterios de desarrollo que guan la forma en que se aplica la ingeniera de software. Si no se siguen esos criterios, casi siempre habrfaltadecalidad. 3. Existe un conjunto de requisitos implcitos que a menudo no se mencionan. Si el software se ajusta a sus requisitos explcitos pero falla en alcanzar los requisitos implcitos,lacalidaddelsoftwarequedaenentredicho. En prximos textos se hablar de la Calidad de Software en detalle, adems aprenderemos cmo podremoscontrolarlayllevarlaacabo. Dentro de la teora de TQM (Gestin de Calidad Total) la calidad de un producto es mayormente determinadaporlacalidaddelprocesoqueesusadoparadesarrollarymanteneraeste.
Introduccin al Desarrollo de Software
Grupo de Investigacin Univalle - 2006 30

12
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Cuatro puntos de la Calidad de Software


Proceso de Software

Personal Proyecto

Tecnologa Producto

Grupo de Investigacin Univalle - 2006

31

Para continuar. Existen cuatro puntos importantes dentro de la calidad, cada uno de estos debe ser controlado y medido para ver si se va mejorando o si se est ejecutando correctamente. El primero es el personal, ya se ha dicho que es muy poco probable que una sola persona pueda lograrrealizartodaslasactividadesdeldesarrollo de software. El desarrollo se debe realizar en equipo,elcualdebecoordinarsusactividades. El segundo punto es el proyecto, este tiene un ciclo de vida, el cual debe ser planificado y controlado.Enprximostextoshablaremos

delaGestindeProyectosdeSoftware Otro punto importante es el producto, este tiene un ciclo de vida, las etapas son conocidas ampliamente (planificacin, anlisis, diseo, implementacin), pero el resultado, el producto, debe ser validado y certificado por alguna organizacin externa o por un grupo interno que garanticequeelproductoeselcorrecto,comotodoproductotangible. Por ltimo, est el Proceso de Software, es el punto ms importante y ser el que dar los mrgenes para llevar a cabo el desarrollo, el proceso de software involucra la planificacin de los otrospuntosyavistos. El proceso opera en dos niveles (nivel organizacional y nivel de proyecto). A nivel de proyecto ayudaasatisfacerlasmetasdelproyecto(AltaCalidadyproductividad).Aniveldelaorganizacin ayudaasatisfacerlosobjetivosdelaorganizacindepoderpredecirymejorar. Dentro de la diapositiva existe un quinto punto, que es la Tecnologa. Si no se toma en cuenta, es muy probable no cumplir con los requisitos. No se puede desarrollar, hoy en da, un software en una maquina con un procesador 8086, ya que esta tecnologa es muy antigua y no va a cumplir conrequisitosnofuncionalesdelsoftware. Ahora se ve algunos aspectos para entender lo El Proceso de Software queeselProcesodeSoftware. El conjunto de actividades, planes, controles, z Un proceso es un conjunto de revisiones,pruebas,entreotros,formanpartede prcticas realizadas para alcanzar un proceso. Este conjunto debe apoyarse en un propsito dado; este puede herramientas, mtodos, personas y tecnologa. incluir herramientas, mtodos, La unin de estos puntos va conformando, a materiales, y/o personas. medida que pasa el tiempo, disciplinas para desarrollarundeterminadoproducto. Todolosealado,estpresenteenelProcesode Software. Con la diferencia de tener un Ciclo de VidadelProductodistinto.
Grupo de Investigacin Univalle - 2006 32

13
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Muchos grupos de investigacin en el mundo enterohantratadodeestandarizarelprocesode software. Se dice que una organizacin es z Algunos Modelos de Proceso de Calidad medible, si sigue un proceso definido. Un z CMMI. Capability Maturity Model concepto de proceso definido es que todas las z SPICE. Software Process Improvement and actividadesestndescritasyestandarizadas. Capability dEtermination (ISO-15504) Desde los aos 80s se han detectado muchos z ISO-9001: 2000 z MSF (Microsoft Software Framework) problemas al desarrollar software, para muchos el software era incompleto. El mayor problema TODOS ESTABLECEN NIVELES DE era el mantenimiento, no se poda modificar MADUREZ EN EL DESARROLLO porque no exista una documentacin para aprendercmoestabadesarrollado. Es por eso que muchos grupos de investigacin han propuesto modelos de Proceso de Calidad para el Software, los cuales tienen como objetivo fundamental ayudar a obtener la calidad de software que es requerida para las organizaciones, cumpliendo con exactitud, eficacia y eficiencia sus requisitos. En la diapositiva se presenta algunos de los Modelos de Proceso de Calidad para el Software. Todos estos, establecen niveles de madurez en el desarrollo. La palabra madurez se puede interpretar como la capacidad de desarrollar correctamente y ptimamente una actividad. Es como el ciclo de vida como persona. A medida que pasa el tiempo y se crece, cada uno de nosotros, puede realizar ms actividades. A medida que se estudia, se aprende a resolver problemas. Debe pasar un tiempo de madurez para que las actividades, establecidas, para desarrollar software sean correctamente llevadas a cabo. Para lograr esto debe iniciarse con polticasdecontroldeevaluacindelosprocesosquesetieneenlaempresadesoftware. Cada uno de estos procesos definidos, sealados en la diapositiva, es una gua para mejorar los procesosinternosdentrodeldesarrollodesoftware. Veamos algunas de las caractersticas de los SPICE (Software Process Improvement and Capability dEtermination) modelosdeproceso. La SPICE, ms conocida como ISO15504 nos z SPICE, es equivalente a la ISO-15504 ofrece la posibilidad de definir, desplegar y z Surgi como un esfuerzo de colaboracin determinarprocesos. internacional que deba materializarse en un nuevo estndar para la valoracin del proceso ProcesoscomoGestin,derelacinconelcliente del software y proveedor, la organizacin y por ltimo el z La realizacin de pruebas de campo sera una procesodesoporte. labor fundamental Ha surgido, como cualquier norma ISO con la z Nos permite valorar los procesos software, fomentando la auto-evaluacin colaboracin de muchas organizaciones internacionales, lastimosamente, esta norma se quedoenproyecto,noseaprob,estoquiere decirquenollegoasernormainternacional.Sinembargoesmuyaconsejabletenerconocimiento delascaractersticasypuntosdevista.
Introduccin al Desarrollo de Software
Grupo de Investigacin Univalle - 2006 33

Grupo de Investigacin Univalle - 2006

34

14
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

SPICE (Software Process Improvement and Capability dEtermination)


z Evaluacin

del proceso, mejora del proceso y la determinacin de la capacidad z Dos dimensiones:


Determina los procesos a ser valorados, definiendo el proceso de vida del software. z Presenta una escala para evaluar la capacidad.
z
35

SPICE, tiene un procedimiento de evaluacin de los procesos, algo muy importante para poder certificarse. Se puede trabajar en dos dimensiones. Una es la determinacin de los procesos importantes para evaluarlos y la segunda dimensin es que determina una escala para la evaluacin de la capacidad. Se entiende la palabra capacidad comolahabilidaddelograralgo.

Grupo de Investigacin Univalle - 2006

ISO 9001:2000
z Define

y establece la poltica y objetivos de calidad de una empresa permitiendo a la misma implementar los procedimientos necesarios para alcanzar las metas prevista z Se basa en tres conceptos:
Los procesos z La mejora continua z Orientacin al cliente
z
Grupo de Investigacin Univalle - 2006 36

Otra norma ISO es la 9001. Donde se establece que cada organizacin debe definir, establecer polticas y objetivos de calidad para cada uno de losprocesosquelepermitenalcanzarsusmetas. Como se ve en la diapositiva se basa en tres conceptos, los procesos, la mejora continua y la orientacinalcliente.

ISO 9001:2000
z Tiene
z

como premisa

Medir z Mejorar z Analisar


z Medir

Tiene como premisa medir los procesos para analizar y mejorar. Esta premisa, tiene embebido el control de calidad, ya que la medicin est involucrada en el plan de aseguramiento de calidad.

es la premisa fundamental z El seguimiento y medicin del producto es equivalente al control de calidad clsico
Grupo de Investigacin Univalle - 2006 37

15
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

MSF (Microsoft Software Framework)


z z z

Se emplea como una metodologa gil Es flexible e interrelacionada con una serie de conceptos, modelos y prcticas de uso Se compone de varios modelos
z z z z z z

Modelo de Arquitectura del Proyecto Modelo de Equipo Modelo de Proceso Modelo de Gestin de Riesgo Modelo de Diseo del Proceso Modelo de Aplicacin
Grupo de Investigacin Univalle - 2006 38

Otromarco detrabajoeseldeMicrosoft,queha liberado el MSF o Microsoft Solutions Framework. Muchos de los desarrolladores lo utilizan como una metodologa gil, sin embargo se adapta fcilmente a un desarrollo grande y complejo. Se compone de varios modelos, como sepuedeobservarenladiapositiva.

Introduccin al Desarrollo de Software


z CMMI
z

(2001)

Departamento de Defensa de los Estados Unidos z El Instituto de Ingeniera de Software (SEI) z Universidad Carnegie Mellon
Hewlett-Packard Company, Ericsson, IBM, Boeing, Computer Sciences Corporation , Motorola, Software Productivity Consortium
Grupo de Investigacin Univalle - 2006 39

Por ltimo est el Modelo de Madurez de Capacidad Integrado liberado en el ao 2001 por el departamento de defensa de los Estados Unidos con la colaboracin del Instituto de Ingeniera de Software de la Universidad de CarnegieMellon. En este proyecto han participado muchas instituciones y personajes del desarrollo de software,comosepuedeverenladiapositiva. Se ve a continuacin algunas caractersticas de estemodelodecalidad.

Desde la dcada de los aos 80s, muchas de las empresas que utilizaban software tenan problemas para el mantenimiento o para z CMMI mantener nuevas funcionalidades del software z El propsito del proyecto es proveer con el cual trabajaban. A medida que pasan los mejoras en costo, cumplimiento de aos el problema fue creciendo, es por eso que cronogramas y calidad de los proyectos z Esta estructura por niveles de madurez desde mediados de los 90s, Estados Unidos se z Cada nivel de madurez esta dividido por puso en la tarea de solucionar estos problemas, reas surgiendo lo que es CMM en su primera versin y ahora CMMI. Este ltimo tiene el propsito de minimizar el costo de desarrollo dentro del ciclo de vida, esto implica el cumplimiento de los distintoscronogramasqueseplanificanpara lograr un software de calidad. Para el logro de este propsito debe incrementar el desempeo y paraestodebemejorarselacapacidaddetodopuntodevista. Unejemplodecapacidadydesempeoeselsiguiente: Supongaunproceso:CodificarProbarEntregar Delosdatosdemuchosproyectosseobtienequelacalidaddelacapacidaddelprocesoes de36defectosporKLOC(milesdelneasdecdigo) Sisedeseaentregarelsoftwarecon2defectosporKLOC,nosepuedeutilizaresteproceso Conclusin:Debemejorarseelproceso Cmo:MejorarelprocesoaCodificarRevisarCdigoProbarEntregar
Introduccin al Desarrollo de Software
Grupo de Investigacin Univalle - 2006 40

16
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Como otros modelos, CMMI est estructurado por niveles de madurez, se puede decir que est estructuradoporescalonesogradas,queamedidaquepasaeltiempoylograndolamejoradelas actividadesdeldesarrollodesoftwareseobtieneunamadurez. Cada nivel de madurez esta dividido por reas de trabajo. Que se explicarn muy brevemente a continuacin. Dentro de este modelo existen dos CMMI (Capability Maturity Model representaciones, una es Continua y la otra por Integration) Etapas. Esta divisin se debe, z Existen dos representaciones fundamentalmente, a que muchas empresas han z Continua. Permite formar una estrategia de mejora logrado certificarse por CMM, estas empresas que se adapte a las metas globales de la respectiva organizacin generalmente seleccionan la representacin z Etapas. Est dividido por niveles de madurez Continua para volver a certificarse. Tambin, Nivel 1. Inicial Nivel 2. Administrado existen empresas que no estn certificadas por Nivel 3. Definido Nivel 4. Administrado Cuantitativamente CMM, si no por otro modelo, si estas empresas Nivel 5. Optimizado quieren certificarse por CMMI deben seleccionar la representacin Continua. Como se puede ver en la diapositiva, el objetivo es que permite formarunaestrategiaque seadaptealosprocesosoactividadesdelaempresaquedesarrollasoftware. Pero, otras que inician el camino de la mejora del proceso de desarrollo deben seleccionar la representacinporEtapas.Queseexplicarnbrevemente. Cada nivel es un objetivo dentro de las Introduccin al Desarrollo instituciones u organizaciones que desarrollan de Software software, cada uno de ellos garantiza al cliente z CMMI, Niveles de madurez. (contratanteolaorganizacinalacualpertenece z Nivel 1 (Inicial). No hay proceso definido el grupo de desarrollo) que el software a z Nivel 2 (Administrado). z Administracin de requisitos desarrollarobtengaunacalidadadecuada. z Planificacin de proyectos Dentro del primer nivel de CMMI, no existe un z Monitoreo y Control del Proyecto. z Administracin del Acuerdo del Proveedor. proceso definido, esto quiere decir que es un z Medicin y Anlisis. desarrollo a la suerte (muchas veces emprico o z Aseguramiento de Calidad del Proceso y el Producto. artesanal), mucho riesgo de no culminar z Administracin de Configuracin exitosamente con el desarrollo, pero se realizael trabajo. El segundo nivel, tiene el nombre de Administrado, el cual se adhiere a la poltica del grupo de desarrollo, se siguen planes y procesos documentados, se aplican los recursos adecuados, se asignan responsabilidades y autoridad, se entrena al personal, se monitorea, controla y evala
z z z z z
Grupo de Investigacin Univalle - 2006 41 Grupo de Investigacin Univalle - 2006 42

Lacalidaddeesteprocesoesligeramentemejor,esde25defectosporKLOC Siseusaesteprocesosetienelaposibilidaddeentregara2defectosporKLOC Esteprocesonopuedeentregara1DefectoporKLOC Conclusin:Debemejorarseelproceso Cmo:MejorarelProcesoaCodificarRevisarHacerPlanRevisarPlanProbar Entregar Lacalidaddeesteprocesosermejor,esde0.52defectosporKLOC Sepuedeusaresteprocesoparaentregara1defectoporKLOC

17
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

procesos,identificayenvuelvealosinvolucradosyserevisaconladireccin El tercer nivel tiene el nombre Definido. El Introduccin al Desarrollo proceso del proyecto es personalizado desde el de Software proceso estndar de la organizacin, se entiende z CMMI, Niveles de madurez Nivel 3 (Definido). el proceso cualitativamente, el proceso Desarrollo de Requisitos. Solucin Tcnica. contribuye a la mejora de la organizacin. En la Integracin del Producto. Verificacin. diapositiva se ve las reas que involucra este Validacin. Enfoque del Proceso Organizativo. nivel. Cada una de estas reas debe estar Definicin del Proceso Organizativo. Entrenamiento Organizativo. definida. Se entiende como definido que este Administracin integrada del Proyecto. Administracin de Riesgos descrito el proceso que se va a seguir, de esta Anlisis de Decisiones y Resolucin. Ambiente Organizativo para la Integracin. forma se est estandarizando el proceso. Una Equipo Integrado. estandarizacinesunadefinicin.
z
z z z z z z z z z z z z z Grupo de Investigacin Univalle - 2006 43

El cuarto nivel, denominado Administrado Cuantitativamente, mide el desempeo del proceso, estabiliza el proceso, controla los z CMMI, Niveles de madurez cronogramas y trata las causas de las variaciones z Nivel 4 (Administrado Cuantitativamente ) especiales. Como se ven en a diapositiva existen z Desempeo Funcionamiento del Proceso Organizativo. dos reas, la primera est encargada de medir el z Administracin Cuantitativa del Proyecto desempeodelproceso,enestenivelyasetiene z Nivel 5 (Optimizado) un proceso organizado y la segunda es la z Innovacin y Despliegue Organizativo. administracindelproyecto. z Anlisis de Causas y Resolucin El quinto nivel, denominado Optimizado, est dedicado a la prevencin de defectos, mejora proactiva,lainnovacintecnolgicaseinsertay despliega,paraestoexisteunreadeAnlisisdeCausasyResolucin. Las ventajas de emprender el camino de la Introduccin al Desarrollo mejora continua del proceso son evidentes. En de Software primer lugar est el incremento de la z Ventajas de CMMI productividad, mejorar la comunicacin con el z Incremento de la productividad cliente, mejor comunicacin con los z Mejor comunicacin con el cliente profesionales involucrados en el proyecto de z Mejor comunicacin con los profesionales desarrollo y mayor satisfaccin de las solicitudes de la empresa o institucin z Mayor satisfaccin de las solicitudes de los yrequisitosdelosclientes.
Introduccin al Desarrollo de Software
Grupo de Investigacin Univalle - 2006 44

clientes

Grupo de Investigacin Univalle - 2006

45

18
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Conclusiones
z Se

ha explicado brevemente los distintos captulos del documento, que permitirn realizar una aplicacin Web, lo ms importante es que se tendr parte de la documentacin correspondiente a la aplicacin

Al inicio de la presentacin se ha explicado las caractersticas y objetivos que tiene el texto. El objetivoprincipaldeestetextoydelconjuntode documentos es realizar una aplicacin Web que permita describir todo el Ciclo Bsico de Vida del ProductodeSoftware.

Grupo de Investigacin Univalle - 2006

46

Conclusiones
z Se

ha logrado ver los problemas ms comunes en el desarrollo de software. No hay que olvidar que mantener un software es parte de las etapas que corresponde al ciclo de vida

Porlomenosdebeseleccionarseuna metodologaycumplirla,deesaformasepuede iniciarlamejoradeldesarrollodesoftwareyno tenerlosproblemasanteriormentesealados. Otra alternativa para iniciar la mejora del Proceso de Software es, implementar algunas reglas o listas de comprobacin, que con el tiemposepuedenvolverestndaresdentrodela institucinylograrquelosdesarrolladoreshagan susactividadescorrectamente
47

Grupo de Investigacin Univalle - 2006

Conclusiones
z Por

ltimo se ha visto algunos Modelos de Proceso de Calidad para el Desarrollo de Software, los cuales nos sirven de referencia para tomar polticas en nuestra vida como profesionales.

Es muy importante tener conocimiento de los modelos de calidad para el software. Este conocimiento no debe ser solo para los Ingenieros de Sistemas Informticos, sino para todos los que estn involucrados en la administracin de recursos para el desarrollo de software u otra persona que necesite evaluar un determinado software para su institucin u organizacin.
48

Grupo de Investigacin Univalle - 2006

19
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

INTRODUCCINAMICROSOFT.NET

Iniciamoslaaventurarealizandounaintroduccina Microsoft.NET
APRENDA A DESARROLLAR UNA APLICACIN EN 48 HORAS

Grupo de Investigacin Univalle - 2006

Introduccin a Microsoft . NET


z

Objetivos
z z

Introduccin a M i crosoft .NET Conocer z Common Language Runti me (CLR, Lenguaje Comn en Ti empo de Ej ecucin) z Mi crosoft Intermediate Language ( MSIL, LenguajeIntermadi o de Mi crosoft) z Base Class Li brary (BCL, Librera de clase base) z Common Type System (CTS, Sistema de Ti pos Comn)
Grupo de I nvestigacin Univalle - 2006 2

Dentro de este conjunto de diapositivas veremos de forma bsica las caractersticas de la mini arquitecturaMicrosoft.NET. Conoceremos las caractersticas del Runtime, del cdigo MSIL, la Librera de Clases Base y el Sistema deTiposComn. Estas son la caractersticas principales que se debe conocer para comprender la nueva filosofa de programacin

Desde la segunda guerra mundial exista la iniciativa decrearunamquinaquepuedaayudaraminimizar los clculos matemticos. La iniciativa fue marcada z La dcada del 80 fue marcada por el cuando el hombre llego a la Luna, sin embargo, las surgi mi ento de la Computadoras computadoras de ese tiempo no podan ser Personales y de la i nterfaz grfica alcanzadas por las personas comunes. Es en la z En la dcada del 90 Internet per miti dcada de los aos 80s donde instituciones conectar computadoras en una escala pequeas y personas con bastante dinero pudieron global tener una computadora. Esta dcada tambin se z Ahora, los Servici os Web basados en caracteriza por la definicin de una interfaz que XML pueda ayudar a los usuarios a realizar su trabajo con lacomputadora.Amediadosdeladcadadelos90s surgi, la denominada autopista de la informacin, Internet.Muchos conocenlahistoriadeInternet.Ahoraenestetiempo,sehabladelosServiciosWeb,queestenbasea los protocolos (lenguajes) de comunicacin de Internet como el http o el XML, estndares internacionales de comunicacin. Los Servicios Web, son Sistemas de Servicios o Sistemas sin una Interfaz que permita interactuar con el usuario. Se ver con mayor profundidad los que es un Servicio Webduranteeldocumento.

Introduccin a Microsoft . NET

Grupo de I nvestigacin Univalle - 2006

20
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Introduccin a Microsoft . NET


z

El objeti vo de .NET es per mitir, a sub si stemas, comuni carse entre si y como tambi n, a sistemas heterogneos dentro y fuera de la empresa
z

La comunicacin debe ser independiente del sistema operativo, lenguaje o modelo de programacin

Uno de los objetivos principales de .NET, es la comunicacin dentro y fuera de la institucin, sin importarlainterfazoelsistemaoperativo.Microsoft ha creado los Servicios Web y otras herramientas basadas en XML y otros protocolos, que dan la posibilidad de desarrollar aplicaciones que cumplan conesteobjetivo

Grupo de I nvestigacin Univalle - 2006

Introduccin a Microsoft .NET


z

Para conseguir la independencia entre la comunicacin se han creado varios estndares (http://www.w3c.org)
z z

XML (Lenguaje de marcas Extendido), Es un formato universal para representar los datos SOAP (Protocolo de Acceso a Objetos Simples), Es un protocolo que permite mover los datos entre aplicaciones y sistemas. Es el protocolo que permite invocar a los servicios Web

Grupo de Investigacin Univalle - 2006

Dentro de World Wide Web Consortium (W3C), se han aprobado varios protocolos que garantizan la independencia entre la comunicacin en distintos sistemasoperativos,comoporejemplo: El XML, es un lenguaje que permite representarlosdatos SOAP, es un protocolo que permite manipular objetos simples entre aplicaciones ysistemas Otro protocolo es el UDDI, este es uno de los ms importantes, y que se usa para publicar y encontrar Servicios Web que estn disponibles a travs de Internet Y por ltimo, est el WSDL, que tambin es un lenguajededescripcinparalosServiciosWeb

Introduccin a Microsoft .NET


z

UDDI (Descubrimiento, Descripcin e Integracin Universal), es un lenguaje que permite publicar, encontrar y usar los servicios Web basados en XML (Pagina Amarilla) WSDL (Lenguaje de Descripcin de Servicios Web), es un lenguaje que permite describir la funcionalidad que implementa un servicio Web

Grupo de Investigacin Univalle - 2006

21
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Introduccin a Microsoft .NET


z

El Concepto fundamental de esta nueva tecnologa es integrar las aplicaciones a travs de una arquitectura orientada a sevicios, es una nueva manera de ver las cosas y hacerlas
z

Comosehadichoanteriormente.NETestorientada los servicios, por este motivo es esencial entender correctamente la arquitectura que involucra esta tecnologa. Muchos autores hablan de una tercera generacin deInternet

Tercera generacin de Internet

Grupo de Investigacin Univalle - 2006

Introduccin a Microsoft .NET


z

Romper Barreras entre


z

z z

Distintas aplicaciones con distintos lenguajes de programacin Los sistemas y la gente que los utiliza Las organizaciones que desarrollan

La meta de Microsoft con esta nueva tecnologa es romper barreras de todo tipo, como se ve en la diapositiva, se seala varias dificultades que se tenan al programar en distintos lenguajes y plataformas. Estas dificultades han tratado de ser resueltas con esta tecnologa. Usted ser el que juzgue al final de este documento si realmente Microsoft ha cumplido la tarea de romper estas barreras.
8

Grupo de Investigacin Univalle - 2006

Introduccin a Microsoft .NET


z

La plataforma de .NET no es ms que un conjunto de tecnologas para desarrollar y utilizar Formularios Web, Servicios Web y aplicaciones de Windows que se comunican a travs de XML

.Net no es ms que un conjunto de tecnologas que nos ayudana llevar a cabo el desarrollo de software, pudiendo integrar formularios Web, formularios Windows y Servicios Web en una sola aplicacin basada en XML. Dentro del documento solo se ver enlapartedeimplementacin,lacualnosayudara llevaracabolacodificacin.

Grupo de Investigacin Univalle - 2006

22
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Conlasherramientasqueproporciona.NETsepuede crear un mundo de servicios de distintos tipos. Se puede colocar aplicaciones en varios servidores que estn conectados entre s, para lograr que distintos tipos de usuarios (por ejemplo Computadoras, celulares y otros componentes que utilizan los usuarios) obtengan los mismos servicios que el equipo de desarrollo ofrece, toda la comunicacin, ya sea, entre los servidores o los servidores a los clientes est a travs del lenguaje XML, que permite lograr esta comunicacin. Obviamente, cada usuario tendrunasugerenciaparamejorarlasaplicaciones. Un equipo de desarrollo solo puede dedicarse a desarrollar Servicios Web, para luego publicarlos y administrar su acceso, otros equipos se encargaran de desarrollar la interfaz que utilizarn los usuarios finales. Como se ha dicho anteriormente, se busca una Introduccin a Microsoft .NET aplicacin o plataforma para conseguir aplicaciones que se adapten al usuario y que el usuario no se z Se busca crear una plataforma de adapte a la aplicacin. Se debe conseguir servicios Web para conseguir aplicaciones centradas en los usuarios, adems la aplicaciones centradas en el usuario informacin del usuario debe estar en los servidores z La idea es que el usuario no debe adaptarse a la aplicacin sino por el y no as en el dispositivo que maneja la interfaz, a contrario la aplicacin debe reconocer al estoseconocecomoclientedelgado

Introduccin a Microsoft .NET

Grupo de Investigacin Univalle - 2006

10

usuario La informacin del usuario no debe estar relacionada con ningn dispositivo
Grupo de Investigacin Univalle - 2006

11

Introduccin a Microsoft .NET


z

Los Componentes de la plataforma .NET pueden interactuar de distintas maneras. Esta comunicacin es permitida por los servicios Web que integran los distintos tipos de dispositivos y componentes

Como se ha dicho anteriormente todos los componentes que han sido desarrollados pueden comunicarse a travs de los Servicios Web que garantizanlaintegracin

Grupo de Investigacin Univalle - 2006

12

23
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Introduccin a Microsoft .NET


z

Cuatro tipos de Interacciones


z z z z

Cliente con Cliente Cliente con Servidor Servidor con Servidor Servicio con Servicio

Grupo de Investigacin Univalle - 2006

13

Dentro de esta comunicacin existen cuatro tipos, comosepuedeverenladiapositiva. Cliente con Cliente: Smart Clients o dispositivos pueden proveer de servicios Web y utilizarlos para permitir que la informacin est disponible en todo momentoylugar Cliente con Servidor: Los servicios Web permiten que un servidor comparta datos conunaPCoundispositivomvilvaInternet Servidor con Servidor: Una aplicacin en un servidorpuedeprogramticamenteaccedera otraaplicacinutilizandounservicioWeb

comointerfase Servicio con Servicio: Un servicio Web puede invocar a otro, aumentando de esta manera la funcionalidaddisponible .NET ofrece un entorno de ejecucin para sus Common Language Runtime aplicaciones conocido como CLR. La CLR es la (CLR) implementacin de Microsoft de un estndar z El Runtime de Lenguaje Comn provee llamado Common Language Infraestruture. ste fue lo que se llama cdigo administrado es creado y promovido por la propia Microsoft pero decir un entorno que provee servicios desde hace aos es un estndar reconocido automticos al cdigo que se ejecuta mundialmente por el European Computer z El CLR es el ncleo de la plataforma ManufacturersAssociation(ECMA). .NET. Es el motor encargado de gestionar la ejecucin de las El CLR/CLI esencialmente define un entorno de aplicaciones ejecucin virtual independiente en el que trabajan las aplicaciones escritas con cualquier lenguaje .NET. Este entorno virtual se ocupa de multitud de cosas importantesparaunaaplicacin:desdelagestin delamemoriaylavidadelosobjetoshastalaseguridadylagestindesubprocesos. Todos estos servicios unidos a su independencia respecto a arquitecturas computacionales convierten la CLR en una herramienta extraordinariamente til puesto que, en teora, cualquier aplicacin escrita para funcionar segn la CLI puede ejecutarse en cualquier tipo de arquitectura de hardware. Por ejemploMicrosoftdisponedeimplementacinde.NETparaWindowsde32bits,Windowsde64bitse inclusoparaWindowsMvil,cuyohardwarenotienenadaqueverconlaarquitecturadeunordenador comn. El CLR esencialmente define un entorno de ejecucin virtual independiente en el que trabajan las aplicacionesescritasconcualquierlenguaje.NET
Grupo de Investigacin Univalle - 2006 14

24
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Common Language Runtime (CLR)

La estructura del CLR se la puede observar en la diapositiva, tienevariasfuncionalidadesparaofrecer alosdesarrolladores. Una de las caractersticas del CLR es que genera el cdigomquinanativo

Grupo de Investigacin Univalle - 2006

15

Common Language Runtime (CLR)


z

Servicios del CLR


z z

z z z

Cargador de Clases: Permite cargar en memoria las clases Compilador MSIL a nativo: Transforma cdigo intermedio de alto nivel independiente del hardware que lo corre a cdigo de mquina propio del dispositivo que lo ejecuta. Administrador de Cdigo: Coordina toda la operacin de los distintos subsistemas del Runtime de lenguaje comn Colector de Basura: Elimina de memoria objetos no utilizados. Motor de Seguridad: Administra la seguridad del cdigo que se ejecuta

SepuedeobservaralgunosserviciosdelCLR: Los principales son el cargador de clases, el compiladorMSILanativo,queesindispensablepara que el cdigo se adapte a cualquier arquitectura, el Administrador de Cdigo que coordina las operaciones del CLR, el recolector de Basura que elimina a los objetos que no tienen enlaces y ya no sernusados,elmotordeseguridad. Otros servicios son el motor de depuracin, el chequeador de tipos que permite realizar un control de la asignacin de memoria a las variables, el administrador de excepciones, que permite realizar un manejo de los posibles aspectos no controlados de la aplicacin, el soporte de hilos que permite realizar una ejecucin de cdigo paralela, el empaquetadordeCOMquepermitecomunicaralos componentes COM con el .NET Framework y por ltimo la librera de clases base que es una interfaz paralacomunicacinconel.NETFramework.

Grupo de Investigacin Univalle - 2006

18

Common Language Runtime (CLR)


z

Servicios de CLR
z

z z z z

Motor de Depuracin: Permite hacer un seguimiento de la ejecucin del cdigo aun cuando se utilicen lenguajes distintos. Chequeador de Tipos: Controla que las variables de la aplicacin usen el rea de memoria que tienen asignado. Administrador de Excepciones: Maneja los errores que se producen durante la ejecucin del cdigo Soporte de Hilos: Permite ejecutar cdigo en forma paralela Empaquetador de COM: Coordina la comunicacin con los componentes COM para que puedan ser usados por el Marco de Trabajo. Soporte de la Librera de Clase Base: Interfaz con las clases bases del Marco de Trabajo
Grupo de Investigacin Univalle - 2006 19

25
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Common Language Runtime (CLR)


z

Como se puede deducir, el CLR tiene la funcin de gestionar la ejecucin de las aplicaciones diseadas para la plataforma .NET

ComosepuedeverelCLReselncleodela plataforma.NETyaquepermite,mediantetodossus servicios,laejecucindelcdigo.

Grupo de Investigacin Univalle - 2006

20

Common Language Runtime (CLR)

Una aplicacin .NET desarrollada en C# tiene diferentes niveles que pueden diferenciarse claramente, entre estos niveles se encuentran los editores y diseadores, que interactan con el cdigo fuente el cual va directamente al compilador que lo lleva al lenguaje intermedio, luego independientemente del lenguaje se realiza una verificacin, una compilacin JIT para pasar al cdigo nativo y luego a la ejecucin del CLR propiamentedicha
21

Grupo de Investigacin Univalle - 2006

Microsoft Intermediate Language (MSIL)


Todos los compiladores de los lenguajes generan un cdigo MSIL y no un cdigo nativo z Es como la mquina virtual de JAVA y precisamente el cdigo MSIL es el cdigo mquina de esta mquina virtual
z

Ahora veremos lo referente al lenguaje intermedio de Microsoft que es el generado por los compiladores y acta de manera similar a una mquina virtual de JAVA, ste cdigo es independiente a cualquiera de los lenguajes .NET que se utilice y de la misma manera es independiente al hardware de la computadora que setengaydelsistemaoperativo

Grupo de Investigacin Univalle - 2006

22

26
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Microsoft Intermediate Language (MSIL)


z

Por qu el MSIL?
z

Una aplicacin nativa no puede utilizarse directamente en otros sistemas operativos, en ocasiones ni en distintas versiones del mismo sistema, y tampoco se ejecutaran en otros procesadores Por tanto, por cada procesador y sistema operativo es necesario generar un cdigo nativo
Grupo de Investigacin Univalle - 2006 23

La necesidad de tener el Lenguaje intermedio es evidente debido a que una aplicacin compilada en cdigo nativo no podra ejecutarse en un SO y en un procesador distinto al que fue compilado, lo que se logra con el MSIL es encontrar una manera de uniformizar todos los lenguajes de .Net para todas las plataformas tanto de software como de hardware

Microsoft Intermediate Language (MSIL)


z

Por qu el MSIL?
z z

.NET genera un cdigo intermedio Es independiente del sistema operativo y procesadores Para que un compilador genere un cdigo MSIL utiliza el Sistema Comn de Tipos

Como se dijo anteriormente el MSIL genera un cdigo que es independiente del lenguaje de programacin y de las plataformas, para lograr este cometido se usa el Sistema Comn de Tipos que lograunificaratodosloslenguajes.

Grupo de Investigacin Univalle - 2006

24

Microsoft Intermediate Language (MSIL)


z z z z z

El MSIL debe ser convertido a un cdigo nativo que entienda el CPU JIT se encarga de generar un cdigo nativo a travs del MSIL JIT ira generando cdigo nativo a medida que se necesite o se solicite. Solo se convierte una sola vez, a la segunda solicitud no es utilizado el JIT Por todo esto, se llama cdigo administrado
Grupo de Investigacin Univalle - 2006 25

Posteriormente de tener un cdigo intermedio ste se debe traducir en un cdigo nativo que sea entendibleporelCPU De esto se encarga el depurador JIT que es el depurador dinmico que utiliza la plataforma .NET, ste cdigo se va ejecutando a medida que se solicita, pero slo la primera vez, si se solicita un cdigoyacompiladoallenguajenativono seejecuta el depurador JIT, todo lo anteriormente mencionado sedenominacdigoadministrado.

27
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Microsoft Intermediate Language (MSIL)

Se muestra en la figura el diagrama de trabajo de .NET hasta la depuracin JIT , se muestra cmo se compila al MSIL, para pasar al compilador JIT y posteriormente pasar al cdigo nativo con el cdigo Administrado y el cdigo No Administrado que proporciona directamente el compilador del lenguaje.

Grupo de Investigacin Univalle - 2006

26

Microsoft Intermediate Language (MSIL)


File.asxp Qu lenguaje? Cdigo C# Compilador C# Compilador VB.NET HTML Compilador JIT Runtime Cdigo Nativo MSIL

Cdigo VB.NET

Ahora se muestra de manera grfica cmo trabaja la plataforma .NET dentro de un ejemplo prctico de una pgina Web en ASP.NET, lo que se muestra es que el archivo aspx se compila a MSIL por el compiladordellenguajeyposteriormentesellevaal compilador JIT para generar el cdigo nativo y todo ellosetraduceenunapginaHTML.

Grupo de Investigacin Univalle - 2006

27

Librera de clase base (BCL)


z

Es una librera incluida en el .NET Framework formada por cientos de tipos de datos, permite:
z

La BCL proporciona los bloques fundamentales para construir cualquier tipo de aplicacin, esta puede ser una aplicacin web, una aplicacin para Windows,ounservicioweb.

Acceder a los servicios ofrecidos por el CLR Obtener funcionalidades ms frecuentemente usadas a la hora de escribir programas Crear nuevas clases mediante herencia
Grupo de Investigacin Univalle - 2006 28

28
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Librera de clase base (BCL)


z z

Esta librera est escrita en MSIL A travs de las clases suministradas en ella es posible desarrollar cualquier tipo de aplicacin

La BCL est estructurada en clases, cada una particularmenteespecializada. La BCL generalmente sirve como el punto principal deinteraccineneltiempodeejecucin.

Grupo de Investigacin Univalle - 2006

29

Librera de clase base (BCL)


Espacio de nombres
System

Utilidad de los tipos de datos que contiene Tipos muy frecuentemente usados, como los los tipos bsicos, tablas, excepciones, fechas, nmeros aleatorios, recolector de basura, entrada/salida en consola, etc. Colecciones de datos de uso comn como pilas, colas, listas, diccionarios, etc. Manipulacin de bases de datos. Forman la denominada arquitectura ADO.NET. Manipulacin de ficheros y otros flujos de datos. Realizacin de comunicaciones en red.
Grupo de Investigacin Univalle - 2006 30

System.Collections

System.Data

System.IO System.Net

Estasclasesseconocencomonamespaces. El namespace System incluye los tipos bsicos, por ejemplostring,int32,datetime,boolean,etc. System.Collections contiene interfaces y clases que definencontenedorescomolistasyarreglos. System.IOimplementaclasesclasesdemanipulacin dearchivoydirectorio,puertosseriales,etc. El espacio de nombres System.Reflection contiene clases e interfaces que proporcionan una vista administrada de los campos, los mtodos y los tipos cargados, con la posibilidad de crear e invocar tipos dinmicamente. Runtime.Remoting contiene clases que admiten y controlan los canales y los receptores de canales, que se utilizan como el medio de transporte cuando unclientellamaaunmtodoenunobjetoremoto. System.Threading proporciona clases e interfaces que permiten la programacin multiproceso. Adems de clases para la sincronizacin de actividadesdesubprocesosyelaccesoadatos

Librera de clase base (BCL)


System.Reflection System.Runtime.Remoting System.Security System.Threading

Acceso a los metadatos que acompaan a los mdulos de cdigo. Acceso a objetos remotos. Acceso a la poltica de seguridad en que se basa el CLR. Manipulacin de hilos.

System.Web.UI.WebControl Creacin de interfaces de usuario basadas en s ventanas para aplicaciones Web. System.Windows.Forms

Creacin de interfaces de usuario basadas en ventanas para aplicaciones estndar. Acceso a datos en formato XML.
Grupo de Investigacin Univalle - 2006 31

System.XML

29
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Common Type System (CTS)


z

Sistema de Tipo Comn es el conjunto de reglas que han de seguir las definiciones de tipos de datos para que el CLR las acepte. Algunas reglas del CTS son las siguientes:
z

Cada tipo de dato puede constar de cero o ms miembros. Cada uno de estos miembros puede ser un campo, un mtodo, una propiedad o un evento. No puede haber herencia mltiple, y todo tipo de dato ha de heredar directa o indirectamente de System.Object.
Grupo de Investigacin Univalle - 2006 32

El CTS es utilizado por todos los lenguajes del framework.NET Unapartefundamentalde.NETesCLR,dondeelCTS no especifica ninguna sintaxis o tipo, sino define un conjunto de tipos comunes que pueden ser utilizadosporlosdistintoslenguajes. Un ejemplo es el alias que utiliza C# para el tipo de datos System.Int32, que en este lenguaje se maneja comoint Existen modificadores que establecern las restricciones de acceso a los datos de una clase, entre ellos public que permite el acceso desde cualquierpartedelcdigo. Private que permite el acceso solamente al cdigo a laclasealacualpertenece. Family para acceder desde la misma clase o clases heredadas. ElCLResunapartefundamentaldel.NETframework

Common Type System (CTS)


z

Los modificadores de acceso admitidos son


Cdigo desde el que es accesible el miembro Cualquier cdigo Cdigo del mismo tipo de dato Cdigo del mismo tipo de dato o de hijos de ste. Cdigo del mismo ensamblado Cdigo del mismo tipo o de hijos de ste ubicado en el mismo ensamblado Cdigo del mismo tipo o de hijos de ste, o cdigo ubicado en el mismo ensamblado
Grupo de Investigacin Univalle - 2006 33

Modificador
public private family assembly family and assembly family or assembly

Resumen
z z z

Se ha visto lo importante que es el CLR dentro de la plataforma .NET Se ha explicado de manera general las funciones que tiene disponible el CLR Se dio un concepto general de los protocolos de comunicacin que utiliza .NET para interactuar con las distintas aplicaciones Se vio las caractersticas de la Librera de Clases, la cual nos permitir realizar aplicaciones
Grupo de Investigacin Univalle - 2006 34

30
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

ELEMENTOSBSICOSDEPROGRAMACINC# En este documento se realizar una introduccin al lenguaje de programacin C#, el lenguaje de Microsoftparaeldesarrollodeaplicaciones
APRENDA A DESARROLLAR UNA APLICACIN EN 48 HORAS

Grupo de Investigacin Univalle - 2006

Elementos Bsicos de Programacin con C#


z Objetivos

Introduccin al lenguaje Caracterstica del lenguaje z Tipos de Datos z Espacios de Nombres z Clases, objetos z Visibilidad de una clase y sus miembros z Manejo de excepciones
z z
Grupo de Investigacin Univalle - 2006 2

Los objetivos sealados en la diapositiva servirn paraintroduciralaprogramacinenC#.NET. Realizaremos una introduccin breve, pasando por algunas de las caractersticas del lenguaje, tipos de datos, espacios de nombres, la creacin de clases y objetos. Explicaremos, tambin, la visibilidad de cada clase que se utiliza y el manejo de excepciones tan importante para controlarloserrorescometidosporelusuario.

Introduccin al Lenguaje C#
z z z z

Es un lenguaje desarrollado por la Microsoft para la plataforma de .NET Sus principales creadores son Scout Wiltamuth y Anders Hejlsberg La sintaxis y estructuracin de C# es muy parecida a la de C++ o Java C# es un lenguaje de programacin que toma las mejores caractersticas de lenguajes preexistentes como Visual Basic, Java y C++
Grupo de Investigacin Univalle - 2006 3

C# es un lenguaje de ltima generacin creado porMicrosoft.Eselnicolenguajequehanacido exclusivamente en Microsoft. Por este motivo se considera a este lenguaje como el lenguaje nativode.NET. Microsoft contrat al encargado de proyecto de Delphi, Anders Hejlsberg, el cual fue uno de los msinfluyentesparalacreacindeestelenguaje junto con Scout Wiltamuth. Ellos fueron los jefes deproyectoparaC#. Este lenguaje tiene la influencia de varios otros lenguajescomoc++,Java,VisualBasic,etc.

31
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Introduccin al Lenguaje C#
z El

hecho de ser relativamente reciente no implica que sea inmaduro z Su compilador es el ms depurado y optimizado de los incluidos en el .NET Framework SDK. z El lenguaje C# no ha sido creado tan solo por y para Microsoft y su plataforma .NET
Grupo de Investigacin Univalle - 2006 4

Introduccin al Lenguaje C#
z

Conjuntamente con Intel y HP, a finales del ao 2000 Microsoft remiti al ECMA (European Computer Manufacturers Association)
z z

El borrador del lenguaje C# El de CLI (Common Language Infraestructura)

Muchos de los desarrolladores han creado una resistenciaaestenuevolenguaje,sinconocerlas nuevas caractersticas y la facilidad de aprendizaje. Como se puede leer en la diapositiva, este lenguaje ha sido considerado maduro y tiene las mismas facilidades que los otros e incluso el compilador es el ms optimizado respecto a las lneas de cdigo generadasparaMSIL. El proyecto MONO ha desarrollado una versin de C# para Linux, esto quiere decir que este lenguaje no es exclusivo para .NET. En futuros aos se prev la posibilidad de programar en distintosSistemasOperativos LahistoriadeC#comienzaelao2000cuando IntelyHPcolaboranconMicrosoftparaenviarel borradordelaespecificacindeC#yelCLIala ECMA. Esto significa que cualquiera puede crear un compilador de C# para cualquier sistema operativo, recurriendo al estndar definido en la ECMA

Grupo de Investigacin Univalle - 2006

Una de las caractersticas fundamentales de este lenguaje es la sencillez. Se ver a continuacin algunos de los atributos de la sencillez para este z Sencillez. lenguaje: z El cdigo escrito en C# es autocontenido. Es Autocontenido, lo que significa que no z Portabilidad del cdigo. necesita de ficheros o archivos z No se incluye la herencia mltiple. adicionales z Modernidad. Portabilidad del Cdigo, ya que los tipos z La inclusin de una instruccin foreach que permita recorrer colecciones con facilidad y de datos bsicos son independientes del es ampliable a tipos definidos por el usuario compilador,sistemaoperativoomquina No se incluye la Herencia mltiple, los macros utilizados en C++ o la necesidad deunoperadordiferente. Otro punto importante es la modernidad y una de las instrucciones novedosas es el foreach que permiterecorrercoleccionescomomatrices,tablas,dataset,ect.

Caracterstica del lenguaje C#.

Grupo de Investigacin Univalle - 2006

32
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Caracterstica del lenguaje C#.


z Orientado
z

a Componentes.

La propia sintaxis de C# incluye elementos propios del diseo de componentes. Es decir, la sintaxis de C# permite definir cmodamente propiedades, eventos o atributos

Todo el lenguaje est orientado a componentes, seutilizaclasesbaseparalacreacindeotras.La estructura de una clase est estructurada para la creacindepropiedades,eventosyatributos

Grupo de Investigacin Univalle - 2006

Caracterstica del lenguaje C#.


z

Otra caracterstica es la seguridad de tipos de datos,comoseespecificaenladiapositiva

Seguridad de tipos.
z

z z

Slo se admiten conversiones entre tipos compatibles No se pueden usar variables no inicializadas Se puede controlar la produccin de desbordamientos en operaciones aritmtica A diferencia de Java, C# incluye delegados, siguen un enfoque orientado a objetos Pueden definirse mtodos que admitan un nmero indefinido de parmetros de un cierto tipo
8

Grupo de Investigacin Univalle - 2006

Tipos de Datos

Estos son todos los tipos de datos que ofrece el lenguaje para la programacin, existen otros tipos que no hay que confundir, son las clases comunes que utilizan todos los lenguajes de .NET,comoporejemploelDataSet.

Grupo de Investigacin Univalle - 2006

33
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Variables
z C#

requiere una asignacin definida, esto quiere decir que las variables deben ser asignadas o inicializadas antes de su uso. int Codigo = 12; string nombre = Pepe;

Grupo de Investigacin Univalle - 2006

10

Constantes
z Una

constante es una variable que no tendr un cambio en ejecucin. const int x = 1000; const char Nom= e ;

Toda variable hereda de una clase genrica denominada System.Object, la cual permite una conversin casi automtica hacia un tipo de dato string(cadenadecaracteres). Todavariabledebeseriniciaconunvalor,esuna de las reglas que no se debe olvidar. Los ejemplos que se muestran en la diapositiva definen a una variable de tipo numrica entera y laotraaunavariablecadenadecaracteres. El lenguaje C# es sensible a las maysculas y minsculas dentro del las letras, no es lo mismo X, como variable, a x, a estas dos letras las consideracomovariablesdistintas Las constantes son tipos de variables que no cambian de valor durante la ejecucin. Para declarar una variable debe adicionarse, al principiolapalabraconst,todoconminsculas,a continuacin el tipo de dato y el nombre de la constante,nohayqueolvidarasignarunvalorya queesunadelasreglas.

Grupo de Investigacin Univalle - 2006

11

Enumeradores
z

Es una alternativa de una constante, pero el enumerador puede contener un conjunto de constantes o valores estticos implcitos dentro de su cuerpo. enum Temperaturas { TempMax = 34, TempMin = 5, TempAgradable = 23, }
Grupo de Investigacin Univalle - 2006 12

Otra alternativa para definir una constante o variasconstanteseselenumerador. Un Enumerador puede contener varias constantes, esta caracterstica sirve para agrupar algunas constantes que tienen alguna similitud. Unejemplosepuedeobservarenladiapositiva. Se define un Enumerador con el nombre de Temperaturas. Dentro del enumerador existen tres distintas constantes, la Temperatura Mxima, Temperatura Mnima y la Temperatura Agradable.

34
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Enumeradores
La definicin de los enumeradores es la siguiente: enum <nombreEnumeracin> : <tipoBase> { <literales> } z Para poder visualizar o utilizar los valores de un enumerador solo se debe referencias al nombre del enumerador y a la constante. int Tiempo = Temperaturas.TempMax;
z

Grupo de Investigacin Univalle - 2006

13

En la anterior diapositiva se ha visto una definicin de un Enumerador. De forma general el Enumerador debe definirse iniciando con la palabra enum, como se ve en la diapositiva, seguido con el nombre del enumerador y el tipo de datos que va a manejar, todas las constantes que estn dentro del enumerador heredar el tipo de dato. Para utilizar el enumerador solo se debe referenciar al nombre el enumerador, un punto y el nombre de la constante que est dentrodelenumerador. La definicin de una cadena es relativamente fcil y similar a la definicin de una variable. Como se puede observar en la diapositiva, primero debe introducirse la palabra string, define que la variable va a ser una cadena, seguidamente el nombre de la variable string, en este caso Nombre. Como en todas las variables, esta debe iniciarse con un valor, en estecasoCarlosPoppe

Cadenas (string)
z

Para defi nir y utili zar un conj unto de caracteres denomi nado cadena o stri ng solo se debe defi nir de la sigui ente manera. stri ng Nombre = Carlos Poppe;

Grupo de I nvestigacin Univalle - 2006

14

Como en todo lenguaje existen instrucciones de decisin. La ms importante y la ms utilizada es if. Esta instruccin permite determinar un z La instruccin if permite ejecutar camino de instrucciones a ejecutarse respecto a ciertas instrucciones slo si da una una decisin. La sintaxis se puede observar en la determinada condicin. diapositiva.Siexistemsdeunainstruccindebe if (<condicin>) iniciarse con un llave { y finalizar, tambin, con <instruccionesIf> una llave cerrada }, dentro de estas deben ir las else instruccionesolaslneasdecdigo. <instruccionesElse> La condicin nos determina un determinado camino, debe ir siempre entre parntesis (<condicin>). La palabra else determina un camino de instrucciones que se ejecutan cuando al condicin esfalsa,deigualformalasinstruccionesdebenirentrellaves{}.

if else

Grupo de Investigacin Univalle - 2006

15

35
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Se ve un pequeo ejemplo de cmo utilizar una sentenciadedecisin. No se olvide que en el lenguaje C# existe una z Ejemplo: diferenciaentremaysculasyminsculas if (Codigo==123) Se inicia con la palabra if, a continuacin la { condicin, que permite determinar el camino de } ejecucin para las sentencias o lneas de cdigo. else Esta condicin esta dentro de parntesis. Como { se ha dicho en la anterior diapositiva, si existe } ms de una lnea de cdigo para ejecutar, luego de la decisin, debe iniciarse con una llave { y finalizarseotrallavecerrada}.Lapalabraelse esuncaminoalternativocuandolacondicinesfalsa Estos son los operadores relacionales que se if else puedenempleardentrodelacondicin.

if else

Grupo de Investigacin Univalle - 2006

16

z Operadores

relacionales:

== (Igual), != (No Igual), > (Mayor), <(Menor), >= (Mayor igual), <=(Menor igual).

Grupo de Investigacin Univalle - 2006

17

if else
z Operadores

Estos son los operadores lgicos que se pueden utilizardentrodelacondicin


Lgicos:

& (AND), | (OR), ^ (OR exclusiva bit a bit), ! (Negacin), true (Verdadero), false (Falso)

Grupo de Investigacin Univalle - 2006

18

36
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

switch
z

La instruccin switch permite ejecutar unos u otros bloques de instrucciones segn el valor de una cierta expresin. switch (<expresin>) { case <valor1>: <bloque1> <siguienteAccin> case <valor2>: <bloque2> <siguienteAccin> ... default: <bloqueDefault> <siguienteAccin> }
Grupo de Investigacin Univalle - 2006 19

Una de las instrucciones ms utilizadas por los programadores es el switch. Que permite ejecutar bloques de cdigo o instrucciones de acuerdo a un valor de una variable o expresin. Lasintaxisselapuedeobservarenladiapositiva

switch
z

Ejemplo switch(x) { case Jos: t=1; break; case Paco: t=2; break; default: t=0; break; }
Grupo de Investigacin Univalle - 2006 20

Un ejemplo del cmo se puede utilizar el switch sepuedeobservarenladiapositiva.Sielvalorde la variable x es Jos, el valor de t sera 1. Si el valor de x fuera Paco, el valor de t sera 2. Si el valor de x fuera otro, por defecto el valor de t seria 0. La palabra break es obligatoria al final de cada case, significa que finaliza las instrucciones dentro de ese conjunto de instrucciones.

Espacios de Nombres (namespace)


z Es

un espacio donde el desarrollador puede colocar sus propias definiciones. namespace Nombre { //definiciones }

Los Espacios de Nombre son muy utilizados por los programadores y adems por cada clase que se crea en cualquier entorno de Visual Studio se crea un namespace. En el siguiente documento donde se describe como crear una aplicacin sencilla en ASP.NET se explicar y identificar los EspaciosdeNombre.

Grupo de Investigacin Univalle - 2006

21

37
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Espacios de Nombres (namespace)


z

El namespace puede contener clases, las cuales sern utilizadas de una forma clara y ordenada. Para referirse a una clase u objeto dentro de un namespace slo se coloca el nombre del espacio, el punto y el nombre del objeto. namespace NombreEspacio { class cliente { string nombre; } } string nom = NombreEspacio.cliente.nombre;

Grupo de Investigacin Univalle - 2006

22

Espacios de Nombres (namespace)


z

Una alternativa para referirse a un espacio de nombre es la de adicionar la palabra using y el nombre del espacio using EspacioDeNombre; string nom = cliente.nombre

Como se explica en la diapositiva los Espacios de Nombre pueden contener un conjunto de clases, de esta forma se ordena el cdigo. Dentro de un Espacio de nombre no pueden existir dos clases con el mismo nombre, pero en distintos Espacios deNombrepuedeexistirdosclasesconelmismo nombre. Lo que las diferenciara es el Espacio de Nombre. Para referirse a una clase en un Espacio de Nombre solo se debe colocar el nombre del Espacio de Nombre, un punto y el nombre de la clase. Esta expresin es similar a los Enumeradoresyavistos Generalmente al iniciar un proyecto o crear una clase, las primeras lneas contendrn Espacios de Nombres por defecto incluyendo la palabra using,comoporejemplo: usingSystem.data usingSystem.Web Estos Espacios de Nombres contienen clases por defecto que se pueden utilizar en cualquier momentodentrodelcdigo.

Grupo de Investigacin Univalle - 2006

23

Clases, objetos
En todo momento se trabaja con clases y objetos definidos. z Las clases representan otro mecanismo para crear nuevos tipos de datos. z Las clases, se definen como los enumeradores. z C# es un conjunto de objetos que interaccionan unos con otros a travs de mtodos. class <nombreClase> { <miembros> }
z

Un objeto es una instancia de una clase. En todo momento utilizaremos clases para trabajar con objetos. La sintaxis simple para definir una clase se la puedeobservarenladiapositiva.

Grupo de Investigacin Univalle - 2006

24

38
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Clases, objetos
Todas las clases heredan de System.Object, que es la base de todos los tipos de datos de C#. z Una clase esta conformada por:
z

Nombre Atributos o campos z Mtodos o Servicios z Eventos


z z
Grupo de Investigacin Univalle - 2006 25

Comosehadichoenanterioresdiapositivastoda variableoclasevaaheredardeSystem.Object. Unaclasequeestconformadapor: Nombre, Atributosquecaracterizanalaclase Mtodososerviciosqueseutilizanpara determinarlasactividadesy funcionalidadesquerealizasunaclase Eventos,quesonsucesosquepuede presentarlaclase. En las siguientes diapositivas se aclarar un poco msestosatributos. El nombre de la clase es la caracterstica que representa el elemento del cual se realiz la abstraccin. El nombre servir para identificar las posibles acciones que podemos utilizar. El nombre tiene quesercorto,claroysinabreviaturas.

Clases, objetos
z

Nombre:
z

Es la caracterstica que representa el elemento del cual se realiz la abstraccin.

Grupo de Investigacin Univalle - 2006

26

Un atributo es una caracterstica de una clase, como se puede ver en la diapositiva. La Clase Libro tiene varios atributos que son z Atributo caractersticos de los libros, como por ejemplo: z Es un dato comn que caracteriza a un objeto, Nombre,AutoryNumPaginas algunas veces un atributo es un tipo de clase class Libro Sepuedeapreciarqueantesdeunnombredeun { atributo se especifica el tipo de dato. Dentro del string Nombre; string Autor; ejemplo que se presenta en la diapositiva, el uint NumPaginas; atributo Nombre es de tipo string (cadena), el } atributo Autor es de tipo string y el NumPaginas esdetipouint(numeroentero) Tambin,comosepuedeapreciarlosatributos estndentrodedosllaves{},quemarcanelinicioyfinaldeladefinicindelosatributos.

Clases, objetos

Grupo de Investigacin Univalle - 2006

27

39
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Clases, objetos
z Atributo

Cada uno de los atributos puede contener un valor,secomportarncomounavariable,enuna instanciapodrnalmacenarunsolovalor

Cada uno de estos atributos contendrn un valor, z Por ejemplo, el Nombre tendr el nombre de libro, el Autor ser el nombre del autor que ha escrito el libro y el NumPaginas contendrn el nmero de paginas que tiene el libro
z

Grupo de Investigacin Univalle - 2006

28

Clases, objetos
z Mtodos
z

o Servicios

Son actividades o servicios que corresponden una determinada funcionalidad de un objeto. z En si un mtodo es un conjunto de instrucciones, si se quiere referenciar a un mtodo solo debe de colocarse el nombre del objeto, un punto y el nombre asociado a las instrucciones
Grupo de Investigacin Univalle - 2006 29

Los mtodos son operaciones que puede realizar una clase. Dentro de la literatura son conocidos como actividades o servicios que identifican una determinada funcionalidad de una clase u objeto. Por lo tanto un mtodo ser un conjunto de lneas de cdigo que manipular o convertir unconjuntodedatoseninformacin.

La sintaxis para la definicin de un mtodo se la puede observar en la diapositiva. Dentro del C#, elprimeratributoquehayqueespecificarparala z Mtodos o Servicios definicin de un mtodo, es el tipo de dato que z Dentro del conjunto de las instrucciones es devolver, solo se puede definir un solo tipo de valido referirse a los atributos y obtener o dato de devolucin. Luego, se define el nombre cambiar su valor. <tipoDevuelto> <nombreMtodo> del mtodo y entre parntesis estn los (<parametros>) parmetros de entrada. Al final est el cuerpo { delmtodoentrellaves{}. <instrucciones> El tipo devuelto ser el resultado de las } instrucciones y la manipulacin de los datos. Si nosequieredevolverningnresultadosolodebe colocarse la palabra void. Todo mtodo puede devolver un objeto. Si el mtodo devuelve algn objeto es necesario colocar la palabra return y el resultado u objeto al final, este debe ser compatible con el tipo devuelto definido para el mtodo. Los parmetros sern los valores o objetosquenecesitanlasinstruccionesparaelaboraroconstruirelresultadoesperadoalejecutar elmtodo,estosdebencumplirlamismasintaxisdedeclaracindeuntipodedato

Clases, objetos

Grupo de Investigacin Univalle - 2006

30

40
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Clases, objetos
z Mtodos
z

y Servicios

Para llamar al mtodo NombreAutor del objeto L que corresponde a la clase Libro se debe realizar: string nomautor = L.NombreAutor();

Grupo de Investigacin Univalle - 2006

32

Para poder llamar a un mtodo de una clase, primero se debe crear una instancia, luego a travs del objeto creado y un punto se puede llamaralmtodo. Al definir una clase se puede definir varios mtodos con el mismo nombre pero distintos parmetros. Esta utilizacin tiene el nombre de Sobrecarga de mtodo. C# ser el encargado de diferenciar entre los mtodos con el mismo nombre. Ladiapositivamuestraunejemplodeunmtodo queestensobrecargado. Parapoderllamaraestosmtodosveamosestos ejemplos L.NombreAutor(); //Devuelve el nombre del libro yelnombredelautor L.nombreAutor(12/12/2004); //Devuelve el nombredellibro,elnombredelautorylafecha.

Clases y Objetos
z

Mtodos y Servicios
class Libro { string Nombre; string Autor; uint NumPaginas; string NombreAutor () { return Nombre+Autor; } string NombreAutor (string Fecha) { return Nombre+Autor+Fecha; } }
Grupo de Investigacin Univalle - 2006 33

Clases y Objetos
z Mtodos
z

y Servicios

Para definir un objeto se utiliza la palabra new, pero es necesario que la clase contenga un constructor que es en si un mtodo con el mismo nombre que la clase.

Para determinar una instancia de una clase u objeto se debe utilizar la palabra new seguidamente del nombre del constructor. El constructoresunmtodoqueinicializaelobjeto.

Grupo de Investigacin Univalle - 2006

35

41
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Clases y Objetos
z Mtodos y Servicios class Libro { string Nombre; string Autor; uint NumPaginas; Libro(){} //Constructor string NombreAutor () { return Nombre+Autor; } string NombreAutor (string Fecha) { return Nombre+Autor+Fecha; } }

Veamosunejemplo:setieneunaclaseLibro,con atributos y mtodos. Adems aparece el constructor de la clase con el nombre de Libro(){}. Generalmenteel nombre el constructor eselmismodelaclase

Grupo de Investigacin Univalle - 2006

36

Clases y Objetos
z Mtodos

y Servicios

Libro L = new Libro();

Para definir un objeto o una instancia, como se ha visto anteriormente, se utiliza la palabra new seguido del nombre del constructor. Una vez creado el objeto podemos referirnos a los atributosomtodosdeesaclase.

Grupo de Investigacin Univalle - 2006

37

Visibilidad de una clase y sus miembros


z La

visibilidad de una clase o sus miembros, como atributos y mtodos, est en funcin de los modificadores que se coloquen delante de la palabra class en el momento de su definicin. z Estos modificadores pueden aplicarse a los miembros de las clases: mtodos, propiedades, variables, etc
Grupo de Investigacin Univalle - 2006 38

Un factor importante para las clases y objetos es laVisibilidad. Lavisibilidaddelasclasesysusmiembrosesalgo que debe deducirse directamente del diseo lgico.Internamente,estasclasespuedenutilizar otras no visibles desde el exterior, as como miembrosprivadosyprotegidos

42
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Veamos algunas de las opciones que permiten determinarlaVisibilidad. public. La clase, o el miembro, es visible en z public todos los mbitos, no solo en el que se ha z protected definido. Los miembros pblicos de una clase z Private son accesibles, al crear un objeto, desde z internal fueradelapropiaclase. z protected internal protected. Este modificador solo es aplicable a los miembros de una clase, no a la clase en si. Es decir, un miembro protegido no es accesibleexternamente 43todo43. Es el mbito ms reducido. Una clase privada solo puede utilizarse en el interior del mbito en que se encuentra incluida, ya sea un namespace u otra clase. Los miembros que tienen este modificador, igualmente, solo pueden ser usados desde el interior de la clase donde se han definido, nunca desde fuera, ni siquiera enclasesderivadas. internal. Es similar al public. Si bien la clase o miembro es visible desde fuera de su mbito inmediato, esta regla solamente se aplica dentro del ensamblado al que pertenece. Una clase publicpuedeusarsedesdeotrosensamblados,mientrasqueunainternalno. protected internal. El resultado es que los identificadores pueden utilizarse en el ensamblado en que se han definido, as como en clases derivadas a pesar de que se encuentren en otros ensamblados La sintaxis para definir herencia es sencilla, se la Herencia pude observar en la diapositiva, la caracterstica fundamental al definir son los dos puntos : z La herencia es una de los pilares luegodelnombredelaclasehija. fundamentales de la programacin orientada a

Visibilidad de una clase y sus miembros

Grupo de Investigacin Univalle - 2006

39

objetos, permite definir nuevas clases a partir de otras ya definidas de modo que si en la definicin de una clase indicamos que sta deriva de otra, entonces la primera es hija. class <nombreHija>:<nombrePadre> { <miembrosHija> }
Grupo de Investigacin Univalle - 2006

40

43
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Herencia
z z z

Los miembros definidos en la clase padre se aadirn a la clase hija. La clase padre no necesariamente debe estar en el mismo lenguaje que la hija. (Novedad) Se puede realizar una herencia en distintos lenguajes. public class ClaseBase { public string saludos() { Return Hola Sucre; } }
Grupo de Investigacin Univalle - 2006 41

Todas las caractersticas como atributos y mtodosdeunaclasePadresernheredadasala claseHija. Una de las novedades de .NET es que la clase Padre puede estar en un lenguaje diferente al queseestutilizando. Veamosunejemplo. Se tiene una clase padre con el nombre ClaseBase con un mtodo que es pblico y devuelve una variable de tipo string, el nombre del44todoessaludos Ahora se define una clase hija con el nombre de ClaseDerivadaconunmtodopblicoydevuelve una variable de tipo int (entero), con el nombre de Cuadrado. Esta clase hereda de la clase padre con el nombre de ClaseBase. Esto significa que la ClaseDerivada tendr el mtodo de la clase padre con el nombre saludos. Pero, la clasepadrenotieneelmtodoCuadrado

Herencia
public class ClaseDerivada : ClaseBase { public int Cuadrado(int N) { Return N*N; } }
Grupo de Investigacin Univalle - 2006 42

Polimorfismo
z

Es el concepto segn el cual objetos diferentes poseen implementaciones diferentes de una misma propiedad o mtodo.
z

Por ejemplo, un helicptero y un avin a chorro poseen el mtodo LevantaVuelo y la propiedad AltitudMax, sin embargo son implementaciones diferentes

Una de las caractersticas de la programacin orientadaaobjetoeselpolimorfismo. Es el concepto segn el cual objetos diferentes poseen implementaciones diferentes de una mismapropiedadomtodo. Por ejemplo, un helicptero y un avin a chorro poseen el mtodo LevantaVuelo y la propiedad AltitudMax, sin embargo ambos tienen implementacionesdiferentes
43

Grupo de Investigacin Univalle - 2006

44
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Estructuras
struct Point { public int x, y; public Point(int x, int y) { this.x = x; this.y = y; }

} Punto p = new Punto(10,10); Punto p2 = p; p2.x = 100; Console.WriteLine(p.x);

Dentro de la programacin no pueden faltar las estructuras. Una estructura es un tipo especial de clase pensada para representar objetos ligeros. Es decir, que ocupen poca memoria y deban ser manipulados con velocidad, como objetos que representenpuntos,fechas,etc. En el ejemplo de la diapositiva se puede comprenderelusodelasEstructuras
44

Grupo de Investigacin Univalle - 2006

Arrays
z

Un arrays o matriz es un tipo de variable que es capaz de almacenar en su interior y de manera ordenada uno o varios datos de un determinado elemento tipo
<tipoDato>[] <NombreArray>; int[] tabla = new int[100] {1, 2, 3 }; tabla[0]= 3; int x =tabla[0]; tabla.Length; //longitud de la matriz
Grupo de Investigacin Univalle - 2006 45

Tambin, no puede faltar dentro de un lenguaje el manejo de una matriz o un vector, que permiten realizar distintas operaciones. Es muy sencillodefinirunamatriz,comosepuedeveren ladiapositiva.

Arrays
int[][] tablaDentada = {new int[] {1,2}, new int[] {3,4,5}}; int[][] tablaDentada = new int[2][5]; int[][] tablaDentada; int[][][] tablaDentada = new int[][][] { new int[][] {new int[5], new int[5]}, new int[][] {new int[4], new int[3]}}; tablaDentada[1][0][3] = 10

Cada vez que se adiciona una dimensin a una matriz es ms complicada la comprensin y la utilizacin

Grupo de Investigacin Univalle - 2006

46

45
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Arrays
int[,] tablaMultidimensional = new int[3,4] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; int[,] tablaMultidimensional = new int[3,4]; int[,,] tablaMultidimensional = new int[3,4,2]; int[][,][] tablaMixta; string[] tablaCadenas = {Manolo, Paco, Pepe}; object[] tablaObjetos = tablaCadenas;

Una de las caractersticas en este lenguaje es la definicin y manipulacin de matrices dentadas. Como se puede ver en el ejemplo de una tablaMixta.

Grupo de Investigacin Univalle - 2006

47

Bucles
z

Instruccin While
while (<condicin>) {<instrucciones>} z break. Indica que se va a abortar la ejecucin del bucle y continuando con la ejecucin por la instruccin siguiente al while. z continue. Indica que se va a abortar la ejecucin de las instrucciones y revaluarse la condicin, volviendo a ejecutarse las instrucciones

Veamos algunas instrucciones que nos permiten realizarbuclesderepeticindelneasdecdigo. La primera es la instruccin While, mientras se cumpla una condicin se ejecutarn las instrucciones o lneas de cdigo que estn dentrodelasllaves{}. Existen algunas palabras que nos permiten romper con el bucle o mandar a evaluar nuevamente la condicin. Como se puede ver en ladiapositiva Otra instruccin de repeticin es el do while, se ejecuta una vez las instrucciones y se evala una condicin, si se cumple la condicin, es decir, si es verdadera, se ejecutan nuevamente las instrucciones

Grupo de Investigacin Univalle - 2006

48

Bucles
z

Instruccin do while do <instrucciones> while(<condicin>);

Grupo de Investigacin Univalle - 2006

49

46
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Bucles
z

Instruccin for
for (<inicializacin>; <condicin>; <modificacin>) <instrucciones>

for (int i=1;i<=10;i++) {} Al igual que con while, dentro de las <instrucciones> del for tambin pueden incluirse instrucciones continue y break; que puedan alterar el funcionamiento normal del bucle.
Grupo de Investigacin Univalle - 2006 50

Una de las ms utilizadas dentro de la programacin es la instruccin for. La sintaxis de esta instruccin es similar a la de C++. Como se puedeverenladiapositiva. Al igual que en la instruccin while se pueden utilizar las palabra que permiten romper el bucle oevaluarnuevamentelacondicin

Bucles
z

La instruccin foreach es una variante del for pensada especialmente para compactar la escritura de cdigos donde se realice algn tratamiento a todos los elementos de una coleccin. foreach (<tipoElemento> <elemento> in <coleccin>) <instrucciones> string[] matriz; foreach (string mt in matriz) {}

Una de las instrucciones novedosas en los lenguajes de .NET es la de foreach, que permite realizar bucles a travs de conjuntos o colecciones de datos. Como se puede ver en el ejemplodeladiapositiva.

Grupo de Investigacin Univalle - 2006

51

Fechas
z

El tipo de valor DateTime representa fechas y horas cuyos valores estn comprendidos entre la medianoche (12:00:00) del 1 de enero de 0001 d.C. (era cristiana) y las 11:59:59 de la noche del 31 de diciembre de 9999 d.C. (era cristiana).

Unodelostiposdedatosmsconflictivosparala manipulacin es la fecha y la hora, dentro de .NET existe una clase que maneja este tipo de datoyesDateTime

Grupo de Investigacin Univalle - 2006

52

47
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Fechas
z z z z z z z z z

DateTime.Date. Obtiene la fecha DateTime.Day. Obtiene el dia DateTime.DayOfWeek. Obtiene el da de la semana (17) DateTime.DayOfYear. Obtiene el da del ao (1364) DateTime.Hour. Obtiene la hora de la fecha. DateTime.Now. Obtiene la fecha y hora de la maquina. DateTime.ToDay. Obtiene la fecha actual. DateTime.Month. Obtiene el mes de la fecha. DateTime.Year. Obtiene el ao de la fecha
Grupo de Investigacin Univalle - 2006 53

Estas son algunas de las operaciones que se pueden realizar con el tipo de dato DateTime. Como se puede ver, existen distintos mtodos quepermitenobtenerpartedeunafechauhora.

Manejo de excepciones
z

Las excepciones son el mecanismo recomendado en la plataforma .NET para propagar soluciones ante un defecto o falla durante la ejecucin de las aplicaciones

El manejo de las excepciones es un mecanismo muyimportantedentrodelaprogramacin,sirve para varias alternativas, la ms utilizada es para la validacin de los datos, el control de comunicacin con un servidor de datos u otro servicioexternoalaaplicacin. Se ver a continuacin la sintaxis y la utilizacin delasexcepciones

Grupo de Investigacin Univalle - 2006

54

Existen tres cuerpos importantes dentro del manejo de excepciones, uno se inicia con la palabra try, las instrucciones que pertenezcan z Bsicamente, son objetos derivados de la clase System.Exception que se generan cuando en tiempo de a try, sern las controladas bajo la excepcin, ejecucin se produce algn error y que contienen informacin sobre el mismo. es decir, si se produce un error en las lneas de try <instrucciones> cdigo que pertenecen a try se producir una catch (<excepcin1>) <tratamiento1> excepcin y .NET identificar la excepcin por catch (<excepcin2>) <tratamiento2> medio de los catch. Esta ltima palabra, es en ... finally si la excepcin que se produce, a partir de la <instruccionesFinally> palabra catch el tcnico programador puede introducir lneas de cdigo que puedan corregir el por qu de la excepcin o mandar un mensaje al usuario para que l la corrija. La palabra finallysirveparaintroducirlneasdecdigo quesevanejecutarsiseproduceonounaexcepcin.Laslneasdecdigoqueestnenelcuerpo definallyseejecutarnsiempre.

Manejo de excepciones

Grupo de Investigacin Univalle - 2006

55

48
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Manejo de excepciones
z

La instruccin throw, nos sirve para informar una error que se considera falta en la ejecucin de la aplicacin. throw <objetoExcepcinALanzar>;

Eltcnicoprogramadortienelaopcindegenera su propia excepcin por medio de la palabra throw,sieltcnicoprogramadorconsideraque existeunerrorpuedegenerarunexcepcin

Grupo de Investigacin Univalle - 2006

56

Manejo de excepciones
try { int c = 0; int d = 2/c; } catch (DivideByZeroException) { d=0; } finally {}
Grupo de Investigacin Univalle - 2006 57

Se puede observar un ejemplo en la diapositiva paraelusodelasexcepciones. El error que se produce es por la divisin entre cero. El catch es el encargado de identificar la excepcin. Si no existiera este manejo de excepciones dentro de la interfaz del usuario a parecer un mensaje de error que algunas veces esincomprensible. Es muy recomendable utilizar el try, catch y finallyenelsoftwarequesedesarrolla. El potencial de C# no ha quedado reducido, existen muchos grupos de discusin dentro de Internetquehanlogradounnivelmuygrandeen elmanejodeestenuevolenguaje. Se considera a C# como el lenguaje nativo de Microsoft. En las siguientes pginas se realizara una introduccinaASP.NET.

Conclusiones
Se ha logrado conocer algunos conceptos bsicos del lenguaje de Microsoft C#. z Se ha logrado entender la sintaxis de las distintas instrucciones del lenguaje C#
z

Grupo de Investigacin Univalle - 2006

58

49
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

IMPLEMENTARLAPRIMERAAPLICACINENWEB Antes de iniciar la aventura para la desarrollar la primera aplicacin Web, se har una introduccin a la nuevafilosofadeprogramacinenASP.NET. Internet (Interconnected Networks, redes interconectadas) es la red de redes de informacin, su evolucin fue y es vertiginosa con millones de usuarios conectados tratando de encontrar informacin que sea significativa. El inicio de Internet fue gracias al protocolo de comunicacin HTTP (HyperText Transfer Protocol), es decir que Internet utiliza este protocolo para poder comunicar a usuarios que buscaninformacin,garantizaquecualquierclienteconunnavegadorestndarpuedaconectarseconun servidor remoto. En la primera etapa de Internet solo existan pginas estticas en HTML (Hipertext Markup Language, Lenguaje de Marcacin de Hipertexto) las cuales se tratan como textos planos en formato ASCII con algunas cabeceras para la transmisin. Para poder acceder a estos documentos se tuvo que crear una direccin nica que se la denomin URL (Uniform Resource Locutor, Localizador uniforme de Recursoss) que indica tanto la localizacin exacta del recursos como el protocolo necesario parasutransferencia.LaformagenricadelaURLdeunapginaWebes: Protocolo://www.servidor.dominio/carpeta/pagina.html Luego se incorporaron lenguajes como el Java o VBScript que permitieron colocar cdigo en paginas HTML. Esta incorporacin permiti a los desarrolladores a realizar pginas Web dinmicas, convirtindoseenaplicacionesWeb,elcdigoincorporadopodamanipulardatosdentrodeunabasede datos,perotodoelcdigodebaestarenlamaquinadelcliente,siendounadificultad,yaquelamaquina del cliente se volva muy lenta y consuma muchos recursoss. La siguiente etapa de Internet fue colocar cdigoenelladodelservidorparaas,alivianarlamaquinadelclienteyincrementarlaseguridad,yaque elusuarionodebeaccederalcdigo. La tecnologa de Microsoft, para crear una aplicacin Web, fue ASP (Active Server Pages) que se ejecuta en el Servidor Internet Information Services. Las paginas ASP permiten mezclar HTML con cdigo como JAVA o VBScript. ASP se basa en CGI (Common Gateway Interface), se puede considerar que ASP es una evolucindeCGI. El siguiente paso para Microsoft, dentro del desarrollo de aplicaciones Web fue ASP.NET, esta nueva tecnologa permite desarrollar formularios Web y Servicios Web. Este ltimo, son componentes que pueden ser accedidos desde Internet y permiten desarrollar aplicaciones distribuidas y centradas en los usuarios.UnservicioWebesunaaplicacinsininterfaz. LasAplicacionesWebASP.NETtienenvarioscomponentes: z FormulariosWebopginas.ASPX:Proveendelainterfasevisual.Notienencdigoejecutable. z Pginas de Cdigo por detrs: Estn asociadas con cada formulario y son las que proveen del cdigoejecutable.AdiferenciadelaspginasASPconlatecnologaanterior,nosemezclacdigo yTAGsenlamismapgina. z Archivos de Configuracin: Son archivos que permiten configurar la aplicacin, por ejemplo el archivoWeb.configyelservidorporejemploelarchivomachine.config. z Global.asax: Es un archivo que contiene cdigo. Este cdigo responde a eventos que se disparan enlaaplicacinWeb. z Enlaces a Servicios Web XML: Permite a la aplicacin Web transferir datos XML desde y hacia ServiciosWeb. 50
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

z Conectividad a Bases de Datos: Permite a la aplicacin Web transferir datos desde y hacia distintasBasesdedatos. z Caching: Permite a la aplicacin Web devolver formularios Web ms rpidamente despus del primeracceso Se inicia el desarrollo de una pequea aplicacin Web que permitir introducir al mundo de la programacinorientadaaobjetosyalosconceptosnuevosdeASP.NET. Se utilizar Visual Studio 2005 para el desarrollo de la aplicacin Web. El entorno inicial de desarrollo se puedeobservarenlaPantalla1

Pantalla1:EntornoinicialeDesarrollodeVisualWebDeveloper ParacrearunanuevaaplicacinsedeberealizarunclicenlaopcinFiledelmenprincipalyseleccionar NewWebSite.ComosepuedeobservarenlaPantalla2.

51
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2:Iniciodeunanuevaaplicacin Una vez seleccionada la opcin de New Web Site aparecer una pantalla para seleccionar el tipo de aplicacinquesequieredesarrollarcomosepuedeverenlaPantalla3.

Pantalla3:SeleccindeTipodeaplicacin

Como se puede observar, se puede seleccionar el tipo de proyecto, ya sea una ASP.NET Web Site o un ASP.NETWebService.Adems,sepuedeseleccionarellenguajeylaubicacin(lonormalsereneldisco duro de la computadora que se utiliza, pero podramos elegir un sitio gestionado por FTP o http). Una vezseleccionadoellenguajeyhaberintroducidoelnombredelanuevaaplicacinsedeberealizarunclic enelbotnOK. Una vez presionado el botn OK de la Pantalla 3, aparecer el entorno de desarrollo que se puede observarenlaPantalla4.

52
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla4.EntornodeDesarrollodelanuevaaplicacin. Como se pude observar aparecen distintas pestaas como Tollbox, Solution Explorer y Properties. A estaspantallasselaspuedeocultarparcialmente,solosedeberealizarunclicenelbotnAutoHide , que est ubicado en la parte derecha superior de cada una de estas pestaas. Como podr ver se ocultarn automticamente, para poder verlassolo debe pasar elcursor del Mouse por laetiqueta de la pestaa. Luegoderealizarestaoperacinnuestroentornosepodrverdelasiguienteforma(verPantalla5).

53
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla5.Entornodedesarrolloconpantallasocultas

Veamosalgunasdelascaractersticasdelentorno. ElSolutionExplorersirveparamostrarlasdistintasaplicacionesenlacualesseesttrabajando.Sepuede observarelSolutionExplorerenlaPantalla6.

Pantalla6:ElSolutionExplorerconlaPrimeraAplicacin Como se puede observar contiene un rbol en el cual existeun directorio o carpeta llamada App_Data y unapginaASPX.Queeseliniciodetodaaplicacin. Existeunreadetrabajo,dondepodemosrealizareldiseodenuestrainterfazointroducircdigocomo ejemplo,podemosverenlaPantalla7.

54
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7:readetrabajo Contiene los diferentes editores de cdigo as como diseadores de diversos tipos (de interfaz de usuario, de clases, de DataSets). Es en donde se pasar la mayor parte del tiempo trabajando. En esta vistasemuestrauneditordeHTML. Otra pantalla es el Tollbox (Barra de Herramientas), cuadro de herramientas, el cual contiene a varios componentes ya diseados que permiten reducir el tiempo de desarrollo, sirven para disear la interfaz de usuario, aunque existen componentes no visuales, se puede observar el Tollbox en la Pantalla 8. Dentro de la Barra de Herramientas existe una clasificacin de componentes, que estudiaremos poco a pocoduranteeltexto.

Pantalla8:BarradeHerramientas(Tollbox) Existe una pantalla importante que es la de propiedades, que se puede observar en la Pantalla 9. Esta pantallanospermiteajustarlosvaloresdeloscomponentesanuestrosrequisitosentiempodediseo.

55
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla9.Propiedadesdeuncomponente Algunas de estas propiedades se pueden editar directamente, pero otras abren un asistente que nos ayudaamanipularlascaractersticasdelapropiedad. Por ltimo se tiene que describir las opciones de men vista en la Pantalla 10. Dentro de estas opciones seencuentrantodaslascaractersticas,configuracionesyvistas.

Pantalla10.Menprincipal El entorno de trabajo que hemos explorado es muy intuitivo y fcil de utilizar. En la mayor parte de los casos se hace uso nicamente de los tres plantillas de diseo: diseador visual de formularios Web, diseador de HTML y editor de cdigo de C#. Existe una barra de botones que permita acceder a dos de estas plantillas la de Diseo Visual y la de HTML , est ubicada en la parte inferior izquierdadelentornodedesarrollo,sepuedeobservarenlaPantalla11.

Pantalla11.PantalladeaccesoaDiseoVisualyCdigoHTML La tercera plantilla, que se puede observar en la Pantalla 12, es la que permite introducir lneas de cdigo.AestaplantillasepuedeaccederpormediodeundobleclicenlaplantilladeDiseoVisual. Se ha descrito de manera general el entorno de desarrollo. Ahora, se inicia con un ejemplo que nos introducir a la programacin con C# en formularios Web. Se crear un ejemplo sencillo para ver cmo 56
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

se trabaja en el entorno del Visual Web Developer. Luego estudiaremos la estructura de los archivos generados para comprender su funcionamiento. El ejemplo que se desarrollar es el Juego al 7, el jugador que saque tres nmero con el valor de 7 ganar el juego. Se generar de forma aleatoria tres nmerosenunrangode1a9. Parainiciar,realicemosunclicenelbotndeDiseoVisual . TenemosqueseleccionarvarioscomponentesdelaBarradeHerramientas ycolocarlosenla plantilladeDiseoVisual. El primer componente que se utilizar se encuentra en la papeleta de HTLM dentro de la Barra de Herramientas y es Table, que nos permite definir una rejilla en un formato tabla, como se puede ver en la Pantalla 12. Una vez realizada la seccin de este componente se debe arrastrar hacia la Plantilla de DiseoVisual,estopermitircolocarunatabladetrescolumnasytresfilas.

Pantalla12.ComponentesHTML Aprimeravista,latablanoseobserva,yaquedentrodesuspropiedadesalgunasestnenblanco,para podervisualizarsetienequecambiaralgunaspropiedadesqueseencuentranenlaPantallade Propiedades.Latablaintroducidadebeestarseleccionadaparapodervisualizarsuspropiedades.Enla Pantalla13sepuedeobservarlaspropiedadesdelatabla.

57
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla13:PropiedadesdelcomponenteTable Las propiedades que se deben cambiar para poder visualizar la tabla son Border, CellPadding y CellSpacing, para cada una de estas propiedades se dar el valor de 1. Como se puede visualizar, el formatodelatablacambiarcomosepuedeobservarenlaPantalla14.

Pantalla14.FormatocambiadodeunaTable Para el propsito del ejemplo solo utilizaremos tres columnas y dos filas, es decir que tenemos que eliminar una fila. Para hacer esta operacin debe realizar un clic derecho sobre la fila que se quiere eliminar, aparecer un men emergente como se puede ver en la Pantalla 15. Se debe seleccionar la opcinDeleteyRows,paraculminarlaoperacindeeliminacin.Dentrodelmenemergente,tambin, existenotrasopcionescomodeinsercindeunafilaocolumna. 58
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla15.MenemergentedelcomponenteTable. El siguiente paso es colocar tres componentes Label de la Barra de Herramientas dentro de la categora StandardcomosepuedeverenlaPantalla16.

Pantalla16.UbicacindelcomponenteLabeldentrodelabarradeHerramientas SedebearrastrartrescomponentesLabelalaplantilladeDiseoVisualyubicarloscomoseveenla Pantalla17.

59
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla17.UbicacindeLabelparaelejemplo

Como se puede observar en la parte izquierda de los componentes Label, existe un icono de color verde .Esteicono,significaqueseejecutarenelladodelservidor.Todocomponentequetengaesteicono seejecutarenelservidor. UnavezubicadosloscomponentesLabel,setienequerealizarcambiosensuspropiedades. Las propiedades que se cambiarn son Text y ID. Antes de cambiar se debe seleccionar un Label, realizandounclicsobrealgunodeellos. Para el Label1 el valor de la propiedad Text ser Nmero 1 y su ID sea L_Numero1 como se puede ver enlaPantalla18.

60
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla18.PropiedadesdeLabel ParaelLabel2,elvalordelapropiedadTextserNmero2ysuIDserL_Numero2 ParaelLabel3,elvalordelapropiedadTextserNumero3ysuIDserL_Numero3 UnavezconcluidalaPlantilladeDiseoVisualsevercomoenlaPantalla19.

61
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla19.Etiquetasconfiguradas Una vez que se haya concluido con la configuracin de los Label, se debe introducir otros tres Label dentrodelatabla,loscualesnosservirnparamostrarlosnmerosgeneradosaleatoriamenteentre1y 9, y otro que nos permitir mostrar mensajes. Cada uno de estos Label, en su propiedad ID tiene que llevar L_Aleatorio1, para el Label que esta debajo de Nmero 1, L_Aletorio2, Laleatorio3 y por ltimo, para el Label que nos permitir mostrar mensajes, L_Mensaje. Adems, se incluir un Botn que servir para generar los nmeros aleatorios cada vez que se realice un clic. La propiedades Text del botn se cambiaraJugarysuIDserB_Jugar,laplantilladeDiseoVisualquedarcomoseveenlaPantalla 20.

Pantalla20.DiseoVisualfinalizado LaPantalla20muestraeldiseovisualfinal,peroenlaPantalla21muestraelcdigoHTMLquese generaatravsdeldiseovisual,parapoderverelcdigoHTMLsolosedeberealizarunclicenelbotn Source .

62
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla21.CdigoHTMLdelDiseoVisual

ElsiguientepasoesintroducirelcdigoenC#,quepermitagenerarlosnmerosaleatorios.Pararealizar estosedebeseleccionarelbotnB_Jugar,enlaplantilladeDiseoVisual.Estetipodebotntieneun eventollamadoClick,quepermitecapturarelclicdelratnquerealiceelusuarioyejecutarun determinadocdigo.Parapodervisualizareleventosedebeiralapantalladepropiedadesyrealizarun clicenelbotnEvent enlaPantalla22. ,unavezrealizadosemostrarnloseventosdelbotn,comosepuedever

63
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla22.EventosdelB_Jugar Parapoderintroducirelcdigodeberealizardoblecliceneleventodondeseintroducir,luegode realizarestaoperacin,automticamenteaparecerlaplantilladeEdicindeCdigo,comosemuestra enlaPantalla23.

Pantalla23.EditordeCdigo

64
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Como se puede ver aparece una nueva pestaa o papeleta en la parte superior con el nombre de Default.aspx.cs, la cual se ha generado automticamente, esta pestaa que realmente es un archivo dentrodeldiscoduroalmacenarelcdigoparalaDefault.aspxqueesnuestroformularioWeb. Tambin, se puede ver que el formulario Web Default.aspx.cs cumple con los requisitos y la estructura de una Clase. En la parte superior se encuentran Espacios de Nombre, estos se pueden utilizar en cualquier momento. En la parte inferior existen dos mtodos o eventos, uno con el nombre de Page_Load (se hablar de este mtodo ms adelante) y el otro es B_Jugar_Click. Este ltimo es el que interesa, ya que ser el encargado de generar los nmeros aleatorios. En la Pantalla 24 se muestra el cdigoparaesteevento.

Pantalla24.LneasdeCdigoparaelEventoB_Jugar_Click Enlalnea22,23y24delcdigoseconvierteunnumerorealDoubleaEnteropormediode(int).Una caractersticadeC#paraconvertircualquiertipodedatos,nonecesariamenteaentero. Luego de introducir el cdigo, la aplicacin esta lista para ser ejecutada, para realizar esta actividad se o seleccionar del men principal la opcin Debug y debe hacer un clic en el botn Start Debugging StartDebugging. Cuando se ejecutada por primera vez, aparecer una pantalla de advertencias, quese la puedever en la Pantalla 25, esta pantalla da la alternativa de crear un archivo de Web.config o ejecutar la aplicacin sin este archivo. El archivo Web.config permite configurar varias caractersticas de acceso y de formato dentrodeunaaplicacinWeb,amedidaqueseavanceeneldocumentoseirnexplicandolautilizacin deestearchivodeconfiguracin.

65
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla25.AdicionarelarchivoWeb.Configanuestraaplicacin Paranuestraaplicacinseleccionaremoslaprimeraopcin. En la Pantalla 26 se muestra la ejecucin de la aplicacin. Si realizar un clic en el botn Jugar automticamentesegenerarnnmerosaleatorios.

Pantalla26.EjecucindelaAplicacin SisecierraelInternetExplorer,automticamenteiralentornodedesarrollo.Algomuyimportanteque se debe observarse es que dentro de la pantalla Solution Explorer, como se puede ver en la Pantalla 27, apareceunnuevoarchivoqueeselWeb.config.

Pantalla27.SolutionExplorerconelarchivoWeb.config Comosehavisto,esmuyfcillaprogramacinenASP.NET. Ahora, modificaremos un poco la aplicacin, adicionaremos una clase, que contenga un mtodo que devuelvaunnmeroaleatorioenteroentreelrangode0y9. 66
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Antes de iniciar la modificacin se tiene que hablar de algunas de las carpetas que se generan automticamente al crear una aplicacin Web. Como puede ver en la Pantalla 27, dentro del rbol de la aplicacinexisteunacarpetapordefectoqueesApp_Data.Estacarpetapuedecontenerlos archivosde datos de aplicacin incluso los archivos MDF, archivos XML, as como otros archivos de almacn de datos. ASP.NET 2.0 utiliza la carpeta App_Data para almacenar la base de datos local de una aplicacin, quesepuedeutilizarparamantenerinformacinsobresuscripcionesyfunciones. ExistenotrascarpetasquesepuedenutilizarenlasaplicacionesWeb.Parapoderintroducirlassolodebe realizarunclicderechoenlarazdelrboldelaaplicacincomosepuedeverenlaPantalla28.

Pantalla28.CarpetasdelaAplicacin ASP.NET reconoce estos tipos de nombre de carpetas de la aplicacin. Explicaremos brevemente cada unadeellasacontinuacin: Bin. Contiene ensamblados compilados (archivos .dll) para los controles, componentes u otro cdigoalquedeseahacerreferenciaensuaplicacin App_Code. Contiene cdigo fuente para clases de utilidad y objetos comerciales (por ejemplo, archivos .cs, .vb y .jsl) que debe compilar como parte de su aplicacin. Esta carpeta es la que utilizaremosparagenerarnuestraclasequenospermitagenerarnmerosaleatorios. App_GlobalResources. Contiene recursoss (archivos .resx y .resources) que se compilan en los ensamblados con mbito global. Los recursoss en la carpeta App_GlobalResources tienen un establecimientoinflexibledetiposysepuedeobteneraccesoaellosmedianteprogramacin. App_LocalResources. Contiene recursoss (archivos .resx y .resources) que estn asociados con unapginaespecfica,controldeusuarioopginaprincipalenunaaplicacin. 67
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

App_WebReferences. Contiene archivos de contrato de referencia (archivos .wsdl), esquemas (archivos .xsd) y archivos de documentos de descubrimiento (archivos .disco y .discomap) que definenunareferenciaWebparautilizarlaenunaaplicacin. App_Browsers.Contienedefinicionesdelexplorador(archivos.browser)queASP.NETutilizapara identificarlosexploradoresindividualesydeterminarsusfunciones. Theme. Contiene una coleccin de archivos (archivos .skin y .css, as como archivos de imagen y recursossgenricos)quedefinenelaspectodelaspginasWebycontrolesASP.NET.

Pantalla28.CarpetaApp_Codeadicionadaalaaplicacin Una vez adicionada a nuestra aplicacin la carpeta App_Code como se puede ver en la Pantalla 28 podremos agregar una clase. Para hacer esta actividad se debe realizar un clic derecho en la carpeta App_CodeyseleccionarAddNewItem,comosepuedeverenlaPantalla29.

Pantalla29.AdicionarunaItemalacarpetaApp_Code UnavezseleccionadaestaopcindeAddNewItemsevisualizarunapantalladondesedebeseleccionar eltipodearchivoquesequiereadicionaranuestraaplicacin.Paraelpropsitodelaaplicacinsedebe seleccionarClass ,quecontieneunplantillaestructuradapordefectodeunaclaseenC#.Unavez seleccionada, se debe introducir el nombre de la clase, para nuestra aplicacin ser Numero, como se puedeverenlaPantalla30. 68
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla30.CreacindeunanuevaclaseconelnombredeNumero.cs LapantalladeSolutionExplorercambiarcomosepuedeverenlaPantalla31.

Pantalla31.NuevaclaseNumero.csadicionadaalaaplicacin LaplantilladeEdicindeCdigovisualizaelarchivoNumero.cscomosepuedeverenlaPantalla32. MostrandounaestructurapordefectodeunaclaseenC#.

69
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla32.EstructuradelaclaseNumero.cs Para continuar con nuestra codificacin a la clase Numero.cs adicionaremos un mtodo con el nombre de NumeroAleatorio y este mtodo sea pblico, el cual generar un nmero entero entre 0 y 9. Las lneasdecdigosepuedenobservarenlaPantalla33.

Pantalla33.LneasdeCdigoparaelmtodoNumeroAleatoriodelaclaseNumero.cs Elmtodoquesehacreadodevolverunnmeroentero,noseadicionanparmetrosdeentradayaque nosenecesitan. Para poder utilizar la clase Numero.cs en Default.aspx.cs se debe crear una instancia, esto se puede ver en la pantalla 34. La creacin de la instancia debe realizarse en el evento B_Jugar_Click. Las lneas de cdigoquesehanintroducido,enesteltimomtodo,variarnunpoco,comosepuedeobservar.

70
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla34.NuevocdigodeleventoB_Jugar_Clickllamandoaunmtododeunaclase Unavezmodificadaslaslneasdecdigosepodrejecutarlaaplicacin. SehafinalizadoconxitolaprimeraaplicacinenASP.NET. En el prximo documento modificaremos la aplicacin, anteriormente hecha, se utilizar un Servicio Webquegenerarlosnmerosaleatorios.

71
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

IMPLEMENTARUNSERVICIOWEB En el anterior documento se ha creado una pequea aplicacin Web, la cual ha servido como introduccin a la programacin en ASP.NET, adems hemos comprendido la programacin orientada a objetos.AlfinaldeestedocumentoseenlazarlaaplicacinWebconelServicioWebquesercreadoa continuacin. En este documento se desarrollar un Servicio Web. Esta caracterstica dentro de la programacin Web ha cambiado mucho la visin de programacin, un Servicio Web es una aplicacin sin interfaz, es un componente que ofrece servicios a travs del protocolo http en base al lenguaje XML. En anteriores documentos se ha explicado los protocolos que utiliza la plataforma .NET para las aplicacionesWeb. Los ServiciosWebhandadoorigenalaArquitecturaOrientadasaServicios,sebasaenelusodeestetipode componentes que suplen las necesidades de una o varias aplicaciones, son independientes entre s y trabajanindependientementedelsistemaoperativoolaplataforma. Iniciemos la creacin de un Servicio Web. Tendr un mtodo o servicio que genere nmeros aleatorios entreunrangode0y9peroenteros. Para iniciar esta aventura se ejecuta el Visual Web Developed y se debe realizar un clic en la opcin del menFileyseleccionarNewWebSite,comosepuedeverenlaPantalla1.

Pantalla1.IniciodecreacinparaunServicioWeb Una vez seleccionada la opcin se visualizar una pantalla, ya conocida, la cual nos permitir crear un Servicio Web. Dentro de la pantalla se debe seleccionar ASP.NET Web Service, esta plantilla permitir crear un Servicio Web, adems se debe especificar el directorio donde se va a alojar, para este ejemplo, eldirectoriotendrelnombredeWS_PrimeraAplicacion,comosepuedeverenlaPantalla2.

72
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2.CreacindeunServicioWeb

Una vez que se realice un clic en el botn OK. Automticamente el Visual Web Developed crea varios archivos dentro del Solution Explorer, como se puede ver en la Pantalla 3. El archivo ms importante tienelaextensin.asmx,elcualpermiteaccederalosserviciosatravsdelprotocolohttp.

Pantalla3.ArchivosqueConformanelServicioWeb El archivo Service.cs, debe contener todos los servicios que se necesite, se puede ver en la Pantalla 4 la estructuradeestearchivo.

Pantalla4.EstructuradelarchivoSercive.cs
Ingeniera de Sistemas Informticos

73

Universidad Privada del Valle Unidad Acadmica Sucre

Se puede apreciar que existe un instruccin entre corchetes que es [WebMethod], esta instruccin es la que define si un mtodo ser publicado en el Servicio Web. Debajo de esta instruccin est definido un mtodo de tipo pblico que devuelve una cadena con el nombre de HelloWorld, dentro del cuerpo de este mtodo, se ve claramente que va a devolver la cadena Hello World. Lo anteriormente descrito pertenece a un mtodo de un Servicio Web. Para el propsito del documento se crear un nuevo mtodoquegenerenmerosaleatorios,comosepuedeverenlaPantalla5.

Pantalla5.Nuevomtodocreadoquedevuelvenmerosaleatorios

Como se puede observar, existen ya dos mtodos para el Servicio Web, lo que queda es ejecutar el ServicioWeb. De igual forma que en las aplicaciones Web se visualizar una pantalla que dar a leccin si se quiere crear un archivo Web.config, el cual permite administrar el acceso y la configuracin del Servicio Web. Como se puede ver en la Pantalla 6. Se debe seleccionar la primera opcin para continuar con la ejecucinelServicioWeb.

Pantalla6.AdicionarelarchivoWeb.config

Al ejecutarse la aplicacin se abrir una pantalla del Internet Explorer, la cual mostrar todos los mtodosdelServicioWeb,enestecasomostrardosmtodos,comosepuedeverenlaPantalla7.Uno delosmtodosquesemuestraeselquesehacreadoconelnombredeNumeroAleatorio.

74
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7.MtodosdelServicioWeb

SiserealizaunclicenelmtodoNumeroAleatorio,sevisualizarlaespecificacindelmtodoyunbotn con el nombre de Invoke, este botn es el que ejecutar, realmente, las lneas de cdigo del mtodo, comosepuedeverenlaPantalla8.

Pantalla8.EspecificacindelmtodoNumeroAleatorio

Si se realiza un clic en el botn se podr ver una nueva ventana de Internet Explorer con una estructura XMLydentrodeellaelnmeroaleatorioquesehagenerado,comosepuedeobservarenlaPantalla9.

Pantalla9.ResultadodeinvocaralmtodoNumeroAleatorio 75
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DeestaformasehaterminadodedesarrollarunAplicacinWebutilizandoelconceptodeServicioWeb. A continuacin se explica cmo integrar la primera aplicacin Web con el primer Servicio Web desarrollado. Antesdeintegrar,elServicioWebdebeserpublicadoenelInternetInformationServer,paraquepueda servistoporlaAplicacinWeboporcualquierotraaplicacin. ParapublicarunaaplicacinWebounServicioWebsedeberealizarunclicderechoenMiPCdentrodel ExploradordeWindows,sevisualizarunmenemergentecomosepuedeverenlaPantalla10.

Pantalla10.MenemergentedeMiPC Una vez desplegado el men se debe realizar un clic en la opcin Administrar o Manage, la cual abrir una nueva pantalla de administracin de la computadora, que se puede ver en la Pantalla 11. Esta pantalla sirve para realizar la administracin de los servicios y cuentas de la computadora donde se trabaja.

Pantalla11.AdministracindelaComputadora En el rbol de directorios se puede visualizar Services and Applications (Aplicaciones y Servicios), si se realiza un clic en el signo ms (+), deesta opcin, podr ver otras. La que debe estudiarse, para publicar una aplicacin Web o un Servicio Web, es Internet Information Services Manager (IISM), al realizar un 76
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

clic en esta opcin mostrar varias carpetas que contienen distintos archivos de configuracin, como se puede ver en la Pantalla 12. De estas carpetas la que utilizaremos para crear un directorio virtual y por consecuenciapublicarelServicioWebesladeWebSites.

Pantalla12.OpcionesdeConfiguracindeIIS

Para crear un directorio virtual se debe realizar un clic derecho en Default Web Site, de inmediato se visualizarunmenemergentequesepuedeobservarenlaPantalla13.

Pantalla13.OpcionesparacrearunDirectorioVirtual Una vez desplegado el men emergente se debe seleccionar las opciones New y a continuacin Virtual Directory. De inmediato se visualizar un asistente de Creacin de un Directorio Virtual como se puede verenlaPantalla14.

77
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla14.AsistenteparaCrearunDirectorioVirtual Como en todo asistente se debe seguir las instrucciones. Para nuestro propsito se debe realizar un clic en el botn Next, donde inmediatamente se visualizar la Pantalla 15. Donde se debe introducir el nombredeldirectoriovirtual,enestecasoserWS_PrimeraAplicacion.

Pantalla15.DefinicindelAliasdelServicioWeb

Una vez introducido el sobre nombre del directorio virtual se debe realizar un clic en el botn Next, de inmediato se visualizar la Pantalla 16. Donde se debe especificar y buscar el directorio donde se encuentraelServicioWebcreadocomosepuedeverenlaPantalla16.

78
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla16.DefinicindeldirectorioquealmacenaelServicioWeb AcontinuacinsedeberealizarunclicenelbotnNext,dondeinmediatamentesevisualizarlaPantalla 17,dondesedebeespecificarlosderechosdeaccesoaldirectoriovirtual,paralaaplicacinsedejarlas opcionespordefecto.

Pantalla17.PermisosdeAccesoalDirectorioVirtual Cuando se realiza un clic en el botn Next, de la pantalla 17, de inmediato se visualizara la Pantalla 18, que es el final del asistente para la creacin de un directorio virtual, solo se debe realizar un clic en el botnFinishparafinalizar.

79
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla18.Finaldelasistenteparacrearundirectoriovirtual Se puede ver en la Pantalla 19 que se ha creado el directorio virtual, esto garantiza que el Servicio Web estpublicadoyqueyasepuedeutilizarendistintasaplicaciones,yaseaconinterfazWeboWindows.

Pantalla19.ArchivosdelnuevoDirectorioVirtual Se ha finalizado con la creacin de un directorio virtual, ahora se continuar con la integracin del ServicioWebconlaAplicacinWeb.Paraesto,debemosestarenelentornodedesarrollodeVisualWeb DevelopedyhabercargadonuestraPrimeraAplicacinWeb. Para iniciar se debe realizar un clic en el nombre de la aplicacin dentro del Solution Explorer y seleccionar el directorio por defecto con el nombre de App_WebReferences, el cual tiene la caractersticadecontenerlasreferenciasaserviciosWebquenecesiteinteractuarlaaplicacin.Comose puedeverenlaPantalla20.

80
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla20.AdicionareldirectorioApp_WebReferences Unavezrealizadaestaactividad,sepuedeadicionarelServicioWebquesehacreadoenestaaplicacin. Para realizar esto, debe realizar un clic derecho en el directorio creado App_WebReferences, de inmediato se visualizar un men emergente donde se debe seleccionar la opcin Add Web Referente, comosepuedeverenlaPantalla21.

Pantalla21.AdicionarunaReferenciaWeb De inmediato se visualizara la Pantalla 22. Donde se debe seleccionar el link Web Services on the local machine,elcualnospermitevisualizartodoslosServiciosWebdisponiblesenlacomputadoralocal.

81
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla22.AdicionarunareferenciaWeb

La lista de los Servicio Web disponibles se la puede ver en la pantalla 23. El Servicio Web que se adicionaralaaplicacinWebser: http://localhost/WS_PrimeraAplicacion/Service.asmx El cual contiene el mtodo para generar los nmeros aleatorios. Primero se debe seleccionar el Servicio WebyluegosedeberealizarunclicenelbotnAddReference,comosepuedeverenlaPantalla23.

Pantalla23.AgregarunareferenciadeServicioWebalaPrimeraAplicacin UnavezqueseadicioneelServicioWeb,enlaaplicacinWeb,dentrodelSolutionExplorerseadicionar undirectorioconelnombredelocalhost,comosepudeverenlaPantalla24.

82
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla24.AdicindelprimerServicioWebalaAplicacin Con esta accin se determina que realizaremos una referencias al servicio Web creado anteriormente, para poder utilizar el primer Servicio Web, de ahora en adelante se debe considerar como una clase, es decir, que necesitamos crear una instancia y crear un objeto que haga referencia al Servicio Web, como se puede ver en la Pantalla 25. La creacin de la instanciadel ServicioWeb se debe realizaren el evento Click de botn Jugar para este ejemplo. Cuando se crea una instancia de un Servicio Web, la utilizacin deestainstanciaessimilaralautilizacindelainstanciadeunaclase,comoeneldocumentoanterior.El cdigodeeventovariarcomoseveenlaPantalla25.

Pantalla25.CdigoparalautilizacindelServicioWebdentrodelaaplicacinWeb Luego de introducir el cdigo de la Pantalla 25, lo que queda realizar es ejecutar aplicacin Web, esta ejecucinselapuedeverenlaPantalla26.Elcomportamientodelbotnessimilaraloanterior,eneste casoseestrefiriendoaunservicioWebquedevuelvenmerosaleatorios.

Pantalla25.EjecucindelaAplicacinWebconreferenciaaunServicioWeb De igual forma se puede realizar una aplicacin con interfaz Windows y hacer una referencia al Servicio Web,utilizandoelmtododegenerarnmerosaleatorios. 83
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

De esta forma se ha finalizado la introduccin a la programacin con ASP.NET, en los documentos de la etapadeImplementacinsevolveratocarconmayordetallelaprogramacinenASP.NET.

84
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

CAPTULOII
INGENIERADEREQUISITOSYANLISIS
Objetivo IntroduciryconocerlafilosofadelasetapasdeIngenieradeRequisitosyAnlisis.

85
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

INTRODUCCINALAMODELACINCONUML En este documento se hablar brevemente de UML (LenguajedeModelacinUnificado),tambinsedarn algunos conceptos importantes de la tecnologa orientadaaobjetos.

DESARROLLO DE APLICACIONES WEB EN MICROSOFT C#.NET MODELADAS EN UML

Grupo de Investigacin Univalle - 2006

Objetivos
z Conocer

aspectos bsicos del lenguaje UML z Usar adecuadamente los diagramas fundamentales del lenguaje UML

Los objetivos de este documento enmarcan los conceptos bsicos de UML y los diagramas que se utilizanparalamodelacindeunaaplicacin.

Grupo de Investigacin Univalle - 2006

Sumario
z Enfoques

en el anlisis y diseo de sistemas. z Conceptos de la orientacin a objetos. z UML y sus diagramas.

Un tema importante son los diagramas que se utilizan para la modelacin orientada a objetos, los cuales sern descritos durante todos los documentos que conformanestaaventura. Semencionarbrevementelosdistintosenfoquesque hanpermitidodesarrollarsoftwareconxito. Por ltimo, conceptos bsicos sobre los distintos diagramas que utiliza UML que nos ayudan a desarrollaryentenderelsoftware.
3

Grupo de Investigacin Univalle - 2006

86
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Enfoques en el anlisis y diseo de sistemas


z

Enfoque estructurado:
z z

Orientado a flujos de datos y funciones. Dominio de herramientas y lenguajes de programacin estructurada, orientados a flujos de datos que permiten una modelacin de las funciones o procesos de un sistema Autores principales:
z z z

Tom DeMarco Edward Yourdon Palmer y McMenamin

Grupo de Investigacin Univalle - 2006

Enfoques en el anlisis y diseo de sistemas


z

Enfoque orientado a objetos:


Orientado a conceptos u objetos y relaciones entre estos. z Exige un cambio de paradigma que no se satisface nicamente en utilizar un lenguaje o herramienta de orientacin a objetos
z

Grupo de Investigacin Univalle - 2006

Unodelosenfoquesquesehautilizadomuchoparala descripcin de las aplicaciones ha sido el Enfoque Estructurado, est orientado a los flujos de datos y funciones ayudados por una herramienta que es el Diagramadeflujo. Existieron muchas metodologas que se han utilizado para la documentacin de las aplicaciones con el enfoqueestructurado. Estructurado se refiere al hecho de que las tcnicas son instrucciones cuidadosamente descritas, con frecuenciapasoapaso,dondecadapasosedesprende delanterior Dentro de la vida diaria se est rodeado de objetos, estos estn relacionados, cada uno de estos tiene un concepto y un significado. El concepto de objeto da como origen a este nuevo enfoque de orientado a objetos que cambia de paradigma a los programadores,analistasydiseadores. Esteenfoqueorientadoaobjetos,hacambiadomucho el desarrollo de software en el mundo entero, dando origen a nuevos conceptos, teoras, modelos de procesos, metodologas, mediciones, actividades, estndares,etc.Esuntotalcambiodeparadigma Paraentenderelenfoqueorientadoaobjeto,primero sedebedefiniralgunosconceptosqueson importantes. Cada objeto que nos rodea tiene un nombre, varios atributos,accionesquesepuedenrealizaryporltimo est conformado por partes que estn relacionadas para conformar el objeto. En la diapositiva se puede ver un ejemplo de objeto el cual tiene como nombre Martillo, tiene un atributo que es color y este atributo tiene el valor Blanco, se puede realizar una accin que es de golpear y est conformado de dos partes quesonlaCabezayMango

Conceptos de la orientacin a objetos


OBJETOS
Nombre Martillo Atributos Color Blanco Partes Cabeza Mango Acciones Golpear

Grupo de Investigacin Univalle - 2006

87
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Conceptos de la orientacin a objetos


z

Tipo de Objeto:
z

Descripcin generalizada que coleccin de objetos similares

describe

una

z z

Clase:
z

Implementacin en software de un tipo de objeto. Es el comportamiento de un tipo de objeto. A travs de ellas se encapsulan los datos. Implementacin en software de la operacin.
Grupo de Investigacin Univalle - 2006 7

Operacin:
z z

Mtodo:
z

Dentro de las aplicaciones varan algunos de los conceptos descritos, pero cada objeto debe pertenecer a un tipo de objeto, en el mbito de Software denominado clase. De esta ltima caracterstica pueden ser definidos varios objetos que sepuedenutilizardentrodelasaplicaciones.Unaclase est compuesta por un Nombre, Atributos y Operaciones,denominadosenSoftwaremtodos. Msadelanteenprximosdocumentossehablaracon mayordetalledelascaractersticasqueincluyela definicindeunaclase. Para comprender el enfoque orientado a objetos se ver algunos de los conceptos bsicos como: encapsulamiento,herenciayelpolimorfismo. Enlassiguientesdiapositivasseexplicarestos conceptosbsicamente.

Conceptos de la orientacin a objetos


z Caractersticas Distintivas

Encapsulamiento. Herencia z Polimorfsmo


z z

Grupo de Investigacin Univalle - 2006

Todo el detalle, al estar encapsulado, es desconocido por el resto de la aplicacin, limitando el impacto de cualquier cambio en la implementacin del objeto, ya z Caractersticas Distintivas que los cambios a las propiedades internas del objeto z Encapsulamiento no afectan su interaccin externa. Obviamente z Empaque conjunto de datos y mtodos cualquier cambio en la propia interface del objeto Atributos afectara potencialmente a todo el resto de la Operaciones aplicacin. Sin embargo el porcentaje de cdigo dedicado a las interfaces es por lo general muchsimo menor que el porcentaje total de lneas de cdigo utilizados para datos e implementacin de funciones. De tal manera se reduce la complejidad del sistema protegiendo los objetos contra posibles errores, y permitiendo lograr de mejor manera extensiones futurasenlaimplementacindelosobjetos.
Conceptos de la orientacin a objetos
Grupo de Investigacin Univalle - 2006 9

88
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

La herencia es una abstraccin importante para compartir similitudes entre clases, donde todos los atributos y operaciones comunes a varias clases se z Caractersticas Distintivas pueden compartir por medio de la superclase, una z Herencia. clase msgeneral.Lasclasesmsrefinadasseconocen z Propiedad de una clase de heredar el comportamiento de sus ancestros comolassubclases z Polimorfsmo. De manera simplificada, mediante el polimorfismo se z Mecanismo que permite a la subclase definen funciones con el mismo nombre e interfaz en implementar la misma operacin con un mtodo diferente. distintas clases de objetos, pero bajo implementaciones distintas. El polimorfismo es til paraextenderlafuncionalidadexistenteenlosobjetos delsistema,anuevosobjetosandesconocidosenese momento. Es como definir un estndar de interfaces para los objetos la cual debe ser seguida por todos los existentes y nuevos. Haciendo una analoga, todo el tiempo aparecen nuevas aplicaciones de software quepuedenejecutarseensistemasyaexistentes. UML es un lenguaje que ha logrado ser un estndar a UML y sus diagramas nivel internacional para la descripcin del desarrollo de software, se base en la tecnologa orientada a z Unified Modelling Language objetos. Muchos confunden a UML como una z Es una notacin estndar para especificar metodologa, realmente es un apoyo hacia una sistemas con la tecnologa Orientada a metodologa. Es decir que una metodologa orientada Objetos z No es una metodologa es un lenguaje a objetos tiene que basarse en UML. En posteriores z Booch, Rumbaugh y Jacobson se unen diapositivas se ver la historia y la evolucin de UML para crear UML en estos aos, sin embargo se tiene que sealar que son tres investigadores muy conocidos en el mundo deldesarrollodesoftwarequesereunieronparacrear lasespecificacionesbsicasdeUMLyapoyaraquesea unestndarinternacional,ellossonBooch,Rumbaugh yJacobson. James Rumbaugh propone en 1991 un artculo para UML y sus diagramas realizar la modelacin y el diseo orientado a objetos paraeldesarrollodesoftware. z JAMES RUMBAUGH Otro investigador, en el mismo ao, publica otro z Object-Oriented Modelling and Design 1991 artculo para el diseo orientado a objetos fue Grady (OMT) z GRADY BOOCH Booch. Object Oriented Design with Applications El ltimo investigador, en el ao 1992, marca el inicio 1991 de ladeterminacinderequisitosatravsdeloscasos z IVAR JACOBSON de uso, esta tcnica es utilizada por el Proceso z Object Oriented Software Engineering: A Use Case Driven Approach 1992 (OOSE) Unificado de Rational. El artculo de Ivar Jacobson fue publicadoenelao1992. EstostresinvestigadoressereunieronparacrearUML, LenguajedeModelacinUnificado
Conceptos de la orientacin a objetos
Grupo de Investigacin Univalle - 2006 10 Grupo de Investigacin Univalle - 2006 11

Grupo de Investigacin Univalle - 2006

12

89
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

La primera versin de UML fue presentada en el ao 1997 a la OMG, esta, en el mismo ao, fue aprobada. Solo tard un ao en ser aprobada como un estndar z Primera Versin a OMG (Object para la modelacin orientada a objetos y para el Management Group, Grupo de Gestin desarrollo desoftware. de Objetos), Enero 97 Las razones para usar UML difieren de acuerdo al z Versin Final a OMG, Sep 97 contexto. Si alguno pregunta por qu cambiar de z Aceptacin de OMG, Nov 1997 alguno de los mtodos anteriormente desarrollados por Rumbaught, Booch o Jacobson, la respuesta sera debido a que UML es uno de los ms desarrollados, es un real sucesor de los tres mtodos muy utilizados paralaespecificacindeldesarrollodesoftware.La mayoradelosnuevosCASEparaeldesarrollodesoftwaresoportanherramientasbasadasenUML. Laevolucinseiniciaconlapublicacindeartculosde Introduccin a UML Booch, Rumbaugh y Jacobson, los cuales se renen y crean un Mtodo Unificado en el ao 1995. Un ao despus aparece en Junio la primera versin de UML. Como se dijo anteriormente en el ao 1997 se publica la primera versin de UML. Desde ese entonces fue evolucionando hasta la versin 1.5 que fue al rededor de los aos 2001 y 2004 el estndar de desarrollo de software. En abril del 2004, se lanza la versin 2 de UML, la cual estdirigidaalaproduccinautomticadeprogramas basadosenlaespecificacindesoftware.Est compuestopordoscategorasdediagramas: Diagramasestructurales Diagramasdinmicosodecomportamiento Dentrodeesteconjuntodedocumentosseutilizarlaversin1.5deUML. Se entiende diagrama como una representacin grfica de un conjunto de elementos, que la mayora delasvecessedibujacomounconjuntoconexodenodos(elementos)yarcos(relaciones). Cadacasodeusooflujosecomponedeunasecuencia UML y sus diagramas de eventos iniciada por el usuario de la aplicacin. Dado que los casos de uso describen la aplicacin a z Casos de Uso y Diagrama de Casos de uso desarrollarse, cambios en los requisitos significarn cambiosenloscasosdeuso.Seconsideraqueuncaso deusoesunrequisitodelaaplicacin. Un caso de uso es iniciado por un usuario o actor, los cuales representa los elementos fundamentales para Casos de uso elDiagramadeCasosdeUso. El Caso de Uso es el elemento ms importante dentro del desarrollo, aunque no se requiere mucha tecnologa para poder utilizarlo. Sin embargo, la correctautilizacinylacompletadescripcinmarcan un inicio del desarrollo exitoso, el detalle que se introduce en la descripcin dar una visin muy clara delascaractersticasquesonnecesariasparalaaplicacinoparaelusuario. 90

Introduccin a UML

Grupo de Investigacin Univalle - 2006

13

Grupo de Investigacin Univalle - 2006

14

A Usuario

CU Reservar Habitacin
(f rom Recepcin)

(from Actors)

CU Confirmar Reserva
(f rom Recepcin)

A Cliente

(from Actors)

A Recepcionista
(from Actors)

CU Salir del Hotel


(f rom Recepcin)

Grupo de Investigacin Univalle - 2006

15

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

UML y sus diagramas


z Diagrama
z

de Estructura esttica

Diagrama de Clases z Diagrama de Objetos


1 EACliente
(f ro m Clas es En tida d)

EAHab itaci on 1
(f rom Clases Entidad)

EAUsuari o
(f rom Clases Entidad)

1 1..*

1..*

BuscarHabitacion()

BuscarCliente() BuscarCliente() 0..* 1..* EACom ida


(f rom Clases Entidad)

1..* EAReservacion
(f ro m Cla ses En tid ad) 0..*

0..* EARecepci oni sta EAOrdenSe rvi oci o


(f rom Clases Entidad) (f ro m Clas es En tida d)

IntroducirComida()

1..* GrabarOrden() EABebida


(f rom Clas es Entida d)

IntroducirBebida()

Grupo de Investigacin Univalle - 2006

16

El Diagrama de Clases es el diagrama principal para el anlisis y diseo. Un diagrama de clases presenta las clasesdelsistemaconsusrelacionesestructuralesyde herencia. La definicin de clase incluye definiciones para atributos y operaciones. El modelo de casos de uso aporta informacin para establecer las clases, objetos, atributos y operaciones. Est compuesto por dos elementos fundamentales, la Clase como tal y la relacin. Un Diagrama de Objetos representa una situacin concretadeldominio

Eldiagramadetransicindeestado(tambinconocido como DTE) enfatiza el comportamiento dependiente del tiempo del sistema. Este tipo de diagrama slo z Diagramas de importaba para una categora de sistemas conocido Comportamiento como sistemas de tiemporeal. Determina la dinmica z Diagrama de transicin de estado para cada clase del sistema, entendidas como las z Diagrama de vistas de vidas posibles (estados vlidos) para las Actividad instanciasdelaclase. Un diagrama de Actividad demuestra la serie de actividades que deben ser realizadas en un caso de uso, as como las distintas rutas que pueden irse desencadenando. Es importante recalcar que aunque undiagramadeactividadesmuysimilarendefinicin a un diagrama de flujo (tpicamente asociado en el diseo de Software), estos no son lo mismo. Un diagrama de actividad es utilizado en conjuncin de un diagrama de casos de uso, para auxiliar a los miembros del equipo de desarrollo a entender como es utilizado el sistema y como se reacciona en determinadoseventos.Loanterior,encontrasteconundiagramadeflujoqueayudaaunprogramador a desarrollar cdigo a travs de una descripcin lgica de un proceso. Se pudiera considerar que un diagramadeactividaddescribeelproblema,mientrasundiagramadeflujodescribelasolucin. Estos dos diagramas conocidos, tambin como UML y sus diagramas Diagramas de Interaccin, entendiendo la interaccin como: conjunto de mensajes intercambiados por los z Diagramas de Comportamiento rolesatravsdelosrolesdeunaasociacin. z Diagrama de Secuencia El Diagrama de Secuencia, muestra la secuencia de z Diagrama de Colaboracin mensajes entre objetos durante un escenario concreto, cada objeto viene dado por una barra vertical, el tiempo transcurre de arriba abajo y cuando existe demora entre el envo y la atencin se puede indicarusandounalneaoblicua. El Diagrama de Colaboracin es una descripcin de unacoleccindeobjetosqueinteractanpara implementar un cierto comportamiento dentro de un contexto. Describe una sociedad de objetos cooperantes unidos para realizar un cierto propsito. Una colaboracin contiene ranuras que son rellenadasporlosobjetosyenlacesentiempodeejecucin.

UML y sus diagramas


Cliente

Mes ero

Cocinero

Mozo de l Bar

Solicitar servicio

Recepcionar Solicitud

Solicitud de Servicio

[Llena]

Soli cita r Bebidas al Bar

Calcular Costo de Bebidas

Soli citud de Bebidas

Solicitud de Bebidas

[Ll ena]

[C on el Cos to]

Verificar Solicitud de Bebidas

Precios incorrectos

Calcular Costo Total del Servicio

Verificar el costo del Servicio

Solicitud de Servicio

[Con el Costo]

Costo Incorrecto

Grupo de Investigacin Univalle - 2006

17

: IABebidas

: EABebida

7 : Introduc irBe bida (i nt, int )

9: IntroducirBebi da( )

8: Introduci rBebi da(int, int)

5: Mostrar( )

cion ar : PAdi cionar

3: BuscarHabitaci on(string)

: CSWPersonal CPersonal : SWHotel : CPerso nal SWH otel InsertarPersonal( ) InsertarPers onal ( ) InsertarPersonal( )

: DTOPersonal

: AssemblerPersonal

: EAPersonal

LlenarDTOPersonal( )

1 : BuscarCli ent e(string) 13: GrabarOrden( )

2: BuscarCli ente(stri ng) 14: GrabarOrden(i nt)

: EAHabitacion

LlenarPersonal( )

4: BuscarCli ente(int)

BuscarNombre( )

: A Jefe de Coci na

: IAOrdenServicio

: CAServicio

InsertarPersonal( )

10: Introduci rComida(int, i nt)

InsertarPersonal( )

6: Mostrar( )

12: IntroducirComida(i nt)

11: IntroducirComi da(int, int)

: EACl iente

15: GrabarOrden(DataSet, DataSet)

: IAComidas

: EAComida

: EAOrdenServiocio

Grupo de Investigacin Univalle - 2006

18

91
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

El Diagrama de Secuencia es ms adecuado para observar la perspectiva cronolgica de las interacciones, muestra la secuencia explcita de mensajes y son mejores para especificaciones de tiempo real y para escenarios complejos. El Diagrama de Colaboracin ofrece una mejor visin espacial mostrando los enlaces de comunicacin entre objetos, muestra las relaciones entre objetos y son mejores para comprender todos los efectos que tiene un objeto y para el diseo de procedimientos. El diagramadeColaboracinpuedeobtenerseautomticamenteapartirdelcorrespondientediagramade Secuencia(oviceversa). Un diagrama de componentes representa las UML y sus diagramas dependencias entre componentes de software, incluyendo componentes de cdigo fuente, z Diagramas de Implementacin componentes del cdigo binario, y componentes z Diagrama de Componentes ejecutables. Un mdulo de software se puede z Diagramas de instalacin/Distribucin (Despliegue) representarcomocomponente.Algunoscomponentes existen en tiempo de compilacin, algunos en tiempo de enlace y algunos en tiempo de ejecucin, otros en variosdestos. Los Diagramas de Despliegue muestran la disposicin fsica de losdistintos nodos que componen unsistema y el reparto de los componentes sobre dichos nodos. Lavistadedesplieguerepresentaladisposicindelas instancias de componentes de ejecucin en instancias de nodos conectados por enlaces de comunicacin.Unnodoesunrecursosdeejecucintalcomouncomputador,undispositivoomemoria Un requisito dentro del sistema se expresa a travs de Qu es Requisito? una funcionalidad necesaria para el usuario. Es muy necesario estudiar todos los requisitos ya que pueden z El modelo de requisitos tiene como ser variables o cambiantes en el transtexto del objetivo delimitar el sistema y capturar la desarrollo de software, esto implica un riesgo de no funcionalidad que debe ofrecer desde la cumplirse exitosamente el desarrollo de software. perspectiva del usuario. Otraimportanciasobreelrequisitoesladescripcin,si no est bien descrito no se podr logar una implementacin correcta para cumplir, influyendo en el tiempo y el esfuerzo que se empela para esta actividad.
ASPX
Servi dor Web Servidor de Servicios Servidor de Base de Datos

ASPX.cs

ASCX

ASCX.cs

preemptive

<process name> <thread name>

C liente de Hotel1

Swith

ASMX

ASMX.cs

Cliente H otel 2

Clases.cs

DTO.cs

SQLHelper. cs

Router

Maquina del Cliente

Cel ular Cliente

Grupo de Investigacin Univalle - 2006

19

Grupo de Investigacin Univalle - 2006

20

Qu es Anlisis?
Distincin y separacin de las partes de un todo. Qum. Anlisis cualitativo, el que descubre y asla a los elementos de un cuerpo compuesto: anlisis cuantitativo, el que tiene por objeto determinar la cantidad de cada componente.

Dentrodelamodelacinorientadaaobjetoselanlisis seentiendecomo: Con el anlisis orientado a objetos se puede examinar los requisitos desde la perspectiva de las clases y los objetos encontrados en el dominiodelproblema.

Grupo de Investigacin Univalle - 2006

21

92
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Qu es Diseo?
z Traza

de un edificio, delineacin de una figura. Descripcin, bosquejo hecho por palabras. z Disear: delinear, bosquejar, trazar.

El diseo orientado a objetos es un mtodo de diseo que se basa en el concepto de que el modelo del sistema es una coleccin de objetos que cooperan entre si para garantizar los requisitos del usuario y donde cada objeto es una instancia de una clase en unajerarquadeclases

Grupo de Investigacin Univalle - 2006

22

Qu es Modelo?
z Lo

que ha de servir de objeto de imitacin. Figura de barro, yeso o cera que se ha de reproducir en madera, mrmol o metal. Representacin en pequeo de alguna cosa

Existen muchos conceptos para modelo por la gran cantidad de ciencias dentro del mundo. Pero se pude interpretar como una abstraccin de la realidad para suestudioosuconstruccin.

Grupo de Investigacin Univalle - 2006

23

Qu es Proceso de Desarrollo?
z Es

el conjunto de actividades necesarias para transformar los requisitos de un usuario en un sistema de software.
Proceso de desarrollo de software Sistema software

Requisitos del usuario

Dentro de la introduccin a estos documentos se ha tratado de explicar lo que es un proceso de desarrollo de software, sin embargo, dentro de la diapositiva, existe una definicin que sirve para el recuerdo, qu es un proceso de desarrollo? En resumen se tiene un conjunto de requisitos donde entrarn a un proceso de cambio para convertirse en una aplicacin o sistemadeinformacinounsoftware.

Grupo de Investigacin Univalle - 2006

24

93
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Conclusiones
z Se

ha logrado una visin de general de UML dentro de las diapositivas. z Se ha visto los distintos diagramas que se utilizan para la modelacin de una aplicacin z Se definido el enfoque estructurado ya en desuso y tambin el enfoque orientado a objetos
Grupo de Investigacin Univalle - 2006 25

HasidounaintroduccinamundodeUML,queayuda aladocumentacinysobretodoaentenderdeforma msrpidaeldesarrollodesoftware. Es muy importante su estudio y sobre todo la aplicacin de estos conceptos, aunque son un poco tediosos para una sola persona cuando la aplicacin a desarrollaresgrande,sinembargoesmuyaconsejable la utilizacin para este tipo de aplicaciones de gran tamao ya que ordena y orienta a los desarrolladores. No se debe olvidar que el desarrollo de software es unaactividadmultidisciplinariadondesedebetrabajar enequipo.

94
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

INTRODUCCINALAMODELACINDELNEGOCIO Antes de iniciar la modelacin se hace una breve descripcin del negocio que se quiere automatizar, el cualservirparaaprenderlamodelacinconUMLylautilizacindeRacionalRose. ElnegocioaestudiaresdeunaempresaHoteleraqueprestaserviciodehospedaje,conserviciosbsicos como por ejemplo: servicios de alimentacin en la habitacin o los servicios bsicos como desayuno, almuerzo y cena. El registro de solicitudes de estos servicios hace el Mozo encargado del restauran del hotel,elquedeterminaelcostodelservicioeselCocineroyelJefedelBar,unodeterminaelcostodela comidayelotrodelasbebidassolicitadasporlapersonahospedada.Esmuyclaroquealapersonaque se le va a servir, ya sea en la habitacin o de un servicio bsico, debe estar registrada en el hotel. Antes desuregistrodeberealizarunareservadehabitacinparaluegoconfirmarla,estaoperacinlarealizala recepcionista. Una vez que la persona, que est hospedada, decide abandonar el hotel debe acercarse a la recepcionista para solicitar su cierre de cuenta y poder pagar el monto de dinero que ha costado su hospedaje. El primer paso para iniciar este camino es el Modelo del Negocio. Iniciemos sta aventura de modelar unaaplicacinexplicandodeunaformamuybreveelModelodelNegocio. La obtencin del modelo del negocio es opcional, normalmente solo se realiza si ste trabajo es renumeradodeformaindependiente. Sin embargo, para conseguir sus objetivos una empresa organiza sus actividades por medio de un conjunto de procesos de negocio. Cada uno de ellos se caracteriza por una coleccin de datos que son producidos y manipulados mediante un conjunto de tareas, en las que ciertos agentes (por ejemplo, trabajadoresodepartamentos)participandeacuerdoaunflujodetrabajodeterminadoqueesactivado porunapersonaexternaalnegocio.Adems,estosprocesossehallansujetosaunconjuntodereglasde negocio, que determinan la estructura de la informacin y las polticas de la empresa. Por tanto, la finalidad del modelado del negocio es describir cada proceso del negocio, especificando sus datos, actividades(otareas),roles(oagentes)yreglasdenegocio.Nodebeolvidarsequeconlamodelacindel negocio se estudia el flujo de informacin que est dentro de los procesos del negocio. Se entiende como proceso del negocio a una actividad que es llevada a cabo por personas involucradas dentro de la empresa. No se debe confundir con el proceso que sigue una aplicacin. En ningn momento se debe modelar la aplicacin futura dentro del Modelo del Negocio. Dentro de la experiencia que se tiene, existe una confusin muy errnea, muchos de los que se dedican a la modelacin establecen una igualdad o similitud del Diagrama de Casos de Uso del Negocio con el Diagrama de Casos de Uso de la Aplicacin. Como se ha dicho anteriormente el Diagrama de Casos de Uso del Negocio estudia los procesosdelnegociocomotalyelDiagramadeCasosdeUsodelaAplicacinestablelosrequisitosdela aplicacin a desarrollar. En prximos documentos se dar una explicacin de la determinacin de requisitos. LosobjetivosprincipalesdelaModelacindelNegociosonlossiguientes: Entenderlaestructurayladinmicadelaorganizacin Entenderlosproblemasactualeseidentificarmejoraspotenciales Asegurarse de que los clientes, usuarios finales y desarrolladores tienen una idea comn de la organizacin Derivarlosrequisitosdelaaplicacin Identificarlosprocesosenelnegocio 95
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Definirlasfronterasdelnegocioquevanamodelarse Definirquinyquinteractaconelnegocio Creardiagramasdelmodelodecasosdeusodelnegocio

ElModelodelNegocioestcompuestopordosmodelosunoeselModelodeCasosdeUsodelNegocioy elModelodeObjetosdelNegocio. ElModelodeCasosdeUsodelNegocioestcompuestoporelDiagramadeCasosdeUso,laDescripcin y el Diagrama de Actividad de los Casos de Uso del Negocio. Describe los procesos de negocio de una empresa en trminos de casos de uso del negocio y actores del negocio que se corresponden con los procesosdelnegocioylosclientes,respectivamente El otro Modelo de Objetos del Negocio es un modelo de objetos que describe cmo colaboran los trabajadoresylasentidadesdelnegociodentrodelflujo(realizacin). EstereotiposdelaModelacindelNegocio El responsable de utilizar estos estereotipos es el Diseador del Negocio, es una persona dentro de la empresa de software que tiene la labor de desarrollar, estudiar e identificar los elementos de un negocio. Se entiende la palabra estereotipo como representacin de una subclasificacin de un elemento del modelo.UnestereotipopuedetenersupropioiconoenelRationalRose. Artefacto:ActordelNegocio

Elactordelnegociorepresentaunrolrealizadoenrelacinalnegocioporalguien oalgoenelentornodenegocio. Otrasrelaciones: Rol: Opcional: Representacinen UML: Espartedelmodelodecasosdeusodelnegocio. Diseadordelnegocio Puedeserexcluido. Esunactor,estereotipadocomoactordelnegocio. Salidadelasactividades: Encontraractoresdelnegocioycasosdeuso.

Ingresoalasactividades: Detallaruncasodeusodelnegocio. Propsito Laspersonassiguientesutilizanactoresdelnegocio:

96
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Analistasdelsistemadelnegocio,almomentodedefinirelmarcodelnegocio. Diseadoresdelnegocio,aldescribirloscasosdeusodelnegocioysuinteraccinconlosactores delnegocio. Diseadores de la interfaz de usuario, como una entrada al capturar las caractersticas de los actores(usuarios)delsistema. Analistasdelsistema,comounaentradaparaencontraractoresdelsistema.

Propiedades Nombredela Propiedad Nombre DescripcinBreve Elnombredelactordelnegocio. Esunabrevedescripcindelasresponsabilidades delactoryelporquedelanecesidaddelactordel negocioenlaorganizacin. RepresentacinenUML Elatributonombreen elelementodelmodelo. Caracterizadoporser textocorto.

Descripcin

Caractersticas

Utilizadoprincipalmenteporactores(personas)del negocioqueactuarncomocompradoreso vendedores:Entornofsico,nmerodepersonas Caracterizadoporser queelactorrepresenta,gradodeconocimientode textoconformato. laorganizacin,gradodeexperienciaen computacin,otrasaplicacionesqueelactorutiliza, yotrascaractersticascomognero,edad,etc. Generalizacionesyasociacionesdecomunicacin enlascualesparticipaelactordelnegocio. Cualquierdiagramacomnalactor,puedenser diagramasdecasosdeusoqueexpresenlas asociacionesdecomunicacinconotroscasosde usodelnegocio. Atravsdela agregacindueos Atravsdela agregacindueos

Relaciones

Diagramas Cronologa

Los actores del negocio se definen y relacionan con los casos de uso del negocio en la fase de concepcin,almomentodedelimitarelprocesodelaingenieradelnegocio. Responsabilidad Un analista del proceso del negocio es responsable de la integridad de los actores del negocio, debe asegurarsedecumplirlossiguientespuntos:

Cadaactor(persona)delnegociodeberepresentarlascaractersticasnecesarias. 97

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Cadaactordelnegociodebeenlazarsecorrectamenteconlasasociacionesdecomunicacinpara cadacasodeusoconloscualesparticipa. Cadaactordelnegociodebeserpartedelgrupocorrectodegeneralizacin. Cadaactordelnegociodefineunrolcohesivoyesindependientedeotrosactoresdelnegocio. Los diagramas de casos de uso que describen al actor del negocio son entendibles y consistentes conlasotraspropiedades.

Elaboracin Se debe decidir que propiedades utilizar y como usarlas. Se debe determinar el grado de detalle de las caractersticasadescribir. Artefacto:Trabajadordelnegocio Un trabajador del negocio es una abstraccin de una persona en un sistema de software que representa el rol que lleva a cabo y sus tareas dentro del caso de uso del negocio. Un trabajador del negocio colabora con otros trabajadores del negocio, recibe notificaciones de eventos del negocio y manipula a entidades del negocioparacumplirsusresponsabilidades. Espartedelmodelodeanlisisdelnegocio Diseadordelnegocio Puedeserexcluido.Lostrabajadoresdelnegociodebensermodeladossise considerarncambiosenlaorganizacin. Clase,estereotipadacomotrabajadordelnegocio. Salidadelasactividades: Detallaraltrabajadordelnegocio Encontrartrabajadoresdelnegocioyentidades Propsito El trabajador del negocio se utilice para representar el rol de una persona o una aplicacin de software quecumpledentrodelaorganizacin.Estaabstraccinpermiteencontrarmejoraspotencialesdentrode los procesos del negocio y considerar el efecto de la automatizacin del proceso del negocio o la tercerizacindelprocesodelnegocio. 98
Ingeniera de Sistemas Informticos

Otrasrelaciones: Rol: Opcional Ejemplos: Representacin UML:

Ingresoalasactividades: Detallaraltrabajadordelnegocio Revisarelmodelodeanlisisdelnegocio

Universidad Privada del Valle Unidad Acadmica Sucre

La partes interesadas utilizan a los trabajadores del negocio para confirmar que las responsabilidades e interacciones del mismo reflejen correctamente como se realiza el trabajo, o como debera llevarse a cabo. Los trabajadores del negocio tambin se utilizan para considerar el impacto de los cambios en la organizacin (como la automatizacin del proceso del negocio). El diseador del negocio describe en detalleelflujodetrabajodecadacasodeusoutilizandoalostrabajadoresdelnegocio. Los trabajadores del negocio tambin son tiles para los analistas del sistema al momento de identificar losactoresdelsistemadesoftwareyloscasosdeuso,assepodrderivarlosrequisitosdelaaplicacin. Propiedades Nombredela Propiedad Nombre Descripcinbreve Responsabilidades DescripcinBreve Nombredeltrabajadordelnegocio. Brevedescripcindelrolypropsitodel trabajadordelnegocio. Uninformedelasresponsabilidadesdefinidas poreltrabajadordelnegocio.Estopuede incluirelciclodevidadeltrabajadordel negocio. Lasrelacionescomogeneralizaciones, asociacionesyagregacionesenlascualesel trabajadordelnegocioparticipa. RepresentacinenUML Atributonombreenel elementodelmodelo. Caracterizadoporsertexto corto. Unvalorpredefinidodela superclasetipo

Relaciones

Atravsdelaagregacin dueos

Operaciones

Lasoperacionesdefinidasporeltrabajadordel Pertenecientealasuperclase negocio. Tipomediantelaagregacin miembros Losatributosdefinidosporeltrabajadordel negocio. Pertenecientealasuperclase Tipomediantelaagregacin miembros,algunosatributos puedenserestereotipados.

Atributos

Caractersticas

Usadoprincipalmenteenpersonasqueson Caracterizadoporsertexto trabajadoresdelnegocio:Elentornofsicodel conformato trabajador,elnmerodeindividuosqueel trabajadorrepresenta,elniveldeconocimiento delnegocio,elniveldeexperienciaen computacin,otrasherramientasqueutilizael trabajadorycaractersticasgeneralescomo gnero,edad,etc. Todoslosdiagramasrelacionadosconel trabajadordelnegocio,comodiagramasde Atravsdelaagregacin dueos 99

Diagramas

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

interaccinodiagramasdeestado. Cronologa Los trabajadores del negocio son inicialmente definidos en la fase de concepcin y redefinidos y detalladosenlafasedeelaboracin. Responsabilidad El diseador del negocio es responsable de la integridad del trabajador del negocio, asegurndose de que: Elnombreyladescripcinbrevedebenserilustrativos. Lasresponsabilidadesestncorrectamentedescritas. El trabajador del negocio tiene las relaciones, atributos y operaciones apropiadamente definidas paracumpliracabalidadsusresponsabilidades.

Elaboracin Si se intenta modelar la manera en la cual los casos de uso se realizan actualmente, se puede utilizar a los trabajadores del negocio para representar los roles y los sistemas de software en la organizacin. En estecasosepuedeutilizarnombresqueestereotipencomotrabajadorysistemapararepresentara laspersonasyalsistema. Artefacto:Casodeusodelnegocio Loscasosdeusosdelnegociodefinenydeterminanlasinstanciasdeloscasosde usodelnegocioenlascualescadainstanciaesunasecuenciadeaccionesque realizaunnegocio,estaaccinessignificativaparaunactordelnegocioen particular. Partedelmodelamientodecasosdeusodelnegocio. Diseadordelnegocio. Puedeserexcluido.Seutilizancuandosenecesitaentendermejorocambiarel procesodelnegocio. Casosdeuso,estereotipadoscomocasosdeusodelnegocio Salidadelasactividades: Detallaruncasodeusodelnegocio. 100
Ingeniera de Sistemas Informticos

Otrasrelaciones: Rol: Opcional: Ejemplos: Representacinen UML:

Entradaalasactividades:

Universidad Privada del Valle Unidad Acadmica Sucre

Encontraraactoresycasosdeusodelnegocio. Detallarunaentidaddelnegocio. Estructurarelmodelodecasosdeusodelnegocio. Detallaruncasodeusodelnegocio.Detallaraun trabajadordelnegocio. Revisarelmodelodecasosdeusodelnegocio. Estructurarelmodelodecasosdeusodelnegocio. Propsito Un caso de uso del negocio describe un proceso del negocio desde un punto de vista externo. Los casos deusodelnegociosonprocesosdelnegocioqueatraviesanloslmitesdelaorganizacin,puedenincluir sociosyproveedores,parapoderbrindarmsvaloralinteresadoenelnegocio. Los casos de uso del negocio son tiles para proveer de informacin a quien necesite saber que valores proporciona el negocio y como interacta con el entorno. Los interesados, los analistas del proceso del negocio, y los diseadores del negocio utilizan los casos de uso del negocio para describir los procesos del negocio y entender el efecto de cualquier cambio propuesto (por ejemplo una fusin de organizaciones o implementar un CRM por primera vez) a la manera de trabajar del negocio. Los casos de uso del negocio tambin se utilizan entre analistas del sistema y arquitectos de software para entender la manera en que la cual un sistema de software encajara en el negocio. Los administradores de pruebas utilizan estos casos de uso para abastecer de informacin en la creacin de escenarios de prueba para el sistema de software. Los administradores del proyecto utilizan los casos de uso del negocioparaplanificarelcontenidodelasiteracionesdelmodelamientoysusupervisin. Propiedades Nombredela Propiedad Nombre DescripcinBreve Elnombredelcasodeusodelnegocio. RepresentacinenUML Elatributonombreenel elementodelmodelo.

Descripcinbreve Brevedescripcindelrolypropsitodecasodeuso Caracterizadoporser delnegocio. textocorto. Metasdel rendimiento Flujodetrabajo Especificacindelasmtricasrelevantesalcasode usodelnegocio,ydefinicindelosobjetivosal utilizaresasmtricas. Unadescripcintextualdelflujodetrabajoqueel casodeusorepresenta.Elflujodebedescribirque Caracterizadoporser textocortoconformato. Caracterizadoporser textocortoconformato. 101
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

haceelnegociodeformasignificanteparaelactor,y noquehaceelnegociopararesolversusproblemas. Ladescripcindeberaserfcildeentenderpara cualquierpersonadelaorganizacin. Categora Elcasodeusopuedeperteneceralacategora central,desoporteodeadministracin. Caracterizadoporser textocorto. Opcionalmentesepueden utilizardiferentesiconos paradiferenciarlas distintascategoras. Riesgo Especificacindelriesgodeejecutaroimplementar elcasodeuso.Elriesgosedefineentrminosdela diferenciapotencialdelvaloresperadoyelvalor previsto. Descripcindelamejorapotencialdelcasodeuso delnegocio. Definicindelpropietariodelprocesodelnegocio, esdecirlapersonaqueadministrayplanificalos cambios. Lascaractersticasycuantificadoresdelcasodeuso delnegocioquenoseespecificanenelflujode trabajoquefuedescrito. Caracterizadoporser textocortoconformato.

Posibilidades Propietariodel proceso Requerimientos especiales Puntosde extensin.

Caracterizadoporser textocortoconformato. Caracterizadoporser textocortoconformato. Caracterizadoporser textocortoconformato.

Unalistadesitiosdelflujodeloseventosdelcasode Caracterizadoporser usodelnegocioenelcualsepuedeninsertar textocortoconformato. comportamientosadicionalesutilizandorelaciones deextensin. Dependencia

Metassoportadas Dependenciasestereotipadasindicandolasmetas porelnegocio delnegocioalcanzablesporelcasodeusodel negocio. Relaciones Relacionescomoasociacionesdecomunicacin, relacionesdeinclusinyextensin,enlascualesel casodeusodelnegocioparticipa. Estosdiagramasmuestranlaestructuradelflujode trabajo.

Atravsdelaagregacin dueos. Medianteagregacionesde tiposyrelacionesen colaboracioneshaciael casodeuso. Medianteagregacionesde tiposyrelacionesen colaboracioneshaciael 102

Diagramasde actividad

Diagramadecasos Estosdiagramasmuestranlasrelacionesque deuso conciernenalcasodeusodelnegocio.

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

casodeuso. Ilustracionesdel flujodetrabajo Descripcinbreve Los casos de uso se pueden desarrollar en una herramienta de modelamiento visual, por ejemplo RacionalRose. Cronologa Los casos de uso se identifican y si es posible se describen brevemente tempranamente en la fase de concepcin para ayudar a definir el alcance del proyecto. Si el modelamiento del negocio se hace como parte de un proceso de (re)ingeniera del negocio entonces los casos de uso arquitecturalmente significativos sern detallados durante la fase de elaboracin y el resto durante la fase de construccin. Si el modelamiento del negocio se hace como parte del desarrollo de software, los casos de uso aplicablesalsistemadesoftwaresedescribirnconmayordetalleenlafasedeelaboracin. Responsabilidad Elanalistadelprocesodelnegocioesresponsabledelaintegridaddeloscasosdeusodelnegocio,debe asegurarseque: Sedescribacorrectamentecomolaorganizacintrabaja. Elflujodetrabajoesfcildeentenderycumplesupropsito. Las relaciones de inclusin y extensin que se originan en el caso de uso del negocio son consistentesysejustifican. Elroldelasasociacionesdecomunicacinenloscasosdeusodelnegociosonclaraseintuitivas. Los diagramas que describen al caso de uso del negocio y sus relaciones son fciles de entender y cumplensupropsito. Losrequerimientosespecialessonfcilesdeentenderycumplensupropsito. Lasprecondicionessonfcilesdeentenderycumplensupropsito. Lasposcondicionessonfcilesdeentenderycumplensupropsito. Bosquejoshechosamanocomoresultadodelos eventoscaptadosenlassesionesconlaparte interesada.

Elaboracin Si se realiza el modelamiento de un negocio existente con un fin explicativo, sin ninguna intencin de realizaruncambio,sepuedenexcluirlassiguientesseccionesdelcasodeusodelnegocio: Metasderendimiento Riesgos Posibilidades Propietariodelproceso 103
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Artefacto:EntidaddelNegocio Una Entidad del Negocio representa informacin significante y persistente que es manipulada por Actores del Negocio y Trabajadores del Negocio. Las Entidades del Negocio son pasivas, as que no tienen que iniciar acciones con ellas mismas. Una Entidad del Negocio puede serutilizadaenmuchas EjecucionesdeCasosdeUsodelNegocioyvive mstiempoquecualquierinteraccinsola. Las Entidades del Negocio proveen la base para compartir informacin (flujo de documentos) entre los Trabajadores del Negocio que participanendiferentesEjecucionesdeCasosdeUsodelNegocio. Partedelmodelamientodecasosdeusodelnegocio. Diseadordelnegocio. Puedeserexcluido.LasEntidadesdelNegociosonmuytilespara proporcionarunslopuntodereferenciaparatrminosydefiniciones usadasentredepartamentosoproyectos. Casosdeuso,estereotipadoscomoEntidadesdelNegocio Salidadelasactividades: Detallarunaentidaddelnegocio. Encontrartrabajadoresdelnegocioyentidades.

OtrasRelaciones: Rol: Opcional: RepresentacinUML:

Entradaalasactividades: Detallarunaentidaddelnegocio. Revisarelmodelodecasosdeusodelnegocio. Propsito

Las Entidades del Negocio representan una abstraccin importante de informacin persistente dentro del negocio. Cualquier informacin que es una propiedad de algo ms probablemente no sea una EntidaddelNegociodepors.Porejemplo,ContactDetailsesunapropiedaddeCustomeryportantono es una Entidad del Negocio en s. La informacin que no es almacenada pero es creada o determinada a pedido(cuandoesnecesario)esprobablequenoseaunaEntidaddeNegocio.Porejemplo,elinventario de productos es informacin significativa pero no es informacin persistente. Cualquier momento alguien necesita saber cuntas instancias de un particular cdigo de barras est en los estantes (o en el depsito),estainformacinsercalculadayluegodescartada. Los participantes (Stakeholders) usan la Entidad del Negocio para asegurarse de que la informacin creadayrequeridaporlaorganizacinestpresenteenelModelodeAnlisisdelNegocio.Undiseador del negocio es responsable de identificar y describir Entidades del Negocio, as tambin de avaluar el impacto de cambios en la organizacin sobre la informacin creada y requerida por el negocio. Las Entidades del Negocio son tambin usadas por analistas de sistemas y diseadores cuando describen casosdeusodesistemaeidentificanentidadesdesoftwarerespectivamente. Propiedades 104
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Nombredela Propiedad Nombre Descripcinbreve Responsabilidades

DescripcinBreve ElnombredelaEntidaddelNegocio.

RepresentacinenUML Elatributonombreenel elementodelmodelo.

Brevedescripcindelrolypropsitode Caracterizadoporsertextocorto. laEntidaddelNegocio. Unaencuestadelasresponsabilidades definidaporlaEntidaddelNegocio Estopuedeincluirelciclodevidadela Entidaddeserinstanciadaypoblada hastaqueeltrabajoestterminado. Valor(predefinido)delasuperclase Tipo

Relaciones

Relacionescomoasociacionesde Atravsdelaagregacinowns. comunicacin,relacionesdeinclusiny extensin,enlascualeslaEntidaddel Negocioparticipa. DefinidasporlaEntidaddelNegocio Pertenecientealasuperclase"Tipo" atravsdelaagregacin "miembros". Pertenecientealasuperclase"Tipo" atravsdelaagregacin "miembros". Atravsdelaagregacin"owns".

Operaciones

Atributos

DefinidasporlaEntidaddelNegocio

Diagramas

CualquierdiagramalocaldelaEntidad delNegocio,comodiagramasde interaccinodiagramasdeclase.

Cronologa LasEntidadesdelNegociomssignificativassonidentificadasdurantelafasedeiniciacin.LasEntidades del Negocio restantes son identificadas durante la fase de Elaboracin en la cual Las Entidades del Negociosonrefinadasydescritas. Responsabilidad EldiseadordelnegocioesresponsabledelaintegridaddelaEntidaddelNegocio,asegurandoque: Elnombreylabrevedescripcinseanexplicativos. Lasresponsabilidadesseandescritascorrectamente. Que tenga las definidas relaciones, atributos y operaciones apropiadas para cumplir sus responsabilidades. Elaboracin 105
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Si se est haciendo el modelamiento del dominio, significando que solo se identifican las Entidades del Negocio,sepuedeusarelestereotipodomainclassenvezdebusinessentity. IniciemosconlaaventuradelaModelacindelNegocio ParainiciarunproyectoenRacionalRosedebeseguirselossiguientepasos: Al ejecutar el Rational Rose, aparece una pantalla emergente para seleccionar una plantilla que ayuda conladocumentacindelsoftwareadesarrollar.VerPantalla1.

Pantalla1:SeleccindeunaPlantillaparainiciarlamodelacin ParaestedocumentoseutilizarlaplantilladeRationalUnifiedProcess,lacualcontieneunaplantilla recomendadaporRational. Debe seleccionar realizando un clic en rational unified process, como se puede observar en la Pantalla 1 y luego realizar un clic en el botn OK. De esta forma, se crear una nuevo proyecto, que servirparamodelarydocumentarlanuevaaplicacin. ElresultadosepuedeobservarenlaPantalla2.

106
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2:Nuevoproyectoparainiciarlamodelacin Paragrabarelproyectodeberealizarlassiguientesoperaciones: RealiceunclicenelbotnSaveModel ,queestaenlabarradeaccesorpido. Debeseleccionarundirectorioparagrabarelmodelo A continuacin, debe introducir el nombre del modelo, para este documento se utilizar el ejemplo de una empresa hotelera, descrito anteriormente. El nombre que se le dar al modelo ser HotelRational.mdl,verPantalla3.

Pantalla3.GrabarelModelo
Ingeniera de Sistemas Informticos

107

Universidad Privada del Valle Unidad Acadmica Sucre

Unavezintroducidoelnombre,deberealizarunclicenelbotnGuardar,paraconfirmarlagrabacinen eldirectorioseleccionado. A continuacin se iniciar con la modelacin de ejemplo de la Empresa Hotelera, se iniciar con la ModelacindelNegocio.

108
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

MODELODECASOSDEUSODELNEGOCIO

Una vez creado el nuevo proyecto que servir para desarrollar la Modelacin del Negocio de una empresa hotelera. El primer pasoes la determinacin de los Actores del Negocio que se hace por medio de la identificacin de los procesos de la institucin o empresa, cada uno de los procesos identificados puedeserunCasosdeUsodelNegocio. Para desarrollar el Diagrama de Casos de Uso del Negocio se debe estudiar los esteriotipos de Casos de Uso del Negocio y el de Actor del Negocio. Estos dos esteriotipos son suficientes para la creacin del Diagrama de Casos de Uso del Negocio. La definicin de estos estereotipos ya se ha visto en el anterior documentoIntroduccinalModelodelNegocio. El Modelo de Caso de Uso del Negocio implicar la determinacin de los Actores y Casos de Uso del Negocio,comosehadichoanteriormente.Constaactividadsepretende: Identificarlosprocesosenelnegocio Definirlasfronterasdelnegocioquevanamodelarse Definirquinyquinteractuarnconelnegocio Creardiagramasdelmodelodecasosdeusodelnegocio Un candidato a Actor del Negocio es cualquier individuo, grupo, organizacin o mquina que interacta conelnegocio.Portanto,stospuedenser: Clientesopotencialesclientes Socios Proveedores Autoridades Propietarios Sistemasdeinformacinexternosalnegocio Otraspartedelaorganizacin,silaorganizacinesgrande El trmino Actor del Negocio significa el rol que algo o alguien juega cuando interacta con el negocio. DeacuerdoconestaideaunActordelNegociorepresentauntipoparticulardeusuariodelnegocioms que un usuario fsico, ya que varios usuarios fsicos pueden realizar el mismo papel en relacin al negocio, o sea, ser instancias de un mismo actor. Sin embargo, un mismo usuario puede actuar como diferentesactores. ElnombredeunActordelNegociodebehacersedemodoqueexpresesuroldentrodelnegocio. Cada Actor del Negocio debe definirse brevemente con su responsabilidad y por qu interacta con el negocio. Los Actores del Negocio interactan con el negocio enviando y recibiendo mensajes, y para conocer el papel del actor se debe precisar en qu procesos se involucra el actor. Esto se muestra por la llamada asociacin de comunicacin entre el Actor del Negocio y el Caso de Uso del Negocio que representa al proceso. 109
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Un Caso de Uso del Negocio define qu debe ocurrir en el negocio cuando este se realiza, describe el comportamiento de una sucesin de acciones que produce un resultado de valor para un Actor particular del negocio. Es decir, un Caso de Uso del Negocio describe una secuencia de acciones realizadas en el negocio que produce un resultado de valor observable para un actor individual del negocio.Portanto,desdelaperspectivadeunactorindividual,uncasodeusodelnegociodefineelflujo detrabajocompletoqueproducelosresultadosdeseados. Enunnegociosepuedenidentificaralmenostrestiposdeprocesos: Actividades comercialmente importantes, a menudo llamadas procesos del negocio y constituyenlaesenciaoncleodelnegocio. Actividades que no son comercialmente importantes pero son necesarias para que el negocio funcione.Ejemplo:actividadesadministrativas,delimpieza,deseguridad,etc.Estoscasosdeuso delnegociotienencarcterdesoporte. Actividadesgerenciales.Ejemplo:monitorearlosprocesos,crearprocesos. Paraencontrarloscasosdeusoprimariosdelnegociohayqueconsiderarquproductooservicioespera el actor delnegocio. Estos procesos responden a la pregunta: Cules son los servicios primarios que el consumidorrecibedelnegocio?. Antes de la creacin del Diagrama de Casos de Uso del Negocio dentro de Rational Rose, se debe crear distintas carpetas que permitan ordenar de manera adecuada el Modelo de Casos de Uso del Negocio. Estascarpetassonlassiguientes: Actores del Negocio. Contendr a todos los actores que estn involucrados en la Modelacin del Negocio Casos de Uso. Contendr a todos los Casos de Uso del Negocio que se identifiquen con un procesodelaempresa Entidades. Contendr a todos los objetos o entidades que se identifiquen por medio del DiagramadeActividadquesecreaporcadaCasodeUsodelNegocio.Lacreacindeundiagrama deactividadsevermsadelanteenotrodocumento. Trabajadores del Negocio. Contendr a todos los trabajadores que participan en el flujo de informacindentrodelaempresa. ElcontenidodelasltimasdoscarpetasseutilizanparaelDiagramadeObjetodelNegocio. Dentro de la plantilla que presenta el Rational Rose existe una carpeta Use Case View, la cual contiene otras dos, Bussiness UseCase Model y el UseCase Model. El primero es exclusivamente para la Modelacin del Negocio, la cual se utiliza en este documento, adems para la creacin de las carpetas anteriormentesealadas.LasegundacarpetaesparaRequisitosdelaAplicacinpormediodelosCasos deUso. Para crear una carpeta solo se debe realizar un clic derecho en Bussiness UseCase Model seleccionar NewyluegoPackage,comosepuedeverenlaPantalla1. 110
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla1.AdicionarunaCarpeta Luegodeseleccionarestaopcinsedebecambiarelnombre,estosepudeverenlaPantalla2.

Pantalla2.Cambiodenombrealascarpetas Una vez creada la estructura para la modelacin del negocio se puede iniciar el desarrollo del Diagrama deCasosdeUso. EstossonlospasosaseguirparaeldesarrollodelDiagramadeCasosdeUsodelNegocio: Usted puede cambiar de nombre al diagrama de casos de uso por defecto que muestra la Pantalla 3, sin embargoexisteotrocaminoparacrearunnuevodiagramadecasosdeusodelnegocio.

111
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla3.Iniciodecreacindeundiagramadecasosdeusodelnegocio Para crear un nuevo diagrama de casos de uso debe hacer un clic derecho en Business UseCase Model,sevisualizarunmenemergenteconvariasopcionesquesepuedenverenlaPantalla4.

Pantalla4:opcionesemergentes

Para crear un nuevo diagrama de caso de uso del negocio seleccione la opcin New, a continuacin aparecernopcionesdecreacindedistintosdiagramascomosemuestraenlaPantalla5

112
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla5:EspecificacionesparacrearunDiagramadecasosdeuso Una vez seleccionada la opcin de Use Case Diagram, que sirve para la creacin del Diagrama de Casos de Uso, se deber cambiar el nombre del nuevo diagrama a Diagrama de casos de Uso del Negocio,estosepuedeverenlaPantalla6.

113
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla6:PantalladecambiodenombredelDiagramadeCasosdeUsodelNegocio Una vez que se cambie el nombre del diagrama debe realizar doble clic en el diagrama para abrir la plantilla de trabajo que ayuda a crear las relaciones entre los Casos de Uso y Actores del Negocio. ComosepuedeverenlaPantalla7,existirunaplantillaenblancoaladerecha,lacualvaacontener alosCasosdeUsoylosActoresdelNegocio.

114
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7:PlantillapararealizarelDiagramadeCasosdeUso SedebeadicionarlosestereotiposqueayudenacrearelDiagramadeCasosdeUsoloscualesson: ActoresdelNegociorepresentadoconelestereotipodelaFigura1 CasosdeUsodelNegociorepresentadoconelestereotipodelaFigura2 Figura1 Figura2 ActoresdelNegocio CasosdeUsodelNegocio Se puede observar que la barra de herramientas ToolBox no cuenta con los estereotipos ya mencionados, para agregarlos se hace Clic derecho en la barra de herramientas y se selecciona la opcinCUSTOMIZEcomosepuedeobservarenlaPantalla8

115
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla8:OpcionesdelaBarradeHerramientas(ToolBox) Despus de hacer Clic en CUTOMIZE aparecer la Pantalla 9 la cual nos ayuda a personalizar la Barra deHerramientas.

Pantalla9:PersonalizacindelaBarradeHerramientas.

EnlalistaubicadaenlaparteizquierdadelaPantalla10debeseleccionarlosestereotiposnecesarios,en estecasoenparticularlosestereotiposdelosCasosdeUsodelNegocioylosActoresdelNegocio.Como se muestra en la Pantalla 10, como puede ver ya se ha adicionado el estereotipo de Casos de Uso del NegocioysetieneseleccionadoalosActoresdelNegocioparadespusadicionarloshaciendounClicen elbotnAgregar.

116
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla10:SeleccinyadicindeestereotiposalaBarradeHerramientas ComoseobservaenlaPantalla11yasehanagregadolosestereotiposdeCasosdeUsodelNegocioylos ActoresdelNegocionecesariosparalarealizacindelosDiagramasdeCasosdeUsodelNegocio.

Pantalla11:EstereotiposagregadosalaBarradeHerramientas. Se adiciona un Actor que representa al Cliente, el cual representa el rol de la persona que estar hospedado en el hotel, para hacer esto se debe realizar un clic en la barra de Herramientas en el botn con el estereotipo del Actor del Negocio , luego, otro clic en la plantilla de Casos de Uso del Negocio,elresultadoseilustragrficamenteenlaPantalla12

117
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla12:CreacindelActordelNegocio Como se observa en la Pantalla 12 el Actor creado aparece dentro de la raz, del rbol de carpetas ubicado en la parte izquierda, el mismo debe estar dentro de la carpeta Actores del Negocio, para conseguir se debe arrastrar haciendo un clic izquierdo en el Actor del Negocio y arrastrndolo hasta la carpeta de Actores del Negocio que se encuentra dentro de Bussiness UseCase Model, el resultado se puedeverenlaPantalla13.

Pantalla13ReubicacindelActorcreado Para renombrar al Actor del Negocio se realiza doble clic en l, posteriormente se desplegar una pantalla en la que podr editar las propiedades del Actor del Negocio, como podemos observar en la Pantalla14.DentrodeDocumentationdebeexistirunabrevedescripcindelroldelactor. 118
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla14:CambiodenombredelActordelNegocio Luego de haber cambiado el nombre del Actor del Negocio a Cliente, que es nuestro nico actor del negocio,comosepuedeverenlaPantalla15.

Pantalla15:NombredelActordelNegociocambiado Ahora se debe crear los Casos de Uso que se han identificado dentro del negocio donde el Cliente es el que inicia. Para crear un Caso de Uso existen dos alternativas. La primera, es similar a la creacin de un ActordelNegocio.Siseseleccionaestaalternativaelcasodeusodelnegociocreadoestarenlarazdel directoriodecarpetas,comosepuedeverenlaPantalla16. 119
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla16.Nuevocasodeusocreado Se debe cambiar el nombre a este nuevo caso de uso a Confirmar Habitacin, luego, arrastrarlo a la carpetaCasosdeUso,elresultadosepuedeverenlaPantalla17.

Pantalla17.CambiodeNombreyLugardelcasodeusoConfirmarHabitacin La segunda manera para la creacin de un caso de uso es similar a la creacin de una carpeta. Primero debe realizar un clic derecho en la carpeta de Casos de Uso, de inmediato se visualizar un men emergentecomosepuedeverenlaPantalla18.

120
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla18.OpcionesparalaCreacindeunCasodeUso Una vez seleccionada la opcin de Use Case, se debe cambiar el nombre del caso de uso a Solicitar servicioBsico,comosepuedeverenlaPantalla19.

Pantalla19.CambiodeNombrealnuevocasodeuso UnavezcambiadoelnombresedebecambiarelestereotipoaBusinessUseCase,quecorrespondepara uncasodeusodelnegocio.Pararealizarestaactividadsedeberealizardobleclicsobreelcasodeuso,lo cualpermitirvisualizarlasopcionesdeespecificacionesdeloscasosdeuso,estasopcionesselaspuede observar en la Pantalla 20, donde se debe seleccionar el nombre del esteriotivo Business Use Case dentrodeStereotype.

121
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla20.DeterminarelestereotipoparaunCasodeUsodelNegocio Una vez que se haya realizado un clic en el botn OK de la Pantalla 20, se tendr creado un caso de uso delnegocioconsurespectivoestereotipo. Lo que faltara por hacer es arrastrar a la plantilla del Diagrama de Casos de Uso el nuevo Caso de Uso delNegocio.ElresultadodeestaoperacinseveenlaPantalla21.

Pantalla21.AdicindeunCasodeUsoalDiagrama De esta forma se puede crear todos los casos de uso que se determinen dentro de un negocio. Sin embargo, se necesita determinar relaciones entre los actores y los casos de uso que estn dentro del Diagrama de Casos de Uso, para determinar las relaciones se debe realizar un clic en el botn UnidirectionalAssociation yrealizarunclicizquierdosobreelactorarrastrandohastaelcasodeuso que,porlgica,tengaunarelacin,elresultadosepuedeverenlaPantalla22.

122
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla22.DeterminarunarelacinentreunCasodeUsoyunActordelNegocio DeestaformasepodrcrearundiagramadeCasosdeUsodelNegocio.Elresultadofinalsepuede observarenlaPantalla23.

Pantalla23.DiagramadeCasosdeUsodelNegociofinalizado DeestaformasehafinalizadolacreacindelModelodeCasosdeUsodelNegocio.

123
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DIAGRAMADEACTIVIDADESDELCASODEUSODELNEGOCIO Continuando con el desarrollo del Modelo del Negocio, se ver en este documento cmo crear un DiagramadeActividad,seutilizarelcasodeusodelnegocioSalirHotel. AntesdeiniciarsevernlosestereotiposqueseutilizanparaeldesarrollodelDiagramadeActividad. El Diagrama de Actividad es un tipo especial de diagramas de estados que se centra en mostrar el flujo de actividades dentro de un sistema. Los diagramas de actividades cubren la parte dinmica de un sistema y se utilizan para modelar el funcionamiento de un sistema resaltando el flujo de control entre objetos. Losestereotipossonlossiguientes:

Estado de Inicio: Inicia el Diagrama de Actividad, solo puede existir un estado de inicio por cadaDiagramadeActividad.
NewActivity

Actividad: Representa la ejecucin de un sentencia de un procedimiento o el funcionamiento de una actividadenunflujodetrabajo.

NewActivity

Transicin:IndicaculActividadsigueaotra.

Estado de Finalizacin: Finaliza las Actividades de un Diagrama de Actividad, puede existir variosestadosdefinalizacinenunDiagramadeActividad. VasAlternativas:Indicandecisionesacercadequtransicinseguirdespusdecompletadauna actividad.

BarrasdeSincronizacin:Muestrasubflujosparalelos.Permitequese puedanexpresarhilosconcurrentesenelprocesodeuncasodeusodelnegocio.

124
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Calles(swimlanes):Cadaunadelascualesrepresentauna responsabilidadorolparatodoelproceso,llevadaacaboporunapartedelaorganizacin.Elorden relativodelascallesnotienesignificadosemntico.Cadaestadodeactividadseasignaaunacalleyuna transicinpuedecruzarlascalles.


Objeto

ObjetooDocumento:CadaobjetoquesepuedaintroducirdentrodelDiagramadeActividad esunainformacinquefluyeatravsdelasactividadesoeselresultadodeunaovarias. Duranteladescripcindeunprocesodelnegociomedianteundiagramadeactividad,esposible encontrarunaactividaddetalcomplejidadquerequieradescribirlamedianteotrodiagramaadicional. Portanto,estenuevodiagramadescribirunsubobjetivoenrelacinconelobjetivooriginalvinculadoal procesodelnegocio.Deestemodolosprocesosdenegocioseorganizanjerrquicamente.Tambines posiblemostrarendiferentesdiagramasdeactividadelflujonormalylosflujosalternativos. Para crear un diagrama de actividades lo primero que se debe hacer es desplegar la opcin UseCase ViewcomosepuedeobservarenPantalla1.

Pantalla1:DesplieguedelaopcinUseCaseView Paraempezaracrearundiagramadeactividades,sedebeexpandirlaCarpetaCasosdeUsoqueest dentrodeBusinessUseCaseModel,realizandounclicenelsigno+. UnavezquelacarpetaCasosdeUsoestdesplegadasedebeidentificarelcasodeusoSalirdelHotely hacer clic derecho sobre ste e ir al submen New. Posteriormente elegir la opcin Activity Diagram comosemuestraenlaPantalla2.

125
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2:NuevoDiagramadeActividadesdelCasodeUsoSalirdelNegocio UnavezqueserealiceelclicsobrelaopcinActivityDiagram,sedebecolocarelnombrealDiagramade Actividadcomomuestralapantalla3.

Pantalla3:Asignacindenombredelnuevodiagramadeactividades Esconvenientecolocarelmismonombrequetieneelcasodeuso. Una Vez asignado el nombre se debe realizar un clic derecho sobre el nuevo diagrama de actividades Salir del Hotel y elegir la opcin Open para abrir la plantilla de actividades, como se muestra en la pantalla4.

126
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla4:Abrirlaplantilladeunnuevodiagramadeactividades Una vez abierta la plantilla en blanco aparecer una barra de botones ToolBar como se muestra en la pantalla5.

Pantalla5:Plantilladeedicindeunnuevodiagramadeactividades Para tener todas las herramientas en la barra, basta con hacer clic derecho sobre sta y seleccionar la opcinCustomize,talcomoseveenlapantalla6.

127
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla6:Comoagregarbotonesalabarraparalacreacindeundiagramadeactividad Una vez que se elije la opcin Customize aparecer una ventana donde se debe elegir los botones: Creates an Object y Creates a Object Flow, una vez se elija cada uno de estos se debe hacer clic en el botnAgregarcomoseveenlapantalla7.

Pantalla7:Agregacindebotonesnecesariosenlabarra

Al terminar de agregar los botones basta con presionar el botn Cerrar para ver los botones que hayamos agregado en nuestra nueva barra de botones para la creacin de un diagrama de actividades, talcomosemuestraenlaPantalla8.

128
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla8:NuevaBarradeBotonesparalacreacindeundiagramadeactividades Para empezar a crear un diagrama de actividades lo primero que se debe hacer es crear las calles o Swimlane, la primera representa al actor del negocio y las restantes a los trabajadores del negocio que participan en el caso de uso y realizan una actividad, para agregar una nueva calle se debe hacer clic sobre el botn Swimlane , luego hacer otro clic en la plantilla y asignar el nombre del actor del negocioenestecasoCliente.EstosepuedeverenlaPantalla9.

Pantalla9:Creacindeunacalleparaelactordelnegocio
Ingeniera de Sistemas Informticos

129

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez creada la calle se debe iniciar el diagrama de actividad, para esto se debe realizar un clic en el botnStartState ,yotroclicenlacalledelActordelNegocioCliente,comosemuestraenlaPantalla 10.

Pantalla10:Iniciodeldiagramadeactividades El estereotipo de StartState o estado de iniciopermite iniciar el diagrama deactividad, este estereotipo debeirsiempreenlacalledelactordelnegocioyaqueestesiempreiniciarenelcasodeuso.Enelcaso queexistauncasodeusoExtendidooIncluido,eliniciodeldiagramadeactividadestarenlacalledeun trabajadordelnegocio. Para continuar con el diagrama de actividad, se adicionarn varias actividades con el nombre de Solicitar Cuenta, esta actividad va a ser realizada por el actor del negocio. Esto se puede ver en la Pantalla 11, para realizar esto debe hacer un clic en el boto Activity y hacer otro clic en la calle del actordelnegociodeestaformasepuedeadicionarvariasactividadesaldiagrama.

Pantalla11:Creacindeunaactividad Para determinar la transicin entre el inicio y una actividado entre actividades, sedebe agregar un flujo haciendo clic en el botn State Transition , se debe hacer un clic en el origen (Start State) arrastrar, 130
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

presionando el botn izquierdo del Mouse hasta el destino (Solicitar Cuenta), esto se puede ver en la Pantalla12.

Pantalla12:CreacindeunFlujodeTransicin Esteprocesosepuederealizar,deigualforma,entreactividadescomosevermsadelante. Para continuar con el diagrama de actividad se crea una nueva calle que representa a un trabajador del negocio y adems es lgico decir que el cliente va a interactuar con ste, en este caso el Recepcionista. Lacreacindeunanuevacalleessimilaralaanterior. Este nuevo trabajador del negocio realizar una actividad para calcular la cuenta total del cliente, para esto se debe crear una nueva actividad y colocarla en la calle de este trabajador del negocio, adems debe existir un flujo de transicin entre las actividades Solicitar Cuenta y Calcular Cuenta, como puedeverenlaPantalla13.

Pantalla13:Creacindeunanuevaactividad A continuacin se de agregar una lnea de sincronizacin horizontal, que sirve para unir o separar actividadesquesepuedenejecutarsimultneamente. Para agregar este estereotipo se debe hacer clic sobre el botn horizontal Synchronization y luego colocareneldiagrama,comosemuestraenlaPantalla14.

131
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla14:Creacindeunanuevalneahorizontaldesincronizacin Una vez que est agregada la lnea horizontal de sincronizacin, se debe agregar un flujo entre la actividadCalcularCuentaylalneahorizontaldesincronizacin,comosepudoverenlapantalla12. Luego de hacer esto, el empleado del negocio Recepcionista, inicializar 3 actividades; a partir de la lnea de sincronizacin, dos de estas actividades son de otro empleado del negocio que es el Cocinero y la otra actividad es realizada por el mismo empleado del negocio Recepcionista, para ello se debe agregarotracallequecorrespondealempleadodelnegocioCocinero. Las3actividadesagregadasson:CalcularCuentaEstada,CalcularCuentaServiciosBsicos,Calcular CuentaServiciosdeHabitacin. Todoestosepuedeapreciarenlapantalla15.

Pantalla15:Inicializacindemltiplesdeactividadesapartirdeunalneahorizontaldesincronizacin Una vez creadas las actividades, cuando se dispara la actividad Calcular Cuenta Estada, cambiar el objetoCuentadeEstada,unobjetopuedetenerdeunoamuchosestados,enestecasosolotienedos estados: Lleno y Vaco, el objeto ser creado con el estado Lleno. Anteriormente se ha creado con un estadoVacio 132
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para agregar un objeto se debe hacer clic en el botn Object CuentaEstada,estosepuedeverenlaPantalla16.

, este objeto llevar el nombre de

Pantalla16:CreacindeunObjeto Paraasignarunestadoaunobjetosedebehacerdobleclicsobreelobjeto,paraverlaspropiedadesde ste,posteriormentesedebeseleccionarlaopcinNewenelcampoState,comosepuedeobservar enlaPantalla17.

Pantalla17:Creacindeunnuevoestadoenunobjeto 133
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Posteriormente se debe asignar el nombre al estado, en el campo Name, y terminar presionar el botn Ok.stosemuestraenlapantalla18.

Pantalla18:Asignacindenombredeunestadodeobjeto Una vez creado el objeto Cuenta Estada, se debe unir este a una actividad en este caso la actividad Calcular Cuenta Estada, esto se hace por medio de un flujo, para agregar un flujo entre un objeto y una actividad, basta con hacer clic en el botn Object Flow , y hacer un clic en el origen (Calcular Cuenta Estada) y en el destino (Cuenta Estada) arrastrando el Mouse con el botn izquierdo presionado,estosepuedeverenlaPantalla19.
Cliente Recepcionista Cocinero

Solicitar Cuenta

Calcular Cuenta

Calcular Cuenta Servicios Bsicos Cuenta Estada [Lleno]

Cuenta de Servicios Bsicos [Lleno]

Calcular Cuenta Estada

Calcular Cuenta Servicios de Habitacin

Cuenta de Servicios de Habitacin [Lleno]

Pantalla19:CreacindeunFlujoentreActividadyObjeto

134
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

PosteriormentesedebecrearelobjetoCuentadeServiciosBsicos,elculprocededesdelaactividad Calcular Cuenta de Servicios Bsicos; tambin se debe crear el objeto Cuenta de Servicios de Habitacin el cul procede de la actividad Calcular cuenta de Servicios de Habitacin, esto se puede verenlaPantalla19. A partir de las tres actividades: Calcular Cuenta Estada, Calcular Cuenta de Servicios Bsicos, Calcular cuenta de Servicios de Habitacin, se crea una nueva lnea de sincronizacin, como se puede observarenlaPantalla19. A partir de esta lnea de sincronizacin se llamar a una nueva actividad ejecutada por el empleado del negocio Recepcionista, esta actividad se denominar Resumir Cuenta, se puede ver la creacin de estaactividadenlaPantalla20. ApartirdeestaactividadsecreaunnuevoobjetollamadoCuenta,estosepuedeverenlaPantalla20; este objeto debe tener el estado de Lleno. Este objeto se utiliza en la actividad Revisar Cuenta, esta serejecutadaporelActordelNegocio,enlacualrevisareldetalledelacuenta. Desde la actividad Recibir Cuenta, se deber crear un estereotipo de decisin, el cual podr dar dos posibles respuestas representadas por una etiqueta, estas respuestas podrn ser: Aceptar la cuenta a pagar o Rechazar monto a pagar; para agregar el estereotipo de decisin se debe hacer clic en el botn Decisin esto se puede ver en la Pantalla 20, y colocar en el diagrama; este estereotipo se unircon2actividadespormediodeunflujo,unavezesteagregadoesteflujoseasignarnlasetiquetas correspondientes. Calcular [Llena]
Cuenta Estadia Servicios a

chazar Monto a Pagar

Resumir Cuenta

Cuanta Revisar Cuenta [Llena]

Pantalla20:CreacindeuncomponentedeDecisin

135
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para asignar una etiqueta a una State Transition basta con hacer doble clic sobre esta y en el campo de Eventsedebecolocarlacondicinparaeseestado,comosepuedeverenlapantalla21.

Pantalla21.Determinarlacondicindetransicindeestado SedebecrearunaactividaddenominadaPagar,estaserunaactividadquepuedarealizarelActordel Negocio,ylaotraactividadserlaactividadCalcularCuenta.Todoestosepuedeverenlapantalla22.

136
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla22:Tomadedecisinenundiagramadeactividades Una vez se realice la actividad Pagar, se crear una nueva actividad denominada Recibir Pago, esta actividadserejecutadaporelempleadodelnegocioRecepcionista. EstaactividaddebeestarrelacionadamedianteunflujoconlaactividadPagar.Posteriormentesecrea la actividad Crear Factura, que estar enlazada a la actividad Recibir Pago, la actividad Crear Factura, dar como resultado un objeto denominado Factura, este objeto tendr el estado Lleno. Posteriormente este objeto crear la actividad Recibir Factura Conforme, esta actividad nos llevar al finaldeldiagramamedianteelbotnEndState ,comosepuedeverenlaPantalla23.

137
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla23:Creacindeunfindeestado Eldiagramaconcluidoseveenlapantalla24.

138
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Cliente

Recepcionista

Cocinero

Solicitar Cuenta

Calcular Cuenta

Calcular Cuenta Servicios Bsicos Cuenta Estada [Lleno]

Cuenta de Servicios Bsicos [Lleno]

Calcular Cuenta Estada

Calcular Cuenta Servicios de Habitacin

Cuenta de Servicios de Habitacin [Lleno]

Resumen de Cuentas Rechazar monto a pagar Cuenta [Lleno]

Recibir Cuenta

Aceptar la cuenta a pagar Pagar Recibir Pago

Crear Factura

Recibir Factura Conforme

Factura [Lleno]

Pantalla24:DiagramadeActividadescasodeusoSalirdelHotel

Unavezqueserealicetodoslosdiagramasdeactividad,quedebeserporcadacasodeusodel negocio, se debe definir y describir a los Actores y trabajadores del Negocio. Esta tarea es una de las partes importantedelaModelacindelNegocio,sedebeespecificardeunaformacompletaalosActoresylos Trabajadores del Negocio. Estos dos involucrados son los que mueven la informacin a travs del negocio. En prximos documentos se ver que ya sea un Actor o Trabajador del Negocio se puede convertir en un Actor de la Aplicacin, esto es depende las polticas de la empresa, por este motivo es muy necesario documentar correctamente a estos dos tipos de involucrados. Es claro que esta descripcin incluye a todos los trabajadores y actores del negocio, aunque en este documento no 139
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

aparecenalgunos,yaqueslosehadesarrolladoundiagramadeactividad.Sinembargoelestudiantese podrdarcuentaquesonnecesariosotrostrabajadoresdelnegocio. ActoresdelNegocio. Existeunsoloactordelnegocio,eselqueinteractaconlostrabajadoresdelnegocio. Cliente.Eslapersonaquesolicitaserviciosdehospedajeydealimentacinenelhotel. TrabajadoresdelNegocio. ExistenvariosTrabajadoresdelNegocioqueleprestanserviciosalActordelNegocioqueeselCliente Recepcionista. Es la persona que interacta con el cliente para reservar o confirmar una habitacin para su hospedaje, adems es la encargada de resumir las cuentas del Cliente para el dadesalida Cocinero. Es el encargado calcular el costo de los servicios de comida, ya se a la habitacin o en losserviciosbsicoscomodesayuno,almuerzoocena,quesolicitaelCliente Mesero.Eselencargadoderegistrarotomarnotadelosserviciosbsicosquesolicitaelcliente Mozo del Bar. Es el encargado de calcular el costo de los servicios de bebidas, ya sea a la habitacinoenlosserviciosbsicos,quesolicitaelCliente. AlgunasobservacionesenlacreacindeDiagramasdeActividad LosDiagramasdeActividadpermitenmuchaslibertades,loqueavecesestimulaaloscreadoresaincluir unaltoniveldedetalle.Endefinitiva,unmodelodecomunicacinrequiereunadecuadoniveldedetalle para ubicar el problema a resolver. La claridad y brevedad son dos atributos importantes para evitar la sobrecargaylimitarsesloapresentarlosaspectosclavesdelosflujosdeloscasosdeuso. Sesugierenseguirlassiguientesreglas,entreotras; No intentar mostrar elementos de diseo. Centrarse en las necesidades del cliente y no moverse hacia el espacio de la solucin, es decir, seguir el principio de enfocarse a la funcionalidad, desde la perspectiva del usuario o del negocio. Por ejemplo, crear una actividad que sea Conectar a la Base deDatosOracle,estaraviolandoeseprincipio. Nosustituirlosdiagramasdeactividadporladescripcindeloscasosdeuso. Limitarelniveldecomplejidaddecadadiagrama.Paraello: Si hay ms de 3 posibles caminos (alternos o de excepcin), usar diagramas adicionales para mejorarlacomprensin. UsarSwimlanesparasepararresponsabilidades. Nocapturarprocesamientosdetalladosdelsistema. 140
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Usarunaherramientaparamantenerlaconsistenciadelosmodelos. Mantenerlosmodelos.Losdiagramasdebenactualizarsecuandosemodifiquenloscasosdeuso.

Enlamedidadeloposibleutilizarundiagramaporcadacasodeuso.

141
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

MODELODEOBJETODELNEGOCIO ParacrearelModelodeObjetodelNegociosedebenutilizarlossiguientesestereotipos:

ActordelNegocio <Actor Name>

TrabajadordelNegocio Business Worker

EntidaddelNegocio

Business Entity

Con estos tres estereotipos se puede desarrollar un Modelo de Objeto del Negocio. Este modelo identificatodoslosrolesycosasenelnegocio,loscualessonrepresentadoscomoclasesenlaVista Lgica. ElModelodeObjetoescreadoatravsdelosDiagramasdeActividadquedescribenlosCasosdeUsodel Negocio con los objetos o documentos incluidos. Generalmente la primera calle que inicia el Diagrama deActividadcorrespondeaunActordelNegocio,lasrestantespertenecenaunTrabajadordelNegocio. IniciemoslacreacindelModelodeObjetodelNegocio. Dentro de la plantilla que ofrece Rational Rose para la modelacin existe una carpeta con el nombre de Business Object Model, la cual est dentro de Logical View como se puede ver en la Pantalla 1. Esta carpeta de Modelo de Objeto de Negocio almacenar el diagrama compuesto por entidades, trabajadoresyactoresdelnegocio.

142
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla1.CarpetadelModelodeObjetodelNegocio Para crear el diagrama se debe realizar un click derecho en la carpeta Business Objet Model, inmediatamente se visualizar un men emergente como se puede ver en la Pantalla 2. Se debe seleccionar la opcin New y a continuacin Class Diagram (Diagrama de Clases). Dentro de un Diagrama deClasessepuedecrearunModelodeObjetodelNegocio.

Pantalla2.CrearunDiagramadeClasesparaelModelodeObjetodelNegocio Unavezqueseseleccionelasopcionesanteriores,setienequecambiarelnombredelnuevodiagrama declasesaModelodeObjetodelNegociocomosepuedeverenlaPantalla3.

Pantalla3.CambiodeNombrealnuevodiagramadeclases Luego se debe visualizar la plantilla que nos proporciona Rational Rose para la creacin del Modelo de Objeto del Negocio, solo se debe realizar doble clic sobre el nombre el diagrama del objeto del negocio. Inmediatamente se visualizar en la parte izquierda del entorno de Rational Rose la platilla en blanco comosepuedeverenlaPantalla4.

143
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla4.PlantillayBarradeHerramientasparacrearelModelodeObjetodelNegocio ParainiciardebemosarrastrarlosActoresdelNegocioalaplantilla.Ennuestroejemploexisteunslo actordelnegocioqueesCliente,aesteactorsetienequearrastrarhacialaplantilladelModelode ObjetodelnegociocomosepuedeverlaPantalla5.

Pantalla5.AdicinalModelodeObjetodelNegociodelActordelNegocioCliente Ahora, la pregunta es de dnde salen los trabajadores y las Entidades del Negocio?, la respuesta a esta pregunta es muy sencilla. Los Trabajadores y las Entidades del Negocio salen de Diagrama de Actividad 144
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

que describe un Caso de Uso del Negocio. Tomaremos como ejemplo el Diagrama de Actividad Solicitar ServiciodelcasodeusoSolicitarServicioBsico. La Pantalla 6 presenta el diagrama de actividad que corresponde al caso de uso Solicitar Servicio Bsico. La primera calle corresponde a un actor del negocio con el nombre Cliente, las otras calles pertenece a unTrabajadordelNegocioqueinteractaconelCliente.Deestemodotememosvariostrabajadoresdel negocio que son: Mesero, Cocinero y Mozo del Bar. Los Objetos o Documentos que se observan en el diagrama de actividad corresponden a Entidades del Negocio, entonces se tendr cuatro entidades del negocio, las cuales son: Solicitud de Servicio con el estado Llena, Solicitud de Bebidas con el estado Llena, Solicitud de Bebidas con el estado Con el Costo y Solicitud de Servicio con el estado Con el Costo.

145
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre


Cliente Mesero Cocinero Mozo del Bar

Solicitar servicio

Recepcionar Solicitud

Solicitud de Servicio [Llena]

Solicitar Bebidas al Bar

Calcular Costo de Bebidas

Solicitud de Bebidas [Llena]

Solicitud de Bebidas [Con el Costo]

Verificar Solicitud de Bebidas

Precios incorrectos

Calcular Costo Total del Servicio

Verificar el costo del Servicio

Solicitud de Servicio [Con el Costo] Costo Incorrecto

Pantalla6.DiagramadeActividadSolicitarServicioBsico

Una vez hecho el anlisis se debe crear a los trabajadores y a las entidades del negocio. Se debe realizar un clic derecho en la carpeta de Trabajadores del Negocio y seleccionar las opciones de New y Actor, comosepuedeverenlaPantalla7.

146
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7.CrearuntrabajadordelNegocio

Luego,sedebecambiarelnombrealnuevoactorporelnombredeltrabajadordelnegocioMesero,que correspondeaunacalledelDiagramadeActividad.ComosepuedeverenlaPantalla8.

Pantalla8.CambiodenombrealnuevoactorporelTrabajadordelNegocio ParacambiarelestereotipodeActorhaciaunTrabajadordelNegocio,sedeberealizarunclicderechoen elActoryseleccionarlaopcindeOpenSpecification,comosepuedeverenlaPantalla9.

Pantalla9.OpcinparaelCambiodeEstereotipo

147
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez seleccionada la opcin inmediatamente se visualizar la Pantalla 10, en la cual se debe seleccionar el estereotipo de Business Worker (Trabajador del Negocio), por ltimo se debe realizar un clicenelbotnOKdelaPantalla10.

Pantalla10.CambiodeEstereotipo

Cuando se finaliza, el esteriotipo de actor cambiar al estereotipo de Trabajador del Negocio como se puedeverenlaPantalla11.

Pantalla11.TrabajadordelNegocioCreado

Para crear los restantes Trabajadores del Negocio se debe realizar las mismas operaciones, el resultado debesercomosepuedeverenlaPantalla12.

Pantalla12.VistadelosTrabajadoresdelNegocio Existe en la Pantalla 12, un trabajador del negocio que no aparece en el diagrama de actividad Solicitar Servicio y es Recepcionista, est claro que pertenece a otro diagrama de de actividad, la carpeta de Trabajadores del Negocio contendr a todos los trabajadores que aparezcan en los distintos diagramas 148
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

de actividad, de igual forma la carpeta de Entidades contendr a todos los objetos o Documentos que aparezcanenlosdistintosDiagramasdeActividad. A continuacin se describen los pasos para la creacin de las entidades del negocio. Esta creacin de la entidadesesalgosimilaraladecrearuntrabajadordelnegocio. SedeberealizarunclicderechoenlacarpetaEntidadesyseleccionarlasopcionesdeNewyClass,como sepuedeobservarenlaPantalla13.

Pantalla13.CrearunaEntidaddelNegocio UnavezrealizadalaactividadsedebecambiardenombreaSolicituddeBebidas,luegosedebecambiar el estereotipo, realizando un clic derecho y seleccionando la opcin Open Specification se visualizara la Pantalla14,lacualpermitecambiarelesteriotipohaciaBusinnessEntity.

Pantalla14.CambiodeEsteriotipohaciaEntidaddelNegocio 149
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

ParaaceptarelcambiosolosedeberealizarunclicenelbotnOK,deinmediatoelestereotipodeClase cambiaraalestereotipoEntidaddelNegociocomosepuedeverenlaPantalla15. Pantalla15.EntidaddelNegocioCreada Delmismomododebecrearlasotrasentidadesdelnegocio,elresultadodebeserigualalaPantalla16.

Pantalla17.EntidadesdelNegocio

ComosepuedeobservarenlaPantalla17,existenotrasentidadesquenosevisualizanenlosdiagramas de actividad, como la entidad Bebidas. La explicacin, es que no todas las entidades del negocio apareceneneldiagramadeactividad,peroalmomentoderealizarelModelodeObjetodelNegociopor el anlisis, estudio y la experiencia salen a la luz nuevas entidades. La entidad Bebidas representa a una hoja donde se encuentran los nombres de las Bebidas, en si es una lista de bebidas que puede seleccionarelClientealmomentoderealizarsuordendeservicio. Lo nico que queda por realizar es arrastrar a los trabajadores y entidades del negocio hacia la plantilla quenospermitacrearelModelodeObjetodelNegocio. Como se puede ver en la Pantalla 18, se ha realizado esta operacin de arrastrar a los trabajadores y entidadesdelnegocio.

150
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla18.ModelodeObjetodelNegocioconEntidadesyTrabajadoresdelNegocio

Ahora, falta realizar, en el Modelo de Objeto del Negocio las relaciones entre los actores y trabajadores delnegocio,entretrabajadoresyentidadesdelnegocioyentreentidadesdelnegocio. Ya se tiene conocimiento de cmo crear una relacin entre un estereotipo con otro. El resultado del modelodeobjetosepuedeobservarenlaPantalla19.

151
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla19.ModelodeobjetosinrelacionesentreEntidades

Se puede presentar relaciones de composicin entre entidades dentro del Modelo de Objeto del Negocio. Estas relaciones de Composicin se las ver con detalla cuando se hable del Diagrama de Clases. Para este documento se ha determinado una relacin de composicin de tipo Agregacin sobre lasentidadesSolicituddeBebidas[Llena],SolicituddeBebidas[ConCosto]yBebidas,comosepuedever enlaPantalla20.

Pantalla20.Relacionesentreentidades Paravisualizarlarelacindecomposicinentredosentidadessedeberealizarunclicderechosobreuno de los extremos de la relacin, de inmediato se visualizar varias opciones como se puede ver en la Pantalla 21. Hay que aclarar que al hacer un clic en uno de los extremos de la relacin las opciones que sepresentanvaran,porejemplo,sisehacerunclicenelextremomscercanodelaEntidadBebidasse cambiar la relacin de la entidad Bebidas con la Entidad Solicitud de Bebidas [Llena], es decir se est modificando la relacin que tienenBebidas con la otra entidad. Si se hace un clic derecho en el extremo 152
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

ms cercano a la entidad Solicitud Bebidas [Llena] se estar cambiando la relacin que tiene con la entidadBebidas.

Pantalla21.Opcionesparaconfigurarlarelacinentredosentidades Enlapantalla21sehahechounclicenelextremomascercanoalaentidadBebidas,laopcinquedebe seleccionaresNavigable,lacualquitaralanavegacindelarelacincomosepuedeverenlaPantalla22

Pantalla22.EliminacindelaNavegacin Para poder visualizar la Composicin se debe realizar un clic derechos sobre el extremo de la relacin que corresponde a la entidad Solicitud de Bebidas [Llena] y seleccionar la opcin Aggregate como se puedeverenlaPantalla23.

153
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla23.VisualizarunarelacindeAgregacin Elresultadodeestaoperacinselapuedeverenlapantalla24.

Pantalla24.RelacindeComposicin/Agregacin De este modo se puede observar en la Pantalla 25, el Modelo de Objeto del Negocio terminado con todassusrelaciones.

154
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla25.ModelodeObjetodelNegocioterminado SehafinalizadoeldesarrollodelModelodeObjetodelNegocio,enprximosdocumentosseverala utilizacindelosCasosdeusodelSistema,sudescripcinyseentraralAnlisis.

155
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

INTRODUCCINALFLUJODEREQUISITOS Existen dos clases de requisitos, cada una de estas clases son muy importantes y hay que describirlas de una forma completa. La descripcin se la debe hacer por medio de una plantilla que debe ser acordada, previamente,porelgrupodedesarrollooporlaempresa.Estasclasessonlassiguientes: - RequisitosFuncionales.Unacapacidadocondicinquelaaplicacindebecumplir - RequisitosnoFuncionales.Propiedadesocualidadesqueelproductodesoftwaredebetener. Existe unaclasificacin adicional a las descritas anteriormente, estas nosdan una visin ms clara de los requisitosquedebenserdescritosporelgrupodedesarrolloyson: - Normales (Funcionales). Deben incluir los objetivos y metas para una aplicacin, esto significa quesiestnpresenteselclienteestsatisfecho,yaquecumplirnconlasnecesidadesdeltrabajo diario. - Esperados (No Funciones). Estos sern implcitos a la aplicacin, puede que el cliente no los declare,perosinoestnpuedequeestinsatisfecho.Comoporejemplo,laFacilidaddeUsoola Seguridaddetransmisindelosdatosquerealizalaaplicacin. - Innovadores(FuncionalyNoFuncional).Sonrequisitosconcaractersticasquevanmsalldelas expectativas del cliente. Como por ejemplo, una calculadora o implementar una conversacin escritaentiemporeal(Chat)dentrodelaaplicacin. Existencuatropasosfundamentalesparaladeterminacindelosrequisitos,sonlossiguientes: - EnumerarlosRequisitosFuncionalesCandidatos.Sepuedelistardeformadesordenadaqueeslo que se quiere que resuelva la aplicacin, tomando en cuenta el conocimiento de los futuros usuarios,clientesydesarrolladores. - Comprender el Contexto de la Aplicacin. Los desarrolladores necesitan un fuerte conocimiento del contexto del sistema de informacin donde se desarrollar la aplicacin, as mismo un conocimientomuyacertadodelasactividadesyprocesosquesevanaautomatizar.Estoselogra graciasalModelodelNegocio,elcualestudialasactividadesdesdeelpuntodevistadelnegocio. - CapturarlosRequisitosFuncionales.Losrequisitosfuncionalessernexpresadospormediodelos Casos de Uso, los cuales describirn el flujo de actividades para el manejo de la aplicacin. La descripcin de los casos de uso debe realizarse de una forma completa utilizando una plantilla establecida por el grupo de desarrollo o de la empresa. La descripcin debe tomar en cuenta los escenarios diversos que puede tener un Caso de Uso, entendiendo como escenario a las situaciones diversas que puede existir al momento de manejar la aplicacin. Otra alternativa, paralacapturaralosrequisitosesatravsdelModelodelNegocio,especficamenteelDiagrama deActividadquedescribeuncasodeusodelnegocio. - Capturar los Requisitos no Funcionales. Debe pensarse en estas propiedades como las caractersticas que hacen al producto atractivo, usable, rpido o confiable. Estos requisitos incluyen: o ConjuntodeFacilidades o Capacidades 156
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

o Restricciones o Seguridad Racionalproponerealizarunestudioydescripcindelosrequisitosnofuncionales: o AparienciaoInterfazExterna o FacilidaddeUso o Rendimiento o Soporte o Seguridad o Confiabilidad o Ayudasydocumentacinenlnea o SoftwareyHardware o DiseoeImplementacin o PolticosyCulturales Como se ha visto en el documento de introduccin, se puede definir los requisitos no funcionales a travsdelaNormasinternacionalescomoporejemplo:ISO9126,McCallyBoohem,siendolaprimerala msutilizadaparaestepropsito. Cada requisito estar descrito dentro de un Caso de Uso, como tambin pueden existir requisitos generalesqueinvolucrenatodalaaplicacin,conocidoscomoRequisitosAdicionales. Dentro del Proceso Unificado de Racional una de las herramientas utilizadas para la determinacin de requisitos para la aplicacin son los Casos de Uso. Esta herramienta, se ha utilizado durante muchos aos,yaquedescribe,demaneraptima,losrequisitosdelosclientes.UnCasodeUsodebeser,parael usuario, unmodo de utilizar la aplicacin, es decir un documento narrativo que describela secuencia de eventos de un actor (agente externo) que utiliza la aplicacin para un propsito. La transicin de la determinacindelasnecesidades,pasandoporlosrequisitosdelclienteyllegarhastalaimplementacin noesfcil.Lasnecesidadesdeunclientenosonfcilesdediscernirodescubrirymuchomstraducirlas a un lenguaje que sirva para desarrollar una aplicacin. Esto obliga que se debe tener un modo de descubrir estas necesidades del cliente para poderlas transformar en requisitos de la aplicacin, de modoqueseafcillacomunicacinentrelosinvolucradosenelproyecto.Despus,sedebellevaracabo la implementacin, que debe ajustarse con las necesidades y requisitos. El ltimo problema es comprobar que la implementacin cubra de una manera ptima los requisitos del usuario, para esto se utiliza el proceso de prueba que nos garantiza una validacin de la aplicacin desarrollada para cubrir conlasnecesidadesdelcliente. Los Casos de Uso han sido adoptados en el mundo entero para la captura de requisitos de sistemas de softwareysistemasbasadosencomponentes,perolosCasosdeUsosonmsqueparaladeterminacin delosrequisitos,dirigenyayudan,enformatotal,eldesarrollo. Es normal que una aplicacin cuente con muchos usuarios o actores, lo cuales son los que interactan con los casos de uso. Un Caso de Uso es una secuencia de acciones que la aplicacin lleva a cabo para ofrecer un resultado para el actor. El Modelo de Casos de Uso, est compuesto por todos los actores y losCasosdeUsorelacionados.

157
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para realizar la captura de los requisitos se debe iniciar con la determinacin de los actores, luego por cada actor determinar los casos de uso. Cada caso de uso tiene que estar debidamente descrito. Por ltimorealizarelDiagramadeCasosdeUso Identificarlosactores Para identificar los actores de la aplicacin se utiliza la descripcin de los Casos de Uso del Negocio, es decir,losDiagramasdeActividad.Yasea,unActorounTrabajadordelNegocioseconvertirenunActor delaAplicacin,estosedeterminapormediode: La situacin de la Institucin. Algunas veces no tiene para invertir en recursoss tcnicos que permitan desarrollar una aplicacin con la ltima tecnologa. Aunque, algunas veces, es un error utilizar la ltima tecnologa por motivos de compatibilidad. Esta situacin puede llegar a determinarquelostrabajadoresdelnegociosonloscandidatosaserActoresdelaAplicacin. Las necesidades de la Institucin. Algunas veces por el incremento del manejo de informacin o por el crecimiento de servicios se necesita desarrollar una aplicacin en un entorno Web, que incluyealclientecomoposibleactordelaaplicacin. Estos factores son los que se deben tomar en cuenta para determinar a los actores de la aplicacin. Sin embargo, como se ha explicado en anteriores documentos, el Modelo del Negocio se puede obviar, en este caso los actores de la aplicacin sern determinados de distinta forma, que se explica a continuacin. Losactoressecaracterizanpor: Nosonpartedelaaplicacin,sonrolesdeunusuario Puedenintercambiarinformacinconelsistema Puedenserunrecipientepasivodeinformacin Puedenrepresentaraunhumanoaunamquinaounsoftware Paraidentificarlosactoresenelcontextodelaaplicacindebenrealizarselassiguientespreguntas: Quinestinteresadoenciertorequisito? Dndeenlaorganizacinesusadoelsistema? Quinesusan,eliminanosuministraninformacin? Quinusarunafuncionalidaddelaaplicacin? Quinsoportaymantieneelsistema? Usaelsistemaunrecursosexterno? Culesactoresnecesitanelcasodeuso? Unactorjuegadiferentesrolesovariosactoresjueganelmismorol?

158
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Identificarloscasosdeuso De igual forma que para determinar a los actores de la aplicacin se debe estudiar los Diagramas de Actividad de los Casos de Uso del Negocio y sus actividades. Este estudio nos permitir identificar a los Casos de Uso de la aplicacin. Las actividades que estn dentro de los diagramas de actividades deben ser analizadas y resumidas, de esta forma se puedan convertir en Requisitos de la aplicacin. No todas lasactividadesquesepresentanenundiagramadeactividadsernautomatizadas. SetienedosmtodosparaidentificarloscasosdeusosinosecuentaconelModelodelNegocio: MtodobasadoenlosActores MtodobasadoenEventos Enelmtodobasadoenlosactoressetieneencuentalosiguiente: Serelacionanlosactoresconunsistemaoempresa Paracadaactor,seidentificanlosprocesosqueinicianoenqueparticipan Enelmtodobasadoenloseventossetieneencuentalosiguiente: Seidentificanloseventosexternosalosqueunsistemadeberesponder Serelacionanloseventosconlosactoresyconloscasosdeuso Una vez que se hayan determinado los Actores y Casos de Uso de la Aplicacin se debe describir cada uno de estos. Esta descripcin se ver ms adelante con mucho detalle, ya que es la parte ms importantedentrodeldesarrollodesoftware. ElsiguientepasoesrealizarelDiagramadeCasosdeUsodelaaplicacin,elcualnosdarunavistamuy resumida y completa de la magnitud del desarrollo. Este diagrama se desarrolla con los estereotipos de Casos de Uso y Actores. En este momento, se puede determinar los posibles Ciclos de Desarrollo y los Paquetesqueayudanaentendermuchomejorelmodeloderequisitos. Una vez desarrollado el Diagrama de Casos de Uso, se procede a describir cada uno de los casos de uso que estn dentro del diagrama, de una forma resumida, lo cual nos da una visin de las operaciones y transacciones que se realizarn en la aplicacin, esto ltimo nos permite poder estimar el esfuerzo, tiempoycostodeldesarrollo,locualnospermitir,posteriormente,desarrollarunPlandeDesarrollo. ElltimopasoesladeterminacindelosRequisitosnoFuncionales,loscualesdebenestardeacuerdoa un estndar, ya sea interno, nacional o internacional. Estos requisitos son muy importantes, ya que con estossepodrmedir,engranpartelacalidad.Estosrequisitosdemostrarneltrabajoqueserealizaro que se ha realizado durante el desarrollo, ya que obligar a los desarrolladores a medir y controlar el desarrollo. En estos documentos se ve, muy poco, respecto a la definicin, control y seguimiento de estosrequisitos. 159
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

160
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DIAGRAMADECASOSDEUSO Modelodecasosdeuso Un Modelo de Casos de Uso es un modelo de las funciones deseadas de la aplicacin y sus ambientes, y sirve como un contrato entre el cliente y los desarrolladores. Los casos de uso sirven como un hilo unificadoralolargodedesarrollodelaaplicacin.ElModelodeCasosdeUsoeselresultadodelflujode RequisitosyesusadocomoparteimportantedelAnlisis,DiseoydelaPrueba. Existen muchas maneras de modelar una aplicacin, cada una puede servir para un propsito diferente. Sin embargo, el propsito ms importante de un modelo de casos de uso es comunicar el comportamiento de la aplicacin al cliente o usuario final. Por consiguiente, el modelo debe ser fcil de entender. Los usuarios y cualquier otro sistema que pueden interactuar con la aplicacin a desarrollar, sern consideradoscomoactores,porqueestosrepresentanalosusuariosdelaaplicacin,losactoresayudan adelimitarlaaplicacinydanuncuadromsclarodeloquesesuponequedebehacer.Loscasosdeuso se desarrollan en base a las necesidades de los actores, esto asegura que la aplicacin terminar siendo lasolucinqueesperanlosusuarios. CmoEvolucionaelModelodeCasosdeUso Losactoresyloscasosdeusosonencontradosanalizandolasnecesidadesdelosusuarios,elModelodel Negocio (si es que se ha desarrollado) y los usuarios potenciales como informacin vital. Cuando los casos de uso son capturados, deben describirse de forma resumida (alto nivel) y los actores de igual forma. Antes de que los casos de uso se describan con todos los detalles necesarios para su completa comprensin, deben ser revisados por el cliente para verificar que se encuentran todos los casos de uso yactores,yquejuntospuedenproporcionarloqueelclientenecesita. Cuandosehanencontradolosactoresycasosdeuso,elflujodeeventosdecadacasodeusosedescribe de forma detallada. Estas descripciones muestran cmo el sistema interacta con los actores y lo que la aplicacinhaceencadacasoindividual. Finalmente, el Modelo de Casos de Uso terminado (incluyendo las descripciones de casos del uso) se revisa, los encargados de esta revisin son los diseadores y clientes, ya que son los que usarn y los interesados,ellosdebendeestardeacuerdoenloquelaaplicacinhar. CasosdeUsoConcretosyAbstractos Existe una diferencia entre un Caso de Uso Concretos y un Casos de Uso Abstractos. Un caso del uso concreto esiniciado por un actor y constituye un flujo completo de eventos. "Concreto" significa que un casodecasorealizalaoperacindeformacompletarequeridaporelactor. Uncasodelusoabstractonuncaesiniciadoporsimismo,nitampocoiniciadoporunactor.Loscasosde uso abstractos son Incluido hacia, Extendido hacia, o Generalizado a. Cuando un caso de uso concretocomienza,unainstanciadelcasodeusoabstractosecrea. 161
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Ladiferenciaentrelosdosesimportante,porqueenloscasosdeusoconcretoslosactoressernlosque utilicen. Existencuatrotiposderelacionesoasociaciones(comunicacin)eneldiagramadecasosdeuso,sonlas siguientes: - Comunicacin. Es una relacin simple entre un actor y un caso de uso, como se puede ver en el ejemplosiguiente:

CU registrar cam bio de com ponente


(from registrar cambio de componente)

CU llenar inform e de reparacion de com ponente


(from llenar informe de reparacin)

ar contrasea
nar contrasea)

CU llenar recibo de com ponente nuevo Encargado del centro com puto
(f rom Actors)

(from registrar recibo componente nuevo)

o de ma
tors)

CU Gestionar inventario CU Regis trar cambio de tinta


(from registrar cambio de tinta) (from actualizar inventario )

Inclusin(Include).Siexisteunapartedeuncasodeusoquerepresentaunafuncinqueesten otro caso de uso, que slo depende del resultado, pero no el mtodo usado para producir el resultado, se puede crear esa parte fuera a un caso de uso que sea adicional. La adiccin se inserta, explcitamente, en un caso de uso relacionado con el creado y se debe incluir en la relacinIncluiroInclude.Comosepuedeverenelejemplosiguiente:

Cliente

Comprar por Internet <<include>>

Pagar con Tarjeta de Credito

Extencin (Extend). Si existe una parte de un caso del uso concreto que es optativa, es decir que exista una condicin lgica para su ejecucin o no necesaria, se puede crear un nuevo caso de 162

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

uso con la parte condicionada, esto ayuda a simplificar laestructura delcaso de uso concreto. La adiccin se relaciona, implcitamente, con el caso de uso concreto y el creado, se debe usar la relacinExtenderoExtend.Comosepuedeverenelejemplosiguiente: Ejemplo de comportamiento que se ejecuta bajo ciertas condiciones
Reportar Discrepancias

<<extend>>

Usuario

Chequear Pagos Realizados

<<extend>>

Especialista del Banco

Pagar Servicio por Internet

Buscar Cuentas Alternativas

Ejemplo de comportamiento que se ejecuta cuando lo indique el actor.

Herencia. Si hay casos del uso que tienen conducta en comn, estructura y similitudes dentro de su propsito, las partes comunes pueden ser separadas en un caso de uso concreto (padre), el cual puede heredas a otros casos de uso adicionales (hijos). Los casos de uso de Hijos pueden insertar nuevas conductas y pueden modificar la conducta en la estructura que ellos heredan del casodeusodepadre. Se puede usar la generalizacin de actores para mostrar cmo los casos de uso son especializacionesdeotrosentresi.Comosepuedeverenelejemplosiguiente:

Colocar Orden Empleado de Registro de Ordenes


(f rom A ctors)

(from Col ocar Orden)

Orden Telefnica
(from Actors)

Orden Por Internet


(from Actors)

Usua ri o

Usua ri o Interne t

163

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Uncasodeusodebesersimple,inteligible,claroyconciso.Generalmentehaypocosactoresasociadosa cada Caso de Uso. Para encontrar algunos parmetros en la construccin de un caso de uso se debe realizarlassiguientespreguntas: - Culessonlastareasdelactor? - Quinformacincrea,guarda,modifica,destruyeoleeelactor? - Debeelactornotificaralaaplicacinloscambiosexternos? - Debeelsistemainformaralactordeloscambiosinternos? La flecha de comunicacin define al actor que inicia el caso de uso esperando una respuesta. Una lnea sinflechaasumeunacomunicacinbidireccional,dondeelcasodeusoeselquemandaunarespuestaa un actor, para luego, el actor, realice una actividad que active al caso de uso, pero pude que el caso de usosoloinforme,enestecasolaflechaapuntaraalactor. Uncasodelusopuedecomenzarsesegnunaprogramacin(porejemplo,unavezalasemanaounavez al da), que significa que el reloj de la aplicacin es el iniciador del caso de uso. Para la claridad del Diagrama de Casos de Uso, se debe utilizar un actor ficticio "Tiempo" para mostrar cmo el caso de uso seinicia. Unaspecto,importante,paralaorganizacinycomprensindelmodelodecasosdeuso,esagruparlos casosdelusoenpaquetes.Unpaqueteesunmecanismodepropsitogeneralparaorganizarelementos engrupos. AcontinuacinserealizaelDiagramadeCasosdeUsoparalaaplicacindeHotel. Parainiciarsedebedeterminaralosactoresyaloscasosdeuso. Enprimerlugarsedeterminaalosactoresdelaaplicacin,sonlossiguientes: Actor Descripcin Recepcionista Es la persona de atender al cliente en la reserva o confirmacindeunahabitacinenelhotel,ademsdellevarel costo del consumo que el cliente realice mientras este hospedado enelhotel.Esteactorpodrrealizaractividadesde reserva,confirmacinycierredecuentaparaelcliente. Cliente Esunapersonaqueestinteresadaenreservarunahabitacin dentro del hotel. Este actor podr solo realizar la actividad de reservadehabitacinpormediodeunainterfaz JefedeCocina Es la persona encargada de registrar las solicitudes de servicio de los clientes ya sea a la habitacin, donde se hospeda el cliente o en los servicios bsicos que ofrece el hotel para el cliente como desayuno, almuerzo o cena. Este actor podr realizarlasactividadesderegistrodesolicitudes Administrador Eslapersonaqueseencargadegestionarlospermisoshaciala aplicacin, las bebidas y las comidas. Este actor podr realizar 164
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

las actividades de crear, actualizar y eliminar comidas y bebidas para los servicios hacia el cliente, adems de crear y modificarlospermisos. Existendosmtodosparaladeterminacindeloscasosdeuso,sonlossiguientes: - Mtodo basado en Actores. En el mtodo debe tomarse en cuenta que los actores estn relacionados en una aplicacin o una empresa y que por cada actor se identifican los procesos queinicianoenqueparticipan. - Mtodo basado en Eventos. En el mtodo debe identificarse a los eventos externos a los que la aplicacin debe responder y se debe analizar si los actores se relacionan con los actores y con casosdeuso. Paraelejemploutilizaremoselprimermtodo. Actor CasosdeUso Recepcionista ReservarHabitacin ConfirmarReserva SalirdelHotel CambiarContrasea AutenticarEmpleado Cliente ReservarHabitacin JefedeCocina CambiarContrasea AutenticarEmpleado RegistrarSolicituddeServicioalaHabitacin RegistrarSolicituddeServicioBsico Administrador GestionarEmpleados GestionarBebidas GestionarCocina Como se puede observar, existen varios casos de uso que se repiten, lo que importa es identificar las actividadesdecadaactor,lascualesrealizarconlaaplicacin. Hay que sealar, que una ayuda para la determinacin de los casos de uso son los Diagramas de Actividadquecorrespondenaloscasosdeusodelnegocio.Sedeberealizarunanlisisdecadaactividad dentro de los diagramas de actividad, debe preguntarse por cada actividad se pede automatizar?, ya que muchas, no todas, de las actividades son verbales o llegan a una solucin sin generar una informacin persistente. Otras situaciones que influyen en la decisin de automatizar, es la economa y la disponibilidad de los clientes y usuarios, ya que la tecnologa ser un limitante para el desarrollo del software, como tambin la disponibilidad de la inversin en dinero. Para el ejemplo, se propone una interfazWeb,pararealizarunareservadehabitacin,yaseanlosactoresClienteoRecepcionistapodrn realizar la reserva de una habitacin, pero puede cambiar la poltica y decir que solo el Recepcionista es el encargado de realizar la reserva de la habitacin, en este caso puede que no sea necesario el desarrollodeunainterfazWebpararealizarestaactividad. 165
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Unavezidentificadostodosloscasosdeuso,querepresentalasolucinalasnecesidadesdelosusuarios sedebecrearelDiagramadeCasosdeUso. A continuacin se crea el Diagrama de Casos de Uso en el Rational Rose. La creacin es similar al DiagramadeCasosdeUsodelNegocio. IniciemoslacreacindelDiagramadeCasosdeUso.ComosepuedeverenlaPantalla1,laubicacin dentrodelRationalRoseserUseCaseModel(ModelodeCasodeUso).

Pantalla1.UbicacinparalacreacindelModelodeCasosdeUso LacarpetadeUseCaseModelestconformadapordossubcarpetasqueson:ActorsyUseCase(Actores yCasosde Uso),dentrodeestascolocaremos,respectivamente,alosactoresquesehandeterminadoy a los casos de uso que se han captado de la aplicacin de ejemplo. Como se puede ver en la Pantalla 2, las subcarpetas tienen una estructura para documentar la aplicacin, muestra donde se tiene que colocar a los actores y como crear los casos de uso. Dentro de la carpeta Use Cases se encuentran dos subcarpetas con el nombre de Use Case Name e Included Use Cases. La primera subcarpeta nos indica que por casa caso de uso se debe crear una carpeta y dentro de esta, recin, el caso de uso. La segunda subcarpeta,IncludedUseCases,esparaloscasosdeusoquetienenunarelacinconotrocasodeusode tipoInclude.Deigualformaqueloscasosde usoconcretos,porcadacasodeusoincluidodebeexistir unacarpetaydentrodeestaelcasodeuso.

Pantalla2.PlantillaparaelModelodeCasosdeUso

166
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

El primer paso es crear a los actores de la aplicacin, para esto se debe realizar un clic derecho en la carpeta Actors, se visualizar un men emergente, ya conocido, se debe seleccionar la opcin New, la cual desplegar un submenu, la opcin que se debe seleccionar es Actor, sobre la cual se debe realizar uncliccomosepuedeverenlaPantalla3.

Pantalla3.CrearunActordelaaplicacin

El resultado ser la Pantalla 4, donde se debe cambiar el nombre del actor por uno que sea significativo paralaaplicacin.

Pantalla4.ResultadodelaCreacindeunActor EnlaPantalla5sevealprimeractorcreado

Pantalla5.PrimerActorCreado
Ingeniera de Sistemas Informticos

167

Universidad Privada del Valle Unidad Acadmica Sucre

Para los siguientes actores deben realizarse las operaciones anteriormente descritas. El resultado de la creacindelosactoressepuedeobservarenlaPantalla6.

Pantalla6.ResultadodelacreacindelosActoresdelaAplicacin Luego de crear alos actores restacrear alos casos de uso, es similar al proceso de creacin delos casos deusodenegocio.No debeolvidarsequeporcadacasode usodebeexistirunacarpetacomosepuede ver en la plantilla seleccionada al inicio de cada proyecto. Para crear un caso de uso se debe realizar un clic derecho en la carpeta Use Cases, esta actividad desplegar un men emergente como se puede ver en la Pantalla 7, debe seleccionarse la opcin New y luego Package, esta ltima permite crear una carpetaalacualsedebecambiarelnombre.

Pantalla7.CrearunaCarpetaparaelcasodeuso

168
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Comosedijoanteriormente,sedebecambiarelnombrealacarpeta,enestecasoelnombredelprimer caso de uso que se ha captado, que es: Reservar Habitacin. El resultado de esta actividad se puede ver enlaPantalla8.

Pantalla8.CambiodeNombredeunaCarpeta Quedacrearelcasodeuso,paraestosedeberealizarunclicderechoenlacarpetaReservarHabitacin, aparecer un men emergente del cual se debe seleccionar la opcin New y Use Case, como se puede verenlaPantalla9.

Pantalla9.CrearunCasodeUso

Una vez realizada la actividad, resta cambiar de nombre al caso de uso creado, en este caso ser ReservarHabitacin.ElresultadodeestaactividadsepuedeverenlaPantalla10.

169
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla10.CreacindelcasodeusoReservarHabitacin Para crear los otros casos de uso se debe realizar los pasos anteriormente descritos, el resultado se puede ver en la Pantalla 11. Se crea una carpeta por cada caso de uso, debido a que un caso de uso puede ser descrito ya sea por medio de un diagrama de actividad o de forma literal e incluso por medio deundiagramadesecuencia,diagramadeclasesoundiagramadeestado.Estasdescripcionesestnen funcin de las polticas de la empresa o el grupo de desarrollo, por este motivo RUP aconseja que por cadacasodeusosedebacrearunacarpeta.

Pantalla11.ResultadodecrearloscasosdeUso ParaesteejemplodeaplicacindeHotel,noseadicionaningnotroestereotipoporcasodeuso,solose harunadescripcindeformaliteral. El paso final es crear el Diagrama de Casos de Uso, para realizar esta actividad se debe realizar un clic derecho en la carpeta UseCase Model, aparecer un men emergente del cual se debe seleccionar la opcindeNewyUseCaseDiagram.ComosepuedeobservarenlaPantalla12.

170
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla12.CrearunDiagramadeCasosdeUso El siguiente paso es cambiar de nombre, el nombre debe ser Vista del Diagrama de Casos de Uso, comosepuedeverenlaPantalla13.

Pantalla13.CambiodenombrealDiagrama

Una vez realizada la actividad se debe realizar doble clic en el diagrama, en la parte derecha de Rational Rose se visualizar una plantilla, en la cual se debe crear el Diagrama de Casos de Uso. Para crear el diagrama de casos de uso solo se debe arrastrar los actores y los casos de uso creados. El resultado se puedeverenPantalla14.

171
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla14.CasosdeUsoyActoresenlaPlantilladelDiagramadeCasosdeUso

La actividad final es identificar las relaciones (comunicacin) que existe entre los actores y los casos de uso,paraestosedebeutilizarelbotnconelnombredeUnidireccionalAssociation ,sedebehacer un clic, ya sea en el actor o en el caso de uso, y arrastrar hasta el esteriotipo donde se piense que se tieneunarelacin.ElresultadodeestaactividadsepuedeverenlaPantalla15.

172
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla15.VistadeDiagramadeCasosdeUso

En la Vista del Diagrama de Casos de Uso se puede utilizar el concepto de Generalizacin para los actores,yaquevariosdeestosutilizanunmismocasodeuso,serecomienda,paralamejorcomprensin del diagrama y para el futuro del Diagrama deClases, quesolo un actor sea el queinicia un caso de uso. EnlaPantalla16sepuedeobservarlautilizacindelaGeneralizacinparalosactores.

173
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla16.UtilizacindelConceptodeGeneralizacinenActoresdelaAplicacin

Para utilizar la Generalizacin en los actores se debe utilizar el botn Generalization , la operacin paradeterminarlarelacinessimilaraladeactorconuncasodeuso. De esta forma se ha creado el Modelo de Casos de Uso, en los prximos documentos se indica como describirloscasosdeuso,deformatalquerepresentenlainteraccinentreelactorylaaplicacin. Los prximos documentos son muy importantes, ya que son temas muy interesantes y darn una visin diferente, ya sea, para la documentacin como en la planificacin en un proyecto de desarrollo de software.

174
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DESCRIPCINDELOSCASOSDEUSODELAAPLICACIN Se cuenta con el Diagrama de Casos de Uso del Sistema que nos da una idea muy amplia de las funcionalidades que tendr la aplicacin. A continuacin se describe cada caso de uso de forma resumida(altonivel)yaqueenlapartedeanlisissehardeformacompletacontodaslasinteracciones del usuario hacia la aplicacin. Esta descripcin resumida nos permitir realizar una estimacin del esfuerzo, costo y tiempo a travs de los Puntos Funcin y los Casos de Uso. Esta tcnica se describiren estedocumento. Acontinuacinserealizaunabrevedescripcindeloscasosdeuso. Laplantillaqueseutilizaparaladescripcindeloscasosdeusoeslasiguiente: CasodeUso Nombredelcasodeuso Actores Resumen Actores BrevedescripcindeloquehaceelCU Tabla1.PlantillaparaladescripcindelosCasosdeUso

DESCRIPCINDELOSCASOSDEUSO CasodeUso ReservarHabitacin Actores Resumen Usuario(RecepcionistayCliente) El caso de uso se inicia cuando el Usuario quiere reservar una habitacin, respectoasunecesidad.Lahabitacinpuedeserindividual,dobleotriple, elusuariodeberegistrarsusdatosylaaplicacintienequeproporcionarle opcionesdeseleccinpararegistrarlareserva. ConfirmarReserva Recepcionista ElcasodeusoseiniciacuandoelRecepcionistadebeconfirmarlaestancia de unCliente hacia unahabitacin,anteriormente reservada ya sea porel ClienteoelRecepcionista,laaplicacindebedarlaopcindeconfirmarla habitacin enviando un mensaje. De esta forma el Cliente tendr una cuentahabilitadaparatodoslosserviciosdelhotel. SalirdelHotel Recepcionista ElcasodeusoseiniciacuandoelRecepcionistadecidecerrarelhospedaje de un Cliente. El recepcionista debe calcular el monto de dinero que ha significado el servicio hacia el Cliente. La aplicacin debe proporcionar opcionesparacalcularelmontodedineroyemitirlafactura 175
Ingeniera de Sistemas Informticos

CasodeUso Actores Resumen

CasodeUso Actores Resumen

Universidad Privada del Valle Unidad Acadmica Sucre

CasodeUso Actores Resumen

CambiarContrasea Empleado(RecepcionistayJefedeCocina) El caso de uso se inicia cuando el empleado quiere cambiar la contrasea de acceso a la aplicacin. La aplicacin debe proporcionarle una interfaz para que pueda cambiar la contrasea de acceso, adems, debe emitir un mensajedeconformidad. AutentificarEmpleado Empleado(RecepcionistayJefedeCocina) ElcasodeusoseiniciacuandoelEmpleadoquiereingresaralaaplicacin, para esto debe introducir su cuenta y contrasea de acceso a una interfaz queleproporcionalaaplicacin. RegistrarSolicituddeServicioalaHabitacin JefedeCocina ElcasodeusoseiniciacuandoelJefedeCocinavaaregistrarunasolicitud deservicioalahabitacinquehahechoelCliente,estasolicitudinvolucra lascomidas,lasbebidasylahabitacin.Laaplicacinledebeproporcionar una interfaz para registrar la solicitud, para esto debe seleccionar de una listalasbebidasylascomidas. RegistrarSolicituddeServicioBsico JefedeCocina El caso de uso se inicia cuando el Jefe de Cocina va a registrar un solicitud de servicio bsico (Desayuno, Almuerzo o Cena) que ha hecho el Cliente a travs del mozo, esta solicitud involucra las comidas, las bebidas y la habitacin. La aplicacin debe proporcionar una interfaz para registrar la solicitud,paraestodebeseleccionardeunalistalasbebidasylascomidas solicitadas GestionarEmpleados Administrador El caso de uso se inicia cuando el Administrador necesita Adicionar, Modificar, Eliminar o Imprimir sus datos de un empleado. El sistema debe proporcionarlelasopcionespararealizarestasoperaciones GestionarBebidas Administrador El caso de uso se inicia cuando el Administrador necesita Adicionar, Modificar, Eliminar o Imprimir datos de las bebidas disponibles para el 176

CasodeUso Actores Resumen

CasodeUso Actores Resumen

CasodeUso Actores Resumen

CasodeUso Actores Resumen

CasodeUso Actores Resumen

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Cliente. La aplicacin debe proporcionarle las opciones para realizar estas operaciones CasodeUso Actores Resumen GestionarComidas Administrador El caso de uso se inicia cuando el Administrador necesita Adicionar, Modificar, Eliminar o Imprimir datos de las comidas disponibles para el Cliente. La aplicacin debe proporcionarle las opciones para realizar estas operaciones GestionarHabitacin Administrador

CasodeUso Actores Resumen

El caso de uso se inicia cuando el Administrador necesita Adicionar, Modificar, Eliminar o Imprimir datos de las habitaciones disponibles para el Cliente. La aplicacin debe proporcionarle las opciones e interfaz para realizarestasoperaciones De esta forma se ha descrito de forma breve los casos de uso, lo cual da una pequea idea de la magnituddelaaplicacin.Acontinuacinrealizaremosunaestimacindeesfuerzo,costoytiempopara laaplicacinHotelera. ESTIMACINDEESFUERZO,COSTOYTIEMPO Utilizar los Casos de Uso que permite documentar a los requisitos de una aplicacin en trminos de Actores y Casos de Uso. Como se ha explicado en anteriores documentos, un Actor tpicamente representa a un usuario humano o a otra aplicacin que interacta con la aplicacin bajo Desarrollo. Un Caso de Uso representa un requisito de la Aplicacin bajo anlisis, relata de forma secuencial las acciones que uno o ms actores llevan a cabo en el sistema para obtener un resultado de valor significativo. Si bien los Casos de Uso permiten especificar la funcionalidad de una aplicacin bajo anlisis, no permiten,porsmismos,efectuarunaestimacindeltamaoquetendrlaaplicacinodelesfuerzoque tomaraimplementar. Para la estimacin del tamao de una aplicacin a partir de sus requisitos, una de las tcnicas ms difundidas es el Anlisis de Puntos de Funcin. sta tcnica permite cuantificar el tamao de un sistema en unidades independientes del lenguaje de programacin, las metodologas, plataformas y/o tecnologasutilizadas. Por otro lado, el SEI (del ingls, Software Engineering Institute) propone desde hace algunos aos un mtodo para la estimacin del esfuerzo llamado COCOMO II. ste mtodo est basado en ecuaciones matemticasquepermitencalcularelesfuerzoapartirdeciertasmtricasdetamaoestimado,comoel AnlisisdePuntosdeFuncinylaslneasdecdigofuente(eninglsSLOC,SourceLineOfCode). 177
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Existe una relacin natural entre los Puntos de Funcin y los Casos de Uso. Los Puntos de Funcin permiten estimar el tamao del software a partir de sus requisitos, mientras que los Casos de Uso permiten documentar los requisitos. Ambos tratan de ser independientes de las tecnologas utilizadas para la implementacin. En etapas tempranas del ciclo de vida, se identifican los Actores y los Casos de Usodelaaplicacinysedocumentacadaunodeestosmedianteunabrevedescripcin. Utilizando el Anlisis de Puntos de Funcin a estos Casos de Uso, se podr obtener una estimacin grosera del tamao y a partir de esta del esfuerzo. Esta estimacin es bastante imprecisa debido, principalmente, a la escasa informacin que se tiene sobre el software al principio de un proyecto, pero permitir obtener una idea del esfuerzo necesario para llevar adelante el mismo, y podr ser refinada a medidaqueseobtengamsinformacin. Se recalca que es una estimacin, lo ms importante de esta actividad es que se podr realizar un plan paraeldesarrollodesoftware.LaPlanificacinestmuyrelacionadaconlasactividadesdelaestimacin, paradeterminarlasactividadesdentrodelaplanificacinesmuynecesarioconocereltiempo,costoyel esfuerzoquesenecesitarnparallevaracaboeldesarrollo. Pressman seala lo siguiente: Para llevar a cabo un buen proyecto de desarrollo de software, debemos comprender el mbito del trabajo a realizar, las tareas a ejecutar, las referencias a tener en cuenta, la agendaaseguir,elesfuerzoaemplearylosrecursosrequeridos. Conladescripcinyestudiodeloscasosdeusosedeterminaelmbitodeltrabajo,lastareasaejecutar y las referencias a tener en cuenta. Con la estimacin con ayuda de los Puntos Funcin y los Casos de Uso,sellegaadeterminarlosrecursosyelesfuerzoquesevananecesitar.Dentrodeestosdocumentos quedescribeneldesarrollodeunaaplicacinnosellegaatocarelpuntodeplanificacindelproyecto,la agenda de las actividades que se deben realizar para llevar a cabo el desarrollo. Pero, todo en la vida se debe planificar, si no se llega a obtener una planificacin no se podr hacer, no se tendr unaestrategia y no se tendr un proyecto. El plan de proyecto debe tener en cuenta el alcance, tareas, calidad, mtricas, cronogramas y disponibilidad de recursoss. El desarrollo de software cumple un ciclo de vida como todo producto tangible, el ciclo de vida del proyecto de software se puede determinar en cinco fases de proceso que determina la Gua del PMBOK y son: Proceso de Inicializacin, Planificacin, Ejecucin,SeguimientoyControlyelProcesodeCierre. EnunprximoconjuntodedocumentossehablardelaGestindeProyectosdeSoftware. Paraentenderconmayorfacilidadsedefinelossiguientesconceptos: Esfuerzo: Tiempo que necesita una persona para trabajar en el desarrollo del proyecto (hombres/mes,hombres/das,hombres/horas). Tiempo:duracintotaldelproyecto. CantidaddePersonas:Recursossnecesariosparadesarrollarelsoftware. Costo:cantidaddedineroquesenecesitaparallevaracaboeldesarrollodesoftware. Transacciones: Est representada por uno o ms pasos del flujo de eventos principal del Caso de Uso, pudiendo existir ms de una transaccin dentro del mismo Caso de Uso. Los flujos de eventosalternativosdentrodelCasodeUso,ayudanaclarificarlastransacciones. 178
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

La estimacin mediante el anlisis de Puntos de Casos de Uso es un mtodo propuesto originalmente porGustavKarnerdeObjectoryAB,yposteriormenterefinadopormuchosotrosautores.Setratadeun mtodo de estimacin del tiempo de desarrollo de un proyecto mediante la asignacin de "pesos" a un cierto nmero de factores que lo afectan, para finalmente, contabilizar el tiempo total estimado para el proyectoapartirdeesosfactores. El primer paso es calcular los Puntos de Casos de Uso sin Ajustar. Este valor se calcula con la siguiente ecuacin: UUCP=UAW+UUCW donde, UUCP:PuntosdeCasosdeUsosinajustar UAW:FactordePesodelosActoressinajustar UUCW:FactordePesodelosCasosdeUsosinajustar El Factor de Peso de los Actores (UAW) sin ajustar se calcula mediante un anlisis de la cantidad de Actores presentes en el sistema y la complejidad de cada uno de ellos. La complejidad de los Actores se estableceteniendoencuenta: Sisetratadeunapersonaodeotrosistema Laformaenlaqueelactorinteractaconelsistema. Loscriteriossemuestranenlasiguientetabla TipodeActor Descripcin FactordePeso Otrosistemaqueinteractaconelsistemaadesarrollar Simple medianteunainterfazdeprogramacin 1 (API,ApplicationProgrammingInterface) Otrosistemaqueinteractaconelsistemaadesarrollar Medio medianteunprotocoloounainterfazbasada 2 entexto Unapersonaqueinteractaconelsistemamediante Complejo 3 unainterfazgrfica Tabla2.PosiblesFactoresdePesodelosActores El Factor de Peso de los Casos de Uso sin Ajustar (UUCW) se calcula mediante un anlisis de la cantidad de Casos de Uso presentes en el sistema y la complejidad de cada uno de ellos. La complejidad de los Casos de Uso se establece teniendo en cuenta la cantidad de transacciones efectuadas en el mismo, donde una transaccin se entiende como una secuencia de actividades atmica, es decir, se efecta la secuencia de actividades completa, o no se efecta ninguna de las actividades de la secuencia. Los criteriossemuestranenlasiguientetabla: 179
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

TipodeCasodeUso Descripcin FactordePeso Simple Elcasodeusotienede1a3transacciones 5 Medio Elcasodeusotienede4a7transacciones 10 Complejo Elcasodeusocontienemsde8transacciones 15 Tabla3.PosiblesFactoresdePesoparalosCasosdeUso Aplicandoelanlisisalejemplodedesarrolloquesedesarrollaenestosdocumentos,serealizaelclculo delosPuntosdeCasosdeUsosinAjustar. AnlisisdelosActoresparaencontrarelFactordePesodeActoressinAjustar Actor FactorPeso Cliente 3 Recepcionista 3 JefedeCocina 3 Administrador 3 UAW=3+3+3+3=12(PesodelosActoressinAjustar) AnlisisdelosCasosdeUsoparaencontrarelFactordePesodeCasosdeUsosinAjustar Elanlisissedebehaceracadacasodeusoypensarcuantastransaccionestienecadaunodeellos. CasosdeUso FactordePeso ReservarHabitacin (Unatransaccin)5 ConfirmarReserva (Dostransacciones)5 SalirdelHotel (CuatroTransacciones)10 CambiarContrasea (UnaTransaccin)5 AutenticarEmpleado (UnaTransaccin)5 RegistrarSolicitudde (TresTransacciones)5 ServicioalaHabitacin RegistrarSolicitudde (TresTransacciones)5 ServicioBsico GestionarEmpleados (SieteTransacciones)10 GestionarBebidas (SieteTransacciones)10 GestionarComidas (SieteTransacciones)10 GestionarHabitacin (SieteTransacciones)10 UUCW=5+5+10+5+5+5+5+10+10+10+10=80(PesodeCasosdeUsosinAjustar) Finalmente,losPuntosdeCasosdeUsosinajustarseria: UUCP=12+80=92 Nosfaltacalcularvariascosasantesdeobtenerelesfuerzo. 180
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez que se tiene los Puntos de Casos de Uso sin Ajustar se debe ajustar este valor mediante la siguienteecuacin: UCP=UUCPxTCFxEF donde, UCP:PuntosdeCasosdeUsoajustados UUCP:PuntosdeCasosdeUsosinajustar TCF:Factordecomplejidadtcnica EF:Factordeambiente Para calcular el Factor de Complejidad Tcnica se debe definir varios Factores que influyen en la complejidadtcnica,sonlossiguientes: Sistema Distribuido. La aplicacin a desarrollar ser distribuida si varios mdulos estarn en varioslugares. Objetivos de Comportamiento o tiempo de respuesta. Si es necesario que el sistema de una respuestaenunespaciodetiempomnimo.SiesenunentornoWeb,elcargadoentrepaginasno seamuylento Eficacia del Usuario Final. El usuario debe tener varias caminos para realizar su trabajo incrementandosueficacia Procedimiento Interno Complejo. Si la codificacin ser compleja y requerir de investigacin pararealizarlaoparaoptimizarla El cdigo debe ser reutilizable. Si varios mdulos o componentes deben poder ser utilizados en otrasaplicaciones Facilidad de Instalacin. Si se debe crear inhaladores para la cmoda configuracin de la aplicacin Facilidaddeuso.Laaplicacindebeserfcildeaprender,recordar,visible,entendible,etc Portabilidad.Laaplicacinestdesarrolladaparafacilitareltrasladodelatecnologaaotra. Facilidad de Cambio. La aplicacin debe estar implementada de manera que sea fcil detectar defectosyrealizarloscambiosparaeliminarlos. Concurrencia.Silaaplicacinserutilizadaporunconjuntodepersonasgrandedebecomportase demaneraptima Incluyeobjetivosespecialesdeseguridad.Sivaasernecesarioimplementarpartedelaseguridad paralosdatosoelaccesoalaaplicacin. Proveeaccesoaterceraspartes.Silaaplicacinserutilizadaporotrasaplicaciones Se requiere facilidades especiales de entrenamiento a usuarios. Si se debe planificar un entrenamientoparaquelaaplicacinseautilizada. Este coeficiente se calcula mediante la cuantificacin de los factores explicados anteriormente, que determinanlacomplejidadtcnicadelsistema.Cadaunodelosfactoressecuantificaconunvalorde0a 5,donde0significaunaporteirrelevantey5unaportemuyimportante.Enlasiguientetablasemuestra elsignificadoyelpesodecadaunodestosfactores: 181
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Factor T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13

Descripcin Peso SistemaDistribuido 2 ObjetivosdeComportamientootiempoderespuesta 1 EficaciadelUsuarioFinal 1 ProcedimientoInternoComplejo 1 Elcdigodebeserreutilizable 1 Facilidaddeinstalacin 0.5 FacilidaddeUso 0.5 Portabilidad 2 FacilidaddeCambio 1 Concurrencia 1 Incluyeobjetosespecialesdeseguridad 1 ProveeAccesodirectoaterceraspartes 1 Serequierefacilidadesespecialesdeentrenamientoausuarios 1 Tabla3.FactoresqueinfluyenenlaComplejidadTcnica

ElFactordeComplejidadTcnicosecalculamediantelaecuacin: TCF=0.6+0.01*(Pesoi*ValorAsignadoi) ParanuestroejemploelFactordeComplejidadTcnicatendrelvalor: Factor Descripcin Peso Comentario T1 SistemaDistribuido 2 LaaplicacinutilizarvariosServicios Web T2 ObjetivosdeComportamientootiempode 4 Laaplicacindebeproporcionaruna respuesta altarapidezderespuestaalosCliente T3 EficaciadelUsuarioFinal 4 Debeasegurarsequelaaplicacin proporcioneunaaltaeficaciaparalos usuarios T4 ProcedimientoInternoComplejo 2 Nomuchosclculoscomplejos T5 Elcdigodebeserreutilizable 5 Elcdigodebeserreutilizable,loscual permitaserutilizadoenotras aplicaciones T6 Facilidaddeinstalacin 2 Escasosrequisitosdefacilidadde instalacin. T7 FacilidaddeUso 5 Esmuynecesariocrearinterfazque seanfcilesdeaprender,memorizar, queseanagradablesycomprensibles. T8 Portabilidad 2 Esnecesarioqueseacompatiblecon losdistintosnavegadoresWeb existentes T9 FacilidaddeCambio 1 Sedebegarantizarlautilizacindeun estndarparalacodificacin T10 Concurrencia 3 Laconcurrenciaserrelativamente 182
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

T11 T12 T13

Incluyeobjetivosespecialesdeseguridad ProveeAccesodirectoaterceraspartes Serequierefacilidadesespecialesde entrenamientoausuarios

2 1 1

fluida SeguridadBaja LosUsuariosWebtienenacceso

TCF=0.6+0.01*(2*2+1*4+1*4+1*2+1*5+0.5*2+0.5*5+2*2+1*1+1*3+1*2+1*1+1*1) TCF=0.945 Otro factor importante que debe calcularse es el Factor Ambiente (EF). Este factor determinar las habilidades. Y entrenamiento del grupo involucrado en el desarrollo tiene un gran impacto en la estimacin de tiempo. El clculo de este factor es similar al de Factor de Complejidad Tcnica, se debe cuantificar con valoresde0a5. Lasiguientetablamuestraalosfactores,ladescripcinyelpeso. Factor Descripcin Peso E1 Familiaridadconelmodelodelproyectoutilizado 1.5 E2 Experienciaenlaaplicacin 0.5 E3 ExperienciaenTeoraOrientadoaObjetos 1 E4 CapacidaddelAnalistaLder 0.5 E5 Motivacindelosinvolucradoseneldesarrollo 1 E6 Estabilidaddelosrequisitos 2 E7 PersonalTiempoParcial(PartTime) 1 E8 DificultaddelLenguajedeProgramacin 1 Tabla4.FactoresqueinfluyenenelAmbiente ParalosfactoresE1alE4,unvalorasignadode0significasinexperiencia,3experienciamediay5 ampliaexperiencia(experto). Para el factor E5, 0 significa sin motivacin para el proyecto, 3 motivacin media y 5 alta motivacin. Para el factor E6, 0 significa requisitos extremadamente inestables, 3 estabilidad media y 5 requisitosestablessinposibilidaddecambios. Para el factor E7, 0 significa que no hay personal tiempo parcial (es decir todos son tiempo completo),3significamitadymitad,y5significaquetodoelpersonalestiempoparcial(nadiees tiempocompleto). Para el factor E8, 0 significa que el lenguaje de programacin es fcil de usar, 3 medio y 5 que el lenguajeesextremadamentedifcil. ElFactorAmbientesedebecalcularconlasiguienteecuacin: EF=1.40.03*(Pesoi*ValorAsignadoi) Ahorasecalculaelfactorambienteparaelejemploqueseestdesarrollando 183
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Factor Descripcin E1 E2 E3 E4 E5 E6 E7

E8 ElvalordelFactorAmbienteser: EF=1.40.03(1.5*3+0.5*4+1*5+0.5*3+1*5+2*21*01*3) EF=0.83(FactorAmbiente) AhorasedebecalcularlosCasosdeUsoajustados.Losdosfactoresanteriormentecalculadosayudarana ajustarloscasosdeuso. UCP=UUCPxTCFxEF UCP=92*0.945*0.83 UCP=72.16(PuntosdeCasosdeUso) ConesteltimoclculosepodrcalcularelEsfuerzo. Un investigador llamado Gustav Karner propuso, en el ao 1993, que para cada Punto de Caso de Uso requiere20horashombre.Pero,eneltranstextodeltiemposehaperfeccionadoalsiguientecriterio: Se contabilizan cuntos factores de los que afectan al Factor de ambiente estn por debajo del valormedio(3),paralosfactoresE1aE6. Se contabilizan cuntos factores de los que afectan al Factor de ambiente estn por encima del valormedio(3),paralosfactoresE7yE8. Si el total es 2 o menos, se utiliza el factor de conversin 20 horashombre/Punto de Casos de Uso,esdecir,unPuntodeCasodeUsotoma20horashombre. Si el total es 3 o 4, se utiliza el factor de conversin 28 horashombre/Punto de Casos de Uso, es decir,unPuntodeCasodeUsotoma28horashombre. Si el total es mayor o igual que 5, se recomienda efectuar cambios en el proyecto, ya que se consideraqueelriesgodefracasodelmismoesdemasiadoalto. 184
Ingeniera de Sistemas Informticos

Valor Comentario Asignado FamiliaridadconelModelodelProyecto 3 EstFamiliarizadoconelModelo utilizado Experienciaenlaaplicacin 4 Se ha trabajado desde el inicio de la aplicacin Experiencia en Teora Orientada a 5 Setieneunafuertepreparacin Objetos CapacidaddelAnalistaLder 3 Elprincipianteperotienelaespecialidad Motivacin de los involucrados en el 5 Se tiene una gran motivacin para el Desarrollo desarrollodelaaplicacin Estabilidaddelosrequisitos 2 Seesperancambios PersonalTiempoParcial(PartTime) 0 La persona ser la encargada de llevar el desarrollohastalafinalizacin DificultaddelLenguajedeProgramacin 3 SeusarellenguajeC#

Universidad Privada del Valle Unidad Acadmica Sucre

Por esta teora, se determina que cada Punto de Caso de Uso tendr 20 horashombre para nuestro ejemplodedesarrollo. Paracalcularelesfuerzosedebeaplicarlasiguienteecuacin: E=UCP*CF Donde: EeselEsfuerzo CFesFactordeConversin UCPesCasosdeUsoAjustados ElFactordeConversinser20horashombre Sedebetomarencuentaquelosclculoshechosparaestimardeesfuerzosolopertenecenalapartedel ciclodevidadelaimplementacinocodificacin.Paraunaestimacinmscompletadeladuracintotal delproyecto,hayqueagregaralaestimacindelesfuerzoobtenidaporlosPuntos deCasosdeUso,las estimaciones de esfuerzo de las dems actividades relacionadas con el desarrollo de software. Para ello se puede tener en cuenta el siguiente criterio, que estadsticamente se considera aceptable. El criterio plantea la distribucin del esfuerzo entre las diferentes actividades de un proyecto, segn la siguiente aproximacin: Actividad Porcentaje(%) Anlisis 10 Diseo 20 Programacin 40 Prueba 15 Sobrecarga(otrasactividades) 15 Tabla5.Porcentajesqueinvolucraneltiempodedesarrollo Estosporcentajespuedenvariaseconsiderandolaexperienciaquesetengaeneldesarrolloysedebe justificarlavariacin. Paraelejemploqueseestdesarrollandoelclculodelesfuerzoser: E=72.16*20 E=1443.204HorasHombre Sisetomaencuentaquesetrabaja8horasdiariasy20dasalmessetardaraenimplementaresta aplicacin9mesesparaunasolapersona. Paracalculareltotaldelesfuerzosedebecalcular,porunaregladetreslasotrasfases. Actividad Porcentaje Anlisis 360.801 185
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Diseo Programacin Prueba SobreCarga(OtrasActividades) TOTAL

721.602 1443.204 541.2015 541.2015 3608.01

Sisetomaquesetrabaja8horasalday20dasalmeseltiempototalparaeldesarrollo22meses. Bastantetiempoparaunasolapersona. Pero si se trabaja en equipo, por lo menos cuatro personas que se encarguen de las primeras cuatro actividades,eltiempodedesarrolloseriade5meses. Para calcular el costo de desarrollo se toma como parmetro el sueldo mnimo nacional que es de Bs. 500.EstosignificaqueporhorasepagaBs.3.Simultiplicamoseltotaldelesfuerzoporelvalorporhora elresultadoseraBs.10824.03. De esta forma se ha culminado la estimacin del Esfuerzo, Costo y Tiempo. Como se puede entender es importante tener una experiencia alta para realizar la estimacin del numero de transacciones por cada casosdeuso,ademsdedefinircorrectamentelospesosdelosfactores. Un detalle que nos lleva a reflexionar es el monto del salario mnimo nacional utilizado en el clculo anterior. Si se hace una estimacin solo se gana Bs. 25 por da trabajado. Se gana menos que una personaquerealizaactividadestcnicas,yaqueestaspersonastienenunpagodeBs.50porda.Siendo una actividad muy compleja el desarrollar software, como se ha descrito en estos documentos, no es posiblequeseganepordaBs.25.Aunquemuchosdirnqueesfcilhoyenda,implementarsoftware, perosurgenpreguntasAqucosto?AquCalidad?CuntodurarelSoftware?Lapersonaqueha desarrollado software se convertir en un activo fijo en la organizacin? Es claro que surgen ms preguntas,alascualessedeberesponderconclaridad. Una vez determinado el esfuerzo, tiempo y costo, podemos realizar una planificacin de las actividades principales del desarrollo de software. Este texto no entra en detalles de la planificacin de las actividadesdelDesarrollodeSoftware.Sinembargo,semuestraenloscuadrossiguientesunejemplode planificacin de un proyecto. No se debe olvidar que la planificacin es un proceso que va desde la determinacindelasactividadespasandoporladefinicindelosriesgoshastalagestindelproyecto. EJEMPLODEPLANDEPROYECTODESOFTWARE

186
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

187
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

188
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

En el siguiente documento se determinan los requisitos no funcionales de la aplicacin, los cuales sern losquehablendelaaplicacindesarrollada.

189
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DETERMINACINDELOSREQUISITOSNOFUNCIONALESDELAAPLICACIN Se debe definir los requisitos no funcionales del software a desarrollar. Implica la determinacin de los atributos no funcionales asociadas a las facilidades, funcionalidades y de caractersticas generales del software como controles necesarios para garantizar la confiabilidad del sistema, seguridad propuesta, requisitos de la calidad, interfaces con otros sistemas de procesamiento manual o automatizado, ambientedesoftwareyhardware. Para la definicin de los requisitos no funcionales se utilizar la clasificacin de la Norma ISO9126 (2000), el modelo de calidad que clasifica los atributos de la calidad del software en seis caractersticas, quesonademsdivididasensubcaractersticas.Elefectocombinadodelascaractersticasdecalidadde softwareparaelusuariosedefinecomolacalidadeneluso.Lascaractersticasdefinidassonaplicablesa todo tipo de software. La ISO 9126 permite especificar y evaluar la calidad del producto de software desde las perspectivas diferentes, asociados con la adquisicin, regulacin, desarrollo, uso, evaluacin, apoyo, mantenimiento, aseguramiento de la calidad y auditora del software. El modelo de calidad definidopuedeusarsepara: Validarlaintegridaddeladefinicindelosrequisitos; Identificar los requisitos no funcionales del software (Este punto es el que interesa para este documento); Identificarlosobjetivosdeldiseodelsoftware; Identificarlosobjetivosdepruebadelsoftware; Identificarelcriteriodeaceptacindeusuarioparaunproductodesoftwarecompleto. Lasseiscaractersticasson: Funcionalidad. La capacidad del software para proporcionar funciones que satisfacen las necesidadesdeclaradaseimplcitascuandoelsoftwareseusabajolascondicionesespecificadas. Estacaractersticaestrelacionadaconloquehaceelsoftwareparasatisfacerlasnecesidades. o La Idoneidad. La capacidad del software para mantener un conjunto apropiado de funcionesparalastareasespecificadasylosobjetivosdelusuario. o La Precisin. La capacidad del software para proporcionar efectos o resultados correctos oconvenidosenclculosyresultados. o La Interoperabilidad. La capacidad del software para actuar recprocamente con uno o ms sistemas especificados. La interoperabilidad se usa en lugar de la compatibilidad paraevitarlaposibleambigedad o La Seguridad. La capacidad del software para proteger informacin y los datos, para que personas o sistemas desautorizados no puedan leer o pueden modificar los mismos, y a las personas o sistemas autorizados no les sea denegado el acceso a ellos. Debe aplicarse alosdatosentransmisin.Debetomarseencuentaparalaaplicacincompleta o LaConformidad.Lacapacidaddelsoftwareparaadherirsealasnormasqueseleapliquen ,convenciones,regulaciones,leyesylasprescripcionessimilares Confiabilidad. La capacidad del software paramantener su nivel de ejecucin cuando se usa bajo lascondicionesespecificadas.Elsobreusooelenvejecimientonoocurreenelsoftware 190
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

o La Madurez. Capacidad del software de evitar errores como resultado de haberse producidounfallodelsoftware o La Tolerancia ante fallos. Capacidad del software de mantener un nivel de ejecucin especfico en caso de fallos del software o de infraccin de sus interfaces especificadas. Unniveldeejecucinespecficopuedeincluirlafaltalacapacidadsegura o La facilidad de restablecer. Capacidad del software de restablecer su nivel de ejecucin y recobrarlosdatosdirectamenteafectadosencasodeavera. Facilidad de Uso. La capacidad del software ser comprendido, aprendido, utilizado y de ser amigableparaelusuario,cuandoseempleebajolascondicionesespecificadas. o La Facilidad de Comprensin. La capacidad del producto de software para permitirle al usuario entender si el software es conveniente, y cmo puede usarse para las tareas particulares y condiciones de uso. Esto depender de la documentacin y la impresin inicialdadaporelsoftware. o La Facilidad Cognoscitiva. La capacidad del producto del software para permitirle al usuarioaprendersuaplicacin. o La Operabilidad. La capacidad del producto del software para permitirle al usuario operarlo y controlarlo. Operabilidad corresponde a la capacidad de ser controlado, la toleranciaanteerroresylaconformidadconlasexpectativasdelusuario o LaAtraccin.Lacapacidaddelproductodelsoftwaredeseramigableparaelusuario.Esto se refiere a los atributos del software que se aplican para hacerel software ms atractivo alusuario. Eficiencia. La capacidaddel software para proporcionar la requeridaejecucin, en relacin con la cantidadderecursosusados,bajolascondicionesdeclaradas. o El cronocomportamiento. La capacidad del software para proporcionar una respuesta apropiada y los tiempos de procesamiento y tasas de rendimiento de procesamiento al realizarsufuncin,bajocondicionesdeclaradas. o LaUtilizacindelosRecursos.Lacapacidaddelsoftwareparausarlosrecursosapropiados en un plazo de tiempo adecuado cuando el software realiza su funcin bajo las condicionesdeclaradas Facilidad de mantenimiento. La capacidad del software de ser modificado. Las modificaciones puedenincluirlascorrecciones,mejorasoadaptacindelsoftwarealoscambiosenelambiente, yenlosrequisitosylasespecificacionesfuncionales. o La Facilidad de Diagnostico. La capacidad del producto del software ser diagnosticado para detectar deficiencias o causas de defectos o errores en el software y detectar a las partesparasermodificadasparaseridentificadas o La Mutabilidad. La capacidad del producto del software para permitir llevar a cabo una modificacin especificada. Incluye la codificacin, diseo y documentacin de los cambios. o La Estabilidad. La capacidad del software para minimizar los efectos inesperados de las modificacionesdelsoftware. o LafacilidaddeComparacin.Lacapacidaddelproductodelsoftwareparapermitirvalidar elsoftwaremodificado Portabilidad. Capacidad de software ser transferido de un ambiente a otro. El ambiente puede incluirelambientedelsoftware,delhardwareuorganizacional o La facilidad de adaptacin. La capacidad del software de ser modificado para los ambientes especificados sin aplicar acciones o medios de otra manera que aquellos 191

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

suministrados con este propsito para el software considerado. Adaptabilidad incluye el escalado de la capacidad interna (por ejemplo los campos de la pantalla, las tablas, los volmenesdetransaccinolosformatosdeinformes.). o La facilidad de Instalacin. La capacidad del software ser instalado en un ambiente especificado o Lacoexistencia.Lacapacidaddelsoftwareparacoexistirconotrosoftwareindependiente enunambientecomnquecompartelosrecursoscomunes o La facilidad de Reemplazo. La capacidad del software ser usado en lugar de otro software especificado en el ambiente de ese software. Se usa en lugar de la compatibilidad para evitarlaposibleambigedadconelinteroperabilidad. Como se puede comprender, sobre estas caractersticas o atributos del software, es muy importante tenerlas muy en cuenta y definirlas. Es claro que para un determinado software se seleccionan algunas deestascaractersticas,estosedebeagranvariedaddetiposdesoftwarequesepuedendesarrollar,no es lo mismo desarrollar un editor de texto que una aplicacin de gestin de informacin. Pero al seleccionar, estos atributos, implica un compromiso de demostrar al final del desarrollo que se ha llegado a una conformidad exitosa de estas. En prximos textos se hablar de mtricas de software que ayudanavalidarelsoftwaresobrelascaractersticasdefinidasyelcmoevaluar. Para este documento, la visin de la utilizacin de estas caractersticas es poder identificar a los requisitos no funcionales de la aplicacin que se est modelando. De este modo se definir algunas de las caractersticas que a consideracin del Grupo de Investigacin corresponden para la aplicacin Hotelera. REQUISITOSNOFUNCIONALESPARALAAPLICACIN FUNCIONALIDAD La Idoneidad. La aplicacin debe proporcionar opciones bien descritas para los usuarios, explicandolaoperacinquesepuederealizar. La Precisin. Debe proporcionar al usuario opciones que permiten realizar el trabajo y deben estar correctamente descritas y debe existir una orientacin para cada una de ellas. No debe presentarsealusuarioopcionesrestringidas La Seguridad. El acceso a la aplicacin debe estar controlada por una contrasea y nombre de usuario.Lacontraseadebeestarprotegidadeacuerdoaunalgoritmodeencriptacinaunnivel internacional,correctamentedocumentado.Debegarantizarsequelainformacintransmitidano puedasercapturadaointerpretada. CONFIABILIDAD. La Madurez. Debe presentarse al usuario informacin sobre los errores que comete al utilizar al aplicacin, estos errores deben estar bien identificados y en el idioma Espaol. Los mensajes de 192
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

error deben contar con una ayuda para orientar al usuario en su trabajo as no cometer reiteradamenteelmismoerror,ademsdebeexistirunaexplicacindelporqudelerror. FACILIDADDEUSO. La Facilidad de Comprensin. La aplicacin debe ayudar al trabajo o al inters del usuario. Debe explicarse de una manera correcta las distintas opciones que le permite la aplicacin o una determinadainterfaz.Cadaopcindebeescribirsedeformacompleta La Facilidad Cognoscitiva. Debe considerarse imgenes para la mejor comprensin y aprendizaje delaaplicacin,tomandoencuentaeltiempodeejecucin. La Atraccin. Debe definirse un estndar de interfaz tomando en cuenta los colores de la institucin y los colores de la empresa que desarrolla la aplicacin, ya que con estas dos combinaciones se tiene la probabilidad de que el usurario este cmodamente trabajando con la aplicacin. No se debe olvidar el estndar que proporciona la interfaz Windows y el diseo de interfazquemuestraMicrosoftparalaspginasWeb. EFICIENCIA. La Utilizacin de los Recursoss. Debe utilizarse procedimientos almacenados bsicos, que no tengan ms de una sentencia, esto para el acceso a la base de datos. Los filtros de bsquedas o lgicadelnegocioparalosdatosdebeimplementarseenlacapadenegocio. FACILIDADDEMANTENIMIENTO. LaFacilidaddeDiagnostico.DeberealizarselaPruebaconlaayudadeloscasosdeusodeprueba. Deestaformagarantizarelbuenfuncionamientodelaaplicacin. PORTABILIDAD. Lafacilidaddeadaptacin.Sedebeutilizarunmarcodetrabajoquegaranticeunmantenimiento respecto a la tecnologa que pueda aparecer y a los paradigmas de desarrollo de interfaz. Adems, la interfaz a desarrollar debe ser probada en distintos escenarios de navegadores y/o computadoras,paradeestaformagarantizarlaadaptacindelaaplicacin. La facilidad de Instalacin. Debe crearse para la aplicacin un paquete de instalacin con su respectivo manual para que los encargados de la aplicacin puedan restablecer con bastante rapidez la aplicacin, debe tomarse en cuenta que pude ser ms de un instalador ya que la aplicacin est orientada a los Servicios. Solo se tomar en cuenta la tecnologa Windows para desarrollarelpaquetedeinstalacin. La coexistencia. Debe poderse instalar en una sola computadora toda la aplicacin, ya sea los ServiciosWebcomolasAplicacionesWeb.Pero,debentenercaractersticasindependientes. DeestaformasehaespecificadolosRequisitosNoFuncionalesparalaaplicacindeHotel. Comosehadichoanteriormente,aldescribirlosatributossellegaauncompromisodecumplimientode cadaunodeestos.Estetextonodemostrarelcumplimientodeestosyaquesetienequeestudiarparte delateoradeMedicionesyMtricasenelSoftware. 193
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Luego de determinar y explicar cmo tiene que llevarse a cabo los requisitos no funcionales se deben realizarvariasactividadesadicionalessonlassiguientes: Determinarlaimportanciayelriesgo Separarenciclos(Priorizar). Determinarlospaquetes Detallardeformaexpandida(completa)

DETERMINARLAIMPORTANCIAYELRIESGO Para realizar estas dos tareas, las cuales se las puede llevar conjuntamente se debe realizar un anlisis porcadacasodeusoydeterminarlaimportanciaquetieneenlaaplicacin,sepuedeutilizarunaescala del 1 al 5, donde 5 es ms significativo. Esto se realiza para determinar parte del dominio del riego por requisito y determinar cual caso de uso debe ser ms estudiado para no tener dificultades. Luego se determina el total del dominio de riesgo por cada caso de uso, para esto se realiza un estudio del flujo bsico de cada caso de uso y los procesos de la empresa a travs del los diagrama de actividad. El riego es considerado como el cambio que se puede producir en el requisito. Muchos de los requisitos (casos de uso) pueden cambiar en su flujo bsico de interaccin con el usuario o que la empresa cambie sus procesos que van a influenciar al requisito, este cambio implica un cambio total en todas las etapas. Por este motivo es muy importante determinar el riesgo de cada caso de uso. El riesgo y la importancia que sedeterminenpermitirnrealizarunseguimientocorrectoaloscasosdeuso. Enestetextonosevecomollevaracaboestastareas. SEPARARENCICLOSDEDESARROLLO. Una vez determinada la importancia de los casos de uso se pueden separar por ciclos de desarrollo. Un ciclo de desarrollo ser llevado a cabo de principio a fin, logrando en su finalizacin un producto que funcione y que este probado. Cada ciclo, que est compuesto por casos de uso, seguir un ciclo de vida delproducto. Acontinuacinseveunejemplodecmosehadeterminadolosciclosdedesarrollo. Se ve en la Figura 1 un diagrama de casos de uso que corresponde a una aplicacin que distribuye productosdetodotipo.

194
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Autenticar Cambiar Contrasea


(f rom Cambiar Contrasea) (f rom Autenticar)

Registar Horas de Trabajo


(f rom Registrar Horas de Trabajo)

Gestionar Ventas
(f rom Gestionar Ventas)

Gestionar Reportes de Personal


(f rom Gestionar Reportes de Personal)

Personal Usuario Asi gnar Movil idad


(f rom Asignar Mov ilidad)
(from Actors) (from Actors)

Gestionar Reportes de Cliente Asi gnar Ruta


(f rom Asignar Ruta)

Contador
(from Actors)

(f rom Gestionar Reportes de Cliente)

Gestionar Rutas
(f rom Gestionar Rutas)

Gestionar Reportes de Ingreso de Producto


(f rom Gestionar Reportes de Ingresos Producto)

Gestionar Gastos
(f rom Gestionar Gastos)

Gestionar Reportes de Ventas


(f rom Gestionar Reportes de Ventas)

Administrador Gestionar Reportes de Rutas


(f rom Gestionar Reportes de Rutas)
(from Actors)

Gestionar Ingresos de Producto Gestionar Producto


(f rom Gestionar Producto) (f rom Gestionar Ingresos de Producto)

Gestionar Reportes de Gastos


(f rom Gestionar Reportes de Gastos)

Gestionar Reportes de Di stribuidores Asi gnar Activo Solicitar Pedido a los Distribui dores
(f rom Asignar Activ o) (f rom Solicitar Pedido a los Distribuidores) (f rom Gestionar Reportes de Distribuidores)

Gestionar Personal
(f rom Gestionar Personal)

Gestionar Distribuidores
(f rom Gestionar Distribuidores)

Gestionar Reportes de Activo Fijo Gestionar Cliente Gestionar Activo Fij o


(f rom Gestionar Activ o Fijo) (f rom Gestionar Cliente) (f rom Gestionar Reportes de Activ o Fijo)

Figura1.DiagramadeCasosdeUsoDistribucindeProductos LaFigura2muestraelPrimerCiclodedesarrollo

Cambiar Contrasea
(from Cambiar Contrasea)

Autenticar
(from Autenticar)

Personal
(f rom Actors)

Gestionar Distribuidores
(from Gestionar Di stribuidores)

Gestionar Ingresos de Producto


(from Gestionar Ingresos de Producto)

Usuario
(f rom Actors)

Gestionar Ventas
(from Gestionar Ventas)

Administrador
(f rom Actors)

Gestionar Producto
(from Gestionar Producto)

Contador
(f rom Actors)

Solicitar Pedido a los Distribuidores


(from Soli citar Pedido a los Distribuidores)

Gestionar Personal
(from Gestionar Personal)

Gestionar Cliente
(from Gestionar Cl iente)

Gestionar Reportes de Ventas


(from Gestionar Reportes de Ventas)

Figura2.PrimerCiclodeDesarrollo

195
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Enlasiguientefigura,Figura3,seveelSegundociclo.

Administrador
(f rom Actors)

Asignar Activo
(from Asignar Acti vo)

Gestionar Rutas
(from Gesti onar Rutas)

Gestionar Reportes de Activo Fijo Asignar Ruta


(from Asignar Ruta)

(from Gesti onar Reportes de Acti vo Fi jo) (from Gesti onar Activo Fijo)

Gestionar Activo Fijo

Asignar Movilidad
(from Asignar M ovil idad)

Contador
(f rom Actors)

Gestionar Reportes de Cliente Gestionar Reportes de Ingreso de Producto


(from Gesti onar Reportes de Ingresos Producto) (from Gesti onar Reportes de Cl iente)

Gestionar Reportes de Distribuidores


(from Gestionar Reportes de Di stribuidores)

Figura3.SegundoCiclodeDesarrollo LasiguienteFigura3muestraelltimociclodedesarrollo.

Contador
(f rom Actors)

Gestionar Gastos
(from Gestionar Gastos)

Registar Horas de Trabajo


(from Registrar Horas de Trabaj o)

Gestionar Reportes de Gastos Gestionar Reportes de Personal


(from Gestionar Reportes de Personal) (from Gestionar Reportes de Gastos)

Gestionar Reportes de Rutas


(from Gestionar Reportes de Rutas)

Administrador
(f rom Actors)

196
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Figura4.TercerCiclodeDesarrollo Comosepuedeobservar,cadaciclorepresentapartedelasfuncionalidadesfuturasdelaaplicacindela aplicacinqueseirnconstruyendo. Acontinuacin,sellevaacaboelanlisisdelosciclosparalaaplicacinquesirvedeemplo. LaPantalla1eselresultadodeldesarrollodelDiagramadeCasosdeUso,elcualnoservirparaanalizar losciclosdedesarrollo.

Pantalla1.DiagramadeCasosdeUso

Existen muchas alternativas para definir los ciclos de desarrollo. Se puede dividir en ciclo de desarrollo, porejemplo,porActordelaaplicacin,esdecirtenercuatrociclosdedesarrollo,queserian: - PrimerCiclo:GestionarEmpleados,GestionarBebidas,GestionarCocina. - SegundoCiclodeDesarrollo:CUReservarHabitacin,CUConfirmarReserva,CUSalirdelHotel. - TercerCiclodeDesarrollo:CambiarContrasea,AutenticarEmpleado. - Cuarto Ciclo de Desarrollo: CU Registrar Solicitud de Servicio a la Habitacin, CU Registrar SolicituddeServicioBsico. 197
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Tambin, se puede dividir por funcionalidad de los casos de uso, es decir, los que estn relacionados pararealizarunaactividadcompleta,porejemplo: - PrimerCiclodeDesarrollo:GestionarEmpleados,AutenticarEmpleado,CambiarContrasea. - SegundoCiclodeDesarrollo:CUReservarHabitacin,CUConfirmarReserva,SalirHotel. - TercerCiclodeDesarrollo:GestionarBebidas,GestionarCocina,CURegistrarSolicituddeServicio Bsico,CURegistrarSolicituddeServicioalaHabitacin. Como se puede ver, en los dos casos, al final de cada ciclo el resultado debe ser una aplicacin que pueda realizar algunas de las tareas necesarias para el usuario. Dentro del primer ciclo se debe seleccionar a los casos de uso que sean independientes, con poco acoplamiento entre los otros. Por ejemplo, para reservar una habitacin, el Empleado debe estar autenticado y tener autorizacin para realizar esta actividad, caso contrario no se podra reserva la habitacin, por este motivo es necesario desarrollar el primero el caso de uso que es Gestionar Empleado, luego Autenticar Empleado y Cambiar Contrasea.Estetipodeanlisissedeberealizarparadeterminarcadaciclodedesarrollo. Paraelejemplodedesarrollo,setomalasegundaopcindedivisindeciclos.Comosepuedeverenlas siguientesPantallas,sehadivididoporciclo. ElprimerCicloadesarrollarsepudeverenlaPantalla2.

Pantalla2.PrimerCiclodeDesarrollo ElSegundoCiclodeDesarrollosepuedeverenlaPantalla3.

198
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla3.SegundoCiclodeDesarrollo ElTercerCiclodeDesarrollosepuedeverenlaPantalla4.

Pantalla4.TercerCiclodeDesarrollo Cadaunodeestosciclostendrlassiguientescaractersticas(Ejemplo):

199
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Planificacinparallevaracaboeldesarrolloporcadacasodeuso Asignacindepersonasparaeldesarrollo Planderevisiones Plandeintegracin LadisciplinadeAnlisissiesquesedebehacer LaDisciplinadediseo LaDisciplinadeImplementacin LadisciplinadePrueba

Cadacicloquesedeterminetendrmuchosartefactosqueleacompaen,estoimplicarealizartodaslas actividades del desarrollo de software. En el texto no se llevar a cabo el desarrollo por ciclos, solo se utilizaradoscasosdeusoquepermitanejemplificaralgunasdelasactividadesnecesariasparateneruna aplicacin. Los otros dos puntos de Determinar los Paquetes y Detallar de forma Expandida se vern con mayor detalleenlosprximosdocumentos.

200
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

FLUJODEANLISIS:DESCRIPCINDETALLADECASOSDEUSO En este documento iniciaremos el desarrollo de la aplicacin de forma interna, pensando en el desarrolladoryyanoenlainteraccindelActor(Usuario)conlaaplicacin. INTRODUCCIN. Dentro la documentacin de RUP (Rational Unified Process), existe la disciplina de Anlisis y Diseo, la cual tiene como objetivo la traduccin de las distintas interacciones entre el actor y la aplicacin (RequisitosexpresadosenCasosdeUso)aunlenguajedeprogramador,estopermitirunacomprensin ms clara de los requisitos capturados y descritos hacia los analistas y diseadores. Para realizar esta traduccin se debe entender muy bien los requisitos de la aplicacin (Casos de Uso) y transformarlos de unamaneraptimaparacumplirconlosobjetivosdelproyecto. Uno de los objetivos fundamentales del anlisis es transformar los requisitos en forma de mapa, permitiendo describir una solucin compuesta por objetos (clases), adems entender correctamente el problema que implicar el desarrollo de la aplicacin. Para esto se toman en cuenta los requisitos funciones y algunos no funcionales para realizar la transformacin. El anlisis se centra en la comprensindelosrequisitosfuncionalesporpartedelosdesarrolladores. Otros autores sealan que el anlisis es el descubrimiento del comportamiento de la aplicacin para luegodecidircmosermanejada.Senecesitadescomponerlosrequisitosenloselementosyrelaciones esenciales, los cuales sern la base de la solucin. El anlisis es el primer paso para poder expresar el mundocomoobjeto. Elanlisissedesarrollacuandoexiste: Una incertidumbre sobre la tecnologa que servir para la implementacin e implantacin de la aplicacin. Si los riesgos de los requisitos y del proyecto son muy elevados. Se entiende Riesgos de Requisitos como la inestabilidad de los estos, que puedan cambiar en el proceso de desarrollo y enlavidadelsoftware. Cuando se necesita implementar en distintas plataformas, arquitecturas, marcos de trabajo, hardware,nivelesdeseguridad,entresotros.

No es necesario desarrollar el Anlisis, slo se realiza cuando existen las condiciones sealadas anteriormente. Tambin, uno de los objetivos importantes del anlisis es mantener el software para incrementar su vida de productividad, este mantenimiento es necesario ya que la tecnologa va cambiandomuyrpidamente,estoimplicarealizarcambiosenelsoftware. En el desarrollo del anlisis no debe tomarse en cuenta la tecnologa como: Lenguajes de Programacin, Hardware, Plataforma de desarrollo, entre otras. Todas estas se deben emplear en el Diseo y la Implementacindelaaplicacin. Existen dos partes dentro del modelo de anlisis, una es denominada Esttica a la cual corresponde el diagramadeclasesylaotraeslaDinmicaqueserepresentapormediodeldiagramadeColaboracino, denominadotambin,deComunicacin. DentrodelAnlisisexistendosentradasfundamentalesyson:

201
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

El Modelo del negocio. Contiene la descripcin de los flujos de informacin del contexto del negocio,paraesto,seutilizaloscasosdeusodelnegocioconsurespectivadescripcinpormedio deldiagramadeactividad. ElModelodeCasosdeuso.Esunavistaexternadelaaplicacin,paraestoseutilizanloscasosde uso de la aplicacin y su descripcin de forma detallada, permitiendo explicar la interaccin del actorconlaaplicacin.

Estasentradassontransformadaspormediodeunmodelodeobjeto,yaseaporundiagramadeclaseso por un diagrama de comunicacin. La mayor parte de los objetos que se descubren en esta etapa corresponden a los objetos o a los conceptos fsicos en el del mundo real. Una vez que se tiene un modelo de objetos, por medio de una revisin se garantizar que este modelo de la solucin sea el que sebusca. Unavezfinalizadoelanlisissegarantizaquelosrequisitosdelaaplicacinyelcontextodenegociohan sido entendidos correctamente. Por medio de una revisin, se debe garantizar este ltimo punto sobre elanlisis. AcontinuacinseveunresumensobrelosCasosdeUsoyelAnlisis. ModelodeCasosdeUso 1.Lenguajecliente. ModeloAnlisis 1.Lenguajedesarrollador.

2. Por cada caso de uso se ve una vista 2.Clasesypaquetes,vistainterna. externadelaaplicacin. 3.Contratoconelclienteydesarrolladores. 3. Para mejor comprensin de los requisitos de la aplicacin hacia los desarrolladores.

4. Puede contener redundancias inconsistenciasentrerequisitos.

e 4. No debe contener redundancias e inconsistenciasentrerequisitos.

5. Captura qu funcionalidad debe tener el 5. Esboza cmo llevar a cabo esa sistema, incluida la significativa para la funcionalidad.Primeraaproximacinal arquitectura. diseo. 6. Define un caso de uso que se analizar 6. Define realizacionesde casos deuso con ms profundidad en el modelo de y cada una de estas representa el anlisis. anlisisdeuncasodeuso. El primer paso para iniciar el anlisis es la descripcin de los casos de uso en una forma completa (Expandida)utilizandounaplantillaparadescribircadaunadelasinteraccionesentreelactor(usuario)y laaplicacin.Deestaformainiciarlatransformacin Laplantillaqueseutilizaparadescribirauncasodeusoeslasiguiente: 202
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

CasodeUso Actores Resumen Responsabilidades CUasociados Precondiciones

Nombredelcasodeuso Actores BrevedescripcindeloquehaceelCU Responsabilidades del CU. Todo las metas que debe cumplir el casodeuso NombredelosCUasociadosconeltipodeasociacin (include,extend,generalizacin) Lo que se necesita para que se pueda ejecutar el CU. Debe describirselospasosanterioresquesonunacondicinparaqueel casodeusoseejecute Descripcin RespuestadelSistema

AccindelActor(es)

Interfaz (Pantallas enumeradas con sus componentes). Esta interfaz no es ms que un prototipo. Una herramienta de software recomendada para realizar el prototipo de interfazesMicrosoftVisio,elcualpermitedibujarconfacilidadlaposibleinterfaz. Se realiza el desarrollo del prototipo de interfaz, para que el futuro usuario de la aplicacinentiendalainteraccinconlacomputadora.Otrajustificacineslarevisinde la lgica y completitud de la interfaz, que ser realizada por el futuro usuario, el equipo de diseadores y con el especificador de casos de uso, para lograr una completa ergonoma. Otro detalle sobre este punto, es la Facilidad de Uso. Esto quiere decir, que es el momento de iniciar la implementacin del estudio realizado para la facilidad de uso, tratando de lograr un equilibrio entre el uso de la tecnologa y la completitud de las necesidadesdelusuario. <Descripcindelflujo normaldeeventos> SeccinNombredelaSeccin(encasodequeexista) Interfaz(Relacionadaconlaseccin) <Descripcindelflujonormal deeventosdelaseccin> TextosAlternos Especificarlalneaenqueocurre,tantodelflujonormaldeeventosdelcasodeuso comodelassecciones Requisitosno Funcionales Postcondiciones Especificarsuclasificacin

Loqueresultadelcasodeusoespecificandolosposiblesestados finales Tabla1.PlantillaparaladescripcindeunCasodeUso SeveacontinuacinalgunosejemplosdelautilizacindelaplantilladescritaenlaTabla1.

Ejemplo1.
CasodeUso RegistrarTrabajodeImpresin 203
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Actores Resumen

Usuario(Caja,Encargado) Elcasodeusoseiniciacuandoelusuariodeberegistraruna trabajodeimpresinporsolicituddeunapersona (Funcionario,DocenteoUniversitario),elTrabajodeImpresin puedeserdedostipoenunaimpresoraoenunplotter. Seleccindeunapersona Registrarlacantidaddehojasaimprimir MostrarDeudadelapersonadetrabajosanteriores Calcularelcostodeltrabajodeimpresin Elusuariodebeestarautenticadoyautorizado Descripcin AccindelActor(es) RespuestadelaAplicacin 2.Laaplicacinleproporcionaunaun interfazquepermitebuscarauna personayaseaporsunombreoporsu carnetcomosepuedeverenlaPantalla 1(A)(B). 5.Muestraunalistadeposiblespersonas quetenganunasimilitudconelcarnet universitariooconelnombre(D) 7.ActivaelRegistrodeImpresin 8.MuestralafotografadelaPersona(K) 9.ActivaelbotndeDatosAdicionales dePersona(J).VerSeccinDatos Adicionales 13.ProporcionaelMontoaPagarporel trabajodeimpresin 15.Proporcionaunmensajede conformidadparaelregistrode impresin.Elmensajeeselsiguiente:Se haregistradounnuevoTrabajode Impresin

Responsabilidades

CUasociados Precondiciones

1.ElcasodeusoiniciacuandoelUsuario necesitaregistraruntrabajodeimpresin solicitadoporunaPersona 3.IntroduceelCarnetUniversitarioo partedelNombre(A)o(B) 4.RealizaunClicenelBotnBuscar(C) 6.SeleccionaaunaPersona 10.Debeseleccionareltipodeimpresin quedesealaPersona,yaseaen ImpresoraoenPloter(E) 11.Debeintroducirlacantidaddehojas (F) 12.Deberealizarunclicenelbotn RegistrarTrabajo(G) 14.Deberealizarunclicenelbotnde Pagarparaqueseregistreelpagodel trabajodeimpresin.

204
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla1 SeccinDatosAdicionales 1.ElUsuariorealizaunClicenelbotn DatosAdicionalesdePersona(J) 2.Proporcionalosdatosadicionalesdela Persona(L)Pantalla1:TipoPersona (Funcionario,Docente,Universitario), Direccin,TelfonoDomicilio,Telfono Oficina,Celular,CorreoElectronico, CarnetIdentidad,Cargo,Nombre DepartamentodeTrabajo.

TextosAlternos Paso5.Elsistemamuestraunmensajesinoexisteunasimilitudconelcarnetoconel nombredelapersona.Elmensajeeselsiguiente:Noexistelapersona Paso12.Elsistemamuestraunmensajesilaintroduccindelacantidaddehojasson letras,esunnmeronegativoounnmerodetiporeal.Elmensajeeselsiguiente: ExisteunerrorenlaCantidaddeHojas Requisitosno Funcionales Postcondiciones Almomentodecargarlafotografanodebetardarmsdedos segundos Seregistrarunnuevotrabajodeimpresin.

Ejemplo2.
Casodeuso Actualizarcliente 205
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Actor(es) Propsito Resumen

DirectordeCuenta Manteneractualizadoslosregistrosdeclientes. ElcasodeusoseiniciacuandoelDirectordeCuentarequiereactualizar elregistrodelclienteexistente.DeacuerdoasuRequisitoagrega, modifica,eliminaoimprimelainformacinnecesaria,grabala informacinyelregistrodelclientequedaactualizado. Adicionar,modificar,eliminareimprimirclientesdelregistrodeclientes ElDirectordeCuentahaingresadoalsistemayseencuentraenelmen principal. RespuestadelSistema

Responsabilidades Precondiciones

AccindelActor

Pantalla1 1. ElDirectordeCuentaseleccionala opcinServiciosGerencialesyla subopcinActualizarClientes. 3. ElDirectordeCuentaeligela operacinarealizar. 2. ElsistemamuestralaPantalla1ypresentalalista delosclientesregistradosregistrados(A). 4. a. ParaagregarunclienteverseccinAgregar Cliente. b. Paramodificarunclienteverseccin ModificarCliente. c. ParaeliminarunclienteverseccinEliminar Cliente. d. ParaimprimirunclienteverseccinImprimir 206
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Cliente. 5. ElDirectordeCuentaseleccionala opcinSalir(F). SeccinAgregarClientes 6.ElsistemacierralaPantalla1ypresentaelmen principal.

Pantalla2 1. ElDirectordeCuentaseleccionala opcinAgregar(BenPantalla1). 2. Elsistemageneraunnuevocdigodeclientey presentalaPantalla2conelcdigodelcliente (G)ygeneraunformatoenblancoconelrestode losdatos:RazonSocial(H),Ruc(I),Giro(J),Tipo(K), Direccin(L),Distrito(M),Telfono(N),Fax(O), ContactoNombre(P),ContactoCargo(Q), ContactoArea(R).

3. ElDirectordeCuentaingresalos 5. Elsistemavalidalosdatosingresadosybuscasi existeunclienteconlosmismosdatos. datosdelcliente:RazonSocial(H), Ruc(I),Giro(J),Tipo(K),Direccin(L), 6. Elsistemacreaunnuevoregistrodelcliente. Distrito(M),Telfono(N),Fax(O), 7. ElsistemacierralaPantalla2ymuestrala ContactoNombre(P), Pantalla1conlalistadeclientesactualizada. ContactoCargo(Q),ContactoArea (R). 4. ElDirectordeCuentaseleccionala opcinAceptar(S). SeccinModificarClientes 207
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

1.ElDirectordeCuentaseleccionael clientequedeseamodificar(Aen Pantalla1). 2. ElDirectordeCuentaseleccionala opcinModificar(CenPantalla1).

3.ElsistemamuestralaPantalla2conlosdatosdel clienteseleccionado:Cdigo(G),RazonSocial(H), Ruc(I),Giro(J),Tipo(K),Direccin(L),Distrito(M), Telfono(N),Fax(O),ContactoNombre(P), ContactoCargo(Q),ContactoArea(R).

4.ElDirectordeCuentamodificalos 6. Elsistemavalidalosdatosmodificadosybuscasi datosdelcliente:RazonSocial(H), existeunclienteconlosmismosdatos. Ruc(I),Giro(J),Tipo(K),Direccin(L), 7. ElSistemaactualizalainformacindelregistro Distrito(M),Telfono(N),Fax(O), delclienteseleccionado. ContactoNombre(P),ContactoCargo 8. ElsistemacierralaPantalla2ymuestrala (Q),ContactoArea(R). Pantalla1conlalistadeclientesactualizada. 5.ElDirectordeCuentaseleccionala opcinAceptar(S). SeccinEliminarClientes

Pantalla3 1. ElDirectordeCuentaseleccionael clientequedeseaeliminar(Aen Pantalla1). 2. ElDirectordeCuentaseleccionala opcinEliminar(DenPantalla1). 3. Elsistematomaelcdigodelclienteseleccionado yverificaquenoestasociadoaningunacuenta. 4. Elsistemasolicitaconfirmarlaordende eliminacinmostrandolaPantalla3.

5. ElDirectordeCuentaconfirmala 6. Elsistemaeliminaelregistrodelcliente eliminacindelcliente seleccionado. seleccionandolaopcinAceptar(U). 7. ElsistemacierralaPantalla3ymuestrala Pantalla1conlalistadeclientesactualizada. SeccinImprimirClientes 1. ElDirectordeCuentaseleccionala 2. Elsistemaimprimelalistadeclientes.Decada opcindeimprimir(EenPantalla1). clientemuestralosdatossiguientes:Cdigo, RaznSocial,RUC,GiroyTipo. TextosAlternos 1. SeccinAgregarCliente:Lnea4. SielDirectordeCuentaseleccionalaopcinCancelar(TenPantalla2)elsistematraslada elcontrolalalnea7delflujobsicodelaSeccinAgregarCliente. 208
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

2. SeccinAgregarCliente:Lnea5.

Pantalla4 SielsistemadetectaqueyaexisteunregistroconelmismoRUC;presentalaPantalla4.El DirectordeCuentaseleccionalaopcinAceptar(W).ElsistemacierralaPantalla4, muestralaPantalla2ytrasladaelcontrolalalnea3delflujobsicodelaSeccinAgregar Cliente. 3. SeccinModificarCliente:Lnea5. SielDirectordeCuentaseleccionalaopcinCancelar(TenPantalla2)elsistematraslada elcontrolalalnea8delflujobsicodelaSeccinModificarCliente. 4. SeccinModificarCliente:Lnea6. SielsistemadetectaqueyaexisteunregistroconelmismoRUC;presentalaPantalla4.El DirectordeCuentaseleccionalaopcinAceptar(W).ElsistemacierralaPantalla4, muestralaPantalla2ytrasladaelcontrolalalnea4delflujobsicodelaSeccin ModificarCliente. 5. SeccinEliminarCliente:Lnea3.

Pantalla5 SielsistemadetectaqueelclienteestasignadoaunacuentapresentalaPantalla5.El DirectordeCuentaseleccionalaopcinAceptar(X).ElsistemacierralaPantalla5,y trasladaelcontrolalalnea7delflujobsicodelaSeccinEliminarCliente. 6. SeccinEliminarCliente:Lnea5. SielDirectordeCuentaseleccionalaopcinCancelar(VenPantalla3)elsistematraslada elcontrolalalnea7delflujobsicodelaSeccinEliminarCliente. PostCondiciones: Losregistrosdeclientesquedanactualizados.

Ejemplo3.Concasosdeusoincluidos(<include>)
Casodeuso
Ingeniera de Sistemas Informticos

COLOCARUNALLAMADA 209

Universidad Privada del Valle Unidad Acadmica Sucre

Actores Propsito Resumen

Personaquedeseallamar Garantizarlarealizacindeunallamadatelefnica. Elcasodeusocomienzacuandounapersonadesearealizaruna llamadalocalylevantaelauricular.Elsistemacaptaelnmero deltelfonoalquelapersonadeseallamar.Elsistemaproducela comunicacin.Elcasodeusoconcluyecuandolapersonacuelga elauricularyelsistemadesconectalaspartes. Responsabilidades Realizarunallamadatelefnica. CUasociados Administrarcircuitovirtual(asociacin<<include>>). Precondiciones Descripcin AccionesdelActor RespuestasdelSistema 1.Lapersonaquellama(caller)levantael 2.Elsistemapresentaeltonodediscar. auricular. 3.Lapersonaquellamadiscaundgito. 4.Elsistemaquitaeltonodediscar. 5.Lapersonaquellamaintroduceelresto delnmero. 6.Elsistemaanalizalosdgitos,ydetermina ladireccindelareddelaParte Receptora,esdecirdeterminaelnmero delsistemaadyacentecorrespondienteal receptordelallamada. 7.IncluirelcasodeusoAdministrar CircuitoVirtualparaestablecerla conectividadconlared.Ejecutarloparael nmerodelsistemaadyacente correspondientealreceptordelallamada yelnmerodelsistemadesdeelcualse hacelallamada. 8.Existecircuitovirtualparala comunicacin. 9.ElsistemaponealtelfonodelaParte Receptoraadartimbre 10..Etc,etc.

Textosalternos Textonormal,Lnea8:Encasodequenoexistacircuitovirtualparalacomunicacin,el sistemaponealtelfonodelapersonaquellamaadartonodeocupado. Casodeuso INICIARSISTEMA Actores Operador Propsito Ejecutareliniciodelfuncionamientodelsistema. Resumen Elcasodeusocomienzacuandoeloperadordecideactivarel sistema.Elsistemaejecutatodaslascomprobacionesprevias paraevaluarsudisponibilidadyfinalmentesedeclaralistopara iniciarsufuncionamiento.
Ingeniera de Sistemas Informticos

210

Universidad Privada del Valle Unidad Acadmica Sucre

Responsabilidades

Iniciarsistema Casosdeusoasociados: Administrarcircuitovirtual CUasociados (asociacin<<include>>). Precondiciones Elsistemaseencuentradisponible. Descripcin AccionesdelActor AccionesdelSistema 1.Eloperadoractivaelsistema. 2.Elsistemaejecutalaspruebasde diagnsticodetodosloscomponentes. Paracadasistemaadyacente,ejecutar lneas3y4delcasodeuso. 3.Elsistemapruebalasconexionesconun sistemaadyacente.Incluircasodeuso AdministrarCircuitoVirtual. 4.Existecircuitovirtualparala comunicacin 5.ElSistemarespondequeestlistopara laoperacin. 6.Etc.Etc. Textosalternos Textonormal,Lnea4:Encasodequeparaalmenosunsistemaadyacente,noexista circuitovirtualparalacomunicacin,elsistemarespondequenoseencuentralistopara laoperacinportenerunsistemaadyacentesinconexin.Concluyelarealizacindel casodeuso.

Ejemplo4.Generalizacin
Casodeuso Actores Propsito Resumen COLOCARLLAMADA Personaquellama(caller) Realizarunallamadatelefnica. El caso de uso es un caso de uso general, padre de los casos de uso Colocar Llamada Local y Colocar Llamada de Larga Distancia. El proceso de conexin es un proceso especializado quesedescribeenlosrespectivoscasosdeusohijos. Responsabilidades Realizarllamadatelefnica. CUasociados Casosdeusohijos: Colocarllamadalocal. Colocarllamadadelargadistancia. Precondiciones Elsistemaseencuentradisponible. Descripcin AccionesdelosActores AccionesdelSistema SeccinProcesoInicial 211
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

1. La persona que llama (caller) levanta el 2.Elsistemapresentaeltonodediscar. auricular. 3.Lapersonaquellamadiscaundgito. 4.Elsistemaquitaeltonodediscar. 5. La persona que llama introduce el resto 6.Elsistemaanalizaelnmero. delnmero. SeccinProcesoespecializadodeconexin SeccinDesconexin 1.Laspartessedesconectan. Poscondiciones Casodeuso COLOCARLLAMADALOCAL Actores Personaquellama(caller) Propsito Realizarunallamadatelefnicalocal. Resumen Elcasodeusocomienzacuandounapersonadesearealizaruna llamada local y levanta el auricular. El sistema capta el nmero del telfono al que la persona desea llamar detectando que es una llamada local. El sistema realiza el proceso de conexin especfico para la llamada local, el cual se describe en el presente caso de uso. El caso de uso concluye cuando la personacuelgaelauricularyelsistemadesconectalaspartes. Responsabilidades Realizarllamadatelefnica. CUasociados Casodeusopadrevinculado: Colocarllamada. Precondiciones Elsistemaseencuentradisponible. Descripcin AccionesdelosActores AccionesdelSistema SeccinProcesoespecializadodeconexin 1. El sistema encuentra la parte correspondiente. 2.Elsistemaconectalaspartes. Poscondiciones Casodeuso COLOCARLLAMADADELARGADISTANCIA Actores Personaquellama(caller) Propsito Realizarunallamadatelefnicadelargadistancia. El caso de uso comienza cuando una persona desea realizar una llamada de larga distancia y levanta el auricular. El sistema capta el nmero del telfono al que la persona desea llamar detectando que es una llamada de larga Resumen distancia. El sistema realiza el proceso de conexin especfico para la llamada de larga distancia, el cual se describeenelpresentecasodeuso.Elcasodeusoconcluye cuando la persona cuelga el auricular y el sistema 212
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

desconectalaspartes. Responsabilidades Realizarllamadatelefnica. Casodeusopadrevinculado: Cuasociados Colocarllamada. Precondiciones Elsistemaseencuentradisponible. Descripcin AccionesdelosActores RespuestasdelSistema SeccinProcesoespecializadodeconexin 1. El sistema enva el nmero a otro sistema. 2.Elsistemaconectalaslneas. Poscondiciones

Ejemplo5.
CasodeUso Actores Propsito Resumen Preinscribiralumno AUsuario(ASecretaria,AAdministrador) Tomardatosbsicosdelalumnopara ingresarlosalsistema Seiniciaelcasodeusocuandoelusuario ingreselosdatosdeunestudiantenuevoen elsistemaodeseamodificarlo.Deacuerdo alrequisitoagrega,eliminaomodificae imprimelasnotasylosregistrosquedan actualizados. Actualizarlistadepostulantesaunnuevo Postgrado Ninguno Elusuariodebeestarautentificadoconel sistemayseencuentraenelmenprincipal RespuestadelSistema

Responsabilidades CUasociados Precondiciones AccindelActor(es)

1. El usuario entra al men gestin y 2. El sistema muestra la pantalla 1 que seleccionalaopcinpreinscribiralumno. despliega una lista de alumnos preinscritos en la primera maestra que las cuales se encuentran en orden de lista(B). 3.Elusuarioeligeunamaestradeterminada 5.Elsistemadespliegalalistadealumnosde (A). lamaestraelegida(B). 6. El usuario elige la operacin que desea 7. realizar C.Paraagregarunalumnoverseccin Agregaralumno. 213
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

D.Paramodificarunalumnoverseccin Modificaralumno. E.Paraeliminarunalumnoverseccin Eliminaralumno. F.Paraimprimirlalistadealumnosver seccin Imprimiralumno 8.ElusuarioseleccionaelbotnsalirG. 9.Elsistemacierralapantalla1yvaalmen principal.

Pantalla1 SeccinAgregaralumno 1.Elusuarioeligelaopcinagregar(C)enla 2.Elsistemamuestralapantalla2,dondese pantalla1. encuentralamaestraqueestaba seleccionadaenlistadedesplieguedela pantalla1(A),enelcampoMaestra(H), losdemsdatossegeneranenblanco: Carnetdeidentidad(I),ApellidoPaterno (J),ApellidoMaterno(K),Nombres(L), Profesin(M),Telfono(N),Direccin(O) yCorreoelectrnico(P). 3.Elusuarioingresalosdatosdelalumno: Carnetdeidentidad(I),ApellidoPaterno (J),ApellidoMaterno(K),Nombres(L), Profesin(M),Telfono(N),Direccin(O) yCorreoelectrnico(P). 4.ElusuarioeligelaopcinAceptar(Q) 5.Elsistemavalidalosdatosingresados 6.buscasielalumnoconlosmismosdatos yaexiste. 7.Elsistemacreaunnuevoregistrodel alumno. 8.Elsistemacierralapantalla2,ymuestra lapantalla1conlalistayaactualizada. G

214
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

H J

I K

L M N Q O P Pantalla2 SeccinModificaralumno 1.Elusuarioeligeelalumnoquedesea modificarenlalista(B)delapantalla1. 2.Elusuarioeligelaopcinmodificar(D)en lapantalla1. 3.Elsistemamuestralapantalla2,dondese encuentralamaestraqueestaba seleccionadaenelcombodelapantalla1 (B),enelcampoMaestra(H),losdems datossellenanconlosdatosdelalumno: Carnetdeidentidad(I),ApellidoPaterno (J),ApellidoMaterno(K),Nombres(L), Profesin(M),Telfono(N),Direccin(O) yCorreoelectrnico(P). R

4.Elusuariomodificaloscamposquedesea 6.Elsistemavalidalosdatosmodificadosy actualizar:Carnetdeidentidad(I), buscasiexisteunalumnoconelmismo carnetdeidentidad. ApellidoPaterno(J),ApellidoMaterno (K),Nombres(L),Profesin(M),Telfono 7.Elsistemaactualizaelregistroconlos (N),Direccin(O)yCorreoelectrnico(P). nuevosdatosdelalumno. 5.ElusuarioeligelaopcinAceptar(Q)dela 8.Elsistemacierralapantalla2ymuestrala pantalla2. nuevalistaactualizadadeenlapantalla1. SeccinEliminaralumno 1.Elusuarioeligeelalumnoquedesea 3.Elsistemamuestralaordenconfirmar eliminarenlalista(B)delapantalla1. eliminacinmostrandolapantalla3. 2.ElusuariooprimeelopcinEliminar(E)de lapantalla1. 4.Elusuarioconfirmalaeliminacindel registrodelalumnoseleccionando Aceptar(S).
Ingeniera de Sistemas Informticos

5.Elsistemacierralapantalla3ymuestra lapantalla1conlalistayaactualizada.

215

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla3 SeccinImprimiralumno 1.Elusuarioseleccionalaopcinimprimir (F)delapantalla1. 2.Elsistemaimprimelalistadealumnospor cadaalumnoimprime:CI,Nombre completo,ProfesinTelfono,Direccin yemail.

TextosAlternos 1.SeccinAgregaralumno:Lnea4 Sielusuarioseleccionalaopcincancelar(Renpantalla2)elflujoelsistematrasladael controlalalnea8delflujobsicodelaseccinAgregaralumno. 2.SeccinAgregaralumno:Lnea5 Elsistemadetectaqueyaexisteunalumnoconelmismocarnetdeidentidadelsistema muestralapantalla4.ElusuarioseleccionalaopcinAceptar(U).Elsistemacierrala pantalla4ytrasladaelcontrolalalnea3delflujobsicodelaseccinAgregar alumno.

Pantalla4 3.SeccinModificaralumno:Lnea5 Sielusuarioseleccinlaopcincancelar(Renpantalla2)elflujoelsistematrasladael controlalalnea8delflujobsicodelaseccinModificaralumno. 4.SeccinModificaralumno:Lnea6 Elsistemadetectaqueyaexisteunalumnoconelmismocarnetdeidentidadelsistema muestralapantalla4.ElusuarioseleccionalaopcinAceptar(U).Elsistemacierrala pantalla4ytrasladaelcontrolalalnea4delflujobsicodelaseccinAgregar alumno. 216
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

5.SeccinEliminaralumno:Lnea4 SielusuarioeligelaopcinCancelar(Tenpantalla3).Elsistematrasladaelcontrolala lnea5delflujobsicodelaseccinEliminaralumno. RequisitosnoFuncionales Nodebenexistirabreviacionesenla interfaz. Todosloscamposdebenestar validadosespecialmenteeldelcarnet deidentidad. Enlapantalla2enelcampode Maestra(H)elcajndeedicinno debepermitireditar.

Postcondiciones

Losregistrosdealumnosquedan actualizados.

La descripcin de un caso de uso es extensa y bastante detallada en la explicacin de la interaccin del actor con la aplicacin, lo cual implica un esfuerzo de abstraccin muy grande en la traduccin de las necesidades del actor (usuario) en la interaccin con la computadora. Esta descripcin es muy til, ya que servir para determinar un lenguaje comn entre los involucrados en el desarrollo, adems de ser til para realizar los Casos de Uso de Prueba,realizar el manual de usuario, la ayuda y agilizar el soporte tcnicoyaseaparaladescripcindeunproblemaoparaidentificacindelmismo,dentrodelsoporte. Un aspecto importante de la plantilla son los Requisitos no Funcionales, los cuales deben describirse en funcindelcasodeuso,esdecir,qurequisitonofuncionalnecesitaelcasodeuso?Estosrequisitosno funciones darn como resultado a la gran parte de los requisitos no funciones globales de la aplicacin. Recordar que estos requisitos no funcionales son caractersticas (atributos), los cuales se han visto en documentos anteriores, estos hablan de la aplicacin y de algunas de las caractersticas de la informacin que se manipula en el caso de uso. No se debe olvidar que un requisito no funcional es un compromiso,quedebecumplirse. Los ejemplos utilizados en este documento han sido sacados de la materia de Taller III de Sistemas de UNIVALLESUCREydelaCiudadUniversitariaJosAntonioEcheverraenCuba. Acontinuacinsedescribendoscasosdeusodelaaplicacinejemplo: CasodeUso AutenticarEmpleado Actores Resumen Empleado(JefedeCocina,Recepcionista) ElcasodeusoseiniciacuandoelEmpleadoquiereingresarala aplicacin,paraestodebeintroducirsucuentaycontraseade accesoaunainterfazqueleproporcionalaaplicacin. Verificar si el actor tiene autorizacin para ingresar al manejo de laaplicacin. Descripcin AccindelActor(es) RespuestadelSistema 217
Ingeniera de Sistemas Informticos

Responsabilidades CUasociados Precondiciones

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla1

1.Elcasodeusoseiniciacuandoel Empleadonecesitaingresaralaaplicacin 3.IngresaelNombredeCuenta(A)yla Contrasea(B) 4.RealizaunclicenelbotnAutenticar(C)

2.Presentaunainterfaz(Pantalla1),enla cualdebeingresarelEmpleadoelNombre deCuenta(A)ylaContrasea(B) 5.Validainternamentecomparandoel NombredeCuentaylaContrasea 6.Direccionaalmenprincipaldela aplicacinparalosEmpleados

TextosAlternos Paso5.Silavalidacinesincorrectalaaplicacinpresentaunmensajedetexto(D)con lassiguientespalabrasElNombredeCuentaolaContraseaesIncorrecta Paso5.SilavalidacindelNombredecuentanocoincideconseiscaracteresalinicio msdosnmeros,laaplicacindebepresentarunmensajedetextoconlassiguientes palabrasVerifiqueelNombredeCuenta(seiscaracteresmsdosnmeros) Requisitosno Funcionales Seguridad. ElNombredeCuentadebeconteneruntotalde8caracteres,los seisprimerosdebenserletras,losdosltimosnmeros. Lacontrasea,luegoderealizarunclicenelbotndeAutenticar (C)debeaplicarse,sobreesta,unalgoritmodeencriptacin,para lograrunaptimaintegridad FacilidaddeUso Losmensajesrelacionadosalautilizacindelainterfazdebeser legibles,explicativosydeuncolorllamativo,paralograruncorto tiempodeaprendizajeenlautilizacindelainterfazyuna ptimacomprensin. 218
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Postcondiciones CasodeUso Actores Resumen

ElEmpleadotendrunaautorizacinparalautilizacindela aplicacin CURegistrarSolicituddeServicioBsico JefedeCocina ElCasodeUsoseiniciacuandoelJefedeCocinaintroducela informacindelasolicituddeServiciodelClientequequiereser atendido.Registrandolasbebidas,lacomidayelcostodel servicio.Elcostodeserviciopuedeserderivadoalacuenta general Registrar una solicitud de Servicio Bsico de un cliente hospedado enelhotel Seleccionar bebidas y comidas respecto a la solicitud de servicio bsico Elclientedebeestarregistradoenunahabitacin. ElJefedeCocinadebeestarautenticadoyautorizado. Descripcin RespuestadelSistema Pantalla1

Responsabilidades

CUasociados Precondiciones

AccindelActor(es)

1.ElcasodeusoseiniciacuandoelJefede Cocinaquiereintroducirunanuevaorden 219


Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

deserviciobsico 3.Introducelahabitacin(A) 6.Unavezterminadoelingresodela solicitudeljefedecocinaimprimelaBoleta deServicio(J)

2.Lepresentaunainterfazparala bsquedadelCliente(Pantalla1) 4.DevuelvelosdatosdelCliente(C), Nombre,ApellidoPaterno,Apellido Materno,NmerodeCuenta,Crdito. 5.Leproporcionaunainterfazpara introducirlasbebidas(verseccinBebidas) ylacomida(verseccinComidas)queha solicitadoelcliente 7.Leinformaquelaoperacinhatenido conxitoconelmensajesiguiente:Seha registradocorrectamenteelServicio. 8.ImprimelaBoletadeServicioconlos datos:NombredelCliente,Numerode Habitacin,DetalledeServicio(Nombre, Costo,Cantidad)

SeccinComidas Pantalla2

1.Introduceelnombredelacomida(D) (Pantalla2). 3.Seleccionalacomidadeseada(E) (Pantalla2)porelClienteenlaordende


Ingeniera de Sistemas Informticos

2.Lemuestraunalistadecomidas(E) (Pantalla2)quecoincidanconlo introducidoen(D)(Pantalla2),conlos datosNombreComida,Costo,Cantidad. 220

Universidad Privada del Valle Unidad Acadmica Sucre

serviciorealizandounclicen(E)(Pantalla 2) 4.RealizaunclicenelbotnAsignar(F) (Pantalla2).

5.AdicionaalaOrdendeServiciouna comida(G)(Pantalla1)conlosdatos Nombre,Costo,Cantidad. 6.CalculaelCostoTotaldelServicio(I) (Pantalla1).

SeccinBebidas Pantalla3

1.IntroduceelnombredelaBebida(K) (Pantalla3). 3.Seleccionalabebidadeseada(L) (Pantalla3)porelClienteenlaordende serviciorealizandounclicen(L)(Pantalla3) 4.RealizaunclicenelbotnAsignar(M) (Pantalla3). 2.LemuestraunalistadeBebidas(L) (Pantalla3)quecoincidanconlo introducidoen(K)(Pantalla3),conlos datosNombreComida,Costo,Cantidad. 5.AdicionaalaOrdendeServiciouna bebida(G)(Pantalla1)conlosdatos Nombre,Costo,Cantidad. 6.CalculaelCostoTotaldelServicio(I) (Pantalla1).

TextosAlternos Flujo Bsico. Paso 4. Si la habitacin introducida no coincide con el Cliente la Aplicacin visualiza un mensaje con el siguiente mensaje (N): La habitacin no est asignada a ningnCliente 221
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

SeccinComidas.Paso2.Sinoexisteunacoincidenciaconlointroducidoen(D)(Pantalla 2)laaplicacinmuestraunmensaje(N):NoexistelaComidaenbsqueda SeccinComidas.Paso4.Silacantidaddeunacomidaes0laaplicacindebemostrarun mensaje(N):Noexistedisponibilidaddecomida. Seccin Comidas. Paso 6. Si el Costo Total del Servicio (I) es mayor que el Crdito (C), la aplicacin proporciona un mensaje: El Crdito es menor que el Consumo. Adicionalmente se deshabilita el botn Imprimir Boleta (J). El Jefe de Cocina debe eliminar Comidas, realizando un clic en el botn Eliminar (H), hasta que el crdito sea mayoroigualqueelServicio. Seccin Bebidas. Paso 2. Si no existe una coincidencia con lo introducido en (K) (Pantalla 3)laaplicacinmuestraunmensaje(N):NoexistelaBebidaenbsqueda. Seccin Bebidas. Paso 4. Si la cantidad de una bebida es 0 la aplicacin debe mostrar un mensaje(N):NoexistedisponibilidaddeBebida. Seccin Comidas. Paso 6. Si el Costo Total del Servicio (I) es mayor que el Crdito (C), la aplicacin proporciona un mensaje: El Crdito es menor que el Consumo. Adicionalmente se deshabilita el botn Imprimir Boleta (J). El Jefe de Cocina debe eliminar Bebidas, realizando un clic en el botn Eliminar (H), hasta que el crdito sea mayoroigualqueelServicio. Requisitosno Funcionales Seguridad ElNumerodeHabitacindebeseguirunamascarqueesla siguienteCCNumHabitacion.DondeCCsignificalazonaquese ubicalahabitacindentrodelHotelsondoscaracteresy NumHabitacineselnmerodehabitacin ElJefedeCocinaregistralaSolicituddeServicioBsico

Postcondiciones

Estosdoscasosdeusoservirnpararealizareldiagramadecolaboracinyloscasosdeusodeprueba. Se ha visto de forma completa la descripcin de los casos de uso, adicionalmente se tiene varios ejemplosqueayudarnarealizarelproyectoquellevaacabocadaalumno. EstedocumentoesunodelosmsimportantesdentrodelTexto,estelogrardocumentarlainteraccin del usuario y la aplicacin, determinar las perspectivas de la aplicacin ya sea en el diseo como en la implementacin. Ensiguientesdocumentosseverlautilidaddeestadescripcin. ERRORESMSCOMUNES Representar Casos de Uso como Imprimir Recibo. Este caso de uso pertenece a uno ms amplio Presenciadetextoalternodentrodeltextonormal AccionesdelActor RespuestadelaAplicacin

222
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

1.Elusuariosuministrasuidentificacin 3Actualizalosdatosdelanuevafactura 5Elusuarioconcluyelaoperacin.

2Localizalaidentificacindel usuario.Sinoexisteelusuario, ejecutarcasodeusoRegistrar Usuario. 4Registralosdatosdelafactura.

Describirdemanerainsuficienteelcasodeusoenarasdeganartiempo

223
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DIAGRAMADECOLABORACINOCOMUNICACIN Existen dos tipos de diagramas que nos ayudan a determinar los contratos entre objetos, a estos se les llama Diagramas de Interaccin. Uno de estos es el Diagrama de Comunicacin, denominado de esta formaenUML2.EnlaanteriorversindeUMLtieneelnombredeDiagramadeColaboracin.Otro,que corresponde a los diagramas de interaccin es el Diagrama de Secuencia, este muestra la secuencia y tiempo de los mensajes de los contratos entre objetos. Este ltimo se ver en la parte de diseo, ahora nos dedicaremos a desarrollar los diagramas de colaboracin. Se entiende como Contrato a la relacin dedosobjetos,unoquesolicitaservicioyotroqueproporciona. DIAGRAMADECOLABORACINOCOMUNICACIN Los diagramas de comunicacin agregan una perspectiva que muestra la integracin centrndose en los acoplamientos entre las partes de la aplicacin. Los diagramas de comunicacin son relativamente buenosendemostrarquacoplamientossonnecesariosentrelosobjetosdelaaplicacin.Conunavista rpida a un diagrama de la comunicacin, se puede observar qu partes de la aplicacin necesitan ser conectadasparaunainteraccinquepuedaocurrir.Losdiagramasdelacomunicacinproporcionanuna manera intuitiva de demostrar los acoplamientos entre las partes que se requieren para los acontecimientosquecomponenunainteraccin. CUANDOUSARELDIAGRAMADECOLABORACINPARAELMODELODINMICO? Lautilizacines,muchasveces,unadecisinpersonalopolticadelaempresa.Muchaspersonastienden autilizarlosdiagramasdesecuencia.Losdiagramasdesecuenciaseutilizancuandosedeseaacentuarla secuencia de llamadas a eventos y los diagramas de comunicacin se utilizan cuando se desea acentuar los acoplamientos. Muchas personas encuentran que los diagramas de comunicacin son ms fciles de manteneralocurrircambios. Otrasutilidadesdeldiagramadecolaboracinson: - Validar si el diagrama de clases del anlisis esta completo y exacto. El diagrama de clases debe representarpartedelasolucin. - Ganarlaconfianzadelosusuarios,desarrolladoresycliente. - Verificar la funcionalidad de la interfaz que utilizar la aplicacin a desarrollar. La verificacin se deberealizaravariasdelasinterfaceslogrando,deestemodo,verelaccesoquesetendrconla aplicacinysusobjetos. Segn Jacobson, uno de los pasos ms importantes para realizar el anlisis es la determinacin del las RealizacionesdeCasosdeUso,estassonunaderivacindeloscasosdeusoquepermitenladivisindel casodeuso,estopermiteunamejordistribucinyentendimientodelosDiagramasdeComunicacin. Para realizar la determinacin de las realizaciones de los casos de uso de anlisis se deben seguir los siguientespasos: - Tenerunarealizacinparaelflujobsicodeuncasodeuso. - Tenerunarealizacinporcadaseccindelcasodeuso. 224
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Realizarunanlisisdelosflujosalternos,siesnecesariotenerunarealizacindeunflujoalterno.

Una vez que se ha realizado la determinacin de las realizaciones se debe desarrollar, por cada una de estas,undiagramadecolaboracin,opcionalmente,undiagramadeclases. Para el ejemplo que se lleva a cabo, a continuacin se determinan las realizaciones de los casos de uso quesehandescritosdeformacompletaenelanteriordocumento. CasodeUsoAutenticarEmpleado. Este caso de uso solo tiene un flujo bsico, no tiene secciones y los flujos alternos no necesitan una realizacin,porlotantoexistirunasolarealizacinparaestecasodeuso. ParapoderespecificardentrodelRationalRosesedebenseguirlossiguientespasos. Como se puede ver en la Pantalla 1, el desarrollo del anlisis tiene que realizarse en la carpeta Logical View.

Pantalla1.IniciodelAnlisis DentrodelacarpetaLogicalViewexisteotraconelnombredeAnalysisModel,estaltimanospermitir realizar el modelo de Anlisis. Para iniciar se crea por cada caso de uso un directorio que contendr el diagramaderealizacionesdecadacasodeuso.Enelcasodeejemplosecreatodoslosdirectoriosdelos casosdeuso.Paraluegocreareldiagramaderealizaciones. ParacrearunacarpetasedeberealizarunclicderechosobrelacarpetadeAnalysisModel,aparecerun menemergentecomosepuedeverenlaPantalla2.SedebeseleccionarlaopcinNewyPackage.

225
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla3.Crearunacarpeta

Una vez hecha la seleccin se debe dar el nombre a la nueva carpeta, el nombre ser Autenticar EmpleadocomosepuedeverenlaPantalla4.

Pantalla4.CarpetadeAutenticarEmpleadoparalaRealizaciones Deestaformasedebecrearunacarpetaporcadacasodeusoquesehayadeterminado.Comosepuede verenlaPantalla5.

Pantalla5.Vistadetodaslacarpetasparalasrealizaciones Setomarcomoejemplodoscasosdeuso,AutenticarEmpleadoyRegistrarSolicituddeServicioBsico. Loscualespermitirndescribirlacreacindelasrealizaciones. Acontinuacinsecrealasrealizacionesparaestosdoscasosdeuso. 226


Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Lasrealizacionesdebenestarenundiagramadecasosdeuso,paraestosedeberealizarunclicderecho sobrelacarpetadeautenticarempleado,seleccionarlaopcinNewyUseCaseDiagramcomosepuede verenlaPantalla6.

Pantalla6.DiagramadeCasosdeUsoparaRealizaciones UnavezrealizadaestaoperacinsedebecambiardenombreaRealizacionesdeAutenticarEmpleado comosepuedeverenlaPantalla7.

Pantalla7.NombredeRealizacindeCasosdeUso Deestaformaseestlistoparadesarrollarlasrealizacionesdeuncasodeuso.Sedeberealizardobleclic sobreeldiagramadecasosdeuso,enestecasoRealizacionesdeAutenticarEmpleado,unavezrealizada esta operacin en la parte izquierda se visualizar una plantilla, ya conocida, esta servir para colocar el caso de uso al cual se hace referencia con el nombre de la carpeta y crear las realizaciones que se determinen. Para esta operacin se debe arrastrar el caso de uso Autenticar Empleado de la ubicacin de Use Case View, UseCase Model, Use Case y Autenticar Empleado, hacia el diagrama de casos de uso quecorrespondealasrealizaciones.ComosepuedeverenlaPantalla8.

227
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla8.IniciodelDiagramadeRealizaciones

Una vez hecha esta operacin se deben crear las realizaciones. Un caso de uso puede tener de una a muchas realizaciones. Para crear se debe realizar un clic en el estereotipo de Casos de Uso en la BarradeHerramientasparaluegorealizarotroclicenlaplantilladondeseubicaelcasodeuso.Comose puedeverenlaPantalla9.Luego,sedebecambiardenombreaunoapropiadoparalarealizacin.Enel caso de Autenticar Empleado, como solo cuenta con el flujo bsico y flujos alternos que no son complejos(quenollevanaunanuevainterfaz),elnombredelarealizacinserAutenticar.

Pantalla9.NombredelaRealizacin
Ingeniera de Sistemas Informticos

228

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez hecha esta actividad lo que resta es cambiar de estereotipo y definir la asociacin de la realizacin hacia el caso de uso. Esta asociacin debe de llevar el nombre de realize, para lograr esta operacin se debe hacer doble clic en la realizacin, se visualizar la Pantalla 10, donde se debe seleccionar en el campo de Stereotype la opcin de usecase realization, posteriormente hacer un clic enbotnOK.

Pantalla10.Seleccindelestereotipoderealizacin Como se puede ver en la Pantalla 11, el estereotipo del caso de uso ha cambiado, este representa a una realizacin. Para realizar la asociacin se debe realizar un clic en el botn Unidirectional Association, y arrastrardesdelarealizacinhaciaelcasodeuso.

Pantalla11.Definirlaasociacindelarealizacin 229
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para terminar, solo se debe cambiar de estereotipo a la asociacin realizando un clic sobre esta, aparecer una pantalla donde se debe seleccionar realice en el Sterotype, como se puede ver en la Pantalla12.

Pantalla12.DeterminarelestereotipodelaasociacindeRealizacin Con esta ltima operacin se ha terminado con las realizaciones del caso de uso de Autenticar, el resultadosepuedeverenlaPantalla13.

Pantalla13.Realizacinfinalizadadelcasodeuso

PararealizarelcasodeusodeRegistrarSolicituddeServicioBsicosedebeseguirlosmismospasos.Sin embargo, este caso de uso presenta varias secciones, las cuales deben tomarse como una realizacin para una mejor comprensin al momento de realizar los diagramas de colaboracin. El resultado del diagramaderealizacionesparaestecasodeusosepuedeobservarenlaPantalla14. 230
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla14.RealizacionesdelcasodeusoRegistrarSolicituddeServicioBsico

Como se puede observar en la Pantalla 14 no se toma en cuenta los flujos alternos ya que no sealan a unanuevainterfazonoimplicagrandescambios. De esta forma se puede crear las realizaciones de anlisis. En conclusin un caso de uso puede tener de unaamuchasrealizacionesdeanlisis. Luego de determinar todas las realizaciones de anlisis debe llevarse a cabo los diagramas de comunicacin, los cuales sern la transformacin de los casos de uso, que se encuentran en un lenguaje de usuario, hacia un lenguaje de programador y como se ha sealado al inicio del documento estos diagramasayudarnarefinarlosrequisitos. Al realizar esta actividad no se debe pensar en una tecnologa ni mucho menos en un lenguaje de programacin o con qu gestor de base de datos se implementar las tablas para la aplicacin. SE ACLARA,NOSEDEBEPENSARENUNATECNOLOGA,yaqueestatareacorrespondealDiseo. Antes de iniciar la creacin del diagrama de colaboracin se necesita estudiar tres estereotipos que ayudan a desarrollar el diagrama. Estos estereotipos mostrarn de una forma muy descriptiva la futura aplicacin. Estos estereotipos no son ms que clases de anlisis. Como se puede ver en la Figura 1, Interfaz,ControlyEntidadsonlosestereotiposqueayudanadeterminareldiagramadecomunicacin.

231
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

C la s e s d e An lis is

In t e rfa z

C o n tro l

En tid a d

Figura1.TiposdeClasesqueparticipanenelAnlisis InterfazoFrontera(boundary).

Sirven para modelar la interaccin entre la aplicacin y sus actores, esto pueden ser usuarios,sistemasoaplicacionesexternasodispositivos Representa por lo general abstracciones de ventanas, formularios, paneles, interfaz de comunicacin,sensores,terminales Es suficiente que permita representar la interaccin del actor con la aplicacin como se puedeverenlaFigura2.

Interfaz

<Actor Name>
(f rom Actors)

Interfaz

Figura2.RepresentacindelaInteraccindelActorconlaaplicacin Control(control).

Control RepresentanCoordinacin,secuencia,transaccionesycontroldeobjetos

LgicadelNegocio,ClculosComplejosquenosepuedenasociaraunainformacin concreta 232


Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Losaspectosdinmicossemodelanatravsdeestaclase Nomodelalainteraccinentreelactorylaaplicacin,comosepuedeverenlaFigura3.

<Actor Name>
(f ro m A ctors)

Interfaz

Control

Figura3.RepresentacindelainteraccindelaInterfazconlaclasedeControl Entidad(entity).

Entidad

Usadaparamodelarinformacindelargaduracinyusualmentepersistentes. Modelafenmenosoconceptos,esdecir,objetosdelmundorealoeventos. Losvaloresdesusatributosyrelacionessonactualizadosporunactorconfrecuenciapor mediodeunaclasecontrol.ComosepuedeverenlaFigura4.

<Ac tor Nam e>


(f ro m A ctors)

Interfaz

Control

Figura4.RepresentacindelaInteraccinentreClasedeControlyClaseEntidad Paradesarrollarundiagramadecomunicacinocolaboracinsedebetomarencuenta: - Las interacciones descritas en el caso de uso. Se debe representar de forma completa la interaccin del usuario con la aplicacin. Si el usuario solicita informacin a la aplicacin debe existiruncaminoentendibledelcomolaaplicacinleproporcionaralainformacin.

Entidad

233
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Unasecuenciadelosmensajesentrelasclases.Estasecuenciadebeexplicardeformacompletay consecutiva los mensajes que permiten recopilar los datos para ofrecer al usuario la informacin necesaria

Paraeldesarrollodeundiagramadecomunicacinocolaboracinsedebenseguirlossiguientespasos. SetomacomoejemploelcasodeusodeRegistrarSolicituddeServicioBsico.NODEBEOLVIDARSEQUE ELDESARROLLODELDIAGRAMASEHACEENFUNCINDELADESCRIPCINDELCASODEUSO. CasodeUsoRegistrarSolicituddeServicioBsico FlujoBsico. Se debe realizar un clic derecho en la realizacin de anlisis con el nombre de Flujo Bsico del Servicio Bsico, inmediatamente se visualizar un men emergente como se puede ver en la Pantalla 15, en el cualsedebeseleccionarlaopcindeNewyCollaborationDiagram.

Pantalla15.CreacindeunDiagramadeColaboracin

Una vez realizada esta actividad se debe dar nombre al diagrama de colaboracin, el nombre puede ser el mismo de la realizacin u otro que represente a toda la realizacin como se puede ver en la Pantalla 16.

234
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla16.CambiodeNombrealDiagramadeColaboracin Unavezhechoelcambiodenombrealdiagramadecomunicacinsedeberealizarsobreestedobleclic, esta operacin visualizar una plantilla a la derecha y una nueva barra de herramientas como se puede verenlaPantalla17.

Pantalla17.Plantillapararealizareldiagramadecolaboracin.

Para mantener ordenado el modelo se recomienda crear tres carpetas que puedan almacenar a los tres tiposdeclasesqueparticipanenelanlisis.ComosepudeverenlaPantalla18.

235
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla18.Creacindecarpetasparalostiposdeclases Cada una de estas carpetas contendr a un tipo de clase que sea utilizada en un diagrama de colaboracin. Para iniciar con el desarrollo se debe crear una primera Clase Interfaz con el nombre de Registrar Servicio Bsico, la cual representa a la interfaz del caso de uso descrito en el anterior documento. Para crear en el Rational Rose se debe realizar un clic derecho en la carpeta de Clases Interfaz, de inmediato apareceropcionesdelacualessedebeseleccionarNewyClass,comosepuedeverenlaPantalla19.

Pantalla19.CreacindeunaClasesInterfaz

236
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez realizada esta actividad se debe cambiar de nombre a la clase, en este caso se da el nombre de RegistrarServicioBsicocomosepuedeverenlaPantalla20.

Pantalla20.Cambiodenombredelaclasedeinterfaz Comosepuedeobservar,laclasenollevaelestereotipodeInterfaz,paracambiarelestereotiposedebe realizar doble clic sobre la clase, inmediatamente se visualizar una pantalla donde se de seleccionar en elcampoconelnombredeStereotypeelbondarycomosepuedeverenlaPantalla21.

Pantalla21.SeleccindelEstereotipodeInterfaz Una vez realizada esta actividad se debe realizar un clic en el botn de OK. Se puede observar en la Pantalla22comocambiaelestereotipodelaclase.

237
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla22.VistadelEstereotipodeInterfaz(boundary) Para crear una controladora se debe seguir los mismos pasos excepto la seleccin del estereotipo, para unaclasedecontrolsedebeseleccionarelestereotipocontrolcomosepuedeverenlaPantalla23.

Pantalla24.SeleccindelEstereotipoparalaclaseControl

Como se puede observar, luego de realizar un clic en el botn OK, el estereotipo cambia. Para crear una clase con el estereotipo de Entidad se debe seguir los mismos pasos pero seleccionando el estereotipo de entity. En la pantalla 25 se visualiza los tres tipos de clases, los cuales servirn para iniciar el diagramadecolaboracin.

238
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla25.Tiposdeclasesdeanlisisconestereotipos Para iniciar la creacin del diagrama de colaboracin se deben arrastrar las clases creadas hacia la plantilla del diagrama se colaboracin como se puede ver en la Pantalla 26. Un estereotipo que se debe adicionar al diagrama es el Actor. Esta ltima adicin es para expresar la interaccin del usuario con la aplicacin, esta interaccin debe ser similar a la descrita en el caso de uso. El actor de igual forma debe arrastrarsehacialaplantilladeldiagrama.ParaelejemploserelJefedeCocina.

Pantalla26.IniciodelDiagramadeColaboracin.

Se aclara que las clases que estn presentes en el diagrama salen de la descripcin del caso de uso, muchas veces con un simple anlisis se puede determinar todas las clases que participan en el caso de uso,sinembargoserecomiendadiscutirenelgrupodedesarrollocadaunadeestas. El Jefe de Cocina tiene una relacin con la clase de interfaz, ya que esta le proporcionara las opciones necesarias para realizar su trabajo. Adems, por la descripcin que se tiene del caso de uso Registrar Solicitud de Servicio Bsico debe existir una interfaz. Dentro de la descripcin del caso de uso en las lneas1y2describelanecesidaddeunainterfaz. 239
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para determinar la relacin entre un actor y una interfaz se debe realizar un clic en el botn Object Link , ubicado en la barra de herramientas., realizar un clic en el actor y arrastrar hasta la clase de interfaz,elresultadosepuedeverenlaPantalla27.

Pantalla27.RelacindelActorconlaInterfaz

De la misma forma se puede colocar la relacin entre clases, sin embargo debe existir una lgica y ademsdebeirdeacuerdoconladescripcindelcasodeuso.Enlalnea3deladescripcindelcasode uso de Registrar Solicitud de Servicio Bsico indica que el Actor introducir el nmero de la habitacin para la bsqueda de un cliente, una vez introducida la aplicacin internamente tiene que realizar una bsqueda para encontrar alcliente. Para expresar dentro del diagramade colaboracin la interaccion se debe insertar un Link Message , se debe hacer un clic en este botn y otro en la relacin del actor conlainterfazcomosepuedeverenlaPantalla28.

Pantalla28.LinkMessageparalarelacindeactorconinterfaz Un Link Message sirve para indicar que existir una peticin, en este caso la peticin del actor hacia la aplicacinpormediodelainterfaz.Adicionalmentedeintroduciresteenlacedemensajesedebecolocar un nombre para esto se debe realizar un clic derecho sobre la flecha del mensaje, aparece una ventana emergentedelacualsedebeseleccionar<newoperation>comosepuedeverenlaPantalla29. 240
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla29.AdicionarunaOperacin

Una vez hecha esta actividad aparecer en la parte superior del Link Message, una etiqueta con el nombre de 1:opname(), que representa el nombre de la operacin, como se puede ver en Pantalla 30. Estenombredeoperacindebecambiarse,paraelejemplotendrelnombreBuscarCliente.

Pantalla30.Introducirunaoperacin

Para cambiar el nombre de la operacin se debe hacer doble clic sobre la clase interfaz, lo cual har aparecerunanuevaventanacomosepuedeverenlaPantalla31.

241
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla31.EspecificadordeObjetos

Como se puede ver no se encuentra el nombre del mensaje, para poder visualizar todos los mensajes y atributos de una clase se debe realizar un clic en el botn Browse y luego seleccionar la opcin Browse Class,comosepuedeverenlaPantalla32.

Pantalla32.VisualizarlaClase

242
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez seleccionada esta opcin aparecer una nueva ventana con el nombre de Class Specification, la cualcontienetodaslascaractersticasdeunaclase,comosepuedeobservarenlaPantalla33.Paraelfin deldesarrollodeundiagramadecolaboracinseutilizarlapestaadeOperations.

Pantalla33.EspecificadordeClase

Dentro de la pestaa Operations se debe cambiar el nombre de la operacin realizando doble clic retardado en el nombre de la operacin para luego introducir el nombre de BuscarCliente como se puedeverenlaPantalla34.

Pantalla34.Cambiodenombredelaoperacin 243
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Cada operacin debe contener datos de envo y de retorno, en el caso del ejemplo se debe enviar el Nmero de la Habitacin para que le devuelvael nombre del Cliente. Para especificar los datos de envo se debe realizar doble clic en el nombre de la operacin, lo cual llevar a una nueva ventana que se la puedeverenlaPantalla35.Dentrodeestanuevaventanaaparecernvariaspestaas,delacualsedebe seleccionarDetailparaluegoingresarlosdatosdeenvo.Undetalle,muyimportante,losdatosdeenvo deben estar expresados en la descripcin del caso de uso, no se debe inventarse u omitir seria un defectomuycostoso.

Pantalla35.Pestaaparacolocardatosdeenvio Para adicionar un dato de envo se debe realizar un clic derecho sobre el campo de Arguments, de inmediato aparecer un men emergente varias opciones de las cuales se debe seleccionar Insert, esta opcin adicionara un nuevo dato, al cual se debe cambiar de nombre en nuestro caso el nombre ser NumeroHabitacion, adicionalmente se debe definir el tipo de dato, Rational Rose tiene un conjunto de tiposdedatosquesepuedenseleccionar,sinembargoalcriterioquedesarrollalaclasepuedeescribirel tipodedatoquenecesite.TodaestadescripcinsepuedeverenlaPantalla36.

244
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla36.ConfigurarunDatodeEnvo Undetalle,esquecuandoserealizaeldiseosedebetomarencuentalostiposdedatosdellenguajede programacinparadefinirlostipodedatosyaseadelosdatosdeenvoodedevolucin,yaqueRational Rosetienelapropiedaddegenerarcdigo. Para terminar con la configuracin de la operacin se debe seleccionar el tipo de dato que devolver, este punto debe realizarse en la pestaa de Generar como se puede ver en la Pantalla 37, existe el nombre de la operacin (Name), en nuestro caso BuscarCliente, ms abajo est el tipo de dato de retorno (Return Type), de igual forma Rational Rose tiene varios tipos de datos los cuales pueden ser seccionados, pero el desarrollador puede escribir el tipo necesario. Respecto al ejemplo se devolver Object, representando un conjunto de datos, ya que la aplicacin tiene que devolver el conjunto de datos del Cliente. En el diseo se cambiar por DataSet o DTO, estos sern los tipos de datos que devolverlaaplicacin.

245
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla37.ConfigurarDatodeRetorno

UnavezhechatodasestasactividadessedeberealizarunclicenelbotndeOKhastavereldiagramade colaboracin.ComosepuedeverenlaPantalla38.

Pantalla38.FindelaConfiguracindeunaOperacin La operacin se puede entender como un mtodo de una clase, aunque varios autores la denominan Servicio, ya que se considera a una clase como servidora y la otra, que le solicita un servicio, como Cliente. Para continuar con el desarrollo del diagrama de secuenciase realiza asociaciones entre laclase interfaz ycontroladora,ademsentrelacontroladorayentidadcomosepuedeverenlaPantalla39.

246
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla39.Asociacinentreclases

Una vez hecha esta actividad se debe colocar las operaciones como se puede ver en la Pantalla 40. A partir de la Interfaz hacia la controladora se considera operaciones internas de la aplicacin. Un error comn es la aparicin de datos en las operaciones, si aparece un dato debe ser explicado de forma que el diseador de la aplicacin comprenda su origen. En el ejemplo, solo existe un dato de envo que es el NumeroHabitacin. Cada vez que se ingresa un Link Message en el diagrama se ira enumerando incrementalmente.Cadavezquesecreaunaoperacinseircreandounservicioenlaclasequeapunta elLinkMessage.

Pantalla40.Primerasoperacionesdelasclases

La operacin 3:BuscarCliente(), devolver un dato de tipo Integer, ya que necesitamos un identificador del Cliente para obtener todos sus datos para enviar a la interfaz. Se necesita crear otra clase entidad conelnombredeCliente,lacualcontendratodoslosclientes.Unerrorcomnescolocarelnombrede unaclaseenplural,nopuedecolocarseporqueenunainstanciasolorepresentaaunsoloobjeto. Como se puede ver en la Pantalla 41, se adiciona la clase Cliente a la cual se le solicita los datos del cliente que est en una habitacin, el nombre de la operacin es ObtenerCliente, esta operacin devolver un tipo de dato Object, el dato de envo ser de tipo Integer que corresponde al identificador delclienteobtenidodelaclaseHabitacin. 247
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla41.AdicionarClaseCliente

En la lnea nmero 5 de la descripcin del caso de uso la aplicacin debe mostrar dos interfaz distintas una de estas tiene que permitir registrar a las comidas y la otra debe permitir registrar las bebidas, por esta lnea dentro de la descripcin del caso de uso se debe crear dos clases interfaz, realizar las relacionesyadicionarlasoperacionesparasuvisualizacin.Elresultadosepuedeverenlapantalla42.

Pantalla42.AdicindedosClasesInterfaz

Enlalnea6deladescripcindelcasodeusoelJefedeCocinaimprimelaBoletadeServicio.LaPantalla 43 muestra como tiene que ser la secuencia para recuperar la informacin que generar la Boleta de Servicio.

248
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla43.GenerarBoletadeServicio

Como se puede observar, la secuencia que se describe en el caso de uso debe estar presente en el diagramadecolaboracinespecialmentelasinteraccionesquetieneelactorconlaaplicacin. De esta misma forma se debe realizar, por lo menos, un diagrama de colaboracin por cada realizacin quesedetermineporcadacasodeuso.

249
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DIAGRAMADEPAQUETES Definicindepaquetes Es un elemento empleado para la estructuracin del modelo en partes pequeas ms fcilmente manejables. Un paquete es un mecanismo de propsito general para organizar elementos en grupos. Constituyenunaformadeadministrarlacomplejidaddelmodelo. Se utilizarn los paquetes para clasificar las realizaciones por cada caso de uso, en si se clasificarn los casosdeuso.UnpaquetesepuedeconvertirenunSubsistemadelaaplicacindentrodeldiseo. Antes de realizar el diagrama de paquetes se debe analizar la forma de clasificar a los casos de uso. Se puederealizarlaclasificacinpor: Por cada Actor. Es posible desarrollar un subsistema por cada actor, esto implica que ser una aplicacinexclusivaparaunactor. Por funcionalidad. Es posible que varios actores utilicen las mismas funcionalidades de la aplicacin,porestepuntodevistasedebeanalizarcadacasodeusoycadaactor. Una tercera opcin para determinar los paquetes es la mezcla de las dos anteriormente descritas, es decirclasificarporactoryporfuncionalidad. Dentro del ejemplo de desarrollo utilizaremos la clasificacin tanto por cada actor como por funcionalidad.Lacreacindelospaquetesessencillayseveacontinuacin. Enelanteriordocumentosehavistolacreacindelasrealizaciones.Uncasodeusopuedetenerdeuna amsrealizaciones.EldesarrolloterminenlaPantalla1.

Pantalla1.RealizacionesdeCasosdeUsodelAnlisis 250
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Ahora,definiremoslospaquetesdelaaplicacinqueafuturosepuedenconvertirenSubsistemas.Para realizarestaactividad,elprimerpasoescrearunpaqueteenlacarpetadeAnalysisModel.Paracrearse deberealizarunclicenlacarpetadeAnalysisModel,seleccionarlaopcindeNewyPackagecomose puedeverenlaPantalla2.

Pantalla2.CrearunPaquete Esta opcincrear un paquete, alcual tendrel nombre de Seguridad.Si seanaliza los casos de uso que darn la seguridad de la aplicacin se puede seleccionar a Autenticar Empleado y Cambiar Contrasea. EstasdoscarpetasquerepresentaaloscasosdeusoselasdebemoveralpaquetedeSeguridadcomose puedeverenlaPantalla3.

Pantalla3.DeterminarlosCasosdeUsodelPaqueteSeguridad

251
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Paracolocarlascarpetasquerepresentanaloscasosdeusodentrodeunpaquetesolosedebearrastrar hastaeste. Como se puede ver el paquete Seguridad es una funcionalidad de la aplicacin. Los casos de uso de Gestionar Bebidas, Gestionar Comidas y Gestionar Comidas, son parte de la administracin de la aplicacin, estos son realizados por un actor con el nombre de Administrador, por lo cual, se toma la determinacin de tener un nuevo paquete con el nombre de Administrar. Como se puede ver en la Pantalla4.

Pantalla4.PaqueteAdministrar

Se tendr dos paquetes mas, los cuales tendr como nombre Gestionar Hospedaje y Jefe de Cocina. ComosepuedeverenlaPantalla5.

Pantalla5.PaquetesdelaAplicacin
Ingeniera de Sistemas Informticos

252

Universidad Privada del Valle Unidad Acadmica Sucre

Como se puede ver se a agrupado por funcionalidad y por actores, un paquete que corresponde a un actor es el de Jefe de Cocina. Esta claro que se puede tener otra solucin para la determinacin de los paquetes, esta actividad esta en funcin del anlisis de la persona o grupo que est desarrollando la aplicacin. Una vez que se determinen a todos los paquetes se debe determinar sus relaciones entre cada uno de estos. Esta actividad sela hace dentro de un diagrama de clases. Se realizar un clic derecho elacarpetadeAnalysisModel,seseleccionalaopcindeNewyClassDiagramcomosepuede verenla Pantalla6.

Pantalla6.DeterminarelDiagramadePaquetes

Se debe dar el nombre de Diagrama de Paquetes, para luego realizar doble clic sobre este, lo cual mostrar una plantilla donde se debe colocar todos los paquetes, esto se debe realizar arrastrando a cada uno de los paquetes encontrados hacia la plantilla. El final de esta actividad se puede ver en la Pantalla7.

Pantalla7.PaquetesenlaPlantilla

Elltimopasoquefaltaesdeterminarlasrelacionesentrepaquetes.Estosedeberealizarpormediodel botnDependencyorInstantiates
Ingeniera de Sistemas Informticos

ubicadoenlabarradeherramientas.Parapoderrelacionaralos 253

Universidad Privada del Valle Unidad Acadmica Sucre

paquetessedeberealizarunanlisisdelasclasesqueparticipanenlasrealizacionesdeloscasosdeuso, es muy posible que un paquete utilice una clase entidad de otro paquete. Se puede ver el diagrama de paquetesdelejemploenlaPantalla8.

Pantalla8.DiagramadePaquetes ElpaquetedeGestionarHospedajeutilizarelPaquetedeSeguridad. ElpaquetedeSeguridadutilizareldeAdministrar. ElpaquetedeJefedeCocinautilizareldeSeguridadyeldeAdministrar. Si la aplicacin es grande, se recomienda realizar varios diagramas de paquetes para su mejor comprensin, otro motivo es que existan varios equipos de desarrollo apara realizar un conjunto de paquetes.

254
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

CAPTULOIII
DISEODEAPLICACIONESWEB
Objetivo Profundizarenlastcnicasdediseodeaplicacionesdecualquiertipo(clsicasyWeb).

255
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DEFINICINDELAARQUITECTURA Se ha pasado toda la fase de anlisis, la cual permite refinar los requisitos y traducir la interaccin del usuario con la aplicacin a un lenguaje del programador. Se seala en documentos anteriores que no es necesario realizar el anlisis, por este motivo la plantilla que nos presenta Rational Rose para el desarrollo de la parte de anlisis no tiene una estructura, sin embargo en el diseo nos presenta una estructuracomosepuedeverenlaPantalla1.

Pantalla1.EstructuradelDiseo Cada una de estas carpetas se explicar a medida que se avance en el desarrollo de la aplicacin de ejemplo. El Diseo de una aplicacin es una etapa muy difcil, ya que deben participar distintos especialistas para obtener una solucin que cumplacon los requisitos no funcionales y para que la tecnologa seautilizada ensutotalidad. RecordarqueelAnlisissedeberealizarsolocuandoseanecesario,comoporejemplo: 1. ParafacilitarplanificacindeDiseoeimplementacin. 2. Parafacilitarvisingeneralrigurosaanterecinllegadosquedebenunirsealdesarrollo. 3. Dado que algunas partes de la aplicacin requieren diseo e implementacin alternativos o diferentes(Facilidaddetransporte). 4. Cundomsdeunaempresadesoftwarevayaahacerofertassobreunamismaespecificacin. 5. Cuandolaaplicacinseconstruyeenbaseaunaaplicacinheredadacompleja. 256
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

La arquitectura es uno de los pasos ms importantes del desarrollo de software, implica estar reunido con varios especialistas para armar el esqueleto de la aplicacin y las bases fundamentales en las cuales se va a desarrollar cumpliendo con los requisitos. Un punto muy importante, es que el desarrollo de la arquitectura es iterativo e incremental, a medida que se realizan los ciclos de desarrollo se va completando y hacindose ms precisa. A continuacin veremos algunas definiciones antes de desarrollarlaarquitectura. DEFINICINDELAARQUITECTURA Laarquitecturadebemostrarloselementosmssignificativosdealtoniveldelaaplicacin,esdecir,que debe describir de forma completa las caractersticas ms importantes de la aplicacin, ya que servir para distintos participantes, tanto para los usuarios, diseadores, diseadores grficos, analista, contratistas, diseadores de base de datos, administradores de seguridad, administradores de informacin, probadores de aplicacin, entre otros. Por este motivo es uno de los pasos ms importantesparaeldesarrollodelaaplicacin. La arquitectura se vincula de distintas formas: uso, funcionalidad, desempeo, la facilidad de reutilizacin, la facilidad de comprensin, la esttica en los componentes grficos, restricciones tecnolgicasyeconmicas,entreotras. Elpropsitodelaarquitecturasedaenvariossentidos: El control intelectual, permite describir el conocimiento necesario para todos los involucrados y sobretodoalaspersonasqueseincluyaneneldesarrollo. Eladministrarlacomplejidadymantenerlaintegridad. Las bases de reutilizacin, establece como se puede reutilizar los componentes u otros subsistemas. Las bases de administrar el proyecto, permite establecer cambios en la planificacin tanto para laspersonasqueparticipandelproyectocomoparaeltiempodeejecucin. Elmanejoadecuadodelosriegosalmomentodelasiteraciones Una de las decisiones ms importantes que debe tomar un arquitecto de aplicaciones consiste en determinar el lugar donde se implementarn los componentes de la aplicacin. Al igual que sucede en todoslosaspectosdelaarquitecturadeaplicaciones,lasdecisionesdeimplementacinfsicaimplicanun equilibrio entre el rendimiento, la reutilizacin y la seguridad, entre otros factores. Las directivas organizativas relativas a la seguridad, las comunicaciones y la administracin operativa tambin afectan alasdecisionesdeimplementacinquesellevenacabo. PortodosestospuntosintroductoriossepuededefinirlaArquitecturadeSoftwarecomo: Unadescripcinsimplificada(unaabstraccin)deunsistemadesdeunaperspectivaparticularo punto de vista superior, cubriendo un asunto particular y omitiendo entidades que no son relevantesaesaperspectiva 257
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Una definicin que est ligada a la arquitectura es Diseo arquitectnico, este es el proceso de diseo inicialparaidentificarlossubsistemasyestablecerunmarcodetrabajoparaelcontrolylacomunicacin delossubsistemasdandocomoresultadolaArquitecturadeSoftware. DEFINICINDELPATRNDELAARQUITECTURA La definicin del patrn de arquitectura requiere de un anlisis de las diferentes variantes disponibles y delosrequisitosnofuncionalesdelaaplicacin.Existendosvariantesgeneralesyson: Cliente Servidor. Se basa en un conjunto de nodos que realizan la funcin clientes y de otros que realizan la funcin de servidores. La lgica del negocio est distribuida entre clientes y el servidor. Los clientes llaman a los servicios. Es un modelo de sistemas distribuido que muestra como los datos y el procesamiento se distribuyen a lo largo de varios procesadores. Esta compuestopor: o ConjuntodeServidoresindependientes.Ofrecenserviciosaotrossubsistemas.Servidor delaBD,servidordelasreglasdelnegocio o Conjuntodeclientes.Llamanalosserviciosdelosservidores.Porlogeneralson subsistemas.Existenvariasocurrenciasdeunprogramacliente.Concurrencia. o ReddeDatos.Permitealosclientesaccederaestosservicios AplicacionesWeb.LasaplicacionesWebseclasificanen: o ClienteWebDelgado:Todalalgicaenelservidor.Clienteconmnimapotenciadeclculo onosetienecontroldelaconfiguracin.Ejemplo,Aplicacionesdecorreoelectrnico. o ClienteWebGrueso:Significativacantidaddelalgicadelnegocioserealizaenelcliente. Apropiada para cuando se puede suponer cierta configuracin en el cliente y versin del navegador. El propsito fundamental es la mejora de la interfaz usuario para ejecutar lgica del negocio en el cliente. Ejemplo. Validacin de Campos de un Formulario utilizandoAppletocontrolesActiveXparalalgica. o Web Distribuido (Web Delivery): Recibe es nombre porque la Web es usada como un mecanismo de distribucin para un tradicional sistema cliente servidor de objetos distribuidos. Es apropiado si hay un significativo control sobre la configuracin de la red y elcliente o Sumayorfortalezaeslahabilidaddeutilizarobjetosdelnegocioexistentesenelcontexto. Adems de HTTP usa otros protocolos como IIOP y DCOM para los objetos distribuidos, adicionalmenteSOAP Se entiende como Aplicacin Web como: Software que utiliza protocolos e interfaz web que cambian el estadodelnegocio. Dentro de la aplicacin de ejemplo utilizaremos un Cliente Web Delgado juntamente con una Web Distribuida.UtilizaremosaplicacioneswebqueutilizarnServiciosWeb. Untrminoquehaaparecidoconmayorfuerzadesdefinesdelosaos90seslaArquitecturaBasadaen Servicios,lacualpermiteelusodecualquiercomponentedesoftwareexternoalaaplicacinquebrinde 258
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

servicios. La tecnologa de los Servicios Web es uno de los ejemplo. Los Servicios desde el punto informticosestcompuestopor: Interfaz: A la cual los mensajes inboind son enviados. Fachada que muestra la lgica del negocioimplementadaenelservicioalosclientespotenciales. Contrato: Conjunto de mensajes que pueden ser intercambiados con un servicio para desarrollar unatareaespecficadelnegocio. UnServicioWebnoesmsqueuncomponentetradicionalquesepuedeincluiralaaplicacintomando encuentaque: Encapsulansuspropiosdatos. Nosonpartedelaaplicacin. Permitelaintegracinconotrastecnologasyaplicaciones Existen muchos patrones de arquitectura, ya sea de Microsoft, como de IBM o J2EE, cada una de estas tratan de solucionar un problema especfico dentro del desarrollo de software, adicionalmente debe cumplir los requisitos no funcionales. Veremos de manera general la arquitectura de desarrollo que propone Microsoft, la informacin completa se la puede ver en la siguiente direccin http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnpatterns/html/Esp.asp. Cada una de estas arquitecturas est dividida en diferentes capas, que son agrupaciones lgicas de los componentesdesoftwarequeconstituyeunaaplicacinonegocio Microsoft inicia explicando la arquitectura, definiendo y explicando las capas en las cuales se puede dividirlaaplicacin,estascapassirvenparaencapsularcomponentesdeacuerdoconelcomportamiento quetendrnalmomentodelaejecucindelaaplicacin.EstosepuedeobservarenlaFigura1.

259
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Figura1.Definicindelastrescapas.

La Capa de Presentacin define la interfaz y la lgica de la interfaz. La Capa de Negocio (Domain Layer) define la lgica de comportamiento de la aplicacin, esta capa debe contener la lgica del negocio y las tareas, incluyendo a los servicios necesarios para la aplicacin y otras aplicaciones, en esta capa deben definirse a los Servicios Web. La ltima capa, Capa de Acceso a los Datos es la encargada de realizar la logia de acceso a los datos, datos que pueden estar almacenados en una base de datos o archivos XML, esta capa incluye la configuracin del acceso a otros Servicios Web o a otras aplicaciones (Agentes de Servicio). Cada una de las imgenes que se presentan en la Pantalla 2 explican de manera completa las distintascapasenlascualessedebededividirlaaplicacin,cadaunadeestastieneunpropsito,unode estos,queeselmsimportante,eseldesarrolloenparalelo,yaquecadacapaesindependiente,locual permitedividireldesarrollodesoftware. Esta arquitectura que define Microsoft ser la que se utilizar para el desarrollo de la aplicacin de ejemplo,sedividirentrescapaslascualescumplirnconladefinicinanteriormentedescrita. Para configurar el Rational Rose y poder trabajar con el patrn de arquitectura de tres capas, se debe activar el diagrama con el nombre de ThreeTier Diagram, el cual permitir incluir dentro de la plantilla demodelajetrescarpetasadicionalesyundiagramadeclasesconunaestructuraespecialqueinvolucra lastrescapas. ParaactivarsedebehacerunclicenlaopcindelmenprincipalTools yOptionscomosepuedeveren laPantalla2. 260
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2.ConfigurarModelodeTresCapas Una vez hecha esta actividad aparecer una ventana con varias pestaas, de las cuales se debe seleccionarDiagram,sepodrvisualizarvariasconfiguracionesdelosdistintosdiagramasquesepueden realizar en el Rational Rose. De todas estas opciones se debe activar la opcin de ThreeTier Diagram ubicadaenlaparteinferiordelmarcoconelnombredeDisplay,comosepuedeverenlaPantalla3.

Pantalla3.SeleccionarelDiagramadeTresCapas

Luego,sedeberealizarunclicenelbotndeaceptar.Paraqueseactivecorrectamentelastrescapasse debe salir del Rational Rose y volver a ingresar, cuando se realice esta actividad el entorno de modelaje variarcomosepuedeverenlaPantalla4.

261
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla4.EntornodeModelajeparaelPatrndeTresCapas

Comosepuedeverexisteundiagramaqueclasesquecontieneunaestructuradetrescapas.Laprimera queapareceesladeUserServices,lacualcorrespondealacapadepresentacin,lasegundaesBusiness Services,lacualcorrespondealacapadelnegocio,yporltimoDataServicesquecorrespondealacapa deAccesoalosDatos. DEFINICINDELMODELODELAMINIARQUITECTURANOMARCODETRABAJO El marco detrabajo define la utilizacin de las tres capas y la divisin de cada unade estas.Cada una de las capas son simplemente agrupaciones lgicas de los componentes de software que conforman a la aplicacin o servicio. Cada una de estas debe ayudar a diferenciar entre los distintos tipos de componentesrespectoalastareasquerealizan,estofacilitaraldiseoenrelacindelareutilizacinen lasolucin. El Marco de Trabajo (Framework) de la aplicacin debe describir a los componentes que se utilizarn para el desarrollo de la aplicacin, de esta forma se tiene un orden para el desarrollo y se incrementa el entendimientodetodoslosdesarrolladores. ExistendistintostiposdeMarcosdetrabajo,veremosalgunosdeestoscomoejemplo:

262
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Figura2.DiagramadetrescapasparaJ2EE

ElmarcodetrabajodelaFigura2hasidoutilizadoparadesarrollarunaaplicacinconJava.

Figura3.DiagramadetresCapas

LaFigura3muestraunaestructuracompletadelaplanificacindeunmarcodetrabajoparaJ2EE.

263
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Figura4.MarcodeTrabajopropuestopor.NET

La Figura 4 muestra, de forma completa el marco de trabajo que propone .NET para el desarrollo de aplicaciones. De esta ltima seleccionaremos algunas de lascarpetas para del desarrollo de la aplicacin de ejemplo. Cada carpeta tiene un propsito para la aplicacin. Una de las importantes es la de Interfaces de los Servicio, esta carpeta debe contener a las interfaces de los Servicios Web, las cuales deben de interactuar con la Capa de Presentacin. En el primer ejemplo, que se ha desarrollado en el primercaptulo, la interfaz del Servicio Web estaba compuesta por un archivo con la extencin .asmx, el cualrepresentaaunServicioWeben.NET

Figura5.MarcodeTrabajoparaunProyectodeDesarrolloconNET

264
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

La Figura 5 muestra un nuevo marco de trabajo que ha sido utilizado para realizar una aplicacin de auditora financiera. La aplicacin tena que estar en Web, lo cual debera permitir la comunicacin de los distintos auditores que podan estar en distintas partes de la empresa realizando la auditora, adicionalmente se tena que tener una reutilizacin de cdigo ya que se deba de desarrollar una aplicacin WIN32 para los resultados de la aplicacin y escribir el acta final de la auditora y la importacin de los datos analizados para encontrar evidencias de las transacciones realizadas por los funcionariosdecontabilidadyadministracin. Paralaaplicacindeejemplosetendrn: CapadePresentacin(UserServices) WebForm.ContendrlaspaginasWebconlaconfiguracinbsicadelainterfaz. ControlesUsurio. Contendr Controles de Usuario (User Control) los cuales nos ayudarnacapturarlosdatosendistintosformularios. MasterPage.ContendralaspginasdeconfiguracinparalosWebForm. ControlInterfaz. Contendr a las controladoras de interfaz, las cuales tendrn la responsabilidad de proporcionar los datos y una lgica de estos realizando consultas aServiciosWeb. CapadeNegocio(BusinessServices). ServiciosWeb.ContendralainterfazdelosdistintosServiciosWebdelaAplicacin. Entidades.ContendralasClasesentidadopersistentesdelaaplicacin. Controladoras. Contendr a las controladoras del negocio, las cuales tendr un roles paraacceder,filtrar,buscar,entreotros. Reutilizables.Contendraobjetosquepuedenserreutilizados,comoporejemplolos DataSet definidos o el patrn DTO (Data Tranfer Object), los cuales permitirn manipular los datos de manera off line (Fuera de conexin) del Gestor de base de datos. CapadeAccesoalosDatos(DataServices) Agentes de Servicio. Contendr a controladoras que permitan acceder a otros Servicios Web que no pertenecen a la aplicacin en desarrollo pero necesitan datos de estas. Tambin se puede utilizar para realizar la comunicacin entre subsistemas delaaplicacin. SQLHelper. Es una clase ya creada que permite el acceso al gestor de base de datos. Serncomponentesfronteras. ParapoderdocumentarenelRationalRoseestasdistintascapasdeterminadassedebeseguirvarios pasosquesedescribenacontinuacin. Una vez visualizada la plantilla delModelo se Servicio de Tres Capas que permite describira las distintas capas de desarrollo se debe crear carpetas en cada una de estas. Para esto se debe hacer un clic en el botn de Package y luego en la capa donde se incluir la carperta como se puede ver en la Pantalla 5. A lacarpetaseledebecambiardenombre,enestecaso,elnombreserWebForm.

265
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla5.Adicindeunacarpeta

De la misma forma se debe crear cada una de las carpetas que ayudarn a organizar la aplicacin, el resultado final de la creacin de las carpetas (capas) est en la Pantalla 6. El marco de trabajo que se ha definido no es el nico adecuado para la aplicacin de ejemplo, puede incrementarse otras carpetas o tambineliminarlas.Sequiereexplicarqueestdeacuerdoalosrequisitosfuncionalesynofuncionales, adems de la tecnologa que puededisponer la institucin a la cual se leva a implantar la aplicacin. De todas formas, en el marco de trabajo, propuesto, se cumple con algunas de las recomendaciones de Microsoft.

Pantalla6.DiagramadeTresCapassinrelaciones

Parafinalizarcorrectamenteconeldiagramasedebeadicionarlasdependenciasentrelascarpetas.Esto se hace por medio del botn Dependency or Instantiates , se debe realizar un clic en una de las carpetas,arrastrarelmousehastalacarpetadelacualdependerlaprimera.Deestaformasefinalizar ladefinicindelMarcodetrabajoparalaaplicacin.ElresultadosepuedeverenlaPantalla7.

266
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7.MarcodeTrabajofinal

Las dependencias son muy importantes ya que dan una idea general de cmo se relacionarn los componentes (Clases) dentro de la aplicacin. Como por ejemplo, la carpeta de ControlInterfaz tendr instancias de componentes (Clases) de los ServiciosWeb, de la misma forma para la carpeta de Controladoras, esta tendr la responsabilidad de manipular instancias de varias carpetas como se puede verenlaPantalla7. IDENTIFICARSUBSISTEMAS Se debe entender como Subsistema como una aplicacin cuya operacin no depende de los servicios brindados por otros subsistemas. Los subsistemas se descomponen en opciones y tienen interfaces definidasparalacomunicacinconotrossubsistemas. Lossubsistemasdebenser: Comprensibles.Fcildeentendersusemntica,surazndeexistencia, responsabilidades,caractersticas,entreotros. Cohesivos.Lasclasesdebenconformarungruponatural Pocoacoplado.Lasclasesdebenestarpocorelacionadasconexternas Aunque se tiene una vista general de las clases que participarn en la aplicacin se debe discutir la relacin de los subsistemas, no se debe olvidar que la definicin de la arquitectura es iterativa incremental.Enestaoportunidadsedapautasgeneralesparainiciareldiseoylaimplementacin. Los subsistemas nacen de los paquetes que se han determinado en el Anlisis, se debe tomar en cuenta que los paquetes no son subsistemas, para que logren ser subsistemas debe analizarse su comportamientoydiscutirsicumpleconlaarquitectura,enaplicacionespequeasesfcildeterminarsi un paquete ser un subsistema. Para aplicaciones que tienen ms de 10000 lneas de cdigo, lo cual implica una administracin distinta a las pequeas, se hace difcil determinar los subsistemas, por este motivo el equipo de desarrollo debe reunirse a discutir hasta definir los subsistemas. No se debe olvidar que en aplicaciones grandes se desarrolla por ciclo, cada ciclo tiene que ser analizado para determinar los subsistemas, es muy importante que el equipo de desarrollo sea futurista, es decir, que vea un poco losciclosdedesarrolloposterioresparadeterminarlossubsistemas. 267
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Paralaaplicacindeejemplolossubsistemassernlossiguientes: Seguridad. Ser un subsistema que permita autenticar y dar autorizacin a los usuarios. Entendiendo Autenticar como: verificar que la persona es quien dice ser y Autorizacin como: verificar que la persona tiene permitido o denegado el acceso a undeterminadorecursos. Cocina. Ser un subsistema que permitir el registro de los servicios de comida y bebidasolicitadosporelclientequesealojaenelhotel. Hospedaje. Ser un subsistema que permita ayudar a registrar y administrar el ingresodelosclienteshaciaelhotel. Administracin.Serunsubsistemaquepermitagestionarlasdistintasentidadesque participanen la aplicacin, adems de permitirdefinir la autorizacin de las distintas personasqueusarnlaaplicacin. ParadefinirdentrodeRationalRosesedebeseguirlassiguientesactividades. Se debe realizar un clic en la carpeta de Design Model, las carpetas de Layer ha sido substituida por las capas de User Services, Busness Services y Data Services, por lo tanto se debe eliminar. La carpeta de UseCase Realitations se debe eliminar para luego crearas en cada carpeta de los subsistemas que se determinen. ParacrearalosSubsistemassedebehacerunclicderechoenlacarpetadeDesign Model,deinmediato aparecern varias opciones de las cuales se debe seleccionar New y Package, como se puede ver en la Pantalla8.

Pantalla8.CrearCarpetaparaunSubsistema

Estaactividadcrearunacarpeta,aestaseledebecambiardenombreporunodelossubsistemas,enel casodelejemploserSeguridad,comosepuedeverenlaPantalla9. 268


Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla9.PrimerpasoparacrearunSubsistema Una vez creada la carpeta se tiene que definir el estereotipo de Subsistema, para realizar esta tarea se debe realizar doble clic sobre la carpeta de Seguridad, aparecer la Pantalla 10, de la cual se debe seleccionar el estereotipo de Subsystem dentro del campo de Stereotype. Como se puede ver en la Pantalla10.EstaactividadservirparadefinirunSubsistema.

Pantalla10.DefinirunSubsistema

Deestamismaformasepuedeadicionarlossubsistemasrestantesquesehandeterminado,elresultado deestaactividadsepuedeverenlaPantalla11.

269
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla11.DefinicindelosSubsistemas

Cada subsistema puedecontener realizacionesde diseo que correspondan a una realizacin de anlisis o, como se ha explicado anteriormente se puede obviar el anlisis y directamente se puede pasar al diseo, por este motivo una carpeta que representa a un subsistema puede contener realizaciones de casos de uso. Adems de las realizaciones, puede contener al Diagrama de Navegacin, Diagrama de Clases Web, a los Diagramas de Interaccin por cada realizacin de diseo, entre otros. No se debe olvidarqueunsubsistemapuedeserunaaplicacinindependiente. DEFINICINDELOSSERVICIOSWEB Es recomendable tener un Servicio Web por cada Subsistema, sin embargo se debe realizar un anlisis antesdedefinirlos.Elanlisisserefiereaverlareutilidaddelcdigorespectoaaplicacinynorepetirel cdigo. Existe un tema que estenconsideracin dentro delos investigadores de softwarerespecto a la utilizacin y organizacin del cdigo, el nombre de esta rama que pertenece a la ingeniera de software esRefactorizacin(Refactoring). Para el ejemplo se utilizar un servicio web para cada subsistema. Para documentar esta actividad se debe realizar un clic derecho en la carpeta de ServiciosWeb en la carpeta que pertenece a la capa de BusinessServices,sedebeseleccionarlaopcindeNewyClasscomosepuedeverenlaPantalla12.

270
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla12.DefinirunServicioWeb

SeutilizarlasletrasdeSWpararepresentaraunServicioWeb.Deestaformatendremoscuatroclases comosepuedeverenlaPantalla13.

Pantalla13.DefinicindelosServiciosWeb

Un Servicio Web debe ser considerado como una frontera, es decir, como una interfaz. Entonces, se debecambiarelestereotipoaboundary.ElresultadodeestecambiosepuedeverenlaPantalla14.

271
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla14.DefinicindelosServiciosWebterminada DIAGRAMADESUBSISTEMAS El diagrama de subsistemas es similar al diagrama de paquetes, pero es importante desarrollar nuevamente ya que pueden existir cambios dentro de los subsistemas, no debe olvidarse que al definir los subsistemas se debe pensar en la tecnologa de software, hardware y el marco de trabajo que se definan. Para definir el diagrama de subsistemas se debe utilizar el diagrama por defecto con el nombre de ArchitectureOverviewPackageandSubsystemLayeringcomosepuedeverenlaPantalla15.

Pantalla15.DiagramaparadescribirlasasociacionesdelosSubsistemas Para desarrollar el diagrama de subsistemas se debe realizar doble clic sobre Architecture Overview Package and Subsystem Layering, aparecer una plantilla en la cual se debe arrastrar los subsistemas definidosyrealizarlasasociaciones.ElresultadodeestaactividadsepuedeverenlaPantalla16.

272
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla16.DiagramadeSubsistemas

DEFINICINDELASCLASESMSSIGNIFICATIVAS Paraterminarconladefinicindelaarquitecturadesoftwaresedebedeterminarlasclasespersistentes ms significativas para la aplicacin. Se debe entender como Clase Persistente a una clase que perdure en el tiempo a pesar de la eliminacin de la aplicacin. Generalmente, se compara con una tabla que pertenezcaaunabasededatos. La definicin de estas clases se ir perfeccionando a medida se vayan completando los ciclos de desarrollo, no olvidar que la definicin de la arquitectura se ira completando a medida que el desarrollo delaaplicacinsetermine. Para describir a las clases ms significativas se debe utilizar el diagrama de clases con el nombre de Architecturally Significant Model Element. Por qu colocar en estos lugares?, Rational tiene otra aplicacin que ayuda a elaborar la documentacin denominada Rational SODA. En la Pantalla 17 se puedeobservareldiagrama.

Pantalla17.DiagramadeClasesparaloselementosmssignificativos Se debe realizar doble clic a este diagrama, lo cual mostrar una plantilla para describir el diagrama de clases. Las clases que se determinen debes de estar ubicadas en la carpeta de Business Services y Entidades, ya que cada una de estas ser una entidad dentro de la aplicacin, como se puede ver en la 273
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla 18. Una vez creadas las clases se las debe arrastrar al diagrama de Architecturally Significant ModelElement.

Pantalla18.CrearunaclaseEntidad

Secrearnlassiguientesentidadesparaelejemplo: Habitacin.EstaentidadrepresentaauncuartodisponibleparaelCliente. Reservacin.Estaentidadrepresentaalacontratacinsinconfirmacindeuncliente conelhotel. Cliente. Esta entidad representa a la persona que est interesada en hospedaje dentrodelhotel. Bebida.Estaentidadsignificalasposiblesbebidasquepuedesolicitarelcliente. Comida.Estaentidadsignificalasposiblescomidasquepudesolicitarelcliente. Recepcionista.Estaentidadsignificaunaposiblepersonaqueatiendalaconfirmacin deunahabitacinolasalidadelhoteldelcliente OrdenServicio. Esta entidad significa el registro de una orden de servicio ya sea a la habitacincomounserviciobsico. Se debe tratar que no existan caracteres especiales o poco comunes dentro de los lenguajes de desarrollo.Comoporejemplolasvocalesconacento. Una ayuda para encontrar estas entidades es el diagrama de colaboracin que se ha desarrollado en la etapa de anlisis, si es que no se ha desarrollado el anlisis de debe descubrir las clases con la ayuda de ladescripcindeloscasosdeuso. EnlaPantalla19sepuedeveralasclasesmencionadasenlacarpetaquerepresentalacapadelnegocio.

274
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla19.Entidades(Clases)paralaarquitectura Una vez creadas se debe arrastrar cada una de estas hacia el diagrama de elementos ms significativos. ComosepuedeverenlaPantalla20.

Pantalla20.Diagramadeelementossignificativossinasociacin No se debe colocar en esta etapa los posibles atributos que pude tener una clase, ya que no se conoce correctamenteaestos.Solosedebecolocareltipodeasociacinquetienenentrecadauna. Unavezrealizadaestaactividadsedebecolocarlasasociacionesdeformabsicaconlaayudadelbotn Unidirectional Association . Se debe realizar un clic sobre el botn sobre una de las Entidades (Clases)y luego arrastrar hacia otra Entidad. El resultado de esta actividad se la puede ver en la Pantalla 21.

275
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla21.DiagramadeElementosSignificativosconasociacin

Comosepuedeobservar,dentrodeldiagrama,existeunanavegabilidadlacualseladebeeliminar.Para eliminar la navegabilidad se debe realizar un clic derecho sobre la direccin de la asociacin como se puede ver en la Pantalla 22. Al realizar esta actividad se visualizar una ventana con varias opciones de las cuales se debe seleccionar Navigable, esta opcin permite determinar si existe una navegabilidad entrelasclases,estasedebeutilizarcuandoseanecesario,esdecir,cuandonoesclaralaasociacin.

Pantalla22.Determinandolanavegabilidadentreclases

De esta forma se debe eliminar la navegabilidad entre las otras clases. El resultado de esta actividad se puedeverenlaPantalla23.

276
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla23.Asociacionesentreclases

La asociacin entre clases tiene muchas caractersticas, estas se las ver de forma completa en otro documento, sin embargo, se tomar en cuenta la multiplicidad. Para realizar esta actividad se debe tomar en cuenta los dos extremos de la lnea de asociacin, tomaremos de ejemplo las clases de RecepcionistayReservacin. Se debe realizar un clic derecho en la asociacin en la parte izquierda, de inmediato aparecer una ventana con varias opciones de las cuales se debe seleccionar Multiplicity, por anlisis se debe seleccionarentrelasopcionesqueaparecenenlaPantalla24.

Pantalla24.Determinandolamultiplicidadenlaparteizquierdadelaasociacin EnelcasodelejemplounRecepcionistaregistradeunaamuchasreservaciones.Paradeterminarlaotra relacin de una muchas se debe realizar clic derecho en la parte derecha de la relacin como se puede verenlaPantalla25. 277
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla25.Determinandolamultiplicidadenlapartederechadelaasociacin De esta forma se debe realizar para las otras asociaciones. El resultado se puede observar en la Pantalla 26.

Pantalla26.Diagramadeelementosmssignificativos

De esta forma se ha desarrollo la arquitectura de la aplicacin. Como sea dicho anteriormente para la determinacin de la arquitectura debe participar personas con conocimiento especfico. No se debe olvidarqueserealizaunejemploparaunaaplicacinpequea.

278
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

MAPADENAVEGACIN EnestedocumentoseiniciaelDiseodelaaplicacinconstruyendoelMapadeNavegacin,elcual permitirdescribirdeformagenerallanavegacindelaaplicacinwebsevaadesarrollar.Antesde iniciarseveralgunosdelosestereotiposquepermitendescribirunaaplicacinweb. Se debe diferenciar un Sitio Web de una Aplicacin Web. El primero solo publica informacin, el cual no cambia su estructura ni su contenido. Una Aplicacin Web es capaz de cambiar el estado de una organizacin o negocio, slo se instala en un servidor para que el usuario obtenga toda la potencialidad delaaplicacin,senecesitadehttp paralacomunicacin,esteprotocoloesrobustoytoleranteafallos. Tambin,elservidordelaaplicacingiraalrededordepginasweb,lascualestienenincluidaselflujode trabajo de la organizacin o el negocio resolviendo peticiones del los usuarios. Cada pgina web se consideracomounobjeto,esdecir,quesealmomentodeimplementarserunaclase. El cambio de la tecnologa y la poltica de Acercamiento al Cliente que disponen las organizaciones han sido las que han permitido el surgimiento de las Aplicaciones Web, entre las ventajas de este nuevo paradigmaestn: No se instala en el Cliente. Solo se necesita un servidor que aloje a todas las pginas web que conformanalaaplicacinparaqueelusuariopuedarealizarsutrabajo. AccesoUniversal.Noesnecesariotomarencuentalaplataformaquetieneelusuariorespectoal sistema operativo que utilice, solo es necesario que exista en la maquina del usuario un NavegadordeInternet(Browser)quepermitainterpretarHTML. Existencia de muchas plataformas para el desarrollo. Las empresas que se han dedicado a desarrollar software, por le general han logrado ofrecer una plataforma para el desarrollo de las aplicacin es web, entre algunas de estas se encuentran Microsoft con Fontpage y el Visual StudioqueutilizanASPyASP.NET.OtradelasempresasesIBMconsutecnologadeWebSphear, lacualnospermitedesarrollaraplicacioneswebconlatecnologaJSP. Lasaplicacioneswebdebenlograrcapturarlalgicadelnegocioquegaranticesucambiodeestado,para esto los investigadores han presentado muchas sugerencias para el desarrollo de la interfaz y de su estructurainternaparahacerlasmstilesyeficaces,unadelasrecomendacionesesquesedebetomar ms importancia a la lgica del negocio que a los aspecto de presentacin, en otras palabras, debe ser prioritaria la funcionalidad de la aplicacin web y que el diseo de la interfaz no sea complejo. Por este motivo,lalgicaylainterfazdebenllevarseporseparado. Una pgina web puede contener script que se ejecutan en el servidor y/o script que se ejecutan en el cliente,dentrodelamodelacinsedebediferenciarcadaunodeestos. Paramodelarlasaplicacioneswebsedebentomarencuentalassiguientescaractersticasdelaspginas: Losenlacesdeunasaotras Todoelcontenidodinmicoasociadoacadasolicitudhaciaelservidor. Todoelcontenidodinmicoasociadoalaspginasdelcliente. 279
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Entre la modelacin orientada a objetos y el desarrollo de la aplicacin es Web se toman las siguientes equivalencias: CadaPginaserrepresentadapormediodeunaClase. Loslinkentrepginassernrepresentadospormediodeasociacionesentreclases. Los script de las pginas sern representados por medio de las responsabilidades de las clases (mtodos). Lasvariablesenelscriptsernlosatributosdelasclases. Estascuatroequivalenciasservirnparainterpretaryabstraerlaaplicacinhaciaelparadigmaorientado a objetos. Se debe sealar que las nuevas plataformas de desarrollo han separado en gran medida estas equivalencias,estaseparacinsepondrenprcticadeformafsicaenelcaptulodeimplementacin. Dentro de la modelacin del negocio se han creado estereotipos que permitan representar y desarrollar unaaplicacinweb,entreestostenemoslossiguientes:

NewClass

Client Page (Pagina Cliente). Una instancia de una pgina cliente es una pgina Web con formato HTML y es una mezcla de datos, presentacin e incluso lgica. Las pginas clientes son representadas por los navegadores clientes y pueden contener scripts que son interpretados por el navegador. Las pginas cliente pueden tener asociaciones con otras pginas cliente o servidor.RepresentaraunapginaWebcomo.ASPX,.JSP,.ASP,.PHP

(f rom WebForm)

NewClass

HTML Form (Formulario HTML). Una clase estereotipada como HTML form es una coleccin de campos de entrada que forman parte de una pgina cliente. Una clase form se mapea directamente con la etiqueta HTML form. Los atributos de esta clase representan los campos de entrada del formulario HTML (input boxes, text areas, radio buttons, check boxes, y campos hidden). Un HTML form no tiene operaciones, por lo que no pueden ser encapsuladas en un formulario. Cualquier operacin que interacte con el formulario es una propiedad de la pginaquecontienealformulario.

(f rom WebForm)

NewClass

Server Page (Pgina Servidora). Una pgina de servidora representa una pgina web que tiene scripts que son ejecutados por el servidor. Estos scritps interactan con recursoss del servidor como bases de datos, lgica de negocio y sistemas externos. Las operaciones del objeto 280
Ingeniera de Sistemas Informticos

(f rom WebForm)

Universidad Privada del Valle Unidad Acadmica Sucre

representan las funciones en el script, y sus atributos representan las variables que son visibles enelmbitodelapgina(accesiblesportodaslasfuncionesdelapgina). Entreestosestereotiposexistirntiposdeasociacionesquesedescribenacontinuacin: link. Un link (enlace) es un puntero desde una pgina cliente a otra Page. En un diagrama de clases, un link es una asociacin entre una client page y cualquier otra client page o una serverpage.UnaasociacinLinksemapeadirectamenteconlaetiquetaHTMLancla. built.Larelacinbuildsesuntipoespecialderelacinqueuneelvacoentrelaspginascliente y de servidor. Las pginas de servidor existen nicamente en el servidor. Son usadas para crear pginas cliente. La asociacin builds identifica que pgina de servidor es responsable de la creacin de una pgina cliente. sta es una relacin direccional, pues la pgina cliente no tiene conocimiento de cmo ha sido creada. Una pgina de servidor puede crear mltiples pginas cliente,perounapginaclientetansolopuedeserconstruidaporunapginadeservidor. submit. Una asociacin submit es siempre entre un form (formulario) y una serverpage (pginaservidor).Losformulariosenvanlosvaloresdesuscamposalservidoratravsdepginas servidor para procesarlos. El servidor web procesa la pgina servidor, la cual acepta y usa la informacindentrodelformularioenviado. redirect.Unarelacinredirectesunaasociacinunidireccionalconotrapginaweb.Puedeser dirigidadesdeyhastaunapginaclienteodeservidor.Silarelacinseoriginadesdeunaserver page entonces indica que el procesado de la pgina solicitada debe continuar en la otra pgina. Esto indica que la pgina destino siempre participa en la creacin de la pgina cliente. Esta relacinnoescompletamenteestructural,pueslainvocacindeunaoperacinderedireccinse debe hacer a travs de programacin en el cdigo de la pgina origen. Si la relacin se origina desde una client page entonces esto indica que la pgina destino ser automticamente solicitadaporelnavegador,sinlaparticipacinactivadelusuario.Sepuedeespecificaruntiempo de demora (en segundos) antes de que la segunda pgina sea solicitada. El uso de la redireccin secorrespondeconlaetiquetaMETAyHTTPEQUIVelvalorde"Refresh". include.Indicaquelapginaenelservidorincluyeunobjetoalconstruirlapginaenelcliente. Object. Representa a una asociacin de composicin entre una pgina en el cliente a una clase lgica que representa un componente embebido, que puede ser un ActiveX, un Applet u otro componente. Con los conceptos anteriormente descritos se puede desarrollar el diagrama de navegacin. Para este propsitoutilizaremoselRationalRose. El Diagrama de Mapa de Navegacin representa una idea general de la navegacin entre pginas de la aplicacin web. Este Mapa de Navegacin se debe crear por subsistema o bien, si es que es pequea la aplicacin,unsoloMapadeNavegacin.Estemapaesdegranayudaparaidentificarconmucharapidez laubicacindelasopcionesdentrodelsistemaydelascaractersticasdecadasubsistema. 281
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

El primer Mapa de Navegacin que se desarrolla para ejemplificar es el de Seguridad. Para esto se debe realizar un clic derecho sobre la carpeta que representa al subsistema de Seguridad, de inmediato aparecerunaventanaconvariasopcionesdelascualessedebeseleccionarNewyClassDiagram,como se puede ver en la Pantalla 1, lo cual permitir crear un diagrama de clases que servir para alojar al MapadeNavegacin.

Pantalla1.CrearelMapadeNavegacin

Una vez hecha esta operacin se debe crear clases que formaran parte del Mapa de Navegacin. No se debe olvidar que se ha determinado una arquitectura, la cual se debe obedecer para el entendimiento deldesarrollo.LasclasesquesecrearandebenestarenlacarpetadeUserServices,yaquecorresponden alacapadepresentacin.Adicionalmente,lasclasesdebenllevarelestereotipodeClientPage,descrito anteriormente. Para crear una clase se debe realizar un clic en la carpeta que representa a la capa de presentacin que es User Services, luego, un clic derecho en la carpeta de WebForm, inmediatamente se visualizar una ventana con opciones de las cuales se debe seleccionar New y Class, esta opcin crear una clase, el nombre de esta ser PInicio, donde la letra P significar Pgina e Inicio el nombre de la Clase, comosepuedeverenlaPantalla2.

282
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2.CrearunaclasequerepresentaaunWebForm Una vez creada la clase se debe cambiar el estereotipo a Client Page, para esto se debe realizar clic derechoyseleccionarOpenStandardSpecification,comosepuedeverenlaPantalla3.

Pantalla3.EspecificacionesdelaClase

Alrealizarclicsevisualizarunaventanaconvariasopciones,delascualessedebeseleccionarlaopcin General,luegosedebeescribiroseleccionarelnombredelestereotipoqueesClientPagecomosepude ver en la Pantalla 4. Una vez hechaesta actividad se deberealizar un clic en el botn OK para completar conladefinicindetipodeclaseparalaaplicacin.

283
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla4.DefiniendoelestereotipodePginaCliente Esta creacin de clases est en funcin de los diagramas de colaboracin que se ha desarrollado en la parte de anlisis, si no se ha realizado los diagramas de colaboracin del anlisis se aconseja realizar primero los diagramas de secuencia por cada realizacin de diseo, para tener una idea general de las pginas(ClasesClientPage)bsicasparalaaplicacin. Estaprimeraclase,quesehacreado,eslapginainiciodelaaplicacindeejemplo,ahoracrearemosun mapadenavegacinsencilloparaelsubsistemadeSeguridad,lasclasesClientPagesernlassiguientes: PAutenticar.PginaWebquepermitirautenticaralusuario. PCambiarContrasena.PginaWebquepermitircambiarcontraseadelosusuarios. ElresultadodeestaactividadsepuedeverenlaPantalla5.

Pantalla5.CreacindelasClientPagedeSubsistemaSeguridad

284
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

LuegodecrearalasclasessedebecrearundiagramadeclasesdentrodelsubsistemadeSeguridad.Para realizar esta actividad se debe realizar un clic derecho en la carpeta que representa a al subsistema de SeguridadcomosepudeverenlaPantalla6.

Pantalla6.CrearundiagramadeClasesparaelMapadeNavegacindeSeguridad El nombre del nuevo diagrama de clases ser Mapa de Navegacin de Seguridad. Una vez introducido el nombre se debe realizar doble clic a este para poder acceder a la plantilla que permitir describir la asociacin entre las clase anteriormente descritas. Para realizar esta actividad, una vez visualizada la plantillasedebearrastrarcadaunadelasclasesClientPage,elresultadosepuedeverenlaPantalla7.

285
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7.CreacindelMapadeNavegacindeSeguridadsinAsociaciones

Para terminar con mapa de navegacin se debe determinar las asociaciones entre cada una de estas. Para esto realizar se debe utilizar el botn de Uniderectional Association , el cual permitir definir la asociacin. Paraelejemplotendremoslassiguientesasociacionesentrelasclases: PInicioconPAutenticar.AsociacindetipoLink. PAutenticarconPCambiarContrasena.AsociacinetipoLink ElresultadodeestadefinicindeterminareltipodeAsociacinsepuedeverenlaPantalla8.

286
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla8.MapadeNavegacindeSeguridadsineltipodeasociacin. Para determinar el tipode asociacin, que debe ser Link, sedebe realizar un clic derecho sobre la flecha que determina la asociacin, inmediatamente se visualizar una ventana con varias opciones como se puedeverenlaPantalla9.

Pantalla9.Opcionesparadeterminareltipoderelacinenunmapadenavegacin

287
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Se debe seleccionar laopcin de Open Standard Specification, la cual permitir visualizar unaventana la cualsepuedeverenlaPantalla10.DentrodeestaventanasedeseleccionarenelcampodeStereotype elLink.

Pantalla10.SeleccindeltipodeRelacinparalaasociacindentrodelmapadenavegacin ParafinalizarconladeterminacindeltipodeasociacinentreclasesClientPagesedeberealizarunclic enelbotnOK. De la misma formase debe determinar el tipo de relacin para la asociacin entre PAutenticar y PCambiarContrasena.ElresultadodeestaactividadsepuedeverenlaPantalla11.

288
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla11.MapadeNavegacindeSeguridad El diagrama describe que existir un enlace para ir desde PIncio a PAutenticar, esa ltima permitir autenticar y determinar las autorizaciones que tiene el usuario respecto a su cuenta y contrasea. Una vezautenticadotendrlaautorizacinparacambiarsucontraseaparaestopodr accederaunanueva interfazconelnombredePCambiarContrasena. De esta misma forma se puede realizar para los dems subsistemas, no se debe olvidar que est en funcindelosdiagramasdecolaboracinquesehandesarrolladoenlafaseanlisis,sinoseharealizado estarenfuncindelosdiagramasdesecuenciadediseoporcadarealizacindediseo. Ahorasemuestraunapropuestadenavegacinparalosotrossubsistemas. Todas las clases deben ser creadas en la carpeta de WebForm dentro de la capa de User Services. La Pantalla12,muestraelmapadenavegacinparaelsubsistemadeAdministracin.

289
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla12.MapadeNavegacindeAdministracin LaPantalla13,muestraelmapadenavegacinparaelsubsistemadeCocina.

Pantalla13.MapadeNavegacindeCocina LaPantalla14,muestraelmapadenavegacinparaelsubsistemadeHospedaje.

290
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla14.MapadeNavegacindeHospedaje

Para finalizar con el ejemplo se realiza un mapa de navegacin de forma general que se puede ver en la Pantalla 15. Este mapa no es necesario para aplicaciones relativamente grandes ya que ser su visualizacinmuycompleja.

291
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla15.MapadeNavegacinGeneraldelaAplicacin.

De esta forma se ha terminado de desarrollar el Mapa de Navegacin. Mencionar que es muy importante desarrollar antes el diagrama de colaboracin o el diagrama de secuencia para determinar las clases Client Page. Estas clases servirn para iniciar el Diagrama de Clases Web, como se podr estudiarenelprximodocumento.

292
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DIAGRAMADECLASESWEB Hasta ahora se ha utilizado un solo estereotipo para la modelacin de aplicaciones Web, en este documento veremos los restantes, es decir: HTML Form y el Server Page, cada uno de estos tendr una funcinespecficadentrodelaaplicacinendesarrollo. El Diagrama de Clases Web no es ms que una representacin de clases y asociaciones. Los tipos de clases que se utilicen describirn la relacin que tendrn al momento de la ejecucin de la aplicacin y comosersucomunicacinentreestas. Para determinar del diagrama de clases web se debe utilizar los diagramas de colaboracin que se han desarrollado en la fase de anlisis, si no se ha desarrollado los diagramas de colaboracin es necesario desarrollarlosdiagramasdesecuenciadediseorespectoalasrealizacionesdediseo. UnaRealizacindeDiseotieneelmismoconceptoqueunarealizacindeanlisis,sinembargosetiene queaclarardospuntosimportantes: - UnaRealizacindeAnlisispuedetenerdeunaamuchasRealizacionesdeDiseo.Porlogeneral, porcadarealizacindeanlisisexistirunarealizacindeDiseo - Una Realizacin de Diseo debe estar descrita con un Diagrama de Clases Web, Diagrama de Secuenciay(opcional)undiagramadeclasespersistente. - Lacreacindeestasrealizacionessedeberealizarenunsubsistema. No debe olvidarse que el ejemplo que se desarrolla pertenece a un producto pequeo, cuando se presentaundesarrollodemsde25casosdeusosedebeestudiarlasrealizacionesdeformaqueexista una divisin correcta para la descripcin, el entendimiento de los desarrolladores y de los involucrados. Es muy posible que al momento de traducir los requisitos de un lenguaje de usuario a un lenguaje de programador,utilizandoelmarcodetrabajoylosaspectosdeunaarquitecturadedesarrollo,aparezcan realizaciones de diseo que permitan un ptimo entendimiento de la aplicacin a implementar. Se debe recordarquelafasedediseoescomoparaelarquitectoelplanoparaconstruirunacasa. Elprimerpasoparainiciarlacreacindelasrealizacionesdediseoescrearunacarpeta,paracontinuar con el ejemplo, crearemos una carpeta con el nombre de Realizaciones de Seguridad dentro del subsistemadeSeguridad.Pararealizaresoperacinsedeberealizarunclicderechosobrelacarpetadel subsistema de Seguridad, inmediatamente se visualizar carias opciones, como se puede ver en la Pantalla1,delascualessedebeseleccionarlasopcionesdeNewyPackege

293
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla1.CrearunacarpetaparaRealizaciones

Una vez introducido el nombre a la carpeta se debe crear carpetas que correspondan a cada una de las realizaciones de anlisis. El ejemplo que se desarrolla obliga a crear carpetas por cada realizacin de anlisis,sin embargosinoserealizaelanlisissedebecrearcarpetasporcadacasodeuso.Todosestos pasos recomienda realizar Rational Unified Process, desarrollar cada uno de estos pasos garantiza un completoordeny,sobretodo,elentendimientorpidodecualquierpersonaqueseincluyaaldesarrollo o para realizar el mantenimiento de la aplicacin. Se puede encontrar ms ventajas al aplicar esta estructura y estos pasos ya que son descritos dentro de una de las mejores prcticas internacionales de desarrollo. Como se puede ver en la Pantalla 2, se ha creado una carpeta que representa a la realizacin de diseo paraelcasodeusodeAutenticarEmpleado

294
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2.Carpetaparaunarealizacindediseo Dentro de esta carpeta se debe crear carpetas por cada realizacin de anlisis o por cada caso de uso, esto est en funcin a la realizacin del anlisis. Se crear una carpeta con el nombre de Autenticar que representar a la realizacin de anlisis de Autenticar. Para realizar esta actividad se debe realizar las mismas operaciones para crear un nueva carpeta. El resultado de esta operacin se puede ver en la Pantalla3.

Pantalla3.Crearlacapetaparalarealizaciondediseodeautenticar Debemos aclarar,esta operacin sela realiza por varios motivos, el principal es quepuede larealizacin de anlisis dividirse en varias realizaciones de diseo, esto est en funcin del marco de trabajo, del refinamiento del anlisis, la tecnologa de hardware, la plataforma de desarrollo, entre otras. Es muy posiblequeseencuentrevariasinteraccionesdelusuario,unejemploclsicoparaexplicarestasituacin delasrealizacionesdediseoeslacreacindeunacuentadecorreoelectrnico,dentrodelanlisissolo se describir la introduccin de los datos del solicitante a un correo electrnico, sin embargo dentro del diseo se describirn pasos para registrar al solicitante. Usted se ha registrado algunas vez a un correo electrnico y se da cuenta que ha estado en varias interfaces que han registrado su solicitud de correo electrnico,cadaunadeestasinterfacesselaspuedetomarcomounarealizacindediseodentrodela 295
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

descripcin de la aplicacin. Por este motivo se debe separar el software. No olvidar que el diseo es el refinamientodelanlisisparaprepararseparalaimplementacin. Para describir las realizaciones de diseo en funcin de las realizaciones de anlisis se debe realizar un diagramadecasosdeuso,comosehahechoparalasrealizacionesdeanlisis. SedeberealizarunclicderechoenlacarpetadeAutenticaryseleccionarlasopcionesdeNewyUseCase Diagram, el nombre para este diagrama de casos de uso ser Realizaciones de Diseo Autenticar. El resultadodeestaoperacinsepuedeverenlaPantalla4.

Pantalla4.Creacindeundiagramadecasosdeusoparalasrealizacionesdediseo Una vez creado el diagrama de casos de uso se debe realizar doble clic sobre, inmediatamente se visualizarunaplantillaalladoderecho,estaplantillacomoenlacreacindelasrealizacionesdeanlisis nos permitir describir la s realizaciones de diseo. Primero se debe arrastrar la realizacin de Anlisis conelnombredeAutenticar,comosepuedeverenlaPantalla5.

296
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla5.Definirlasrealizacionesdediseodeunarealizacindeanlisis Una vez realizada esta operacin se debe determinar las realizaciones de diseo para la realizacin de anlisis,paraestosedeberealizarunclicenelbotndeUseCase yotroeldiagramadecasosdeuso delaRealizacindeDiseoAutenticar,estaoperacinpermitircrearuncasodeusoalcualsedebedar unestereotipoderealization,determinarlaasociacinconlaotrarealizacinenelcasodelejemployun mombre el cual ser RD Autenticar, RD significa realizacin de diseo. No olvidar que la realizacin debe llevar el estereotipo de realice. Para realizar estas operaciones se debe realizar derecho en el caso deuso,seleccionarlaopcindeOpenSpecification,comosepuedeverenlaPantalla6.

Pantalla6.Definirelestereotipoderealizacin 297
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

De inmediato se visualizar una ventana con varias opciones de las cual se debe seleccionar General, Stereotypeyseleccionarusecaserealization,comosepuedeverenPantalla7.

Pantalla7.Definirelestereotipoderealizacin UnavezdeterminadoelestereotiposedeberealizarunclicenelbotnOKparadefinireneldiagramael estereotipo de realizacin. Luego, se debe realizar un clic en el botn de Unidirectional Association , para determinar la asociacin entre la realizacin de anlisis y la realizacin de diseo, esta se realiza haciendo un clic en la realizacin de diseo y arrastrar hasta a la realizacin de anlisis, el resultado se puedeverenlaPantalla8.

Patalla8.Determinarlaasocicinentrerealizaciones Unavezhechaestaactividadsedebedeterminarelestereotipodelaasociacinentrerealizaciones,para estosedeberealizarunclicderechoenlaasociacinyseleccionarOpenSpecification,comosepuede verenlaPantalla9. 298


Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla9.Determinarelestereotipoparalaasociacinentrerealizaciones EstaactividadllevaraunaventanadelacualsedebeseleccionarlaopcinGeneralyStereotype,locual permitirseleccionarelestereotipoparalaasociacin.ElresultadosepuedeverenlaPantalla10.

Pantalla10.Definicindelestereotipodeasociacin De este modo se ha creado un ejemplo de creacin de realizaciones de diseo, este ejemplo es muy sencillo,sinembargoesilustrativopararealizarrealizacionesmscomplejas. Ahora se realiza el diagrama de clases web para el caso de uso de Autenticar Empleado, en si para la realizacindediseoRDAutenticar.DentrodelDiagramadeClasesWebnoseespecificalosmtodosde cadaunadelasclasesqueparticipaneneldiagrama. 299
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Se puede ver en la Figura 1 el diagrama de colaboracin, el cual corresponde a la realizacin del caso de uso de Autenticar Empleado. Este diagrama es el inicio del diagrama de clases Web, la interfaz se convertirenunClientPageyenunHTMLForm,lacontroladoraseconvertirenunaClaseServerPage, lasclasesEntidadnoselastomaraencuenta,enremplazodeestasirlainterfazdelserviciowebquese hadefinidoenlaarquitecturaparaelsubsistemadeSeguridad.
3: Encriptar(Contrasena)

1: Autenticar(Cuenta, Contrasena)

2: Autenticar(Cuanta, Contrasena)

: Empleado

: AutenticarEmpleado

: C Autenticar 5: Obtener Autorizacion(IdentificadorEmpleado)

4: Autenticar(Cuenta, ContrasenaEncriptada)

: Empleado

Figura1.DiagramadeColaboracinparalarealizacindeAutenticarEmpleado ParapoderconvertireldiagramadecolaboracindelaFigura1aundiagramadeclasesweb,primerose debe tomar en cuenta la arquitectura y el marco de trabajo, adems del mapa de navegacin, el cual se hacreadoenelanteriordocumento. ParainiciarlacreacindelDiagramadeClasesWebsedeberealizarunclicderechoenalarealizacinde diseoRDAutenticar,comosepuedeverenlaPantalla11,sedebeseleccionarlaopcindeNewyClass Digram,estaplantillanospermitirdesarrollarundiagramadeclasesweb.

: Autorizacion

Pantalla11.Crearundiagramadeclasesweb
Ingeniera de Sistemas Informticos

300

Universidad Privada del Valle Unidad Acadmica Sucre

Unavezrealizadalaactividadsedebecambiardenombrealdiagramadeclases,paraelejemplose introducirelnombredeClasesWebAutenticar,comosepuedeverenlaPantalla12.

Pantalla12.Determinarelnombrealdiagramadeclasesweb No olvidar que por cada realizacin de diseo se tendr un diagrama de clases web, como tambin, un diagramadesecuencia. Una vez realizada la actividad anterior se debe realizar doble clic enel nuevo diagrama de clases, lo cual permitir visualizar una nueva plantilla. Dentro de esta plantilla se debe desarrollar un diagrama de clasesweb. Paralacreacinsedebetenerencuenta: - La interfaz de la Figura 1 con el nombre de AutenticarEmpleado, cambiar de Nombre por PAutenticar, lo cual corresponde al nombre de la clase Client Page del Mapa de Navegacin del subsistemaSeguridad. - Se visualiza, en la Figura 1, un envo de datos por parte del actor Empleado y una respuesta por parte de la aplicacin, lo cual se convertir en un clase HTML Form con el nombre de C_Autenticar, esta estar asociada con la clase Client Page PAutenticar, entre estas tendrn una relacindecomposicin(esteterminosevereneldiagramadeclasesdediseo). - Se visualiza en la Figura 1, una controladora con el nombre de C Autenticar, la cual se convertir en una clase Server Page con el nombre de CIUAutenticar, donde CIU representar a Controladora de Interfaz de Usuario (estas abreviaciones deben ser discutidas por el grupo de desarrolloantesdedesarrollareldiseo,esunaformadeestandarizareldesarrollo) - Por ltimo, se visualiza dos entidades con el nombre de Empleado y Autorizacion, a las cuales se les solicita informacin. Dentro del diseo y siguiendo con el marco de trabajo la solicitud de informacin se hace a travs del servicio web, este se encargar de proporcionar la informacin (esta actividad se describir en el diagrama de secuencia). Cuando se realice los diagramas de secuenciasecrearnlasclasesdeentidad. Ahora se debe crear cada una de las clases descritas anteriormente. La clase de PAutenticar, ya se la ha creadoenelMapadeNavegacin.SecrearlaclaseconunestereotipodeHTMLFormconelnombrede C_Autenticar, donde C_ significa Control de Usuario, no debe confundirse con la controladora de interfaz.Adems,C_AutenticardebellevarelestereotipodeHTMLForm. 301
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

ParacrearestaclasesedeberealizarunclicderechoenlacarpetadeControlesUsuarioqueseencuentra en la carpeta de User Services quecorresponde con la capade presentacin. Esta operacin sela puede verenlaPantalla13.

Pantalla13.IniciodecrearunaclaseHTMLForm

Se debe seleccionar la opcin New y Class, para luego cambiar el nombre de la nueva clase a C_Autenticar. Para terminar se debe cambiar el estereotipo a HTML Form, para esto se debe entrar a Open Specification y realizar un clic en el campo de Stereotype para seleccionar HTML Form, como se puedeverenlaPantalla14.

Pantalla14.DefinirelestereotipoparalaclasedeHTMLForm 302
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez seleccionado el estereotipo se debe realizar un clic en el botn de OK, el resultado de estas actividadesdebeserigualalaPantalla15.

Pantalla15.ClaseHTMLFormC_Autenticar Ahora se crear la clase controladora CIUAutenticar, para esto se debe realizar un clic derecho en la carpeta de ControlInterfaz que pertenece a la capa de User Services. Esta operacin har a parecer una ventana, de la cual se debe seleccionar las opciones de New y Class, para luego cambiar el nombre a la claseconelCIUAutenticar,elresultadodeestasactividadesselapuedeverenlaPantalla16.

Pantalla16.CrearunaClasedeServerPage

Una vez creada laclasese debe cambiarel estereotipo a Server Page,para esto se debe hacerdoble clic en la clase, lo cual har visualizar una ventana, que se puede ver en la Pantalla 17, dentro de esta ventanasedebeseleccionar,dentrodelcampodeStereotypeelnombredeServerPage.

303
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla17.DefinicindelestereotipodeServerPage UnavezseleccionadoeltipodeestereotiposedeberealizarunclicenelbotnOK,elresultadodeesta actividadsepuedeverenlaPantalla18.

Pantalla18.ClaseCIUAutenticar

Ahora, iniciaremos el desarrollo del diagrama de clases web para la realizacin de diseo de Autenticar. SedeberealizarunclicenlarealizacindediseoconelnombredeRDAutenticar,ubicadaenlacarpeta del subsistema de Seguridad, RCU y autenticar, una vez ubicada la realizacin se debe realizar doble clic sobre el diagrama de clases web con el nombre de Clases Web Autenticar, esta actividad nos permitir visualizar una plantilla la cual nos permitir describir la realizacin. Una vez visualizada la plantilla se debearrastrarlasclasesquesehancreadoanteriormente,elresultadodeestaactividadselapuedever enlaPantalla19. 304
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla19.DiagramadeClasessinAsociaciones

Ahora, se debe definir las asociaciones entre estas clases, se inicia con la clase de PAutenticar y C_Autenticar. Para esto debe realizar un clic en el botn de Uniditectional Association y realizar un clic en la clase PAutenticar y arrastrar hasta la clase de C_Autenticar, tambin se debe quitar la navegabilidadydaralaasociacinelestereotipodeLink,elresultadosepuedeverenlaPantalla20.

Pantalla20.DeterminarelestereotipodelaAsociacin Estas dos clases tienenuna asociacin de Composicin, esta relacin sedetermina por que al eliminar la clasedePAutenticarseeliminarC_Autenticar.NodebeolvidarsequeC_Autenticarenunaclasedetipo HTML Form, es decir un formulario que muestra o solicita datos. Para determinar la asociacin de composicinsedebeseguirlossiguientespasos. 305
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Se debe realizar un clic derecho en la parte izquierda de la lnea de asociacin, esta actividad hara visualizar una ventana con varias opciones ya conocidas, pero ahora se debe seleccionar Aggregate que significa Agregacin, este trmino significa una relacin dbil entre las clases, como se puede ver en la Pantalla21.

Pantalla21.DefinirlaelTipodeAsociacin

El resultado de esta actividad se puede visualizar en la Pantalla 22. Se puede ver un rombo en la parte izquierdadelalneadeAsociacin.

Pantalla22.AsociacindetipoAgregacin

Para determinar la Composicin se debe realizar un clic derecho sobre la derecha de la lnea de asociacin y seleccionar Open Standar Specification, lo cual llevar a una ventana donde se debe seleccionarlaopciondeRolBDetailyactivarByValue,comosepuedeverenlaPantalla23.

306
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla23.DefinirunaasociacindeComposicin Para terminar, se debe realizar un clic en el botn de OK. Esta operacin har que el rombo de agregacin se pinte totalmente cambiando el concepto de la asociacin, el resultado se puede ver en la Pantalla24.

Pantalla24.AsociacindeComposicin

La clase C_Autenticar ser la encargada de enviar datos que permitan autenticar a un usuario esto significaqueenviaralaclaseCIUAutenticar.Estosignificaqueexistirunaasociacinentrelasclasesde C_Autenticar y CIUAutenticar. Esta asociacin ser de tipo Submit y no ser de tipo composicin ya que aldesaparecerlaclaseC_AutenticarlaclaseCIUAutenticarnosereliminadaporquepuedeserqueotra claselautilice.ParadefinirestaasociacinsedeberealizarlasmismasactividadesqueenlaPantalla20, solo se debe cambiar el estereotipo de la asociacin a Submit, el resultado se puede ver en la Pantalla 25.

307
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla25.AsociacinSubmit

Undetallequesepuedeobservaresladireccindelaflechadelaasociacin,estaestapuntandohacia CIUAutenticar,estosignificaquelaclaseC_AutenticarenviardatoshaciaCIUAutenticar. Como se ha dicho antes, se debe solicitar al servicio web los datos necesarios para cumplir con las solicitudesdelosusuariosdelaaplicacin,ademsestoobligaelmarcodetrabajoquesehadefinido. Paracumplirconelmarcodetrabajosedebearrastraraldiagramadeclasesweblaclasequerepresenta al servicio web de Seguridad, este servicio web est en la ubicacin de Business Service, esta es la carpetaquerepresentaalacapadenegocio,dentrodeestaseencuentralacarpetadeServiciosWebyel serviciowebconelnombredeSWSeguridadcomosepuedeverenlaPantalla26.

Pantalla26.UbicacindelServicioWebdeSeguridad Este servicio web se debe arrastrar hacia el diagrama de clases web que se est desarrollando, para luego definir una asociacin con la clase de CIUAutenticar, esta asociacin debe llevar un nombre, generalmente se coloca Controla y se debe quitar la direccin de la asociacion, no lleva ningn estereotipo como Submit, Link u otro, solo es una asociacin entre clases, el resultado de estas actividadesselapuedeverenlaPantalla27.

308
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla27.DefinirlaasociacinconunservicioWeb

Para colocar el nombre de Controla se deb realizar doble clic en la asociacin y dentro de Open SpecificationintroducirelnombredelaasociacinenelcampodeName. De esta forma se ha terminado el desarrollo de un Diagrama de Clases Web. A continuacin, se podr visualizarvariosejemplosdeestetipodediagrama.Estosejemploscondelaaplicacindeejemplo.

PEliminarBebida
(f rom Controles de Usuario)

<<Submit>>

<<Link>> <<Submit>> <<Link>> PListaBebida


(f rom WebForms)

Controla

PModificarBebida
(f rom Controles de Usuario)

CBebidas
(f rom Controladoras)

SWSeguridad
(f rom Serv icios Web)

<<Link>> <<Submit>>

PAdicionarBebida
(f rom Controles de Usuario)

InsertarBebida()

Figura2.CasodeUsoGestionarBebidas EnlaFigura2,representaalastresrealizacionesdediseodelcasodeusodeGestionarBebidas.

309
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

<<Link>>

PPersonal
(f rom WebForms)

<<Link>>

PModificarPersonal
(f rom Controles de Usuario)

<<Link>>

PAdicionar
(f rom Controles de Usuario)

<<Submit>> <<Link>> <<Submit>> PEliminar


(f rom Controles de Usuario)

<<Submit>>

Controla

<<Build>> CPersonal
(f rom Controladoras)

SWSeguridad
(f rom Serv icios Web)

PMensage
(f rom Controles de Usuario)

310
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DIAGRAMADESECUENCIA En este documento se describir la importancia de los diagramas de secuencia, estos sern los que permitanintroduciralaimplementacin,ensisernlosquenosguencomounplanodeconstruccina unarquitecto. Enelanteriordocumentosehadescritoeldiagramadeclasesweb,elcualdescribeladependenciaentre clases que representan pginas y formularios web, adems de cmo interactuar con los servicios web definidosenlaarquitectura. Ahoraseinicialadescripcindelasllamadasaeventosdelasclasesqueparticipanoparticiparan. Esta etapa es la final para descubrir las clases persistente en su totalidad, no debe olvidarse que se desarrollaporciclosdedesarrollo,encadacicloseincluirclasespersistentes. El trmino de Clase Persistente se debe entender como la capacidad de un objeto de trascender en el espacioytiempo.Estetrminoseaclararcondetalleenelprximodocumento. LosdiagramasdeSecuenciapuedenserusadospara: Representar la dinmica del sistema. Se logra con el diagrama de secuencia del sistema (DSS) en elcualserepresentalainteraccindeunactorconelsistemacomounacajanegra. Representar la interaccin entre los objetos del sistema. Este diagrama de secuencia muestra los objetos y clases envueltas en el escenario y la secuencia de mensajes intercambiados entre los objetos necesarios para realizar la funcionalidad del escenario. Un diagrama de secuencia tpicamenteesasociadoconuncasodeusoenelmodelodelsistemabajodesarrollo. Los diagramas de secuencia tienen dos ejes: el eje vertical muestra el tiempo y el eje horizontal un conjunto de objetos. Cada objeto tiene una lnea de vida donde se sita su foco de control. El foco de control es un rectngulo que representa el tiempo durante el que un objeto est activo ejecutando una accin.ComosepuedeverenlaFigura1.

Figura1.EjesdelDiagramadeSecuencia 311
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Conestesencilloesquemapodemosvisualizarlacomunicacinysincronizacinbajounestrictoorden temporaldelosobjetosimplicadosenlasdistintasfuncionalidadesdeunsistema. Una clase que se utilice dentro de un diagrama de secuencia se la debe estudiar como un objeto ya que cadaclasecreaunobjetoalmomentodellamaraunmtodo,comosepuedeverenlaFigura1.LaClase PAutenticarcrearunainstanciadelaclaseCAutenticarconvirtindoseestaltimaenunobjeto,delcual sepuedeutilizarlosmtodosdefinidos. Dentrodeldiagramadesecuenciasedebeestudiarvariosconceptosyestereotipos,sevelossiguientes: Objeto. Un objeto es representado por medio de un rectngulo, dentro de este se debe

introducir un nombre. . Un objeto puede ser descrito de tres formas: Nombre del Objeto, Nombre del Objeto mas la clase o solamente la clase que representar a un objeto annimo Solicitudes. Una solicitud es una comunicacin entre objetos que lleva informacin con la esperanzadequeseatomada.Larecepcindeunasolicitudselaconsideracomounevento.Los mensajes entre objetos estn representados por fechas que van desde el objeto emisor hasta el objetoreceptor.Cadamensajepuedetenerunnombre,parmetrosyunarespuesta. Los tipos de mensajes. Dentro de Racional Rose para el diagrama de secuencia se tiene los siguientestiposdemensajes: o Simple (Simple): Para mensajes con un solo hilo de control, un objeto enva una solicitud aunobjetopasivo. o Synchronous(Sincrnico):Laoperacinsoloprocedecuandoelobjetosolicitanteleenva unasolicitudalobjetoreceptoryesteaceptalasolicitud. o Balking: El objeto emisor solo puede pasar la solicitud si el objeto receptor est listo para aceptarelmensaje,sinoabandonalasolicitud. o Timeout (Interrupcin): El objeto emisor abandona la solicitud si el objeto receptor no puederesponderdentrodeltiempoespecificado. o Asynchronous (Asincrnico): El objeto emisor le enva una solicitud al objeto receptor y contina ejecutando acciones sin esperar una respuesta que le indique si el objeto receptorrecibionolasolicitud. o Procedure Call (Llamada a un procedimiento): El objeto emisor le enva una solicitud al objeto receptor y debe esperar hasta que la secuencia de mensajes anidados sea procesada. o Return(Retorno):Estaopcinindicaelretornodeunasolicitudaunprocedimiento. Solicitudasimismo. Un objetopuedesolicitaruneventoasmismo,sertantoelemisorcomoel

receptor.

312
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Condiciones en las Solicitudes. Una solicitud puede tener condiciones e iteraciones. Una condicindebeserciertaparaquesealasolicitudserealice.Lascondicionessonmostradaspara modelarramificacionesoparadecidirsienviaronolasolicitud. o Condicin que debe ser cierta antes de llamar a la solicitud. Algunas veces la condicin que permite llamar a un mtodo de un objeto es compleja, cuando existe este comportamiento se debe describir de diferente forma para que el diagrama sea comprensible.RecomiendaRationalqueporcadaclaseyobjetoserealiceunadescripcin de utilizacin incluyendo a sus atributos y mtodos. Cuando se desarrolla un diagrama de secuencia y se necesita describir a una solicitud solo se debe realizar doble clic sobre la flecha de la solicitud, esta operacin permitir visualizar una pantalla donde el desarrolladorpodrdocumentaryexplicarelporquserealizalasolicitud.Tambin,esta condicin permite describir ramificacin es de solicitudes, es decir que sin no cumple una sesolicitaotra.

o Mensajes de Iteracin. Estos son enviados varias veces, pudiendo especificar adems la cantidaddeveces.

Un punto que se debe tomar en cuenta, que deja claro Rational, es que en esta etapa de desarrollo van apareciendo detalles de las clases persistentes, estas clases conformarn en gran medida al diseo de almacenamiento,alabasededatos.Esmuyimportantellegaraestaetapaparadeterminarlasclases,su asociacin, dependencia entre estas y sus atributos. No debe olvidarse que los atributos estn descritos en la Descripcin de los Casos de Uso, esto se vio en el documento que hace de introduccin al Anlisis. Hay muchos desarrolladores que realizan primero el diagrama de clases e incluso otro diagrama que permite describir el diseo de almacenamiento antes de la descripcin de los casos de uso. Esto es un error,yaquenosetienedeformaexactaloquenecesitaunobjetoparasertilenlaaplicacineincluso se repite cdigo. Se debe evitar este tipo decisiones y tener paciencia para determinar el diagrama de clases. Se utiliza la realizacin de diseo con el nombre de RD Autenticar, que se encuentra en el subsistema de seguridad para realizar un ejemplo de desarrollo de un diagrama de secuencia. El diagrama de secuencia que se desarrolla a continuacin est en funcin del diagrama de colaboracin, el marco de trabajo, el diagrama de clases web y por supuesto por la descripcin del caso de uso de Autenticar Empleado. 313
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

El primer paso es realizar un clic derecho sobre la realizacin RD Autenticar, lo cual desplegar varias opcionesdelascualessedebeseleccionarNewySequenceDiagramcomosepuedeverenlaPantalla1.

Pantalla1.CrearunDiagramadeSecuencia

Una vez realizada la actividad se debe cambiar de nombre al nuevo diagrama de secuencia, el nombre serAutenticar,comosepudeverenlaPantalla2.

Pantalla2.DiagramadeSecuenciacreado

Se debe realizar doble clic sobre el nuevo diagrama de secuencia, lo cual mostrar una plantilla para desarrollar. Para iniciar el desarrollo del diagrama de de secuencia se deben arrastrar las clases que participarn en este. Para el ejemplo se iniciar al actor con el nombre de Empleado, el cual se encuentra en Use Case View, UseCase Model y Actors. Algunos modeladores de diseo no incluyen actor dentro del diagrama de secuencia, este punto no es un error, sin embargo la descripcin de la secuencia siempre toma en cuentaalactor,debidoaqueeldiagramadesecuenciapartedeldiagramadecasosdeuso. LuegodearrastraralactorsenecesitaunaclaseClientPageounHTMLForm,dependedeldesarrollador odelaempresadedesarrollo,tambineldesarrolladordecidirmanejarvariablesdeseccinuotrotipo de envo de informacin a travs de las pginas. Se utilizarun objeto con el nombre de Session, ya que enlaimplementacinseutilizaresobjeto. 314
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para el ejemplo se utilizar la clase de Cliente Page con el nombre de PAutenticar, la ubicacin de esta clase es Local View, User Services y WebForm, el resultado de estas actividades se puede ver en la Pantalla3.

Pantalla3.IniciodelDiagramadeSecuencia Como se puede ver en el diagrama de colaboracin para la realizacin de anlisis y la descripcin del caso de uso Autenticar Empleado, existe una interaccin entre el actor y la aplicacin de solicitud de autenticacin, como describe el caso de uso se enva una Cuenta y una Contrasea, adems dentro de losrequisitosnofuncionalesparaelcasodeusoseindicaquelacontraseatienequeestarencriptadoal momentodelatransmisinatravsdelprotocolodehttp. Para iniciar con la descripcin de las solicitudes entre las clases primero se debe crear una sesin que ayudeaguardardatos.Lasesindebeserigualalaclasecontroladora,estosignificaquesenecesitauna instanciadelacontroladoradeinterfaz.Paraesto,sedebearrastrarlaclasecontroladoradeinterfazcon el nombre de CIUAutenticar, ubicada en Logical View, User Services y ControlInterfaz, hacia la plantilla deldiagramadesecuencia.ComosepuedeverenlaPantalla4.

Pantalla4.ArrastrarControladoradeinterfaz

Cada pgina tiene un evento de PageLoad predeterminado que se activa cada vez que se carga en un navegador la pagina, dentro de este evento se debe crear el objeto de sesin para poder guardar los datos. Para determinar esto se debe realizar un clic en el botn Message to Self , el cual nos permitirdescribirlasolicituddePageLoad,elresultadodeestaactividadsepuedeverenlaPantalla5.

315
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla5.DefinicindeunaSolicitudasmisma

Una de las caractersticas de este evento es que debe ser de tipo Procedure Call, antes de seleccionar este tipo de solicitud se crear la solicitud de PageLoad. Se debe realizar un clic derecho sobre la solicitud recin creada, lo cual desplegar un conjunto de opciones de las cuales se debe seleccionar <newoperation>.ComosepuedeverenlaPantalla6.

Pantalla6.CrearunaSolicitud

El nombre de esta nueva solicitud ser PageLoad, para cambiar el nombre de esta nueva operacin se debe realizar un clic derecho sobre opname() y seleccionar Open Specification, lo cual mostrar una ventana. De esta ventana se debe seleccionar la opcin de Browse Selection, como se puede ver en la Pantalla7.

316
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7.CambiardenombrealaSolicitud

Esta actividad desplegar una nueva ventana con el nombre de Operation Specification, de la cual se debe cambiar el campo de Name por PageLoad y Return Type por void, este ltimo significa que no devolver ningn dato la solicitud. Dentro del C#.NET void, de la misma manera, determina que una solicitudnodevolverningndato.ElresultadodeestaactividadsepuedeverenlaPantalla8.

Pantalla8.DeterminarelNombredelaSolicitud 317
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez hecha esta actividad se debe realizar un clic en el botn OK hasta salir de las ventanas. El resultadodeestasactividadessepuedeverenlaPantalla9.

Pantalla9.Resultadodelacreacindeunasolicitud

Ahora, se debe determinar el tipo de solicitud para PageLoad, para esto se debe realizar un clic derecho y seleccionar Open Specification, ya dentro de la ventana se debe seleccionar la pestaa Detail, la cual desplegar un conjunto de opciones que describen a cada tipo de solicitud, se debe seleccionar ProcedureCall,comosepuedeverenlaPantalla10.

Pantalla10.Definireltipodesolicitud Una vez hecha esta actividad se debe realizar un clic en el botn OK. La flecha que pertenece a la solicitudcambiardeaspecto. Ahora se debe crear una nueva solicitud que permita crear una instancia de la clase de CIUAuteniticar. ,luegoderealizarunclicenelbotndeObjet ParaestosedebeutilizarelbotndeObjectMessage Message se debe realizar un clic en la clase de PAutenticar, dentro del rectngulo de tiempo, y arrastrar hastalaclasedeCIUAuenticar.ElresultadosepuedeverenlaPantalla11.

318
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla11.Crearunanuevasolicitud Unavezhechaestasactividadessedebeintroducirunnombrealanuevasolicitud,elcualserelmismo nombre de la clase, ya que ser el nombre del constructor de la clase. Para esto se debe realizar las mismasactividadesquesehandescritoparacrearlasolicituddePageLoad.Elresultadosepuedeveren laPantalla12.

Pantalla12.CreacindelasolicitudCUIAutenticar

DentrodelasolicituddePageLoadsecrearlasesinquepermitaalmacenardatosmientrasesteactiva lapagina. Una vez creada la sesin se puede describir la interaccin del actor con la aplicacin. Para describir esta interaccinsedeberealizarunclicenelbotnObjectMessage ,dentrodelabarradeherramientas de la plantilla del diagrama de secuencia, realizar un clic sobre el Empleado y arrastrar hasta C_AutenticarqueesunaclasedetipoHTMLForm.Estaltimaclasedeladebearrastrarhacialaplantilla dedesarrollodeldiagramadesecuencia.ComosepuedeverenlaPantalla13.

319
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla13.PrimeraSolicituddeinteraccinconelactor

Como en le diagrama de colaboracin se debe realizar clic derecho sobre la flecha de la solicitud, esta enviar dos parmetros de tipo carcter, se debe seleccionar la opcin de <new operation> como se puedeverenlaPantalla14.

Pantalla14.Crearunasolicitud

Una vez hecha esta actividad aparecer una ventana con varias opciones con el nombre de Operation Specification, esta solicitar el nombre de la solicitud en el campo de Name, el nombre ser Autenticar, adicionalmente se debe definir el tipo de dato que devolver la solicitud, se debe tomar en cuenta los tipos de datos que maneja el lenguaje de programacin, con el cual se implementar los diagramas de secuencia,yaqueRationalRosepuedegenerarcdigo.Eltipodedato quedevolverlasolicitudserde tipo string, este tipo de dato debe estar en minsculas, ya que en C#.NET este tipo de dato pertenece a unacadenadecaracteres.ElresultadosepuedeverenlaPantalla15.

320
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla15.DefinirelNombreyelTipodedatodelasolicitud Para ingresar los parmetros, los cuales sern utilizados por la solicitud se debe ir a la opcin de Detail dentrodelaventanadeOperationSpecification,realizarclicsobrelacolumnaNameyseleccionarInsert comosepuedeverenlaPantalla16.

Pantalla16.CrearunParmetro

ElnombredeestenuevoparmetroserCuentaydetipostring.ElresultadosepuedeverenlaPantalla 17.

321
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla17.DefinirelnombreyeltipoparaelParmetro De esta misma forma se puede adicionar un nuevo parmetro que ser Contrasena de tipo string. El resultadodeestaoperacinsepuedeverenlaPantalla18.

Pantalla18.Definirotroparmetroparalasolicitud ComosepuedeverenlaventanadeOperationSpecificationexistendistintaspestaas,adicionalmentea las dos que se ha visto, las pestaas Preconditions y Postconditions son importantes ya que en estas se puede describir las caractersticas de la solicitud, claro est que depende del grupo de desarrollo o del desarrolladorllenarlas. 322
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez hecha las actividades se debe realizar un clic en el botn OK. El resultado se puede ver en la Pantalla19.

Pantalla19.SolicituddedefinidadeAutenticar

Elsiguientepasoessolicitaralacontroladoradeinterfazqueautentiquealempleado,paraestosedebe crear una nueva solicitud que vaya desde c_Autenticar hasta CIUAutenticar, con el nombre de Autenticar, esta solicitud devolver un dato de tipo string. Adicionalmente se deben describir los parmetrosdeCuentadetipostringyContrasenadetipostring.ElresultadosepuedeverenlaPantalla 20.

Pantalla20.SolicituddeAutenticardeCIUAutenticar

CIUAutenticar debe tener una solicitud que permita cifrar la contrasea, para esto se debe crear una nueva solicitud con el nombre de CifrarContrasena que devolver un string y con un parmetro con el nombredeContrasena.ElresultadodeestaactividadsepuedeverenlaPantalla21.

323
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla21.SolicitudCifrarContrasea.

Una vez que se tiene cifrada la contrasea se puede enviar hacia el servicio web del subsistema de Seguridad para que pueda autenticar al Empleado, el nombre del servicio web es SWSeguridad y est ubicado en Bussiness Services y ServiciosWeb. Para esto se debe arrastrar a la interfaz del servicio web hacia la plantilla, luego crear una solicitud que vaya desde CIUAutenticar hasta SWSeguridad, con el nombre de Autenticar y parmetro de Cuenta de tipo string y ContrasenaCifrada de tipo string, esta nueva solicitud debe devolver un dato de tipo string, que permita describir el tipo de error o conformidaddeaccindeautenticar.ElresultadosepuedeverenlaPantalla22.

Pantalla22.CreacindeunasolicitudparaelServicioWebdeSeguridad

Como se puede observar se est asociando dos capas que son la Capa de Pesentacin y la Capa de NegocioestasdoscapasinteractuaranatravsdelacontroladoradeinterfazydelServicioWeb. Ahora, se debe crear una clase controladora del negocio para el servicio Web, debe crearse en la ubicacin Business Service y Controladoras, son el nombre de CSW_Seguridad, donde CSW significa ContoladoradelServicioWeb,estosepuedeverenlaPantalla23. 324
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla23.Crearunacontroladoradelnegocio. Una vez creada la clase se debe arrastrar hacia la plantilla del diagrama de secuencia, luego se debe crear una nueva solicitud que vaya desde SWSeguridad hasta CSW_Seguridad, con el nombre de Autenticar que devolver un dato de tipo string, adicionalmente se debe incluir los parmetros de CuentayContrasenaCifradadetipostring.ElresultadosepuedeverenlaPantalla24.

Pantalla24.CrearunaSolicitudenCSW_Autenticar Antesdecontinuarsedebeaclararquenoseutilizarprocedimientosalmacenadosparalabsquedade una determinada tupla dentro de la base de datos. Se recomienda, solo utilizar procedimientos almacenados sencillos que no contenga ms de una sentencia. Esta recomendacin est dada por no conocereladministradordebasededatosqueseutilizar. Lacontroladoradelserviciowebrealizarvariastareas,sonlassiguientes: SolicitaralabasededatosinformacinparapoderautenticaralEmpleado Almacenarenunobjetoelconjuntodeinformacinquedevuelvalabasededatos Realizarlaautenticacinutilizandoalobjeto 325
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para esto se necesita definir el patrn Data Transfer Object (Objeto de Transferencia de Datos DTO). El objeto DTO se utilizar para la transferencia de datos a travs de capas mltiples, es un objeto serializable simple. Mayor informacin sobre este patrn en http://msdn2.microsoft.com/en us/library/ms978717.aspx ProblemaaresolverporelDTO Cmoenunaaplicacindistribuidasedisminuyeeltiempoderespuesta? Solucin CrearunDataTransferObject(DTO)quecontengalosdatosrequeridosdelallamadaremota.Unasola llamadaremota. Tambin,seutilizarunobjeto,yacreadoporMicrosoftconelnombredeSQLHelper,elcualpermitirel accesoalosdatos,esteobjetoesrecomendadoporMicrosoftparalacapadeaccesoalosdatos.Mayor informacinenhttp://msdn2.microsoft.com/enus/practices/bb190359.aspx. Ahora,secreardosclasesquerepresentarnaestosdospatrones.LaprimeraclaseserunDTOconel nombre de DTOEmpleado. Para esto se debe crear una clase en la ubicacin Logical View, Business ServiceyReutilizables.SedebehacerunclicderechoenlacarpetadeReutilizablesyseleccionarnewyla opcin Class, se debe dar el nombre de DTOEmpleado, adicionalmente se debe cambiar el estereotipo a Table.ElresultadosepuedeverenlaPantalla25.

Pantalla25.CreacindeunDTO

Una vez creada la clase DTO se debe crear la clase que nos permitir acceder a los datos, tendr el nombre de SQLHelper, esta estar ubicada en Logical View, Data Service, SQLHelper. Esta clase ser la frontera de la aplicacin con el gestor de base de datos. A esa clase se le puede dar el estereotipo de <<dataaccess>>.ElresultadodeestaactividadsepuedeverenlaPantalla26.

326
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla26.Crearunaclaseparaelaccesoalosdatos Unavezcreadaesasdosclasessedebearrastraralaplantilladeldiagramadesecuenciadeejemplo.Una vezubicadas,comosepuedeverenlaPantalla27,sedebehacerlosiguiente: Crear una solicitud desde CSW_Seguridad hasta el DTOEmpleado con el nombre de DTOEmpleado,paracrearunainstanciadelDTO.Lasolicitudeselconstructordelaclasenodebe llevarparmetros.EstasolicituddevolverunDTOEmpleado. Crear una solicitud desde CSW_Seguridad hasta la SQLHelper son el nombre de FillDataset, este mtodo permitir obtener los datos de los Empleados y colocarlos en el objeto DTO instanciado anteriormente.Estemtodotendrlossiguientesparmetros: o Cadena de conexin hacia el administrador de la base de datos, tendr el nombre de Cadenayserdetipostring o El tipo de comando, que puede ser un procedimiento almacenado o un texto SQL, tendr elnombredeTipoComandoyserdetipoCommandType. o ElnombredelprocedimientoalmacenadooeltextoSQL,tendrelnombredePANombre y de tipo string. Este servir para hacer referencia al nombre del procedimiento almacenadodentrodelabasededatos. o El nombre del DTO instanciado, tendr del nombre de dtoEmpleado y de tipo DTOEmpleado. o Un vector con el nombre de las tablas, tendr el nombre de arrayTablas y ser de tipo array. Estasolicitudnodevolverningnvalor,solopermitirllenarelDTOinstanciado. Crear una solicitud a si misma de CSW_Seguridad con el nombre de AutenticarEmpleado, donde los parmetros sern: dtoEmpleado, Cuenta y ContrasenaCifrada. Esta solicitud permitir autenticar al Empleado. Esta solicitud devolver un string, la cual permitir devolver los siguientesvalores:Autenticado,Nocoincidelacuentadeusuarioy/oLacontrasea. ElresultadodeestasactividadessepuedeverenlaPantalla27.

327
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla27.FinaldelDiagramadeSecuenciaAutenticar

Una de las observaciones que se puede hacer al diagrama de secuencia creado en este documento es quesepuedensepararlassolicitudesdecreacindesesinenunarealizacindediseoapartedelaque sehahecho. Como se ha podido observar el diagrama de secuencia es muy descriptivo y debe ser muy completo, no debe olvidarse que es uno de los artefacto principales para la implementacin, adicionalmente a este artefactosedebetomarencuentaladescripcindelcasodeuso. Se puede ver el ejemplo deHotelBeto2.mdl, el cual describe de forma completa el caso de uso Registrar SolicituddeServicioBsico. Un punto importante que se debe tomar en cuenta es la transformacin de las realizaciones de anlisis para este casos de uso en realizaciones de diseo, como se puede observar se ha dividido en pequeos diagramasdesecuenciaquerepresentanarealizacionesdediseo,estoensoftwaredetamaomediano incrementar la productividad del equipo de desarrollo, desde que se ha aprendido a desarrollar softwareserecomiendadivideyvencers.Otropuntoimportanteeselmanejodelasentidades,estas entidades (Clases Persistentes), estarn siendo transmitidas por el protocolo http hasta la aplicacin cuandosenecesiten,deestaformasetendrunordenenlacapturadelosdatosqueelactorintroduce alaaplicacin. Para realizar el diagrama de secuencia se necesita tener una buena experiencia en la tecnologa y entorno de desarrollo, ya que el modelador necesitar abstraerse tomando en cuenta el marco de trabajo,larelacinentrelasclases,ellenguajedeprogramacin,elentornodedesarrollo,tecnologade interfaz(ejemplo,AJAX,javascript),seguridad,entreotros. 328
Ingeniera de Sistemas Informticos

Universidad Privada P del Valle Unidad Acad mica Sucre

DIA AGRAMADE ECLASES En docum mentos ante eriores se tocaron algu unas de las caracterstic cas de las clases, c como o los tipos de asociaci n composic cin y agregacin. En es ste documento se profu undiza el de esarrollo del diagrama de clases.Pa araeldesarr rollodeeste ediagramase s debetomarencuenta aalosdiagramasdesec cuencia,del los cuales se e deben dete erminar a la as clases per rsistentes, la as cuales conformarn el e diagrama de clases. N No debe olvi idase que el l Diagrama de d Secuencia a est en funcin de la descripcin de los casos s de uso, si no sehahec choelAnlis sis. Unaclase etienelassiguientescar ractersticas, ,comosepu uedeverenlaFigura1:

Figura1.Caracteristic C asdeunaClase

p varias s los estere eotipos de visibilidad, v sin s embargo o el Nombre e, Atributos s y En distintos libros puede onesnodebe envariar. Operacio as operacion nes son ocur rrencias inte ernas y exter rnas que cau usan alguna accin en el e sistema. L Las Donde la operacionesayudanadetermina arlasclasesactivas.Cad daeventotie eneparasudescripcinlossiguient tes puntos: In nterno o Ext terno. Se de ebe especific car si va hac cer Interno (solo ( se ejec cutar en la a clase) o si se ej jecutarfueradelaclase(externoalaClase). Pr rioridad. Se debe espec cificar si los eventos inf feriores (La suspensin de otro ev vento para s ser m manejado) Fr recuencia.Sedebedeterminarcuan nfrecuenteocurre o eleve ento Distribucinde d lafrecuen ncia.Sedebe eespecificar rsielevento oocurreenintervalosre egularesoh hay icos. pi Re equisitosde erespuesta.Sedebeesp pecificareltiempopromedioparalarespuestadel d evento. Una lista de operacio ones externa as puede ser derivada del d modelo de d Casos de Uso, de las s interaccion nes delosact toresconlos sCasosdeUso U opueden nseridentif ficadoseneldesarrollodel d diseo. Un atribu uto es una propiedad de d un objeto o, como tam mao, posicin, nombre e, precio, fu uente, tasa de inters, o muchas ot tras. En UM ML, cada atributo puede ser convert tido a un tip po, el cual es e una clase e o primitiva. Si se elige un tipo especfico, ste e debera ser mostrado a la derecha a del nombr re del atribu uto o especificar r los tipos de e los atribut tos durante el anlisis, esto porque e los tipos so on (se puede decidir no obviosoporquenose s deseadef finirlostodav va.) 329
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Los atributos pueden ser mostrados en un diagrama de clases agregando un compartimento debajo del nombre de la clase. Para economizar espacio, se puede documentarlos de manera separada en lugar de una lista de atributos, completa con descripciones. Si se utiliza una herramienta de desarrollo, se puede esperar poder hacer un acercamiento para mirar los atributos (y sus descripciones) o un alejamiento paraverslolosnombresdelasclases. Tan pronto como se empiece a mostrar y definir el tipo de dato de los atributos, se generan dudas: es una cadena?, Es un booleano? Si el tipo es el nombre de alguna de las propias clases, no existe problema, adems que para el diseo se tiene definido el lenguaje de implementacin. Aunque UML permitedefinirpropiostiposdatosbaseennotacinindependienteallenguaje. Se puede tambin desear evitar usar los tipos de datos array, que son usualmente una mezcla entre un objetoyunaprimitiva,ancuandolamayoradeloslenguajesorientadosaobjetoslosoportan.Larazn es que las clases que secrean son probablemente mselegantes que usar unacoleccin declases como listas y conjuntos exclusivamente. Durante la fase de diseo, puede encontrarse usando arrays, pero debesercuidadosoennocomprometerelbuenestilodeprogramacinporunpocoderendimiento. En cuanto a UML concierne, los atributos y asociaciones SON SLO PROPIEDADES DE UNA CLASE. En otras palabras, cada atributo puede ser mostrado como un atributo o una asociacin con el nombre de atributo como el rol (aunque una asociacin a un valor primitivo o a un arreglo podra lucir fuera de lugar). Esto significa que se puede agregar multiplicidad a los atributos, despus del nombre del tipo, comoentero,paraatributosmultivalor,o[0...1],paraunvaloropcional. El primer paso para desarrollar el diagrama de clases (Modelo Esttico) es realizar un listado de las posiblesclases,queseconviertenenclasescandidatas,porcadaunadeestassedeberealizarunabreve descripcin explicando el propsito para el diagrama, si es que el grupo o la empresa de desarrollo de software determine. La descripcinque se realice servir para determinar si existen clases adicional que dependa de la que se est describiendo. Es aconsejable que al momento de determinar las clases est reunido el equipo de desarrollo, los responsables de cada disciplina o de cada rol. Cada clase debe ser entendidaporcompleto,deestaformaseevitalaomisindealgunadeestas,lograndounarobustezen el diagrama de clases. Los principales roles que debe participar son: Arquitectos, Analistas y los Especificadores de los Casos de Uso. Las clases candidatas generalmente son identificadas por palabras que aparecen en la descripcin de los casos de uso. Con un poco de prctica se podrn identificar rpidamentelaspalabrasquerepresentanalasclases. La descripcin de la clase debe ser completa, es decir, describir a los atributos y a los mtodos u operaciones. Estos, atributos y mtodos, estn presentes en los diagrama de secuencia. Este es otro motivo para que el diagrama de secuencia est desarrollado forma correcta y completa. Se debe entender por clases como un conjunto de responsabilidades que en conjunto conformarn parte de la aplicacin.Sedaunconjuntodesugerenciasparadeterminaralgunasdelasclases: Los actores (Asistente o Jefe de cocina), se identifican que son clases cuando se necesita almacenar la informacin de una actor, para el Jefe de Cocina se necesita guardar la cuenta y la contraseaparaaccederalaaplicacin.

330
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Objetos relacionados con el negocio con informacin y comportamiento de inters, cada uno de estosobjetossonconsultadosporlosactoresparaobtenerinformacin. Grupos de cadenas de caracteres o nmeros que se puedan identificar en la descripcin de los casosdeuso.

Algunas veces es muy difcil encontrar un nombre correcto para una clase, si existe este problema se puede dar un nombre abstracto, que no represente la funcin dentro de la aplicacin, PERO, se debe describirenunglosariodetrminoslafuncinquetendrlaclase. Se debe aclarar el trmino de Clases Interfaces, las cuales representarn declaraciones abstractas de responsabilidades dadas por una clase o subsistema. Esta permitir abstraer las responsabilidades de una clase. Interfaces permite capturar y examinar las similitudes de la aplicacin, definidas de forma precisa con las partes de la aplicacin que interactan al momento de ejecutarse. Puede haber composicin(terminoquesevermsadelante)entreestas. Las clases y grupos permiten agrupar relaciones y responsabilidades en unidades que pueden ser desarrolladas con relativa independencia. Las clases llenan un conjunto de responsabilidades atmicas mientras que los subsistemas estn compuestos de bloques que a su vez estn compuestos de clases u otrossubsistemas. Cada subsistema debe comunicarse por medio de una clase interfaces, la cual permitir definir un conjunto de operaciones hacia el exterior del subsistema, esto se entiende como la separacin de la declaracindelcomportamiento(lasespecficasclasesenelsubsistemaquerealizanelcomportamiento de este). Un ejemplo de una clase interfaces se puede ver en la Figura 2. Ya que un Servicio Web puede serconsideradocomounsubsistema.

Figura2.EjemplodeunaClaseInterfaces

UnserviciowebpuedeencapsularelcomportamientodevariasclasesControladoras.

331
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Otroejemplodeestetipodeclasessonlasclasesfronteradecadacapaquesedetermineenelmarcode trabajoeinclusoclasesquerealizanlaconexinalabasededatos,clasesquerealizanoperacionescomo porejemplobsqueda,filtrodedatos,operacionesmatemticas,entreotras. Para el ejemplo se crear un diagrama de clases para los subsistemas de Seguridad y luego para Cocina, para esto realizaremos un clic derecho en la carpeta del subsistema Seguridad, inmediatamente aparecer varias opciones de las cuales se debe seleccionar New y Class Diagram, esta actividad har aparecer un nuevo diagrama de clases al cual se le debe cambiar de nombre a Diagrama de Clases Seguridad,elresultadosepuedeobservarenlaPantalla1.

Pantalla1.Crearundiagramadeclases Parainiciareldesarrollodelnuevodiagramadeclasessedeberealizardobleclicsobreeste,locualhar aparecerunnuevaplantillaalladoderechodelaventanaactiva. El primer paso es identificar a las clases persistentes que participan en los distintos diagramas de secuencia que correspondan al subsistema de Seguridad. La nica clase que se puede identificar en este subsistemaesEmpleado,lacualestrepresentadaporDTOEmpleado.Porlotantoeldiagramadeclases contendr una clase. Para colocar la clase en el diagrama de clases solo se debe arrastrar hacia la plantilla. La clase Empleado est ubicada en Bussiness Services y Entidades. El resultado de este diagramadeclasesparaelsubsistemadeSeguridadsepuedeverenlaPantalla2.

Pantalla2.DiagramadeClasesdelsubsistemaSeguridad El diagrama anterior es muy simple, ahora se realizar el diagrama de clases del subsistema de Cocina. De igual forma se debe crear un nuevo diagrama de clases con el nombre de Diagrama de Clases de 332
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Cocina.ComosepuedeverenlaPantalla3.Comosepuedeobservarelnuevodiagramaestubicadoen lacarpetaquerepresentaalsubsistemaCocina.

Pantalla3.CrearelDiagramadeClasesdeCocina Unavezcreadoeldiagramadeclasessedebearrastraraestetodaslasclasespersistentesqueparticipan en los distintos diagramas de secuencia y las que se puedan identificar en la descripcin de los casos de uso.ElresultadodeestaactividadsepuedeverenlaPantalla4.

Pantalla4.DiagramadeClasesdeCocina LamultiplicidadylasasociacionesquesevisualizanenlaPantalla4selasdetermineliniciodelCaptulo III al momento de determinar los elementos ms significativos. Sin embargo algunas de las clases no estn con sus respectivos atributos como por ejemplo Cliente, Orden de Servicio y Habitacin, estos deben ser identificados primero en la descripcin de los casos de uso y luego en el diagrama de secuencia. Est claro que si se encuentra un atributo nuevo en el diagrama de secuencia se debe adicionaraladescripcindelcasodeuso. Clase Cliente: Nombre, ApellidoPaterno, ApellidoMaterno, Direccin, CarnetIdentidad, LugarOrigen, LugarDestino, Pasaporte, Nacionalidad, este ltimo atributo se puede convertir en una nueva clase, ya que existen un nmero de considerable de nacionalidades, dentro de este subsistemaqueseestdescribiendonosetomaencuenta. 333
Ingeniera de Sistemas Informticos

Universidad Privada P del Valle Unidad Acad mica Sucre

Cl lase OrdenS Servicio. FechaOrden, MontoPagado M o, MontoTot tal. Se debe tener much ho cuidado en co olocar un c digo identif ficador como o atributo, generalment g te se encuentra en trab bajos este tipo de e defecto, este e cdigo por lo general no perte enece a la clase c y no es s necesario colocar. Per ro, co omo por eje emplo, el at tributo Carnet de Identidad en una a clase Perso ona, si debe e ser incluid do, ad demsesun nidentificado or.

Un punto o important te, es la aso ociacin que e se pude ver v entre Co omida, Orde enServicio y Bebida, es sta relacin tiene una Multiplicidad M d de mucho os a mucho os, si existe una relaci n de este tipo, pero se necesita datos adicio onales que van v a perten necer a la as sociacin se debe adicio onar una Cla ase Asociaci n comosepuedeveren e laFigura3, 3 esteejemp ploesclsico o.
Emp pleado
(f rom Clas ses Entidad)

Tien ne 1..* *

Empresa

Trab bajo Sueldo

Figura3.ClaseAsociacin A

po de asocia acin se deb be utilizar el botn Asso ociation Class , dentr ro de Ration nal Para realizar este tip tre otros de etalles de es ste ejemplo esta la Aso ociacin Dire eccional, la cual va desde Empresa a a Rose. Ent Empleado o.EnlaFigura4sepued deverlasdo osclasesdeasociaciones a s.Atodaslasasociacion nesselesdebe colocarun u nombrepara p elmejor rentendimie entodelaas sociacin,co omoestenelejemplodelaFigura3: Empresatiene1omuchosEmple eados.

ura4.Naveg gabilidad Figu

Comosepuedeveren e laFigura3, 3 sedefineporcadaaso ociacinuna amultiplicid dad,lascuale esseclasifican en: n:Exactamen nten. mn: m Cualqu uiernmeroenelrangodeman(in nclusive). 0. ...*:Cualquie ernmeroen e elrangode d 0ainfinito. *: :Cualquiernmero n entr re0einfinito o. 0. ...1:Opciona al. La nica asociacin n que no lleva una multiplicidad m d es la de Herencia (Generalizac ( cin). Para la cin, la multiplicidad de el elemento o compuesto o es siempr re 1 debido a que, de acuerdo a l las composic reglas de e UML, un ob bjeto compo ositor no puede ser com mpartido ent tre objetos compuestos c s por lo tan nto lamultiplicidadseraredundante eenstecaso. Enotrasclases,silamultiplicida adnosemuestra,sedebe asumir que q esta no o est espe ecificada, o que simple emente no se conoce hasta este punto. Sera 334
Ingeniera de Sistemas Informticos

Universidad Privada P del Valle Unidad Acad mica Sucre

incorrect toasumirqu ueunamultiplicidadnoenunciada e im mplicaalgn nvalorpordefecto, d com mo1.Sepuede ver en la Figura 5 un n ejemplo de Composicin. Es una forma fuert te de agrega acin donde e el tiempo de vida de la parte coin ncide con el l todo. La multiplicidad m en el lado del agregad do (todo) de ebe ser men nor iguala1.Elobjetoco ompuestonosepuedecompartirporotrosobjetosymuer reconelque elocompon ne. Formafuertedeagre egacin.Rela acindeltip poespartede.

Figura5.Asociacin A de d Composicin

Todoesto opareceuntantoconfu uso.Laexiste enciadecom mposicinenUMLesre ealmentesol loelresultad do de las pr ropiedades de lenguaje es de progra amacin com mo C++. En C++, un ob bjeto puede ser parte d del mismo espacio de memoria m que e otro objet to: en ste caso, el sub bobjeto efectivamente muere con el objeto ms m grande. Estas propie edades del lenguaje l tam mbin permiten la segu unda parte de d la regla: un objeto co ompositor no n puede se er parte de dos objetos s al mismo tiempo. Debido a que si los objet tos compues stos son separados no se s tiene un recolector r de d basura en n C++, enton nces el objeto compues sto puedequ uererelimina aralobjetocompositorcuandoelcompuestomismo m eselim minado,loque q refuerzael peligrodecompartir. Porprop sitosdedis seo,lacom mposicinestambintilcuandose edeseaagre egarcomportamientoa un objetoes scondiendoel e objetodelegadodent tro,enlugardeheredarl lodeotracla ase. La agrega acin es otr ro tipo de asociacin a que q se la pu uede ver en la Figura 6. 6 Agregaci n dbil una instanciadeunaclaseesthecha adeinstanciasdeotraclase. c

Figura6. 6 Asociacin nAgregacin n

Una clase de asocia acin es la denominada a O que sig gnifica que solo una de las varias s asociacion nes potenciales pueden ser instancia adas en cada momento o para cualqu uier objeto, como se pu uede ver en la Figura7.

Figur ra7.Asociac cintipoO

335
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Otro tipo de asociacin es de generalizacin especializacin. Es la relacin taxonmica entre un elemento ms general y un elemento ms especfico. Es usado para clases, casos de uso y otros elementos. Una subclase hereda todos los atributos y el comportamiento de su(s) superclase(s). La Herenciaesuntipodiferentederelacinquelasotrastres:laherenciadescribeunarelacinentreclases entiempodecompilacinmientrasquelasotrasdescribenunaconexinentrelosobjetosentiempode ejecucin. De acuerdo al estndar UML, todas las relaciones en tiempo de ejecucin vienen bajo el trmino asociacin. Escoger entre las relaciones puede ser difcil, se necesita usar la intuicin, experiencia y deduccin. Durante el anlisis, se debe esperar que la frecuencia de estas relaciones sea: Asociacin > agregacin> herencia> composicin. Se puede ver un ejemplo de Generalizacin en la Figura8.
Persona

Funcionario

Docente

Estudiante

Figura8.EjemplodeGeneralizacin

Luego de ver un poco de teora se continuar, ahora el ejemplo. Para adicionar los atributos se debe realizar doble clic en la clase, esta actividad mostrar una pantalla con el nombre de Class Specification, de la cual se debe seleccionar la pestaa Attributes. Como se puede ver en la Pantalla 5, dentro de esta pestaaadicionaremoslosatributosdelaclaseordendeservicio.

Pantalla5.AdicionarAtributos Para adicionar un atributo solo se debe presionar la tecla Insertar o Insert, lo cual adicionar un nuevo atributo. A este nuevo atributo se le debe cambiar de nombre, solo se debe hacer doble clic sobre este, 336
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

lo cual permitir ver una nueva ventana con el nombre de Class Attribute Specification, como se puede verenlaPantalla6.

Pantalla6.Crearatributo

DentrodeestapantallasepudeverunmarcoconelnombredeExportControl,elcualpermitedefinirel tipodeatributo,yaseaPublic(Pblico,sepodraccedersinunmtodogetyset),Protected(quesolose utilizar dentro de la clase), Private (que solo se tendr acceso a este por medio de get y set) y Implementation (La operacin es visible solamente dentro de la clase misma). Para este atributo se utilizar Private. Adicionalmente, se debe definir el tipo de dato el cual ser DateTime. El resultado de estaactividadsepuedeverenlaPantalla7.

337
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7.DefinirunAtributo De la misma forma se de definir los otros atributos de la Clase Orden de servicio, el resultado final se puedeverenlaPantalla8.

Pantalla8.ResultadofinaldeladefinicindelosatributosdeOrdenServicio

De la misma forma de puede definir los atributos para la Clase Cliente, el resultado de esta actividad se puedeverenlaPantalla9.

Pantalla9.ResultadofinaldeladefinicindelosatributosdelaClaseCliente. ElsiguientepasoesdefinirsiexistenasociacionesdeAgregacin,ComposicinydeGeneralizacin.Estas operaciones se han descrito en anteriores documentos. Para finalizar se debe determinar el nombre de lasasociacionesqueparticipaneneldiagramadeclases.ElresultadofinalsepuedeverenlaPantalla10.

338
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre


Comida
(from Entidades)

OrdenServici o 1..* est 0..*


(from Entidades)

Bebida
(from Entidades)

- Nombre : string - Identificador : int - Descripci on : string

- FechaOrden : DateTime - MontoPago : float - MontoTotal : float

est 0..* 1..*

- Identificador : int - NombreBebida : string - Caracteristicas : string - Canti dadDisponible : int

0..* regi stra 1 Cl iente


(from Entidades)

- Nombre : string - Apell idoPaterno : string - Apell idoMaterno : string - Direccion : string - CarnetIdentidad : string - LugarOrigen : string - LugarDestino : stri ng - Pasaporte : string - Nacionalidad : string

Pantalla10.DiagramadeclasesdelsubsistemadeCocina

Es bueno desarrollar diagramas de clases en perfecta notacin UML. Es de la misma manera bueno poderencontrarbuenosobjetos,atributosyrelaciones. Elpuntodepartidaparadesarrollarundiagramadeclases,comosehadichoanteriormente,esutilizarla descripcindeloscasosdeuso.Detrsdeesto,vendrunarduoanlisisylaexperiencia. Expertos del dominio del negocio (Clientes y colegas) pueden ayudar en este punto, ellos puedan ser invitadosacomentarelmodelodeclases.Usariteracionestambinpuedeayudar. Elnombreununaclasenodebeirenpluralyaquerepresentaunsoloobjetoenuntiempodeterminado. Algunasvecessepresentaladuda,almomentodedeterminarunobjeto,siesonodebeser,losobjetos debensersencillosysisepiensaenunposibleobjetoesmejorescribirelnombreenunpapelyaquees muyprobablequeseaunobjeto. Otrotruco,sinopuedeencontrarselosobjetoscorrectosenloscasosdeuso,eshablarconpersonasen el rea, pero independientes, acerca del negocio o de la aplicacin en cuestin. Esta persona debe registrar todo lo que se mencione que le parezca un concepto importante, exactamente de la misma maneraquesiseestuvierantomandonotasdelectura. AlgunosejemplosdediagramasdeClases

339
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Personal
(f rom Entidades)

BajaComputadora
(f rom Entidades)

Informe : string

Nombre : String ApellidoPaterno : string ApellidoMaterno : string Direccion : string Tendr 1

Tiene HistorialComputadora
(f rom Entidades)

1..* MantenimientoComputadora
(f rom Entidades)

1 Tendr 0..* 1

Computadora
(f rom Entidades)

Tiene 1..*

TipoSuceso : string Fecha : DateTime

TipoMantenimiento : string Informe : string Fecha : DateTime 1..* Est 1 TipoProblema


(f rom Entidades)

NumeroActivo : string 1 Marca : string Descripcion : string Activa : Bolean 1

Tiene HistorialComponente 1..*


(f rom Entidades)

Componente
(f rom Entidades)

Tiene 1..*

TipoSuceso : string Fecha : DateTime

1 Estar 1..* MantenimientoComponente


(f rom Entidades)

Tiene 0..1

NumeroSerie : string 1 Modelo : string 1 Marca : string Descripcion : string Activo : boolean 1 1..* Representa 1 TipoComponente
(f rom Entidades)

Tendr 1 BajaComponente
(f rom Entidades)

Informe

TipoMantenimiento : string Informe : string Fecha : DateTime

Nombre : string

DiagramadeclasesparaInventariodeComputadoras

DiagramadeClasesdeInventario

340
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

<<entity>> C.Plan Plus Aquino Nmero de Cuotas

<<entity>> Plan Anticrtico FechaInicioContrato FechaDevolucin

<<entity>> Plan Ahorro Nmero de Cuenta

<<entity>> Inscripcin Numero Fecha Gestin 1 * <<entity>> Semestre (Nivel) Nombre 1 <<entity>> Estudiante Codigo Nombre Direccion 1..* Cuardarse() 1 1 <<entity>> C.Plan de Pago 1 1 1 NmeroPago

<<entity>> Aula CodAula Nombre Capacidad

1 <<entity>> Paralelo 1..* Cantidad Alumnos Nombre 1 <<entity>> Materia-Profesor HorasT rabajo

1..* <<entity>> Docente CodDoc Especialidad

1 Tiene <<entity>> Tutor CiTut NombT ut DirT ut TelefTut Parentesco 1 Historial de Notas Nmero Fecha 1

1 <<entity>> Materia CodMAt Nombre Crditos 1

1..*

DiagramadeClasesdeInscripciones
Asiento Estado numero clase tipo ubicacion Reservacin 0..1 Numero Importe se corresponde Crear()
pertenece 1..n tiene 1 1 1..n 1 se corresponde 0..n solicita 0..n pertenece

Agencia Nombre Direccion telefono fax email

hacen 1..n 1

Vuelo Fecha

Pasaje numero importe


tiene 1

1 paga 1 1

Pasajero identificador nombre

Cliente No. Identificacion Nombre

1..n

Venta Numero fecha

1 0..n

paga 0..1

Cheque NumeroCuenta banco

DiagramadeClasesdeReservarPasaje
Ingeniera de Sistemas Informticos

341

Universidad Privada del Valle Unidad Acadmica Sucre

CAPITULOIV
IMPLEMENTACIN

342
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

ESTNDARESDEIMPLEMENTACIN Elprimerpasoparainiciarlaimplementacinesdefinirunconjuntodeestndar,queformaranpartede las reglas que se establecen para el desarrollo de software, cada grupo de desarrollo, persona o institucin debe definir un conjunto de estndares. Estos estndares permitirn a los Programadores entender el cdigo y sobre todo entenderse. Es muy importante que estos programadores cumplan al 100% el estndar planificado por los diseadores y jefes de implementacin. Para la metodologa XP, es extremaimportanciaycumplimientodeunestndardeprogramacin. La descripcin del documento de Estndares de Implementacin debe ser discutido por varios roles dentro del desarrollo de software. El ms importante de los roles que deben participar en la reunin de definicin de estndares es el Arquitecto de la Aplicacin, luego est el diseador, el jefe de implementacin y un representante del grupo de calidad. Cada uno de estos dar su visin de la aplicacinycomoserimplementada. En este documento se definir un conjunto de estndares, puede que el grupo de desarrollo decida incluir otros tipos de estndares. Este documento servir como una propuesta para cualquier grupo de desarrollo que este implementando con .NET y el lenguaje de programacin C#. Este documento de estndares es iterativo incremental, esto implica que existir de una a muchas reuniones para determinarelconjuntodeestndaresdeimplementacin. ControlesdeUsuarioWeb: Los controles que se describen a continuacin pertenecen la interfaz de usuario, representarn a los componentesprefabricadosqueofreceVisualStudio.NET,enlaplataformadedesarrolloWeb. Para: TextBoxt:TXT_Nombre Label:LBLNombre(Paraetiquedas) Label:LBLMensajeX(Paramensajesenlosformularios,Xserunnmero) Button:BTNNombre ImageButton:IBTNombre LinkButton:LKBNombre DropDownList:DDLNombre ListBox:LBXNombre CheckBox:CKBNombre RadioButton:RBTNombre Panel:PNLNombre GridView:GVWNombre TreeView:TVWNombre ComponentesAJAX AJXYYYNombre:DondeYYYsonlasprimerasletrasdelnombredetipodecomponente. El Nombre descrito en cada componente debe ir expresar el tipo de informacin se quiere capturar o mostrar. ClasesInternasdetipodedatos Estas clases internas se utilizarn dentro de una solicitud o evento. Para el rpido reconocimiento del tipodeclasedentrodeloseventossedebeutilizarelsiguienteestndar. DataRow:row_Nombre 343
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DataTable:t_Nombre DataSettipeado:DTONombre DataSetnotipeado:DSTNombre Cada una de estas variables, excepto DataRow, se debe instanciar para su utilizacin. Si existen otros tiposdevariablesdebeseguirelpatrndelasdescritas. Variablesnormales: Las variables tambin deben llevar un estndar establecido por el grupo de desarrollo, en este caso se muestraalgunasdelasvariableslascualespertenecenauntipodedatodentrodellenguajedeC#. string:str_nombre int:int_nombre boolean:b_nombre Double:dou_nombre AplicacionesWEB AlmomentodecrearunaaplicacinWebsedebetomarencuentalassiguientescaractersticas: NombredelaAplicacin:NombreDepartamento_NombreSubsistema Control:Enestacarpetavantodaslasclasescontroladorasdeformularios o CIUNombre(CIUquieredecircontroladoradeInterfazdeusuario). WebForm:AqudebenirtodaslasclasesWebFormdelaaplicacin.Estastendrnunaextensin .aspx o PNombre(Pquieredecirpgina) ControlesUsuario:Enestacarpetavantodaslasclasesdecontrolesdeusuario.Estastendrnuna extensinde.ascx o CUNombre(CUquieredecirControldeUsuario) Reutilizables: Aqu van todos los Typed DataSet que se crean especialmente para la aplicacin. Generalmentesecreanestosparalosreportesdentrodelaaplicacin. MasterPage: Aqu van todas las clases que se crean especialmente para heredar sus propiedades hacialosWebForm.Estasclasestendrnunaextensin.master o MPNombre(MPquieredecirMasterPageoPginaPrincipal) Cuando se adicione el Web Service a la aplicacin el nombre de la referencia debe ponerse WSNombre(DondeWSquieredecirWebService). Estas caractersticas tienen que ser similares al Marco de Trabajo que se ha definido en la Arquitectura de Software. Control, WebForm y los otros, sern carpetas para colocar las diferentes clases. Debe notarse que cada una de las clases que conforman la aplicacin tienen responsabilidades las cual no debe ser diferente, es decir, por ejemplo, que una clase formulario no puede ser una clase control. La Figura 1, que se muestra a continuacin, pertenece a la Arquitectura y es el Marco de Trabajo definido paralaaplicacin.

344
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Figura1.MarcodeTrabajodelaAplicacin

ServiciosWEB AlmomentodecrearunServicioWebsedebetomarlassiguientescaractersticas: Nombre del Servicio Web: WSNombreSubsistema (donde SW quiere decir ServicioWeb). Estas clasestendrnunaextensin.asmx. Reutilizables: En esta carpeta estarn todos los DTO que se diseen. Estas clases llevarn la extensin.xsd o DTONombre(DTOquieredecirDataTranferObjectoObjetodeTrasferenciasdeDatos) Controladoras: En esta carpeta estarn las clases control, las cuales se comunicarn con el SQLHelper o con los Agentes de Servicio. Estas clases tendrn una extensin .cs que pertenece a launaclasesenellenguajeC#. o CNombre(CquieredecirControladora) Entidades: En esta carpeta irn todas las clases entidades que salieron de la etapa de anlisis y diseo y que sean persistentes. Estas clases se usarn, por ejemplo, para identificar los datos propiosdelaentidadalmomentodecapturaromostrarenlaaplicacinweb.Estasclasesdeben estar serializadas para transportarlas por el servicio web y que la aplicacin las pueda utilizar. Estasclasestendrnunaextensin.csquepertenecealaunaclasesenellenguajeC#. AgentesServicio: En esta carpeta estarn las clases que van a interactuar con servicios web externos. Esto es para encapsular al servicio web. Estas clases tendrn una extensin .cs que pertenecealaunaclasesenellenguajeC#. o ASNombre(ASquieredecirAgentedeServicio) SQLHelperserunareferenciaqueseincluyaalservicioWeb. ArchivoWeb.Config(ParaWebServicesoAplicacionesWeb): Laconfiguracinlocaldelosservicioswebempleandoelficherodeconfiguracinweb.configposeegran cantidaddeparmetros.Severnacontinuacinalgunasdelascaractersticas. 345
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

En el archivo web.config, cuya estructura es la de un fichero XML, se agrega tags como por ejemplo <appSettings>y</appSettings>paradelimitarladefinicindelosparmetros. Enestareginseguardarlasiguienteinformacin: Nombregenricodeservicioswebutilizados. Cadenadeconexinalabasededatosdelservicioweb NombredeprocedimientosalmacenadosusadosporelSW ConstantesinherentesalSWcomopuedensercantidaddereintentosdeunaoperacin. No confundir las definiciones de estas constantes con los valores a ser almacenados en la configuracin generaldelsistema.AqusolosealmacenaaquelloqueafectadirectamenteeldesempeofsicodelSW. Ejemplodeweb.config <?xmlversion="1.0"encoding="utf8"?> <configuration> <appSettings> <addkey="CODWS"value="CODIGODELSERVICIOWEB"/> <addkey="WSGNAME"value="NOMBREGENERICODELSERVICIOWEB"/> <connectionStrings> <addname="CCImpresionesConnectionString"connectionString="Data Source=angerona;InitialCatalog=CCImpresiones;User ID=sa;password=lafuente"providerName="System.Data.SqlClient"/> </connectionStrings> <!Definiciondelasconstantesparatrabajarconlasareas> <addkey="AdicionarCliente"value="PAICliente"/><!ProcedimientoAlmacenado> </configuration> Ya sea una aplicacin web o un servicio web deben llevar comentarios que expliquen la responsabilidad deuneventooelobjetivodelasentenciadentrodeunevento. Dentrodecadaclase: Unresumendelparaqueslaclase Uncomentarioporcadamtodo Sielmtodoesmuycomplejocomentarlaspartes.

346

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

IMPLEMENTACINDELACAPADEPRESENTACIN Se inicia en este documento la etapa de implementacin de la aplicacin, esta implementacin est en funcin de la arquitectura y de la descripcin de las realizaciones de diseo. Esta ltima est representadapormediodelosdiagramasdesecuencia. EnestedocumentoseimplementarlarealizacindeAutenticar,paraejemplificarcomosedebencrear lasclasesencadaunadelascarpetasyademscumpliendoconelestndardeimplementacin. Para iniciar se presenta a manera de recordar la descripcin del caso de uso de autenticar, Mapa de Navegacin,realizacionesdediseo,diagramadeclaseswebylosdiagramasdesecuencia. DESCRIPCINDELCASODEUSOAUTENTICAR. CasodeUso AutenticarEmpleado Actores Resumen Empleado(JefedeCocina,Recepcionista) ElcasodeusoseiniciacuandoelEmpleadoquiereingresarala aplicacin,paraestodebeintroducirsucuentaycontraseade accesoaunainterfazqueleproporcionalaaplicacin. Verificar si el actor tiene autorizacin para ingresar al manejo de laaplicacin. Descripcin AccindelActor(es) Pantalla1 RespuestadelSistema

Responsabilidades CUasociados Precondiciones

1.Elcasodeusoseiniciacuandoel Empleadonecesitaingresaralaaplicacin 3.IngresaelNombredeCuenta(A)yla Contrasea(B) 4.RealizaunclicenelbotnAutenticar(C)

2.Presentaunainterfaz(Pantalla1),enla cualdebeingresarelEmpleadoelNombre deCuenta(A)ylaContrasea(B) 5.Validainternamentecomparandoel 347

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

NombredeCuentaylaContrasea 6.Direccionaalmenprincipaldela aplicacinparalosEmpleados CursosAlternos Paso5.Silavalidacinesincorrectalaaplicacinpresentaunmensajedetexto(D)con lassiguientespalabrasElNombredeCuentaolaContraseaesIncorrecta Paso5.SilavalidacindelNombredecuentanocoincideconseiscaracteresalinicio msdosnmeros,laaplicacindebepresentarunmensajedetextoconlassiguientes palabrasVerifiqueelNombredeCuenta(seiscaracteresmsdosnmeros) Requisitosno Funcionales Seguridad. ElNombredeCuentadebeconteneruntotalde8caracteres,los seisprimerosdebenserletras,losdosltimosnmeros. Lacontrasea,luegoderealizarunclicenelbotndeAutenticar (C)debeaplicarse,sobreesta,unalgoritmodecifrado,para lograrunaptimaintegridad FacilidaddeUso Losmensajesrelacionadosalautilizacindelainterfazdebenser legibles,explicativosydeuncolorllamativo,paralograruncorto tiempodeaprendizajeenlautilizacindelainterfazyuna ptimacomprensin. ElEmpleadotendrunaautorizacinparalautilizacindela aplicacin

Postcondiciones

MAPADENAVEGACINAUTENTICAR

PInicio
(f rom WebForm)

<<Link>>

<<Link>>

PAutenticar
(f rom WebForm)

PageLoad() PCambiarContrasena
(f rom WebForm)

DIAGRAMADEREALIZACIONESDEDISEODEAUTENTICAR

348
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Autenticar
(from Autenticar Empleado)

<<realize>>

RD Autenticar

DIAGRAMADECLASESWEB
<<Link>>

PAutenticar
(f rom WebForm)

C_Autenticar <<Submit>>
(f rom ControlesUsuario)

PageLoad()

Autentcar()

Controla

CIUAutenticar
(f rom ControlInterf az)

SWSeguridad
(f rom Serv iciosWeb)

CUIAutenticar() Autenticar() CifrarContrasena()

Autenicar()

DIAGRAMADESECUENCIA

349
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

: Empleado

: PAutenticar PageLoad( )

: C_Autenticar

: CIUAutenticar

: SWSeguridad

: CSW_Seguridad

: DTOEmpleado

: SQLHelper

CUIAutenticar( ) Autentcar(Cuenta, Contrasena) Autenticar(Cuenta, Contrasena) CifrarContrasena(Contrasena) Autenicar(Cuenta, ContrasenaCifrada) Autenticar(Cuenta, ContrasenaCifrada) DTOEmpleado( )

FillDataset(Cadena, TipoComando, PANombre, dto, arrayTablas) AutenticarEmpleado(dtoEmpleado, Cuenta, ContrasnaCifrada)

Se debe tomar en cuenta estas descripciones para la implementacin. Se aprecia que desde la descripcin del caso de uso hasta el diagrama de secuencia, la existencia de una traduccin de un lenguajedelusuarioaunlenguajedelprogramador. Seiniciaimplementarlacapadepresentacin. Ya estando en el Visual Studio 2005, se puede crear una aplicacin Web, para esto se debe hacer un clic enlaopcindelmenprincipalArchivo,luegoNuevoySitioWebcomosepuedeverenlaPantalla1.

Pantalla1.CrearunaaplicacinWeb Estaactividadmostrarunaventana,lacualsepudeverenlaPantalla2.
Ingeniera de Sistemas Informticos

350

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2.DefinireltipodeAplicacinWeb Dentro de la Pantalla 2 se pude ver un tipo de proyecto con el nombre de ASP.NET AJAXEnabled Web Site, este tipo de proyecto permite construir aplicaciones con la tecnologa AJAX (acrnimo de Asynchronous Java Script and XML en ingls Java Script y XML asncronos). Esta tecnologa ha permitido mejorar en gran medida la interfaz Web. Para utilizar AJAX en aplicaciones futuras se debe instalarlaExtensinAJAXparaASP.NET(dentrodedirectoriodelCaptuloIVseencuentraestaextensin con el nombre de ASPAJAXExtSetup.rar), una vez instada la extensin se debe realizar la actividad descrita para la Pantalla 1, debe visualizarse la opcin marcada en al Pantalla 2. Para ms informacin sobre AJAX para ASP.NET se puede visitar http://www.asp.net/ajax/. En este curso no se estudiarn los componentes incluidos en Ajax Control Tool Kit, los cuales son componentes gratuitos ofrecidos por Microsoft. Siguiendo el estndar definido en el anterior documento, el nombre de la aplicacin Web a crear ser SeguridadcomosepuedeverenlaPantalla3.

351
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla3.CrearlaAplicacinWebparaelSubsistemaSeguridad Unavezintroducidoelnombreyseleccionarellenguajededesarrollosedeberealizarunclicenelbotn Aceptar.Estaactividadpermitircrearlaaplicacinweb.LaPantalla4muestralaestructuradelentorno dedesarrolloparalanuevaaplicacin.

352
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla4.EntornodeDesarrollodelaAplicacin Como se puede observar en la Pantalla 4, existe en la parte superior izquierda del formulario un componenteconelnombredeScriptManager,estecomponentepermiteutilizarcualquiercompontede AJAX para ASP.NET. Los componentes necesitan de este componente para visualizar sus funcionalidades enlainterfaz.Adicionalmente,setienelaventanaExploradordeSolucionesubicadaenlapartesuperior derecha y bajo de esta, est la ventana de Propiedades, esta ltima visualizar las caractersticas y los eventosposiblesparacadacomponentequeestseleccionado. El primer paso es crear las carpetas que alojarn a las distintas clases diseadas en la etapa de diseo. Para crear una carpeta se debe realizar un clic derecho sobre del nombre de la aplicacin, en este caso Seguridad, de inmediato se visualizar varias opciones de las cuales se debe seleccionar Nueva Carpeta, comosepuedeverenlaPantalla5.

Pantalla5.CrearunaCarpeta Unavezhechalaactividadsedebecambiarelnombrealanuevacarpeta,estenombredebeserigualal marcodetrabajoquesehadefinidoeneldocumentodelaArquitectura. LacreacindelascarpetasestenfuncindelMarcodeTrabajodefinidoeneldocumentodeDefinicin delaArquitecturadelaAplicacin.EsteMarcodeTrabajosepuedevisualizarenlaFigura1.

353
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Figura1.MarcodeTrabajo Las cuatro carpetas que se visualizan en la capa de User Services deben estar presentes en al aplicacin WebcomosepuedeverenlaPantalla6.

Pantalla6.SubcapasdeUserServices Existenotrascarpetasquesedebencrearquenopertenecenalacapadepresentacin,estasson: Imgenes.Permitiralmacenarlasimgenesnecesariasparalavistosidaddelaaplicacin. Estilos. Permitir almacenar archivos de tipo CSS, hojas de estilo para la configuracin de las pginaswebqueseutilicenenlainterfaz. Pueden existir otras como Scripts o componentes COM, API, Active X, entre otros. En esta aplicacin no seutilizarningunadeestas. Adicionalmente se debe activar la carpeta de App_Code, carpeta por defecto del ASP.NET, para activar esta carpeta se debe realizar un clic derecho en el nombre de la aplicacin y seleccionar las opciones de AgregarcapetasASP.NETyApp_CodecomosepuedeverenlaPantalla7.

354
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla7.AgregarlaCarpetaApp_Code La carpeta de ControlInterfaz debe estar ubicada en la carpeta de App_Code, ya que sern clases que controlarn el comportamiento de la interfaz. El resultado final de la configuracin de las carpetas definidasenMarcodeTrabajosepuedeverenlaPantalla8.

Pantalla8.Carpetasconfiguradasdelacapadepresentacin Ahora se crear una pgina web con las caractersticas de MasterPage, la cual ser la que nos defina el estilodediseoparalasotraspginas. Se debe realizar un clic derecho sobre la carpeta MasterPage, seleccionar la opcin de Agregar nuevo elemento.ComosepuedeverenlaPantalla9. 355
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla9.Crearunnuevoelementoparalaaplicacin Esta actividad har visualizar una ventana, en la cual se debe seleccionar, entre las muchas opciones, Pgina Principal, esta actividad har que en la parte inferior de la ventana aparezca el nombre de MasterPage.master, el cual se debe cambiar a MPSeguridad.master, no debe olvidarse que se tiene un conjunto de estndares para la implementacin y el Marco de Trabajo. Esto se puede ver en la Pantalla 10.

Pantalla10.CrearunaPginaPrincipal
Ingeniera de Sistemas Informticos

356

Universidad Privada del Valle Unidad Acadmica Sucre

UnavezintroducidoelnombresedebeverificarellenguajedeimplementacinqueenestecasoesC#y luegorealizarunclicenelbotnAgregarubicadoenlaparteinferiorderecha. ElresultadodeestaactividadsepuedeverenlaPantalla11.

Pantalla11.PginaPrincipalcreada Como se puede ver en la Pantalla 11 se ha creado un nuevo formulario el cual contiene un componente con el nombre de ContentPlaceHolder, este componente permitir contener a todas las pginas (Clases) de tipo aspx que hereden sus caractersticas. A esta pgina principal se debe adicionar el componente AJAX ScriptManager, para que todas las pginas creadas puedan utilizar los componentes AJAX. AdicionalmentesedebeeliminarlapginaconelnombredeDefauld.aspx,paraluegocrearotra,yaque estanoservirenlaaplicacinquesedesarrolla. Para adicionar el ScriptManager, se debe visualizar el cuadro de herramientas, si est correctamente instalada la extensin AJAX para ASP.NET, se podr ver la papeleta de componentes con el nombre de AJAX Extensions, de esta papeleta se debe seleccionar el componente con el nombre de ScriptManager, comosepuedeverenlaPantalla12.

357
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla12.ComponentesbsicosdeAJAXASP.NET Un punto importante es que el componente debe estar antes del ContentPlaceHolder, ya que lo contrarionopermitireltrabajocorrectodeloscomponentesAJAX. La otra papeleta, con el nombre de MS Ajax contiene a los componentes adicionales que ofrece Microsoft. Dentro del curso en los documentos del Capitulo IV estn los archivos para instalar estos componentes.ElarchivoconelnombredeAJAXDLLs.rarcontienelaslibrerasdetodosloscomponentes AJAXControlToolKit.ElarchivoconelnombredeAjaxControlToolkit.zipcontieneejemplosdemanejoy configuracindecadaunodeloscomponentes.Adicionalmente,enelsitiodeAJAXdeMicrosoftsetiene un conjunto de videos que explican el funcionamiento y la configuracin de cada uno de los componentes inmersos en el AJAX Control Tool Kit. Se da ms explicacin sobre los componentes de AJAXdeASP.NETenestadireccin:http://www.asp.net/learn/videos/. La utilizacin de estos componentes debe describirse en la modelacin, por lo menos en el Diagrama de Clases Web, para el conocimiento de los desarrolladores, se puede considerar a cada uno de estos componentescomoclasesdetipo.js.ComosepuedeverenlaPantalla13.

358
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

PMAutenticar
(f rom MasterPage)

PAutenticar
(f rom WebForm)

<<Link>>

PageLoad() <<Submit>> C_Autenticar ScriptManager


(f rom MasterPage) (f rom ControlesUsuario)

CIUAutenticar
(f rom ControlInterf az)

Controla

Autentcar()

CUIAutenticar() Autenticar() CifrarContrasena()

SWSeguridad
(f rom Serv iciosWeb)

Pantalla13.DescripcindelaUtilizacindeScripManager Como se puede observar se ha modificado el Diagrama de Clases Web para la realizacin de diseo RD Autenticar. UnavezseleccionadoelScriptManagersolosedebearrastraraliniciodelformularioPMSeguridad,como sepuedeverenlaPantalla14.

Autenicar()

359
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla14.UtilizacindelScriptManager Ahorasedebecrearunapginawebconlaextensindeaspx,paraestosedeberealizarunclicderecho la carpeta de WebForm y seleccionar la opcin de Agregar nuevo elemento. Como se puede ver en la Pantalla15.

360
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla15.Agregarnuevoelemento. Esta actividad permitir visualizar una nueva ventana, de la cual se debe seleccionar Web Forms, adicionalmente se debe activar la opcin de Seleccionar la pgina Principal ubicada en al parte inferior cercaelbotnAgregar.ComosepuedeverenlaPantalla16.

361
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla16.CrearunaPginaWeb ComosepuedeverenlaPantalla16,sehaintroducidoelnombredePAutenticarparaestanuevaPgina Web,estenombredebeserigualaldescritoenelMapadeNavegacinparaelsubsistemadeAutenticar, la primera pgina tiene el nombre de PInicio, esta no ser tomada en cuenta ya que en el Diagrama de Clase Web la que inicia la interaccin con el usuario es PAutenticar. Una vez introducido el nombre se debe realizar un clic en el botn Agregar. Como se ha activado la opcin de Seleccionar la pgina principal,sevisualizarunanuevaventanaqueselapuedeverenlaPantalla17.

Pantalla17.SeleccionarunaPginaprincipal Como se puede ver en la Pantalla 17, se debe seleccionar a MPSeguridad.master ya que es la pgina principalcreadaanteriormente. Una vez seleccionada se debe realizar un clic en el botn de Aceptar, de este modo se crear una nueva pginawebconlascaractersticasdelapginaprincipal,elresultadodeestaactividadsepuedeverenla Pantalla18.

362
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla18.CreacindeunapginawebconelnombredePAutenicar Como se puede ver en la Pantalla 18, en segundo plano est el componente AJAX con el nombre de ScriptManager,estoaseguraquesepuedeutilizarloscomponentesAJAX.Porotrolado,seencuentraun nuevo componente con el nombre de Content, el cual permitir contener los distintos componentes de ASP.NET. Ahora se crear un archivo de estilo tipo CSS,para esto se deberealizar un clic derecho sobre la carpeta Estilo y seleccionar la opcin de Agregar un nuevo elemento. Una vez que se visualice la ventana que se venenlaPantalla19,sedebeseleccionareltipodearchivoconelnombredeHojadeEstilos.Elnombre delarchivoserESTSeguridad.css.

363
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla19.CrearunArchivodeEstilo Estearchivopermitirconfigurarlainterfaz,yaseauncontroldeusuarioTextBox,unLabeloinclusoun GridView.ParafinalizarlacreacinsedeberealizarunclicenelbotnAgregar.Elresultadosepuedever enlaPantalla20.

364
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla20.ArchivoEstilotipoCSS Acontinuacinsepresentalaestructuradelarchivocss,paraeldiseodelainterfaz. BODY { backgroundcolor:#dfdbdb; color:black; fontfamily:Tahoma; backgroundattachment:fixed; backgroundrepeat:repeatx; } .Titulo { fontsize:18px; color:gray; fontfamily:Tahoma; fontweight:bold; fontstyle:normal; fontvariant:normal; } .Texto { fontweight:bold; fontsize:9pt; color:black; fontfamily:Tahoma; } .Datos { fontweight:bold; fontsize:10pt; color:black; fontfamily:Tahoma; } .LabelDato { fontsize:10pt; color:black; fontfamily:Tahoma; } .Boton { backgroundposition:center; backgroundrepeat:repeatx; bordertopstyle:none; borderrightstyle:none; borderleftstyle:none; 365
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

borderbottomstyle:none; fontsize:10pt; backgroundattachment:scroll; fontfamily:Tahoma; backgroundcolor:silver; } .GRVDatos { fontsize:8pt; fontfamily:Tahoma; color:black; } .MensajeError { color:#ff0033; fontfamily:Tahoma; fontsize:12px; fontvariant:smallcaps; } .MensajeAyuda { color:#009933; fontsize:8pt; fontfamily:Tahoma; texttransform:uppercase; } .Titulo2 { fontsize:15px; color:black; fontfamily:Tahoma; fontweight:bold; fontstyle:normal; fontvariant:smallcaps; } .Titulo3 { fontsize:14px; color:gray; fontfamily:Tahoma; fontweight:bold; fontstyle:normal; fontvariant:normal; textdecoration:underline; } 366
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para agregar una nueva regla de estilo solo se debe realizar un clic derecho en la plantilla de estilos, lo cualdesplegarvariasopciones,delascualessedebeseleccionarAgregarregladeestilo.Comosepuede verenlaPantalla21.

Pantalla21.Crearunaregladeestilo. ElresultadodeestasactividadessepuedeverenlaPantalla22.

Pantalla22.Archivodeestiloconfigurado

367
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

ParautilizarelarchivodeestilosedeberealizardobleclicsobrelapginaprincipalMPSeguridad,unavez visualizada el formulario solo resta arrastrar el archivo .css hasta el formulario, esta operacin har incluirlosestilosdefinidosenlapginaprincipal.ElresultadosepuedeverenlaPantalla23.

Pantalla23.Aplicacindelarchivo.cssalapginaprincipal. Para confirmar que la pgina principal tiene registrado el archivo estilo se puede realizar un clic en el botn Cdigo, ubicado en el parte inferior izquierda, al lado del botn Diseo. Se puede ver en la Pantalla 24, la lnea nmero 8 con la referencia de ubicacin el archivo de estilo, de esta forma se confirmaqueestincluidoelarchivo.css.

368
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla24.Verificacindelareferenciaalarchivo.css Ahora,quesehaconfiguradoengranpartelainterfazdeusuarioesmomentodeiniciareldesarrollode lassolicitudesqueparticipanenlainteraccinconelusuario. El primer paso es estudiar la descripcin del caso de uso a implementar, en este caso solo se debe realizar una interfaz con dos datos a enviar por la aplicacin, que son Nombre de Cuenta y Contrasea, estedetallesepuedevereneltercerpasodeladescripcindelcasodeuso. Se crear un control de usuario que permita disear la interfaz prototipo. Para esto se debe realizar un clic derecho en la carpeta ControlesUsuario, ubicada en el Explorador de Soluciones. La opcin que se debe seleccionar es Adicionar un Nuevo Elemento. Una vez visualizada la Pantalla 25, se debe seleccionar la opcin Control de Usuario Web. El nombre de este nuevo control de usuario debe ser el mismo de se describe en el Diagrama de Clases Web y en el Diagrama de Secuencia, en este caso debe serC_Autenticar.

369
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla25.CrearunControldeUsuario Hechaestaactividad solo queda realizar un clicen el botn Agregar,el resultado de estas actividades se puedeverenlaPantalla26.

Pantalla26.ResultadodelacreacindeunControldeUsuario SiserealizardobleclicsobreelcontrolC_Autenticarseabrirunformularioenlaparteizquierdaala ventanadeExploradordeSoluciones.Esteformularioservirparadesarrollarlainterfaz. Elprimerpasoparainiciareldesarrollodelainterfazesinsertarunatablade9filasy1columna.Para estosedeberealizarunclicenlaopcinDiseo,delmenprincipal,luegoalaopcindeInsertarTabla, comosepuedeverenlaPantalla27.

370
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla27.CrearunaTabla Estaopcindarlugaraunaventanaconelnombredeinsertartabla,lacualsepuedeverenlaPantalla 28.

Pantalla28.DefinirColumnasyFilas Luego de definir el nmero de columnas y de filas se debe realizar un clic en el botn Aceptar, de inmediato, dentro del formulario aparecer una tabla con las caractersticas sealadas como se puede verenlaPantalla29.

371
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla29.TablaInsertadaparaeldiseodelainterfaz Ahora se debe arrastrar varios componentes desde el cuadro de herramientas. Se necesita cuatro componentes de tipo Label, dos de tipo TextBox y uno de tipo Button. El resultado de esta actividad se puedeverenlaPantalla30.

Pantalla30.ComponentesparalaInterfaz Ahora, se debe dar formato a cada uno de componentes. Para el primer componente Label que est insertado en la interfaz, en su propiedad de Text se debe introducir el siguiente texto Autenticar Empleado, adicionalmente a la propiedad CssClass se le debe asignar la clase definida en el archivo de tipocssconelnombredeTtuloylapropiedadIDdebecambiarseaLBLPantalla.ParaelsegundoLabel se debe cambiar la propiedad Text a Nombre de Cuenta y el ID a LBLCuenta, para el tercer Label la propiedad Label ser Contrasea y el ID ser LBLContrasea, para el ltimo Label se cambiar la 372
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

propiedad Text y el ID, la propiedad Text no contendr ninguna letra, para la otra propiedad ser LBLMensaje1. El nombre de cada uno de los componentes esta en funcin del estndar de implementacindefinidoenelanteriordocumento. ElresultadodeestasactividadessepuedeverenlaPantalla31.

Pantalla31.ConfigurandolosLabel Para cada uno de los TextBox, la propiedad de CssClass tendr la clasecss con el nombre de Datos, para el primer componente TextBox el ID cambiar a TXT_Cuenta y para el segundo ser TXT_Contrasena. La Pantalla32muestralaspropiedadesquedebencambiarse.

Pantalla32.PropiedadesquedebensercambiadasparalosTextBox Por ltimo se debe cambiar las propiedades del botn con el nombre de Text y ID, la primera tendr el valordeAutenticaryelsegundodeBTNAutenticar. ElresultadodeladefinicindelainterfazsepuedeverenlaPantalla33.

373
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla33.InterfazdefinidaparaAutenticar. Dentro de la descripcin del diagrama de secuencia para la realizacin de diseo deautenticar se puede ver que el Empleado por medio de una solicitud con el nombre de Autenticar enva la Cuenta y Contrasea hacia la Clase C_Autenticar. Esta solicitud est representada por el evento del botn BTNAutenticar,elcualsolicitaralaclaseCIUAutenticarautenticaralempleado. Para definir estas solicitudes dentro de la aplicacin el primer paso es crear la Clase CIUAutenticar. Para esto se debe realizar un clic derecho cobre la carpeta con el nombre de ControlInterfaz ubicada en la Carpeta App_Code dentro del Explorador de Soluciones, esta actividad mostrar varias opciones que se puedenverenlaPantalla34,delascualessedebeseleccionarlaopcinAgregarNuevoElemento.

Pantalla34.CrearunaclaseControladoradeInterfaz EstaltimaactividadmostrarunaventanaconelnombredeAgregarNuevaelemento,lacualmostrar varias opciones, de las cuales se debe seleccionar Clase, como se puede ver en la Pantalla 35, adicionalmente se debe cambiar el nombre de la Clase a CIUAutenticar. Se debe tener cuidado con definirellenguajedeprogramacin.

374
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla35.CrearunaClasedetipocsparaelcontroldelainterfaz Esta clase ser un puente entre el Servicio Web y la aplicacin Web, tendr la responsabilidad de la comunicacin con el servicio web. Se puede ver en la Figura 2 los mtodos que deben ser implementadosenestaclase.

CIUAutenticar
(f rom ControlInterf az)

Figura2.VistadelaClaseCIUAutenticar Una vez que se ha hecho un clic en el botn de aceptar de la Pantalla 35, aparecer una nueva plantilla conlaestructuradeunaclase,comosepuedeverenlaPantalla36.

CUIAutenticar() Autenticar() CifrarContrasena()

375
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla36.EstructuradelaClaseCIUAutenticar AhorasecrearlosmtodosdeCifrarContraseayAutenticar.Estosmtodospertenecenaestaclase,el primero servir para cifrar la contrasea, se utilizara para esto el algoritmo de encriptacin MD5. El mtodoautenticarservirpararecibirlacuentaylacontrasea,dentrodeestedebellamarsealmtodo de cifrar y adems al servicio web que ayudar a autenticar al empleado. Se puede ver en la Pantalla 37 laimplementacindeestosmtodos.

376
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla37.MtodosimplementadosdelaClaseCIUAutenticar Dentro del mtodo de Autenticar existen varias lneas que no estn implementadas, estas se harn al momentodeintegrarlascapasdelaaplicacin. Ahora,severcmoutilizarlosmtodosimplementadosanteriormenteenlainterfaz. Elprimerpasoescrearunasesin,estosehacepormediodeunavariableconelnombredesession,con la cual se puede recuperar datos en cualquier parte de la aplicacin, es decir en cualquier interfaz de usuario. Para mayor informacin sobre esta variable ver esta direccin http://msdn2.microsoft.com/es es/library/87069683(VS.80).aspx. Para configurar una sesin utilizaremos el mtodo Page_Load de la clase PAutenticar, esta clase est ubicadaenlaWebForm,comosepuedeverenlaPantalla38.Sedeberealizardobleclicsobreestaclase, de inmediato se podr visualizar un formulario ya conocido, sin embargo, se necesita visualizar el mtodo de Page_Load, para visualizar este mtodo se debe presionar la tecla F7, el resultado se puede verenlaPantalla38.

377
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla38.VisualizacindelmtodoPage_Loaddeunclasetipo.aspx El cdigo que se presenta en la Pantalla 38, permite crear una sesin respecto a una clase definida, en este caso la clase es CIUAutenticar, la cual se ha determinado que es una controladora de interfaz. El primer paso es preguntar si es la primera vez que se interpreta la pagina Web, si fuera el caso se pregunta si la sesin con el nombre de Autenticar es nula, si es nula se crea una instancia de la clase CIUAutenticar con el nombre de MiAutenticar luego se iguala la sesin son la instancia de la clase CIUAutenticar.Conestospasosaseguramoscrearunasesin. UnavezcreadalasesinsedebecolocarcdigoenlaclaseconelnombredeC_Autenticar,lacualesun control de usuario, anteriormente se ha desarrollado la interfaz dentro de esta clase. Para poder visualizar lainterfaz solo se debe realizar doble clic sobre laclase, deesta forma se puede ver la interfaz quesehadesarrollado,estosemuestraenlaPantalla39.

378
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla39.InterfazparaAutenticarse Para poder colocar cdigo dentro del botn Autenticar se debe realizar doble clic sobre este, esto permitirvisualizarelmtodoBTNAutenticar_Click,dentrodeestesecolocarelsiguientecdigoquese puedeverenlaPantalla40.

Pantalla40.CdigodelbotnAutenticar Las dos primeras lneas de cdigo permiten captar en variables de tipo cadena la cuenta y la contrasea queintroducirelusuario.LaltimalneaeslaquepermiteutilizarlainstanciadelaclaseCIUAutenticar, que se ha descrito en la Pantalla 38. De esta forma podemos acceder a los diferentes mtodos de una clasecontroladora. 379
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Para finalizar con el desarrollo se debe arrastrar el control de usuario hasta la hasta la pagina web de tipo aspx, dando como resultado la Pagina 41. Para realizar esta actividad, se debe estar visualizando el formulariodePAutenticar.

Pantalla41.ControldeUsuarioenunaspx. Dentro de una aplicacin se puede utilizar cuantas veces sea necesario un control de usuario, e incluso dentro de un ascx, cada vez que se utilice el control de usuario se ir numerando para no confundirse con otros similares. En este caso se tiene un C_Autenticar1, este control tendr varios atributos, el ms utilizadoeselVisiblequepordefectoestaentrue,estoquieredecirqueelcomponentesevisualizaral momentodelaejecucin. De esta forma se ha terminado de desarrollar una pequea parte de la interfaz de usuario, la capa de presentacin. Esta capa como se ha podido estudiar est en funcin del diagrama de Secuencia descrito enlapartedediseo. Nodebeolvidarsequesenecesitaelserviciowebparaponerenejecucinlaaplicacinweb.

380
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

IMPLEMENTACINDELACAPADENEGOCIOYDATOS EnestedocumentosedescribircomoimplementarlaCapadeNegocioyladeAccesoalosDatos. Como en el anterior documento la implementacin debe basarse en el diagrama de secuencia de las realizacionesdediseo. ParainiciarlaimplementacinsecrearelserviciowebconelnombredeSeguridad,comosepuedever enlaFigura1.
: Empleado : PAutenticar PageLoad( ) CUIAutenticar( ) Autentcar(Cuenta, Contrasena) Autenticar(Cuenta, Contrasena) CifrarContrasena(Contrasena) Autenicar(Cuenta, ContrasenaCifrada) Autenticar(Cuenta, ContrasenaCifrada) DTOEmpleado( ) : C_Autenticar : SWSeguridad : CSW_Seguridad : DTOEmpleado : SQLHelper

: CIUAutenticar

FillDataset(Cadena, TipoComando, PANombre, dto, arrayTablas) AutenticarEmpleado(dtoEmpleado, Cuenta, ContrasnaCifrada)

Figura1.DiagramadeSecuenciadelaRealizacindeDiseoAutenticar En el anterior documento se ha implementado solo la capa de presentacin, sin tomar en cuenta las otrascapas.Lasclasesqueparticiparonenelanteriordocumentoson: PAutenticarqueesunaclaseClientPage. C_Autenticarqueesunaclasehtml_form. CIUAutenticarqueesunaclaseServerPage. Con estas clases se ha implementado la capa de datos, adicionalmente cada clase se creado en una determinada carpeta definida en el marco de trabajo. Ahora bien, corresponde crear las carpetas de las otrascapasdefinidasenelmarcodetrabajo.Elprimerpasoescrearunservicioweb,paraluegocrearel restodelascarpetas. ParacrearelserviciowebsedebehacerunclicenlaopcinArchivodelmenprincipaldelVisualStudio, luegoseleccionarlaopcinNuevoySitioWeb,comosepuedeverenlaPantalla1.

381
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla1.IniciarlacreacindelServicioWeb EstaactividadharaparecerunanuevaventanadelacualsedebeseleccionarlaopcindeServicioWeb ASP.NET, como se puede ver en la Pantalla 2. Adicionalmente se debe verificar el lenguaje de programacin y seleccionar un directorio, el cual contendr todos los archivos que se creen para el servicioweb.

Pantalla2.DescripcindelServicioWebWSSeguridad Como se puede observar en la Pantalla 2, se ha definido el Lenguaje de Programacion C# y se ha introducido el nombre del servicio web, este nombre debe ser igual a la clase que representa al servicio web dentro del diagrama de secuencia, adicionalmente se debe seguir el estndar de implementacin definido.UnavezrealizadoestospasossedeberealizarunclicenelbotnAceptar,elresultadodeestas actividadessepuedeverenlaPantalla3. 382
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla3.EntornodeDesarrolloparaelServicioWebdeSeguridad El siguiente paso es crear las distintas carpetas que se han descrito en el marco de trabajo, para esto se debe hacer clic derecho sobre la carpeta de App_Code y seleccionar la opcin Nueva Carpeta, como se pudeverenlaPantalla4.

Pantalla4.Crearnuevacarpeta.

383

Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Antes de dar el nombre a la carpeta se puede ver en la Figura 2, el marco de trabajo definido en el documentodelaarquitectura.

Figura2.MarcodetrabajodelaAplicacindeEjemplo ComosepuedeobservarenlaFigura2,elServicioWebsecomunicarconclasesquecorrespondenalas controladoras, en este caso son controladoras del servicio web. El nombre de la nueva carpeta ser Controladoras. Adicionalmente se debe crear las otras carpetas que son: Entidades, Reutilizables y AgentesdeServicio,lacarpetadeSQLHelpersucreacinseexplicaramasadelante. ElresultadodeestaactividadsepuedeverenalPantalla5.

Pantalla5.CarpetasdelMarcodeTrabajoCreadas Ahora se necesita crear una clase con el nombre de SWSeguridad, esta es la que permitir realizar contratos con la aplicacin web y la capa de negocio. Para esto se debe realizar un clic derecho en el nombre de la aplicacin, como se puede ver en la Pantalla 6 y seleccionar la opcin de Agregar Nuevo Elemento.

384
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla6.Crearunanuevaclase Esta operacin har aparecer una nueva ventana de la cual se debe seleccionar las opciones de Servicio Web,adicionalmentesedebeintroducirelnombredelaclase,comosepuedeverenlaPantalla7.

Pantalla7.DefinirelnombredelServicioWebSeguridad Lo que har esta actividad es crear dos archivos, uno con el tipo de .asmx, el cual permitir mostrar en unnavegadorlosmtodosdelserviciowebylaotraunarchivodetipo.cs,quepermitirdeterminarlos mtodosdelservicioweb.EstasdosclasessepuedenverenlaPantalla8.

385
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla8.ClasesquesehancreadopararepresentaralServicioWebdeSeguridad LasclasesconelnombredeServicesedebeneliminaryaquenoseutilizarn. El siguiente paso es crear una clase de tipo .cs dentro de la carpeta de Controladoras con el nombre de CSWSeguridadcomodescribelaFigura1,queeseldiagramadesecuencia.Paraestosedeberealizarclic derecho sobre la carpeta de Controladoras seleccionara la opcin de Agregar Nuevo Elemento. Esta actividad har aparecer un nueva ventana similar a la Pantalla 7, en la cual se debe seleccionara la opcin de Clase, para luego introducir el nombre de la clase que en este caso ser CSWSeguridad y por ltimo seleccionar el lenguaje de programacin. Una vez descrita la clase se debe realizar un clic en el botndeAceptar,elresultadodeesteconjuntodeactividadessepuedeverenlaPantalla9.

Pantalla9.CreacindeunaclaseControladoradeServicioWeb Siguiendoconlaespecificacindeldiagramadesecuenciaparalarealizacindediseodeautenticar,se debe crear una clase con el nombre de DTOEmpleado. Esta clase debe ser creada en la carpeta de Reutilizables, para hacer esto se debe realizar clic derecho en al carpeta de Reutilizables y seleccionar la opcindeAgregarnuevoelemento,estoharaparecerunanuevaventanadelacualsedebeseleccionar la opcin de DataSet, luego introducir el nombre y realizar un clic en el Botn de Aceptar, este tipo de archivo tendr una extensin .xsd. El resultado de este conjunto de actividades se puede ver en la Pantalla10.

386
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla10.CrearunDataSettipeado Este tipo de clase no es un DataSet, en la Figura 3 se puede ver la estructura de una DataSet que determinaADO.NETparaestetipoeclase,enestemomentonoexisteningunacoleccindetablas.

Figura3.EstructuradeunDataSet UnDataSetsercomouncontenedordedatos,loscualesserntomadosdeunabasededatos,esunde los componentes importantes en toda la tecnologa .NET, no necesariamente contendr una sola tabla de una base de datos, sino de una a muchas e incluso se puede determinar entre estas relaciones de dependencia relacional, para determinar esto se debe utilizar la propiedad de RelationsColection. Se 387
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

debe aclarar que, no necesariamente debe ser una tabla de una base de datos, puede que el desarrollador necesite una estructura de almacenamiento temporal para su aplicacin, como por ejemplo, el clsico ejemplo del Carrito de Compras. Es muy importante estudiar las propiedades de este componente ya que permite solucionar muchos de los problemas complejos que se tuvieron en anteriorestecnologas,paramayorinformacindeestetipodeclasesepuedeverenestadireccin: http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/cpref/html/frlrfsystemdatadataset memberstopic.asp En la Figura 4 se muestra la clase persistente de Empleado, la cual ha sido descrita en el diagrama de clasesdediseodentrodelsubsistemadeSeguridad.
Empleado
(f rom Entidades)

Nombre : string ApellidoPaterno : string ApellidoMaterno : string Direccion : string CedulaIdentidad : string Telefono : string Cuenta : string Contrasena : string

Figura4.ClasePersistenteEmpleado La clase empleado se ha convertido en una tabla dentro de una base de datos, como se puede ver en la Pantalla11,sehautilizadoelMSSQLServer2000parasuimplementacin.

Pantalla11.Implementacindeunatabla. Unavezcreadalabasededatosconsusrespectivasclasesyrelacionesesrelativamentefcilincluiraun DataSet la configuracin de una tabla de una base de datos. Para esto se debe realizar un clic en el Explorador de Servidores, para luego realizar un clic derecho en Conexiones de datos y seleccionar la opcindeAgregarconexin,comosepuedeverenlaPantalla12.

388
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla12.Crearunaconexinalabasededatos Realizada l actividad anterior se visualizar la ventana con el nombre de Agregar conexin como se puede ver en la Pantalla 13. En esta se debe introducir en Nombre del Servidor la palabra entre parntesis y minsculas local, si es que la base de datos est en la misma computadora, si no es as se debe introducir el nombre del servidor. Luego se debe seleccionar la Base de datos, en la parte de la ventana con el nombre de Establecer conexin con una base de datos. Una vez seleccionada la base de datossoloquedarealizarunclicenelbotndeAceptar,comosepuedeverenlaPantalla13.

389
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla13.Crearunaconexinaunabasededatos El resultado de la anterior actividad permitir ver las tablas que contiene la base de datos. Como se puedeverenlaPantalla14.

Pantalla14.VistadelasConexionesytablasdelaBasedeDatos ParapoderinsertarunatablaaunDataSetsolosedebearrastrarlatablaquesedesea,enelejemplosea tbEmpleadohaciaelDTOEmpleado,elresultadodeestaactividadsepudeverenlaPantalla15.

390
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla15.VistadeuntabladentrodeunDTO De esta forma se puede introducir una definicin de una tabla a un DTO, como se ha dicho anteriormente un DataSet puede contener de una a varias tablas, sin embargo se recomienda que por cadatablasecreeunaDataSet,enestecasounDTO.Cundointroducirdosoms tablasaunDTO?Se recomienda que cuando existe una asociacin fuerte entre dos tablas o, si existe una asociacin de composicindentrodeundiagramadeclasesdediseo. AlmomentodeintroducirunatablaaunDataSet,ladefinicindeestasepodrveralhacerunclicsobre estayotroclicsobreloscampos,comosepuedeverenlaPantalla15enlaventanadePropiedades. Eldesarrolladorpudenecesitarcrearuntablaquenoseapersistente,esdecirquenonecesiterealizarla conexin a una base de datos para obtener datos. Dentro el cuadro de herramientas existe un componente con el nombre de DataTable, el cual permitir al desarrollador definir una tabla. En la Pantalla 16, se puede ver este componente, solo se debe arrastrar hacia el DataSet para iniciar la definicin.

391
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla16.ComponenteDataTable VolviendoaldiagramadesecuencianosquedarealizarlaconfiguracindelaclaseSQLHelper,dentrodel directorio del Captulo IV, en el curso se encuentra un archivos con el nombre de DataAccessApplicationBlock.rar,elcualcontieneunarchivoejecutableestedebeserinstalado. Al finalizar la instalacin, dentro del men Inicio y Todos los programas aparecer una carpeta con el nombredeMicrosoftApplicationBlockfor.NET,dentrodeestaestelDataAccessv2,SourceCode(C#) yDataAccessAplicationBlock,comosepuedeverenlaPantalla17.

Pantalla17.DirectoriosdelaubicacindelSQLHelper Como se puede observar en la Pantalla 17, existe para los dos lenguajes ms populares de la tecnologa .NETparaC#yparaVisualBasicelDataAccessAplicationBlock. UnavezseleccionadalaopcinaparecerunnuevoentornodedesarrollodeVisualStudio2005,conlos archivos que contiene la definicin de esta clase de SQLHelper, lo que queda por hacer es ejecutar la aplicacin,estocrearun.dllelcualpodremosutilizardentrodelaaplicacinqueseestadesarrollando. Laubicacindeestearchivo.dllsepudeverenlaPantalla18.

392
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla18.UbicacindelaclaseSQLHelper Para poder utilizar el SQLHelper se debe hacer un clic derecho sobre el nombre del Servicio Web y seleccionarlaopcinconelnombredeAgregarreferencia,comosepuedeverenlaPantalla19.

Pantalla19.AgregarunaReferencia Luego de hacer un clic en Agregar referencia se visualizar una ventana con el nombre de Agregar referencia.SedebelocalizarelarchivodelSQLHelper,laubicacindondeseencuentrasepudeverenla Pantalla20. 393
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla20.UbicacindelarchivoSQLHelper UnavezquesevisualiceelarchivoconelnombredeMicrosoft.ApplicationBlocks.Data.dll,sedebehacer un clic en el botn Aceptar, esta actividad adicionar los tres archivos como se puede ver en la Pantalla 21,conloscualessepodrutilizarlaclasedeSQLHelper.

Pantalla21.AdicindelosArchivosdeSQLHelper Ahoraseiniciarlaimplementacindelosmtodosdelaclasecontroladoradelservicioweb.Senecesita implementar un mtodo con el Nombre de Autenticar que recibir dos datos con los cuales identificar un aun empleado. adicionalmente, tiene que crear una instancia de un DTOEmpleado, llamar al mtodo FillDataset del SQLHelper y por ltimo solicitar implementar un mtodo con el nombre de Autenticar Empleado. AcontinuacinsecolocaelcdigodelaclaseCSW_Seguridad.
1usingSystem; 2usingSystem.Data;

394
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

3usingSystem.Configuration; 4usingSystem.Web; 5usingSystem.Web.Security; 6usingSystem.Web.UI; 7usingSystem.Web.UI.WebControls; 8usingSystem.Web.UI.WebControls.WebParts; 9usingSystem.Web.UI.HtmlControls; 10usingMicrosoft.ApplicationBlocks.Data; ///<summary> ///DescripcinbrevedeCSWSeguridad ///</summary> 11publicclassCSWSeguridad 12{ 13DTOEmpleadodtoEmpleado;//SedefineunainstaciadelaclaseDTOEmpleado publicCSWSeguridad() 14 15 { 16dtoEmpleado=newDTOEmpleado();//SecrealaInstanciadellaclaseDTOEmpleado 17 } 18//MtodoparaAutenticaraunEmpleadodelainstitucin 19publicstringAutenticar(stringCuenta,stringContrasenaCifrada) 20{ 21stringautorizado="ElEmpleadonoestAutorizado"; 22//SerecuperalacadenadeconexiondelarchivoWeb.config 23stringCadena=ConfigurationManager.ConnectionStrings[1].ConnectionString; 24//SellenaeldtoEmpleadollamandoametodoFillDatasetdelSQLHelper 25SqlHelper.FillDataset(Cadena,CommandType.StoredProcedure,"PAS_tbEmpleado",dtoEmpleado,newstring[]{"tbEmpleado"}); 26//SesolicitalaautenticacionpormediodelmetodoAutenticarEmpleado 27intAutenticado=AutenticarEmpleado(Cuenta,ContrasenaCifrada); 28//SepreguntaseelvalorAutenticadoesiguala1,locualsignificaqueestaAutorizadoelEmpleado 29if(Autenticado==1) 30{ 31//SecambiaelvalordelavariableAutoriado 32autorizado="S";//EsteValorsignificaqueelempleadoestaautorizado 33} 34//Retornaelvalordelavariableautorizado; 35returnautorizado; 36} 37intAutenticarEmpleado(stringCuenta,stringContrasenaCifrada) 38{ 39//SecreaunavariablequedaraelresultadosielEmpleadoesautorizado 40intautenticado=0; 41//SedeterminalacondicionquenospermiteautenticaraunEmpleado 42stringcondicion=dtoEmpleado.tbEmpleado.CuentaColumn.ToString()+"='"+Cuenta+"'and"; 43condicion+=dtoEmpleado.tbEmpleado.ContrasenaColumn.ToString()+"='"+ContrasenaCifrada+"'"; 44//Seseleccionanlasfilasquecoincideconlacondicion(debeexistirunasola) 45DTOEmpleado.tbEmpleadoRow[]rowEmpleado=(DTOEmpleado.tbEmpleadoRow[]) 46dtoEmpleado.tbEmpleado.Select(condicion); 47//Sepreguntasielresultadodelaconsultahadevueltounasolafila 48if(rowEmpleado.Length==1) 49{ 50//Sielresultadodelaselecciontieneunasolafilasecambiadeestadoalavariableautenticado 51autenticado=1;//EsteresultadosignificaqueelEmpleadoestaAutorizado 52} 53returnautenticado; 54} 55}

La primera lnea del cogido presentado que debe comentarse es la nmero 10, esta hace referencia a la claseSQLHelper,sinestalneanosepodrutilizarlosmtodosdeestaclase. 395
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

La lnea 13, es muy importante ya que se define un objeto para luego crear su instancia en la lnea 16, esto puede llevar a una confusin, respecto al diagrama de secuencia y la implementacin, como se ha dicho anteriormente la implementacin debe ser similar a los diagramas de secuencia. Sin embargo se tieneelmtododeDTOEmpleado()queensieselconstructordelaclaseDTOEmpleado. La lnea 23 es la que permite recuperar la cadena de conexin del archivo Web.Config, este debe estar conlassiguienteslneas:
<?xmlversion="1.0"encoding="utf8"?> <! Nota:comoalternativaparaeditarmanualmenteestearchivopuedeutilizarla herramientaAdministracindesitiosWebparaconfigurarlosvaloresdelaaplicacin.Utilice laopcinSitioWeb>ConfiguracindeAsp.NetenVisualStudio. Encontrarunalistacompletadevaloresdeconfiguracinycomentariosen machine.config.comments,queseencuentrageneralmenteen \Windows\Microsoft.Net\Framework\v2.x\Config > <configuration> <appSettings/> <connectionStrings> <addname="HotelBetoConnectionString"connectionString="DataSource=angerona;InitialCatalog=HotelBeto;User ID=sa;password=lafuente"providerName="System.Data.SqlClient"/> </connectionStrings> <system.web> <! Establezcadebug="true"enlacompilacinparainsertarsmbolos dedepuracinenlapginacompilada.Dadoqueeste procesoafectaalrendimiento,debeestablecerestevalorcomotrue duranteladepuracin. > <compilationdebug="false"/> <! Laseccin<authentication>permiteconfigurar elmododeautenticacindeseguridadutilizadopor ASP.NETparaidentificaraunusuarioentrante. > <authenticationmode="Windows"/> <! Laseccin<customErrors>permiteconfigurar lasaccionesquesedebenllevaracabo/cuandounerrornocontroladotienelugar durantelaejecucindeunasolicitud.Especficamente, permitealosdesarrolladoresconfigurarpginasdeerrorhtml quesemostrarnenlugardeunseguimientodepiladeerrores. <customErrorsmode="RemoteOnly"defaultRedirect="GenericErrorPage.htm"> <errorstatusCode="403"redirect="NoAccess.htm"/> <errorstatusCode="404"redirect="FileNotFound.htm"/> </customErrors> > </system.web> </configuration>

La lnea 25 del cdigo de autenticacin utiliza la clase SQLHelper y su mtodo FillDatase, el objetivo de este mtodo es llenar un DataSet a travs de un procedimiento almacenado o una sentencia SQL. El primer parmetro que se debe definir es la cadena de conexin, el siguiente es el tipo CommandType, existen tres opciones, CommandType.Text (Permite escribir entre comillas una sentencia de SQL), CommandType.StoredProcedure (Permite colocar un nombre de procedimiento almacenado de seleccin) y CommandType.TableDirect (Permite colocar el nombre de una Tabla de una base de datos). El siguiente parmetro del mtodo FillDataset es el nombre de una instancia de un DataSet, en el caso 396
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

del ejemplo que se est desarrollando es dtoEmpleado. Por ltimo, se determina un vector de tipo string,elcualtendrelnombredelatablaqueseestllenandoenelDataSetenelcasodelejemploser tbEmpleado. Elcdigodelprocedimientoalmacenadoser:
CREATEPROCEDUREPAS_tbEmpleado AS Select*fromtbEmpleado

Lasdemslneasdecdigosoncomprensiblesparaellector. Ahora, se utilizar el mtodo de autenticar en el servicio web para esto se debe hacer un clic sobre la claseSWSeguridad.cs,elcdigosepudeveracontinuacin.
usingSystem; usingSystem.Web; usingSystem.Collections; usingSystem.Web.Services; usingSystem.Web.Services.Protocols; ///<summary> ///DescripcinbrevedeSWSeguridad ///</summary> [WebService(Namespace="http://tempuri.org/")] [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)] publicclassSWSeguridad:System.Web.Services.WebService{ publicSWSeguridad(){ //Eliminarlamarcadecomentariodelalneasiguientesiutilizaloscomponentesdiseados //InitializeComponent(); } [WebMethod] publicstringAutenticar(stringCuenta,stringContrasenaCifrada) { //SecreaunainstanciadelaControladoradeservicioweb CSWSeguridadseguridad=newCSWSeguridad(); //SeutilizarelmtodoAutenticarpormediodelainstanciacreada stringautenticado=seguridad.Autenticar(Cuenta,ContrasenaCifrada); returnautenticado; } }

Deestaformasehaterminadolaimplementacindelacapadenegocioydeaccesodelosdatos. Enelprximodocumentoseintegrarlaaplicacinwebyelservicioweb.

397
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

INTEGRANDOCAPAS Una vez que se implementado las capas de Presentacin, Negocio y de Acceso a los Datos se debe integrar cada una de estas, como se pude ver en la Figura 1, que representa al Marco de Trabajo, se pude ver que la capa de Presentacin tiene comunicacin con la capa de Negocio a travs de las controladorasdeinterfazylosServiciosWeb.Estoesloqueseharenestedocumento.

Figura1.MarcodeTrabajo

Elprimerpasoquesedeberealizarespublicarelservicioweb,comosehavistoeneldocumentode ImplementarunServicioWeb.ElresultadoquedebelograrsesepuedeverenlaPantalla1.

398
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla1.ServicioWebpublicadoparaautenticarempleado

Una vez que el servicio web de seguridad este publiado se debe adicionar la referencia a la aplicacin web . Para realizar esta actividad se debe cargar la aplicacin al Visual Studio y realizar un clic derecho sobre el nombre de la solucin, en la parte del Explorador de soluciones, luego se debe seleccionar la opcindeAgregarreferenciaWebcomosepuedeverenlaPantalla2.

399
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla2.AgregarunareferenciaWeb

UnavezseleccionadalaopcinsepodrvisualizarlaventanaconelnombredeAgregarreferenciaWeb, comosepuedeverenlaPantalla3.

400
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla3.AgregarreferenciaWebaaAplicacin

Una vez visualizada la vantana, para agregar la referencia web, solo se debe realizar un clic en el link Servicios Web del equipo local, esta operacin har aparecer una lista de servicios web que se encuentren publicados, como se puede ver en la Pantalla 4. Se bede seleccionar de la lista el servicio Web el que corresponde al sub sistema de Seguridad como se puede ver en la Patantalla 4. El nombre delservicioWebesSWSeguridad.

Pagina4.ListadeServiciosWeb
Ingeniera de Sistemas Informticos

401

Universidad Privada del Valle Unidad Acadmica Sucre

Una vez identificado y seleccionado el servicio web en la parte de Nombre de referencia Web se debe intoducirelnombredeSWSeguridad,yaqueserelnombredereferenciaparalaaplicacinweb.Estose pudeverenlaPantalla5.

Pantalla5.DefinirelNombredelServicioWeb

Parafinalizar,sedeberealizarunclicenelbotndeAgregarreferencia,estoagregarelservicioweba laapliacacin.SepuedecomprobarlaadicinenelExploradordeSoluciones,comosepuedeverenla Pantalla6.

402
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla6.ServicioWebdeSeguridadadicionadoalaaplicacinWeb Una vez hecha esta ltima actividad, ya se puede tener acceso a los mtodos del sevicio web, lo que queda por hacer es terminar el cdigo del boton de autenticar. Para esto se debe realizar doble clic sobre el control de usuario con el nombre de C_Autenticar.ascx, el cual permitir autienticar a un empleado.EstaactividadsepuedeverPantalla7.

Pantalla7.ControldeUsuarioC_Autenticar

Ahora,parateminarelcdigodelbotndeAuenticarsedeberealizardobleclicsobreeste,estohar apareserunanuevaventanaquepermitireditarelcodigodeleventoclickdelbotn.Estosepuedever enlaPantalla8.

403
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla8.CdigodelbotnAutenticar Comosepuedever,setieneunasolicitudhacialaclaseCIUAutenticarconelnombredeAutenticar pasandolosdatosdeCuentayContrasena.Sedebehacerunclicderechaenlasolicitudyapareseruna ventanaemergentecomosepuedeverenlaPantalla9.

Pantalla9.Ventanenergentedeunasolicitud

De esta ventana se debe seleccionar la opcin de Ir a definicin, esta permite ir al codigo de la solicitud definidaenlaclase.ElresultadodeseleccionarestaopcinsepuedeverenlaPantalla10. 404
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla10.UtilizarelServicioWeb

En la Pantalla 10 se ha introducido tres lineas de codigo que permiten utilizar el servicio web de SWSeguridad,estaslineasestnenelmtododeAutenticar. Unavez,introducidoelcdigosedebeterminardelbotondeautenticar,estosepuedeverenlaPantalla 11.

405
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Pantalla11.CdigoFinalparaautenticar. Este es el ltimo cdigo que se debe introducir, luego se debe ejecutar la aplicacin, el resultado se puedeverenlaPantalla12.

Pantalla12.VentanaparaAutenticarEmpleado
Ingeniera de Sistemas Informticos

406

Universidad Privada del Valle Unidad Acadmica Sucre

Con esta ltima pantalla se ha terminado de implemetar la realizacion del caso de uso Autenticar. La parte ms importante para la implementacin es el Estandar de Implemantacin y sobre todo el Marco de Trabajo, este ltimo debe ser TOMADO EN CUENTA POR TODOS LOS DESARROLLADORES, este permitirunacapacitacinconmayorrapidesdepersonasqueseincluyanaldesarrollo. Acontinuacinseveryexplicarcdigoparalaadicinmodificacinybusqueda.Comosehaexplicado anteriormente se debe tratar de tener procedimientos alamacenados que solo tengan una sola sentencia. Procedimientos almacenados que contengan ms de dos lneas de cdigo sern dificiles de mantener. Por ejemplo, si se determina la migracin de un gestor de base de datos a otro, existen todabiagestoresdebasededatosquenopermitenimplementarprocedimientosalmacenados,esoser un impedimiento para la migracin. Esta situacin es extrema, pero se debe tomar en cuenta al momento de definir la arquitectura, sobre todo cuando exista la posibilidad de migrar los datos a un gestor de base de datos. El marco de trabajo que se ha estudiado recomienda que exista dentro de los procedimientosalmacenadosunasolasentecia,justamenteestpensadoparaunamigraciondebasede datos, para esto solo se debe cambiar los archivos que pertenesen al SQLHelper. Existe en internet SQLHelper para MySQL, SQL Progress, Oracle, entre otros. Solo debe cambiarse los archivos de SQLHelperparaquelaaplicacinfuncione. CdigoparainsertarunEmpleado
1publicintAdicionar_Empleado(stringNombre,stringApellidoPaterno,stringApellidoMaterno,stringDireccion,stringCedulaIdentidad,stringTelefono, stringCuenta,stringContrasenaCifrada) 2{ 3stringcadena=ConfigurationManager.ConnectionStrings[1].ConnectionString; 4DTOEmpleadodtotbEmpleado=newDTOEmpleado(); 5SqlParameter[]parametros; 6parametros=SqlHelperParameterCache.GetCachedParameterSet(cadena,"PAI_tbEmpleado"); 7if(parametros==null) 8{ 9parametros=newSqlParameter[]{ 10newSqlParameter("@"+dtotbEmplaedo.tbPersona.CodigoEmpleadoColumn.ToString(),SqlDbType.Int,0,ParameterDirection.Output,false,0, 0,"@"+dtotbPersona.tbEmpleado.CodigoPersonaColumn.ToString(),DataRowVersion.Current,null), 11newSqlParameter("@"+dtoEmpleado.tbEmpleado.NombreColumn.ToString(),SqlDbType.NVarChar,50), 12newSqlParameter("@"+dtoEmpleado.tbEmpleado.ApellidoPaternoColumn.ToString(),SqlDbType.NVarChar,50), 13newSqlParameter("@"+dtoEmpleado.tbEmpleado.ApellidoMaternoColumn.ToString(),SqlDbType.NVarChar,50), 14newSqlParameter("@"+dtoEmpleado.tbEmpleado.DireccionColumn.ToString(),SqlDbType.NVarChar,50), 15newSqlParameter("@"+dtoEmpleado.tbEmpleado.CedulaIdentidadColumn.ToString(),SqlDbType.NVarChar,50), 16newSqlParameter("@"+dtoEmpleado.tbEmpleado.TelefonoColumn.ToString(),SqlDbType.Int,0), 17 newSqlParameter("@"+dtoEmpleado.tbEmpleado.CuentaColumn.ToString(),SqlDbType.Int,0), 18 newSqlParameter("@"+dtoEmpleado.tbEmpleado.ContrasenaColumn.ToString(),SqlDbType.Int,0)}; 19SqlHelperParameterCache.CacheParameterSet(cadena,"PAI_tbEmpleado",parametros); 20} 21parametros[0].Value=0; 22parametros[1].Value=Nombre; 23parametros[2].Value=ApellidoPaterno; 24parametros[3].Value=ApellidoMaterno; 25parametros[4].Value=Direccion; 26parametros[5].Value=CedulaIdentidad; 27parametros[6].Value=Telefono; 28parametros[7].Value=Cuenta; 29parametros[8].Value=ContraseaCifrada; 30SqlHelper.ExecuteNonQuery(cadena,CommandType.StoredProcedure,"PAI_tbPersona",parametros); 31intCODIGO=(Int32)parametros[0].Value; 32returnCODIGO; 33}

407
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

La lnea 1 define el nombre u los parmetros del mtodo de Adicionar_Empleado, el cual permitir adicionar a la base de datos a un empleado con el Nombre, Apellido Paterno, Apellido Materno, Direccin,CedulaIdentidad,Telefono,CuentayContrasea,estaltimadebeestarcifrada. Enlalnea3serecuperalacadenadeconexin. En la lnea 4 se crear una instancia del DataSet DTOEmpleado. Esta instancia permitir recuperar el nombredelascolumnasdelDataSet,comosepuedeverenlaslneas10hasta16. En la lnea 5 se crear un objeto de tipo SqlParameter con las caractersticas de un arreglo, el cual permitirdefinirlosparmetrosdelprocedimientoalmacenado.Laslneasdecdigoquedefinenaestos parmetrossepuedenverdesdelalnea10hasta18. En la lnea 6 el objeto se iguala a un mtodo del DataAplicacionBlock con el nombre de SqlHelperParameterCache, el cual recupera del cache el servidor web la definicin de los parmetros de un procedimiento almacenado, el primer parmetro que debe incluirse a este mtodo es la cadena de conexin, el segundo es el nombre que servir para identificar la informacin de los parmetros en el cache,puedesercualquiernombreperonoigualaotrosdefinidosenelcdigo,enelcasodelejemplose colocoelnombredelprocedimientoalmacenadoalcualseharreferencia. En la lnea 7 se pregunta si el objeto parmetros es nulo, si fuera as debe definirse cada uno de los parmetros que participan el procedimiento almacenado a referirse. La lnea 9 es la encargada de crear unainstanciadeSqlParameter.Apartirdelalnea10hasta 18sonlasquedefinenlosparmetrosde un procedimientoalmacenado. Lalnea10eslaquepermitecapturarunparmetroderetornodeunprocedimientoalmacenado. Lasotraslneas,dela11ala18permitendefinirlosparmetrosdeentrada. Lalnea19 esimportante,yaqueestasepone encachelosparmetrosdefinidos,laprximavezquese solicite a este mtodo no ser necesario definir nuevamente los parmetros. Para el mtodo CacheParameterSetsedebedefinirlacadenadeconexin,elnombredelcacheyporltimoelconjunto deparmetrosdelprocedimientoalmacenado. Desde la lnea 21 a la lnea 29, se asigna los valores a cada uno de los parmetros definidos para luego ejecutar el mtodo ExecuteNonQuery, el cual permite ejecutar, ya sea, un procedimiento almacenado o una sentencia de SQL, este mtodo solo permite ejecutar una sentencia que sea Insertar (insert), actualizar(update)oborrar(delete)ynoasunaseleccin(select).Estoocurreenlalnea30. La lnea 31 permite captar el valor de retorno en un parmetro de salida de un procedimiento almacenado. A continuacin se presenta el procedimiento almacenado que corresponde a este mtodo explicadoparaadicionaraunempleado.
CreateProcedurePAI_tbEmpleado @CodigoEmpleadoasint=NULLoutput, @Nombreasvarchar(50)=NULL, @ApellidoPaternoasvarchar(50)=NULL, @ApellidoMaternoasvarchar(50)=NULL, @Direccionasvarchar(50)=NULL, @CedulaIdentidadasvarchar(50)=NULL, @Telefonoasvarchar(50)=NULL, @Cuentaasvarchar(50)=NULL, @Contrasenaasvarchar(50)=NULL AS insertintotbPersona(Nombre,ApellidoPaterno,ApellidoMaterno,Carnet,NombreFotografia, CantidadHojasDisponibles) values(@Nombre,@ApellidoPaterno,@ApellidoMaterno,@Carnet, @NombreFotografia,@CantidadHojasDisponibles) set@CodigoPersona=@@identity GO

408
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

CdigoparamodificarlosdatosdeunEmpleado
1publicDTOEmpleadoModificar_tbEmpleado(intCodigoEmpleado,stringNombre,stringApellidoPaterno,stringApellidoMaterno,stringDireccion, stringCedulaIdentidad,stringTelefono,stringCuenta,stringContrasena) 2{ 3SqlParameter[]parametros; 4stringcadena=ConfigurationManager.ConnectionStrings[1].ConnectionString; 5DTOEmpleadodtoEmpleado=newDTOEmpleado(); 6parametros=SqlHelperParameterCache.GetCachedParameterSet(cadena,"Modificar_tbEmpleado"); 7if(parametros==null) 8{ 9parametros=newSqlParameter[]{ 10newSqlParameter(), 11newSqlParameter(), 12newSqlParameter(), 13newSqlParameter(), 14newSqlParameter(), 15newSqlParameter(), 16newSqlParameter(), 17newSqlParameter(), 18newSqlParameter() 19}; 20SqlHelperParameterCache.CacheParameterSet(cadena,"ModificartbEmpleado",parametros); 21parametros[0].ParameterName="@"+dtoEmpleado.tbEmpleado.CodigoEmpleadoColumn.ToString(); 22parametros[0].SqlDbType=SqlDbType.Int; 23parametros[1].ParameterName="@"+dtoEmpleado.tbEmpleado.NombreColumn.ToString(); 24parametros[2].ParameterName="@"+dtoEmpleado.tbEmpleado.ApellidoPaternoColumn.ToString(); 25parametros[3].ParameterName="@"+dtoEmpleado.tbEmpleado.ApellidoMaternoColumn.ToString(); 26parametros[4].ParameterName="@"+dtoEmpleado.tbEmpleado.DireccionColumn.ToString(); 27parametros[5].ParameterName="@"+dtoEmpleado.tbEmpleado.CedulaIdentidadColumn.ToString(); 28parametros[6].ParameterName="@"+dtoEmpleado.tbEmpleado.TelefonoColumn.ToString(); 29parametros[7].ParameterName="@"+dtoEmpleado.tbEmpleado.CuentaColumn.ToString(); 30parametros[8].ParameterName="@"+dtoEmpleado.tbEmpleado.ContrasenaColumn.ToString(); 31} 32parametros[0].Value=CodigoEmpleado; 33parametros[1].Value=Nombre; 34parametros[2].Value=ApellidoPaterno; 34parametros[3].Value=ApellidoMaterno; 35parametros[4].Value=Direccion; 36parametros[5].Value=CedulaIdentidad; 37parametros[6].Value=Telefono; 38parametros[7].Value=Cuenta; 39parametros[8].Value=Contrasena; 40SqlHelper.ExecuteNonQuery(cadena,CommandType.StoredProcedure,"PAU_tbEmpleado",parametros); 41returnLlenar_DTOEmpleado(); 42}

Este mtodo que debe estar ubicado en la controladora de la capa de negocio con el nombre de CSW_Administradocion, ya que esta ser la clase controladora del subsistema de administracin, de igualformaeselanteriorcdigodeadicindeEmpleado. De igual forma que en el anterior cdigo se define, en la lnea 1, un mtodo que devolver un DTOEmpleado,adicionalmentesedebeenviarelCodigoEmpleado,elcualservirparabuscaryactualizar los datos del empleado, juntamente con el cdigo del empleado van el Nombre, Apellido Paterno, Apellido Materno, Direccion, Cedula de Identidad, Telefono, Cuenta, Contrasea. Estos datos deben de estar descritos en el caso de uso, se recomienda no inventar estos datos, siempre se debe hacer referencia al caso de uso, como se ha dicho anteriormente la descripcin del los casos de uso son muy importantesyservirnparatodoeldesarrollodelaaplicacin.

409
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

En la lnea 3 se define un objeto de tipo SqlParameter con el nombre de parametros, este permitir definir un conjunto de parmetros para un procedimiento almacenado, esta definicin se la puede ver enlaslneas21hasta30. Lalnea4recuperalacadenadeconexindelarchivoWeb.config Lalnea5creaunobjetodelaclaseDTOEmpleado,queensiesunDataSet,elcualpermitiralmacenary recuperarlosdatos,ascomolaconfiguracindelDataTableconfiguradaeneste. Lalnea6permiterecuperarlosparmetrosdefinidosconanterioridad,siesquehansidodefinidos,sies laprimeravezqueesutilizadoestemtodoelvalordeparametrossernulo. La lnea 7 pregunta si el valor de parametros es nulo, si es as entra a definir el nmero de parmetros como se puede ver en las lneas 9 hasta 18, si el valor no es nulo significa que ya se ha definido los parmetrosysolosetienequeasignarlosvalores. La lnea 20 permite grabar en cache los parmetros, esto se explic en el anterior cdigo con el nombre deAdicindeEmpleado,lonicoquecambiaeselsegundoparmetroahoraesModificartbEmpleado. Desdelalnea21hastala30seasignanlosnombresacadaespaciodelavariableparametros. Desdelalnea32hastala39seasignanlosdatosdelosparmetros. En la lnea 40 se utiliza nuevamente el mtodo del SQLHelper con el nombre de ExecuteNonQuery para modificarlosdatos,yaqueestellamaalprocedimientoalmacenadoconelnombredePAU_tbEmpleado. A continuacin se presenta el procedimiento almacenado que corresponde a este mtodo explicado paralamodificacindeunempleado.
createprocedurePAU_tbPersona @CodigoPersona as int = NULL, @Nombre as varchar(30) = NULL, @ApellidoPaterno as varchar(30) = NULL, @ApellidoMaterno as varchar(30) = NULL, @Carnet as varchar(15) = NULL, @NombreFotografia as varchar(25) = NULL, @CantidadHojasDisponiblesasint=NULL AS begintran updatetbPersonasetNombre=@Nombre,ApellidoPaterno=@ApellidoPaterno, ApellidoMaterno=@ApellidoMaterno,Carnet=@Carnet,NombreFotografia=@NombreFotografia, CantidadHojasDisponibles=@CantidadHojasDisponibleswhereCodigoPersona=@CodigoPersona commit

Se ha culminado la implementacin, no debe olvidarse que es importante tener correctamente desarrollados los diagramas de secuencias y determinar el marco de trabajo, son las piedras fundamentales para una implementacin exitosa. Para lograr el correcto desarrollo de los distintos artefactosdebeexistirunprocesodeverificacin(RevisioneseInspecciones),estaspermitirnencontrar defectos dentro de los artefactos. Este es un tema que ser abordado en otro curso programado por SynerDynE,CONTROLDECALIDAD. He encontrado muchas personas que hablan de metodologas y un proceso definido de software tomando en cuenta lo que es RUP (Rational Unified Process), lastimosamente, muchas personas, no cumplen con las recomendaciones que hace este proceso de desarrollo de software para crear una aplicacin. Como se ha visto en el transcurso del curso cada diagrama, flujo, objeto, documento, entre otros,tieneunporqu,unpropsitoyunparaqu,estosdebentomarseencuentaymuchasdetalles ms(quenosehanvistoenelcurso)paradesarrollarunaaplicacindeacuerdoaRUP. Enelsiguientecaptulosepodrverlautilizacindeloscasosdeusodelaaplicacinparadesarrollarlos casosdeusodeprueba,algomuyimportanteparavalidarlosobjetivosdelaaplicacin.

Ingeniera de Sistemas Informticos

410

Universidad Privada del Valle Unidad Acadmica Sucre

CAPITULOV
PRUEBA
Objetivo Validar la aplicacin desarrollada y ver si cumple con los requisitos utilizando una tcnica de prueba

411
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

DISEODECASOSDEUSODEPRUEBA.
Seconsideraaestadisciplinacomounactoqueproveedistintasobservacionesydefectosparalasotrasdisciplinas ofases.Esunadelasquepermiteevaluarlacalidaddelproductousandonumerosasprcticasparaesto. Adicionalmente es uno de los procesos que ayuda a la empresa o persona que desarrolla software a controlar la calidad y conforma uno de los cuatro procesos paraeste fin. Se presentan brevemente los procesos que ayudan a establecerlacalidaddeldesarrolloydelproducto: Verificacin.Bsicamenterevisionesyauditoriasdeconfiguracin. Validacin.Todoslosnivelesyfasesdepruebadeejecucindesoftware. GestindeConfiguracin.Comomediodecontroldelosproductosgenerados. Medicindesoftware.Contemplalanecesidaddemarcarobjetivosyasociarmtricasalosobjetivos Cada uno de estos procesos debe ser llevado a cabo en el transcurso del desarrollo del producto. Es muy importante iniciar con alguno de estos y paulatinamente introducir los restantes. Como se puede ver en la Figura 1, existen distintas maneras de mejorar el proceso de desarrollo, hay que aclarar que mejorar el proceso es desarrollardetalformaquesecumplalodefinidoy establecidoparaeldesarrollodeunaaplicacin,tomandoen cuenta al cliente, a los desarrolladores y la futura tecnologa. Para demostrar que se ha desarrollado de forma definida,sedebedocumentartodoelproceso.

Figura1.DistintosProcesosquemejoranlacalidadyeldesarrollodesoftware

ComosepuedeverenlaFigura1,elprocesodepruebaesunoqueapareceenlaliteraturaparalamejoradel procesodedesarrolloyademsesunadelasdisciplinasrecomendadasdeRUP(RationalUnifiedProccess)para validarlaimplementacin. ExistenvariosobjetivosquemencionaladocumentacindeRUPparaladisciplinadeprueba,estossonalgunos: Encontrarydocumentarlasfaltasenelproductodesoftware:defectosyproblemas. Notificaraljefedeproyectolacalidadpercibidaenelproducto.

412
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Evaluar el diseo y la descripcin de los requisitos, que es la parte lgica del producto, con la demostracinconcretadelfuncionamientodelaaplicacin. Validarqueelproductodesoftwaretrabajesegnlodiseado. Validarquelosrequisitoshansidocumplidosapropiadamente.

La disciplina de prueba de RUP se centra en cul es la falla o el defecto, mientras que los otros procesos estn dedicadosalacompletituddelosartefactos,consistenteyalacorreccin.Ladisciplinadepruebadebeconsiderar lassiguientespreguntas: Cmosepuedeprobareficientementeelsoftware? Culeslasituacinolascondicionesparaqueelsoftwarenotrabaje? Sedicequeunapruebaesexitosacuandosehaencontradodefectosofallas. La prueba debe desafiar las suposiciones, riesgos en los requisitos, la incertidumbre en los artefactos desarrollados, el Hardware, entre otros. Este desafo se realiza a travs de la demostracin y la evaluacin imparcial. La informacin que se logra con la prueba implica un esfuerzo de 30% a un 50% de todo el desarrollo del software. Por este motivo muchas de las empresas o personas que desarrollan software no logran probar el software correctamente antes de la entrega. La flexibilidad y la complejidad hacen que la prueba sea un meta imposible a logar, por esta razn se debe tener una estrategia bien definida para lograr un apropiado y eficaz procesodeprueba.Laestrategiaqueselogredefinirdebegarantizarquelaorganizacinalacualseimplantarel softwarenocorraconposiblescostoslegalesy/oprdidasmasivasdedineroydetiempo. La prueba debe servir, en futuros desarrollos, para reducir los defectos y sobre todo el costo que implica el desarrollo. Otro punto de vista, es que logre reducir los riesgos en el mantenimiento del software. Lapruebadebegarantizarlacalidad,estetrminoserefiereavariosaspectos: Laausenciadedefectos Haceloquequisiramosquehiciera. Estlibrededefectos GeraldWeinbergdice:Lacalidadestenelvalorqueledaunapersonaalproducto. La responsabilidad de cada persona que conforma el equipo de desarrollo es la calidad. Cada una de las personas que participa debe disear y planificar la calidad, sin estos dos puntos es difcil conseguir el objetivo de conformidad,yaseadelcliente,usuarioy/odelosinvolucrados. RUP seala que la disciplina de prueba no es la que alcanzar en su totalidad la calidad, sino el conjunto de cumplimiento y seguimiento de las otras disciplinas adicionales. En otras palabras, es muy importante cumplir la definicin del proceso o metodologa que se aplique para el desarrollo de esta forma se cumplir satisfactoriamenteconlacalidad. MuchosdelosrequisitosnofuncionalesquesedeterminenenlaIngenieradeRequisitos,yaseaglobalesode cadacasodeusosepuedenevaluaratravsdelosdistintostiposdeprueba,comoporejemplo: Confiabilidad: La aplicacin permanece fiable y constantemente; es resistente a los defectos durante la ejecucin, muestra mensajes como: falla de Hardware, Se par la ejecucin de la aplicacin, se ha desbordadolamemoria,entreotros. Funcionalidad:Laaplicacinejecutaconxitoloscasosdeusodelaaplicacin.

413
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Funcionamiento: La aplicacin responde de una manera oportuna y contina siendo aceptable cuando se ejecuta con caractersticas operacionales del mundo real (ej. perodos muy largos de la operacin). La prueba de funcionamiento se centra en asegurarse de que la funcionalidad de la aplicacin puede ser proporcionadamientrasquesatisfacelosrequisitosnofuncionalesdelsistema. Utilidad: La aplicacin es conveniente para los usuarios finales que la usen; la atencin se centra en los factoreshumanos,estticos,entreotros.

No necesariamente, se debe ejecutar varios tipos de prueba para cada requisito no funcional que se determine, esto est en funcin del nivel, grado del requisito y algunas veces al riesgo del Caso de Uso de la Aplicacin. Si bien, se desarrolla en ciclos de desarrollo que cada vez incrementa la completitud de la aplicacin, es necesario probartodalaaplicacinynoaseldesarrollonuevoqueseincluye.Paraestasituacin,dondesedebeprobarlas nuevas funcionalidades ms la anterior se recomienda desarrollar un nuevo plan de pruebas (Conjunto de casos deprueba)quenoincluyaelconjuntodepruebasdefinidoparalaanterior. Nivelesdelaprueba Existecinconivelesdepruebacondistintospropsitossonlossiguientes: 1. Pruebadelaunidad.Loselementosmspequeosdelaaplicacinsonprobados. 2. Pruebadelaintegracin.Sepruebalaintegracindelossubsistemas,mdulo,serviciosweb,entreotros. 3. Prueba del sistema. En el paso anterior se prob el software pero el sistema incluye otros elementos (hardware, personas, bases de datos, etc.). Esta prueba por sus caractersticas no puede realizarse slo por elanalista.Serealizaenlossiguientespasos: Prueba de recuperacin. La prueba de recuperacin es una prueba que fuerza el fallo del software de muchas formas y verifica que la recuperacin se lleva a cabo adecuadamente. Si la recuperacin es automtica hay que evaluar la correccin de la reinicializacin, de los mecanismos de recuperacin de estado del sistema, de la recuperacin de datos y del rearranque. Si la recuperacin requiere intervencin humana hay que evaluar los tiempos de reparacin para ver si estn dentro de los lmites aceptables. Prueba de seguridad. La prueba de seguridad intenta verificar que los mecanismos de proteccin incorporadosalsistemaloprotegerndehechodelapenetracinimpropia.Elencargadodelaprueba debedesempearelpapeldeunindividuoquedeseapenetrarelsistemausandocualquiermedio.Una buenapruebadebepenetrarelsistema,elproblemaestenqueseacostosoyrequieramuchotiempo. Prueba de resistencia. Las pruebas de resistencia estn diseadas para enfrentar al software a situacionesanormales.Lapruebaderesistenciaejecutaunsistemadeformaquedemanderecursosen cantidad,frecuenciayvolmenesanormales. Prueba de rendimiento. Para una aplicacin en tiempo real o empotrado es inaceptable el software que proporciona las respuestas requeridas pero que no se ajusta a los rendimientos. La prueba de rendimientosedesarrollaparaprobarelrendimientodelsoftwareentiempodeejecucindentrodel contextodeunsistemaintegrado. 4. Prueba de aceptacin. El uso completo de la aplicacin es probado por los usuarios finales o los representantesparadeterminarlapreparacinparaeldespliegue. 5. Prueba de validacin del software. La validacin se logra cuando el software funciona de acuerdo a los interesesdelusuario. . Paraestoserevisasielsoftwarecumplecon: Loscasosdeusodefinidosenlaingenieraderequisitos. Losrequisitosderendimientodefinidosenelestudiopreliminar. Otros requisitos como portabilidad, posibilidad de recuperarse ante errores, facilidad de mantenimiento,entrootros. Se debe tener presente que estos niveles ocurren a travs del ciclo de vida, pueden llevarse a cabo en orden o en paralelo. Por ejemplo, un prototipo conceptual usado en una de las fases de inicio (Casos de Uso descritos)

414
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

servirnparadeterminar laviabilidad delavisindelproducto,estosestarnsujetosalaspruebasdeaceptacin, quepuedenserinformales. Antesdeiniciarconeldesarrollodeloscasosdeusodepruebasevelassiguientescaractersticas,lascualessirven paratomarpolticasdeprueba: Es el requisito comprobable? Requisitos no funcionales (incluso los requisitos de la aplicacin) deberan serexaminadosporunapersonaconexperienciayconocimientosenlaspruebas.Sielrequisitonoesfcil deprobar,serdifcil demostrarquehasidoimplementado correctamente.Porejemplo,unrequisito que establece que "El sistema deber estar disponible las 24 horas del da, 365 das al ao" se tendra que probarduranteunao.Sielrequisitoestdescritoenporcentajededisponibilidad,talescomo"Elsistema deber estar disponible para su uso el 99% del tiempo", puede medirse por perodos cortos de tiempo y extrapolarseaperodosmslargos. El requisito es objeto de mltiples interpretaciones? Se debe considerar la posibilidad de la exigencia para cada uno de los requisitos que se han implementado, por ejemplo: "El sistema deber soportar conexiones simultneas de 500 usuarios y el tiempo de respuesta debe ser menor a los 2 segundos." Este requisito puede interpretarse de mltiples maneras. Una interpretacin pasiva seria: Los 500 usuarios estn conectados. Una interpretacin agresiva seria: los 500 usuarios solicitan informacin al mismo tiempo. Una interpretacin intermedia seria: el 10% de los 500 usuarios se desconectar, un 20% utilizar las funciones de bsqueda, un 10% adicionar un registro, un 30% correr los informes, un 20% solo navegarporlaaplicacinyun10%soloestconectado(sinactividad).

Se debe explicar que al momento de describir las polticas de prueba o el conjunto de casos de prueba se tiene que tener una gran experiencia o una muy buena orientacin, ya que se puede cometer errores que pueden causarunamalainterpretacin. La piedra fundamental para disear los casos de uso de prueba es la descripcin de los casos de uso de la aplicacin.Dentrodelejemploquesehallevadoeneltranscursodeladocumentacinseutilizarparaestaetapa, el caso de uso Autenticar Empleado, del cual se disearn casos de uso de prueba, estos nos darn una perspectivadecmorealizarlapruebadevalidacin. AutenticarEmpleado CasodeUso Actores Resumen Empleado(JefedeCocina,Recepcionista) ElcasodeusoseiniciacuandoelEmpleadoquiereingresarala aplicacin,paraestodebeintroducirsucuentaycontraseadeaccesoa unainterfazqueleproporcionalaaplicacin. Verificar si el actor tiene autorizacin para ingresar al manejo de la aplicacin.

Responsabilidades CUasociados Precondiciones


Descripcin RespuestadelSistema Pantalla1

AccindelActor(es)

415
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

1.ElcasodeusoseiniciacuandoelEmpleado necesitaingresaralaaplicacin


2.Presentaunainterfaz(Pantalla1),enlacual debeingresarelEmpleadoelNombrede Cuenta(A)ylaContrasea(B)


3.IngresaelNombredeCuenta(A)yla Contrasea(B) 4.RealizaunclicenelbotnAutenticar(C)


5.ValidainternamentecomparandoelNombre deCuentaylaContrasea 6.Direccionaalmenprincipaldelaaplicacin paralosEmpleados

CursosAlternos Paso5.Silavalidacinesincorrectalaaplicacinpresentaunmensajedetexto(D)conlas siguientespalabrasElNombredeCuentaolaContraseaesIncorrecta Paso5.SilavalidacindelNombredecuentanocoincideconseiscaracteresaliniciomsdos nmeros,laaplicacindebepresentarunmensajedetextoconlassiguientespalabrasVerifique elNombredeCuenta(seiscaracteresmsdosnmeros) Requisitosno Funcionales Seguridad. ElNombredeCuentadebeconteneruntotalde8caracteres,losseis primerosdebenserletras,losdosltimosnmeros. Lacontrasea,luegoderealizarunclicenelbotndeAutenticar(C) debeaplicarse,sobreesta,unalgoritmodeencriptacin,paralograr unaptimaintegridad FacilidaddeUso Losmensajesrelacionadosalautilizacindelainterfazdebeser legibles,explicativosydeuncolorllamativo,paralograruncorto tiempodeaprendizajeenlautilizacindelainterfazyunaptima comprensin. ElEmpleadotendrunaautorizacinparalautilizacindelaaplicacin

Postcondiciones

Los casos de uso de prueba se deben describir de tal forma que validen el caso de uso de la aplicacin, para cumpliresteobjetivoseaplicaunaplantillaqueayudaadesarrollarloscasosdeusodeprueba,eslasiguiente:

416
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

Nombrede ReferenciadelCaso deuso: Iteracin(Ciclo): DESCRIPCINDEL CASODEUSO REQUISITOS

NombredeCasodeusocomoArchivo:

NombredelArchivoconGuion:

NombredelArchivodeResultadosy conclusiones: GUINDEPRUEBADECORRIDAMANUAL ID TIPO NOTA DESCRIPCIN RESULTADO ARCHIVO RESULTADO DETALLE ESPERADO ESPERADO DEL RESULTADO

BREVE DESCRIPCINDEL CASODEUSO PRECONDICIONES FLUJOBSICO SECCIN FLUJOSALTERNOS POSCONDICIONES REQUISITOSNO FUNCIONALES Como se puede ver, la plantilla est en funcin de la descripcin del caso de uso de la aplicacin. Cada una de las partes describe la interaccin del actor con la aplicacin debe ser validada (probada) de forma manual. Se ve a continuacincomosellenalaplantillautilizandoelcasodeusoAutenticarEmpleado. NombredeReferenciadelCasodeUso:AutenticarEmpleado Nombre del Caso de Uso como Archivo: algunas de las empresas que desarrollan software documentan separadamente los casos de uso, Rational RequisitePro permite gestionar un caso de uso de la aplicacin, adicionalmente utiliza el Microsoft Word para describir, a travs de una plantilla, el caso de uso. En esta oportunidadnoseintroduceelnombredelarchivoparaelcasodeuso. Nombre de Archivo con Guin: Se utiliza cuando el caso de uso esta fusionado con una escena o escenas de un softwaremultimedia, sin embargo se puede utilizar para referirse a un conjunto de escenarios para elcasodeuso.Enestecasonoseintroduceningnnombredearchivoconguion. Iteracin (Ciclo): Se debe describir el ciclo de desarrollo que se lleva a cabo. En este caso es la Primera IteracindenominadaAdministracinyAutorizacin. Nombre del Archivo de Resultados y Conclusiones: Se debe introducir el nombre del archivo que contiene elresultadodelaspruebasdeestecasodeuso.Cadanombredearchivodebeincluirlaubicacinfsica. DescripcindelcasodeusoyGuinde PruebadeCorridaManual,solosonttulos,loscualesrepresentan el conjunto de interaccin y las actividades que se van a realizar al momento de llevar a cabo el caso de usodeprueba. Requisitos: En esta columna hace una introduccin a la descripcin del caso de uso, en las siguientes filas deestacolumnaestarladescripcindeloscasosdeuso. ID: Esta columna ser un nmero correlativo de las actividades que se harn por cada interaccin de los casosdeuso. Tipo:EstacolumnaestrelacionadaconlacolumnadeResultado.Existedosposiblesdatosquesepueden introducir.SivaaserunPasoosiserVerificable(PV).Pasosecolocar,sisevaarealizarunclicporlas opcionesquepresentalaaplicacinensusdiferentesinterfazhastallegaraunadondesellevaracabola

417
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

actividad de verificacin y Verificable se colocar, si la operacin ha sido planificada en el descripcin delcasodeusodeprueba,esdecirseesperaunresultadoalmomentoderealizarelcasodeprueba. Nota: Esta columna se puede utilizar de diferentes formas, una de estas es colocar una de las precondiciones descritas en el caso de uso, otra utilizacin es describir brevemente el funcionamiento de laaplicacinosuresponsabilidad. Descripcin: Esta columna es la ms importante, ya que en esta se describe que es lo que se va a probar, es decir se debe describir el dominio de la prueba. Por ejemplo, si el probador est en una interfaz donde tiene que registrar un Producto a la venta, se debe describir el conjunto de datos que se introducirn que seanvalidosoincorrectosestoparaverelcomportamientodelaaplicacin. Resultado Esperado: En esta columna se debe describir los posibles resultados esperados por el probador respecto a la columna de Descripcin. Est claro que esta columna ser llenada de acuerdo a los posibles resultadosqueelprobadorpuedadefinir. ArchivoEsperado:Sidentrodeladescripcindelcasodeusosedescribelageneracindeunarchivo,este archivo debe ser evaluado y debe existir una conformidad, si no existiera una conformidad esta columna permitirdescribirlosdefectosoerroreselarchivogenerado. Resultado: Se debe describir, en esta columna, el resultado que da la aplicacin o seleccionar entre CorrectooDefecto,paraluegodescribirenlasiguientecolumna. Detalle del Resultado: Esta columna ser utilizada cuando exista una no conformidad con el comportamientodelaaplicacin,dondeelresultadoesperadoseainsatisfactorio.

El primer paso es llenar la columna de DESCRIPCIN DEL CASO DE USO, como se puede ver a continuacin.
Nombre de Caso de uso como Archivo: Autenticar Nombre de Referencia del Caso de uso: Autenticar Empleado.doc Empleado Iteracin (Ciclo): Primer Ciclo DESCRIPCIN DEL CASO DE USO REQUISITOS GUIN DE PRUEBA DE CORRIDA MANUAL ID TIP O NOTA DESCRIPCIN RESULTADO ESPERADO ARCHIVO ESPERAD O RESULTAD O DETALLE DEL RESULTAD O Nombre del Archivo con Guion: No existe

Nombre del Archivo de Resultados y conclusiones: Autenticar Empleado (resultados) .doc

El caso de uso se inicia cuando el Empleado quiere ingresar a la aplicacin, para esto debe introducir su cuenta y contrasea de acceso a una interfaz que le proporciona la aplicacin. No tiene PRECONDICIONES 1. El caso de uso se inicia cuando el Empleado necesita ingresar a la aplicacin 2. La Aplicacin Presenta una interfaz (Pantalla 1), en la cual debe ingresar el Empleado el Nombre de Cuenta (A) y la Contrasea (B) 3. Ingresa el Nombre de Cuenta (A) y la Contrasea (B) 4. Realiza un clic en el botn Autenticar (C) 5. La Aplicacin Valida internamente comparando el Nombre de Cuenta y la Contrasea 6. La Aplicacin Direcciona al men principal de la

Paso

Se debe visualizar una interfaz que permita introducir una cuenta y una contrasea

Se visualiza correctamente los campos de Cuenta y Contrasea?

La visualizacin debe ser clara, sin abreviaciones ni en otro idioma que sea el castellano

Paso

Se debe permitir introducir letras y nmeros en el campo de Cuenta No sebe permitir introducir el campo cuenta caracteres que no sean letras ni nmeros. La aplicacin debe derivar al men principal

El campo Cuenta acepta letras y nmeros?

EL campo de Cuenta debe permitir la introduccin de letras y nmeros

Paso

El Campo Cuenta acepta caracteres que no sean letras y nmeros?

El campo Cuenta solo debe permitir introducir letras y nmeros

Paso

La Aplicacin deriva a una interfaz con opciones que permitan al actor realizar su

La Aplicacin muestra una interfaz con opciones estructuradas para el manejo

418
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre aplicacin Empleados para los trabajo? del actor

No tiene SECCIN Paso 5. Si la validacin es incorrecta la aplicacin presenta un mensaje de texto (D) con las siguientes palabras El Nombre de Cuenta o la Contrasea es Incorrecta Paso 5. Si la validacin del Nombre de cuenta no coincide con seis caracteres al inicio ms dos nmeros, la aplicacin debe presentar un mensaje de texto con las siguientes palabras Verifique el Nombre de Cuenta (seis caracteres ms dos nmeros)

PV

Se debe introducir una cuenta que no est registrada

La Aplicacin visualiza un mensaje de error que identifica que la cuenta no existe? La aplicacin no visualiza ningn mensaje?

La aplicacin debe visualizar un mensaje identificando que la cuenta no existe. La aplicacin debe visualizar una imagen de conformidad de la estructura de la cuenta. La aplicacin debe visualizar un mensaje identificando que la estructura no es la correcta con el mensaje de Verifique el Nombre de Cuenta. La aplicacin debe mostrar un mensaje de autorizacin para la utilizacin de la aplicacin.

PV

PV

Se debe introducir una cuenta con seis caracteres al inicio ms dos nmeros: Robert12 Se debe introducir una cuenta errnea que no cumpla la estructura definida: Ro123ber

La aplicacin visualiza un mensaje de error que indica que la cuenta no tiene una estructura adecuada?

El Empleado tendr una autorizacin para la utilizacin de la aplicacin

Paso

Seguridad. El Nombre de Cuenta debe contener un total de 8 caracteres, los seis primeros deben ser letras, los dos ltimos nmeros. La contrasea, luego de realizar un clic en el botn de Autenticar (C) debe aplicarse, sobre esta, un algoritmo de encriptacin, para lograr una ptima integridad Facilidad de Uso Los mensajes relacionados a la utilizacin de la interfaz deben ser legibles, explicativos y de un color llamativo, para lograr un corto tiempo de aprendizaje en la utilizacin de la interfaz y una ptima comprensin.

PV

La aplicacin debe visualizar un mensaje de conformidad y de autorizacin para la utilizacin Debe verificarse en la base de datos la contrasea est cifrar.

La aplicacin visualiza un mensaje de conformidad que significa la autorizacin a la utilizacin de la aplicacin? La aplicacin debe cifrar la contrasea de acuerdo a un algoritmo HASH?

Dentro de la base de datos debe visualizarse la contrasea cifrar con el algoritmo HASH Se visualiza correctamente los mensajes y textos que describen los campos de forma ptima. Se visualiza correctamente la interfaz en los distintos navegadores.

10

PV

11

PV

Debe verificarse que los mensajes, descripcin de los campos, nombre de los botones sean legibles Debe verificarse la interfaz en entornos distintos a los que se ha desarrollado

La aplicacin visualiza de forma correcta y legible todas las palabras que se incluyen en los mensajes y campos? La aplicacin funciona en Internet Exploer, Mozzilla, Opera y FireFox?

En la descripcin de un Caso de Uso de Prueba se debe tomar en cuenta la funcionalidad (hace lo que debe), la fiabilidad (resistente a fallos) y el rendimiento (Lleva a cabo su trabajo de forma efectiva), con estos tres puntos de vista, el probador debe enfocarse para describir el caso de uso de prueba y sea un xito la prueba. La descripcin puede ser ms extensa y complicada, esto es depende de la experiencia del 419
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

probador y como se puede ver, esta etapa es una de las ms morosas y complicadas dentro del desarrollo de software. No debe olvidarse que solo se ha descrito, brevemente, una de las fases de prueba. El siguiente documento describir la captura de los defectos al momento de utilizar la aplicacin y el caso de uso de prueba descrito anteriormente.

420
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

BIBLIOGRAFA
MSDNTRANING,IntroductiontoC#ProgrammingfortheMicrosoft.NETPlatform(Prerelease), 2001 JosAntonioGonzlezSeco,EllenguajedeprogramacinC#,2002 RichardAnderson,BrianFrancis,AlexHomer,RobHoward,DavidSussman,Karli WatsonProfessionalASP.NET1.0SpecialEdition,2002 JohnErikHansen,CarstenThomsenEnterpriseDevelopmentwithVisualStudio.NETUMLand MSF,2004 DivisionofMicrosoftCorporationDevelopingWebApplicationswithMicrosoftVisualBasic.NET andMicrosoftVisualC#.NET,2002 JeffFerguson,BrianPetterson,JasonBeres,PierreBoutquin,MeetaGupta,LaBibliadeC#,2003 RamonDuraes,ASP.NET2.0VisualStudio2005,2004 DannyRyanyTommyRyan,ASP.NET,2002 AdrianTurtschi,JasonWerry,GregHack,JosephAlbahari,C#.NETWebDevelopersGuide2002 ScottMitchell,BillAnders,RobHoward,DougSeven,StephenWalther,ChristopWilleyDon WolthuisASP.NET:Tips,TutorialsandCode,2001 MikeGunderloy,DevelopingandImplementingWebApplicationswithVisualBasic.NETand VisualStudio.NET,2003 JohnSharp,MicrosoftC#2005,stepbystep,2006 ScottShort,BuildingXMLWebServicesfortheMicrosoft.NETPlatform,2002 ByStephenC.Perry,CoreC#and.NET,2005 MikeGunderloy,DevelopingandImplementingWebApplicationswithVisualBasic.NETand VisualStudio.NET,2003 PhilippeKruchten,TheRationalUnifiedProcess:AnIntroduction,2004 ThirdUMLDistilled:ABriefGuidetotheStandardObjectModelingLanguage,2003 EricJ.Naiburg,RobertA.Maksimchuk,UMLforDatabaseDesign,2001 SuzanneRobertson,JamesRobertson,MasteringtheRequirementsProcess,2006 DougRosenberg,KendallScott,ApplyingUseCaseDrivenObjectModelingwithUML:An AnnotatedeCommerceExample CalHenderson,BuildingScalableWebSites,2006 RaulAlarcon,DiseoOrientadoaObjetosconUML,2000 IvarJacobson,GradyBooch,JamesRumbaugh,ElProcesoUnificadodeRational,Addison Wesley,2000 KendallScott,FastTrackUML2.0,Apress,2004. MichaelJesseChonoles,JamesA.Schardt,UML2forDummies,WileyPublishing,2003 LilianaFavre,UMLandtheUnifiedProcess,IRMPress,2003 BhuvanUnhelkar,ProcessqualityassuranceforUMLbasedprojects,AddisonWesley,2003 DeanLeffingwell,DonWidrig,ManagingSoftwareRequirements,AddisonWesleyLongman,2000

421
Ingeniera de Sistemas Informticos

Universidad Privada del Valle Unidad Acadmica Sucre

HansErikEriksson,MagnusPenker,BrianLyons,DavidFado,UML2Toolkit,WileyPublishing, 2004 CraigLarman,ApplyingUMLandPatternsinOOA/D,2001 ScottW.Ambler,JohnNalbone,MichaelJ.Vizdos,TheEnterpriseUnifiedProcess,PrenticeHall, 2005 PerKroll,PhilippeKruchten,RationalUnifiedProcessMadeEasy,AddisonWesley,2003 JosephSchmuller,SamsTeachYourselfUMLin24Hours,SamsPublishing,2004 TimKasse,PracticalInsightintoCMMI,ArtechHouse,2004 MaryBethChrissis, MikeKonrad, SandyShrum, CMMI: Guidelines for Process Integration and ProductImprovement,AddisonWesley,2003

422
Ingeniera de Sistemas Informticos

También podría gustarte