leccion 2 - el software

Upload: idsystems

Post on 04-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Leccion 2 - El software

    1/5

    [FUNDAMENTOS Y DESARROLLO DE SISTEMAS] IDSYSTEMS 2013

    LECCION 2 EL SOFTWARE Pgina 1

    LECCION 2 EL SOFTWARE

    En 1970, menos del uno por ciento de las personas podra haber descrito inteligentemente loque significa - ba software de computadora. Hoy, la mayora de los profesionales y muchaspersonas en general piensan en su mayora que comprenden el software. Pero lo entiendenrealmente?

    2.1 CARACTERISTICAS DEL SOFTWARE

    Para poder comprender lo que es el software (y consecuentemente la ingeniera del software), esimportante examinar las caractersticas del software que lo diferencian de otras cosas que los hombrespueden construir. Cuando se construye hardware, el proceso creativo humano (anlisis, diseo,construccin, prueba) se traduce finalmente en una forma fsica. Si construimos una nuevacomputadora, nuestro boceto inicial, diagramas formales de diseo y prototipo de prueba, evolucionanhacia un producto fsico (chips, tarjetas de circuitos impresos, fuentes de potencia, etc.).

    El software es un elemento del sistema que es lgico, en lugar de fsico. Por tanto el softwaretiene unas caractersticas considerablemente distintas a las del hardware:

    1. El software se desarrolla, no se fabrica en un sentido clsico.

    Aunque existen similitudes entre el desarrollo del software y la construccin del hardware,ambas actividades son fundamentalmente diferentes. En ambas actividades la buena calidad seadquiere mediante un buen diseo, pero la fase de construccin del hardware puede introducirproblemas de calidad que no existen (o son fcilmente corregibles) en el software. Ambas actividadesdependen de las personas, pero la relacin entre las personas dedicadas y el trabajo realizado escompletamente diferente para el software (vase el Captulo 7). Ambas actividades requieren laconstruccin de un producto pero los enfoques son diferentes.

    Los costes del software se encuentran en la ingeniera. Esto significa que los proyectos desoftware no se pueden gestionar como si fueran proyectos de fabricacin.

    2. Elsoftwarenose estropea.

    La Figura 1.1 describe, para el hardware, la proporcin de fallos como una funcin del tiempo. Esarelacin, denominada frecuentemente curva de baera, indica que el hardware exhibe relativamentemuchos fallos al principio de su vida (estos fallos son atribuibles normalmente a defectos del diseo ode la fabricacin); una vez corregidos los defectos, la tasa de fallos cae hasta un nivel estacionario(bastante bajo, con un poco de optimismo) donde permanece durante un cierto periodo de tiempo. Sinembargo, conforme pasa el tiempo, el hardware empieza a desgastarse y la tasa de fallos seincrementa.

    El software no es susceptible a los males del entorno que hacen que el hardware se estropee.Por tanto, en teora, la curva de fallos para el software tendra la forma que muestra la Figura 1.2. Losdefectos no detectados haran que falle el programa durante las primeras etapas de su vida. Sinembargo, una vez que se corrigen (suponiendo que no se introducen nuevos errores) la curva seaplana, como se muestra. La curva idealizada es una gran simplificacin de los modelos reales defallos del software. Sin embargo la implicacin es clara, el software no se estropea. Pero se deteriora!

  • 7/30/2019 Leccion 2 - El software

    2/5

    [FUNDAMENTOS Y DESARROLLO DE SISTEMAS] IDSYSTEMS 2013

    LECCION 2 EL SOFTWARE Pgina 2

    Esto que parece una contradiccin, puede comprenderse mejor considerando la curva actualmostrada en la Figura 1.2. Durante su vida, el software sufre cambios (mantenimiento). Conforme sehacen los cambios, es bastante probable que se introduzcan nuevos defectos, haciendo que la curvade fallos tenga picos como se ve en la Figura 1.2. Antes de que la curva pueda volver al estadoestacionario original, se solicita otro cambio, haciendo que de nuevo se cree otro pico. Lentamente, elnivel mnimo de fallos comienza a crecer -el software se va deteriorando debido a los cambios -.Otro aspecto de ese deterioro ilustra la diferencia entre el hardware y el software. Cuando uncomponente de hardware se estropea se sustituye por una pieza de repuesto. No hay piezas derepuesto para el software. Cada fallo en el software indica un error en el diseo o en el procesomediante el que se tradujo el diseo a cdigo mquina ejecutable. Por tanto, el mantenimiento delsoftware tiene una complejidad considerablemente mayor que la del mantenimiento del hardware.

    3. Aunque la industria tiende a ensamblar componentes, la mayora del software se construye amedida.

    Consideremos la forma en la que se disea y se construye el hardware de control para unproducto basado en computadora. El ingeniero de diseo construye un sencillo esquema de lacircuitera digital, hace algn anlisis fundamental para asegurar que se consigue la funcin adecuaday va al armario donde se encuentran los catlogos de componentes digitales. Despus de seleccionarcada componente, puede solicitarse la compra.

  • 7/30/2019 Leccion 2 - El software

    3/5

    [FUNDAMENTOS Y DESARROLLO DE SISTEMAS] IDSYSTEMS 2013

    LECCION 2 EL SOFTWARE Pgina 3

    A medida que la disciplina del software evoluciona, se crea un grupo de componentes dediseo estndar. Tornillos estndar y circuitos integrados preparados para la venta son solamente losdos mil coinponentes estndar que utilizan ingenieros mecnicos y elctricos cuando disean nuevos

    sistemas. Los componentes reutilizables se han creado para que el ingeniero pueda concentrarse enelementos verdaderamente innovadores de un diseo, por ejemplo, las partes del diseo querepresentan algo nuevo. En el mundo del hardware, la reutilizacin de componentes es una parte

    natural del proceso de ingeniera. En el mundo del software es algo que slo ha comenzado a lograrseen una escala amplia.

    El componente de software debera disearse e implementarse para que pueda volver a serreutilizado en muchos programas diferentes. En los aos 60, se construyeron bibliotecas de subrutinascientficas reutilizables en una amplia serie de aplicaciones cientficas y de ingeniera. Esas bibliotecasde subrutinas reutilizaban de forma efectiva algoritmos bien definidos, pero tenan un dominio deaplicacin limitado. Hoy en da, hemos extendido nuestra visin de reutilizacin para abarcar no slolos algortmos, sino tambin estructuras de datos. Los componentes reutilizables modernosencapsulan tanto datos como procesos que se aplican a los datos, permitiendo al ingeniero delsoftware crear nuevas aplicaciones a partir de las partes reutilizables. Por ejemplo, las interfacesgrficas de usuario de hoy en da se construyen frecuentemente a partir de componentes reutilizables

    que permiten la creacin de ventanas grficas, de mens despleglables y de una amplia variedad demecanismos de interaccin.

    2.3 Aplicaciones del software

    El software puede aplicarse en cualquier situacin en la que se haya definido previamente unconjunto especfico de pasos procedimentales (es decir, un algoritmo) (excepciones notables a estaregla son el software de los sistemas expertos y de redes neuronales). El contenido y el determinismode la informacin son factores importantes a considerar para determinar la naturaleza de una

  • 7/30/2019 Leccion 2 - El software

    4/5

    [FUNDAMENTOS Y DESARROLLO DE SISTEMAS] IDSYSTEMS 2013

    LECCION 2 EL SOFTWARE Pgina 4

    aplicacin de software. El contenido se refiere al significado y a la forma de la informacin de entrada ysalida. Por ejemplo, muchas aplicaciones bancarias usan unos datos de entrada muy estructurados(una base de datos) y producen informes con determinados formatos. El software que controla unamquina automtica (por ejemplo: un control numrico) acepta elementos de datos discretos con unaestructura limitada y produce rdenes concretas para la mquina en rpida sucesin.

    El determinismo de la informacin se refiere a la predecibilidad del orden y del tiempo dellegada de los datos. Un programa de anlisis de ingeniera acepta datos que estn en un ordenpredefinido, ejecuta el algoritmo(s) de anlisis sin interrupcin y produce los datos resultantes en uninforme o formato grfico. Se dice que tales aplicaciones son determinadas. Un sistema operativomultiusuario, por otra parte, acepta entradas que tienen un contenido variado y que se producen eninstantes arbitrarios, ejecuta algoritmos que pueden ser interrumpidos por condiciones externas yproduce una salida que depende de una funcin del entorno y del tiempo. Las aplicaciones con estascaractersticas se dice que son indeterminadas.

    Algunas veces es difcil establecer categoras genricas para las aplicaciones del software quesean significativas. Conforme aumenta la complejidad del software, es ms difcil establecercompartimentos ntidamente separados. Las siguientes reas del software indican la amplitud de las

    aplicaciones potenciales:

    Software de sistemas. El software de sistemas es un conjunto de programas que han sidoescritos para servir a otros programas. Algunos programas de sistemas (por ejemplo: compiladores,editores y utilidades de gestin de archivos) procesan estructuras de informacin complejas perodeterminadas. Otras aplicaciones de sistemas (por ejemplo: ciertos componentes del sistemaoperativo, utilidades de manejo de perifricos, procesadores de telecomunicaciones) procesan datosen gran medida indeterminados. En cualquier caso, el rea del software de sistemas se caracteriza poruna fuerte interaccin con el hardware de la computadora; una gran utilizacin por mltiples usuarios;una operacin concurrente que requiere una planificacin, una comparticin de recursos y unasofisticada gestin de procesos; unas estructuras de datos complejas y mltiples interfaces externas.

    Software de tiempo real. El software que coordina/analiza/controla sucesos del mundo realconforme ocurren, se denomina de tiempo real. Entre los elemen- tos del software de tiempo real seincluyen: un componente de adquisicin de datos que recolecta y da formato a la informacin recibidadel entorno externo, un com ponente de anlisis que transforma la informacin segn lo requiera laaplicacin, un componente de contro/salida que responda al entorno externo, y un componente demonitorizacin que coordina todos los dems compo - nentes, de forma que pueda mantenerse larepuesta en tiempo real (tpicamente en el rango de un milisegundo a un segundo).

    Software de gestin. El proceso de la informacin comercial constituye la mayor de las reasde aplica - cin del software. Los sistemas discretos (por ejemplo: nminas, cuentas de haberes-dbitos, inventarios, etc.) 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. Las aplicaciones

    en esta rea reestructuran los datos existentes para facilitar las operaciones comerciales o gestionar latoma de decisiones. Adems de las tareas convencionales de procesamientos de datos, lasaplicaciones de software de gestin tambin realizan clculo interactivo (por ejemplo: el procesamientode transacciones en puntos de ventas).

    Software de ingeniera y cientfco. El software de ingeniera y cientfico est caracterizadopor los algoritmos de manejo de nmeros. Las aplicaciones van desde la astronoma a lavulcanologa, desde el anlisis de la presin de los automotores a la dinmica orbital de las lanzaderas

  • 7/30/2019 Leccion 2 - El software

    5/5

    [FUNDAMENTOS Y DESARROLLO DE SISTEMAS] IDSYSTEMS 2013

    LECCION 2 EL SOFTWARE Pgina 5

    espaciales y desde la biologa molecular a la fabricacin automtica. Sin embargo, las nuevasaplicaciones del rea de ingeniera/ciencia se han alejado de los algoritmos convencionales numricos.El diseo asistido por computadora (del ingls CAD), la simulacin de sistemas y otras aplicacionesinteractivas, han comenzado a coger caractersticas del software de tiempo real e incluso del softwarede sistemas.

    Software empotrado. Los productos inteligentes se han convertido en algo comn en casitodos los mercados de consumo e industriales. El software empotrado reside en memoria de slolectura y se utiliza para controlar productos y sistemas de los mercados industriales y de consumo. Elsoftware empotrado puede ejecutar funciones muy limitadas y curiosas (por ejemplo: el control de lasteclas de un horno de microondas) o suministrar una funcin significativa y con capacidad de control(por ejemplo: funciones digitales en un automvil, tales como control de la gasolina, indicadores en elsalpicadero, sistemas de frenado, etc.).

    Software de computadoras personales. El mercado del software de computadoraspersonales ha germinado en las pasadas dos dcadas. El procesamiento de textos, las hojas declculo, los grficos por computadora, multimedia, entretenimientos, gestin de bases de datos,aplicaciones financieras, de negocios y personales y redes o acceso a bases de datos externas son

    algunas de los cientos de aplicaciones.

    Software basado en Web. Las pginas Web buscadas por un explorador son software queincorpora instrucciones ejecutables (por ejemplo, CGI, 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 grancomputadora que proporciona un recurso software casi ilimitado que puede ser accedido porcualquiera con un modem.

    Software de inteligencia artificial. El software de inteligencia artificial (IA) hace uso dealgoritmos no numricos para resolver problemas complejos para los que no son adecuados el clculoo el anlisis directo. Los sistemas expertos, tambin llamados sistemas basados en el conocimiento,reconocimiento de patrones (imgenes y voz), redes neuronales artificiales, prueba de teoremas, y los

    juegos son representativos de las aplicaciones de esta categora.