Anda di halaman 1dari 35

ÍNDICE DE CONTENIDO

Pág.

2. MARCO TEÓRICO ..................................................................1

2.1. ANÁLISIS Y DISEÑO DE SISTEMAS .................................... 1

2.1.1 Sistema de información ...........................................................1

2.1.2 Ciclo de Vida del Desarrollo de Sistemas ...............................2

2.1.3 Métodos de recopilación de información ...........................3

2.2. LENGUAJE DE MODELADO UNIFICADO UML ................... 6

2.2.1 Introducción a UML ..................................................................6

2.2.2 Diagramas UML .......................................................................6

2.3. SERVICIOS WEB .................................................................. 12

2.3.1 Tipos de servicios Web .........................................................13

2.4. BASES DE DATOS ............................................................... 14

2.4.1 Definición de bases de datos ................................................14

2.4.2 Sistema de Gestor de bases de datos ..................................15

2.5. LENGUAJES DE PROGRAMACIÓN ................................... 18

i
2.5.1 JavaScript ..............................................................................19

2.5.2 Java ........................................................................................20

2.5.3 PhP.........................................................................................20

2.5.4 C# ...........................................................................................21

2.5.5 Entorno de desarrollo integrado (IDE) ..................................21

2.6. INGENIERÍA DE SOFTWARE .............................................. 23

2.6.1 El Proceso Del Software ........................................................23

2.6.2 Modelos del proceso de software..........................................24

2.6.3 Metodología RUP ..................................................................29

ii
ÍNDICE DE FIGURAS

Pág.

FIGURA 1. ACTIVIDADES BÁSICAS DE LOS SISTEMAS DE INFORMACIÓN .........2

FIGURA 2. MODELO DE DIAGRAMA DE CASOS DE USO .......................................9

FIGURA 3. MODELO DE DIAGRAMAS DE SECUENCIA ........................................10

FIGURA 4. MODELO DE DIAGRAMA DE CLASES..................................................11

FIGURA 5. MODELO DE DIAGRAMA DE COLABORACIÓN ..................................12

FIGURA 6. ARQUITECTURA DE LOS SERVICIOS WEB ........................................13

FIGURA 7. MODELO EN CASCADA ........................................................................26

FIGURA 8. MODELO DE DESARROLLO INCEMENTAL .........................................27

FIGURA 9. MODELO DEL DESARROLLO EVOLUTIVO ..........................................28

FIGURA 10. ESTRUCTURA DE RUP .......................................................................30

FIGURA 11.FASES DEL RUP ..................................................................................31

iii
2. MARCO TEÓRICO

2.1. ANÁLISIS Y DISEÑO DE SISTEMAS

El análisis y diseño de sistemas que los analistas de sistemas llevan a cabo busca
comprender qué necesitan los humanos para analizar la entrada o el flujo de datos de
manera sistemática, procesar o transformar los datos, almacenarlos y producir
información en el contexto de una organización específica. Mediante un análisis
detallado, los analistas buscan identificar y resolver los problemas correctos. Además,
el análisis y diseño de sistemas se utiliza para analizar, diseñar e implementar las
mejoras en el apoyo para los usuarios y las funciones de negocios que se puedan
llevar a cabo mediante el uso de sistemas de información computarizados1

El análisis y diseño de sistemas se refiere al proceso de examinar la situación de una


empresa con el propósito de mejorar con métodos y procedimientos más adecuados.
El desarrollo de sistemas tiene dos componentes. Conjunto u ordenación de elementos
organizados para llevar a cabo algunos métodos, procedimiento o control mediante el
proceso de información, los cuales son:

Análisis: Es el proceso de clasificación e interpretación de hechos, diagnóstico de


problemas y empleo de la información para recomendar mejoras al sistemas.

Diseño: Especifica las características del producto terminado.

2.1.1 Sistema de información

Es un conjunto de elementos que interactúan entre sí con un fin común; que permite
que la información esté disponible para satisfacer las necesidades en una
organización, un sistema de información no siempre requiere contar con recuso

1
KENDALL, KENNETH E. Y KENDALL, JULIE E. Análisis y diseño de sistemas. Octava edición.
Pág. 6.

1
computacional aunque la disposición del mismo facilita el manejo e interpretación de
la información por los usuarios.2

Los elementos que interactúan entre sí son: el equipo computacional (cuando esté
disponible), el recurso humano, los datos o información fuente, programas ejecutados
por las computadoras, las telecomunicaciones y los procedimientos de políticas y
reglas de operación.3

Los sistemas de información cumplen con 4 actividades fundamentales básicas:

FIGURA 1. ACTIVIDADES BÁSICAS DE LOS SISTEMAS


DE INFORMACIÓN

Fuentes: Izamorar, Actividades básicas de un Sistema de Información.

2.1.2 Ciclo de Vida del Desarrollo de Sistemas

El Ciclo de vida del desarrollo de sistemas es una metodología en fases para el análisis
y diseño, de acuerdo con la cual los sistemas se desarrollan mejor al utilizar un ciclo
específico de actividades del analista y los usuarios. 4

2
http://www.incap.int/sisvan/index.php/es/acerca-de-san/conceptos/sistema-de-vigilancia
3
Ibídem.
4
KENDALL KENNETH y KENDALL JULIE, Análisis y diseño de sistemas, 8ed. Pearson Educación,
México, 2011, Pag 8.

2
Ciclo de vida del desarrollo de sistemas, pero por lo general alaban su metodología
organizada. Aunque cada fase se presenta de manera discreta, en realidad nunca se
puede llevar a cabo como un paso separado, sino que varias actividades pueden
ocurrir al mismo tiempo, e incluso se pueden repetir.5
FIGURA 8.CICLO DE VIDA DEL DESARROLLO DE SISTEMAS

Fuente: KENDALL KENNETH y KENDALL JULIE, Análisis y diseño de sistemas, 8ed. Pearson
Educación, México, 2011, Pag 8.

2.1.3 Métodos de recopilación de información

Hay tres métodos interactivos clave que puede usar para obtener los requerimientos
humanos de información de los miembros de la organización: entrevistas, diseño de
aplicaciones conjuntas (JAD) y encuestas aplicadas a las personas mediante
cuestionarios. Aunque son distintos en su implementación, estos métodos tienen
muchas cosas en común. La base de sus propiedades compartidas es hablar con las
personas en la organización y escucharlas para comprender sus interacciones con la
tecnología, a través de una serie de preguntas cuidadosamente elaboradas.

5
KENDALL KENNETH y KENDALL JULIE, Análisis y diseño de sistemas, 8ed. Pearson Educación,
México, 2011, Pag 8.

3
2.1.3.1 Entrevista

Una entrevista para recopilar información es una conversación dirigida con un


propósito específico, en la cual se usa un formato de preguntas y respuestas. En la
entrevista hay que obtener las opiniones del entrevistado y lo que siente sobre el
estado actual del sistema, los objetivos de la organización y los personales, y los
procedimientos informales para interactuar con las tecnologías de la información. 6

Pasos para la preparación de una entrevista:

1. Leer el material sobre los antecedentes. Lea y comprenda todo lo que pueda sobre
los antecedentes de los entrevistados y la organización. El sitio Web corporativo,
un informe anual actualizado, un boletín de noticias corporativo o cualquier
publicación que se emita para explicar el funcionamiento de la empresa al público
son fuentes útiles de información. Puede revisar en Internet cualquier información
corporativa.

2. Establecer los objetivos de la entrevista. Defina los objetivos de la entrevista a partir


de los antecedentes investigados y de su propia experiencia.

3. Decidir a quién entrevistar. Incluya personas clave de todos los niveles que se vean
afectados por el sistema en cierta forma.

4. Preparar al entrevistado. Para preparar a la persona que va a entrevistar, llame por


teléfono o envíe un mensaje de correo electrónico con anticipación, de manera que
el entrevistado esté preparado; si la entrevista es muy detallada, envíe previamente
el cuestionario por correo electrónico para que el entrevistado pueda pensar en sus
respuestas.

5. Decidir sobre los tipos de preguntas y su estructura. Redacte preguntas para cubrir
las áreas clave de la HCI (interacción humano-computadora) y el proceso de toma

6
KENDALL KENNETH y KENDALL JULIE, Análisis y diseño de sistemas, 8ed. Pearson Educación,
México, 2011, Pag 103.

4
de decisiones que haya descubierto al momento de determinar los objetivos de la
entrevista.

Tipos de preguntas:

Preguntas abiertas. Las preguntas abiertas son del tipo: “¿Qué piensa en cuanto a
poner a todos los gerentes en una intranet?”, “Por favor explique cómo toma una
decisión sobre la programación de tiempos y fechas.”, “¿En qué formas extiende el
sistema su capacidad de realizar tareas que no sería posible realizar mediante algún
otro medio?”. Abiertas describe las opciones que tiene el entrevistado para responder.
La respuesta puede constar de dos palabras o de dos párrafos.

Preguntas cerradas. La otra alternativa la constituyen las preguntas cerradas;


asumen las formas básicas “¿Es fácil usar el sistema actual?” y “¿Cuántos
subordinados tiene a su cargo?”. Las posibles respuestas son cerradas para el
entrevistado, debido a que sólo puede responder con un número finito tal como
“Ninguna”, “Una” o “Quince”. Una pregunta cerrada limita el entrevistado la respuesta
disponible.

2.1.3.2 Cuestionario

Es una técnica de recopilación de información que permite a los analistas de sistemas


estudiar las posturas, las creencias, el comportamiento y las características de varias
personas clave en la organización que se pueden ver afectadas por los sistemas actual
y propuesto.

Por medio del uso de cuestionarios, el analista puede buscar cuantificar lo que
encontró en las entrevistas. Además, es posible usar cuestionarios para determinar
qué tan difundido o limitado está realmente un sentimiento expresado en una de las
entrevistas. Por lo contrario, se pueden utilizar cuestionarios para encuestar a una
muestra grande de usuarios de sistemas con el fin de detectar problemas o llevar a la
mesa de discusión cuestiones importantes antes de programar las entrevistas.

5
2.2. LENGUAJE DE MODELADO UNIFICADO UML

2.2.1 Introducción a UML

UML es un lenguaje estándar para escribir planos de software. UML puede utilizarse
para visualizar, especificar, construir y documentar los artefactos de un sistema que
involucre una gran cantidad de software.7

UML es apropiado para modelar desde sistemas informáticos empresariales hasta


aplicaciones distribuidas basadas en la web, e incluso para sistemas embebidos de
tiempo real muy exigentes. Es un lenguaje muy expresivo, que cubre todas las vistas
necesarias para desarrollar y luego desplegar tales sistemas. Aunque sea expresivo,
UML no es difícil de aprender ni de utilizar. Aprender a aplicar UML de modo eficaz
comienza por crearse un modelo conceptual del lenguaje, lo cual requiere aprender
tres elementos principales: los bloques básicos de construcción de UML, Las reglas
que dictan como puede combinarse esos bloques y algunos mecanismos comunes
que se aplican a lo largo de todo el lenguaje. 8

2.2.2 Diagramas UML

Un diagrama es una la representación de grafica de un conjunto de elementos,


visualizado la mayoría de las veces como un grafo conexo de nodo (elementos) y arcos
(relaciones). Los diagramas se dibujan para visualizar un sistema desde diferentes
perspectivas, de forma que un diagrama es una proyección de un sistema.
Los diagramas que se utilizan con más frecuencia en UML son los que se citaran a
continuación:

7
G.BOOCH, J. RUMBAUGH E I. JACONSON, el lenguaje unificado de modelado 2 A Edición 2006, Pag.
15
8
G.BOOCH, J. RUMBAUGH E I. JACONSON, el lenguaje unificado de modelado 2A Edición 2006, Pag.
259

6
2.2.2.1 Diagrama de casos de uso

Los diagramas de caso de uso se emplean para modelar el comportamiento de como


un Usuario (Actor) se interrelaciona con un sistema en desarrollo. Estos diagramas
facilitan que un sistema, subsistemas o clases sean más comprensibles para los
diseñadores y desarrolladores.9

Un diagrama de casos de uso está conformado de los siguientes elementos:

 Actor.
 Casos de uso.
 Relación y dependencia, generalización y asociación.

Elementos

 Actor: Un actor representa un conjunto coherente de roles que los usuarios de


los casos de uso representan al interactuar con este. Normalmente este rol es
desempeñado por una persona, un dispositivo hardware o incluso otro sistema al
interactuar con nuestro sistema.
 Caso de Uso: Es un conjunto de secuencias de acciones o tareas que se realizan
tras una orden dada de algún agente externo. Gráficamente, se representa como
una elipse.

 Relaciones: en UML existen cuatro tipos de relaciones:

 Dependencia: Es una forma muy particular de relación entre clases, en la cual


una clase depende de otra, es decir, se instancia (se crea). Gráficamente, una
dependencia se representa con una línea discontinua, posiblemente dirigida, que
incluye a veces una etiqueta.

Dependencia

9
Ibídem Pag. 15

7
 Asociación: la relación asociación describe conexiones semánticas entre los
objetos individuales de clases. Las asociaciones proporcionan las conexiones,
con las cuales los objetos de diversas clases pueden interactuar. Gráficamente,
una asociación se representa como una línea continua:

Asociaciones

 Generalización. Una generalización es una relación de


especialización/generalización en la cual el elemento especializado (Hijo) se
basa en la especialización del elemento generalizado (Padre). El hijo comparte
la estructura y el comportamiento del padre. Gráficamente, una relación de
generalización se representa como una línea continua con una punta de flecha
vacía apuntando al padre.

Generalización

 Realización: Es una relación semántica entre clasificadores, en donde un


clasificador especifica un contorno que otro clasificador garantiza que
cumplirá. Se puede encontrar relaciones de realización en dos sitios: entre
interfaces y las clases y componentes que las realizan, y entre los casos de
uso y las colaboraciones que los realizan. Gráficamente, una relación se
representa como una mezcla entre una generalización y una relación de
dependencia.

Realización

8
FIGURA 2. MODELO DE DIAGRAMA DE CASOS DE USO

Fuente: JAIME O. MONTOYA GUZMÁN, Ejemplos de diagramas UML,


Interfaces gráficas de usuario, y usos del UML en la ingeniería inversa

2.2.2.2 Diagrama de secuencia

Los diagramas de secuencia pueden ilustrar una sucesión de interacciones entre


clases o instancias de objetos a través del tiempo. A menudo, los diagramas de
secuencia se utilizan para ilustrar el procesamiento descrito en los escenarios de casos
de uso. En la práctica, los diagramas de secuencia se derivan del análisis de casos de
uso y se utilizan en el diseño de sistemas para derivar las interacciones, las relaciones
y los métodos de los objetos en el sistema. Los diagramas de secuencia se utilizan
para mostrar el patrón general de las actividades o interacciones en un caso de uso. 10

10
KENDALL KENNETH y KENDALL JULIE, Análisis y diseño de sistemas, 8ed. Pearson Educación,
México, 2011, Pag. 294.

9
FIGURA 3. MODELO DE DIAGRAMAS DE SECUENCIA

Fuente: JAIME O. MONTOYA GUZMÁN, Ejemplos de diagramas UML,


Interfaces gráficas de usuario, y usos del UML en la ingeniería inversa

2.2.2.3 Diagrama de clases

Los diagramas de clases son los más utilizados en el modelado de sistemas orientados
a objetos. Un diagrama de clases muestra un conjunto de clases, interfaces y
colaboraciones así como sus relaciones. Los diagramas de clases se utilizan para
modelar la vista de diseño estática de in sistema. Esto incluye, principalmente, modelar
el vocabulario del sistema, modelar las colaboraciones o modular el esquema. 11

11
G.BOOCH, J. RUMBAUGH E I. JACONSON, el lenguaje unificado de modelado 2A Edición 2006, Pag.
113

10
FIGURA 4. MODELO DE DIAGRAMA DE CLASES

Fuente: JAIME O. MONTOYA GUZMÁN, Ejemplos de diagramas UML,


Interfaces gráficas de usuario, y usos del UML en la ingeniería inversa

2.2.2.4 Diagrama de colaboración

El diagrama de colaboración es un tipo de diagrama de interacción cuyo objetivo es


describir el comportamiento dinámico del sistema de información mostrando cómo
interactúan los objetos entre sí, es decir, con qué otros objetos tiene vínculos o
intercambia mensajes un determinado objeto. 12

Los diagramas de colaboración para su mejor representación de forma práctica están


compuesto de los siguientes elementos:

 Objeto: Un objeto se representa con un rectángulo dentro del que se incluye el


nombre del objeto y, si se desea, el nombre de la clase, separando ambos por
dos puntos.

 Vinculo: En el diagrama, un vínculo se representa como una línea continua que


une ambos objetos y que puede tener uno o varios mensajes asociados en ambas

12
https://manuel.cillero.es/doc/metrica-3/tecnicas/diagrama-de-interaccion/diagrama-de-colaboracion/

11
direcciones. Como un vínculo instancia una relación de asociación entre clases,
también se puede indicar la navegabilidad del mismo mediante una flecha.

 Mensaje: Un mensaje se representa con una pequeña flecha colocada junto a la


línea del vínculo al que está asociado. La dirección de la flecha va del objeto
emisor del mensaje al receptor del mismo. Junto a ella, se coloca el nombre del
mensaje y sus argumentos.

FIGURA 5. MODELO DE DIAGRAMA DE COLABORACIÓN

Fuente: manuel.cillero.es, Diagrama De Colaboración

2.3. SERVICIOS WEB

Un Servicio Web es un componente al que podemos acceder mediante protocolos Web


estándar, utilizando XML para el intercambio de información.

Servicio Web a una colección de procedimientos (métodos) a los que podemos llamar
desde cualquier lugar de Internet o de nuestra intranet, siendo este mecanismo de
invocación totalmente independiente de la plataforma que utilicemos y del lenguaje de
programación en el que se haya implementado internamente el servicio. 13

13
http://www.jtech.ua.es/j2ee/publico/servc-web-2012-13/sesion01-apuntes.html

12
Los servicios Web pueden combinarse con muy bajo acoplamiento para conseguir la
realización de operaciones complejas. De esta forma, las aplicaciones que
proporcionan servicios simples pueden interactuar con otras para "entregar" servicios
sofisticados añadidos.14

FIGURA 6. ARQUITECTURA DE LOS SERVICIOS WEB

Fuente: http://www.jtech.ua.es/j2ee/publico/servc-web-2012-13/sesion01-apuntes.html

2.3.1 Tipos de servicios Web

2.3.1.1 Servicios Web SOAP

Los servicios Web SOAP, o servicios Web "big", utilizan mensajes XML para
intercomunicarse que siguen el estándar SOAP (Simple Object Access Protocol), un
lenguaje XML que define la arquitectura y formato de los mensajes. Dichos sistemas
normalmente contienen una descripción legible por la máquina de la descripción de las
operaciones ofrecidas por el servicio, escrita en WSDL (Web Services Description

14
http://www.jtech.ua.es/j2ee/publico/servc-web-2012-13/sesion01-apuntes.html

13
Language), que es un lenguaje basado en XML para definir las interfaces
sintácticamente.

2.3.1.2 Servicios Web RESTful

 Los servicios Web RESTful (Representational State Transfer Web Services)


son adecuados para escenarios de integración básicos ad-hoc. Dichos servicios
Web se suelen integrar mejor con HTTP que los servicios basado en SOAP, ya
que no requieren mensajes XML o defunciones del servicio en forma de fichero
WSDL.

 Los servicios Web REST utilizan estándares muy conocidos como HTTP, SML,
URI, MIME, y tienen una infraestructura "ligera" que permite que los servicios se
construyan utilizando herramientas de forma mínima. Gracias a ello, el desarrollo
de servicios RESTful es barato y tiene muy pocas "barreras" para su adopción.

Al momento que decidimos desarrollar Software con extracción de datos desde internet
es necesario la aplicación de servicios web servicios web, también tenemos que
verificar las necesidad de dicho software, para la correcta aplicación de un tipo de
servicio web tales como SOAP o REST, los cuales ofrecen una gran variedad para la
comunicación e intercambio de mensajes entre aplicaciones tanto móviles como webs.

2.4. BASES DE DATOS

2.4.1 Definición de bases de datos

Una base de datos es una fuente central de datos con el fin de que varios usuarios la
compartan para su uso en varias aplicaciones. El corazón de una base de datos es el
sistema de administración de bases de datos (DBMS), el cual permite crear, modificar
y actualizar la base de datos, la recuperación de los datos y la generación de informes

14
y pantallas. A la persona que asegura que la base de datos cumpla con sus objetivos
se le conoce como administrador de bases de datos.15

2.4.2 Sistema de Gestor de bases de datos

Un Sistema Gestor de Base de Datos (SGBD, en inglés DBMS: DataBase


Management System) es un sistema de software que permite la definición de bases
de datos; así como la elección de las estructuras de datos necesarios para el
almacenamiento y búsqueda de los datos, ya sea de forma interactiva o a través de un
lenguaje de programación. Un SGBD relacional es un modelo de datos que facilita a
los usuarios describir los datos que serán almacenados en la base de datos junto con
un grupo de operaciones para manejar los datos.16

2.4.2.1 MySQL

Gestor de simple instalación que actúa del lado del cliente (servidor) y de código
abierto con licencia comercial disponible. Actualmente, pertenece a Oracle
Corporation. Gestiona bases de datos relacionales, es multiusuario y el más usado
dentro del software libre. Destaca por requerir de poca memoria y procesador para
funcionar, dando lugar además a una mayor velocidad en sus operaciones. Es usado
principalmente para el desarrollo web. 17

MySQL es un sistema de gestión de bases de datos relacionales. El software de


MySQL es de código abierto, lo que significa que posibilita que cualquier persona con
un amplio conocimiento de informática puede utilizar y modificar el software.
Cualquiera puede descargar software MySQL desde internet y utilizarlo si tener que
pagar por la adquisición. Además de ser un gestor de bases d datos muy rápido, fiable,

15
KENDALL KENNETH y KENDALL JULIE, Análisis y diseño de sistemas, 8ed. Pearson Educación,
México, 2011, Pag. 403
16
https://www.ecured.cu/Sistema_Gestor_de_Base_de_Datos
17
https://smarterworkspaces.kyocera.es/blog/mejores-gestores-de-base-de-datos-del-mercado

15
y fácil la utilización, también cuenta con un amplio conjunto de característica que lo
hace que se resalte y sea uno de los gestores más utilizadas en la actualidad.

Características principales de MySQL se detalla a continuación:

 Arquitectura Cliente y Servidor: MySQL al igual que todos los sistemas de


registros de datos en el mercado, este es un programa de registro basado en un
sistema cliente y servidor. Es decir que en este programa podemos encontrar
muchos clientes y servidores que se comunican entre sí para un mejor
rendimiento del programa. Es decir que por medio de este esquema se logra:
consultar datos, guardar cambios, establecer nuevas tablas de registros, entre
otros.

 Compatibilidad con SQL: Este sistema tiene como idioma de base de datos, un
lenguaje de consulta organizado. SQL es un lenguaje generalizado que logra
consultar y renovar datos para la gestión de una base de registros. Existen
diversos dialectos de SQL para que el sistema de bases de datos opere
adecuadamente. Además este se conecta con un SQL estándar, aunque con
limitaciones significativas y una gran numero de extensiones.

 Vistas: En pocos términos las vistas tienen gran relación con una consulta SQL
y se observa como un objeto en la base de datos distinto y hace viable una vista
individual en la base de datos. MySQL posee vistas semejantes desde la versión
5.0.

 Procedimientos almacenados: En este proceso se maneja únicamente con el


código SQL que está acumulado en el sistema de la base de registro. Los medios
almacenados habitualmente se utilizan para simplificar diversos pasos, como
implantar o eliminar un registro de referencias. Para los programadores y clientes,
poseen la ventaja de no procesar las tablas directamente, es lo mejor, los
usuarios siempre confían en los procedimientos almacenados.

16
 Desencadenantes: Los desencadenantes son instrucciones del SQL, este
servidor produce automáticamente en diversos procedimientos en la base de
registros, esto hace que los activadores trabajen de forma limitada desde la
versión 5.0 y se apunta a una mejor funcionalidad adicional para la versión 5.1.

 Interfaz del usuario: Existen diversas interfaces para el usuario beneficiosos, de


este modo logra gestionar un servidor MySQL. Por ese medio el sistema logra
acceder a todos los juegos de caracteres razonables desde la versión 4.1.

 Búsqueda de texto completo: La búsqueda de texto completo facilita y acelera


el sistema de búsqueda de las palabras que se localizan dentro de un campo de
contenido. Si utiliza MySQL para guardar un texto se logra utilizar una búsqueda
de texto completo. De este modo logra implementar una función de búsqueda
eficiente.

 Replicación: La replicación aprueba que el texto en una base de datos se


reproduzca en diversos monitores. En la práctica, esto se realiza por dos motivos:
Para incrementar la defensa contra fallas del sistema, de esta manera si un
monitor se apaga, otra logra ponerse en servicio. Además también logra mejorar
la velocidad en las consultas a la base de registros.

2.4.2.2 Microsoft SQL Server

SQL server cuenta con un entrono grafico para administración, en este se pueden usar
comandos DDL y DML de manera gráfica, es escalable, estable y permite administrar
información de otros servidores.

SQL Server es un sistema gestor de base de datos relacionales producido por


Microsoft. Es un sistema cliente/servidor que funciona como una extensión natural del
sistema operativo Windows. Entre otras características proporciona integridad de
datos, optimización de consultas, control de concurrencia y backup y recuperación.

17
SQL server cuenta con un entrono grafico para administración, en este se pueden usar
comandos DDL y DML de manera gráfica, es escalable, estable y permite administrar
información de otros servidores.Es fácil de usar y proporciona funciones de
almacenamiento de datos que sólo estaban disponibles en Oracle y otros sistemas
gestores de bases de datos más caros.18

2.4.2.3 Oracle

Es un gestor de base de datos bajo la licencia, sustituye el uso de multihilos por


multiprocesos garantizando de esta manera la estabilidad del sistema, es bastante
popular y fácil de administrar, la sintaxis de SQL que usa es bastante rápida y fácil de
aprender, es multiplataforma, en comparación con otros gestores es lento en
actualizaciones y su consumo de recursos es más alto que el de MySQL. 19

El objetivo principal de estos gestores es hacer más amable la interacción con la base
de datos, existen un sinfín de ellos, cada uno con características distintas algunas de
ellos completamente.

Si bien en la actualidad las bases de datos son un conjunto de información de muchos


usuarios centralizados con el fin de que varios usuarios la compartan para su uso en
varias aplicaciones, esta bases de datos ya que con el tiempo se hace demasiada
amplia es por ello que se requieren sistemas de gestión de bases de datos (SGBD),
es aquí que cumplen una función muy importante para el manejo y administración de
los datos, tenemos como ser: MySQL, SQL Server, Oracle DB.

2.5. LENGUAJES DE PROGRAMACIÓN

El lenguaje de programación es definido como un idioma artificial, formado por


símbolos y reglas sintácticas y semánticas, para expresar computaciones y que

18
https://www.ecured.cu/Sistema_Gestor_de_Base_de_Datos
19
https://blog.mastercoria.com/tops/top-6-gestores-de-bases-de-datos-mas-usados

18
pueden usarse para crear programas que controlen el comportamiento de una
máquina, expresar algoritmos con precisión, o como modo de comunicación humana. 20

Desde 1954 hasta la actualidad se han documentado más de 2.500 lenguajes de


programación (consultar en The Language List). Entre 1952 y 1972, la primera época
de los lenguajes de programación, se desarrollaron alrededor de 200 lenguajes, de los
que una decena fueron realmente significativos y tuvieron influencia en el desarrollo
de lenguajes posteriores.

2.5.1 JavaScript

JavaScript es un sencillo lenguaje de programación, que presenta una característica


especial: sus programas, llamados comúnmente scripts, se en las páginas HTML y se
ejecutan en el navegador (Mozilla Firefox, Microsoft Internet Explorer,...). Estos scripts
normalmente consisten en unas funciones que son llamadas desde el propio HTML
cuando algún evento sucede. De ese modo, podemos añadir efectos como que un
botón cambie de forma al pasar el ratón por encima, o abrir una ventana nueva al
pulsar en un enlace.21

JavaScript fue desarrollado por Netscape, a partir del lenguaje Java, el cual sigue una
filosofía similar, aunque va más allá. Java es un lenguaje de programación por sí
mismo, como lo puedan ser C, Pascal o Visual Basic. Esto quiere decir, que se puede
ejecutar un programa Java fuera de un navegador. Pero, repetimos, que la diferencia
fundamental es que Java es un lenguaje completo, que puede ser utilizado para crear
aplicaciones de todo tipo, mientras que JavaScript sólo “funciona” dentro de una
página HTML.22

20
https://www.muycomputerpro.com/2011/08/26/historia-lenguajes-programacion
21
https://docs.google.com/viewer?url=http%3A%2F%2Fwww.dtic.upf.edu%2F~tnavarrete%2Ffcsig%2F
javascript.pdf&pdf=true
22
https://docs.google.com/viewer?url=http%3A%2F%2Fwww.dtic.upf.edu%2F~tnavarrete%2Ffcsig%2F
javascript.pdf&pdf=true

19
2.5.2 Java

Java es un lenguaje de programación de propósito general, concurrente, orientado a


objetos que fue diseñado específicamente para tener tan pocas dependencias de
implementación como fuera posible. Su intención es permitir que los desarrolladores
de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo
(conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir
que el código 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 programación más
populares en uso, particularmente para aplicaciones de cliente-servidor de web.23

El lenguaje de programación Java fue originalmente desarrollado por James Gosling


de Sun Microsystems (la cual fue adquirida por la compañía 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 máquina virtual Java (JVM)
sin importar la arquitectura de la computadora subyacente. 24

2.5.3 PhP

El lenguaje de programación PHP Hypertext Pre-processor, fue desarrollado


puntualmente para diseñar páginas web dinámicas programando scripts del lado del
servidor. El lenguaje PHP siempre va incrustado dentro del HTML y generalmente se
le relaciona con el uso de servidores Linux.

PHP se caracteriza por ser un lenguaje gratuito y multiplataforma. Además de su


posibilidad de acceso a muchos tipos de bases de datos, también es importante

23
http://cs.ictea.com/knowledgebase.php?action=displayarticle&id=8790
24
Ibídem.

20
destacar su capacidad de crear páginas dinámicas, así como la posibilidad de separar
el diseño del contenido de una web.

2.5.4 C#

C# es un lenguaje orientado a objetos elegante y con seguridad de tipos que permite


a los desarrolladores crear una amplia gama de aplicaciones sólidas y seguras que se
ejecutan en .NET Framework. Puede utilizar este lenguaje para crear aplicaciones
cliente para Windows tradicionales, servicios Web XML, componentes distribuidos,
aplicaciones cliente-servidor, aplicaciones de base de datos, y muchas tareas más. 25

La sintaxis de C# es muy expresiva, aunque cuenta con menos de 90 palabras clave;


también es sencilla y fácil de aprender. La sintaxis de C# basada en signos de llave
podrá ser reconocida inmediatamente por cualquier persona familiarizada con C, C++
o Java.

Los desarrolladores que conocen cualquiera de estos lenguajes pueden empezar a


trabajar de forma productiva en C# en un plazo muy breve. La sintaxis de C# simplifica
muchas de las complejidades de C++ y, a la vez, ofrece funciones eficaces tales como
tipos de valores que aceptan valores NULL, enumeraciones, delegados, métodos
anónimos y acceso directo a memoria, que no se encuentran en Java. 26

Los lenguajes de programación idioma artificial con el cual un persona puede


comunicarse con una maquina (computadora), formado por símbolos y reglas
sintácticas y semánticas, para expresar sus comandos y pensamientos y que esta
máquina pueda entender de una forma más sencilla.

2.5.5 Entorno de desarrollo integrado (IDE)

25
https://msdn.microsoft.com/es-es/library/z1zx9t92(v=vs.80).aspx
26
Ibídem

21
Un IDE (integrated development environment o entorno de desarrollo integrado) es un
programa el cual su función es brindar a los programadores un conjunto de
herramientas para programar de una manera más eficiente. Hay que señalar que un
IDE se puede encontrar disponible para un lenguaje exclusivo o al mismo tiempo
incorporar un área de trabajo para diferentes lenguajes de programación. 27

A continuación de mencionan los IDE’s más conocidos en la actualidad para el


desarrollo de sistemas informáticos.

2.5.5.1 Netbeans

Netbeans es un entorno de desarrollo gratuito y de código abierto que en el momento


de escribir este artículo está en su versión 7.4. Permite el uso de un amplio rango de
tecnologías de desarrollo tanto para escritorio, como aplicaciones Web, o para
dispositivos móviles. Da soporte a las siguientes tecnologías, entre otras: Java, PHP,
Groovy, C/C++, HTML5,... Además puede instalarse en varios sistemas operativos:
Windows, Linux, Mac OS. Simplifica la gestión de grandes proyectos con el uso de
diferentes vistas, asistentes de ayuda, y estructurando la visualización de manera
ordenada, lo que ayuda en el trabajo diario.28

2.5.5.2 Eclipse

Eclipse es una plataforma de desarrollo, diseñada para ser extendida de forma


indefinida a través de plug-ins. Fue concebida desde sus orígenes para convertirse en
una plataforma de integración de herramientas de desarrollo. No tiene en mente un
lenguaje específico, sino que es un IDE genérico, aunque goza de mucha popularidad
entre la comunidad de desarrolladores del lenguaje Java usando el plug-in JDT que
viene incluido en la distribución estándar del IDE.29

27
programacionuptc2014.blogspot.com/2014/11/ide-para-programar.html
28
https://www.genbetadev.com/herramientas/netbeans-1
29
https://www.genbetadev.com/herramientas/eclipse-ide

22
2.5.5.3 Visual Studio

Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus siglas en
inglés) para sistemas operativos Windows. Soporta varios lenguajes de programación
tales como Visual C++, Visual C#, Visual J#, y Visual Basic .NET, al igual que entornos
de desarrollo web como ASP.NET. Aunque actualmente se han desarrollado las
extensiones necesarias para muchos otros.

Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones


web, así como servicios web en cualquier entorno que soporte la plataforma .NET (a
partir de la versión .NET 2002). Así se pueden crear aplicaciones que se
intercomuniquen entre estaciones de trabajo, páginas web y dispositivos móviles. 30

2.6. INGENIERÍA DE SOFTWARE

La ingeniería de software es una disciplina de la ingeniería que comprende todos los


aspectos de la producción de software desde las etapas iniciales de la especificación
del sistema, hasta el mantenimiento de éste después de que se utiliza. 31

2.6.1 El Proceso Del Software

Un proceso es un conjunto de actividades, acciones y tareas que se ejecutan cuando


va a crearse algún producto del trabajo. Una actividad busca lograr un objetivo amplio
(por ejemplo, comunicación con los participantes) y se desarrolla sin importar el
dominio de la aplicación, tamaño del proyecto, complejidad del esfuerzo o grado de
rigor con el que se usará la ingeniería de software. 32

30
https://todojosevaldeqz.wordpress.com/desarrollo-de-software/desarrollo-net/capitulo-vi-visual-
studio/historia-de-visual-studio/
31
Ian Sommerville Ingeniería del Software 7ma. Ed. Pag. 6
32
ROGER S. PRESSMAN, Ingenieria.de.software.enfoque.practico.7ed. Pag 14

23
A pesar de la variedad de propuestas de proceso de software, existe un conjunto de
actividades fundamentales que se encuentran presentes en todos ellos:

 Especificación de software: Se debe definir la funcionalidad y restricciones


operacionales que debe cumplir el software.
 Diseño e Implementación: Se diseña y construye el software de acuerdo a la
especificación.
 Validación: El software debe validarse, para asegurar que cumpla con lo que
quiere el cliente.
 Evolución: El software debe evolucionar, para adaptarse a las necesidades del
cliente.

2.6.2 Modelos del proceso de software

Un modelo de procesos del software es una descripción simplificada de un proceso


del software que representa una visión de ese proceso. Estos modelos pueden incluir
actividades que son parte de los procesos y productos del software y el papel de las
personas involucradas en la ingeniería de software.33

Existen varios modelos, paradigmas y filosofías de desarrollo, en los cuales se apoya


la ingeniería de software para la construcción del software, entre ellos se puede citar:

2.6.2.1 Modelo en Cascada

El primer modelo publicado sobre el proceso de desarrollo de software se derivó a


partir de procesos más generales de ingeniería de sistemas (Royce, 1970). Debido al
paso de una fase en cascada a otra, este modelo se conoce como “modelo en
cascada” o ciclo de vida del software.34

33
IAN SOMMERVILLE, Ingeniería de Software 9 ed. Pag. 30
34
Ibídem 9ed. Pag. 30

24
Las principales etapas del modelo en cascada reflejan directamente las actividades
fundamentales del desarrollo: 35

 Análisis y definición de requerimientos: Los servicios, las restricciones y las


metas del sistema se establecen mediante consulta a los usuarios del sistema.
Luego, se definen con detalle y sirven como una especificación del sistema.

 Diseño del sistema y del software: El proceso de diseño de sistemas asigna los
requerimientos, para sistemas de hardware o de software, al establecer una
arquitectura de sistema global. El diseño del software implica identificar y describir
las abstracciones fundamentales del sistema de software y sus relaciones.

 Implementación y prueba de unidad: Durante esta etapa, el diseño de software


se rea liza como un conjunto de programas o unidades del programa. La prueba de
unidad consiste en verificar que cada unidad cumpla con su especificación.

 Integración y prueba de sistema: Las unidades del programa o los programas


individuales se integran y prueban como un sistema completo para asegurarse de
que se cumplan los requerimientos de software. Después de probarlo, se libera el
sistema de software al cliente.

 Operación y mantenimiento: Por lo general (aunque no necesariamente), ésta es


la fase más larga del ciclo de vida, donde el sistema se instala y se pone en
práctica. El mantenimiento incluye corregir los errores que no se detectaron en
etapas anteriores del ciclo de vida, mejorar la implementación de las unidades del
sistema e incrementar los servicios del sistema conforme se descubren nuevos
requerimientos.

35
IAN SOMMERVILLE, Ingeniería de Software 9 ed. Pag. 31

25
FIGURA 7. MODELO EN CASCADA

Fuente: IAN SOMMERVILLE Ingeniería De Software

El modelo de cascada es el primer modelo de desarrollo de software del cual se basan


los demás modelos de desarrollo, esto se debe a que el modelo de cascada hace
referencia en si al ciclo de vida del software, se caracteriza por la secuencia bien
marcada que pone en claro que las actividades como son: La determinación de
requerimientos, diseño del sistema y del software, implementación y prueba de unidad,
integración y prueba del sistema y la operación y mantenimiento, se cumplan de forma
secuencial y sin omitir una fase.

2.6.2.2 Modelo Incremental

El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la


filosofía interactiva de Construcción de Prototipos. El modelo incremental aplica
secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario.
Cada secuencia lineal produce un incremento del software. El primer incremento
generalmente es un producto esencial denominado núcleo. 36

En una visión genérica, el proceso se divide en 4 partes:

36
https://procesosoftware.wikispaces.com/Modelo+Incremental

26
 Análisis
 Diseño
 Código
 Prueba

FIGURA 8. MODELO DE DESARROLLO INCEMENTAL

Fuente: Procesosoftware, Modelo Incremental

El Modelo Incremental es de naturaleza interactiva brindando al final de cada


incremento la entrega de un producto completamente operacional. Este modelo es
particularmente útil cuando no se cuenta con una dotación de personal suficiente. Los
primeros pasos los pueden realizar un grupo reducido de personas y en cada
incremento se añadirá personal, de ser necesario. Por otro lado los incrementos se
pueden planear para gestionar riesgos técnicos.37

Este modelo incremental lleva a pensar en un desarrollo por módulos, entregas


parciales del producto Software denominados "incrementos" del sistema, que son
escogidos en base a prioridades predefinidas de algún modo. El modelo incremental
permite una implementación con mejoras. Con cada incremento se agrega nueva

37
https://procesosoftware.wikispaces.com/Modelo+Incremental

27
funcionalidad o se cubren nuevos requisitos o se mejora la versión previamente
implementada del producto software.

2.6.2.3 Modelo del Desarrollo Evolutivo

La idea detrás de este modelo es el desarrollo de una implantación del sistema inicial,
exponerla a los comentarios del usuario, refinarla en N versiones hasta que se
desarrolle el sistema adecuado. Los evolutivos son modelos iterativos, permiten
desarrollar versiones cada vez más completas y complejas, hasta llegar al objetivo final
deseado; incluso evolucionar más allá, durante la fase de operación. Los modelos
“Iterativo Incremental” y “Espiral” (entre otros) son dos de los más conocidos y
utilizados del tipo evolutivo. 38

Una ventaja de este modelo es que se obtiene una rápida realimentación del usuario,
ya que las actividades de especificación, desarrollo y pruebas se ejecutan en cada
iteración.

FIGURA 9. MODELO DEL DESARROLLO EVOLUTIVO

Fuente: IAN SOMMERVILLE Ingeniería De Software

38
http://jorgetrejos.blogspot.com/2010/08/modelo-evolutivo.html

28
2.6.3 Metodología RUP

2.6.3.1 Definición de RUP

Es una metodología cuyo fin es entregar un producto de software. Se estructura todos


los procesos y se mide la eficiencia de la organización. Es un proceso de desarrollo de
software el cual utiliza el lenguaje unificado de modelado UML, constituye la
metodología estándar más utilizada para el análisis, implementación y documentación
de sistemas orientados a objetos.

El RUP es un conjunto de metodologías adaptables al contexto y necesidades de cada


organización.

El RUP es un producto de Rational (IBM). Se caracteriza por ser iterativo e incremental,


estar centrado en la arquitectura y guiado por los casos de uso. Incluye artefactos (que
son los productos tangibles del proceso como por ejemplo, el modelo de casos de uso,
el código fuente, etc.) y roles (papel que desempeña una persona en un determinado
momento, una persona puede desempeñar distintos roles a lo largo del proceso).

Principales características:

 Forma disciplinada de asignar tareas y responsabilidades (quién hace qué,


cuándo y cómo).
 Pretende implementar las mejores prácticas en Ingeniería de Software.
 Desarrollo iterativo.
 Administración de requisito.
 Uso de arquitectura basada en componentes.
 Control de cambios.
 Modelado visual del software.
 Verificación de la calidad del software.

29
2.6.3.2 Dimensiones del RUP

El proceso puede ser descrito en dos dimensiones o ejes:

 Eje horizontal: Representa el tiempo y es considerado el eje de los aspectos


dinámicos del proceso. Indica las características del ciclo de vida del proceso
expresado en términos de fases, iteraciones e hitos.

 Eje vertical: Representa los aspectos estáticos del proceso. Describe el proceso
en términos de componentes de proceso, disciplinas, flujos de trabajo, actividades,
artefactos y roles.

FIGURA 10. ESTRUCTURA DE RUP

Fuente: PROCESOSDESOFTWARE, Metodología RUP

2.6.3.3 Fases del RUP

RUP se repite a lo largo de una serie de ciclos que constituyen la vida de un producto.
Cada ciclo concluye con una generación del producto para los clientes. Cada ciclo
consta de cuatro fases: Inicio, Elaboración, Construcción y Transición. Cada fase se
subdivide a la vez en iteraciones, el número de iteraciones en cada fase es variable.

30
FIGURA 11.FASES DEL RUP

Fuente: PROCESOSDESOFTWARE, Metodología RUP

Las cuatro fases del ciclo de vida de la Metodología RUP se detallan a continuación:

 Inicio: Durante la fase de inicio se define el modelo del negocio y el alcance del
proyecto. Se identifican todos los actores y Casos de Uso, y se diseñan los Casos
de Uso más esenciales (aproximadamente el 20% del modelo completo). Se
desarrolla, un plan de negocio para determinar que recursos deben ser asignados
al proyecto.

 Elaboración: El propósito de la fase de elaboración es analizar el dominio del


problema, establecer los cimientos de la arquitectura, desarrollar el plan del
proyecto y eliminar los mayores riesgos.

En esta fase se construye un prototipo de la arquitectura, que debe evolucionar en


iteraciones sucesivas hasta convertirse en el sistema final. Este prototipo debe
contener los Casos de Uso críticos identificados en la fase de inicio. También debe
demostrarse que se han evitado los riesgos más graves.

 Construcción: La finalidad principal de esta fase es alcanzar la capacidad


operacional del producto de forma incremental a través de las sucesivas
iteraciones. Durante esta fase todos los componentes, características y requisitos

31
deben ser implementados, integrados y probados en su totalidad, obteniendo una
versión aceptable del producto.

 Transición: La finalidad de la fase de transición es poner el producto en manos de


los usuarios finales, para lo que se requiere desarrollar nuevas versiones
actualizadas del producto, completar la documentación, entrenar al usuario en el
manejo del producto, y en general tareas relacionadas con el ajuste, configuración,
instalación y facilidad de uso del producto.

La metodología elegida para el desarrollo del presente trabajo de grado es el Proceso


Unificado o RUP (Rational Unified Process) el cual presenta un marco de desarrollo
que sirve de guía para el proceso de elaboración de software, se estructura y se adapta
a todos los procesos de una organización, define cuales son los roles asignados para
cada personal asignando tareas y responsabilidades adecuadas, se caracteriza por
ser uno modelo iterativo incremental ya que es más verificable el resultado y avance
del desarrollo del software.

La ingeniería de software es una disciplina que se encarga del seguimiento y control


en el proceso de desarrollo de un producto software, el estudio de esta abarca desde
la especificación de los requisitos siguiendo con el diseño, desarrollo, pruebas,
implantación hasta llegar a las pruebas y posterior evolución posterior de dicho
producto, de tal manera que es aquella que proporciona todas las directrices y guías
para desarrollar un producto de calidad para el usuario final.

32

Anda mungkin juga menyukai