Primer Parcial

10.08.2012 19:25
Elabora aplicaciones de escritorio básicas.
Software palabra proveniente del inglés (literalmente: partes blandas o suaves), que en nuestro idioma no posee una traducción adecuada al contexto, por lo cual se la utiliza asíduamente sin traducir y fue adoptada por la RAE. Se refiere al equipamiento lógico o soporte lógico de un computador digital, comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware). Tales componentes lógicos incluyen, entre otras, aplicaciones informáticas tales como procesador de textos, que permite al usuario realizar todas las tareas concernientes a edición de textos; software de sistema, tal como un sistema operativo, el que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y el resto de las aplicaciones, también provee una interface ante el usuario.
Clasificación del software
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, se puede clasificar al software de la siguiente forma:
Software de sistema: Es aquel que permite que el hardware funcione. Su objetivo es desvincular adecuadamente al programador de los detalles del computador en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros:
  • Sistemas operativos.
  • Controladores de dispositivo.
  • Herramientas de diagnóstico.
  • Herramientas de Corrección y Optimización.
  • Servidores.
  • Utilidades.
Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluye entre otros:
  • Editores de texto.
  • Compiladores.
  • Intérpretes.
  • Enlazadores.
  • Depuradores.
  • Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc.. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
Software de aplicación: Aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros:
  • Aplicaciones de control y automatización industrial.
  • Aplicaciones ofimáticas.
  • Software educativo.
  • Software médico.
  • Software de Cálculo Numérico.
  • Software de Diseño Asistido (CAD).
  • Software de Control Numérico (CAM).

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =   

 

Lenguaje de programación
Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.
Por otro lado, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas (por ejemplo: inglés o francés).
Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto:
A CADA instrucción le corresponde UNA acción de procesador.
 
TIPOS DE LENGUAJES DE PROGRAMACION
El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios).
 
El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que el procesador pueda procesarlo.
 
El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!
 
Por lo tanto, un lenguaje de programación tiene varias ventajas:
  • Es mucho más fácil de comprender que un lenguaje máquina:
  • Permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos.
 
Lenguajes de programación imperativos y funcionales
Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
  • Lenguajes imperativos;
  • Lenguajes funcionales.
 
Lenguaje de programación imperativo
Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición.
 
Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio. No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.
 
Lenguaje de programación funcional
Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.
 
Interpretación y compilación
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
  • lenguajes interpretados
  • lenguajes compilados
 
Lenguaje interpretado
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.
 
Lenguaje compilado
Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.
 
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida. 
 
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
 
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).
 
Lenguajes intermediarios
Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class).

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =   

Metodología para la solución de problemas con computadora
La solución de un problema por computadora, requiere de siete pasos, dispuestos de tal forma que cada uno es dependiente de los anteriores, lo cual indica que se trata de un proceso complementario y por lo tanto cada paso exige el mismo cuidado en su elaboración. Los siete pasos de la metodología son los siguientes:
        1. Definición del problema
        2. Análisis de la solución
        3. Diseño de la solución
        4. Codificación
        5. Prueba y Depuración
        6. Documentación
        7. Mantenimiento
 
1.2.1 Definición del problema: Es el enunciado del problema, el cual debe ser claro y completo. Es fundamental conocer y elimitar por completo el problema, saber que es lo se desea realice la computadora.
1.2.2 Análisis de la solución: Consiste en establecer una serie de preguntas acerca de lo que establece el problema, para poder determinar si se cuenta con los elementos suficientes para llevar a cabo la solución del mismo, algunas preguntas son: ¿Con qué cuento? Cuáles son los datos con los que se va a iniciar el proceso, qué tenemos que proporcionarle a la computadora y si los datos con los que cuento son suficientes para dar solución al problema. ¿Qué hago con esos datos? Una vez que tenemos todos los datos que necesitamos, debemos determinar que hacer con ellos, es decir que fórmula, cálculos, que proceso o transformación deben seguir los datos para convertirse en resultados. ¿Qué se espera obtener? Que información deseamos obtener con el proceso de datos y de que forma presentarla; en caso de la información obtenida no sea la deseada replantear nuevamente un análisis en los puntos anteriores. Es recomendable que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.
1.2.3 Diseño de la solución: Una vez definido y analizado el problema, se procede a la creación del algoritmo (Diagrama de flujo ó pseudocódigo), en el cual se da la serie de pasos ordenados que nos proporcione un método explícito para la solución del problema.
             – Pseudocódigo: es un lenguaje algorítmico, muy parecido al español pero más conciso que permite la redacción rápida del algoritmo.
                        * Algunas palabras utilizadas en el pseudocódigo:
                                Inicio
                                Fin
                                Leer
                                Escribir
                                Asignar (x←y+z)
 

                – Ejemplo programa Calculo Área Rectángulo
                                Inicio
                                leer; base, altura
                                área ← base x altura
                                escribir; base, altura, area
                                 Fin
    
                 – Diagramas de flujo: ha sido la herramienta de programación por excelencia, y aún hoy sigue siendo muy utilizada. Es fácil de diseñar pues el flujo lógico del algoritmo se muestra en un diagrama en lugar de palabras. Los símbolos utilizados en los diagramas de flujo han sido estandarizados por la ANSI (American National Institute) y por la ISO (International Standard Organization).

 

Es recomendable la realización de pruebas de escritorio al algoritmo diseñado, para determinar su confiabilidad y detectar los errores que se pueden presentar en ciertas situaciones. éstas pruebas consisten en dar valores a la variable e ir probando el algoritmo paso a paso para obtener una solución y si ésta es satisfactoria continuar con el siguiente paso de la metodología; de no ser así y de existir errores deben corregirse y volver a hacer las pruebas de escritorio al algoritmo.

 

1.2.4 Codificación: Consiste en escribir la solución del problema (de acuerdo al pseudocódigo); en una serie de instrucciones detalladas en un código reconocible por la computadora; es decir en un lenguaje de programación (ya sea de bajo o alto nivel), a esta serie de instrucciones se le conoce como PROGRAMA.

1.2.5 Prueba y Depuración: Prueba es el proceso de identificar los errores que se presenten durante la ejecución del programa; es conveniente que cuando se pruebe un programa se tomen en cuenta los siguientes puntos:
        1. - Tratar de iniciar la prueba con una mentalidad saboteadora, casi disfrutando la tarea de encontrar un error.
        2. - Sospechar de todos los resultados que arroje la solución, con lo cual se deberán verificar todos.
        3. - Considerar todas las situaciones posibles, normales y aún las anormales. La Depuración consiste en eliminar los errores que se hayan detectado durante la prueba, para dar paso a una solución adecuada y sin errores.

1.2.6 Documentación: Es la guía o comunicación escrita que sirve como ayuda para usar un programa, o facilitar futuras modificaciones.
A menudo un programa escrito por una persona es usado por muchas otras, por ello la documentación es muy importante; ésta debe presentarse en tres formas: EXTERNA, INTERNA y AL USUARIO FINAL.
        Documentación Interna: Consiste en los comentarios o mensajes que se agregan al código del programa, que explican las funciones que realizan ciertos procesos, cálculos o fórmulas para el entendimiento del mismo.
        Documentación Externa: También conocida como Manual Técnico, está integrada por los siguientes elementos: Descripción del Problema, Nombre del Autor, Diagrama del Flujo y/o Pseudocódigo, Lista de variables y constantes, y Codificación del Programa, esto con la finalidad de permitir su posterior adecuación a los cambios.
        Manual del Usuario: Es la documentación que se le proporciona al usuario final, es una guía que indica el usuario como navegar en el programa, presentando todas las pantallas y menús que se va a encontrar y una explicación de los mismos, no contiene información de tipo técnico.
 
1.2.7 Mantenimiento: Se lleva a cabo después de determinado el programa, cuando se ha estado trabajando un tiempo, y se detecta que es necesario hacer un cambio, ajuste y/o complementación al programa para que siga trabajando de manera correcta. Para realizar esta función, el programa debe estar debida mente documentado, lo cual facilitará la tarea.

 

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =   

Ambiente de programación
¿Qué es .NET?
.NET es toda una nueva arquitectura tecnológica, desarrollada por Microsoft para la creación ydistribución del software como un servicio. Esto quiere decir, que mediante las herramientas dedesarrollo proporcionadas por esta nueva tecnología, los programadores podrán crear aplicacionesbasadas en servicios para la web.
Las características principales que conforman .NET son las siguientes:
        • La plataforma .NET Framework, que proporciona la infraestructura para crear aplicaciones yel entorno de ejecución para las mismas.
        • Los productos de Microsoft enfocados hacia .NET, entre los que se encuentran Windows.NET Server, como sistema operativo que incluirá de forma nativa la plataforma .NETFramework; Visual Studio .NET, como herramienta integrada para el desarrollo deaplicaciones; Office .NET; b.Central para .NET, etc.
        • Servicios para .NET desarrollados por terceros fabricantes, que podrán ser utilizados por otrasaplicaciones que se ejecuten en Internet.
 
.NET Framework
.NET Framework constituye la plataforma y elemento principal sobre el que se asienta Microsoft.NET. De cara al programador, es la pieza fundamental de todo este nuevo modelo de trabajo, ya queproporciona las herramientas y servicios que necesitará en su labor habitual de desarrollo.
.NET Framework permite el desarrollo de aplicaciones a través del uso de un conjunto de herramientasy servicios que proporciona, y que pueden agruparse en tres bloques principales: el Entorno deEjecución Común o Common Language Runtime (CLR a partir de ahora); la jerarquía de clasesbásicas de la plataforma o .NET Framework Base Classes; y el motor de generación de interfaz deusuario, que permite crear interfaces para la web o para el tradicional entorno Windows, así comoservicios para ambos entornos operativos. La Figura 3 muestra un diagrama con la distribución deelementos dentro del entorno de .NET Framework.