Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE CONTADURÍA Y ADMINISTRACIÓN ANÁLISIS Y DISEÑO DE UN PORTAL WEB PARA COMUNIDADES VIRTUALES, CASO PRÁCTICO PARA LA FACULTAD DE ODONTOLOGÍA DE LA FES. IZTACALA TESIS PROFESIONAL QUE PARA OBTENER EL TIRULO DE: LICENDIADO EN INFORMATICA PRESENTA: MÉXICO, D.F. 2005 MARÍA MAGDALENA JIMÉNEZ PINEDA ASESOR: ING. Y MTRA GRACIELA BRIBIESCA CORREA UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. Antecedentes Planteamiento del problema Objetivo General Objetivos Particulares Justificación Hipótesis Metodología Capítulo I Marco teórico Conceptual De las páginas Web a los Portales Web 1.1 Conceptos básicos usados en Internet 1.2 Página Web 1.3 Sitio Web 1.4 Portal Web Capítulo II Ingeniería del Software, Metodologías de Desarrollo 2.1 Metodologías de Desarrollo: 2.2 Metodología VS Ciclo de Vida 2.2.1 Evolución Histórica de las Metodologías 2.2.2 Clasificación de las Metodologías a) Metodología Convencional: b) Metodología estructurada c) Metodologías Orientadas a Objetos Capítulo III Generalidades del software en México 3.1 Aseguramiento de la calidad de software 3.2 Presentación de resultados Capítulo IV. Desarrollo del caso práctico del Análisis y Diseño de un Portal Web para comunidades virtuales de la Facultad de Odontología de la FES Iztacala. 4.1 Objetivo General del Proyecto 4.2 Objetivos Específicos 4.3 Alcances 4.4 Limitaciones 4.5 Análisis 4.5.1 Anexo 1 Requerimientos de usuario 4.5.2 Anexo 2 Casos de Uso 4.5.3 Anexo 3 Cuestionario de Análisis de personal del proyecto 4.5.4 Anexo 4 Estudio de Viabilidad Técnica 4.5.5 Anexo 4 Módulos 4.6 Diseño 4.6.1 Anexo 1D Estándares de diseño 4.6.2 Anexo 2D Bocetos 4.6.3 Anexo 3D Interfaces Conclusiones Artículos en Internet Bibliografía Introducción El cambio acelerado y de competitividad global que vive el mundo, junto con la aplicación de nuevas tecnologías de información, permite la libertad de brindar productos y servicios de calidad. Desde la década de los años setenta, el tema de la calidad ha sido motivo de preocupación para especialistas, ingenieros, investigadores y comercializadores de software, realizando investigaciones con dos objetivos fundamentales: la obtención de software con calidad y la evaluación de la calidad del software. Así mismo en lo que refiere este trabajo de investigación con el objeto de diagnosticar y orientar las acciones de las prácticas de ingeniería de software, se realizó una investigación para aplicarlo a un caso práctico en la etapas análisis y diseño de un Portal Web para comunidades virtuales de la Facultad de Odontología de la FES Iztacala, esto permite llevar la administración del proyecto informático, y dar una propuesta de solución a un proyecto real. En el Capítulo I: Marco Teórico, De las páginas Web a los Portales Web, se precisan los conceptos, acepciones y criterios que se van a utilizar a largo de esta investigación. También comprende hechos que prevalecen en el ambiente informático y que permiten describir al objeto de estudio. Dentro de un contexto histórico para conocer la evolución de lo que estamos investigando y facilite su comprensión. En el Capítulo II: Análisis y Diseño de Sistemas de Información, muestra un panorama de las prácticas actuales de metodologías propuestas por Ingeniería de Software. Así como la construcción de Aplicaciones Web con una metodología de diseño orientada a objetos siendo esta una herramienta más para la creación de un Portal Web. En el Capítulo III: Situación Actual de las prácticas de Ingeniería de Software en México y de la aplicación de estas en Portales Web. Se presenta una investigación de las generalidades del software en México, los resultados de las encuestas aplicadas a personal de desarrollo de proyectos de software en Centro de Ciencias Aplicadas y Desarrollo Tecnológico, y profesionales externos que desempeñan actividades dentro del desarrollo de software. En el Capítulo IV: Desarrollo del caso práctico del Análisis y Diseño del Portal Web para comunidades virtuales de la Facultad de Odontología de la FES Iztacala, el contenido de este apartado comprende la formalidad de un proyecto y de los resultados obtenidos para dar la propuesta de solución. Por último a esta investigación se anexan los formatos de los cuestionarios aplicados en el Capítulo III, así como los formatos oficiales que se implementaron para la presentación de la documentación del caso práctico del Capítulo IV, el contenido de cada uno de ellos es una fuente de apoyo para aplicarlo a proyectos de desarrollo de software, Antecedentes En 1999, la Unidad de Telemática para la Educación) – ahora integrada al LIHMM (Laboratorio de Interacción) en vinculación con la Facultad de Estudios Superiores Iztacala de la Universidad Nacional Autónoma de México, realiza actividades de exploración y análisis del valor de la tecnología informática dentro del modelo de enseñanza que se aplica en el aula. La idea era considerar la computadora como una de las diversas herramientas y materiales que se pueden utilizar en cualquier programa educativo, destacando la necesidad de planificar cuidadosamente los objetivos y estrategias tecnológicas que usan alumnos y profesores. De lo anterior, motivó a un equipo de personas enfocar su atención en este término para aplicarlo en la enseñanza del área de odontología. A partir de la necesidad de incluir el material en material Web, el Mtro. Tolosa Académico de la FESI, profesor de la Carrera de Cirujano Dantista, hace una solicitud formal al Centro de Instrumentos hoy llamado Centro de Ciencias Aplicadas al Desarrollo Tecnológico, para desarrollar actividades que contribuyeran al uso y aplicación de los recursos telemáticos en la educación. Estas actividades tienen por objetivo desarrollar material educativo basado en hipertexto, que fuera de utilidad en la asignatura del Módulo de Instrumentación y Laboratorios de la Carrera de Cirujano Dentista de la FESI. Para el año 2001 surge la propuesta de Proyectos de Apoyo para la Investigación e Innovación Tecnológica; el Dr. Jorge Barojas Weber Coordinador de la Unidad de Telemática del Centro de Instrumentos de la UNAM inscribe el PAPIIT (Proyectos de Apoyo para la Investigación e Innovación Tecnológica) IN-305901 “Comunidades de Aprendizaje con apoyos Telemáticos” (CATI) financiado por Dirección General de Asuntos del Personal Académico (DGAPA). La Comunidad de Aprendizaje de la FESI se inició con un grupo de ocho profesores del Módulo de Instrumentación y Laboratorios de la carrera de Cirujano Dentista de la FESI. Una vez formado el equipo de trabajo se llevo a cabo una capacitación intensiva acerca de temas, tales como, el hipertexto, la multimedia y el uso de herramientas de comunicación electrónicas, para poder tener una mejor visión sobre esta área. Para aplicar las tecnologías informáticas en el proceso de enseñanza, el equipo de trabajo realizó un trabajo de sensibilización y motivación para la aplicación de estas herramientas en la educación, con el grupo de profesores del Modulo de Instrumentación de la carrera de cirujanoDentista de la FESI. Este trabajo tuvo como objetivo mostrar a los profesores las ventajas y beneficios de aplicar este tipo de material con los alumnos. Después de esta labor, con los profesores interesados en el uso de estas tecnologías, se presentó a los alumnos material educativo apoyado por estas herramientas, con el objetivo de conocer la opinión de éstos, y saber en que medida podía favorecerles el material desarrollado. Mucha de la información (manuales, tutoriales, videos, presentaciones, artículos) es diseñada y desarrollada por el grupo de docentes, las investigaciones describen procedimientos y actividades importantes desarrolladas por el grupo, lo cual es importante para los miembros de la comunidad. Planteamiento del problema De aquí surgen otro tipo de inconvenientes como: el tiempo invertido para poder analizar y buscar de forma grupal el material, la distribución de éste a los miembros de la comunidad; limitando de esta manera, que el aprovechamiento buscado con estas técnicas fuera menor que el que se obtiene en un proceso enseñanza-aprendizaje convencional. La Ing. Josefina Bárcenas en colaboración con el Mtro. José Antonio Domínguez del LIHMM y el Mtro Tlosa, están dándole seguimiento al proyecto CATI, me invitan a participar junto con un grupo de seis personas, en otro proyecto, donde nos encomiendan crear un Portal Web que tenga como objetivo principal, ser una propuesta de desarrollo tecnológico del proyecto CATI. La Ing. Bárcenas plantea que se había hecho un intento por publicar vía Web un conjunto de páginas de información, pero éstas tenían una estructura rígida, dichas páginas fueron creación de un grupo de profesores del Módulo de Instrumentación. Con base a lo anterior solicitan que el Portal Web: Sea capaz de crear comunidades virtuales y la administración de las mismas; Incluya validación y recuperación de entrada del usuario; Tener un espacio virtual para poder publicar, comentar y compartir conocimientos de algún proyecto o investigación, de experiencias profesionales o puntos de vista de los miembros de las comunidades; También que permita gestionar un Foro de discusión para cada comunidad y otro que se de uso público; Que a través del Portal se hagan consultas en línea para, disminuir la necesidad de transportarse a un lugar geográficamente concreto y restringirles a horarios fijos; Que sea fiable, utilizable, adaptable. Que permita llevar a cabo una evaluación continua del rendimiento del Portal. Que tenga interfaces amigables. Que sea fácil de navegar. Que posea las características de inmediatez, seguridad y estética. El Portal sea un medio de enlace entre las comunidades virtuales. Nota:. Será responsabilidad de los usuarios del sistema que la información publicada sea veraz, objetiva y confiable. En el desarrollo de sistemas de información es necesario integrar un conjunto de elementos (recursos humanos, económicos, datos, software, bases de datos, hardware, procedimientos). En el caso que nos ocupa, es decir, un Portal Web también involucra también estos elementos. Para emprender este proyecto se integró un equipo de trabajo con las siguientes personas: la Ing. Josefina Bárcenas líder de proyecto, Oscar Hernández el programador, un diseñador gráfico, un grupo de dos personas que se encargarán de las tareas de supervisión de los productos finales de dicho sistema y, las tareas de planeación, análisis y diseño estuvieron bajo mi responsabilidad. Para cumplir todos estos requerimientos, observé una situación donde enumero los siguientes aspectos a los que se enfrentó el equipo de trabajo: No contaba con una planeación formal por etapas, que especifique las tareas a realizar; El equipo de trabajo carecía de una metodología formal de desarrollo de Aplicaciones Web; No tenía recursos de software (herramientas CASE para el análisis, diseño y desarrollo); Hacía falta un estudio de factibilidad para la creación del sistema; No poseía una plataforma para desarrollo y pruebas del sistema; Carecía de un servidor Web y de un servidor de bases de datos; Hacía falta definir un paradigma de desarrollo (estructurado u orientado a objetos que propone la ingeniería de software) y el desconocimiento de la metodología de Ingeniería Web; No tenía delimitado los recursos de hardware que se necesitan para el almacenamiento y procesamiento de información donde se implementará el Sistema Web; través de la creación de comunidades virtuales, publicar eventos de los mismas, contener un Y por último no estaban definidos los perfiles del recurso humano, ni especificadas las tareas a las que están comprometidos. Resulta de especial relevancia que este sistema se presentará a través de un Portal Web para considerar factores como: la integración de grupos interdisciplinarios del área odontológica a espacio virtual donde se recomienden enlaces a portales o sitios de interés para los miembros de dichos grupos, tener una ciberoteca (espacio virtual para publicar documentos de investigación, artículos, manuales), y tener un servicio de Foro de discusión, para la comunicación entre los docentes y permitir el intercambio de información sobre contenidos particulares, y por último tener un motor de búsqueda dentro del portal. Objetivo General Presentar una propuesta de solución para la planeación y análisis, previos al desarrollo del Portal Web orientado a grupos interdisciplinarios de la Facultad de Odontológica de la FES Iztacala, aplicando los fundamentos teóricos de Ingeniería de Software utilizando los principios y técnicas del modelado de la Ingeniería Web. Objetivos Particulares Proporcionar documentación confiable para la toma de decisiones en el desarrollo e implementación del Sistema Web. Utilizar la documentación como apoyo en el desarrollo de nuevos Sistemas de Información con características similares. Demostrar que el estudio de Factibilidad es el óptimo para el caso que nos ocupa. Aplicar los fundamentos teóricos de la metodología orientada a objetos en el análisis y diseño de sistemas para el desarrollo de un Sistema Web. Diseñar la estructura del Portal Web siguiendo los principios de calidad desarrollo de software orientado a Web. Justificación Es aquí donde me permitió hacer una propuesta al equipo de trabajo para cumplir el objetivo antes mencionado, con la elaboración de un plan proyecto de software, donde realice el estudio de factibilidad y, anteponiendo los requerimientos a cumplir, por lo anterior es una propuesta de Tesis, y es lo que me motiva al desarrollo de la misma. De esta forma se realizare una investigación formal, aplicando una metodología para el análisis y diseño en creación de Software, de forma sistemática, donde proponga una estrategia de solución, con los requerimientos explícitos e implícitos del usuario final, los primeros son los requerimientos que pide el usuario y los segundos son los factores de calidad aplicados al software, donde se involucra todo el equipo de trabajo de desarrollo para poder obtener un Software de calidad. Hipótesis El análisis de los requerimientos lo realizan los líderes comerciales y no los líderes de proyecto. Los proyectos de sistemas de información a mayor complejidad es directamente proporcional a los recursos humanos se necesitan para su diseño. Metodología 1. Levantamiento de información. 2. Entrevistas con expertos en desarrollo de software. 3. Entrevista con usuarios. 4. Realizar investigación documental 5. Presentación de la información. 6. Análisis de la información. 7. Presentación de los resultados 8. Aplicación a un caso práctico Desarrollo de la metodología Al buscar estadísticas acerca de las empresas que desarrollan software en la ciudad de México, los datos encontrados en el SIEM(Sistemade Información Empresarial), del censo de 2003 bajo el rubro de unidades económicas por sector según clase de actividad contempla a 264 empresas prestadoras de servicios de análisis de sistemas y procesamiento informático. Sin embargo, éstas empresas no revelan el total actual de las empresas que desarrollan software, pues no contempla instituciones gubernamentales, instituciones educativas, de investigación, etc. Al no encontrar estadísticas acerca de la forma como es producido el software, se diseñó un instrumento piloto que se aplicó a 25 líderes de proyecto como muestra. Esta primera fase, reveló que las personas encuestadas desconocían la forma en como la calidad total podría influir en la gestión de los proyectos. Por tanto, el instrumento fue ajustado para aplicarlo no sólo a los líderes de proyecto, sino a consultores, programadores, administradores de bases de datos, etc., para obtener una visión más amplia. Para su elaboración se llevó a cabo un proceso de consulta con la comunidad. Enfocándose en dos partes esenciales: los antecedentes para ubicar el contexto en el cual se encuentra la organización y la gestión de los proyectos. La segunda parte, se enfocó en las áreas de control de los proyectos tales como: tecnología, los costos, los planes, y el desarrollo del producto, requiere mediciones comprensivas para la toma de decisiones dentro de los proyectos, y finalmente la perspectiva de la calidad de software (modelos de calidad, factores que influyen en la toma de decisiones, atributos que indica calidad de los productos). El cuestionario de 20 preguntas, se extendió a las organizaciones que producen software en la ciudad de México, invitando a una población de 100 personas en colaboración con la Asociación Mexicana de Calidad para la Ingeniería de Software (AMCIS) y CCADET, además en tres semanas proporcionó una respuesta favorable por parte de los encuestados, se descartaron 28 cuestionarios por no estar completamente contestados, quedando solo 72, cuyos resultados son presentados a en el Capítulo III. Capítulo I Marco teórico Conceptual De las páginas Web a los Portales Web 1.1 Conceptos básicos usados en Internet Internet: Desde el punto de vista conceptual se, define a Internet como un conjunto de redes, redes de computadoras y equipos físicamente unidos mediante cables que conectan puntos de todo el mundo. Internet, algunas veces llamado simplemente "La Red", es un sistema mundial de redes de computadoras, un conjunto integrado por las diferentes redes de cada país del mundo, por medio del cual un usuario en cualquier computadora puede, en caso de contar con los permisos apropiados, accesar información de otra computadora y poder tener inclusive comunicación directa con otros usuarios en otras computadoras. Técnicamente, lo que distingue al Internet es el uso del protocolo de comunicación llamado TCP/IP (Transmission Control Protocol/Internet Protocol). Web: La World Wide Web (la "telaraña" o "maraña mundial") es tal vez el punto más visible de Internet y muy usado junto con el correo electrónico. Originalmente denominado Proyecto WWW y desarrollado en el CERN suizo a principio de los 90, partió de la idea de definir un "sistema de hipermedios distribuidos." Una de las bondades de mayor importancia que ofrece Internet, es brindar a los ciudadanos la posibilidad de conectarse a otras partes del mundo, sin distinciones de edad, raza, sexo y religión. Actualmente, se podría decir que, Internet es la gran biblioteca mundial en donde se registra una gran variedad de información sobre la historia de la humanidad y un sin fin de datos sobre el acontecer mundial. World Wide Web, o simplemente Web, es el universo de información accesible a través de Internet, una fuente inagotable del conocimiento humano. Hospedaje Web: Es el servicio de almacenamiento, acceso y mantenimiento de los archivos que integran un Sitio Web. Más importante que el espacio en disco provisto para estos archivos, es el acceso rápido al Internet lo que adquiere mayor relevancia. Una empresa que pretenda hospedar su Sitio Web en sus propias instalaciones, requiera invertir una fuerte cantidad en recursos de equipos, sistemas y medios de comunicación generalmente caros. Los servicios de Hospedaje Web permiten a las compañías compartir el costo de una conexión rápida a Internet. Cuando un Sitio Web llega a ser muy robusto, es muy probable que el servidor Web en el que se encuentren instalados los archivos electrónicos que lo integran, sea dedicado única y exclusivamente a atender a este sitio. Este servicio se conoce como Hospedaje Web dedicado. En este caso, el equipo de cómputo que funciona como servidor Web puede ser propiedad de la empresa que publica el Sitio Web o del propio proveedor de Internet. Servicio de búsqueda o buscador: Un servicio de búsqueda es una aplicación que sirve para localizar información en el Web; ninguno de ellos tiene listada la totalidad del Web - google - de hecho hasta diciembre del 2001 es el servicio con el mayor numero de documentos indexados - 3 billones, de los cuales 2 billones son Páginas Web. Aún así, para el momento de recopilarse esta información, el Web ya es mayor que esta cantidad y crece constantemente por lo que determinar con exactitud su tamaño resulta muy difícil si no es que imposible. La mayor parte de los servicios de búsqueda que hay disponibles recopilan por si mismos información para hacer sus índices, pero todos lo hacen de diferente manera y sus índices varían en tamaño; por lo que también varían los resultados que se pueden obtener usando unos u otros. Muchos de estos servicios son portales. Básicamente existen cuatro tipos de servicios de búsqueda: i. Buscadores o motores de búsqueda: Es una herramienta de software que cuenta con un programa robot conocido como "araña" (spider), éste robot recorre el Web para formar la base de datos del motor de búsqueda; aún si una página no se da de alta en el motor de búsqueda, la araña va a terminar por encontrarlo y ponerlo en el índice. Los buscadores ofrecen herramientas de búsqueda por palabra y hacen uso de Meta Tags. También se puede definir de la siguiente forma, un motor de búsqueda es un conjunto de programas coordinados que se encargan en visitar cada uno de los sitios que integran el Web, empleando los propios hipervínculos contenidos en las páginas Web para buscar y leer otros sitios, crear un enorme índice en todas las páginas que han sido leídas y registradas, llamado comúnmente catálogo, y mantener una copia actualizada de toda esta información, para luego presentar direcciones en Internet como resultado de las peticiones de búsqueda solicitadas por las personas que usan estos servicios de localización de páginas. ii. Directorios: Consiste en una lista, a veces categorizada de temas y otras en orden alfabético; que es mantenida por personas. Los directorios suelen funcionar bajo el esquema de suscripción y la inclusión o no del sitio sugerido depende al final de las personas que mantienen la base de datos del catálogo. Los directorios ofrecen búsquedas por categorías. iii. Servicios combinados de buscador y directorio: A últimas fechas, los buscadores han venido ofreciendo servicios de búsqueda combinada; asociándose entre ellos y compartiendo su información, lo que sin duda es un beneficio para los usuarios ya que reciben mayor variedad de herramientas e información iv. Meta-buscadores: Son un servicio que ofrece herramientas de búsqueda que usan a otras herramientas de búsqueda para localizar la información en Internet. Al generar una búsqueda, envían esta misma a su vez a varios servicios de búsqueda y reúnen los resultados que obtienen en una sola página. Comunidad virtual: Una comunidad virtual, en definitiva, viene a ser la experiencia de compartir con otros que no vemosen un espacio de comunicación. En este sentido, Internet constituye una amplísima red de computadoras que proporciona a cada uno de los usuarios individuales una voz en igualdad, o al menos una igualdad en la oportunidad para hablar, es decir, para participar en la comunidad. La atracción por la red y por la participación en este tipo de experiencias viene dada por la habilidad de la tecnología para legitimar públicamente la propia expresión y por la libertad que proporciona en relación a las barreras tradicionales del espacio y del tiempo. Foros Virtuales: Un foro virtual es un escenario de comunicación por Internet, donde se propicia el debate, la concertación y el consenso de ideas. Es una herramienta que permite a un usuario publicar su mensaje en cualquier momento, quedando visible para que otros usuarios que entren más tarde, puedan leerlo y contestar. A este estilo de comunicación se le llama asincrónica dada sus características de no simultaneidad en el tiempo. Esto permite mantener comunicación constante con personas que están lejos, sin necesidad en coincidir en los horarios de encuentro en la red, superando así las limitaciones temporales en la comunicación sincrónica (como un chat, que exige que los participantes estén conectados al mismo tiempo) y dilatando en el tiempo los ciclos de interacción, lo cual, a su vez, favorece la reflexión y la madurez de los mensajes. Los foros virtuales también son denominados listas de discusión, grupos de noticias y conferencias o seminarios virtuales. A los participantes en un foro los congrega el interés por un tema, una actividad, una meta o proyecto, creando discusiones valiosas para todos. En el ámbito educativo, el ejercicio asincrónico propio en los foros virtuales permite a los estudiantes articular sus ideas y opiniones desde distintas fuentes de discusión, promoviendo el aprendizaje a través de varias formas de interacción distribuidas en espacios y tiempos diferentes. Servicio Web: Se suele definir como una unidad de aplicación capaz de ofrecer datos o servicios de procesamiento a otras aplicaciones informáticas a través de la red mundial y de manera compatible con el protocolo de comunicaciones del Web. Así, una aplicación podría ofrecer distintos servicios a otras aplicaciones. Las características de estos servicios son: Que se solicitan a través del Web. Que los resultados de su ejecución también se devuelven a la aplicación peticionaria a través del Web. Que se tramitan según un modelo “estandarizado”. Es decir, un servicio Web consiste en una función disponible en un servidor conectado a la Web. Esta función puede consistir en cualquier tarea: Realizar un simple cálculo con unos datos que se le envían como parámetro. Acceder a una base de datos para recuperar un conjunto de registros. Validar la corrección de una información o contrastarla frente a otros datos, etc. El servicio Web podrá ser solicitado desde otro programa informático que se ejecute en una computadora conectada a la red. Junto a la solicitud de la ejecución, se pueden enviar a la computadora que ofrece el servicio unos parámetros que el servicio Web remoto tomará como base para su ejecución. El concepto de servicio Web está sustentado en una serie de estándares publicados por el W3C y apoyados por los principales fabricantes de tecnología (IBM, Microsoft, SUN, etc.). Estos estándares señalan cómo se deben cursar las peticiones de servicio a servidores remotos, la forma en la cual éstos deben enviar los resultados, y cómo se deben publicar o dar a conocer los servicios que están accesibles a través de un servidor Web. Ninguno de estos estándares trata la forma en la que debe implementarse o programarse el servicio en sí mismo. En este punto, se deja libertad absoluta a los fabricantes y proveedores para elegir el lenguaje de programación que deseen utilizar. Los estándares que se ocuparon para Servicios Web se definen a partir de las siguientes especificaciones: SOAP (Simple Object Access Protocol- Protocolo de acceso a objeto simple): La especificación SOAP indica cómo se deben codificar los mensajes que circularán entre las dos aplicaciones. Se trata de un protocolo simplificado de llamadas a procedimientos remotos RPC (Remote Procedure Call ). La especificación SOAP define dos modelos de mensajes: 1. Un mensaje que se enviará desde la aplicación cliente a la aplicación servidor, solicitando la ejecución de un método al que se pasan una serie de parámetros. 2. Un mensaje que se enviará desde la aplicación servidor al cliente, y que contendrá datos XML con los resultados de la ejecución del método solicitado. WSDL (Web Services Description Language): Se trata de un lenguaje permite describir los distintos métodos o funciones que están disponibles en un servicio Web, así como su asignatura, es decir, el número y tipo de argumentos o parámetros que se les debe pasar, así como el tipo de dato que devolverá la función como resultado. Se puede establecer una equivalencia entre el documento WSDL y un “contrato” que especifica los servicios que el servidor se compromete a ofrecer al cliente, siempre que éste los solicite de la forma adecuada. UDDI (Universal Description, Discovery and Integration-Descripción universal, de descubrimiento e integración): A medida que el número de proveedores de servicios Web aumente, será necesario disponer de un sistema de referencia que permita localizar estos servicios. Este es el propósito del proyecto UDDI es un proyecto relacionado con los servicios Web y que tiene gran importancia. El W3C es el responsable de mantener las normas de SOAP y WSDL. En el caso de UDDI, se trata de un proyecto en el que participan distintas empresas. XML: El lenguaje XML constituye la base de todos ellos, siendo XML (eXtensible Markup Lenguage - Lenguaje extensible de marcas) un lenguaje abierto, optimizado para su uso en la Web, y que va a permitirnos describir el sentido o la semántica de los datos. XML es de hecho un metalenguaje que permite la definición de los lenguajes de marca necesarios para el funcionamiento de los servicios Web 1.2 Página Web Una página de Internet o página Web es un documento electrónico que contiene información específica de un tema en particular y que es almacenado en algún sistema de cómputo que se encuentre conectado a la red mundial de información denominada Internet, de tal forma que este documento pueda ser consultado por cualesquier persona que se conecte a esta red mundial de comunicaciones y que cuente con los permisos apropiados para hacerlo.Características peculiares de una Página Web a) El texto se combina con imágenes para hacer que el documento sea dinámico y permita que se puedan ejecutar diferentes acciones, una tras otra, a través de la selección de texto remarcado o de las imágenes, acción que nos puede conducir a otra sección dentro del documento, abrir otra página Web, iniciar un mensaje de correo electrónico o transportarnos a otro Sitio Web totalmente distinto a través de sus hipervínculos. b) Estos documentos pueden ser elaborados por los gobiernos, instituciones educativas, instituciones públicas o privadas, empresas o cualquier otro tipo de asociación, y por las propias personas en lo individual, nos se necesita ser experto en la creación de páginas Web. 1.3 Sitio Web Es un conjunto de archivos electrónicos y páginas Web referentes a un tema en particular, que incluye una página inicial de bienvenida, generalmente denominada home page, con un nombre de dominio y dirección en Internet específicos. Empleados por las instituciones públicas y privadas, organizaciones e individuos para comunicarse con el mundo entero. En el caso particular de las empresas, este mensaje tiene que ver con la oferta de sus bienes y servicios a través de Internet, y en general para eficientar sus funcionesde mercadotecnia. Características de los Sitio Web No necesariamente debe localizarse en el sistema de cómputo del negocio. Los documentos que integran pueden ubicarse en un equipo en otra localidad, inclusive en otro país. El único requisito es que el equipo en el que residan los documentos esté conectado a la red mundial de Internet. El Servidor Web, como se le denomina técnicamente, puede contener más de un sitio Web y atender concurrentemente a los visitantes de cada no de los diferentes sitios. Al igual que los edificios, oficinas y casas, los Sitios Web requieren de una dirección particular para que los usuarios puedan acceder a la información contenida en ellos. Estas direcciones, o URLs (por sus siglas en inglés Uniform Resource Locutor- Localizador uniforme de recurso), aparecen cotidianamente en todos los medios de comunicación como son prensa escrita, radio, televisión, revistas, publicaciones técnicas y en el propio Internet a través de los motores de búsqueda. Los nombres de estos sitios Web obedecen a un sistema mundial de nomenclatura y están regidos por el ICANN (Internet Corporation for Assigned Names and Numbers- Corporación de Internet para la asignación de nombres y números). Los Sitios Web pueden ser de diversos géneros, destacando los sitios de negocios, servicio, comercio electrónico en línea, imagen corporativa, entretenimiento y sitios informativos. Un sitio Web puede servir para un gran número de tareas tal como: Hacer anuncios de una compañía. Dar servicios de soportes a clientes. Recibir retroalimentación de los visitantes del sitio. Compartir y distribuir información a través de consultas dinámicas a bases de datos. todo, desde indagar para obtener información para una tarea escolar hasta realizar compras en ella. Y, claro está, vender productos y servicios. Esencialmente, un Sitio Web es una forma de presentar información gráficamente en la pantalla de una computadora utilizando técnicas de Hipertextos. La red mundial de la Web representa hoy en día el modo de comunicación más utilizado. Para cualquier profesional o empresa tener un sitio Web es una necesidad, la gente usa el Web para 1.4 Portal Web ienen sus orígenes en el momento que América Online arrasó entre los suarios de Internet con una idea muy simple: “Internet es demasiado complicada y recibían un gran número de visitas eriódicas eran los que ofrecían los mejores servicios, buscadores, chat, hospedaje rtal significa, “Process-Oriented Real-Time lgorithmic Language” Lenguaje algorítmico orientado a procesos en tiempo real. suario uede compartir y ofrecer no sólo información en tiempo real, sino también actualización l “Portal como una Estrategia de arketing en Internet, la cual tiene como objetivo conseguir que los visitantes del portal, Los portales t u caótica para resultar útil, así que, ¿Por qué no incluir toda la información y servicios que busca la mayor parte de ellos en una sola Web?” 1 Según Jiménez hasta hace poco, los sitios que p gratuito de páginas Web, e-mail. “Aproximadamente en 1998 surgió una nueva idea, de tener todos los servicios integrados en un solo sitio, para el beneficio de los cibernautas, de esta forma nació un nuevo concepto de sitio: el Portal en Internet, una página que pretende ser la entrada a la red telemática.” 2 Desde el punto de vista técnico, la palabra Po A “Un Portal en Internet también significa interacción, esto quiere decir que el u p diaria, es decir que una Web que quiera considerarse un Portal debe actualizar sus contenidos diariamente o al menos semanalmente.” 3 Desde la perspectiva de negocios, Tartas, concibe a M cuando accedan a Internet lo hagan siempre a través de una Web determinada. Para lograr este propósito, se requiere dotar el Portal de dos aspectos muy importantes que son servicios y contenidos.” 4 1 Cubides, O. (2004). Los Portales, Hipermercados de la Información. Grupo de Internet Universidad Sergio Arboleda. Artículo en línea: http://www.usergioarboleda.edu.co/grupointernet/portales.htm 2 Jiménez, (2004). Portales en Internet. Artículo en línea: Http://www.nexus.net.mx/articulos/art017.html 3 Gil, (2004). ¿Qué es un Portal? . Artículo en línea: Gil, (2004). ¿Qué es un Portal? . http://www.eboraweb.com/foro/_disc2/00000013.htm 4 Tharrats P. (2004). Estrategias de Marketing Internet. Portales. www.cyberkyosco.com/manual/art0007/portales.html, Esta idea de ofrecer muchos servicios en un mismo lugar de la Red fue adoptada osteriormente por los buscadores, que hoy en día son una de las páginas más visitadas rtales pueden concebirse como una xcelente herramienta comunicación, de información y de comercio que recoge múltiples p de la Red. Por eso generalmente se asocia la palabra “portal” con los tradicionales buscadores, y esto se debe que los primeros fueron sitios funcionaban como buscadores y directorios de Internet por ejemplo: Yahoo, Excite y Lycos. Pero la realidad es que el concepto ha evolucionado enormemente en los últimos tiempos. Los portales ya no son sólo para ofrecer servicios gratuitos a los usuarios, también hay portales de empresas dirigidos a sus clientes, proveedores y empleados. De acuerdo con las definiciones anteriores, los po e características que los hace diferentes de los tradicionales Sitios Web o Páginas Web. Componentes que debe contener un Portal Web Interactividad. Un portal debe tener la característica de ser dinámico que su permanencia en Internet se vea relacionada cada uno de sus elementos, de manera amigable y persuasible. néricos y de valor añadido; desde un mismo sitio y en tiempo real tales como: Correo electrónico, alojamiento de páginas Ofrecer servicios innovadores, ge Web, chats, comunidades y tiendas virtuales, foros, servicios de noticias, motores de búsqueda, información del tiempo, entre otros. us requerimientos de información según su área y nivel de especialización. Centrarse en el usuario y/o cliente, esto es en satisfacer s usuario un impacto visual positivo. Diseño creativo y atractivo, es decir que genere en el Actualización de la información periódicamente. yente. Ninguno de estos elementos debe ser exclu Existe una significativa diferencia entre lo que es un portal de lo que es una página y un itio Web. Los portales ofrecen una variedad de productos y servicios en una sola pág , cífica o multidisciplinaria. s ina es posible encontrar información de un área espe Clasificación de los portales en Internet La información y servicios a los que se puede acceder en un portal son muy variados. A continuación se presenta la siguiente clasificación de Nishio5: Según la función de sus usuarios: Portal horizontal: su público son todos los usuarios de Internet en general. Lo más importante de este tipo de portal son sus contenidos, abarcan todas las áreas informativas posibles. Portal vertical: son portales especializados, que buscan públicos con objetivos muy determinados. Tienen todos los servicios basados en Web de cualquier portal, pero sus contenidos están todos enfocados al mismo tema. Se ha venido dando opiniones sobre los tipos de portales, si el vertical es mejor que el horizontal, o si son diferentes, pero los expertos en esta área opinan que perdurará aquel que ofrezca calidad, ya que no se trata de ofrecer mayor cantidad de servicios o provea más información, sino más bien el que sea capaz de cubrir las necesidades de sus usuarios. De acuerdo a los servicios que ofrece en con la aportación de Carrión y Medina6 los portales pueden clasificarse: Portales de negocio o Business Portals: son aquellos que las empresas ponen a disposición de sus clientes y prospectos, y vienen a ofrecer una serie de servicios ya clásicos, que pueden ir desde servicios de correo electrónico, agendas personalizadaso comercio electrónico, hasta servicios de atención al cliente o acceso a aplicaciones de todo tipo. 5 Nishio, M. (2000). Vida y características de los portales en Internet http://www.listin.com.do/antes/191100/dinero/din6.html. 6 Carrión y Medina. (2000). Los Portales y la Gestión del Conocimiento. Artículo en línea:. www.gestiondelconocimiento.com. Portales de empresa o Eterprise Portals: Representan el acceso a un conjunto de servicios y varias aplicaciones de carácter empresarial. En este caso los servicios de correo electrónicos, viajes se ven sustituidos por herramientas de gestión comercial, base de datos documentales, y en general, cualquier tipo de aplicación a la que antes se accedía de forma dedicada. Portales de Información de empresa (Eterprice Information Portal): Este tipo de portales es muy similar al anterior, con la diferencia que los EIP ofrecen a los usuarios el acceso a millones de datos que las empresas luchan por controlar. Un EIP puede ayudar a organizar y valorar la Información, con el objetivo de presentársela al usuario de forma coherente. En definitiva, EIP puede conseguir la información y los procesos que una persona necesita en un momento determinado. De acuerdo a sus objetivos: Portales con carácter comercial: Portales de negocio (Business Portals). Ej. Yahoo Portales Personales (Personal Portals). Ej. MyYahoo Portales de carácter empresarial Enterprise Portals. Intranets Ej. SunWeb Enterprise Portals. Extranets. Ej. Sun.Net. Cabe destacar, que aún cuando esta clasificación no contempla otros tipos de portales de acuerdo a sus objetivos, es necesario concebir una nueva categoría, que actualmente se está convirtiendo en uno de los más importantes en la Internet, como son los portales académicos, los cuales se caracterizan por ser sitios especializados en diferentes áreas del conocimiento, cuyo objetivo central es la divulgación de productos y servicios de índole educativo y científico. Según Thomas7 , una alternativa para los portales dot-com y para el catálogo es el portal académico. Características y contenidos de los portales en Internet 7 Thomas, S. (s/f). Abundancia, atención y acceso: De portales y catálogos. http://www.bibnal.edu.ar/portals.thm. Aunque he encontrado bastantes definiciones y descripciones del término portal que profundizan en este concepto, considero interesante utilizar la lista de características fundamentales de un portal que sugiere David Morrison (Técnico Especialista de la compañía Lotus) que pueden ayudar a reconocer un portal frente a otro tipo de páginas Web. Para ello, Morrison usa las iniciales del término portal: Personalización para usuarios finales. Organización del escritorio. Recursos informativos divididos y organizados. Trayectoria o seguimiento de las actividades de los usuarios (Tracking). Acceso a bases de datos. Localización de gente o cosas importantes. Las características de un portal van a depender de la tipología que posea. B Tharrats, se puede decir que los portales deben contener: Servicios: Un buscador o índice, ya sea propio o enlazado a alguno. Relacionarse: Chats, foros, etc. Entretenimiento: Páginas personales, zona de juegos, zonas temáticas, etc. Gratuito: Cuentas de correo electrónico, espacio para Web, etc. Contenidos: Información: noticias, información especializada, etc. Comunidades virtuales: Entornos basados en Web que agrupan personas relacionadas con una temática específica que además de las listas de distribución (primer nodo de la comunidad virtual) comparten documentos, recursos. Directorios de información: Guías electrónicas, etc. Opciones: Personalizar el portal: Este aspecto es fundamental, la mejor forma de que un visitante de Internet siga accediendo a Internet, a través de un portal, es consiguiendo que se sienta además de útil, es “algo suyo” Regionalizar: Se debe tener en cuenta que a los usuarios de Internet les interesa también la información más próxima a él. Capítulo II Ingeniería del Software, Metodologías de Desarrollo 2.1 Metodologías de Desarrollo: Definiciones Conjunto de pasos y procedimientos que deben seguirse para el desarrollo de software. Conjunto de filosofías, fases, procedimientos, reglas, técnicas, herramientas, documentación y aspectos de formación para los desarrolladores de SI . Conjunto de procedimientos, técnicas, herramientas y soporte documental que ayuda a los desarrolladores a realizar nuevo software Una metodología de desarrollo por lo tanto representa el camino a seguir para desarrollar software de manera sistemática. Objetivos: Mejorar Aplicaciones. Un mejorar Proceso de Desarrollo que identifique salidas (o productos intermedios) de cada fase de forma que se pueda planificar y controlar el proyecto. Tener un Proceso Estándar en la organización. Conceptos Generales Actividades y Tareas: El Proceso se descompone hasta el nivel de Actividades y Tareas (actividades elementales) Procedimientos: Define la forma de llevar a cabo las tareas, también es un vínculo de comunicación entre usuarios y desarrolladores. Productos. Obtenidos como resultado de seguir un procedimiento, pueden ser intermedios o finales. Técnicas: Se utilizan para aplicar un procedimiento, pueden ser gráficas y/o textuales, determinan el formato de los productos resultantes en cada tarea. Herramientas Software: Proporcionan soporte a la aplicación de las Técnicas. 2.2 Metodología VS Ciclo de Vida Metodología puede seguir uno o varios modelos de Ciclo de Vida. Un Ciclo de Vida indica qué obtener, pero no cómo. Una Metodología es un concepto más amplio que Método. Una metodología e puede considerar como un conjunto de métodos englobando al (análisis, diseño, programación, etc.) para abarcar el ciclo de vida completo. 2.2.1 Evolución Histórica de las Metodologías Tabla de la evolución histórica de las metodologías de desarrollo de software Año Metodología 1968 Conceptos sobre la programación estructurada de DIJKSTRA 1974 Técnicas de programación estructurada de WARNIER y JACKSON 1975 Primeros conceptos sobre diseño estructurado de MYERS y YOURDON 1977 Primeros conceptos sobre análisis estructurado GANE y SARSON 1978 Análisis estructurado: DEMARCO y WEINBERG Nace MERISE 1981 SSADM (versión inicial) Information Engineering (versión inicial) 1985 Análisis y Diseño estructurado para sistemas de tiempo real de WARD y MELLOR 1986 SSADM Versión 3 1987 Análisis y Diseño estructurado para sistemas de tiempo real de HATLEY y PIRHBAY 1989 METRICA (versión inicial) 1990 SSADM Versión 4 1993 METRICA Versión 2 1995 METRICA Versión 2.1 1998 MÉTRICA Versión 3 2.2.2 Clasificación de las Metodologías Metodologías de IS Tipo de sistema Formalidad Estructuradas Enfoque Top-Down – De visión general a nivel de abstracción más sencilla Orientadas a Procesos Orientadas a Datos -Estructuras Jerárquicos - Estructuras No jerárquicos Mixtas Gestión No Formal Orientadas a Objetos Tiempo Real formal a) Metodología Convencional: • Años 50 • Desarrollo artesanal y ausencia de Metodología Enfocado en la Tarea de Programación • Inconvenientes o Los resultados finales son impredecibles o No hay forma de controlar lo que está sucediendo en el Proyecto o Los cambios organizativos afectan negativamente al proceso de desarrollo b) Metodología estructurada Años 60 (entorno académico), mediados 70 (industria) Fases del Análisis Estructurado Método de DeMarco Método de Gane y Sarson Metodología de Yourdon/Constantine 1. Construir el modelo físico actual (DFD físico actual) 1. Construir el modelo lógico actual (DFD lógico actual) 1. Realizar losDFD del sistema 2. Construir el modelo lógico actual (DFD lógico actual) 3. Crear un conjunto de modelos físicos alternativos 4. Estimar los costes y tiempos de cada opción 2. Construir el modelo del nuevo sistema: elaborar una especificación estructurada y construir un modelo lógico de datos en tercera forma normal que exprese el contenido de los almacenes de datos. 2. Realizar el diagrama de estructuras 5. Seleccionar un modelo 3. Seleccionar un modelo lógico 3. Evaluar el diseño 4. Crear el nuevo modelo físico del Sistema 6. Empaquetar la especificación 5. Empaquetar la especificación 4. Preparar el diseño para la implantación Evolución Análisis Estructurado Previamente: Descripción narrativa requisitos Especificaciones: La metodología era de tipo: i. Monolíticas ii. Redundantes iii. Ambiguas iv. Imposibles de Mantener Se obtienen Especificaciones Funcionales: Gráficas Particionadas Mínimamente redundantes Metodologías Orientadas a Procesos Entrada Proceso Salida – Se apoyan en técnicas gráficas para obtener: Modelo gráfico, particionando, descendente y jerárquico los procesos del sistema y de los datos utilizados por éstos. Componentes: Diagrama de Flujo de Datos. Diccionario de Datos. Especificaciones de Procesos. Metodologías Orientadas a Datos No Jerárquicos Entrada Proceso Salida Metodología “Ingeniería de la Información” Planificación: Construir una arquitectura de la Información y una estrategia que soporte los objetivos de la organización. Análisis: Comprender las áreas del negocio y determinar los requisitos del sistema. Concepto de Análisis Es un conjunto o disposición de procedimientos o programas relacionados de manera que juntos forman una sola unidad. Un conjunto de hechos, principios y reglas clasificadas y dispuestas de manera ordenada mostrando un plan lógico en la unión de las partes. Un método, plan o procedimiento de clasificación para hacer algo. También es un conjunto o arreglo de elementos para realizar un objetivo predefinido en el procesamiento de la Información. Esto se lleva a cabo teniendo en cuenta ciertos principios: Debe presentarse y entenderse el dominio de la información de un problema. Defina las funciones que debe realizar el Software. Represente el comportamiento del software a consecuencias de acontecimientos externos. Divida en forma jerárquica los modelos que representan la información, funciones y comportamiento. El proceso debe partir desde la información esencial hasta el detalle de la implementación. La función del Análisis puede ser dar soporte a las actividades de un negocio, o desarrollar un producto que pueda venderse para generar beneficios. Para conseguir este objetivo, un Sistema basado en computadoras hace uso de seis elementos fundamentales: I. Software: Son programas de computadora, con estructuras de datos y su documentación que hacen efectiva la logística metodología o controles de requerimientos del Programa. II. Hardware: Son dispositivos electrónicos y electromecánicos, que proporcionan capacidad de cálculos y funciones rápidas, exactas y efectivas (Computadoras, Censores, maquinarias, bombas, lectores, etc.), que proporcionan una función externa dentro de los Sistemas. III. Personal: Son los operadores o usuarios directos de las herramientas del Sistema. IV. Base de Datos: Es una colección de información organizada y enlazada al Sistema a las que se accede por medio de los Manejadores de Bases de Datos. V. Documentación: Es el conjunto de manuales, formularios, y otra información descriptiva que detalla o da instrucciones sobre el empleo y operación del Programa. VI. Procedimientos: Pasos que definen el uso específico de cada uno de los elementos o componentes del Sistema y las reglas de su manejo y mantenimiento. Objetivos del Análisis de Sistemas Identificar las necesidades del Cliente. Evaluar que conceptos tiene el cliente del sistema para establecer su viabilidad. Realizar un Análisis Técnico y económico. Asignar funciones al Hardware, Software, personal, base de datos, y otros elementos del Sistema. Establecer las restricciones de presupuestos y planificación temporal. Crear una definición del sistema que forme el fundamento de todo el trabajo de Ingeniería. Para lograr estos objetivos se requiere tener un gran conocimiento y dominio del Hardware y el Software, así como de la Ingeniería humana (Manejo y Administración de personal), y administración de base de datos. Dentro de la etapa de análisis de sistemas se divide en cuatro subfunciones: 1. Identificación de Necesidades s el primer paso del análisis del sistema, en este proceso en Analista se lgunos autores suelen llamar a esta parte ¨ Análisis de Requisitos ¨ y lo I. Reconocimiento del problema. ón. ntes de su reunión con el analista, el cliente prepara un documento E reúne con el cliente y/o usuario (un representante institucional, departamental o cliente particular), e identifican las metas globales, se analizan las perspectivas del cliente, sus necesidades y requerimientos, sobre la planificación temporal y presupuestal, líneas de mercadeo y otros puntos que puedan ayudar a la identificación y desarrollo del proyecto. A dividen en cinco partes: II. Evaluación y Síntesis. III. Modelado. IV. Especificaci V. Revisión. A conceptual del proyecto, aunque es recomendable que este se elabore durante la comunicación Cliente – analista, ya que de hacerlo el cliente solo de todas maneras tendría que ser modificado, durante la identificación de las necesidades. 2. Estudio de Viabilidad Muchas veces cuando se emprende el desarrollo de un proyecto de Sistemas los recursos y el tiempo no son realistas para su materialización sin tener pérdidas económicas y frustración profesional. La viabilidad y el análisis de riesgos están relacionados de muchas maneras, si el riesgo del proyecto es alto, la viabilidad de producir software de calidad se reduce, sin embargo se deben tomar en cuenta cinco áreas principales de interés: I. Viabilidad económica. Una evaluación de los costos de desarrollo, comparados con los ingresos netos o beneficios obtenidos del producto o Sistema desarrollado. II. Viabilidad Técnica. Un estudio de funciones, rendimiento y restricciones que puedan afectar la realización de un sistema aceptable. III. Viabilidad Legal. Es determinar cualquier posibilidad de infracción, violación o responsabilidad legal en que se podría incurrir al desarrollar el Sistema. Alternativas. Una evaluación de los enfoques alternativos del desarrollo del producto o Sistema. El estudio de la viabilidad puede documentarse como un informe aparte para la alta gerencia. IV. Análisis Económico. El análisis económico incluye lo se llama, el análisis de costos – beneficios, significa una valoración de la inversión económica comparado con los beneficios que se obtendrán en la comercialización y utilidad del producto o sistema. Muchas veces en el desarrollo de Sistemas de Computación estos son intangibles y resulta un poco dificultoso evaluarlo, esto varía de acuerdo a las características del Sistema. El análisis de costos – beneficios es una fase muy importante de ella depende la posibilidad de desarrollo del Proyecto. V. En el Análisis Técnico: El analista evalúa los principios técnicos del Sistema y al mismo tiempo recoge información adicional sobre el rendimiento, fiabilidad, características de mantenimiento y productividad. Los resultados obtenidos del análisis técnico son la base para determinar sobre si continuar o abandonar el proyecto, si hay riesgos de que no funcione, no tenga el rendimiento deseado, o si las piezas no encajan perfectamente unas con otras. 3. Modelado de la arquitectura del Sistema Cuando queremos dar a entendermejor lo que vamos a construir en el caso de un Software, nuestro modelo debe tomar una forma diferente, deben representar todas las funciones y subfunciones de un Sistema. Los modelos se concentran en lo que debe hacer el sistema no en como lo hace, estos modelos pueden incluir notación gráfica, información y comportamiento del Sistema. Todos los Sistemas basados en computadoras pueden modelarse como transformación de la información empleando una arquitectura del tipo entrada y salida. 4. Especificaciones del Sistema Es un Documento que sirve como fundamento para la Ingeniería Hardware, software, Base de datos, e ingeniería Humana. Describe la función y rendimiento de un Sistema basado en computadoras y las dificultades que estarán presentes durante su desarrollo. Las Especificaciones de los requisitos del software se producen en la terminación de la tarea del análisis. Diseño: Establecer el comportamiento del sistema deseado por el usuario y que sea alcanzable por la tecnología. Diseño Estructurado de sistemas de información Mayor nivel abstracción (independencia del lenguaje programación) Elemento básico de diseño: Módulo Modularidad. Medidas de Calidad de Programas El Diseño de Sistemas se define el proceso de aplicar ciertas técnicas y principios con el propósito de definir un dispositivo, un proceso o un Sistema, con suficientes detalles como para permitir su interpretación y realización física. La etapa del Diseño del Sistema encierra cuatro etapas: I. El diseño de los datos: Trasforma el modelo de dominio de la información, creado durante el análisis, en las estructuras de datos necesarios para implementar el Software. II. El Diseño Arquitectónico: Define la relación entre cada uno de los elementos estructurales del programa. III. El Diseño de la Interfaz: Describe como se comunica el Software consigo mismo, con los sistemas que operan junto con el y con los operadores y usuarios que lo emplean. IV. El Diseño de procedimientos: Transforma elementos estructurales de la arquitectura del programa. La importancia del Diseño del Software se puede definir en una sola palabra Calidad, dentro del diseño es donde se fomenta la calidad del Proyecto. El Diseño es la única manera de materializar con precisión los requerimientos del cliente. El Diseño del Software es un proceso y un modelado a la vez. El proceso de Diseño es un conjunto de pasos repetitivos que permiten al diseñador describir todos los aspectos del Sistema a construir. A lo largo del diseño se evalúa la calidad del desarrollo del proyecto con un conjunto de revisiones técnicas: El diseño debe implementar todos los requisitos explícitos contenidos en el modelo de análisis y debe acumular todos los requisitos implícitos que desea el cliente. Debe ser una guía que puedan leer y entender los que construyan el código y los que prueban y mantienen el Software. El Diseño debe proporcionar una completa idea de lo que es el Software, enfocando los dominios de datos, funcional y comportamiento desde el punto de vista de la Implementación. Para evaluar la calidad de una presentación del diseño, se deben establecer criterios técnicos para un buen diseño como son: Un diseño debe presentar una organización jerárquica que haga un uso inteligente del control entre los componentes del software. El diseño debe ser modular, es decir, se debe hacer una partición lógica del Software en elementos que realicen funciones y subfunciones especificas. Un diseño debe contener abstracciones de datos y procedimientos. Debe producir módulos que presenten características de funcionamiento independiente. Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los módulos y el entorno exterior. Debe producir un diseño usando un método que pudiera repetirse según la información obtenida durante el análisis de requisitos de Software. Estos criterios no se consiguen por casualidad, el proceso de Diseño del Software exige buena calidad a través de la aplicación de principios fundamentales de Diseño, Metodología Sistemática y una revisión exhaustiva. Cuando se va a diseñar un Sistema de Computadoras se debe tener presente que el proceso de un diseño incluye, concebir y planear algo en la mente, así como hacer un dibujo o modelo o croquis. Otras actividades que deben tomarse en cuenta y que nos muestran las tareas a ejecutar: I. Diseño de la Salida En este caso salida se refiere a los resultados e informaciones generadas por el Sistema. Para la mayoría de los usuarios la salida es la única razón para el desarrollo de un Sistema y la base de evaluación de su utilidad. Sin embargo cuando se realiza un sistema, como analistas deben realizar lo siguiente: Determinar que información presentar. Decidir si la información será presentada en forma visual, verbal o impresora y seleccionar el medio de salida. • Disponer de la presentación de la información en un formato aceptable. • Decidir como distribuir la salida entre los posibles destinatarios. II. Diseño de Archivos Incluye decisiones con respecto a la naturaleza y contenido del propio archivo, como si se fuera a emplear para guardar detalles de las transacciones, datos históricos, o información de referencia. Entre las decisiones que se toman durante el diseño de archivos, se encuentran las siguientes: Los datos que deben incluirse en el formato de registros contenidos en el archivo. La longitud de cada registro, con base en las características de los datos que contenga. La secuencia a disposición de los registros dentro del archivo (La estructura de almacenamiento que puede ser secuencial, indexada o relativa). No todos los sistemas requieren del diseño de todos los archivos, ya que la mayoría de ellos pueden utilizar los del viejo Sistema y solo tenga que enlazarse el nuevo Sistema al Archivo maestro donde se encuentran los registros. III. Diseño de Interacciones con la Base de Datos La mayoría de los sistemas de información ya sean implantado en sistemas de cómputos grandes o pequeños, utilizan una base de datos que pueden abarcar varias aplicaciones, por esta razón estos sistemas utilizan u administrador de base de datos, en este caso el diseñador no construye la base de datos sino que consulta a su administrador para ponerse de acuerdo en el uso de esta en el sistema. Herramientas para el Diseño de Sistemas Apoyan el proceso de formular las características que el sistema debe tener para satisfacer los requerimientos detectados durante las actividades del análisis: I. Herramientas de especificación. Apoyan el proceso de formular las características que debe tener una aplicación, tales como entradas, salidas, procesamiento y especificaciones de control. Muchas incluyen herramientas para crear especificaciones de datos. II. Herramientas para presentación. Se utilizan para describir la posición de datos, mensajes y encabezados sobre las pantallas de las terminales, reportes y otros medios de entrada y salida. III. Herramientas para el desarrollo de Sistemas. Estas herramientas nos ayudan como analistas a trasladar diseños en aplicaciones funcionales. IV. Herramientas para Ingeniería de Software. Apoyan el Proceso de formular diseños de Software, incluyendo procedimientos y controles, así como la documentación correspondiente. V. Generadores de códigos. Producen el código fuente y las aplicaciones a partir de especificaciones funcionales bien articuladas. VI. Herramientas para pruebas. Apoyan la fase de la evaluación de un Sistema o de partes del mismo contra las especificaciones. Incluyen facilidades para examinar la correcta operación del Sistema así como el grado de perfección alcanzado en comparación con las expectativas. La revolución del procesamiento de datos de manera computarizada, junto con laspracticas de Diseño sofisticadas están cambiando de forma dramática la manera en que se trasladan las especificaciones de Diseño d Sistemas de Información funcionales. Construcción: Desarrollar sistemas que cumplan los tres niveles anteriores. Programación Estructurada: Facilitar comprensión de Programas Normas para la aplicación de estructuras de datos y de control c) Metodologías Orientadas a Objetos Desarrollo Orientado a Objetos: • Años 80 • Trata procesos y datos de forma conjunta. • Principios: o Abstracción o Ocultación Información o Modularidad Las técnicas estructuradas han influido en estas metodologías. Cambio en los principios de las metodologías estructuradas: Estructurado: Examinar el sistema desde las funciones y tareas, Orientado a Objetos: Modelado del Sistema examinando el dominio del problema como un conjunto de objetos que interactúan entre sí. Objetos: Encapsulan Funciones y Datos. Enfoques: “Revolucionarios” o “Puros” Orientado a Objetos se entiende como un cambio profundo de las metodologías estructuradas que se ven como obsoletas. OOD (Booch), CRC/RDD (Wirfs-Brock). “Sintetistas” o “Evolutivos” Análisis y Diseño Estructurado se consideran como la base para el desarrollo Orientado a Objetos. La OMT y UML sientan las bases y reglas para modelar sistemas. Metodologías de Análisis y Diseño (OOA/OOD) Booch (OOAD) Jacobson (OOSE) Martin-Odell (OOIE) Rumbaugh (OMT) Shlaer/Mellor (OOSA) Wirfs- Brock (RDD) CASEIode (CCM) TASKON (OORAM) Coad- Yourdon- Nicola (OOA,OOD) NE University (Demeter) Object Engin. (Fresco) Hewlett- Packard (Fusion) Graham (SOMA) Texas Instruments (IE\O) ICL (MTD) ParcPlace (OBA) Olivetti (OGROUP) Winter (OSMOSYS) LBMS (SE/OT) CCTA (SSADM) Lloyds Register (Z++) Ivar Jacobson (OOSE) es el autor de los casos de uso y afirma que su metodología soporta el ciclo total de vida del software orientado-a-objetos. OMT se combina con OOSE en los casos de uso. La técnica de modelado de objetos (OMT) es considerado ampliamente como uno de los sistemas de análisis orientados a objetos más completos que se han publicado hasta el momento. El OMT tiene la intención de ser un método tanto para el análisis como para el diseño, pero aún cuando contiene un método bastante completo para el análisis, solamente tiende a dar indicaciones prácticas para el diseño. El OMT abarca más temas que la mayoría de los demás métodos, pero sigue siendo incompleto en algunos aspectos y resulta muy complejo aprender y utilizar sus notaciones. OMT está dividida en tres etapas: análisis, sistema de diseño, y diseño de objetos, además provee técnicas para describir el dominio del problema en tres perspectivas diferentes; la estructura estática de objetos y clases y el comportamiento dinámico de objetos, y la estructura funcional. Booch describe un número de propiedades generales para una buena estructura de un sistema complejo. El problema es modelado en dos perspectivas diferentes, una estructura lógica del sistema y una estructura física del sistema. La metodología de diseño propuesta por Booch es una de las mejor desarrolladas y contiene una noción de estructura mucho más general. El método original de Booch comienza por un análisis de flujo de datos, que se utiliza entonces como ayuda para identificar objetos, buscando tanto objetos concretos como objetos abstractos en el espacio del problema, que se encontraran a partir de las burbujas y almacenes de datos en el diagrama de flujo de datos (DFD). Existe otra metodología propuesta por Yourdon que presenta una notación menos torpe que la propuesta por Booch o algunas otras (Mellor) de las aproximaciones de diseño orientado a objetos. Tipos de Diagramas Símbolos De Casos de Uso Análisis de requisitos. Describen la funcionalidad externa del sistema. Pueden escribirse en lenguaje natural. Se llaman también escenarios. Ejemplo: Diagramas Estáticos De Clases: Muestra la estructura estática de las clases (combina clases y relaciones) De Objetos Muestra objetos concretos con la misma notación Nombres de objetos subrayados Elementos Objetivos Objetos Diagrama de clases Clases Herencia (Generalización) Agregación (Delegación) Diccionario de datos Relaciones Asociativas Símbolo de una clase Tipos de relaciones Relación de de asociación Diagramas Dinámicos Preparar escenarios detallados a partir de casos de uso Normales Con problemas Identificar sucesos Construir diagramas de estados (uno/clase) Comprobar consistencia (iterar) Añadir método Entre los Diagramas dinámicos podemos encontrar a los: De Estado De Secuencia De Colaboración De Actividad Elementos Objetivos Eventos Estados de un objeto Escenarios Diagramas de estados Traza de eventos Concurrencia Sincronización Acciones Diagrama de colaboración Descripción de un estado Estado: Suena la alarma Descripción: Suena la alarma del reloj para indicar que ha llegado la hora predeterminada Se llega a él después de la secuencia: set alarm (objetivo) cualquier secuencia que no incluya clear alarm hora actual = objetivo Condición: alarm=on && objetivo<=hora actual <= objetivo+20s && no se ha pulsado ningún botón desde objetivo Acepta: button pushed(any) pasa al estado normal hora actual=objetivo+20 pasa a normal Diagrama de estados Autómata finito determinista Se aplica a una sola clase o al sistema Las entradas son mensajes Un mensaje recibido es un evento Diagrama de secuencia También llamados trazas de eventos El tiempo crece verticalmente hacia abajo Diagramas de Actividad Llamados también Diagramas de Flujo de Actividad Estados de Acción (se sale de ellos cuando termina su acción, sin esperar un evento) Diagramas de Componentes Estructura física del código Componentes fuente, objeto o ejecutables Pueden formar paquetes Diagramas de Despliegue (deployment) Muestra la arquitectura física del hardware y del software del sistema. Nodos: ordenadores y dispositivos. Conexiones de diversos tipos. Metodologías Sistemas Tiempo Real •Sistemas que controlan un ambiente recibiendo datos, procesándolos y devolviéndolos con la suficiente rapidez como para influir en dicho ambiente en ese momento. •Características: • Gestión de procesos concurrentes. • Manejo de interrupciones y prioridades. • Comunicación y sincronización entre tareas. • Respuesta oportuna ante eventos externos. • Datos continuos o discretos. •Metodologías: Ampliaciones a la notación del análisis estructurado Metodologías OO para Sistemas Tiempo Real TSPiSM A causa de la alta complejidad y amplitud en los productos de software, los sistemas en su mayoría son desarrollados por equipos de trabajo. Esta cualidad se ha hecho indispensable para cualquier desarrollador de software. Trabajar en equipo no es tan fácil como podría suponerse, se necesita un método para saber como trabajar unidos, para definir el trabajo que debe hacerse y como plantear una estrategia para realizarlo. Para poder mantener una buena relación de equipo es necesario tener metas comunes, estar de acuerdo en el plan de acción y tener un liderazgo apropiado. Se necesita que cada miembro del equipo entienda las virtudes y carencias de los otros miembros, que los apoye y que esté dispuesto a pedir ayuda cuando se necesite. Trabajar en equipo no es una habilidad que se adquiere al nacer, se adquiere a través de la práctica y se mejora díaa día con la experiencia. TSPiSM es la propuesta de Watts Humphrey para el desarrollo de sistemas de software en equipo. Es una versión reducida de TSPSM (Team Software Process-Equipo de Proceso de Software, www.sei.cmu.edu/tsp) para la educación y capacitación de los ingenieros de software. Fue desarrollado por el SEI (Software Engineering Institute- Instituto de Ingeniería de Software ) como proceso industrial que contempla desarrollos de hasta 20 ingenieros de software trabajando para proyectos grandes. TSPi contiene los mismos principios que TSP. Principios y Objetivos de TSPi El objetivo principal de TSPi es completar con éxito a través de varios ciclos de desarrollo incremental un pequeño proyecto de software con calidad, siguiendo fielmente el proceso y manteniendo durante cada ciclo de desarrollo un equipo eficiente y colaborativo. TSPi SM es una guía paso a paso para lograr un proyecto de software en equipo. Enseña como aplicar conocimientos de ingeniería de software y procesos en un ambiente de trabajo en equipo. Define claramente los roles que cada miembro debe desempeñar, así como sus responsabilidades. Nos muestra qué debemos hacer, cómo hacerlo y cuándo hacerlo. Permite practicar y desarrollar una buena actitud de equipo de trabajo. Para lograr un aprendizaje óptimo de TSPi, se debe de tener experiencia en programación y un conocimiento previo de PSPSM (Personal Software Process). PSP es un método práctico, que fue diseñado para guiar a los ingenieros de software en la realización de un buen trabajo. Enseña como aplicar métodos avanzados en cada una de las tareas diarias. Adicionalmente proporciona métodos para realizar estimados y planeación que puedan ser comparados con el trabajo realizado. Es recomendable trabajar con equipos capacitados en PSP, pues permite un seguimiento más simple y rápido de los procesos de TSPi y se cuenta con una experiencia a detalle de la forma de realizar la planeación de un proyecto. TSPi proporciona un balance entre proceso, producto y equipo de trabajo. Sus fases y tareas están bien definidas. Contiene todas las formas, guiones y estándares necesarios para poder registrar y seguir el proceso. Nos enseña los procedimientos para iniciar un proyecto, los pasos para poder guiarlo y nos muestra como analizar y reportar los datos obtenidos durante todo el proyecto. TSPi está basado en cuatro principios básicos: I. Aprender es más efectivo cuando se sigue un proceso definido y se tiene una rápida retroalimentación. II. La productividad del equipo es resultado de metas específicas, un ambiente de trabajo de apoyo y con capacidad de entrenamiento y liderazgo. III. Cuando se ha luchado con problemas del proyecto y se ha tenido una guía que nos aporte soluciones efectivas uno aprecia los beneficios de una buena práctica de desarrollo. IV. La instrucción es más efectiva cuando se construye sobre un cuerpo de conocimiento previo. Estrategia de TSPi Existen muchas formas para lograr un diseño de un proceso, en TSP existen siete decisiones de diseño principales, que en conjunto constituyen su estrategia. A continuación se describen brevemente: i. Proveer un esquema simple que se construya basándose en PSP. El entrenamiento previo en PSP facilita el aprendizaje de TSPi, muchas formas y guiones son muy similares y la disciplina adquirida es esencial al aplicarse en TSPi. ii. Desarrollar productos en varios ciclos. En un curso completo de TSPi se pueden completar alrededor de dos o tres ciclos de desarrollo de un proyecto. Cada uno incluye requerimientos completos, planeación, diseño, implementación y pruebas. En el primer ciclo el objetivo es tener un producto que sirva de base para los siguientes ciclos. En cada ciclo pueden hacerse cambios de roles, un ajuste en el proceso o tomarse la decisión de aumentar la disciplina en la calidad. Después de completar dos o más ciclos ya se sabe con precisión que es lo que está funcionando mejor dentro del equipo. iii. Establecer medidas estándar para rendimiento y calidad. Sin medidas objetivas de un proyecto no podemos hablar de alta calidad en el trabajo. PSP proporciona las medidas que se necesitan para evaluar la calidad del trabajo y enseña como poder interpretarlas y aplicarlas. TSPi enfatiza las metas y métricas que permitan visualizar los beneficios de las medidas de calidad evaluando la planeación y los datos registrados del proyecto. iv. Proporcionar medidas precisas para el equipo y estudiantes. Con los datos registrados en TSPi, se hace transparente el desempeño personal de cada miembro del equipo. Todos los integrantes del equipo conocen como han trabajado los demás y esto ayuda a mejorar el esfuerzo del equipo en general. v. Utilizar evaluaciones de equipo y rol. La idea de realizar evaluaciones es estar mejor informados acerca del rendimiento de otros y del equipo en su totalidad. Si los miembros del equipo están dispuestos a hacer evaluaciones honestas el instructor o gerente podrá estar mejor informado. TSPi cuenta con evaluaciones para el equipo y los roles desempeñados, la idea es evaluar como fue el desempeño de cada rol y como impactó en el rendimiento del equipo. Requiere de disciplina en los procesos Los ingenieros de software tradicionalmente no tienen un trabajo personal disciplinado, no existen modelos de rol que seguir. TSPi requiere de alta disciplina en el seguimiento de las tareas dentro del proceso. Provee una guía sobre los problemas de los equipos de trabajo. Hasta en el mejor proyecto es común tener problemas al trabajar en equipo, es sorprendente cuando no se presentan desacuerdos con los compañeros. Cada miembro del equipo tiene su propia personalidad y esto puede generar problemas en el equipo, sin embrago con una buena guía y apoyo se puede llegar a ser un miembro efectivo en el equipo. Estructura y formato de TSPi La figura siguiente muestra los múltiples ciclos de desarrollo que pueden planearse para obtener un producto final. Cada ciclo contiene las mismas fases y siempre tiene como base al ciclo de desarrollo que lo antecede a excepción del primer ciclo. Estrategia de desarrollo en ciclos El mejor plan es iniciar con una versión pequeña pero viable del producto. Para decidir el tamaño y contenido de cada ciclo deben tenerse en cuenta los siguientes aspectos: 1. Cada ciclo debe producir una versión que pueda ser probada y que represente un subconjunto del producto final. 2. Cada ciclo debe ser lo suficientemente pequeño como para desarrollar una versión del producto en el tiempo disponible. 3. Los productos de cada ciclo, al combinarse, deben conformar el producto de software final deseado. Fases del Ciclo TSPi Las fases en las que se divide el proceso de TSPi se describen brevemente a continuación: Lanzamiento Durante esta fase, y siendo el primer ciclo, se realiza una revisión de los objetivos del curso. Se da una descripción de la estructura general de TSPi y del contenido. Se forman equipos de estudiantes o ingenieros y a cada uno se le asigna un rol. Finalmente se describen las necesidades del cliente. En los ciclos subsecuentes pueden realizarse intercambios de roles de acuerdo al desempeño o gustos personales. Estrategia En esta etapa se crea un diseño conceptual del producto, se establece la estrategia de desarrollo decidiendo que se producirá en cada ciclo. Se realizan estimaciones iniciales acerca del tamaño y el esfuerzo requerido. Se identifican los riesgos. Planeación En la planeación se hace un estimado del tamaño de cada parte a ser creada. Se identifican todas las tareas a ser realizadas y se asignan a cada miembro del equipo. Se propone además un plan de calidad que fije parámetros a ser alcanzados. Con un plan bien detallado se puede trabajar mas eficientemente, pues se conoce con precisión lo que se tiene que hacer y en que momento
Compartir