EXAMEN GENERAL PRIVADO FACULTA DE INGENIERIA EN SISTEMAS
AREA DE ANALISIS Y DISEO GUATEMALA 9 DE AGOSTO DEL 2014
EDGAR WELINTO GOMEZ CLAUDIO 0904-07-07380
Serie I: Desarrolle los siguientes temas. Valor 5 puntos cada Tema. Total 25 puntos.
1. Herramientas Case: Las herramientas CASE acrnimo en ingls Computer Aided Software Engineering, su traduccin es Ingeniera de Software Asistida por Computadora, son diversas aplicaciones informticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en trminos de tiempo y de dinero. Una herramienta CASE suele incluir: Un diccionario de datos para almacenar informacin sobre los datos de la aplicacin de bases de datos. Herramientas de diseo para dar apoyo al anlisis de datos. Herramientas que permitan desarrollar el modelo de datos corporativo, as como los esquemas conceptual y lgico. Herramientas para desarrollar los prototipos de las aplicaciones.
El uso de las herramientas CASE puede mejorar la productividad en el desarrollo de una aplicacin de bases de datos.
Adems la tecnologa CASE supone la automatizacin del desarrollo del software, contribuyendo a mejorar la calidad y la productividad en el desarrollo de sistemas de informacin y se plantean los siguientes objetivos:
Permitir la aplicacin prctica de metodologas estructuradas, las cuales al ser realizadas con una herramienta se consigue agilizar el trabajo. Facilitar la realizacin de prototipos y el desarrollo conjunto de aplicaciones. Simplificar el mantenimiento de los programas. Mejorar y estandarizar la documentacin. Aumentar la portabilidad de las aplicaciones. Facilitar la reutilizacin de componentes software. Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la utilizacin de grficos.
Automatizar: El desarrollo del software La documentacin La generacin del cdigo El chequeo de errores La gestin del proyecto
Permitir: La reutilizacin del software La portabilidad del software La estandarizacin de la documentacin
2. UML: Lenguaje Unificado de Modelado, sus siglas UML o LUM significan lenguaje de modelado de sistemas de software, el ms utilizado en la actualidad; est respaldado por el OMG (Object Management Group). Es un lenguaje grfico para visualizar, especificar, construir y documentar un sistema, UML ofrece un estndar para describir un "plano" del sistema, incluyendo aspectos conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programacin, esquemas de bases de datos, UML realiza las especificaciones o para describir los mtodos o describir los procesos. Utilizado para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir. Se puede aplicar en el desarrollo de software gran variedad de formas para dar soporte a una metodologa de desarrollo de software, UML no puede compararse con la programacin estructurada, no es programacin, solo se diagrama la realidad de una utilizacin en un requerimiento, la programacin orientada a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML slo para lenguajes orientados a objetos. UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las entidades representadas.
Estructura Diagrama de clases Diagrama de objetos Diagrama de componentes Diagrama de estructura compuesta Diagrama de paquetes Diagrama de despliegue Comportamiento Diagrama de casos de uso Diagrama de actividades Diagrama de estado Interaccin Diagrama de secuencia Diagrama de colaboracin Diagrama de tiempo Diagrama de interaccin
3. Programacin Orientada a Objetos: La programacin orientada a objetos es una extensin natural de la actual tecnologa de programacin, y representa un enfoque nuevo y distinto al tradicional, incluye otro programa, el diseo de un programa orientado a objetos tiene lugar durante la fase de diseo del ciclo de vida de desarrollo de software El diseo de un programa OO es nico en el sentido de que se organiza en funcin de los objetos que manipular de hecho, probablemente la parte ms difcil de la creacin de software orientado a objetos es identificar las necesarias y el modo en que interactan entre s designada mente, no hay reglas fciles para determinar las clases de un programa dado. La identificacin de clases puede ser tanto arte como ciencia el proceso es algo impreciso, y por esta causa han surgido numerosos mtodos que proporcionan reglas para la identificacin de clases y las relaciones que existen entre ellas. Es que un sistema de software que ve como una secuencia se transforma en un conjunto de objetos. El trmino objeto tiene el mismo significado que un nombre o una frase nominal, Es una persona, un lugar o una cosa Ejemplos de objetos del inundo real son: persona, tabla, computadora, avin, vuelo de avin, diccionario, ciudad o la capa de ozono La mayora de los objetos del mundo real tienen atributos (caractersticas que los describen) Por ejemplo, los atributos de una persona incluyen el nombre, la edad, el sexo, la fecha de nacimiento, la direccin, etc. Los objetos tienen atributos, y ellos, a su vez, comportamiento, el comportamiento es el conjunto de cosas que puede hacer un objeto; por ejemplo, una persona puede estudiar, caminar, trabajar, etc. En sntesis, se puede decir que los objetos conocen cosas y hace cosas las cosas que un objeto conoce son sus atributos; las cosas que puede hacer un objeto son su comportamiento. Los principios en que se apoyan las tecnologas orientadas a objetos son: Objetos como instancia de una clase Mtodos Mensajes
4. Tecnologas de Desarrollo Web: Conjunto de tecnologas de software del lado del servidor y del cliente que involucran una combinacin de procesos de base de datos con el uso de un navegador en Internet a fin de realizar determinadas tareas o mostrar informacin. Tradicionalmente un software departamental o incluso un ambicioso proyecto corporativo de gran envergadura es desarrollado, es decir, usando lenguajes ya sea compilados(C, C++, Delphi), semicompilados(.NET, Mono, Java), o interpretados (Python) para crear tanto la funcionalidad como toda la interfaz de los usuarios, pero cabe perfectamente un desarrollo orientado a web para dichos propsitos, siendo ms homogneo y multiplataforma, y dependiendo de las tecnologas utilizadas, ms rpido y robusto tanto para disear, implementar y probar, como para su uso una vez terminado, funcionalmente, el desarrollador web, que es quien realiza esta labor, normalmente slo se preocupa por el funcionamiento del software, es tarea del diseador web preocuparse del aspecto final(layout) de la pgina y del webmaster el integrar ambas partes. En ocasiones el webmaster tambin se encarga de actualizar los contenidos de la pgina. Los lenguajes de programacin ms usados en desarrollo web son principalmente: ASP.NET, PHP y JSP, aunque an hay quienes usan ASP, Macromedia ColdFusion y Perl. El sistema de gestin de base de datos ms popular en desarrollo web es MySQL, seguida por Oracle, SQL Server y PostgreSQL, tambin puede usarse perfectamente Firebird o HSQL.
5. Reutilizacin de Software: Es el proceso de creacin de sistemas de software a partir de un software existente, en lugar de tener que redisear desde el principio. Podemos definir como el empleo de elementos de software u otros de nivel superior, creados en desarrollo anteriores, para de este modo reducir los tiempos y simplificar el desarrollo del software, mejorando la calidad y reduciendo su costo. Existen elementos claves que intervienen en la reutilizacin: Especificaciones de requerimientos previamente concebidas Diseos previamente definidos (Estructuras de datos, algoritmos, etc.) Cdigo probado y depurado con anterioridad Planes y casos de prueba previamente utilizados Personal cualificado (aprovechamiento de la experiencia de los ingenieros de un proyecto a otro) Paquetes de software de propsito general Tambin se pueden definir algunos componentes y categoras de recurso de software: 1. Componentes ya desarrollados: El software existente se puede adquirir de una tercera parte o provenir de uno desarrollado internamente para un proyecto anterior. 2. Componentes ya experimentados: Especificaciones, diseos, cdigo o datos de prueba existentes desarrollados para proyectos anteriores que son similares al software que se va a construir para el proyecto actual. Los miembros del equipo de software actual ya han tenido la experiencia completa en el rea de la aplicacin representada para estos componentes. Las modificaciones, por tanto, requeridas para componentes de total experiencia, tendrn un riesgo relativamente bajo. 3. Componentes con experiencia parcial: Especificaciones, diseos, cdigo o datos de prueba existentes desarrollados para proyectos anteriores que se relacionan con el software que se va a construir para el proyecto actual, pero que requerirn una modificacin sustancial. Los miembros del equipo de software actual han limitado su experiencia slo al rea de aplicacin representada por estos componentes. Las modificaciones, por tanto, requeridas para componentes de experiencia parcial tendrn bastante grado de riesgo. 4. Componentes nuevos: Los componentes de software que el equipo de software debe construir especficamente para las necesidades del proyecto actual.
Serie II: Utilizando su criterio y conocimientos responda lo siguiente. Valor 5 puntos cada pregunta. Total 25 Puntos.
1. Como Ingeniero en Sistemas, usted es contratado por una empresa transnacional para asegurar la calidad de un producto de software que han subcontratado a un tercero (como Auditor del software). Establezca la forma en que usted, como asesor de la empresa que contrata el desarrollo de este sistema, puede hacer ste trabajo (indique la metodologa que usted seguir y qu puntos considera crticos para su objetivo).
Como Ingeniero en Sistemas planteara una programacin la cual consistira en aplicar mtricas para la evaluacin del avance, y tener el control adecuado del sistema, tomando como referencia los factores ms importantes dentro del proyecto que determinan la calidad del mismo, entre los principales a medir:
Calidad del producto Evaluacin de la documentacin Evaluar la productividad de los desarrolladores Evaluar beneficios Evaluar riesgos Evaluar productividad Flexibilidad Eficiencia Integridad de la informacin Operacionalidad Seguridad Recuperacin y manejo de backups Restructuraciones Requeridas Facilidad de interaccin Aplicara metodologas de calidad de desarrollo del software, existentes tales como la GCC o la EDPRAI, El GCC se encarga de determinar las Especificaciones de los Requerimientos de Calidad del usuario, y la EDPRAI son los elementos de direccin del programa de revisiones y anlisis de la informacin, y las cuales se basan e incluyen anlisis estadstico para establecer la calidad en cada proceso. En Conjunto se realizara un estudio relativo de los impactos entre factores de calidad y errores de desarrollo.
2. Explique la diferencia entre una base de datos relacional y una orientada a objetos. Puede usted disear un sistema orientado a objetos sobre una base de datos relacional? Cmo lo hara? Explique cmo implementan las bases de datos comerciales esto. La base de datos modelo relacional define las tuplas como instancias especficas de una entidad con un identificador nico llave primaria y las propiedades de esa entidad. En cambio, en el caso de las bases de datos orientadas a objetos, se almacenan los objetos que se definen como un objeto est modelando una situacin o entidad del mundo real al tener una identificacin nica, propiedades especficas a s misma, y la habilidad de trabajar en conjunto con objetos tanto de la misma o distinta especificacin. Las tuplas del modelo relacional carecen de esa habilidad de trabajar con otras tuplas ya que carecen de comportamiento. Adems, el modelo objeto es capaz de representar situaciones del mundo real, en cambio el modelo relacional slo trabaja con entidades, por lo tanto, si se quisiera modelar situaciones habra que adaptarlas, convirtindolas en entidades perdiendo por el camino parte de la informacin, o creando un modelo extremadamente complejo. El modelo relacional utiliza el concepto de Clave Primaria para identificar a sus entidades de una manera nica. Esta clave es un valor que puede introducir y cambiar el usuario del sistema gestor con la nica restriccin de que no se repita con ninguna otra clave primaria que contenga la tabla en ese momento, aunque tambin puede asignarla el propio sistema gestor. En cambio, el modelo objeto define el OID que proveer el sistema y le otorgar al objeto su identidad nica. No puede ser cambiado ni introducido por el usuario. Al desaparecer el objeto, el sistema elimina ese OID pero no vuelve a asignrselo nunca a ningn objeto nuevo. Los modelos relacionales utilizan el lenguaje estndar de consultas SQL, que es declarativo lo que hace que las consultas no vayan a la forma de encontrar el dato sino que sea el sistema gestor el que realice esta tarea. Adems, el hecho de ser estndar permite que las aplicaciones lo utilicen sin importar el lenguaje de programacin en el que estn escritas. Por contra carga mucho el procesamiento y hace que haya que tratar los datos para convertirlos a objetos en el lenguaje de programacin utilizado. El modelo objeto difiere en este sentido bastante. Utiliza varios sistemas diferentes dependiendo de la implementacin que se est utilizando. Hay sistemas, directamente imbuidos en el lenguaje de programacin que hacen esta recuperacin de los datos transparente al programador, trabajando con los objetos persistentes como si fueran objetos de memoria normales. Esta visin es muy eficiente e intuitiva pero al no tener un lenguaje especfico para trabajar con las consultas no controla de forma alguna este acceso siendo vulnerable a errores del programador. Otra forma de implementar las consultas ha sido el estndar OQL (Object Query Language) definido por el Object Data Management Group (ODMG) que busca ser un estndar declarativo para consultas a bases de datos orientadas a objetos. Su uso sera anlogo al de SQL pero, debido a su complejidad an no hay ninguna implementacin completa del estndar, slo se han llegado a realizar subconjuntos como JDOQL y EJB QL.
Si es posible realizar un sistema orientado a objetos sobre una base de datos relacional el cual es conocido como el mapeo objeto-relacional es una tcnica para convertir datos entre el sistema de tipos utilizando un lenguaje de programacin orientada a objetos con una base de datos relacional, esto se hace utilizando un motor de persistencia esto lo que nos permite es que realiza una base de datos orientada a objetos virtual sobre la base de datos relacional esto nos permite el uso de las caractersticas propias de la orientacin a objetos.
Las bases de datos comerciales integran esto con el objetivo de disear una arquitectura de bases de datos que pudiera soportar tipos de datos definidos por el usuario o, en general, datos de relativa complejidad con las mismas garantas que los modelos relacionales de base de datos comerciales ofrecan para los datos "simples". Se cre un proyecto el cual inicio en los 80 llamado Postgres el cual integra el modelo orientado a objetos de base de datos y el cual es desarrollado por dos compaas Illustra y UniSQL.
3. Compare la metodologa clsica del ciclo de vida de software con el desarrollo por prototipos, y con el desarrollo iterativo. Qu ventajas desventajas tiene cada una respecto de la otra? cul utilizara usted en su prctica profesional y por qu?
El Modelo de prototipos: Pertenece a los modelos de desarrollo evolutivo. Este desarrollo a diferencia de los otros se debe construir en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos. El diseo rpido se centra en una representacin de aquellos aspectos del software que sern visibles para el cliente o el usuario final. Este diseo conduce a la construccin de un prototipo, el cual es evaluado por el cliente para una retroalimentacin; gracias a sta se refinan los requisitos del software que se desarrollar. La interaccin ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.
Etapas Plan rpido Modelado, diseo rpido Construccin del Prototipo Desarrollo, entrega y retroalimentacin Comunicacin Entrega del desarrollo final Este modelo es til cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida. Tambin ofrece un mejor enfoque cuando el responsable del desarrollo del software est inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debera tomar la interaccin humano- mquina. Desarrollo iterativo se enfoca en planificar un proyecto en distintos bloques temporales que se le denominan iteracin. En una iteracin se repite un determinado proceso de trabajo que brinda un resultado ms completo para un producto final, de forma de que quien lo utilice reciba beneficios de este proyecto de manera creciente. Para llegar a lograr esto, cada requerimiento debe tener un completo desarrollo en una nica iteracin que debe de incluir pruebas y una documentacin para que el equipo pueda cumplir con todos los objetivos que sean necesarios y est listo para ser dado al cliente. As se evita tener riesgosas actividades en el proyecto finalizado. Lo que se busca es que en cada iteracin los componentes logren evolucionar el producto dependiendo de los completados de las iteraciones antecesoras, agregando ms opciones de requisitos y logrando as un mejoramiento mucho ms completo.
Y el modelo del ciclo de vida se basa en etapas las culaes se listan y debe cumplirse la etapa anterior al modelo adems pueden existir sub-etapas tambin define la coordinacin entre ellas, y su enlace y realimentacin.
En la prctica profesional utilizara el que ms se adapte a lo que necesite realizar ya que tendra que hacer un estudio cual se adapta a el proyecto que est pensando realizar ya que cada una tiene sus ventajas y son aprovechables dependiendo al proyecto que se adapten y as realizar un software eficiente y en el mejor aprovechamiento de los recursos.
4. Usted es un experto en sistemas de cmputo, quien ha sido contratado por la Secretara de Asuntos Administrativos de Seguridad (SAAS) (antiguamente conocida como Estado Mayor Presidencial) para elaborar un mecanismo de seguridad que identifique a un individuo por la retina. Debido al grado elevado de secretividad, no se permite comprar ninguna solucin ya desarrollada. Aplique conceptos de inteligencia artificial para resolver el planteamiento de la SAAS. Indique cul solucin de inteligencia artificial utilizar y por qu. Indique todos los detalles de la construccin de dicha solucin, identificando el mecanismo como un sistema Aplica en este problema el uso de un PLC? Explique su respuesta.
Un controlador lgico programable est diseado para mltiples seales de entrada y de salida, rangos de temperatura ampliados, inmunidad al ruido elctrico y resistencia a la vibracin y al impacto. Los programas para el control de funcionamiento de la mquina se suelen almacenar en bateras copia de seguridad o en memorias no voltiles. Un PLC es un ejemplo de un sistema de tiempo real, donde los resultados de salida deben ser producidos en respuesta a las condiciones de entrada dentro de un tiempo limitado, de lo contrario no producir el resultado deseado.
Teniendo en cuenta que es un PLC ya ingresara a ver la informacin que se manipulara para la seguridad que va a tener el mecanismo desarrollado en la cual tendra que tomar en cuenta, la identificacin biomtrica mediante retina la cual para obtenerla me basara en la utilizacin del patrn de los vasos sanguneos contenidos en la retina, ya que este patrn de la distribucin de los vasos sanguneos que emanan del nervio ptico y aparecen dispersos en la retina es, indudablemente una fuente de informacin biomtrica altamente distintiva ya que no existen dos patrones iguales, incluso en el caso de hermanos gemelos idnticos, es estable a lo largo de la vida de una persona e independiente de factores genticos.
Se realizara un proceso y captura de la imagen tomando en cuenta: Extraccin de los perfiles de intensidad de los vasos sanguneos que cubren la retina. Determinacin del rea de estudio. Localizacin de los vasos sanguneos. Generacin del patrn de retina.
5. Para una empresa, es mejor desarrollar software personalizado o adquirir un sistema enlatado. Justifique su respuesta.
Software personalizado ya que presenta ventajas tales como:
Pensado a la medida. Reportes necesarios y requeridos. Se basa exclusivamente en sus procesos que realiza. La empresa es duea del sistema, pudiendo modificarlo cuando quiera. No tiene costos asociados de licencia, ya que la empresa es duea del software. Al ser un desarrollo de software a medida, el sistema se adapta 100% a la forma de realizar las actividades, lo que incrementa la productividad. La capacitacin es ms simple, ya que la empresa particip activamente en el desarrollo del software, por lo tanto su uso resulta natural.