Marco Teorico Milton
Marco Teorico Milton
CAPÍTULO II
Marco Teórico
2.1. Introducción
En el presente capitulo se da a conocer el marco teórico para absorber las dudas y como se
sustenta el proyecto de grado, donde los elementos teóricos están extraídos de varias fuentes
por lo tanto constituyen la explicación del problema planteado.
2.2. Ingeniera de Software
La ingeniería del 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 este después de que se utiliza. En esta definición,
existen dos frases clave:
Disciplina de la ingeniería. Los ingenieros hacen que las cosas funcionen. Aplican
teorías, métodos y herramientas donde sean convenientes, pero las utilizan de forma
selectiva y siempre tratando de descubrir soluciones a los problemas, aun cuando no
existan teorías y métodos aplicables para resolverlos. Los ingenieros también saben que
deben trabajar con restricciones financieras y organizacionales, por lo que buscan
soluciones tomando en cuenta estas restricciones.
Todos los aspectos de producción de software. La ingeniería del software no solo
comprende los procesos técnicos del desarrollo de software, sino también con
actividades tales como la gestión de proyectos de software y el desarrollo de
herramientas, métodos y teorías de apoyo a la producción de software.
XP es una metodología ágil centrada en potenciar las relaciones interpersonales como clave
para el éxito en el desarrollo de software, promoviendo el trabajo en equipo, preocupándose
en todo momento del aprendizaje de los desarrolladores y propiciando un buen clima de
trabajo. XP se basa en la realimentación continua entre el cliente y el equipo de desarrollo,
comunicación fluida entre todos los participantes, simplicidad en las soluciones
implementadas y coraje para enfrentar los cambios. XP se define como especialmente
adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un
alto riesgo técnico. (Beck, 1999)
Diseños Simples: La metodología XP sugiere que hay que conseguir diseños simples y
sencillos. Hay que procurar hacerlo todo lo menos complicado posible para conseguir
un diseño fácilmente entendible.
Glosarios de Términos: Usar glosarios de términos y una correcta especificación de
los nombres de métodos y clases ayudará a comprender el diseño y facilitará sus
posteriores ampliaciones y la reutilización del código.
Riesgos: Si surgen problemas potenciales durante el diseño, XP sugiere utilizar una
pareja de desarrolladores para que investiguen y reduzcan al máximo el riesgo que
supone ese problema.
Funcionabilidad extra: Nunca se debe añadir funcionalidad extra al programa, aunque
se piense que en un futuro será utilizada.
Refactorizar: Refactorizar es mejorar y modificar la estructura y codificación de
códigos ya creados sin alterar su funcionalidad. Refactorizar supone revisar de nuevo
estos códigos para procurar optimizar su funcionamiento.
2.2.1.3.3. Codificación
El cliente es una parte más del equipo de desarrollo, su presencia es indispensable en las
distintas fases de XP. A la hora de codificar una historia de usuario su presencia es aún más
necesaria. No olvidemos que los clientes son los que crean las historias de usuarios y
negocian los tiempos en los que serán implementados. Antes del desarrollo de cada historia
de usuario el cliente debe especificar detalladamente lo que esta hará y también tendrá que
estar presente cuando se realicen los test que verifiquen que la historia implementada
cumple la funcionalidad especificada. La codificación debe hacerse ateniendo a estándares
de codificación ya creados. Programar bajo estándares mantiene el código constante y
facilita su comprensión y escalabilidad. (Beck, 1999)
2.2.1.3.4. Pruebas
Uno de los planes de la metodología XP es el uso de test para comprobar el funcionamiento
de los códigos que vayamos implementando.
El uso de los test en XP es el siguiente:
Se deben crear las aplicaciones que realizarán los test con un entorno de desarrollo
específico para test.
Hay que someter al test las distintas clases del sistema omitiendo los métodos más
triviales.
Se deben crear los test que pasarán los códigos antes de implementarlos; en el apartado
anterior se explicó la importancia de crear antes los test que el código.
Un punto importante es crear test que no tengan ninguna dependencia del código que en
un futuro evaluará.
Test de aceptación. Los test mencionados anteriormente sirven para evaluar las distintas
tareas en las que ha sido dividida una historia de usuario.
Al ser las distintas funcionalidades de nuestra aplicación no demasiado extensas, no se
harán test que analicen partes de las mismas, sino que las pruebas se realizarán para las
funcionalidades generales que debe cumplir el programa especificado en la descripción
de requisitos.
2.2.1.4. Roles de la metodología XP
Los roles que posee la metodología XP permite a los desarrolladores organizar y distribuir
el trabajo de manera más equilibrada y eficiente. Estos roles se pueden resumir de la
siguiente manera:
Programador
Responsable de construir, analizar, programar, tomar decisiones y realizar pruebas del
sistema.
Jefe de proyecto
Responsable de coordinar, gestionar y administrar las reuniones para considerar las
condiciones de cómo avanza el proyecto.
Cliente
Persona que debe especificar qué construir, cuándo y dónde realizar las pruebas.
Encargado de pruebas
Delegado de ayudar al cliente para que las pruebas sean realizadas y superadas.
Rastreador
Responsable de obtener datos históricos; encargados de observar sin molestar durante el
desarrollo del sistema.
Entrenador
Facultado de visualizar el proceso y desarrollo del sistema, desde un segundo plano.
Cuando se utilizan los roles de la metodología xp se trata al cliente como parte del equipo
de desarrolladores, lo que evita la redundancia de información, y permite que se realicen
pruebas constantes de la aplicación. Otro beneficio de esta inclusión es que se efectúan
cambios mientras avanza el desarrollo según los requerimientos solicitados evitando
pérdidas de tiempo.
(Rodriguez, 2014)
2.3. Diagramas UML(LENGUAJE UNIFICADO DE MODELADO)
UML es ante todo un lenguaje. Un lenguaje proporciona un vocabulario y una reglas para permitir
una comunicación. En este caso, este lenguaje se centra en la representación gráfica de un
sistema. Este lenguaje nos indica cómo crear y leer los modelos, pero no dice cómo crearlos. Esto
último es el objetivo de las metodologías de desarrollo. Las objetivos de UML son muchos, pero se
pueden sintetizar sus funciones:
Visualizar: UML permite expresar de una forma gráfica un sistema de forma que otro lo puede
entender.
Especificar: UML permite especificar cuáles son las características de un sistema antes de su
construcción
Construir: A partir de los modelos especificados se pueden construir los sistemas diseñados.
Documentar: Los propios elementos gráficos sirven como documentación del sistema
desarrollado que pueden servir para su futura revisión
Aunque UML está pensado para modelar sistemas complejos con gran cantidad de software, el
lenguaje es los suficientemente expresivo como para modelar sistemas que no son informáticos,
como flujos de trabajo (workflow ) en una empresa, diseño de la estructura de una organización y
por supuesto, en el diseño de hardware.
Un modelo UML está compuesto por tres clases de bloques de construcción:
Elementos: Los elementos son abstracciones de cosas reales o ficticias (objetos, acciones,
etc.).
Relaciones: relacionan los elementos entre sí.
Diagramas: Son colecciones de elementos con sus relaciones.
(G. Booch, J. Rumbaugh y I. Jacobson, “El Lenguaje Unificado de Modelado”, Addison Wesley,
1999.)
2.3.1. DIAGRAMAS
2.3.1.1. DIAGRAMA DE CASOS DE USO
Un caso de uso es una descripción de las acciones de un sistema desde el punto de vista del
usuario
Figura 3.1.1.1. Diagramas de casos de uso
Fuente: Propia
2.3.1.2. DIAGRAMA DE SECUENCIA
El diagrama de secuencia UML, muestra la mecánica de la interacción con base en
tiempos. El diagrama de secuencia es un tipo de diagrama de interacción cuyo objetivo es
describir el comportamiento dinámico del sistema de información haciendo énfasis en la
secuencia de los mensajes intercambiados por los objetos.
Figura 3.1.1.2.Diagramas de Secuencia
Fuente: (“Diagrama de Secuencia”, Manuel Cillero, (2004))
∑ VPIi=∑ VPCi
i=1 i =1
Es la tasa de interés para la cual los ingresos totales actualizados es igual a los costos
totales actualizados:
ITAc=CTAc
Es la tasa de interés por medio de la cual se recupera la inversión
Es la tasa de interés máxima a la que se pueden endeudar para no perder dinero con la
inversión.
Es la tasa real que proporciona un proyecto de inversión y es aquella que al ser utilizada
como tasa de descuento en el cálculo de un VAN dará como resultado 0.
Cálculo de la Tasa Interna de Retorno La Tasa Interna de Retorno TIR es el tipo de descuento que
hace igual a cero el VAN:
Sin embargo, el cálculo obtenido puede estar bastante alejado de la TIR real.
Uso general de la TIR
Como ya se ha comentado anteriormente, la TIR o tasa de rendimiento interno, es una
herramienta de toma de decisiones de inversión utilizada para conocer la factibilidad de diferentes
opciones de inversión.
El criterio general para saber si es conveniente realizar un proyecto es el siguiente:
Si TIR >=r Se aceptará el proyecto. La razón es que el proyecto da una rentabilidad mayor
que la rentabilidad mínima requerida (el coste de oportunidad).
Si TIR <=r Se rechazará el proyecto. La razón es que el proyecto da una rentabilidad menor
que la rentabilidad mínima requerida
Representa el costo de oportunidad.
2.6.6.1. DIFICULTADES EN EL USO DE LA TIR
Criterio de aceptación o rechazo. El criterio general sólo es cierto si el proyecto es del tipo
"prestar", es decir, si los primeros flujos de caja son negativos y los siguientes positivos. Si el
proyecto es del tipo "pedir prestado" (con flujos de caja positivos al principio y negativos
después), la decisión de aceptar o rechazar un proyecto se toma justo al revés:
o Si TIR >r Se rechazará el proyecto. La rentabilidad que nos está requiriendo este préstamo
es mayor que nuestro costo de oportunidad.
o Si TIR <= r Se aceptará el proyecto
Comparación de proyectos excluyentes. Dos proyectos son excluyentes si solamente se puede
llevar a cabo uno de ellos. Generalmente, la opción de inversión con la TIR más alta es la
preferida, siempre que los proyectos tengan el mismo riesgo, la misma duración y la misma
inversión inicial. Si no, será necesario aplicar el criterio de la TIR de los flujos incrementales.
Proyectos especiales, también llamado el problema de la inconsistencia de la TIR. Son
proyectos especiales aquellos que en su serie de flujos de caja hay más de un cambio de signo.
Estos pueden tener más de una TIR, tantas como cambios de signo. Esto complica el uso del
criterio de la TIR para saber si aceptar o rechazar la inversión. Para solucionar este problema,
se suele utilizar la TIR Corregida.
2.7. |||||||||||||||||||||||||||||||||||||||||
2.8. Ingeniería Web.
La ingeniería web es la aplicación de metodologías sistemáticas, disciplinadas y
cuantificables de desarrollo eficiente, operación y evolución de aplicaciones de alta calidad
en la World Wide Web. La Ingeniería Web es una versión adaptada del enfoque de la
Ingeniería de Software que propone una estructura ágil, pero disciplinada, para construir
sistemas y aplicaciones basados en la web con calidad industrial (Pressman, 2008)
2.8.1. Definición de Ingeniería Web
Una Aplicación Web (en lo sucesivo también denominada WebApp) es la forma en que se
denomina a una categoría de software centrada en redes y que agrupa una amplia gama de
aplicaciones diferentes a las conocidas como nativas. Son poco más que un conjunto de
archivos de hipertexto vinculados que presentan información con uso de texto y gráficas
limitadas. Están integradas con bases de datos corporativas y aplicaciones de negocios,
desde cierto punto de vista se considera como un esfuerzo multidisciplinario debido al 32
manejo de múltiples formatos, siendo susceptible de efectos éticos y legales. (Pressman,
2010)
2.8.2. Características de aplicaciones Web
Pueden ser ejecutadas en múltiples plataformas ya que no hacen uso del sistema
operat1ivo del terminal o equipo, sino del navegador implementado para su ejecución.
No se instalan en el dispositivo y consiguen una experiencia de operación muy similar a
una aplicación nativa, pero requieren conexión constante a Internet.
La inversión de recursos para su desarrollo se realizará una sola vez para múltiples
plataformas, pero se deberá optimizar en cada una de ellas para obtener el mejor
rendimiento de cada ambiente.
El diseño de interfaz está condicionado por necesidades de claridad y simplicidad sobre
la de impacto.
Su funcionalidad puede variar desde navegación/consulta de ABMs hasta complejos
servicios transaccionales de comercio electrónico. (Olsina, 1999)
2.10. Bibliografía
https://www.sage.com/es-es/blog/tasa-interna-de-retorno-tir-que-es-y-como-se-
calcula/
http://www.sc.ehu.es/jiwdocoj/mmis/cocomo.htm
https://carespe2.blogs.uv.es/
https://www.ecured.cu/SGBD
https://www.google.com/search?q=modelo+de+dise
%C3%B1o+de+base+de+datos&ei=NusCY7TKJPj25OUPxPeZyAg&oq=MO
DELO+DE+DISE
%C3%91O+DE+BASE+DE&gs_lcp=Cgdnd3Mtd2l6EAMYADIFCAAQgAQy
BggAEB4QFjoECAAQQzoHCC4Q1AIQQzoHCAAQsQMQQzoQCC4QsQM
QgwEQxwEQ0QMQQzoUCC4QgAQQsQMQgwEQxwEQ0QMQ1AI6CwguE
IAEELEDEIMBOgsIABCABBCxAxCDAToICAAQgAQQsQM6CAguEIAEE
LEDOggILhCABBDUAjoICAAQsQMQgwE6CggAELEDEIMBEEM6CAgAE
B4QDxAWSgQIQRgASgQIRhgAUABYui5g3DRoAHABeACAAdABiAGDFp
IBBjE5LjcuMZgBAKABAcABAQ&sclient=gws-wiz
https://www.idqweb.com/que-es-php/
https://www.ictea.com/cs/index.php?rp=/knowledgebase/8663/iQue-es-el-
lenguaje-de-programacion-PHP.html#:~:text=Fue%20uno%20de%20los
%20primeros,genera%20la%20p%C3%A1gina%20Web%20resultante.
https://www.ictea.com/cs/index.php?rp=/knowledgebase/8790/iQue-es-el-
lenguaje-de-programacion-JAVA.html
http://www.disca.upv.es/Enheror/Pdf/Actauml.Pdf
https://www.academia.edu/17124068/
Aprendiendo_UML_en_24_Horas_Joseph_Schmuller