Está en la página 1de 13

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA

FACULTAD DE INGENIERIA
ESCUELA TECNICA
LABORATORIO DE INTRODUCCION A LA PROGRAMACION Y COMPUTACION 2
AUXILIAR: REIMER CHAMALE

INVESTIGACION FASE 1

Nombre: Esteban Eliseo Gmez De Len


Carn: 201313843
Lugar y fecha: Ciudad Universitaria, Guatemala 14/06/16

GIT
Como instalar GIT

Para instalar la herramienta de GIT se debe descargar desde la pgina https://gitscm.com/downloads la versin que necesitamos respecto al sistema operativo, en este
caso el sistema operativo es Windows 10 para 32 bits.

Se ejecuta el archivo de instalacin (de preferencia como


administrador) y se otorgan los permisos necesarios.

Se siguen los pasos que presenta el instalador y listo podemos


empezar a utilizarlo.

Cmo usar GIT

Crear un repositorio nuevo:


Crea un directorio nuevo, brelo y ejecuta: git init para crear un nuevo repositorio de git.
Hacer checkout a un repositorio:
Crea una copia local del repositorio ejecutando git clone /path/to/repository
Si utilizas un servidor remoto, ejecuta git clone username@host:/path/to/repository
Flujo de trabajo:Comentarios personales sobre GIT

Tu repositorio local est compuesto por tres "rboles" administrados por git. El primero es tu
Directorio de trabajo que contiene los archivos, el segundo es el Index que acta como una zona
intermedia, y el ltimo es el HEAD que apunta al ltimo commit realizado.
add & commit:
Puedes registrar cambios (aadirlos al Index) usando git add <filename>, git add .
Este es el primer paso en el flujo de trabajo bsico. Para hacer commit a estos cambios se usa git
commit -m "Commit message". Ahora el archivo est incluido en el HEAD, pero an no en tu
repositorio remoto.
Envo de cambios:
Tus cambios estn ahora en el HEAD de tu copia local. Para enviar estos cambios a tu repositorio
remoto ejecuta git push origin master. Reemplaza master por la rama a la que quieres enviar tus
cambios.
Si no has clonado un repositorio ya existente y quieres conectar tu repositorio local a un repositorio
remoto, usa git remote add origin <server>. Ahora podrs subir tus cambios al repositorio remoto
seleccionado.
actualiza & fusiona:
Para actualizar tu repositorio local al commit ms nuevo, ejecuta git pull en tu directorio de trabajo
para bajar y fusionar los cambios remotos.Para fusionar otra rama a tu rama activa (por ejemplo,
master), utiliza git merge <branch> en ambos casos git intentar fusionar automticamente los
cambios. Desafortunadamente, no siempre ser posible y se podrn producir conflictos. T eres
responsable de fusionar esos conflictos manualmente al editar los archivos mostrados por git. Despus
de modificarlos, necesitas marcarlos como fusionados con git add <filename>.
Antes de fusionar los cambios, puedes revisarlos usando
git diff <source_branch> <target_branch>
Reemplaza cambios locales:
En caso de que se haga algo mal puedes reemplazar cambios locales usando el comando
Reemplaza cambios locales:
En caso de que se haga algo mal puedes reemplazar cambios locales usando el comando
git checkout -- <filename>. Este comando reemplaza los cambios en tu directorio de trabajo con el
ltimo contenido de HEAD. Los cambios que ya han sido agregados al Index, as como tambin los
nuevos archivos, se mantendrn sin cambio.
Por otro lado, si quieres deshacer todos los cambios locales y commits, puedes traer la ltima versin
del servidor y apuntar a tu copia l

Comentarios personales sobre GIT


En Git, cada desarrollador dispone de un repositorio completo instalado en su mquina; es algo inherente
a los sistemas de control de versiones distribuidos. Todos los cambios de nuestros archivos a lo largo del
desarrollo los vamos a tener en local. Opcionalmente, esos cambios los enviaremos a repositorios
remotos, como puede ser GitHub o cualquier otro. Esto quiere decir que mi mquina tendr todo lo que
necesito para trabajar. Tendremos una copia del repositorio completo, cada uno de los archivos de todo
el proyecto. Con el repositorio Git en local, luego decidir a qu otros servidores o mquinas mando mis
cambios.

Entornos
Qu tipos de entornos existen al desarrollar.
Entorno de programacin
Las actividades mejor soportadas por herramientas de desarrollo son normalmente las centrales:
codificacin y pruebas de unidades. El conjunto de herramientas que soportan estas actividades
constituyen lo que se llama un entorno de programacin. A veces se utilizan las
siglas IDE (Integrated Development Environment) para designar estos entornos, aunque no son un
entorno de desarrollo completo, sino slo una parte de l.

Siguiendo la terminologa anterior, de niveles funcionales, es el banco de trabajo del


programador
Da soporte a las actividades de la fase de codificacin (preparacin del cdigo y prueba de
unidades)
Los mismos productos sirven tambin para el diseo detallado y para las pruebas de
integracin.
Se sita, por tanto, en la parte central del ciclo de desarrollo

Funciones de un Entorno de Programacin


Como se ha dicho, la misin de un Entorno de Programacin es dar soporte a la preparacin de
programas, es decir, a las actividades de codificacin y pruebas.

Las tareas esenciales de la fase de codificacin son:


o Edicin (creacin y modificacin) del cdigo fuente
o Proceso/ejecucin del programa
Interpretacin directa (cdigo fuente)
Compilacin (cdigo mquina) - montaje - ejecucin
Compilacin (cdigo intermedio) - interpretacin
Otras funciones:
o Examinar (hojear) el cdigo fuente
o Analizar consistencia, calidad, etc.
o Ejecutar en modo depuracin
o Ejecucin automtica de pruebas
o Control de versiones
o Generar documentacin, reformar cdigo
o ... y otras muchas ms ...

Tipos de Entornos de Programacin


Un entorno de programacin puede estar concebido y organizado de maneras muy diferentes. A
continuacin se mencionan algunas de ellas.

En las primeras etapas de la informtica la preparacin de programas se realizaba


mediante una cadena de operaciones tales como la que se muestra en la figura para un
lenguaje procesado mediante compilador. Cada una de las herramientas deba invocarse
manualmente por separado. En estas condiciones no puede hablarse propiamente de un
entorno de programacin

o
o
o

El editor es un editor de texto simple


El compilador traduce cada fichero de cdigo fuente a cdigo objeto
El montador (linker / builder / loader) combina varios ficheros objeto para generar
un fichero ejecutable
o El depurador maneja informacin en trminos de lenguaje de mquina
Un entorno de programacin propiamente dicho combina herramientas como stas,
mejoradas y mejor integradas. A veces se nombra con las siglas IDE (Integrated
Development Environment).

Los componentes cuya evolucin ha sido ms aparente son los que realizan la interaccin
con el usuario:
o El editor ya no es un simple editor de texto, sino que tiene una clara orientacin al
lenguaje de programacin usado (reconoce y maneja determinados elementos
sintcticos)
o El depurador no presenta informacin en trminos del lenguaje de mquina, sino
del lenguaje fuente
o El editor est bien integrado con las dems herramientas (se posiciona
directamente en los puntos del cdigo fuente en los que hay errores de
compilacin, o que se estn ejecutando con el depurador en un momento dado.
No es fcil establecer una clasificacin dentro de la variedad de entornos de programacin
existentes. En algn momento [1] se describieron las siguientes clases de entornos, no
excluyentes, usando un criterio esencialmente pragmtico:
o Entornos centrados en un lenguaje
o Entornos orientados a estructura
o Entornos coleccin de herramientas
En [4] y [5] se exponen otras clasificaciones basadas en criterios ms o menos formales.

Entornos centrados en un lenguaje


Presentan las siguientes caractersticas generales:

Son especficos para un lenguaje de programacin en particular


Estn fuertemente integrados. Aparecen como un todo homogneo
Se presentan como una herramienta nica
El editor tiene una fuerte orientacin al lenguaje
Son relativamente cmodos o fciles de usar
A veces son poco flexibles en lo referente a la interoperacin con otros productos o a la
ampliacin de sus funciones
Se basan en representar el cdigo fuente como texto

Podemos encontrar ejemplos de estos entornos para todo tipo de lenguajes

Lenguajes funcionales con interpretacin directa


o (Inter)Lisp, Haskell, etc.
Lenguajes compilados a cdigo de mquina nativo
o Delphi, Visual C++, AdaGide/GNAT, GPS, etc.

Lenguaje ejecutados sobre mquina virtual


o Java (Visual Age, Eclipse), C# (Visual Studio .NET)
Ejemplos especiales:
o Entornos Ada (Stoneman, Cais, Asis)
o Entornos Smalltalk
o Entornos Oberon, Component Pascal

Entornos orientados a estructura


Podran considerarse incluidos en la clase anterior, ya que suelen ser especficos para un lenguaje
de programacin, pero estn concebidos de manera diferente:

El editor de cdigo fuente no es un editor de texto, sino un editor de estructura (editor


sintctico)
Se basan en representar internamente el cdigo fuente como una estructura:
o rbol de sintaxis abstracta: AST
La presentacin externa del cdigo es en forma de texto
o Plantillas (elementos sintcticos no terminales)
o Texto simple (elementos terminales - a veces "frases" para expresiones)
Compilacin incremental (en algunos casos)
Para desarrollo personal, no en equipo
Ejemplos:
o The Cornell Program Synthesizer (subconjunto de PL/I)
o Mentor (Pascal)
o Alice Pascal
o Gandalf (intenta ser un entorno de desarrollo completo, para todo el ciclo de vida)

Estos entornos estuvieron de moda en los aos 80. Los desarrollos fueron fundamentalmente
acadmicos, y quedaron en desuso. En la actualidad los lenguajes de marcado (XML) pueden ser una
buena forma de representar la estructura del cdigo fuente con vistas a su manipulacin. Existen
editores y procesadores XML que podran ser la base de nuevos entornos de programacin
orientados a estructura.
Entornos basados en combinacin de herramientas
Consisten en una combinacin de diversas herramientas capaces de interoperar entre ellas de
alguna manera. Se denominanentornos toolkit. Presentan las siguientes caractersticas:

Presentan integracin dbil


Son un conjunto de elementos relativamente heterogneos
Son fciles de ampliar o adaptar mediante nuevas herramientas
Pueden ser construidos en parte por el propio usuario (programador): ste es ms o
menos el estilo UNIX original
Ofrecen poco control de uso de cada herramienta
El elemento frontal (front-end) para interaccin con el usuario suele ser un editor
configurable, con llamadas a herramientas externas. A veces estos editores configurables
se designan tambin con las siglas IDE (que debera reservarse para el entorno completo)
Ejemplos de editores configurables

o
o
o

Emacs, Vim, Gvim


Med, SciTE, jEdit
Eclipse (algo ms que un editor)

Entornos multilenguaje
Hay aplicaciones que combinan piezas de cdigo fuente escritas en diferentes lenguajes de
programacin. Algunas posibilidades de combinacin son las siguientes:

Entornos genricos
o No se combinan lenguajes en un mismo programa. Hay varios programas, cada
uno en su propio lenguaje
o Bastara combinar las herramientas correspondientes a cada lenguaje
(compiladores, etc.)
o Se podra usar un frontal comn: editor personalizable que soporte los lenguajes
concretos
o Ejemplos:
Emacs (con diferentes "modos")
Eclipse (con diferentes "plug-ins")
Entornos especficos
o Para una combinacin concreta de lenguajes
o Vienen a ser como los entornos centrados en un lenguaje, slo que admiten ms
de uno
o Usan un formato binario compatible que permite combinar en un mismo
programa partes escritas en los diferentes lenguajes
o Ejemplo: GPS permite combinar mdulos en Ada y C++
Lenguajes ejecutados sobre mquina virtual
o La mquina virtual establece el formato del cdigo binario
o Pueden combinarse mdulos escritos en diferentes lenguajes para los que exista
el compilador apropiado
o Cada lenguaje puede tener su entorno de programacin separado, o bien existir
un entorno de programacin nico
o Ejemplos:
JVM (Java Virtual Machine). El lenguaje original es Java. El intrprete es el
JRE (Java Runtime Environment). Hay compiladores a JVM para otros
lenguajes adems de Java: Ada, Fortran, Component Pascal (Oberon), etc.
(incluso C#)
.Net (Microsoft). El lenguaje original es C#. El intrprete es el CLR
(Common Language Runtime). Hay compiladores a .Net para otros
lenguajes adems de C#: Ada, Fortran, Component Pascal (Oberon), etc.
(incluso Java)

Entornos para ingeniera de software


Un entorno de programacin, tal como se ha definido anteriormente, servira para dar soporte a las
tareas de desarrollo de software realizadas por una persona. Para desarrollar proyectos de software
no triviales se necesita trabajar en equipo usando las recomendaciones de la ingeniera de software.

Cada miembro del equipo de desarrollo puede disponer de una estacin de trabajo con un entorno
de programacin adecuado para realizar su trabajo individual, y se necesita adems algn medio de
combinar los trabajos individuales en una labor de conjunto, debidamente organizada.
Una manera intuitiva de organizar el entorno general de desarrollo es basarlo en un repositorio
central de informacin, dotado de un sistema de gestin de configuracin, y aadirle sistemas de
mensajera, de gestin de incidencias, herramientas de modelado para anlisis y diseo, de gestin
del proyecto, etc.

Por ejemplo, hay plataformas generales que ofrecen este soporte como servicios web, incluso de
manera gratuita para el desarrollo de software libre: SourceForge, Google Code, etc.

Describa como podra utilizarlo en el proyecto.


Un entorno de desarrollo de software es una combinacin de herramientas que automatiza o soporta
al menos una gran parte de la tareas (o fases) del desarrollo: anlisis de requisitos, diseo de
arquitectura, diseo detallado, codificacin, pruebas de unidades, pruebas de integracin y validacin,
gestin de configuracin, mantenimiento, etc. Las herramientas deben estar bien integradas, pudendo
interoperar unas con otras.
As mismo se puede aplicar un entorno multilenguaje, pues en la aplicacin que se va a desarrollar se
trabajara utilizando el lenguaje de Java, pero a la vez se combinara con HTML para el desarrollo de las
pginas junto con css, tambin se utilizara el lenguaje SQL para el desarrollo de la base de datos y
Android para la aplicacin mvil para visualizar nuestro software a desarrollar.

Patrones de diseo
Qu tipos de patrones hay.
Los patrones de diseo se clasifican en tres tipos diferentes dependiendo del tipo de problema que
resuelven. Estos pueden ser creacionales, estructurales y de comportamiento.
Creacionales: Estos patrones se utilizan cuando debemos crear objetos pero debemos tomar decisiones
dinmicamente en el proceso de creacin. Para esto lo que hacemos es abstraer el proceso de creacin
de los objetos para realizar la decisin de qu objetos crear o cmo crearlos para el momento en que
se tenga que hacer. Su objetivo resolver los problemas de creacin de instancia. Patrones de creacin
son: Abstract Factory, Builder, Factory Method, Object Pool, Prototype y Singleton.
Por ejemplo:

Singleton (Instancia nica): Nos garantiza la existencia de una nica instancia para una clase.
Prototype (prototipo): Clona las instancias ya existentes.

Estructurales: Nos describen como utilizar estructuras de datos complejas a partir de elementos ms
simples. Sirven para crear las interconexiones entre los distintos objetos y que estas relaciones no se
vean afectadas por cambios en los requisitos del programa. Algunos patrones estructurales son:
Adapter, Bridge, Decorator, Facade, Flyweight yProxy.
Por ejemplo:
Bridge (Puente) Separa la abstraccin de la implementacin.
Decorator (Decorador) Agrega funcionalidades a una clase de forma dinmica.
Facade (Fachada) Nos provee una interfaz unificada y simple para acceder a un sistema ms complejo.

De comportamiento: Nos ayuda a resolver problemas relacionados con el comportamiento de la


aplicacin. Ofrece soluciones respecto a la interaccin y responsabilidad entre objetos y clases.
Algunos patrones De comportamiento son: Chain of Responsability, Command, Interpreter, Iterator,
Mediator, Memento (o Snapshot), Observer, State, Strategy,Template Method y Visitor.
Por ejemplo:
Observer (Observador) La definicin que provee Wikipedia es bastante entendible y real, dice Define
una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto cambie de estado se
notifique y actualicen automticamente todos los objetos que dependen de l.

Ejemplos

Proxies
Factoras
Adaptadores
Composicin
Broker

También podría gustarte