Beruflich Dokumente
Kultur Dokumente
Clase 1 Introduccin
La resolucin de problemas con computadora
El objetivo final para el uso de una computadora es poder resolver un problema. Esto significa que solo el uso de las computadoras me garantizan la resolucin de los problemas?. La repuesta es categricamente NO. Lo que me permite el uso de la computadora es: Utilizar su velocidad. Asegura que se cumplirn siempre los pasos previamente definidos. Siempre que ingrese la misma informacin obtendr el mismo resultado. Manejar y controlar distintos dispositivos en forma automtica.
Todo problema que se resuelve por el uso de una computadora es el resultado de un trabajo que de alguna manera le indica a la computadora que debe hacer. Y como es que se le indica a la computadora que debe hacer? Si intentamos dar una rpida respuesta a esta pregunta deberemos considerar a la computadora como lo que realmente es:
una maquina.
Una maquina compuesta por distintos elementos (electrnicos, mecnicos, magnticos, etc.) interrelacionados entre si, que necesitan de una serie de instrucciones que controlan su funcionamiento.
Un programa es una secuencia de instrucciones, definidas de una forma que puede ser interpretada por los circuitos propios de esa computadora a lo que llamamos: LENGUAJE.
Por lo cual vemos que pueden existir distintos tipos (o lenguajes) de programacin como distintos tipos de circuitos, caractersticas de computadoras existan.
Es decir, podemos ver que para cumplir esta definicin, sobre que es programacin, aparecen distintos conceptos: 1. ALGORITMO: conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute 2. LENGUAJE: diccionario de palabras, con sus reglas y relaciones , conocido como SOFTWARE 3. ORDENADOR: conjunto de: maquina, dispositivos y perifricos, conocido como HARDWARE Si bien algunos piensan que disear programas es un proceso totalmente libre y a criterio de quien lo encare, la realidad dista mucho de este concepto. En la actualidad existen metodologas y buenas practicas internacionales, reconocidas y auditadas y que deben ser cumplidas. Adems, dentro de la profesin de sistemas existen especialidades, que tienen certificaciones y normas reconocidas y aceptadas, que llevan a la utilizacin de mtodos y a realizar desarrollos que estn alineados con dichas normas de seguridad y calidad mundial. Todo esto sirve y ayuda a evitar las omisiones, repetir errores, reducir el tiempo de desarrollo y de resolucin de problemas, permitir mejores controles, etc., etc. Por lo cual podemos ver que existen pasos, fases o etapas que debemos cumplir, las cuales las podemos agrupar en: 1. 2. 3. 4. 5. 6. 7. Anlisis del problema. Diseo del algoritmo. Codificacin. Compilacin y ejecucin. Verificacin. Depuracin. Documentacin.
Un lenguaje de programacin esta formado por un conjunto de sentencias representan rdenes dadas a la computadora con el fin de resolver un problema.
que
Llamamos resolucin de problemas a la formulacin de una determinada cantidad de pasos tendientes a cumplir con el objetivo preasignado. Por Ej.: si el problema fuera un clculo matemtico, al determinar que cuentas se debe realizar, en que orden y como presentar el resultado tendramos el problema resuelto
En la vida cotidiana, nos enfrentamos a un sin fin de problemas, que resolvemos en forma automtica. Pero cuando nos presentan el desafo de realizar una hoja de ruta, donde detallamos claramente y sin ambigedades las tareas que hacemos, con el fin que otra persona leyendo esa hoja las realice y con la condicin que solo realizara lo indicado en nuestra hoja, sin asumir ni considerar ningn conocimiento externo a la misma, es cuando descubrimos las dificultades de dicha tarea Si tuviramos que desarrollar la accin REALIZAR UNA LLAMADA TELEFONICA, todos diramos que la misma se describe claramente con las siguientes acciones: a. b. c. d. e. Camino hacia el telfono Tomo el telfono Marco el numero Cuando me responden realizo la conversacin Cuelgo
Pero, si bien esos son los pasos normales y entendidos por todos, no se si as si o les doy un telfono de principios del siglo 20, a manivela y horquilla, que por no conocer algunos detalles sobre su uso, a cada uno de nosotros se le complicaran las tareas de TOMAR y MARCAR, por lo cual deberamos ampliar la explicacin de las mismas. Tambin debemos considerar las excepciones o situaciones que pueden no llevar a realizar la llamada, por ejemplo f. Tomo el telfono pero el mismo no tiene tono, que hago? cuelgo?y si vuelvo a levantar y vuelvo a no tener tono, cuelgo otra ves?, cuantas veces repito esta operacin si me da el mismo resultado? Y despus que hago?, desisto de hacer la llamada o llamo al servicio tcnico? g. Marco el numero, y si me da ocupado , que hago? Cuelgo y desisto o cuelgo y vuelvo a llamar?, cuantas veces repito esta operacin?, hasta que me atiendan?, hasta que realice n llamadas? Cuantas? h. Y si quien me contesta no es la persona con quien quiero hablar? Que hago? Entiendo que existen ms situaciones que pueden ser usadas de ejemplo. Pero sirven para demostrar como algo que hacemos rutinariamente puede transformarse en una maraa de acciones y decisiones. Pero que debemos dejar muy en claro si quien debe seguir estas instrucciones, justamente, no tiene la capacidad de hacer o decidir algo que no este claramente y explcitamente indicado.
Especificaciones de proceso: son las descripciones a nivel de detalle de las acciones, relaciones y controles que se debe realizar en cada proceso. Existen diferentes mtodos de representacin, como ser: Diagrama de flujo o flowchart. Diagramas N-S Tablas de Decisin Formulas Algoritmos, que desarrollaremos en el curso de esta materia.
Diccionario de Datos: es en si una enumeracin precisa y consistente para la comprensin a nivel de negocios y a nivel de IT de todos los datos del sistema.
Que es un Sistema?.
En el sentido ms amplio, un sistema es un conjunto de componentes, con un objetivo propio, que interactan para alcanzar un objetivo comn, razn y causa de la creacin del sistema. Utilizando informacin de entrada, procesando y transformando a la misma y obteniendo una nueva informacin de salida. En general, un sistema, debe interactuar con su medio ambiente. Del medio ambiente recibe estmulos, presiones, cambios, problemas y requiere que se adapte y modifique a fin de seguir logrando obtener el objetivo por el cual fue creado.
Entrada
Sistema
Salida
Medio ambiente
Un negocio es un claro ejemplo de un sistema. Sus partes tienen nombres tales como: marketing, produccin, ventas, contabilidad, investigacin y personal. Estos componentes trabajan todos juntos para crear una utilidad que beneficia a alguien, a los dueos o accionistas de la empresa
Caractersticas de un sistema
El objetivo de un sistema es la razn de su existencia; para cumplir sus propsitos los sistemas interactan con su medio ambiente, es decir cualquier entidad que se site fuera de los lmites del sistema. Las fronteras separan los sistemas de su medio ambiente. Los sistemas que interactan con su medio ambiente reciben entradas y producen salidas, son los sistemas abiertos, en contraste con los sistemas que no interactan con sus alrededores y que se conocen como sistemas cerrados. El elemento de control se relaciona con la diferencia entre si los sistemas son abiertos o cerrados. Existen niveles aceptables de rendimientos llamados estndares. Los rendimientos reales se comparan contra los estndares. Las actividades que estn muy por encima o por debajo de estos estndares deben anotarse de manera que se puedan estudiar y se logran los ajustes necesarios. La informacin suministrada a travs de la comparacin de los resultados con los estndares y el informe de los elementos de control sobre las diferencias, se denominan retroalimentacin.
10
Los sistemas que pueden ajustar sus actividades a niveles aceptables continuaran funcionando, los que no pueden hacerlo se detienen. El concepto de interaccin dentro de un medio ambiente que caracteriza a los sistemas abiertos es esencial para el control, por medio de la recepcin de la entrada y la evaluacin de la misma un sistema puede determinar cuan bien esta operado. Si un negocio por ejemplo, produce objetos o servicios caros o bajos en calidad la gente probablemente no lo comprara. Las cifras de ventas bajas por la retroalimentacin, que le indica a la gerencia? que necesita ajustar los productos y la manera de produccin para mejorar el rendimiento y ajustarse a las expectativas.
Sistemas de Negocios.
Todos los sistemas de produccin tienen semejanzas: Su propsito es producir bienes o productos que satisfagan las demandas que hay para ellos en el mercado. Para alcanzar este objetivo los sistemas interactan con su medio ambiente para: Adquirir los materiales necesarios, personal y conocimientos para producir bienes, ningunas de estas entradas se pueden omitir para que pueda continuar la produccin, los sistemas de produccin no podrn manufacturar muchos productos si los trabajadores faltan. Los sistemas de produccin tambin producen salidas que consisten en productos terminados, desperdicios, tecnologas de produccin, etc. Para continuar con su funcionamiento los sistemas de produccin deben de estar bajo control: por ejemplo cumplir con ciertos estndares de rendimientos. La cantidad de productos manufacturados debe cumplir con cuotas ya presupuestadas y alcanzar niveles aceptables de calidad y costos. Los gerentes continuamente vigilan los rendimientos reales y los comparan con la productividad planeada; si existen diferencias o la eficiencia est por debajo de las expectativas, se realizan cambios en este sentido Los sistemas de produccin son autorregula torios y auto ajustables: Remplazaran al personal, compraran nuevos equipos o modificaran los procedimientos si no es
11
Los sistemas de produccin son subsistemas dentro de las grandes empresas y estn integradas por otros subsistemas para la adquisicin de materiales, mantenimiento de equipos y capacitacin de los trabajadores. Los sistemas de produccin son algunos de las muchas clases que existen ,aun cuando las caractersticas generales de todos los sistemas fueran parecidas. Se puede comenzar a examinar cualquier sistema con este marco de referencia en mente y aadir los detalles especficos conforme se necesiten o se aprendan.
Sistemas de Informacin
Los sistemas de informacin son, como cualquier otro sistema dentro de la empresa, en cuanto tiene propsitos de interactuar con otros componentes de la compaa. La tarea de los sistemas de informacin consiste en procesar la entrada, mantener archivos de datos en relacin con la empresa y producir informacin informes y otras salidas. Los sistemas de informacin estn integrados por subsistemas que incluyen el hardware, software y almacenamiento de los datos para los archivos y bases de datos. Procedimientos especficos describen los sistemas utilizados. El conjunto particular del subsistema, es decir, el equipo especifico, programa, archivos y procedimientos, comprenden una aplicacin del sistema de informacin. Por lo tanto, los sistemas de informacin pueden tener aplicaciones de compras, contabilidad o ventas. Dado que los sistemas de informacin dan apoyo a otros sistemas de la empresa, los analistas deben estudiar primero el sistema de la compaa como un todo y despus los detalles de los sistemas de informacin Con frecuencia el personal utiliza organigrama para describir las relaciones de los componentes de la empresa, como divisiones, departamentos, oficinas y personal.
12
1.- Canales no formales: que interacciones existen entre el personal y los departamentos, pero que no aparecen en el organigrama o en los procedimientos de operacin previamente establecidos? 2.- Interdependencias: En que otros departamentos y componentes de la empresa se encuentra una dependencia especifica? 3.- El personal clave y las funciones: Cuales individuos y elementos del sistema son ms importantes para su existencia exitosa? 4.- Relaciones criticas de comunicaciones: Como circula la informacin y las instrucciones entre los componentes de la empresa y como interactan las diferentes reas con las dems?
Sistemas en lnea
Un sistema en lnea es aquel que acepta material de entrada directamente del rea donde se creo. Tambin es el sistema en el que el material de salida, o el resultado de la computacin, se devuelven directamente a donde es requerido. Generalmente los usuarios de estos sistemas interactan desde terminales, donde la distancia entre estas y el sistema puede ser considerable. Este tipo de sistemas permite recuperar el dato almacenado de manera individual, en contraposicin con los sistemas en lotes o batch , utilizados en los aos 60/70 los cuales necesitaban una bsqueda secuencial hasta encontrar el dato que se buscaba; Es por eso que en estos sistemas los datos pueden recuperarse, modificados o ambas cosas rpidamente y sin tener necesariamente que efectuar accesos a otros componentes de informacin del sistema.
15
Diseo:
En la etapa de anlisis del proceso de programacin se determina el QUE, hace el programa. En la etapa de diseo se determina COMO hace el programa la tarea solicitada. En esta fase se traduce, por ejemplo a pseudocdigo, diagrama de flujo, Top-Down o a lenguaje natural la solucin al problema, si esta fase esta bien hecha, programar se convierte en una tarea sencilla y agradecida muy cercana a la traduccin de lenguas. Las especificaciones de diseo describen las caractersticas del sistema, los componentes o elementos del sistema y la forma como estos aparecern ante el usuario Para muchos usuarios el xito de un sistema esta relacionado con la idea que el sistema tenga las caractersticas adecuadas. Para evaluar la calidad de una presentacin del diseo, se deben establecer criterios tcnicos para un buen diseo como son:
Un diseo debe presentar una organizacin jerrquica que haga un uso inteligente del control entre los componentes del software. El diseo debe ser modular, es decir, se debe hacer una particin lgica del Software en elementos que realicen funciones y subfunciones especificas. Un diseo debe contener abstracciones de datos y procedimientos. Debe producir mdulos que presenten caractersticas de funcionamiento independiente. Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los mdulos y el entorno exterior. Debe producir un diseo usando un mtodo que pudiera repetirse segn la informacin obtenida durante el anlisis de requisitos de Software.
Estos criterios no se consiguen por casualidad. El proceso de Diseo del Software exige buena calidad a travs de la aplicacin de principios fundamentales de Diseo, Metodologa sistemtica y una revisin exhaustiva. Cuando hablamos sobre que debemos disear, nos referimos a los siguientes elementos: Flujos de datos: movimientos de datos hacia, alrededor y desde el sistema. Almacenes de datos: conjuntos temporales o permanentes de datos. Procesos: actividades para aceptar, manejar y suministrar datos e informacin. Pueden ser manuales o basadas en computadoras.
16
Controles: estndares y lineamientos para determinar en forma anticipada si las actividades se encuentran bajo control. Funciones del personal: las responsabilidades de todos los involucrados que tienen que ver con el nuevo sistema.
Como veremos estos elementos aparecen ms de una vez en muchas de las caractersticas de los sistemas de informacin. Por lo que todos estos elementos tienen la misma importancia al estructurar el diseo.
17
Codificacin:
En esta fase se escribe, en el lenguaje de programacin que mejor se adapte a las necesidades de la aplicacin, el programa Hasta este punto la aplicacin es totalmente independiente del lenguaje de programacin, la plataforma, etc. A partir de esta fase la aplicacin toma toda su dimensin y pasa a tener una forma definida y unas limitaciones fruto de lenguaje de programacin y la plataforma escogidos. Caractersticas Deseables del Cdigo: Modularidad: Un cdigo escrito pensando en las funciones y que guarda la relacin Una funcin = un fichero Es un cdigo ms fcil de mantener, documentar y mejorar. Esto adems favorece la reutilizacin del cdigo en proyectos futuros. Por lo tanto la modularidad es la capacidad que tiene un sistema de ser estudiado, visto o entendido como la unin de varias partes que interactan entre s y que trabajan para alcanzar un objetivo comn, realizando cada una de ellas una tarea necesaria para la consecucin de dicho objetivo. Cada una de esas partes en que se encuentre dividido el sistema recibe el nombre de mdulo. Idealmente un mdulo debe poder cumplir las condiciones de caja negra, es decir, ser independiente del resto de los mdulos y comunicarse con ellos (con todos o slo con una parte) a travs de unas entradas y salidas bien definidas. Portable: Un cdigo escrito con la mentalidad de que sea ejecutado en distintas mquinas es un cdigo que tiene mayores probabilidades de subsistir en el tiempo y de ser reutilizado. El esfuerzo que en algunas ocasiones requiere la portabilidad se ve compensado con grandes ahorros de tiempo en cuanto el cdigo debe ser alterado o mejorado, que es durante la fase de operacin o mantenimiento, que es el momento donde se encontrara en la mayor parte de su vida. Bien comentado y documentado: Si el cdigo de una funcin no se inicia con una breve explicacin de que hace dicha funcin seguramente no podremos saber en un futuro que se hace y donde; por ello es deseable que el cdigo se comente con la intencin de ahorrar tiempo a la hora de documentar.
18
19
Programa codificado
Compilacin
Programa ejecutable 20
21
Verificacin:
En esta fase se prueba si el programa hace todo aquello para lo que ha sido diseado y si se ajusta a las necesidades de los usuarios. Es recomendable que aqu los usuarios finales empiecen a probar a conciencia el programa. Para esta fase, se debe desarrollar una amplia gama de datos de test, valores normales de entrada, valores extraos de entrada que comprueben los limites del programa.
Depuracin:
Si el programa ha pasado todos los test de ejecucin, este es un buen momento para repasar el cdigo, el programa puede hacer aquello para lo que ha sido diseado pero quiz se pueda escribir en menos lneas o de forma ms elegante, por ello en esta fase es recomendable repasar el cdigo en busca de posibles mejoras. Resumiendo es el proceso de encontrar los errores y corregirlos o eliminarlos. Pueden producirse tres tipos de errores: 1. Errores de compilacin: Se producen en general por el mal uso de la sintaxis del lenguaje de programacin, por lo que la computadora no entiende la instruccin.
22
Documentacin:
Por lo general esta es una fase en la que se puede medir la calidad de un programa, si la documentacin es buena, esta fase ser muy breve y dar como fruto un manual que explicaran de forma breve y directa que hace el programa. Es deseable que la documentacin se escriba dentro del mismo cdigo como comentarios y que se haga al mismo tiempo que se escribe el cdigo con el fin de facilitar despus tanto su mantenimiento como la creacin de documentacin. o Documentacin Interna: Introduccin de texto en castellano, dentro del cdigo fuente, para aclarar cuestiones referentes al propio programa de forma que lo pueda entender otra persona que tenga que modificarlo. o Documentacin Externa: Instrucciones para usar el programa.
23
Resumiendo
En este capitulo hemos visto una introduccin a algunos de los trminos y conceptos usados en el mundo informtico. Enumeramos y describimos brevemente las distintas etapas o fases que existen para desarrollar un sistema Vimos los principales tipos de sistemas y sus caractersticas. Ahora, en el prximo capitulo, comenzaremos a ver el concepto de ALGORITMOS
24