Você está na página 1de 52

INSTITUTO TECNOLGICO DE ACAPULCO

INGENIERIA EN SISTEMAS COMPUTACIONALES


MATERIA:
Tecnologa de dispositivos mviles.

Practica:
DRIVE TEST en Network Signal Info Pro

Profesor: Ing. Jos Francisco Carbajal Violante.

Alumno: Erik Nahim Estrada Real.


N. Control: 12320721.

HORARIO: 10:00 AM 11:00 AM

Acapulco, Gro; a 06 de Diciembre del 2017


Periodo: Agosto/Diciembre del 2017

Desarrollo de una aplicacin que controle la informacin de software y hardware de


los equipos de cmputo del ITA, incluyendo la insercin de los requerimientos
recopilados, en un gestor de base de datos..........................................................................5
Introduccin...............................................................................................................................5
Antecedentes.............................................................................................................................6
Planteamiento del problema...................................................................................................9
Justificacin.............................................................................................................................10
Objetivo......................................................................................................................................11
Marco Terico...........................................................................................................................12
Aplicacin software............................................................................................................12
Terminologa.....................................................................................................................12
Clasificacin.....................................................................................................................12
Lenguaje de programacin...............................................................................................13
Elementos de programacin........................................................................................14
Variables y vectores......................................................................................................14
Condicionales.................................................................................................................15
Bucles..............................................................................................................................15
Funciones.......................................................................................................................15
Sintaxis............................................................................................................................16
Semntica esttica........................................................................................................16
Implementacin...............................................................................................................17
Tcnica...............................................................................................................................18
Paradigma......................................................................................................................19
Lenguajes de programacin ms usados.................................................................19
Lenguaje de programacin JAVA....................................................................................21
Filosofa.............................................................................................................................22
Orientado a objetos.......................................................................................................22
Entornos de funcionamiento........................................................................................23
Dispositivos mviles y sistemas embebidos..............................................................23
Navegador web..............................................................................................................23
Sistemas de servidor.....................................................................................................23
En aplicaciones de escritorio.......................................................................................24
Plataformas soportadas................................................................................................24
Programacin...................................................................................................................24
Expresiones....................................................................................................................24
Lenguaje de programacin C# (C SHARP)....................................................................25
Tipos de datos..................................................................................................................26
Constantes........................................................................................................................27
Operadores.......................................................................................................................28
Compiladores...................................................................................................................29
Metas del diseo del lenguaje......................................................................................29
Lenguaje de programacin Visual Basic.......................................................................30
Caractersticas.................................................................................................................30
Entorno de desarrollo........................................................................................................31
Objetos y eventos............................................................................................................32
Ventajas y Desventajas..................................................................................................34
Sistema Gestor de Base de Datos (SGBD)....................................................................35
Componentes...................................................................................................................35
Lenguajes de modelacin.............................................................................................36
Estructura jerrquica.....................................................................................................36
Estructura en Red..........................................................................................................37
Estructura Relacional....................................................................................................38
Estructura multidimensional.........................................................................................38
Estructura Orientada a Objetos...................................................................................39
Arquitectura......................................................................................................................39
Alcance, factibilidad y oportunidad del proyecto...........................................................41
Alternativas de solucin........................................................................................................42
Modelo Espiral Tpico (6 regiones).................................................................................42
Ciclos o Iteraciones........................................................................................................43
Ventajas.............................................................................................................................43
Desventajas......................................................................................................................43
Inconvenientes.................................................................................................................43
Proceso Unificado Racional (RUP).................................................................................44
Ventajas y recomendaciones de uso..........................................................................45
Modelo en cascada.............................................................................................................46
Anlisis de requisitos del software.............................................................................47
Diseo del sistema..........................................................................................................47
Diseo del programa......................................................................................................47
Codificacin......................................................................................................................48
Pruebas..............................................................................................................................48
Verificacin.......................................................................................................................48
Mantenimiento..................................................................................................................48
Ventajas.............................................................................................................................48
Desventajas......................................................................................................................48
Mtodo por objetivo................................................................................................................49
.....................................................................................................................................................51
Cronograma de proyecto.......................................................................................................51
Bibliografa................................................................................................................................52
Desarrollo de una aplicacin que controle la informacin
de software y hardware de los equipos de cmputo del
ITA, incluyendo la insercin de los requerimientos
recopilados, en un gestor de base de datos.

Introduccin.
El siguiente anteproyecto informa sobre el problema que se localiz en el
protocolo actual que se lleva a cabo para realizar la auditoria de los requerimientos
de software y hardware de todos los equipos de cmputo de las distintas reas del
Instituto Tecnolgico de Acapulco. Se observ, que al emplear poca tecnologa en
esta tarea, se est volviendo cada vez ms ineficaz al llevar a cabo esta actividad,
tambin al no tener al personal capacitado para que un solo sujeto pueda realizar
la auditoria por su cuenta, manejando de una manera clara la informacin y
gestionndola profesionalmente en una base de datos. Comnmente esta tarea es
realizada mnimo por 3 individuos diferentes por cada rea que se realiza la
auditoria, el primero realiza la obtencin de la informacin requerida de una sola
rea especfica, el segundo lleva a cabo la recopilacin y el ordenamiento de la
informacin obtenida previamente y el tercero se encarga de gestionar la
informacin en una base de datos para llevar un mejor control de la informacin.
Con estos datos analizados, se emplearan distintas estrategias para la solucin de
este problema, desde las posibilidades de la realizacin de distintos diagramas de
flujo que permitan reducir el tiempo y el protocolo actual, desarrollar el diseo de
una aplicacin que permita extraer la informacin requerida desde un solo clic y
que realice de manera automtica el diseo de una base de datos para gestionar
la informacin de manera correcta en una base de datos profesional.
Para llegar a esta solucin se debern investigar los antecedentes de la actividad
realizada actualmente y que queremos mejorar para solucionar el problema, se
deber justificar la solucin propuesta para que avale que la idea ser factible al
ser empleada, se determinaran distintos objetivos de proyecto para que la solucin
sea alcanzable, se realizara una investigacin a fondo de nuestras posibles
herramientas que ayudaran a realizar la solucin del proyecto, desde conceptos
importantes que es importante saber su significado, hasta distintos lenguajes de
programacin y distintos SGBDs para tener como herramientas a utilizar cuando
se realice el desarrollo de la aplicacin.
Antecedentes.
La auditora ha sido, en el mundo una prctica cada vez ms extendida y de
importancia creciente en los ms diversos aspectos de la vida social de negocios y
gubernamental, (Mantilla, 1989) encontramos de la referencia anteriormente
anotada:
- Como prctica es tan antigua y tan diversa como lo son las distintas
civilizaciones.
- Ha ido evolucionando al mismo tiempo que la humanidad se ha
transformado.
- De esta manera tambin son diversas las profesiones que se ocupan de
prestar los servicios de auditora, como los abogados, mdicos, ingenieros
industriales, encontramos que sobresalen los contadores por su dominio
amplio del mercado y porque las distintas regulaciones nacionales les han
dado buena parte de exclusividad para prestar los servicios relacionados
con la auditoria.
La Auditora es un proceso sistemtico para obtener y evaluar de manera objetiva
las evidencias relacionadas con informes sobre actividades econmicas y otros
acontecimientos relacionados. El fin del proceso consiste en determinar el grado
de correspondencia del contenido informativo con las evidencias que le dieron
origen, as como determinar si dichos informes se han elaborado observando
principios establecidos para el caso. Obtener y evaluar evidencia objetiva significa
examinar las bases para las declaraciones (representaciones) y evaluar los
resultados juiciosamente sin prejuicios o desviaciones a favor o en contra de la
persona (o entidad) que hace las declaraciones.
La auditora en sistemas de la informacin es la revisin y la evaluacin de los
controles, sistemas, procedimientos de informtica; de los equipos de cmputo, su
utilizacin, eficiencia y seguridad, de la organizacin que participan en el
procesamiento de la informacin, a fin de que por medio del sealamiento de
cursos alternativos se logre una utilizacin ms eficiente y segura de la
informacin que servir para una adecuada toma de decisiones.
El estudio de los sistemas de informacin se origin como una sub-disciplina de
las ciencias de la computacin en un intento por entender y racionalizar la
administracin de la tecnologa dentro de las organizaciones. Los sistemas de
informacin han madurado hasta convertirse en un campo de estudios superiores
dentro de la administracin. Adicionalmente, cada da se enfatiza ms como un
rea importante dentro de la investigacin en los estudios de enseado en las
universidades y escuelas de negocios ms grandes en todo el mundo.
En la actualidad, la Informacin y la tecnologa de la Informacin forman parte de
los cinco recursos con los que los ejecutivos crean y/o modelan una organizacin,
junto con el personal, dinero, material y maquinaria. Muchas compaas han
creado la posicin de Director de Informacin (CIO, por sus siglas en ingls Chief
Information Officer) quien asiste al comit ejecutivo de la compaa, junto con el
Director Ejecutivo, el Director Financiero, el Director de Operaciones y el Director
de Tecnologa (es comn que el Director de Informacin acte como Director de
Tecnologa y viceversa). Por eso todos los Sistemas de Informacin deben de ser
catalogados en base a su funcin. Ojo con la edicin para el trabajo del profesor
de la panamericana.

Figura 1. Informacin de los distintos tipos de auditoria.

Siempre ha existido la preocupacin por parte de las organizaciones por optimizar


todos los recursos con que cuenta la entidad, sin embargo por lo que respecta a la
tecnologa de informtica, es decir, software, hardware, sistemas de informacin,
investigacin tecnolgica, redes locales, bases de datos, ingeniera de software,
telecomunicaciones, etc. esta representa una herramienta estratgica que
representa rentabilidad y ventaja competitiva frente a sus similares en el mercado,
en el mbito de los sistemas de informacin y tecnologa un alto porcentaje de las
empresas tiene problemas en el manejo y control, tanto de los datos como de los
elementos que almacena, procesa y distribuye.
El propsito de la revisin de la auditora en informtica, es el verificar que los
recursos, es decir, informacin, energa, dinero, equipo, personal, programas de
cmputo y materiales son adecuadamente coordinados y vigilados por la gerencia
o por quien ellos designen.
Durante aos se ha detectado el despilfarro de los recursos o uso inadecuado de
los mismos, especialmente en informtica, se ha mostrado inters por llegar por
llegar a la meta sin importar el costo y los problemas de productividad.
S bien la auditora se ha llevado a cabo desde, que el hombre hizo su aparicin,
esta se llevaba de manera emprica, ha sido de gran ayuda para los pueblos
conquistadores, ya que tenan que conocer y dar fe de los tributos que les rendan
los pueblos conquistados, en Mxico los oidores de la corona espaola, que con
el paso del tiempo se transformaran en auditores, que vigilaban el pago de quinto
real a los reyes de Espaa.
La auditora en informtica es ms reciente, se tiene como antecedente ms
cercano a los Estados Unidos de Amrica.
En los aos cuarenta se empezaron a dar resultados relevantes en el campo de la
computacin, con sistemas de apoyos para estrategias militares, sin embargo, la
seguridad y el control solo se limitaba a dar custodia fsica a los equipos y a
permitir el uso de los mismos solo a personal altamente calificado.
Con el paso de los aos la informtica y todos los elementos tecnolgicos, que la
rodean han ido creando necesidades, en cada sector social y se han vuelto un
requerimiento permanente para el logro de soluciones.
Las reas a auditar en donde se puede realizar la auditora en informtica, puede
ser:
- A toda la Entidad.
- A un departamento. A un rea
- A una funcin
- A una subfuncin.
Y se pueden aplicar los siguientes tipos de auditora:
- Auditora al ciclo de vida del desarrollo de un sistema
- Auditora a un sistema en operacin
- Auditora a controles generales ( gestin)
- Auditora a la administracin de la funcin de informtica. Auditora a
microcomputadoras aisladas
- Auditora a redes.
Planteamiento del problema.
Los protocolos que se manejan hoy en da para llevar acabo la auditoria de los
equipos de cmputo, tienen como objetivo el control y la disponibilidad de las
computadoras, as mismo, gestionar los problemas que se manejan da a da en el
Instituto Tecnolgico De Acapulco. El proceso para la obtencin de informacin y
datos en general, pueden ser optimizables para una mejor eficiencia con respecto
al tiempo y as, tambin recopilar informacin para la insercin en un sistema, el
cual tendr como objeto la correcta administracin de dicha informacin. Sin
embargo, la realizacin de esta tarea en el instituto es ineficiente, ya que se
desprecian importantes recursos.
Durante los ltimos aos, pese a las innovaciones tecnolgicas, realizar la tarea
de recopilacin de informacin de software y hardware de los equipos de cmputo
del ITA es deficiente, de lo cual se ha visto arduamente afectado en el tiempo de
realizacin del control de cada rea de cmputo que el instituto resguarda.
Hoy en da esta tarea se lleva a cabo mediante un software de extraccin de
informacin en los equipos de cmputo, estos programas carecen de estructura,
de obtencin clara de informacin, complejidad de depuracin de la informacin,
problemas de compatibilidad y en ocasiones problemas de funcionamiento, entre
otras. Adems al obtener la informacin requerida, se debe desarrollar un cdigo
para la base de datos predeterminada y as manejar correctamente la informacin.
La evolucin tecnolgica permite proveer herramientas para generar un software
que permita llevar a cabo esta actividad especializndose en detectar y resolver
los fallos previos de los antecedentes tecnolgicos de software y as obtener la
correcta gestin administrativa de la informacin que se solicite.
Justificacin
Los motivos por los cuales se lleva a cabo la creacin de este proyecto, son por la
necesidad de crear una aplicacin portable que ahorre el nmero de pasos del
protocolo actual que se efecta para llevar a cabo el inventario de especificaciones
de software y hardware de los equipos de cmputo, a la vez, reducir el tiempo que
consume dicha actividad al ser ejecutada por solo una persona que este
capacitada para llevar a cabo el sencillo uso de la aplicacin ya mencionada.
Esta aplicacin software fue diseada para ser portable o bien, instalada
directamente en un dispositivo USB, ya que es un medio factible y comn para ser
ejecutada fcil y sencillamente en los equipos de cmputo.
Este proyecto dicta la reduccin de personal para efectuar el inventario de
especificaciones, por el motivo de que la aplicacin software efectuara la
extraccin de informacin, la recopilacin de la misma y la produccin automtica
del cdigo de un SGBD que generara la base de datos con toda la informacin
extrada.
As mismo desarrollando una aplicacin administrativa sencilla con un uso bsico
pero con una funcin que realiza una gran tarea, que sea disponible y compatible
para las distintas versiones de distinto que tienen una mayor utilidad actualmente.
La aplicacin en la institucin de este software beneficiara la obtencin de
requisitos ya que reducir el nmero de personal que efecta esta actividad,
reduciendo los costos en cuanto a salarios cada que se lleve a cabo la auditoria de
informacin de computadoras. Esta actividad es efectuada cada intervalo de
tiempo, por lo que la reduccin de personal para llevarla a cabo es muy
importante, una sola persona se encarga de la auditoria de todos los equipos de
computo del plantel, reduciendo tiempo en los procesos establecidos actualmente,
en la reduccin de costos de cada software que se utilizaba y la correcta gestin
de la informacin sin la necesidad de un personal especializado en el rea.
Objetivo
1.- General

Desarrollar una aplicacin que controle la informacin de software y


hardware de los equipos de cmputo del ITA, incluyendo la insercin de los
requerimientos recopilados, en un gestor de base de datos.

2.- Especifico

Establecer una presentacin de datos clara y ordenada para su absoluta


comprensin.
Simplificar el proceso que lleva a cabo el actual protocolo de inventario en
un solo movimiento.
Reducir el tiempo en la recopilacin de datos de software y hardware de los
equipos de cmputo del Instituto Tecnolgico de Acapulco.

Marco Terico
Aplicacin software
Es importante conocer lo que es una aplicacin software, ya que es lo que se
desarrollara de a principio a fin en este proyecto.
Una aplicacin, programa o aplicacin software, es un tipo de software de
computadora, diseado para realizar un grupo de funciones, tareas o actividades
coordinadas para el beneficio del usuario. El nombre colectivo de software de
solicitud hace referencia colectivamente a todas las aplicaciones.
Terminologa
Una aplicacin, es un programa informtico especfico para facilitar las actividades
que se realizan da a da. Por lo tanto, una aplicacin difiere de un sistema
operativo, una utilidad y una herramienta de programacin. Existen diferentes tipos
de aplicaciones dependiendo de la actividad para la que es diseada, una
aplicacin puede manipular textos, nmeros, grficos, o una combinacin de estos
elementos. Algunos paquetes de aplicaciones se centran en una sola tarea, como
procesamiento de textos.
Clasificacin.
Las aplicaciones o software de aplicacin, con forme se van desarrollando a travs
del tiempo, ha surgido una distincin importantes entre ellas, escritas en diferentes
lenguajes de programacin, tener diferentes estructuras o siendo dirigidas a
diferentes reas de actividades de trabajo.
- Suit de aplicaciones.- Consta de mltiples aplicaciones agrupadas. Por lo
general, tienen funciones, caractersticas, e interfaces de usuario
relacionadas, y pueden interactuar entre ellos, por ejemplo como abrir
archivos ajenos a este.
- Software empresarial.- Aborda las necedades de los procesos y flujos de
datos de una organizacin completa, mediante recursos empresariales,
sistemas de gestin de relaciones con el cliente y software de gestin de la
cadena de suministro.
Software departamental.- Es un subtipo de software empresarial con
un enfoque en organizaciones ms pequeas o grupos dentro de
una organizacin.
- Software de infraestructura empresarial.- proporciona capacidades
comunes necesarias para admitir sistemas de software empresariales. (Los
ejemplos incluyen bases de datos, servidores de correo electrnico y
sistemas para administrar redes y seguridad).
- Software para trabajadores de la informacin.- Permite a los usuarios crear
y administrar informacin, muchas veces para proyectos individuales dentro
de un departamento, en contraste con la administracin empresarial. Los
ejemplos incluyen administracin del tiempo, administracin de recursos,
herramientas analticas, colaborativas y de documentacin.
- Acceso de contenido.- se utiliza principalmente para acceder al contenido
sin editar, pero puede incluir software que permita la edicin de contenido.
Dicho software aborda las necesidades de individuos y grupos para
consumir entretenimiento digital y contenido digital publicado.
- Software educativo.- est relacionado con el software de acceso al
contenido, pero tiene el contenido o caractersticas adaptadas para su uso
por parte de educadores o estudiantes. Por ejemplo, puede entregar
evaluaciones (pruebas), rastrear el progreso a travs del material o incluir
capacidades de colaboracin.
- Software de simulacin.- como su nombre lo indica, simula sistemas fsicos
o abstractos para fines de investigacin, capacitacin o entretenimiento.
- Software de desarrollo.- genera medios impresos y electrnicos para que
otros los consumen, la mayora de las veces en un entorno comercial o
educativo.
- Software de ingeniera de productos.- se utiliza para desarrollar productos
de hardware y software. Esto incluye diseo asistido por computadora
(CAD), ingeniera asistida por computadora (CAE), edicin de lenguaje de
programacin y herramientas de compilacin, entornos de desarrollo
integrados e interfaces de programador de aplicaciones.
Lenguaje de programacin.
Para llevar a cabo el desarrollo de la aplicacin software de obtencin de
requisitos, es necesario definir, investigar y redactar lo que es un lenguaje de
programacin y en que consiste.

Figura 2. Distinto lenguajes de programacin.

Un lenguaje de programacin es un lenguaje formal que es diseado para realizar


distintos procesos que pueden ser llevados y ejecutados mediante un equipo de
cmputo.
Actualmente son usados para desarrollar programas que controlan el
comportamiento fsico y lgico de una mquina, para expresar algoritmos de
precisin o como modo de comunicacin humana.
El lenguaje de programacin se conforma por un conjunto de smbolos y reglas
sintcticas y semnticas que definen su estructura y el significado de sus
elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura,
se compila y se mantiene el cdigo fuente de un programa informtica, a todo esto
se le llama programacin. Tambin la palabra programacin se define como el
proceso de creacin de un programa de computadora, mediante la aplicacin de
procedimientos lgicos, a travs de los siguientes pasos:
- El desarrollo lgico del programa para resolver un problema en particular.
- Escritura de la lgica del programa empleando un lenguaje de
programacin especfico (codificacin del programa).
- Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de
mquina.
- Prueba y depuracin del programa.
- Desarrollo de la documentacin.
Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje
especfico conocido como cdigo mquina, el cual la mquina comprende
fcilmente, pero que lo hace excesivamente complicado para las personas. De
hecho slo consiste en cadenas extensas de nmeros 0 y 1.
Para facilitar el trabajo, los primeros operadores de computadoras decidieron
hacer un traductor para reemplazar los 0 y 1 por palabras o abstraccin de
palabras y letras provenientes del ingls; ste se conoce como lenguaje
ensamblador.
Elementos de programacin.

Variables y vectores
Las variables son ttulos asignados a espacios en memoria para almacenar datos
especficos. Estos son contenedores de datos y por ello se difieren segn el tipo
de datos que son capaces de almacenar. En la mayora de lenguajes de
programacin e requiere especificar un tipo de variable concreto para guardar un
dato especifico.
Existen variables compuestas llamadas vectores. Un vector no es ms que un
conjunto de bytes consecutivas en memoria del mismo tipo guardadas dentro de
una variable contenedor. En la figura 3se mostrara un listado con los tipos de
variables y vectores ms comunes:
Tipo de dato Descripcin
Char Esta variable es de tipo carcter, es decir, una letra, un signo o un
numero
Int Contiene un nmero entero, es decir, un nmero.
Float Contiene un nmero decimal.
String Contienen cadenas de texto, o lo que es lo mismo, es un vector
con varias variables del tipo char.
Boolean Solo pueden contener un cero y un uno
Figura 3. Variables y Vectores comunes.

Condicionales
En los distintos lenguajes de programacin existen sentencias condicionales que
son estructuras del cdigo que nos indican que, para que cierta parte del
programa pueda ser ejecutado correctamente, deben cumplirse ciertas reglas de
programacin. Estas condicionantes por lo general solo se ejecutan una vez a lo
largo del programa. Las condiciones ms conocidas y empleadas en programacin
son:
- If: Indica una condicin para que se ejecute una parte del programa.
- Else if: Siempre va precedido de un "If" e indica una condicin para que se
ejecute una parte del programa siempre que no cumpla la condicin del if
previo y si se cumpla con la que el "else if" especifique.
- Else: Siempre precedido de "If" y en ocasiones de "Else If". Indica que debe
ejecutarse cuando no se cumplan las condiciones previas.
Bucles
Los bucles son parientes cercanos de los condicionantes, pero ejecutan
constantemente un cdigo mientras se cumpla una determinada condicin. Los
ms frecuentes son:
- For: Ejecuta un cdigo mientras una variable se encuentre entre 2
determinados parmetros.
- While: Ejecuta un cdigo mientras que se cumpla la condicin que solicita.
Hay que decir que a pesar de que existan distintos tipos de bucles, todos son
capaces de realizar exactamente las mismas funciones. El empleo de uno u otro
depende, por lo general, del gusto del programador.
Funciones
Las funciones se crearon para evitar tener que repetir constantemente fragmentos
de cdigo. Una funcin podra considerarse como una variable que encierra
cdigo dentro de s. Por lo tanto cuando accedemos a dicha variable (la funcin)
en realidad lo que estamos haciendo es ordenar al programa que ejecute un
determinado cdigo predefinido anteriormente.

Todos los lenguajes de programacin tienen algunos elementos de formacin


primitivos para la descripcin de los datos y de los procesos o transformaciones
aplicadas a estos datos (tal como la suma de dos nmeros o la seleccin de un
elemento que forma parte de una coleccin). Estos elementos primitivos son
definidos por reglas sintcticas y semnticas que describen su estructura y
significado respectivamente.
Sintaxis
A la forma visible de un lenguaje de programacin se le conoce como sintaxis. La
mayora de los lenguajes de programacin son puramente textuales, es decir,
utilizan secuencias de texto que incluyen palabras, nmeros y puntuacin, de
manera similar a los lenguajes naturales escritos. Por otra parte, hay algunos
lenguajes de programacin que son ms grficos en su naturaleza, utilizando
relaciones visuales entre smbolos para especificar un programa.
La sintaxis de un lenguaje de programacin describe las combinaciones posibles
de los smbolos que forman un programa sintcticamente correcto. El significado
que se le da a una combinacin de smbolos es manejado por su semntica (ya
sea formal o como parte del cdigo duro de la referencia de implementacin).
Dado que la mayora de los lenguajes son textuales, este artculo trata de la
sintaxis textual.
Semntica esttica
La semntica esttica define las restricciones sobre la estructura de los textos
vlidos que resulta imposible o muy difcil expresar mediante formalismos
sintcticos estndar. Para los lenguajes compilados, la semntica esttica
bsicamente incluye las reglas semnticas que se pueden verificar en el momento
de compilar. Por ejemplo el chequeo de que cada identificador sea declarado
antes de ser usado (en lenguajes que requieren tales declaraciones) o que las
etiquetas en cada brazo de una estructura case sean distintas. Muchas
restricciones importantes de este tipo, como la validacin de que los
identificadores sean usados en los contextos apropiados (por ejemplo no sumar un
entero al nombre de una funcin), o que las llamadas a subrutinas tengan el
nmero y tipo de parmetros adecuado, puede ser implementadas definindolas
como reglas en una lgica conocida como sistema de tipos. Otras formas de
anlisis estticos, como los anlisis de flujo de datos, tambin pueden ser parte de
la semntica esttica. Otros lenguajes de programacin como Java y C# tienen un
anlisis definido de asignaciones, una forma de anlisis de flujo de datos, como
parte de su semntica esttica.
Sistema de tipos
Un sistema de tipos define la manera en la cual un lenguaje de programacin
clasifica los valores y expresiones en tipos, cmo pueden ser manipulados dichos
tipos y cmo interactan. El objetivo de un sistema de tipos es verificar y
normalmente poner en vigor un cierto nivel de exactitud en programas escritos en
el lenguaje en cuestin, detectando ciertas operaciones invlidas. Cualquier
sistema de tipo decidible tiene sus ventajas y desventajas: mientras por un lado
rechaza muchos programas incorrectos, tambin prohbe algunos programas
correctos aunque poco comunes. Para poder minimizar esta desventaja, algunos
lenguajes incluyen lagunas de tipos, conversiones explcitas no verificadas que
pueden ser usadas por el programador para permitir explcitamente una operacin
normalmente no permitida entre diferentes tipos. En la mayora de los lenguajes
con tipos, el sistema de tipos es usado solamente para verificar los tipos de los
programas, pero varios lenguajes, generalmente funcionales, llevan a cabo lo que
se conoce como inferencia de tipos, que le quita al programador la tarea de
especificar los tipos. Al diseo y estudio formal de los sistemas de tipos se le
conoce como teora de tipos.
Implementacin
La implementacin de un lenguaje es la que provee una manera de que se ejecute
un programa para una determinada combinacin de software y hardware. Existen
bsicamente dos maneras de implementar un lenguaje: compilacin e
interpretacin.
- Compilacin: es el proceso que traduce un programa escrito en un lenguaje
de programacin a otro lenguaje de programacin, generando un programa
equivalente que la mquina ser capaz interpretar. Los programas
traductores que pueden realizar esta operacin se llaman compiladores.
stos, como los programas ensambladores avanzados, pueden generar
muchas lneas de cdigo de mquina por cada proposicin del programa
fuente.
- Interpretacin: es una asignacin de significados a las frmulas bien
formadas de un lenguaje formal. Como los lenguajes formales pueden
definirse en trminos puramente sintcticos, sus frmulas bien formadas
pueden no ser ms que cadenas de smbolos sin ningn significado. Una
interpretacin otorga significado a esas frmulas.
Se puede tambin utilizar una alternativa para traducir lenguajes de alto nivel. En
lugar de traducir el programa fuente y grabar en forma permanente el cdigo
objeto que se produce durante la compilacin para utilizarlo en una ejecucin
futura, el programador slo carga el programa fuente en la computadora junto con
los datos que se van a procesar. A continuacin, un programa intrprete,
almacenado en el sistema operativo del disco, o incluido de manera permanente
dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje
de mquina conforme vaya siendo necesario durante el procesamiento de los
datos. El cdigo objeto no se graba para utilizarlo posteriormente.
La siguiente vez que se utilice una instruccin, se la deber interpretar otra vez y
traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de
los pasos de un ciclo o bucle, cada instruccin del bucle tendr que volver a ser
interpretada en cada ejecucin repetida del ciclo, lo cual hace que el programa sea
ms lento en tiempo de ejecucin (porque se va revisando el cdigo en tiempo de
ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar
compilando a cada momento el cdigo completo). El intrprete elimina la
necesidad de realizar una compilacin despus de cada modificacin del
programa cuando se quiere agregar funciones o corregir errores; pero es obvio
que un programa objeto compilado con antelacin deber ejecutarse con mucha
mayor rapidez que uno que se debe interpretar a cada paso durante una ejecucin
del cdigo.
Tcnica
Para escribir programas que proporcionen los mejores resultados, cabe tener en
cuenta una serie de detalles.
Correccin. Un programa es correcto si hace lo que debe hacer tal y como se
estableci en las fases previas a su desarrollo. Para determinar si un programa
hace lo que debe, es muy importante especificar claramente qu debe hacer el
programa antes de desarrollarlo y, una vez acabado, compararlo con lo que
realmente hace.
Claridad. Es muy importante que el programa sea lo ms claro y legible posible,
para facilitar as su desarrollo y posterior mantenimiento. Al elaborar un programa
se debe intentar que su estructura sea sencilla y coherente, as como cuidar el
estilo en la edicin; de esta forma se ve facilitado el trabajo del programador, tanto
en la fase de creacin como en las fases posteriores de correccin de errores,
ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por
otro programador, con lo cual la claridad es an ms necesaria para que otros
programadores puedan continuar el trabajo fcilmente. Algunos programadores
llegan incluso a utilizar Arte ASCII para delimitar secciones de cdigo. Otros, por
diversin o para impedir un anlisis cmodo a otros programadores, recurren al
uso de cdigo ofuscado.
Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible
los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se
suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido
creado y a la cantidad de memoria que necesita, pero hay otros recursos que
tambin pueden ser de consideracin al obtener la eficiencia de un programa,
dependiendo de su naturaleza (espacio en disco que utiliza, trfico de red que
genera, etc.).
Portabilidad. Un programa es portable cuando tiene la capacidad de poder
ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en
la que se elabor. La portabilidad es una caracterstica muy deseable para un
programa, ya que permite, por ejemplo, a un programa que se ha desarrollado
para sistemas GNU/Linux ejecutarse tambin en la familia de sistemas operativos
Windows. Esto permite que el programa pueda llegar a ms usuarios ms
fcilmente.
Paradigma.
Los programas se pueden clasificar por el paradigma del lenguaje que se use para
producirlos. Los principales paradigmas son: imperativos, declarativos y
orientacin a objetos.
Los programas que usan un lenguaje imperativo especifican un algoritmo, usan
declaraciones, expresiones y sentencias. Una declaracin asocia un nombre de
variable con un tipo de dato. Los programas que usan un lenguaje declarativo
especifican las propiedades que la salida debe conocer y no especifican cualquier
detalle de implementacin. Dos amplias categoras de lenguajes declarativos son
los lenguajes funcionales y los lenguajes lgicos. Los lenguajes funcionales no
permiten asignaciones de variables no locales, as, se hacen ms fcil, por
ejemplo, programas como funciones matemticas. El principio detrs de los
lenguajes lgicos es definir el problema que se quiere resolver (el objetivo) y dejar
los detalles de la solucin al sistema. El objetivo es definido dando una lista de
sub-objetivos. Cada sub-objetivo tambin se define dando una lista de sus sub-
objetivos, etc. Si al tratar de buscar una solucin, una ruta de sub-objetivos falla,
entonces tal sub-objetivo se descarta y sistemticamente se prueba otra ruta.
Lenguajes de programacin ms usados.

Lenguaje Puntaje Cambio respecto al


% ao anterior %
Java 19,27 +4,29
C 14,73 -1,67
C++ 7,74 +3,04
C# 4,84 +1,43
Python 4,07 +0,95
Objective-C 3,20 -6,36
PHP 2,73 -0,14
Visual Basic .NET 2,71 +1,40
Javascript 2,16 -0,01
Perl 2,11 -0,10
Figura 4. Lenguajes de programacin ms usados

Como se aprecia en la tabla, Java gana terreno en el mercado y se mantiene a la


cabeza. Es interesante notar como luego de muchos aos el grupo de lenguajes
C, C++ y C# contina siendo bastante utilizado.
- Java: es un lenguaje orientado a objetos, de propsito general, concurrente
y multiplataforma. La idea es que una aplicacin no tiene que ser
recompilada cada vez que se lleve a un sistema, debido al soporte que
ofrece la plataforma que se instala.
- C: est orientado a la implementacin de sistemas operativos de tipo UNIX.
Es multiplataforma y altamente apreciado por la eficiencia del cdigo que
genera. Tambin se usa bastante para realizar interfaces a dispositivos de
hardware y sistemas embebidos.
- C++: est basado en lenguaje C y extiende sus aplicaciones debido a que
incluye mecanismos para trabajar con objetos.
- C#: orientado a objetos, desarrollado por Microsoft como parte de la
plataforma .NET.
- Python: es de tipo interpretado. Es altamente valorado debido a la facilidad
de su sintaxis, lo cual favorece el aprendizaje.
- Objective-C: orientado a objetos, creado como un sper conjunto de C, con
el fin de implementar un modelo de objetos similar al de Smalltalk.
- PHP: de uso general, aunque orientado al desarrollo web con contenido
dinmico. Corre en el lado del servidor. Es considerado como uno de los
lenguajes ms flexibles, potentes y de alto rendimiento.
- Visual Basic .NET: orientado a objetos, es una evolucin de Visual Basic,
pero implemetado sobre el framework .NET.
- Javascript: se conoce tambin como JS. Est orientado a objetos, es de
tipo interpretado y proviene del estndar ECMAScript. Histricamente ha
sido usado para implementar funciones en el lado del cliente.
- Perl: es un lenguaje interpretado, el cual toma caractersticas de C, sh, awk,
sed y Lisp. Se considera como flexible y con herramientas valiosas para la
edicin de texto desde la terminal.

Lenguaje de programacin JAVA


Figura 5. Logo de JAVA.

Java es un lenguaje de programacin de propsito general, concurrente, orientado


a objetos que fue diseado especficamente para tener tan pocas dependencias
de implementacin como fuera posible. Su intencin es permitir que los
desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en
cualquier dispositivo (conocido en ingls como WORA, o "write once, run
anywhere"), lo que quiere decir que el cdigo que es ejecutado en una plataforma
no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de
los lenguajes de programacin ms populares en uso, particularmente para
aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios
reportados.
El lenguaje de programacin Java fue originalmente desarrollado por James
Gosling, de Sun Microsystems (la cual fue adquirida por la compaa Oracle), y
publicado en 1995 como un componente fundamental de la plataforma Java de
Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene
menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java
son generalmente compiladas a bytecode (clase Java), que puede ejecutarse en
cualquier mquina virtual Java (JVM) sin importar la arquitectura de la
computadora subyacente.
La compaa Sun desarroll la implementacin de referencia original para los
compiladores de Java, mquinas virtuales y libreras de clases en 1991, y las
public por primera vez en 1995. A partir de mayo de 2007, en cumplimiento con
las especificaciones del Proceso de la Comunidad Java, Sun volvi a licenciar la
mayora de sus tecnologas de Java bajo la Licencia Pblica General de GNU.
Otros tambin han desarrollado implementaciones alternas a estas tecnologas de
Sun, tales como el Compilador de Java de GNU y el GNU Classpath.

Filosofa
El lenguaje Java se cre con cinco objetivos principales:
- Debera usar el paradigma de la programacin orientada a objetos.
- Debera permitir la ejecucin de un mismo programa en mltiples sistemas
operativos.
- Debera incluir por defecto soporte para trabajo en red.
- Debera disearse para ejecutar cdigo en sistemas remotos de forma
segura.
- Debera ser fcil de usar y tomar lo mejor de otros lenguajes orientados a
objetos, como C++.
Para conseguir la ejecucin de cdigo remoto y el soporte de red, los
programadores de Java a veces recurren a extensiones como CORBA (Common
Object Request Broker Architecture), Internet Communications Engine u OSGi
respectivamente.
Orientado a objetos
La primera caracterstica, orientado a objetos (OO), se refiere a un mtodo de
programacin y al diseo del lenguaje. Aunque hay muchas interpretaciones para
OO, una primera idea es disear el software de forma que los distintos tipos de
datos que usen estn unidos a sus operaciones. As, los datos y el cdigo
(funciones o mtodos) se combinan en entidades llamadas objetos. Un objeto
puede verse como un paquete que contiene el comportamiento (el cdigo) y el
estado (datos). El principio es separar aquello que cambia de las cosas que
permanecen inalterables. Frecuentemente, cambiar una estructura de datos
implica un cambio en el cdigo que opera sobre los mismos, o viceversa. Esta
separacin en objetos coherentes e independientes ofrece una base ms estable
para el diseo de un sistema software. El objetivo es hacer que grandes proyectos
sean fciles de gestionar y manejar, mejorando como consecuencia su calidad y
reduciendo el nmero de proyectos fallidos.
Otra de las grandes promesas de la programacin orientada a objetos es la
creacin de entidades ms genricas (objetos) que permitan la reutilizacin del
software entre proyectos, una de las premisas fundamentales de la Ingeniera del
Software. Un objeto genrico cliente, por ejemplo, debera en teora tener el
mismo conjunto de comportamiento en diferentes proyectos, sobre todo cuando
estos coinciden en cierta medida, algo que suele suceder en las grandes
organizaciones. En este sentido, los objetos podran verse como piezas
reutilizables que pueden emplearse en mltiples proyectos distintos, posibilitando
as a la industria del software a construir proyectos de envergadura empleando
componentes ya existentes y de comprobada calidad; conduciendo esto
finalmente a una reduccin drstica del tiempo de desarrollo. Podemos usar como
ejemplo de objeto el aluminio. Una vez definidos datos (peso, maleabilidad, etc.), y
su comportamiento (soldar dos piezas, etc.), el objeto aluminio puede ser
reutilizado en el campo de la construccin, del automvil, de la aviacin, etc.
Entornos de funcionamiento
El diseo de Java, su robustez, el respaldo de la industria y su fcil portabilidad
han hecho de Java uno de los lenguajes con un mayor crecimiento y amplitud de
uso en distintos mbitos de la industria de la informtica.
Dispositivos mviles y sistemas embebidos
Desde la creacin de la especificacin, una versin del entorno de ejecucin Java
reducido y altamente optimizado, especialmente desarrollado para el mercado de
dispositivos electrnicos de consumo se ha producido toda una revolucin en lo
que a la extensin de Java se refiere. Es posible encontrar microprocesadores
diseados para ejecutar bytecode Java y software Java para tarjetas inteligentes
(JavaCard), telfonos mviles, buscapersonas, set-top-boxes, sintonizadores de
TV y otros pequeos electrodomsticos. El modelo de desarrollo de estas
aplicaciones es muy semejante a las applets de los navegadores salvo que en
este caso se denominan MIDlets.
Navegador web
Desde la primera versin de Java existe la posibilidad de desarrollar pequeas
aplicaciones (Applets) en Java que luego pueden ser incrustadas en una pgina
HTML para que sean descargadas y ejecutadas por el navegador web. Estas mini
aplicaciones se ejecutan en una JVM que el navegador tiene configurada como
extensin (plug-in) en un contexto de seguridad restringido configurable para
impedir la ejecucin local de cdigo potencialmente malicioso.
El xito de este tipo de aplicaciones (la visin del equipo de Gosling) no fue
realmente el esperado debido a diversos factores, siendo quizs el ms importante
la lentitud y el reducido ancho de banda de las comunicaciones en aquel entonces
que limitaba el tamao de las applets que se incrustaban en el navegador. La
aparicin posterior de otras alternativas (aplicaciones web dinmicas de servidor)
dej un reducido mbito de uso para esta tecnologa, quedando hoy relegada
fundamentalmente a componentes especficos para la intermediacin desde una
aplicacin web dinmica de servidor con dispositivos ubicados en la mquina
cliente donde se ejecuta el navegador.
Sistemas de servidor
En la parte del servidor, Java es ms popular que nunca, desde la aparicin de la
especificacin de Servlets y JSP (Java Server Pages).
Hasta entonces, las aplicaciones web dinmicas de servidor que existan se
basaban fundamentalmente en componentes CGI y lenguajes interpretados.
Ambos tenan diversos inconvenientes (fundamentalmente lentitud, elevada carga
computacional o de memoria y propensin a errores por su interpretacin
dinmica).
A partir de su expansin entre la comunidad de desarrolladores, estas tecnologas
han dado paso a modelos de desarrollo mucho ms elaborados con frameworks
(pe Struts, Webwork) que se sobreponen sobre los servlets y las JSP para
conseguir un entorno de trabajo mucho ms poderoso y segmentado en el que la
especializacin de roles sea posible (desarrolladores, diseadores grficos,...) y se
facilite la reutilizacin y robustez de cdigo. A pesar de todo ello, las tecnologas
que subyacen (Servlets y JSP) son substancialmente las mismas.
En aplicaciones de escritorio
Hoy en da existen multitud de aplicaciones grficas de usuario basadas en Java.
El entorno de ejecucin Java (JRE) se ha convertido en un componente habitual
en los PC de usuario de los sistemas operativos ms usados en el mundo.
Adems, muchas aplicaciones Java lo incluyen dentro del propio paquete de la
aplicacin de modo que se ejecuten en cualquier PC.
En las primeras versiones de la plataforma Java existan importantes limitaciones
en las API de desarrollo grfico (AWT). Desde la aparicin de la biblioteca Swing la
situacin mejor substancialmente y posteriormente con la aparicin de bibliotecas
como SWT hacen que el desarrollo de aplicaciones de escritorio complejas y con
gran dinamismo, usabilidad, etc. sea relativamente sencillo.
Plataformas soportadas
Una versin del entorno de ejecucin Java JRE (Java Runtime Environment) est
disponible en la mayora de equipos de escritorio. Sin embargo, Microsoft no lo ha
incluido por defecto en sus sistemas operativos. En el caso de Apple, ste incluye
una versin propia del JRE en su sistema operativo, el Mac OS. Tambin es un
producto que por defecto aparece en la mayora de las distribuciones de
GNU/Linux. Debido a incompatibilidades entre distintas versiones del JRE,
muchas aplicaciones prefieren instalar su propia copia del JRE antes que confiar
su suerte a la aplicacin instalada por defecto. Los desarrolladores de applets de
Java o bien deben insistir a los usuarios en la actualizacin del JRE, o bien
desarrollar bajo una versin antigua de Java y verificar el correcto funcionamiento
en las versiones posteriores.
Programacin
Expresiones
Las expresiones son un conjunto de elementos o tokens junto con literales que
son evaluados para devolver un resultado. Los tokens son elemento ms pequeo
de un programa que es significativo, e interpretado o entendido por el compilador,
en java los tokens se dividen en cinco categoras que son:
- Identificadores: Son las representaciones que se les da a los nombres que
se asignan a las variables, clases, paquetes, mtodos y constantes en el
cdigo de java para que el compilador los identifique y el programador
pueda entenderlos. En java los identificadores pueden diferenciar entre
maysculas o minsculas por ser case sensitive, por lo que la variable cuyo
nombre sea Mivariable, no es igual a mivariable, ya que java identifica
estas como variables diferentes por el case sensitive, tambin se puede
utilizar nmeros, o el signo _ para asignar un identificador.
- Palabras claves: Son los identificadores reservados por java para cumplir
con un objetivo especfico en el cdigo y el compilador, se usan de forma
limitada y en casos especficos. Las palabras claves que usa java son las
siguientes:
abstract boolean break Byte case
catch char class Continue default
do double else Extends false
final finally float For if
implements import instanceof Int interface
long native new null package
private protected public return short
static super switch syncronized this
throw throws transient true try
void volatile while var rest
byvalue cast const future generic
goto inner operator outer
Figura 6. Palabras clave en JAVA

Lenguaje de programacin C# (C SHARP)

Figura 7. Logo C Sharp

C# es un lenguaje de programacin orientado a objetos desarrollado y


estandarizado por Microsoft como parte de su plataforma.NET, que despus fue
aprobado. Durante el desarrollo de la plataforma .NET, las bibliotecas de clases
fueron escritas originalmente en el lenguaje compilador Simple Managed C. En
enero de 1999, Anders Hejlsberg form un equipo con la misin de desarrollar un
nuevo lenguaje de programacin llamado Cool (C Orientado a Objetos). Este
nombre tuvo que ser cambiado debido a problemas de marca pasando a llamarse
C# aunque habitualmente se escribe C#. La biblioteca de clases de la
plataforma .NET fue migrada entonces al nuevo lenguaje.
Tipos de datos
C# contiene dos categoras generales de tipos de datos integrados: tipos de valor
y tipos de referencia. El trmino tipo de valor indica que esos tipos contienen
directamente sus valores.
C# define ocho tipos de enteros, a saber:

Tipo de datos de enteros

Tipo Ancho en Rango Significado


bits

byte 8 De 0 a 255 Entero sin signo de 8 bits

sbyte 8 De -128 a 127 Entero con signo de 8 bits

short 16 De -32.768 a 32.767 Entero corto

ushort 16 De 0 a 65.535 Entero corto sin signo

int 32 De -2.147.483.648 a 2.147.483.647 Entero medio

uint 32 De 0 a 4.294.967.295 Entero medio sin signo

long 64 De -9.223.372.036.854.775.808 a Entero largo


9.223.372.036.854.775.807

ulong 64 De 0 a 18.446.744.073.709.551.615 Entero largo sin signo


Figura 8. Tipos de datos de C#

Los tipos de punto flotante pueden representar nmeros con componentes


fraccionales. Existen dos clases de tipos de punto flotante; float y double. El tipo
double es el ms utilizado porque muchas funciones matemticas de la biblioteca
de clases de C# usan valores double. Quiz, el tipo flotante ms interesante de C#
es decimal, dirigido al uso de clculos monetarios. La aritmtica de punto flotante
normal est sujeta a una variedad de errores de redondeo cuando se aplica a
valores decimales. El tipo decimal elimina estos errores y puede representar hasta
28 lugares decimales.
Tipo de datos de punto flotante
Tipo Ancho en Rango Significado
bits
float 32 De 1,5E-45 a 3,4E+38 Punto flotante corto
double 64 De 5E-324 a 1,7E+308 Punto flotante largo
decimal 128 De 1E-28 a 7,9E+28 Punto flotante monetario
Figura 9. Tipo de datos de punto flotante.

Los caracteres en C# no son cantidades de 8 bits como en otros muchos


lenguajes de programacin. Por el contrario, C# usa un tipo de caracteres de 16
bits llamado Unicode al cual se le llama char.
Tipo de datos de caracteres
Tipo Ancho en bits Rango Significado
char 16 De 0 a 65,535 (cdigo Unicode) Carcter
Figura 10. Tipo de datos de caracteres.

Tipo de datos lgicos


Tipo Ancho en Rango Significado
bits
boo 1 true or false, no se usa 1 0 ya que no hay true or false
l conversin definida
Figura 11. Tipo de datos logicos.

Constantes
Todas las constantes tienen un tipo de dato, en caso de ser una constante entera
se usa la de menor tamao que pueda alojarla. En caso de punto flotante se
considera como un double. Sin embargo se puede especificar explcitamente el
tipo de dato que una constante deber usar, por medio de los sufijos:
Sufijo Tipo de dato Ejemplo
L long 12L
UL ulong 68687UL
F float 10,19F
M decimal 9,95M
Figura 12. Sufijos.

Operadores
C# tiene cuatro clases generales de operadores: aritmticos, a nivel de bit,
relacionales y lgicos.
Operadores
Operador Significado Tipo
+ Suma Aritmtico
- Resta Aritmtico
* Producto Aritmtico
/ Divisin Aritmtico
% Mdulo (residuo entero) Aritmtico
++ Incremento Aritmtico
-- Decremento Aritmtico
== Igual que Relacional
!= Distinto que Relacional
> Mayor que Relacional
< Menor que Relacional
>= Mayor o igual que Relacional
<= Menor o igual que Relacional
& AND Lgico y a nivel de bits
| OR Lgico y a nivel de bits
^ XOR y de nivel de bits Lgico
|| OR de cortocircuito Lgico
&& AND de cortocircuito Lgico
! NOT Lgico
~ Complemento a uno A nivel de bits
<< Desplazamiento a la izquierda A nivel de bits
>> Desplazamiento a la derecha A nivel de bits
Figura 13. Operadores C#.

Compiladores
En la actualidad existen los siguientes compiladores para el lenguaje C#:
- Microsoft.NET framework SDK incluye un compilador de C#, pero no un
IDE.
- Microsoft Visual Studio, IDE por excelencia de este lenguaje, versin 2002,
2003, 2005, 2008 y 2010(beta).
- #develop, es un IDE libre para C# bajo licencia LGPL, muy similar a
Microsoft Visual C#.
- Mono, es una implementacin GPL de todo el entorno .NET desarrollado
por Novell. Como parte de esta implementacin se incluye un compilador de
C#.
- Delphi 2006, de Borland Software Corporation.
- dotGNU Portable.NET, de la Free Software Foundation.
Metas del diseo del lenguaje
El estndar ECMA lista las siguientes metas en el diseo para C#:
- Lenguaje de programacin orientado a objetos simple, moderno y de
propsito general.
- Inclusin de principios de ingeniera de software tales como revisin estricta
de los tipos de datos, revisin de lmites de vectores, deteccin de intentos
de usar variables no inicializadas, y recoleccin de basura automtica.
- Capacidad para desarrollar componentes de software que se puedan usar
en ambientes distribuidos.
- Portabilidad del cdigo fuente
- Fcil migracin del programador al nuevo lenguaje, especialmente para
programadores familiarizados con C y C++.
- Soporte para internacionalizacin
- Adecuacin para escribir aplicaciones de cualquier tamao: desde las ms
grandes y sofisticadas como sistemas operativos hasta las ms pequeas
funciones.
- Aplicaciones econmicas en cuanto a memoria y procesado.
Lenguaje de programacin Visual Basic

Figura 14. Logo de Visual Basic.

Visual Basic (VB) es un lenguaje de programacin dirigido por eventos,


desarrollado por Alan Cooper para Microsoft. Este lenguaje de programacin es un
dialecto de BASIC, con importantes agregados. Su primera versin fue presentada
en 1991, con la intencin de simplificar la programacin utilizando un ambiente de
desarrollo que facilit en cierta medida la programacin misma. La ltima versin
fue la 6, liberada en 1998, para la que Microsoft extendi el soporte hasta marzo
de 2008.
En 2001 Microsoft propuso abandonar el desarrollo basado en la API Win32 y
pasar a un framework o marco comn de libreras, independiente de la versin del
sistema operativo .NET Framework, a travs de Visual Basic .NET (y otros
lenguajes como C Sharp (C#) de fcil transicin de cdigo entre ellos); fue el
sucesor de Visual Basic 6.
Aunque Visual Basic es de propsito general, tambin provee facilidades para el
desarrollo de aplicaciones de bases de datos usando Data Access Objects,
Remote Data Objects o ActiveX Data Objects. Visual Basic contiene un entorno de
desarrollo integrado o IDE que integra editor de textos para edicin del cdigo
fuente, un depurador, un compilador (y enlazador) y un editor de interfaces
grficas o GUI.
Caractersticas
Los compiladores de Visual Basic generan cdigo que requiere una o ms libreras
de enlace dinmico para que funcione, conocidas comnmente como DLL (sigla
en ingls de Dynamic-Link Library); en algunos casos reside en el archivo llamado
MSVBVMxy.DLL (siglas de "MicroSoft Visual Basic Virtual Machine x.y", donde x.y
es la versin) y en otros en VBRUNXXX.DLL ("Visual Basic Runtime X.XX"). Estas
bibliotecas DLL proveen las funciones bsicas implementadas en el lenguaje,
conteniendo rutinas en cdigo ejecutable que son cargadas bajo demanda en
tiempo de ejecucin. Adems de las esenciales, existe un gran nmero de
bibliotecas del tipo DLL con variedad de funciones, tales como las que facilitan el
acceso a la mayora de las funciones del sistema operativo o las que proveen
medios para la integracin con otras aplicaciones.
Dentro del mismo Entorno de desarrollo integrado (IDE) de Visual Basic se puede
ejecutar el programa que est desarrollndose, es decir en modo intrprete (en
realidad pseudo-compila el programa muy rpidamente y luego lo ejecuta,
simulando la funcin de un intrprete puro). Desde ese entorno tambin se puede
generar el archivo en cdigo ejecutable (exe); ese programa as generado en
disco puede luego ser ejecutado sin requerir del ambiente de programacin
(incluso en modo stand alone), aunque s ser necesario que las libreras DLL
requeridas por la aplicacin desarrollada se encuentren tambin instaladas en el
sistema para posibilitar su ejecucin. El propio Visual Basic provee soporte para
empaquetado y distribucin; es decir, permite generar un mdulo instalador que
contiene al programa ejecutable y las bibliotecas DLL necesarias para su
ejecucin. Con ese mdulo la aplicacin desarrollada se distribuye y puede ser
instalada en cualquier equipo (que tenga un sistema operativo compatible).
As como bibliotecas DLL, hay numerosas aplicaciones desarrolladas por terceros
que permiten disponer de variadas y mltiples funciones, incluso mejoras para el
propio Visual Basic; las hay tambin para el empaquetado y distribucin, y hasta
para otorgar mayor funcionalidad al entorno de programacin (IDE).
Entorno de desarrollo
Existe un nico entorno de desarrollo para Visual Basic, desarrollado por
Microsoft: Microsoft Visual Basic x.0, correspondientes a versiones desde la 2.0
hasta la 20.0, (con respectivas diferencias entre versiones del lenguaje).
El entorno de desarrollo es muy similar al de otros lenguajes. Realizando una
instalacin tpica del producto, las caractersticas bsicas se presentan de la
siguiente forma:
- En la parte superior aparecen tres elementos, en este orden: la barra de
ttulo donde figura el nombre del proyecto en curso y su estado (diseo o
ejecucin); la barra de men con 13 opciones desplegables y una barra de
herramientas; esta ltima se puede personalizar, posibilitando la inclusin
de prcticamente la totalidad de los comandos del IDE.
- En la parte central, cubriendo la franja de mayor rea, se encuentra el
espacio de trabajo. Este incluye y muestra las ventanas del proyecto, las
vistas del cdigo fuente de los mdulos, los objetos y los controles que
contienen las ventanas de la aplicacin y el panel de controles.
- El panel de controles, que aunque es mvil normalmente est ubicado a la
derecha, por defecto cuenta con los siguientes controles:
- PictureBox: Caja de imgenes
- Label: Etiqueta
- TextBox: Caja de texto
- Frame: Marco
- CommandButton: Botn de comando
- CheckBox: Casilla de verificacin
- OptionButton: Botn de opcin
- ComboBox: Lista desplegable
- ListBox: Lista
- HScrollBar: Barra de desplazamiento horizontal
- VScrollBar: Barra de desplazamiento vertical
- Timer: Temporizador
- DriveListBox: Lista de unidades de disco
- DirListBox: Lista de directorios
- FileListBox: Lista de archivos
- Shape: Figura
- Line: Lnea
- Image: Imagen
- Data: Conexin a origen de datos
- OLE: Contenedor de documentos embebidos compatibles con Object
Linking and Embedding
Adems de los listados, se pueden agregar todo tipo de controles de terceros, y
hay una gran cantidad de ellos que se proveen con el propio Visual Basic 6.0. Los
controles vienen embebidos dentro de archivos con extensin OCX.
- Las ventanas de proyecto, aunque mviles, se encuentran en el panel
lateral derecho y contienen dos vistas principales:
- El Explorador de proyectos, que muestra todos los elementos que
componen el proyecto o grupos de proyectos (formularios, interfaz de
controles, mdulos de cdigo, mdulos de clase, etc.)
- El Panel de propiedades, donde se muestran todos los atributos de los
objetos, controles, formularios, informacin de mdulos clase, entre muchos
otros.
Objetos y eventos
Se designa como objeto cualquier elemento, por ejemplo, un formulario, una
imagen, un control, tal como una caja de texto; a su vez, los objetos tienen
propiedades, que en el caso de la caja de texto una es la propiedad "text" que se
encarga de contener el texto que aparecer en la caja. A los objetos se les puede
asociar eventos. Un evento es la ocurrencia de un suceso, comnmente la accin
que realiza el usuario sobre el objeto, que como resultado puede, por ejemplo,
provocar un cambio en alguna propiedad de un objeto. Por ejemplo: Visual Basic
tiene un evento llamado KeyPress, que ocurre cuando el usuario presiona una
tecla; ese evento se puede asociar a la caja de texto, y en l definir (por
programacin) qu accin se tomar cuando se oprima una tecla.
En sntesis, un objeto posee propiedades, responde a eventos y puede ejecutar
mtodos asociados a l. Algunos eventos comunes definidos en Visual Basic son:
- Click: ocurre cuando se presiona y suelta un botn del mouse sobre un
objeto.
- DblClick: ocurre cuando se presiona y suelta dos veces un botn del mouse
sobre un objeto.
- DragDrop: ocurre al arrastrar y soltar un determinado objeto con el mouse.
- DragOver: ocurre si una operacin de arrastrar y soltar est en curso.
- GotFocus: ocurre cuando un objeto recibe el control o foco, ya sea
mediante una accin del usuario como hacer clic en un objeto ventana, o
cambiando el foco de objeto desde el programa, mediante el mtodo
SetFocus.
- LostFocus: contrario al anterior, este evento ocurre cuando el objeto pierde
el enfoque, sea mediante accin del usuario o efectuado desde la
aplicacin.
- KeyDown: ocurre cuando el usuario mantiene presionada una tecla.
- KeyUp: ocurre cuando el usuario deja de presionar una tecla. Este evento
sucede precisamente al terminar el evento KeyDown.
- KeyPress: ocurre como cuando se presiona y suelta una tecla.
- MouseDown: ocurre cuando el usuario presiona un botn del mouse.
- MouseUp: se produce cuando el usuario suelta el botn del mouse.
- MouseMove: este evento ocurre mientras el usuario mueve o desplaza el
puntero del mouse sobre un objeto.
Ventajas y Desventajas
Ventajas Desventajas
Posee una curva de aprendizaje muy Problema de versionado asociado con
rpida. varias libreras runtime DLL, conocido
como DLL Hell

Integra el diseo e implementacin de Soporte pobre para programacin


formularios de Windows. orientada a objetos.

Permite usar con facilidad la plataforma de Incapacidad para crear aplicaciones


los sistemas Windows, dado que tiene multihilo, sin tener que recurrir a llamadas
acceso prcticamente total a la API de de la API de Windows.
Windows, incluidas libreras actuales.

Es uno de los lenguajes de uso ms Dependencia de complejas y frgiles


extendido, por lo que resulta fcil entradas de registro COM
encontrar informacin, documentacin y
fuentes para los proyectos.

Fcilmente extensible mediante libreras La capacidad de utilizar controles en un


DLL y componentes ActiveX de otros nico formulario es muy limitada en
lenguajes. comparacin a otras herramientas.

Posibilita aadir soporte para ejecucin de


scripts, VBScript o JScript, en las
aplicaciones mediante Microsoft Script
Control.8

Tiene acceso a la API multimedia de


DirectX (versiones 7 y 8). Tambin est
disponible, de forma no oficial, un
componente para trabajar con OpenGL
1.1.9

Existe una versin, VBA, integrada en las


aplicaciones de Microsoft Office, tanto
Windows como Mac, que permite
programar macros para extender y
automatizar funcionalidades en
documentos, hojas de clculo y bases de
datos (Access).

Si bien permite desarrollar grandes y


complejas aplicaciones, tambin provee
un entorno adecuado para realizar
pequeos prototipos rpidos.

Figura 15. Ventajas y Desventajas de VB.


Sistema Gestor de Base de Datos (SGBD)
Un sistema gestor de base de datos (SGBD) es un conjunto de programas que
permiten el almacenamiento, modificacin y extraccin de la informacin en una
base de datos, adems de proporcionar herramientas para aadir, borrar,
modificar y analizar los datos. Los usuarios pueden acceder a la informacin
usando herramientas especficas de consulta y de generacin de informes, o bien
mediante aplicaciones al efecto. Estos sistemas tambin proporcionan mtodos
para mantener la integridad de los datos, para administrar el acceso de usuarios a
los datos y para recuperar la informacin si el sistema se corrompe. Permiten
presentar la informacin de la base de datos en variados formatos. La mayora
incluyen un generador de informes. Tambin pueden incluir un mdulo grfico que
permita presentar la informacin con grficos y tablas.
Generalmente se accede a los datos mediante lenguajes de consulta, lenguajes
de alto nivel que simplifican la tarea de construir las aplicaciones. Tambin
simplifican las consultas y la presentacin de la informacin. Un SGBD permite
controlar el acceso a los datos, asegurar su integridad, gestionar el acceso
concurrente a ellos, recuperar los datos tras un fallo del sistema y hacer copias de
seguridad. Las bases de datos y los sistemas para su gestin son esenciales para
cualquier rea de negocio, y deben ser gestionados con esmero.
Las bases de datos generalmente funcionan en computadoras que se dedican a
forma exclusiva a este campo. Por las prestaciones requeridas, generalmente
funcionan en computadoras multiprocesador con abundante memoria.
Para el almacenamiento de los datos puede contar con sistemas de disco propio o
almacenamiento de conexin directa (DAS), puede conectarse a una red de
almacenamiento (SAN) o conectarse a un sistema de almacenamiento en red
(NAS). Existen aceleradores hardware, usados en grandes sistema de proceso de
transacciones. Los SGBD se encuentran en el corazn de toda aplicacin que
maneje datos. Los SGBD se basan en sistemas operativos estndar para efectuar
dichas funciones.
Componentes
- El motor de la base de datos acepta peticiones lgicas de los otros
subsistemas del SGBD, las convierte en su equivalente fsico y accede a la
base de datos y diccionario de datos en el dispositivo de almacenamiento.
- El subsistema de definicin de datos ayuda a crear y mantener el
diccionario de datos y define la estructura del fichero que soporta la base de
datos.
- El subsistema de manipulacin de datos ayuda al usuario a aadir, cambiar
y borrar informacin de la base de datos y la consulta para extraer
informacin. El subsistema de manipulacin de datos suele ser la interfaz
principal del usuario con la base de datos. Permite al usuario especificar
sus requisitos de la informacin desde un punto de vista lgico.
- El subsistema de generacin de aplicaciones contiene utilidades para
ayudar a los usuarios en el desarrollo de aplicaciones. Usualmente
proporciona pantallas de entrada de datos, lenguajes de programacin e
interfaces.
- El subsistema de administracin ayuda a gestionar la base de datos
ofreciendo funcionalidades como almacenamiento y recuperacin, gestin
de la seguridad, optimizacin de preguntas, control de concurrencia y
gestin de cambios.
Lenguajes de modelacin
Toda base de datos soportada por un SGBD debe tener unos esquemas
modelados adecuadamente. Coincidiendo con la evolucin histrica de las bases
de datos, estas han utilizado distintos modelos. Los SGBD esperan un modelo
determinado para poder acceder de forma simple a la base de datos. Estos
modelos son:
- Jerrquicos
- En red
- Relacionales
- Multidimensionales
- De objetos
Tambin se han utilizados listas invertidas.
Estructura jerrquica

Figura 16. Ejemplo de estructura jerrquica.

La estructura jerrquica fue usada en los SGBD de los primeros mainframe. Las
relaciones entre registros forman una estructura en rbol. Esta estructura es
simple pero inflexible ya que las relaciones estn confinadas al tipo 1:n. El sistema
IMS de IBM y el RDM Mobile de Raima son ejemplos de bases de datos con
mltiples jerarquas sobre el mismo conjunto de datos. RDM Mobile es un nuevo
diseo de base de datos imbuida para una red de ordenadores mviles. La
estructura jerrquica es usada hoy en da para almacenar informacin geogrfica
principalmente. El modelo de base de datos jerrquica tiene un esquema en el que
los datos se organizan en una estructura arbrea. Esta estructura permite
representar relaciones padre/hijo: cada padre puede tener varios hijos, pero cada
hijo ha de venir de slo un padre (las conocidas como relaciones 1:N). Todos los
atributos de un registro especfico estn asociados a un tipo de entidad. Este
modelo fue creado por IBM en 1960.
En una base de datos una entidad tipo es el trmino genrico para tabla. Cada
registro individual se representa como una fila, y cada atributo como una columna.
Las entidades tipo se relacionan entre ellas usando correspondencias 1:N.
Estructura en Red

Figura 17. Modelo de una base de datos en Red.

Esta estructura contiene relaciones ms complejas que las jerrquicas. Admite


relaciones de cada registro con varios que se pueden seguir por distintos caminos.
En otras palabras, el modelo permite relaciones N:N.
El modelo en red est concebido como un modo flexible de representar objetos y
sus relaciones. Su cualidad distintiva es que el esquema visto como un conjunto
de nodos conectados por arcos no tiene ninguna restriccin.
Estructura Relacional

Figura 18. Ejemplo de tablas y relaciones.

La estructura relacional es la ms extendida hoy en da. Se usa en mainframes,


computadoras medias y microcomputadoras. Almacena los datos en filas (tuplas) y
columnas (atributos). Estas tablas pueden estar conectadas entre s por claves
comunes. Mientras trabajaba en IBM en 1972, E. F. Codd concibi esta estructura.
El modelo no resulta sencillo de consultar por el usuario ya que puede requerir una
compleja combinacin de tablas.
Estructura multidimensional

Figura 19. Cubos representando 4 dimensiones en base de datos multidimensional.

La estructura multidimensional tiene parecidos a la del modelo relacional, pero en


vez de las dos dimensiones filas-columnas, tiene N dimensiones. Esta estructura
ofrece el aspecto de una hoja de clculo. Es fcil de mantener y entender ya que
los registros se almacenan del mismo modo como se observan. Sus altas
prestaciones han hecho de ella la base de datos ms popular para el proceso
analtico de transacciones en lnea (OLAP).
Estructura Orientada a Objetos

Figura 20. Ejemplo de base de datos conteniendo objetos y herencias.

La estructura orientada a objetos est diseada siguiendo el paradigma de los


lenguajes orientados a objetos. De este modo soporta los tipos de datos grficos,
imgenes, voz y texto de manera natural. Esta estructura tiene gran difusin en
aplicaciones web para aplicaciones multimedia. Antes de la implantacin de los
SGBD con estructura orientada a objetos, el almacenamiento de datos multimedia
se basaba en el sistema de ficheros para organizar, almacenar y procesar los
datos. El proceso de ficheros es engorroso, costoso e inflexible. La redundancia
de los datos es un inconveniente del proceso de ficheros ya que los ficheros
independientes producen ficheros duplicados con su implicacin en el espacio
necesario. Otro inconveniente es la falta de integracin, y la dificultad de
mantenimiento. Esto fue encaminado aplicando la orientacin a objetos a los
datos.
Arquitectura
La arquitectura de un SGBD especifica sus componentes (incluyendo su
descripcin funcional) y sus interfaces. Trata de conceptos distintos que la
arquitectura de la base de datos. Los componentes principales de un SGBD son:
- Interfaces externas: medios para comunicarse con el SGDB en ambos
sentidos (E/S) y explotar a todas sus funciones. Pueden afectar a la BD o a
la operacin del SGBD, por ejemplo:
Operaciones directas con la base de datos: definicin de tipos,
asignacin de niveles de seguridad, actualizacin de datos, consulta
de la base de datos...
Operaciones relativas a la operacin del SGBD: copia de seguridad y
restauracin, recuperacin tras una cada, monitoreo de seguridad,
gestin del almacenamiento, reserva de espacio, monitoreo de la
configuracin, monitoreo de prestaciones, afinado...
Las interfaces externas bien pueden ser utilizadas por usuarios (p. e.
administradores) o bien por programas que se comunican a travs
de una API.
- Intrprete o procesador del lenguaje: la mayor parte de las operaciones se
efectan mediante un lenguaje de base de datos. Existen lenguajes para
definicin de datos, manipulacin de datos (p. e. SQL), para especificar
aspectos de la seguridad y ms. Las sentencias en ese lenguaje se
introducen en el SGBD mediante la interfaz adecuada. Se procesan las
expresiones en dicho lenguaje (ya sea compilado o interpretado) para
extraer las operaciones de modo que puedan ser ejecutadas por el SGBD.
- Optimizador de consultas: realiza la optimizacin de cada pregunta y
escoge el plan de actuacin ms eficiente para ejecutarlo.
- Motor de la base de datos: realiza las operaciones requeridas sobre la base
de datos, tpicamente representndolo a alto nivel.
- Mecanismo de almacenamiento: traduce las operaciones a lenguaje de bajo
nivel para acceder a los datos. En algunas arquitecturas el mecanismo de
almacenamiento est integrado en el motor de la base de datos.
- Motor de transacciones: para conseguir correccin y fiabilidad, la mayora
de las operaciones internas del SGBD, se realizan encapsuladas dentro de
transacciones. Las transacciones pueden ser especificadas externamente
al SGBD para encapsular un grupo de operaciones. El motor de
transacciones sigue la ejecucin de las transacciones y gestiona su
ejecucin de acuerdo con las reglas que tiene establecidas (p. e., control de
concurrencia y su ejecucin o cancelacin).
- Gestin y operacin de SGBD: comprende muchos otros componentes que
tratan de aspectos de gestin y operativos del SGBD como monitoreo de
prestaciones, gestin del almacenamiento, mapas de almacenamiento.
Alcance, factibilidad y oportunidad del proyecto.
Este proyecto es el primer paso hacia la sistematizacin y gestin en su totalidad
del proceso de inventariado, que se encarga de reunir informacin de las
especificaciones de los equipos de cmputo sin tener que llevar a cabo la tarea
manualmente. En este caso, el proyecto se centra en implementar una aplicacin
de uso simple y sencillo, con funciones visibles que ofrezcan resultados de calidad
al ser efectuados. En concreto, implementar tcnicas de programacin que
funcionen para extraer informacin de especificaciones de los equipos de
cmputo, descartando informacin no requerida por el instituto tecnolgico de
Acapulco y gestionando la informacin en una base de datos mediante un cdigo
de SGBD. Esto incluye:
Utilizar un lenguaje de programacin que sea factible para permitir la
extraccin de informacin de software y hardware del equipo de cmputo
en cuestin de manera sencilla. Esto implica:
Estructurar la interfaz grfica para el manejo de la aplicacin software
y tener una fcil navegacin y utilizacin sobre la misma.
Eliminar las incompatibilidades sobre las distintas versiones de los
sistemas operativos que se manejan en la institucin.
Seccionar y organizar la informacin obtenida en un documento
externo, donde la visualizacin sea clara y entendible.
Tener la libertad de seleccionar que informacin extraer y cual ignorar,
as, tener la seleccin sobre las especificaciones que se requieran.
Portabilizar el software en dispositivos USB con la nica finalidad de
llevar acabo la tarea de extraer la informacin.
Encontrar un mtodo factible para generar el cdigo de SGBD donde el
enlace de la informacin obtenida con el cdigo de base de datos
prediseado se entrelacen de manera correcta. Esto implica:
Pre disear una base de datos con los lenguajes de los SGBD ms
utilizados en la actualidad, como SqlServer y MySql para su fcil
incorporacin en el gestor utilizado por el rea de administracin
informtica del instituto.
Facilitar el uso de la conversin a tal grado que cualquier usuario con
una capacitacin bsica sobre el software diseado sea capaz de
generar el cdigo de un SGBD.
Ahorrar el tiempo de diseo y programacin de una base de datos que
gestione la informacin previamente obtenida.
Con todas las funciones que se pretende emplear, el proyecto queda abierto para
versiones posteriores con posibles mejoras e implementaciones de nuevas
funciones que permitan reducir an ms el tiempo de estimacin en la realizacin
de la obtencin de requerimientos de los equipos de cmputos, as mismo, ser
incorporada para ser utilizable en diferentes instituciones educativas con el mismo
problema al realizar esta actividad.
Alternativas de solucin
Se investigaran y describirn las diferentes metodologas de elaboracin de
proyectos de software como alternativas de solucin para el desarrollo de la
aplicacin descrita de este proyecto, puesto que las metodologas ofrecen
ventajas factibles para el desarrollo en regla de una aplicacin software, facilita la
tarea de planificacin, da seguimiento de un proyecto, mejora la relacin de
costo/beneficio, optimiza el uso de recurso disponibles, etc.
Alternativas:
Modelo Espiral Tpico (6 regiones).
El modelo de desarrollo evolutivo es una alternativa de solucin factible para el
desarrollo de este proyecto, ya que cuenta con ser un modelo evolutivo donde se
conjuga la naturaleza de construccin de prototipos con los aspectos controlados y
sistemticos del modelo lineal y el modelo secuencial.
El modelo en espiral puede adaptarse y aplicarse a lo largo de la vida del software
de computadora. Una visin alternativa del modelo en espiral puede ser
considerada examinando el eje de punto de entrada en el proyecto. Como ya se
mencion con anterioridad, la aplicacin de recopilacin de requerimientos tiene
especficamente la opcin de quedar abierto para posibles mejoras y adaptaciones
para su uso prctico en ms instituciones educativas.

Figura 21. Modelo Espiral Tpico de 6 regiones.

Ciclos o Iteraciones
Como se observ en la figura 1 las regiones de tareas que componen este
modelo son:
Comunicacin con el cliente: Es importante llevar a cabo las tareas
requeridas para poder establecer comunicacin entre el desarrollador y el
cliente.

Planificacin: las tareas requeridas para definir recursos, el tiempo y otras


informaciones relacionadas con el proyecto. Son todos los requerimientos.

Anlisis de riesgos: las tareas requeridas para evaluar riesgos tcnicos y


otras informaciones relacionadas con el proyecto.

Ingeniera: las tareas requeridas para construir una o ms


representaciones de la aplicacin.

Construccin y adaptacin: las tareas requeridas para construir, probar,


instalar y proporcionar soporte al usuario.

Evaluacin del cliente: las tareas requeridas para obtener la reaccin del
cliente segn la evaluacin de las representaciones del software creadas
durante la etapa de ingeniera e implementacin durante la etapa de
instalacin.

Ventajas

El anlisis del riesgo se hace de forma explcita y clara. Une los


mejores elementos de los restantes modelos.

- Reduce riesgos del proyecto

- Incorpora objetivos de calidad

- Integra el desarrollo con el mantenimiento, etc.

Adems es posible tener en cuenta mejoras y nuevos


requerimientos sin romper con la metodologa, ya que este ciclo de
vida no es rgido ni esttico.

Desventajas

- Genera mucho tiempo en el desarrollo del sistema

- Modelo costoso

- Requiere experiencia en la identificacin de riesgos


Inconvenientes

Planificar un proyecto con esta metodologa es a menudo


imposible, debido a la incertidumbre en el nmero de iteraciones
que sern necesarias. En este contexto la evaluacin de riesgos es
de la mayor importancia y, para grandes proyectos, dicha
evaluacin requiere la intervencin de profesionales de gran
experiencia. El IEEE clasifica al desarrollo en espiral como modelo
no operativo en sus clasificaciones de MCV.5

Proceso Unificado Racional (RUP)


El RUP se centra en adaptarse al contexto y a las necesidades requeridas de cada
organizacin, puesto que la metodologa que utiliza, requiere estar en sincrona
con el cliente y as, adaptar factiblemente el proyecto con el problema que se tiene
que resolver, en este caso, la recopilacin de informacin de requerimientos de las
computadoras. La metodologa nos servir para explorar a fondo el problema,
visto desde el punto de vista del cliente y solucionndolo desde el punto de vista
del desarrollador.
La filosofa del RUP est basado en 6 principios clave de desarrollo que es:
- Adaptar el proceso.-
- Equilibrar prioridades.- Los requisitos de los diversos participantes pueden
ser diferentes, contradictorios donde se debe poder encontrar un equilibrio
que satisfaga los deseos de todos.
- El proceso deber adaptarse a las necesidades del cliente ya que es muy
importante interactuar con l.
- Demostrar valor iterativamente.- Los proyectos se entregan, aunque sea de
un modo interno, en etapas iteradas.
- Colaboracin entre equipos.- El desarrollo de software no lo hace una nica
persona sino mltiples equipos.
Principales caractersticas:
- Desarrollo iterativo
- Administracin de requisitos
- Uso de arquitectura basada en componentes
- Control de cambios
- Modelado visual del software
- Verificacin de la calidad del software
- Pretende implementar las mejores prcticas en Ingeniera de Software, de
forma que se adapte a cualquier proyecto
Figura 22. Esfuerzo en Actividades RUP

Como se observa en la figura 2 Se muestra el esfuerzo de actividades que


corresponden a la fase de procesos, esta fase contiene:
- Proceso
- Las etapas de esta seccin son: (revisar nuevamente la grfica)
- Modelado de negocio
- Requisitos
- Anlisis y Diseo
- Implementacin
- Pruebas
- Despliegue
Ventajas y recomendaciones de uso
Cualquier Proceso Unificado, y concretamente RUP, proporciona un entorno de
proceso bastante configurable y basado en fuertes estndares. Este entorno de
proceso permite establecer un mtodo personalizado para cada organizacin,
configurndolo para satisfacer las necesidades exclusivas de cada proyecto.
El Proceso Unificado es una recopilacin de buenas prcticas de Ingeniera del
Software que se estn mejorando continuamente de forma regular para reflejar los
cambios que sufre la industria. Adems, pretende obtener productos de muy alta
calidad, si bien sus diferentes caractersticas como el estar formado por varias
fases, con mltiples iteraciones por fase, etc. pueden provocar que el proceso sea
costoso y no sea adaptable para proyectos de pequea escala. Aun as, el hecho
de que este modelo siga un esquema iterativo e incremental permite bastante
flexibilidad y adaptacin a proyectos menores, en caso de que quisiramos usarlo.
Este modelo de proceso est pensado para usarse desde el principio de un nuevo
proyecto, y puede seguir utilizndose en todos los ciclos de desarrollo siguientes,
mucho tiempo despus de que el proyecto inicial haya terminado.
El modelo tiene en cuenta:
- Los propsitos empresariales, la visin, el mbito y los riesgos del proyecto
- La cantidad de esfuerzo requerida para el desarrollo de software
- La estructura del ciclo vital del proyecto (nmero de iteraciones, duracin
total del proyecto y de cada una de sus fases)

Modelo en cascada
El modelo en cascada nos ayudara a tener un enfoque metodolgico ordenado
rigurosamente mediante procesos para llevar a cabo nuestro desarrollo del
proyecto de software, de tal forma que el inicio de cada etapa debe esperar a la
finalizacin de la etapa anterior. Al final de cada etapa, el modelo est diseado
para llevar a cabo una revisin final, que se encarga de determinar si el proyecto
est listo para avanzar a la siguiente fase. Este modelo fue el primero en
originarse y es la base de todos los dems modelos de ciclo de vida.
Un ejemplo de una metodologa de desarrollo en cascada es:
- Anlisis de requisitos.
- Diseo del sistema.
- Diseo del programa.
- Codificacin.
- Pruebas.
- Implementacin del programa.
- Mantenimiento.
De esta forma, cualquier error de diseo detectado en la etapa de prueba conduce
necesariamente al rediseo y nueva programacin del cdigo afectado,
aumentando los costos del desarrollo. La palabra cascada sugiere, mediante la
metfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un
cambio en las fases ms avanzadas de un proyecto.
Figura 23. El "modelo cascada" sin modificar.

Anlisis de requisitos del software


En esta fase se analizan las necesidades de los usuarios finales del software para
determinar qu objetivos debe cubrir. De esta fase surge una memoria llamada
SRD (documento de especificacin de requisitos), que contiene la especificacin
completa de lo que debe hacer el sistema sin entrar en detalles internos.
Es importante sealar que en esta etapa se debe consensuar todo lo que se
requiere del sistema y ser aquello lo que seguir en las siguientes etapas, no
pudindose requerir nuevos resultados a mitad del proceso de elaboracin del
software de una manera.
Diseo del sistema
Descompone y organiza el sistema en elementos que puedan elaborarse por
separado, aprovechando las ventajas del desarrollo en equipo. Como resultado
surge el SDD (Documento de Diseo del Software), que contiene la descripcin de
la estructura relacional global del sistema y la especificacin de lo que debe hacer
cada una de sus partes, as como la manera en que se combinan unas con otras.
Es conveniente distinguir entre diseo de alto nivel o arquitectnico y diseo
detallado. El primero de ellos tiene como objetivo definir la estructura de la
solucin (una vez que la fase de anlisis ha descrito el problema) identificando
grandes mdulos (conjuntos de funciones que van a estar asociadas) y sus
relaciones. Con ello se define la arquitectura de la solucin elegida. El segundo
define los algoritmos empleados y la organizacin del cdigo para comenzar la
implementacin.
Diseo del programa
Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de
los requerimientos del usuario as como tambin los anlisis necesarios para
saber qu herramientas usar en la etapa de Codificacin.
Codificacin
Es la fase en donde se implementa el cdigo fuente, haciendo uso de prototipos
as como de pruebas y ensayos para corregir errores. Dependiendo del lenguaje
de programacin y su versin se crean las bibliotecas y componentes reutilizables
dentro del mismo proyecto para hacer que la programacin sea un proceso mucho
ms rpido.
Pruebas
Los elementos, ya programados, se ensamblan para componer el sistema y se
comprueba que funciona correctamente y que cumple con los requisitos, antes de
ser entregado al usuario final.
Verificacin
Es la fase en donde el usuario final ejecuta el sistema, para ello el o los
programadores ya realizaron exhaustivas pruebas para comprobar que el sistema
no falle.
Mantenimiento
Una de las etapas ms crticas, ya que se destina un 75 % de los recursos, es el
mantenimiento del software ya que al utilizarlo como usuario final puede ser que
no cumpla con todas nuestras expectativas.
Ventajas
Realiza un buen funcionamiento en equipos dbiles y productos maduros, por lo
que se requiere de menos capital y herramientas para hacerlo funcionar de
manera ptima.
- Es un modelo fcil de implementar y entender.
- Est orientado a documentos.
- Es un modelo conocido y utilizado con frecuencia.
- Promueve una metodologa de trabajo efectiva: Definir antes que disear,
disear antes que codificar.4
Desventajas
- En la vida real, un proyecto rara vez sigue una secuencia lineal, esto crea
una mala implementacin del modelo, lo cual hace que lo lleve al fracaso.
- El proceso de creacin del software tarda mucho tiempo ya que debe pasar
por el proceso de prueba y hasta que el software no est completo no se
opera. Esto es la base para que funcione bien.
- Cualquier error de diseo detectado en la etapa de prueba conduce
necesariamente al rediseo y nueva programacin del cdigo afectado,
aumentando los costos del desarrollo.
- Una etapa determinada del proyecto no se puede llevar a cabo a menos de
que se haya culminado la etapa anterior.
Mtodo por objetivo
Establecer una presentacin de datos clara y ordenada para su absoluta
comprensin.
1. Investigar estructuras de bases de datos entendibles y normalizados.
2. Disear tablas con informacin clara.
3. Realizar encuesta mostrando ejemplos de vistas claras de informacin.
4. Disear diagrama de Entidad Relacin de la base de datos
5. Desarrollar la Base de Datos con la estructura implementada en el
diagrama Entidad-Relacin.
6. Crear conexin de la base de datos con nuestro lenguaje de programacin
a utilizar.
7. Desarrollar programa que mande a traer la informacin de la base de datos
a nuestro lenguaje de programacin.
8. Desarrollar la funcin que cree un archivo de texto para mostrar la
informacin ordenada en secciones.
9. Desarrollar la funcin que cree un archivo de texto para mostrar la
informacin en un archivo de clculo.
10. Hacer las pruebas correspondientes para el funcionamiento correcto de la
aplicacin.
Simplificar el proceso que lleva a cabo el actual protocolo de inventario en un solo
movimiento.
1. Investigar en la institucin del ITA el actual protocolo que lleva a cabo el
inventario de especificaciones de los equipos de cmputo.
2. Analizar la fuente del problema de los pasos empleados en la actualidad.
3. Desarrollar estrategias para simplificar el protocolo actual.
4. Desarrollar distintos diagramas de flujo para la simplificacin de pasos.
5. Desarrollar seudocdigo del diagrama de flujo.
6. Disear la interfaz grfica sencillamente entendible.
7. Desarrollar funciones en la aplicacin, que empleen los pasos del diagrama
de flujo diseado con anterioridad.
8. Realizar pruebas para verificar el correcto comportamiento de la
simplificacin de procesos actuales.

Reducir el tiempo en la recopilacin de datos de software y hardware de los


equipos de cmputo del Instituto Tecnolgico de Acapulco.
1. Investigar el tiempo estimado que lleva a cabo la recopilacin de datos
requeridos.
2. Realizar el diagrama de flujo de la recopilacin de datos actual.
3. Localizar el problema y analizar el mal funcionamiento que afecta el tiempo
estimado.
4. Realizar estrategias de solucin para reducir el tiempo actual.
5. Emplear las estrategias mediante un diagrama de flujo en el diseo de la
aplicacin.
6. Emplear el diagrama de flujo de la simplificacin de pasos en el diseo de
la interfaz grfica de la aplicacin.
7. Emplear el diagrama de flujo de la reduccin de tiempo en el cdigo de
programacin de la aplicacin.
8. Realizar pruebas para verificar los resultados esperados.
INSTITUTO TECNOLGICO DE ACAPULCO
CRONOGRAMA DE PROYECTO

NOMBRE DE LOS ESTUDIANTES: ERIK NAHIM ESTRADA REAL No. DE CONTROL: 12320721
NOMBRE DEL PROYECTO:(4) Desarrollo de una aplicacin que controle la informacin de software y hardware de los equipos de cmputo del ITA,
Incluyendo la insercin de los requerimientos recopilados, en un gestor de base de datos.
CARRERA: INGENIERIA EN SISTEMAS COMPUTACIONALES

ACTIVIDAD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Investigacin del proceso de auditora de P
requerimientos de computadoras actual R
Desarrollo del marco terico P
R
Desarrollo las alternativas de solucin P
R
Cotizacin de materiales a utilizar P
R
Desarrollo de la aplicacin P
(Interfaz Grfica) R
Programacin y solucin de posibles P
errores R
Desarrollo del prototipo P
R
Prueba del software implementado P
en el prototipo R
Implementacion P
R
Octubre Noviembre Diciembre Enero Marzo Abril Mayo Junio
OBSERVACIONES

PERIODO DE REALIZACIN:04 DE SEPTIEMBRE 28 DE MAYO


FIRMA DEL ESTUDIANTE:

Figura 24. Cronograma.


Bibliografa

Jon Byous, Java technology: The early years. Sun Developer Network, Consultado el 21
de abril de 2005. Consultado el 25 noviembre, 2017
James Gosling, A brief history of the Green project. Java.net, Consultado el 22 de abril de
2005. Consultado el 25 noviembre, 2017
James Gosling, Bill Joy, Guy Steele, y Gilad Bracha, The Java language specification,
tercera edicin. Addison-Wesley, 2005. Consultado el 26 noviembre, 2017
Tim Lindholm y Frank Yellin. The Java Virtual Machine specification, segunda edicin.
Addison-Wesley, 1999. Consultado el 26 noviembre, 2017
TecnoInver. (2017). Los 10 lenguajes de programacin ms usados. Consultado el 27
noviembre, 2017, de https://www.tecnoinver.cl/los-10-lenguajes-de-programacion-mas-
usados/
Alvarez, S. A. (2006, 7 febrero). Tipos de lenguajes de programacion. Consultado del 28
noviembre, 2017, de https://desarrolloweb.com/articulos/2358.php
Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition. Addison-
Wesley. p. 244. Consultado el 29 de Noviembre de 2017.
Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition. Addison-
Wesley. p. 213. Consultado el 29 de Noviembre de 2017.
Wilson, Leslie B. (1993). Comparative Programming Languages, Second Edition. Addison-
Wesley. p. 75. Consultado el 29 de Noviembre de 2017.
Desarrollo en cascada. (2017, 16 noviembre). Consultado el 30 noviembre, 2017, de
https://es.wikipedia.org/wiki/Desarrollo_en_cascada
Universidad de Barcelona, U. B. (2016). Ventajas y desventajas de la metodologa en
cascada. Consultado el 30 noviembre, 2017, de https://www.obs-edu.com/int/blog-project-
management/metodologia-agile/pros-y-contras-de-la-metodologia-en-cascada
Verdugo, O. V. A. (2016, 9 agosto). Proceso Unificado de Desarrollo. Consultado el 29
noviembre, 2017, de https://es.wikiversity.org/wiki/Proceso_Unificado_de_Desarrollo
Lutz, Mark (2010). O'Reilly Media, Inc., ed. Learning Python, Fourth Edition (libro).
O'Reilly. Consultado el 30 de Noviembre de 2017.
Pressman, R. S. (2010). Ingeniera del software: Un enfoque prctico. Mxico, D. F: MC
Graw Hill. Consultado el 30 de Noviembre de 2017.
Dumar, D. M. (2016, 31 marzo). Desarrollo en Espiral. Consultado el 30 noviembre, 2017,
de http://desarrolloespiral.blogspot.mx/2016/03/las-6-regiones-que-componen-este-
modelo.html
Desarrollo de software. Ciclo de vida en espiral con 6 regiones. (2011, 29 marzo).
Consultado el 1 diciembre, 2017, de https://jummp.wordpress.com/2011/03/29/desarrollo-
de-software-ciclo-de-vida-en-espiral-con-6-regiones/
Ballesteros, J. L. V. B. (2009, 8 agosto). Modelo Espiral. Consultado el 1 diciembre, 2017,
de https://jummp.wordpress.com/2011/03/29/desarrollo-de-software-ciclo-de-vida-en-
espiral-con-6-regiones/

Você também pode gostar