Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Bucle infinito es un error que consiste en realizar un ciclo que se repite de forma
indefinida ya que su condicin para finalizar nunca se cumple
2. Resultado incorrecto es un error que se da cuando se escribe matemticamente
incorrecto y dan resultados imposibles, como dividir entre 0
Los errores lgicos se dan por un fallo a la hora de programar, son difciles de
encontrar porque no los detecta el compilador, por ejemplo
Proceso de compilacin
El proceso de compilacin consiste en traducir las instrucciones escritas en un determinado
lenguaje de programacin (lenguaje de alto nivel) a lenguaje mquina.
El proceso de traduccin se compone internamente de varias etapas o fases, que realizan
distintas operaciones lgicas.
Fase de anlisis
Anlisis lxico
Esta es la primera fase, aqu se lee el programa fuente de izquierda a derecha y se agrupa
en componentes lxicos (secuencias de caracteres con un significado) y se comprueba que los
smbolos del lenguaje (palabras clave,operadores, etc.) se han escrito correctamente.
Anlisis sintctico
En esta fase los componentes lxicos se agrupan jerrquicamente en frases gramaticales
que el compilador utiliza para sintetizar la salida. Se comprueba si lo obtenido de la fase anterior es
sintcticamente correcto y se genera un rbol sintctico.
Anlisis semntico
En esta etapa se comprueba la validez semntica de las sentencias aceptadas en la fase de
Anlisis Sintctico.
Fase de sntesis
Consiste en generar el cdigo objeto equivalente al programa fuente, siempre que est libre
de errores de anlisis. El cdigo objeto resulta de la compilacin del cdigo fuente.
Optimizacin de cdigo
La fase de optimizacin de cdigo consiste en mejorar el cdigo intermedio, de modo que
resulte un cdigo mquina ms rpido de ejecutar. Esta fase de la etapa de sntesis es posible sobre
todo si el traductor es un compilador.
Roles en el Desarrollo del Software
Administrador de Proyecto
Controla y administra los recursos para cumplir con el plan y objetivo fijados enlos proyectos.
Es un administrador temporal de los recursos, no es dueo de nada, por ello debe centrarse
en controlar y coordinar los diferentes eventos y actividades que surjan en el proyecto y para ello es
necesario tener clara la misin y la visin del mismo.
Incluso en los proyectos de desarrollo que no cuentan con un gerente de proyecto, es
conveniente asignar el rol de gerente de proyecto a alguien, para que quede claro quin es
responsable de la ejecucin del mismo.
Analista
Es el responsable de entender las necesidades del cliente y llevar el conocimiento necesario
al equipo para que puedan entenderlo y desarrollar el software necesario para satisfacer al cliente.
Para especificar el problema se utiliza metodologa de anlisis, de tal forma que se pueda
traducir entre las necesidades del cliente y los objetivos del equipo de desarrolladores.
Arquitecto de Software
Es el encargado de traducir los requisitos planteados por el analista del equipo en una
solucin tcnica con la que pueda trabajar el desarrollador de software.
Hay muchas formas de plantear la arquitectura que se va a seguir a la hora del desarrollo, el
arquitecto es el que decide qu camino se va a tomar (en funcin de la estructura global del proyecto)
y tambin debe supervisar el proyecto para comprobar que se est cumpliendo ese camino.
Desarrollador de Software
Es el encargado de traducir a cdigo la especificacin del sistema (la solucin al problema o
necesidades planteados por el analista). Tambin es su obligacin documentar el cdigo, con el
objetivo de aclarar el porqu de aquellas partes de cdigo que no resulten evidentes a partir de su
lectura.
Tester
Es el encargado de probar (testear) el software para asegurar que funciona de la forma que
debera.
Normalmente quien cumple este papel son los mismos desarrolladores (aspectos tcnicos) y
los usuarios (aspectos funcionales).
Antipatrones
Los anti-patrones, tambin llamados trampas, son ejemplos bien documentados de malas
soluciones para problemas. Se estudian a fin de poderlos evitar en el futuro.
Boat Anchor (Ancla del Barco) / Lava Flow (Lava Seca): Retener partes del sistema
que ya no tienen utilidad y son inamovibles.
Copiar y Pegar: Se trata de que a la hora de crear una nueva clase o mtodo copiemos y
peguemos cdigo para ello, lo cual es una mala prctica.
Ejemplo: A la hora de programar una condicin que se repite por ejemplo 10 veces
copiamos y pegamos cdigo en lugar de refactorizar el cdigo, como bien podra ser crear un
bucle, evitando ms lneas de cdigo.