You are on page 1of 10

UNIVERSIDAD MARIANO GALVEZ DE GUATEMALA

CENTRO UNIVERSITARIO DE HUEHUETENANGO


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.

You might also like