git y entornos de programacion

Upload: esteban-gomez-de-leon

Post on 02-Mar-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    1/13

    UNIVERSIDAD DE SAN CARLOS DE GUATEMALAFACULTAD DE INGENIERIAESCUELA TECNICALABORATORIO DE INTRODUCCION A LA PROGRAMACION Y COMPUTACION 2

    AUXILIAR: REIMER CHAMALE

    INVESTIGACION FASE 1

    Nombre: Esteban Eliseo Gmez De LenCarn: 201313843

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

  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    2/13

    GIT

    Como instalar GIT

    Para instalar la herramienta de GIT se debe descargar desde la pgina https://git-

    scm.com/downloadsla 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.

    https://git-scm.com/downloadshttps://git-scm.com/downloadshttps://git-scm.com/downloadshttps://git-scm.com/downloadshttps://git-scm.com/downloads
  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    3/13

  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    4/13

    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/repositorySi utilizas un servidor remoto, ejecuta git clone username@host:/path/to/repository

    Flujo de trabajo:Comentarios personales sobre GIT

  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    5/13

    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 , 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 repositorioremoto, usa git remote add origin . 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 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 .

    Antes de fusionar los cambios, puedes revisarlos usando

    git diff

    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 -- . Este comando reemplaza los cambios en tu directorio de trabajo con elltimo 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

  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    6/13

    Comentarios personales sobre GITEn 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 actividadesconstituyen lo que se llama un entorno de programacin. A veces se utilizan lassiglas IDE (Integrated Development Environment) para designar estos entornos, aunque no son unentorno de desarrollo completo, sino slo una parte de l.

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

    Da soporte a las actividades de la fase de codificacin (preparacin del cdigo y prueba deunidades)

    Los mismos productos sirven tambin para el diseo detallado y para las pruebas deintegracin.

    Se sita, por tanto, en la parte central del ciclo de desarrollo

  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    7/13

    Funciones de un Entorno de Programacin

    Como se ha dicho, la misin de un Entorno de Programacin es dar soporte a la preparacin deprogramas, 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 fuenteo Proceso/ejecucin del programa

    Interpretacin directa (cdigo fuente) Compilacin (cdigo mquina) - montaje - ejecucin Compilacin (cdigo intermedio) - interpretacin

    Otras funciones:o Examinar (hojear) el cdigo fuenteo Analizar consistencia, calidad, etc.o Ejecutar en modo depuracino Ejecucin automtica de pruebaso Control de versioneso

    Generar documentacin, reformar cdigoo ... y otras muchas ms ...

    Tipos de Entornos de Programacin

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

    En las primeras etapas de la informtica la preparacin de programas se realizabamediante una cadena de operaciones tales como la que se muestra en la figura para unlenguaje procesado mediante compilador. Cada una de las herramientas deba invocarse

    manualmente por separado. En estas condiciones no puede hablarse propiamente de unentorno de programacin

    o El editor es un editor de texto simple

    o

    El compilador traduce cada fichero de cdigo fuente a cdigo objetoo El montador (linker / builder / loader) combina varios ficheros objeto para generar

    un fichero ejecutableo 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 (IntegratedDevelopment Environment).

  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    8/13

    Los componentes cuya evolucin ha sido ms aparente son los que realizan la interaccincon el usuario:

    o El editor ya no es un simple editor de texto, sino que tiene una clara orientacin allenguaje de programacin usado (reconoce y maneja determinados elementossintcticos)

    o El depurador no presenta informacin en trminos del lenguaje de mquina, sinodel lenguaje fuente

    o El editor est bien integrado con las dems herramientas (se posicionadirectamente en los puntos del cdigo fuente en los que hay errores decompilacin, 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 programacinexistentes. En algn momento[1] se describieron las siguientes clases de entornos, noexcluyentes, usando un criterio esencialmente pragmtico:

    o Entornos centrados en un lenguajeo Entornos orientados a estructurao 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 directao (Inter)Lisp, Haskell, etc.

    Lenguajes compilados a cdigo de mquina nativoo Delphi, Visual C++, AdaGide/GNAT, GPS, etc.

    http://lml.ls.fi.upm.es/ep/entornos.html#r1http://lml.ls.fi.upm.es/ep/entornos.html#r4http://lml.ls.fi.upm.es/ep/entornos.html#r5http://lml.ls.fi.upm.es/ep/entornos.html#r5http://lml.ls.fi.upm.es/ep/entornos.html#r4http://lml.ls.fi.upm.es/ep/entornos.html#r1
  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    9/13

    Lenguaje ejecutados sobre mquina virtualo Java (Visual Age, Eclipse), C# (Visual Studio .NET)

    Ejemplos especiales:o Entornos Ada (Stoneman, Cais, Asis)o Entornos Smalltalko Entornos Oberon, Component Pascal

    Entornos orientados a estructura

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

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

    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 textoo

    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 Pascalo 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 unabuena forma de representar la estructura del cdigo fuente con vistas a su manipulacin. Existeneditores y procesadores XML que podran ser la base de nuevos entornos de programacinorientados a estructura.

    Entornos basados en combinacin de herramientas

    Consisten en una combinacin de diversas herramientas capaces de interoperar entre ellas dealguna 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 configurablesse designan tambin con las siglas IDE (que debera reservarse para el entorno completo)

    Ejemplos de editores configurables

    http://doi.acm.org/10.1145/358746.358755https://www.msu.edu/~mrr/mycomp/terak/tercptut.htmhttp://hal.archives-ouvertes.fr/docs/00/07/65/35/PDF/RR-0026.pdfhttp://www.templetons.com/brad/alice.htmlhttp://www.cs.ucl.ac.uk/staff/ucacwxe/lectures/GS04-0809/gandalf.pdfhttp://www.cs.ucl.ac.uk/staff/ucacwxe/lectures/GS04-0809/gandalf.pdfhttp://www.templetons.com/brad/alice.htmlhttp://hal.archives-ouvertes.fr/docs/00/07/65/35/PDF/RR-0026.pdfhttps://www.msu.edu/~mrr/mycomp/terak/tercptut.htmhttp://doi.acm.org/10.1145/358746.358755
  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    10/13

    o Emacs,Vim,Gvimo Med,SciTE,jEdito Eclipse (algo ms que un editor)

    Entornos multilenguaje

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

    Entornos genricoso No se combinan lenguajes en un mismo programa. Hay varios programas, cada

    uno en su propio lenguajeo Bastara combinar las herramientas correspondientes a cada lenguaje

    (compiladores, etc.)o Se podra usar un frontal comn: editor personalizable que soporte los lenguajes

    concretoso Ejemplos:

    Emacs (con diferentes "modos") Eclipse (con diferentes "plug-ins")

    Entornos especficoso Para una combinacin concreta de lenguajeso Vienen a ser como los entornos centrados en un lenguaje, slo que admiten ms

    de unoo Usan un formato binario compatible que permite combinar en un mismo

    programa partes escritas en los diferentes lenguajeso Ejemplo: GPS permite combinar mdulos en Ada y C++

    Lenguajes ejecutados sobre mquina virtualo La mquina virtual establece el formato del cdigo binario

    o

    Pueden combinarse mdulos escritos en diferentes lenguajes para los que existael compilador apropiadoo Cada lenguaje puede tener su entorno de programacin separado, o bien existir

    un entorno de programacin nicoo Ejemplos:

    JVM (Java Virtual Machine). El lenguaje original es Java. El intrprete es elJRE (Java Runtime Environment). Hay compiladores a JVM para otroslenguajes 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 otroslenguajes 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 lastareas de desarrollo de software realizadas por una persona. Para desarrollar proyectos de softwareno triviales se necesita trabajar en equipo usando las recomendaciones de la ingeniera de software.

    http://www.gnu.org/software/emacs/http://www.vim.org/http://www.vim.org/download.php#pchttp://www.utopia-planitia.de/indexus.htmlhttp://www.scintilla.org/SciTE.htmlhttp://www.jedit.org/http://www.eclipse.org/http://www.eclipse.org/http://www.jedit.org/http://www.scintilla.org/SciTE.htmlhttp://www.utopia-planitia.de/indexus.htmlhttp://www.vim.org/download.php#pchttp://www.vim.org/http://www.gnu.org/software/emacs/
  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    11/13

    Cada miembro del equipo de desarrollo puede disponer de una estacin de trabajo con un entornode programacin adecuado para realizar su trabajo individual, y se necesita adems algn medio decombinar los trabajos individuales en una labor de conjunto, debidamente organizada.

    Una manera intuitiva de organizar el entorno general de desarrollo es basarlo en un repositoriocentral de informacin, dotado de un sistema de gestin de configuracin, y aadirle sistemas demensajera, de gestin de incidencias, herramientas de modelado para anlisis y diseo, de gestindel proyecto, etc.

    Por ejemplo, hay plataformas generales que ofrecen este soporte como servicios web, incluso demanera 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.

    http://sourceforge.net/create/http://code.google.com/intl/en/projecthosting/http://code.google.com/intl/en/projecthosting/http://sourceforge.net/create/
  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    12/13

    Patrones de diseo

    Qu tipos de patrones hay.

    Los patrones de diseo se clasifican en tres tipos diferentes dependiendo del tipo de problema queresuelven. 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.

  • 7/26/2019 GIT Y ENTORNOS DE PROGRAMACION

    13/13

    Ejemplos Proxies

    Factoras

    Adaptadores Composicin

    Broker