FUNDAMENTOS DE COMPUTACIN E INFORMTICA TECNOLOGA MVIL - ALGORITMOS Docente: Ing. Juan Carlos Mamani Chambi Semana 03 L/O/G/O CAPTULO III: - Sistemas de numeracin usuales en informtica. - Tipos de software: Software de sistemas. Software de aplicacin: aplicaciones ofimticas, base de datos, software educativos y software mdicos. Software de edicin y diseo grfico: software de edicin de imgenes, de edicin de videos, de edicin de audio. Los principales software de diseo. Software de ofimtica. Principales programas: Word, Access, PowerPoint y Excel. Software para dispositivos mviles (Android, WML, etc.). Docente: Ing. Juan Carlos Mamani Chambi 3 3 Tipos de Software y sus Cualidades
4 4 Tipos de software y su desarrollo Para realizar una tarea en una computadora, es necesario darle instrucciones a travs del software. Software es el nombre asignado a las aplicaciones o programas que se ejecutan en la computadora.
El contenido y el determinismo de la informacin son factores importantes a considerar para determinar la naturaleza de una aplicacin de software. El contenido se refiere al significado y a la forma de la informacin de entrada y salida.
Algunas veces es difcil establecer categoras genricas para las aplicaciones del software que sean significativas. 5 5 Tipos de software y su desarrollo Software de Sistemas Software de Aplicacin Software de Tiempo Real Software de Gestin Software de Ingeniera y cientfico Software empotrado Software de computadoras personales Software basado en Web Software de Inteligencia Artificial 5 L/O/G/O SOFTWARE de Sistema. 7 7 SOFTWARE: Se conoce como software al equipamiento lgico o soporte lgico de una computadora digital; comprende el conjunto de los componentes lgicos necesarios que hacen posible la realizacin de tareas especficas, en contraposicin a los componentes fsicos, que son llamados hardware.
8 8 Software de Sistemas Programas que han sido escritos para servir a otros programas. Se caracterizan por una fuerte interaccin con el hardware de la computadora Compartir recursos Sofisticada gestin de procesos Estructuras de datos complejas Mltiples interfaces externas
Ejemplo: compiladores, editores y utilidades de gestin de archivos, ciertos componentes del sistema operativo, utilidades de manejo de perifricos, procesadores de telecomunicaciones, etc. 8 9 9 SOFTWARE DE SISTEMA: Denominado tambin software de base, consiste en programas informticos que sirven para controlar e interactuar con el sistema operativo , proporcionando control sobre el hardware y dando soporte a otros programas.
10 10 Tipos de software de sistema El software de sistema puede clasificarse en: Sistema operativo, controladores de dispositivos y programas utilitarios. 11 11 Tipos de software de sistema Sistema operativo: Es el programa o conjunto de programas que efectan la gestin de los procesos bsicos de un sistema informtico, y permite la normal ejecucin del resto de las operaciones. 12 12 Tipos de software de sistema 13 13 Tipos de software de sistema Programas utilitarios: Es una herramienta que realiza: Tareas de mantenimiento Soporte para la construccin y ejecucin de programas. Las tareas en general.
14 14 Tipos de software de sistema Entorno de escritorio: Es un conjunto de software para ofrecer al usuario de una computadora una interaccin amigable y cmoda, ofrece iconos, barras de herramientas, e integracin entre aplicaciones con habilidades como, arrastrar y soltar. 15 15 Tipos de software de sistema 16 16 Tipos de software de sistema 17 17 Tipos de software de sistema BIOS: Es un software que localiza y reconoce todos los dispositivos necesarios para cargar el sistema operativo en la memoria RAM; es un software muy bsico instalado en la placa base que permite que sta cumpla su cometido. 18 18 Clases de software de sistema Hipervisor: Es una plataforma que permite aplicar diversas tcnicas de control de virtualizacin para utilizar, al mismo tiempo, diferentes sistemas operativos en una misma computadora. 19 19 Clases de software de sistema L/O/G/O SOFTWARE de Aplicacin. 21 21 SOFTWARE DE APLICACIN. El software de aplicacin ha sido escrito con el fin de realizar casi cualquier tarea imaginable. Est puede ser utilizado en cualquier instalacin informtica, independiente del empleo que vayamos a hacer de ella. Existen literalmente miles de estos programas para ser aplicados en diferentes tareas, desde procesamiento de palabras hasta cmo seleccionar una universidad. 22 22 Software de Aplicacin. 23 23 Procesador de Texto. Es una aplicacin informtica destinada a la creacin o modificacin de documentos escritos por medio de una computadora. 24 24 Hoja de Calculo. Una hoja de clculo es un programa que permite manipular datos numricos y alfanumricos dispuestos en forma de tablas compuestas por celdas (las cuales se suelen organizar en una matriz bidimensional de filas y columnas). 25 25 Presentaciones electrnicas. 26 26 Diccionario,electronico,enciclopedia y tutoriales. 27 27 Diccionario, electrnico, enciclopedia y tutoriales. Una enciclopedia es un texto que busca compendiar el conocimiento humano. Un Ejemplo, de enciclopedia virtual es Wikipedia. Wikipedia es una enciclopedia electronica libre
y polglota de la Fundacin Wikimedia (una organizacin sin nimo de lucro). 28 28 Manejo y edicin de documentos. 29 29 Elementos Grficos. Existen dos tipos bsicos de grficos que puede utilizar para mejorar los documentos de Microsoft Word: objetos de dibujo e imgenes, graficas electrnicas o virtuales que pueden ser tiles en programas de Microsoft. 30 30 Configuracin de una pagina. Es un conjunto de datos que determina el valor de algunas variables de un programa o de un sistema Operativo, estas opciones generalmente son cargadas en su inicio y en algunos casos se deber reiniciar para poder ver los cambios 31 31 Corrector ortogrfico. 32 32 Grafico. 33 33 Manejo de Diapositivas. Una diapositiva es utilizada en computacin como una hoja ya sea que contengan imgenes o escritos, mas que nada se utilizan en el programa de Microsoft office , cuando realizas una exposicin, se cambian diapositivas para continuar con la exposicin. 34 34 Vista de una presentacin. 35 35 Software de Tiempo Real Coordina/analiza/controla sucesos del mundo real conforme ocurren. Integra diferentes componentes: Recoleccin de datos Dar formato a la informacin recibida del exterior De anlisis para transformar la informacin De Control/salida que responda al exterior De Monitorizacin que coordine a todos los componentes En un tiempo de entre 1 milisegundo a 1 segundo. 35 36 36 Software de Tiempo Real 37 37 Software de Gestin El proceso de la informacin comercial constituye la mayor de las reas de aplicacin del software.
Han evolucionado hacia el software de sistemas de informacin de gestin (SIG) que accede a una o ms bases de datos que contienen informacin comercial Por ejemplo: nminas, cuentas de haberes-dbitos, inventarios, etc.
Se realizan tareas convencionales de procesamientos de datos 37 38 38 Software de Gestin 38 39 39 Software de Ingeniera y cientfico Est caracterizado por los algoritmos (conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema ) de manejo de nmeros Ejemplo: Astronoma, vulcanologa, anlisis de la presin de los automotores, dinmica orbital de las lanzaderas espaciales, biologa molecular, fabricacin automtica. Pero las nuevas aplicaciones del rea de ingeniera se han alejado de los algoritmos convencionales numricos. El diseo asistido por computadora (del ingls CAD), la simulacin de sistemas y otras aplicaciones interactivas, han comenzado a coger caractersticas del software de tiempo real e incluso del software de sistemas. 40 40 Software empotrado Reside en memoria de slo lectura Se utiliza para controlar productos y sistemas de los mercados industriales y de consumo Ejecuta funciones muy limitadas Ejemplo: El control de las teclas de un horno de microondas, control de la gasolina de un automvil, sistemas de frenado, etc. 40 41 41 Software de computadoras personales El mercado del software de computadoras personales ha germinado en las pasadas dos dcadas. Aplicaciones que pertenecen a esta categora:
El procesamiento de textos Hojas de clculo Los grficos por computadora Multimedia Entretenimientos Gestin de bases de datos Aplicaciones financieras, de negocios y personales Redes o acceso a bases de datos externas 41 42 42 Software basado en Web Las pginas Web buscadas por un explorador son software que incorpora instrucciones ejecutables (por ejemplo, HTML, Perl, o Java), y datos (por ejemplo, hipertexto y una variedad de formatos de audio y visuales).
En esencia, la red viene a ser una gran computadora que proporciona un recurso software casi ilimitado que puede ser accedido por cualquier persona con un MODEM. 42 43 43 Software de Inteligencia Artificial Este tipo de Software hace uso de algoritmos no numricos para resolver problemas complejos para los que no son adecuados el clculo o el anlisis directo.
Ejemplos: Los sistemas expertos, reconocimiento de patrones (imgenes y voz), redes neuronales prueba de teoremas y juegos. 44 44 Caractersticas que diferencian a un software de otro. Complejidad Significado y forma de la informacin de entrada y salida. Compartir recursos La interaccin con el Hardware (HW) El objetivo para lo que fueron diseados
44 45 45 Cualidades del Software Qu es un buen software? 46 46 Clasificacin de las cualidades Externas: son visibles a los usuarios. Internas: son visibles a los desarrolladores. Del producto: son observables en los distintos productos y subproductos del ciclo de vida. Del proceso: describen a la forma en que el producto es producido. 47 Cualidades del Software Correcto (Correctness) Confiable (Reliability) Robusto (Robustness) Eficiente (Eficciency) Amigable (Friendliness ) Verificable (Verifiability) Reusable (Reusability) Portable (Portability)
Interoperable (Interoperability) Productivo (Productivity) A tiempo (Timeliness) Visible (Visibility) Cohesivo Desacoplado Comprensible (Understandability) Mantenible (Maintainability) 48 48 Correcto Un software es correcto si se comporta de acuerdo a su especificacin La definicin supone: La existencia es una especificacin de requisitos. La posibilidad de determinar sin ambigedad la correspondencia entre la especificacin y el diseo. Lo correcto del software puede probarse ejecutndolo o mediante anlisis. Especificacin de Requerimientos Diseo 49 49 Confiable El software se comporta de acuerdo con lo esperado por el usuario.
A diferencia de la correccin, la confiabilidad es algo relativo.
El mercado puede admitir algunos errores en el software siempre que en general se comporte en forma esperada.
La confiabilidad es relativa: un SW puede an ser confiable si la consecuencia de un error no es seria; o si la cantidad de errores por unidad de tiempo no es alta. Correcto Confiable 50 50 Robusto Un software es robusto si se comporta en forma razonable an en situaciones no anticipadas. Datos de entrada incorrectos o fallas de hardware son las situaciones mas frecuentes. La cantidad de cdigo que se dedica a hacer el software robusto depende de la experiencia de los usuarios o lo crtico de su misin. Si algo se especifica como requerimiento, cumplirlo es cuestin de correccin; si no est en los requerimientos es cuestin de robustez. 51 Eficiencia-Performance Muy lento baja la productividad de los usuarios. Usa mucho disco puede ser muy caro ejecutarlo. Usa mucha memoria puede afectar la performance de otros sistemas Los criterios de eficiencia varan con la tecnologa y el tiempo. Mtodos de evaluacin de performance: Monitoreo Anlisis Simulacin Un sistema de software es eficiente si usa sus recursos en forma econmica. Usualmente es muy difcil mejorar considerablemente el performance sin redisear. No es bueno evaluar el performance slo despus que el producto est listo, sino durante todo el proceso. 52 Amigable La interfaz con los usuarios es parte esencial de ser amigable Depende de los usuarios: Novicios: lo mejor son largos mensajes explicativos Expertos aprecian los atajos. Otros factores importantes para lograr esta cualidad son la facilidad en la configuracin y el proceso para realizar una tarea. Un software es amigable si sus usuarios lo encuentran fcil de utilizar. 53 Verificable El software es verificable si sus propiedades pueden ser comprobadas. La correccin y el performance pueden verificarse fcilmente La verificacin puede hacerse mediante el anlisis o testing. Tambin se verifica: Monitoreos de cdigo Diseo modular Disciplina en la codificacin Lenguaje de programacin adecuado. 54 Reusable/Re-utilizable Software ya construido se usa con pocos o ningn cambio. La reutilizacin es mas apropiada para componentes que para sistemas completos Las bibliotecas (libreras) cientficas FORTRAN son los ejemplos ms conocidos y Java APIs son ejemplos ms nuevos. Debe apuntarse a ella desde el diseo. La reutilizacin es una cualidad difcil (imposible) de conseguir a posteriori. La orientacin a objetos tiene potencial para mejorar la reutilizacin y la evolucin. 55 Portable Un SW es portable si puede ejecutarse en distintos ambientes (hardware, sistemas operativos, etc.) Una forma de lograr portabilidad es suponer la mnima configuracin. Esto penaliza los sistemas que podran ejecutarse mejor haciendo uso del ambiente disponible. Otra opcin es determinar sobre la marcha las disponibilidades del ambiente.
56 Interoperable Un sistema es interoperable si puede coexistir y cooperar con otros sistemas. Las componentes reutilizables son interoperables. La estandarizacin de las interfaces promueve la interoperabilidad. Los sistemas abiertos son casos tpicos de sistemas interoperables.
57 Productivo La productividad es la eficiencia del proceso de desarrollo del software. La productividad de un equipo de desarrollo es generalmente menor que la suma de las productividades individuales. Existen mtricas para medir la productividad (LOCK, puntos de funcin, etc.) La automatizacin y el soporte del software de desarrollo aumenta la productividad. 58 Visible Un proceso de desarrollo de software es visible si todos sus pasos estn claramente documentados, y se puede saber su estado de avance en cada momento. Diseo, testing, codificacin e integracin pueden suceder simultneamente, pero deben coordinarse. La visibilidad ayuda a evaluar el impacto de las decisiones. Tambin es esencial cuando existe rotacin en el personal. 59 Cohesin Medida de la relacin entra las partes de un componente. Diferentes tipos: Coincidental: No relacionados. Lgica: Funciones similares. Temporal: Ejecucin simultanea. Procedural: Secuencia de control. Comunicacional: Comparten el Input (emtrada). Secuencial: Output de uno es input de otro. Funcional: Todas las partes son necesaria para la funcin. Objeto: Todas las acciones actan sobre los mismos datos del objeto. 60 Comprensible Un sistema es comprensible si es fcil de comprender cmo funciona. Caractersticas que afectan la comprensibilidad del sistema *Cohesin y acoplamiento *Nombres *Documentacin *Complejidad Si un sistema es comprensible, es tambin ms Mantenible y verificable. Desde un punto de vista del usuario, ser comprensible es ser amigable y robusto. 61 Mantenible Un sistema es Mantenible si es fcil modificarlo. Tipos de mantenimiento: *Correctivo (aprox. 20%) *Adaptativo (aprox. 20%) *Perfectivo (aprox. 50%) Software Mantenible: *Reparable : que permite corregir defectos, *Evolucionable: facilita la introduccin de nuevas funcionalidades Condiciones *Nmero de componentes, *Acoplamiento *Documentacin: Completa, Comprensible o al da. *Uso de componentes estndar La evolucionabilidad decrece con cada versin del software. 62 62 Evolucionabilidad Un SW es evolucionable si permite cambios que lo hacen capaz de satisfacer nuevos requerimientos. Se logra mediante modularizacin; los sucesivos cambios tienden a reducir la modularizacin. El diseo original y cada cambio deben hacerse con esta cualidad en mente. 63 A tiempo El proceso de desarrollo debe obtener su producto en el tiempo planeado. Tener el producto a tiempo da una mejor oportunidad comercial, y a veces hace que el producto sea til o intil. Tener un producto a tiempo sin confiabilidad o eficiencia tampoco es til. Requiere: Planificacin Estimacin del trabajo Hitos verificables (metas parciales) L/O/G/O SOFTWARE de DISPOSITIVOS MVILES. 65 Definicin de dispositivos mviles Los dispositivos mviles son aparatos pequeos, con capacidades de procesamiento (cada vez mas asemejando a una PC), mviles y porttiles, con conexin permanente o intermitente a una red (internet), con memoria limitada, diseados para llevar a cabo funciones generales (correo electrnico, hablar por telfono, mensajes, manejo de imgenes msica y video). 66 Categoras de dispositivos mviles Dispositivo Mvil de Datos Limitados (Limited Data Mobile Device): dispositivos que tienen una pantalla pequea, principalmente basada en pantalla de tipo texto con con servicios de datos generalmente limitados a SMS y acceso WAP. Un tpico ejemplo de este tipo de dispositivos son los telfonos mviles. Dispositivo Mvil de Datos Bsicos (Basic Data Mobile Device): dispositivos que tienen una pantalla de mediano tamao, (entre 120 x 120 y 240 x 240 pixels), men o navegacin basada en conos por medio de una "rueda" o cursor, y que ofrecen acceso a e-mails, lista de direcciones, SMS, y un navegador web bsico. Un tpico ejemplo de este tipo de dispositivos son las BlackBerry y los Telfonos Inteligentes. Dispositivo Mvil de Datos Mejorados (Enhanced Data Mobile Device): dispositivos que tienen pantallas de medianas a grandes (por encima de los 240 x 120 pixels), navegacin de tipo stylus, y que ofrecen las mismas caractersticas que el "Dispositivo Mvil de Datos Bsicos" (Basic Data Mobile Devices) ms aplicaciones nativas como aplicaciones de Microsoft Office Mobile (Word, Excel, PowerPoint) y aplicaciones corporativas usuales, en versin mvil, como Sap, portales intranet, etc.
67 Importancia de los dispositivos mviles La importancia actual de los dispositivos mviles radica en que nos permiten comunicar en cualquier distancia, lugar y en movimiento, sea en el transporte, estar en otra ciudad o caminando en cualquier parte. Estas caractersticas bien se pueden aprovechar para la difusin del conocimiento y para dar mayor productividad. 68 Situacin problemtica. Los proveedores de dispositivos mviles (TELCEL, IUSASEL, MOVISTAR, etc.) monopolizan el software y el hardware haciendo esta tecnologa cada vez mas privativa para la sociedad. 69 Herramientas de Software libre para desarrollo de aplicaciones Mviles Java SE JDK: software que provee herramientas de desarrollo para la creacin de programas en java. Puede instalarse en una computadora local o en una unidad de red. Apache Tomcat: Servidor web virtual open source software para la implementacion de tecnologas Java Servlet and JavaServer Pages. Java2ME: Programacin de aplicaciones en Java relacionadas con telefona mvil y las aportaciones java de los propios usuarios, midlets, JSPs, servlets . Linux: Sistema Operativo y combinacin del ncleo o kernel libre similar a Unix denominado Linux, que es usado con herramientas de sistema GNU. Android : Sistema Operativo Libre basado en el nucleo de Linux
70 Herramientas de Software libre para desarrollo de aplicaciones Mviles Mobile PHP Editor: Es un programa en Java orientado a la edicin o creacin de cdigo con lenguaje PHP. MySQL: Es un sistema de gestin de bases de datos relacional, multihilo y multiusuario, software libre y esquema de licenciamiento dual. PostgreSQL: Es un sistema de gestin de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD. SuperWaba : Se compone de una mquina virtual Java (JVM), un conjunto de bibliotecas asociadas y pequeas herramientas que implementan una subclase de Java, lo cual significa que funciona bajo una Java VM normal o como un applet de navegador.
L/O/G/O CAPTULO III: - El software y la resolucin de problemas. Tratamiento informtico de un problema: definicin de las necesidades. Anlisis del sistema. Diseo del sistema. Elaboracin del programa. Implementacin y mantenimiento. 72 72 73 73 74 74 75 75 76 76 77 77 78 78 79 79 80 80 81 81 82 82 83 83 84 84 L/O/G/O MUCHAS GRACIAS 86