1 / 82

Fundamentos de Ingenier a del Software

grant
Télécharger la présentation

Fundamentos de Ingenier a del Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Fundamentos de Ingeniería del Software Tema 1. Introducción a la Ingeniería del Software

    2. Introducción a la Ingeniería del Software 2 Índice El software. Factores de calidad del software. Problemas en el desarrollo de software. La Ingeniería del Software. Visión general del proceso de Ingeniería del Software. Sistemas de Información Herramientas CASE

    3. Introducción a la Ingeniería del Software 3 Bibliografía (Pressman 2001) o (Pressman 1998) Cap.1 y Cap. 2 (aptdo. 2.1).

    4. Introducción a la Ingeniería del Software 4 Motivación Es muy simple el esquema que consiste en desarrollar un programa sencillo que resuelve una tarea bien determinada. Lo normal es que se evolucione al desarrollo de un sistema software: integra varios programas, o producto software: programa usado en diferentes aplicaciones/entornos Ambos desarrollos “dan lugar a la Ingeniería del Software”: Programas integrados que pueden trabajar en varios entornos. Es muy simple el esquema que consiste en desarrollar un programa sencillo que resuelve una tarea bien determinada. Lo normal es que se evolucione al desarrollo de un sistema software: integra varios programas, o producto software: programa usado en diferentes aplicaciones/entornos Ambos desarrollos “dan lugar a la Ingeniería del Software”: Programas integrados que pueden trabajar en varios entornos.

    5. Introducción a la Ingeniería del Software 5 Motivación (II) Sólo un ejemplo del importante papel de los SI en las empresas: (a) intervención de Banesto; (b) (EL PAIS, Sábado, 21 de septiembre de 2002) concesión a Banesto de los gestión financiera de los fondos que maneja el Ministerio de Justicia durante cinco años. La administración de estos fondos asciende a 2.164 millones de euros el primer año. El Ministerio de Justicia advirtió de que la entidad ganadora sería la que mayor remuneración ofreciera. (...) Pero el concurso no sólo era cuestión de precios. Justicia exigió a los bancos un sistema informático especial que se adaptara a sus necesidades. Banesto deberá realizar una inversión adicional para tenerlo listo en enero. Hoy día, con las herramientas disponibles cualquiera puede desarrollar software. En este contexto, ¿cuál puede ser la distinción de los ingenieros de software? Construir software con calidad. Sólo el software construido con principios de ingeniería puede tener sistemáticamente calidad, y se fiable, económico y eficiente. El proceso software debe realizarse de acuerdo con una serie de normas y estándares. Esta asignatura es una introducción a esta relativamente nueva “disciplina de ingeniería”, y debe servir como una guía que introduzca toda la materia de ingeniería del software que se estudia en la carrera.Sólo un ejemplo del importante papel de los SI en las empresas: (a) intervención de Banesto; (b) (EL PAIS, Sábado, 21 de septiembre de 2002) concesión a Banesto de los gestión financiera de los fondos que maneja el Ministerio de Justicia durante cinco años. La administración de estos fondos asciende a 2.164 millones de euros el primer año. El Ministerio de Justicia advirtió de que la entidad ganadora sería la que mayor remuneración ofreciera. (...) Pero el concurso no sólo era cuestión de precios. Justicia exigió a los bancos un sistema informático especial que se adaptara a sus necesidades. Banesto deberá realizar una inversión adicional para tenerlo listo en enero. Hoy día, con las herramientas disponibles cualquiera puede desarrollar software. En este contexto, ¿cuál puede ser la distinción de los ingenieros de software? Construir software con calidad. Sólo el software construido con principios de ingeniería puede tener sistemáticamente calidad, y se fiable, económico y eficiente. El proceso software debe realizarse de acuerdo con una serie de normas y estándares. Esta asignatura es una introducción a esta relativamente nueva “disciplina de ingeniería”, y debe servir como una guía que introduzca toda la materia de ingeniería del software que se estudia en la carrera.

    6. Introducción a la Ingeniería del Software 6 Desarrollo del software. Un símil. Pero hay una diferencia fundamental: Planos en la industria de la construcción: bien establecidos. “Planos” en la industria del software: todavía no. Pero hay una diferencia fundamental: Planos en la industria de la construcción: bien establecidos. “Planos” en la industria del software: todavía no.

    7. Introducción a la Ingeniería del Software 7 Desarrollo del software. Comunicación compleja Esta figura podría resumir buena parte de la esencia de la asignatura: en el desarrollo de software (una entidad “compleja”) se producen problemas de comunicación a varios niveles: entre usuarios y desarrolladores y entre los componentes mismos del equipo de desarrollo. Estudiaremos las técnicas, métodos y herramientas de ingeniería que puedan hacer que estos problemas se minimicen, e incluso que desaparezcan. Esta figura podría resumir buena parte de la esencia de la asignatura: en el desarrollo de software (una entidad “compleja”) se producen problemas de comunicación a varios niveles: entre usuarios y desarrolladores y entre los componentes mismos del equipo de desarrollo. Estudiaremos las técnicas, métodos y herramientas de ingeniería que puedan hacer que estos problemas se minimicen, e incluso que desaparezcan.

    8. Introducción a la Ingeniería del Software 8 El Software El Software: Instrucciones que, cuando se ejecutan, proporcionan la funcionalidad deseada. Estructuras de datos que facilitan a las instrucciones manipular adecuadamente la información. Documentos que describen el desarrollo, uso, instalación y mantenimiento de los programas. Software: "programas de computador, procedimientos, y, posiblemente, la documentación asociada y los datos pertenecientes a las operaciones de un sistema de computación". Incluye: entrenamiento, soporte al consumidor e instalación. Por ejemplo, la página web del producto (soporte al consumidor) formaría parte del software.Por ejemplo, la página web del producto (soporte al consumidor) formaría parte del software.

    9. Introducción a la Ingeniería del Software 9 Características del software Elemento lógico, no físico. Desarrollado, no ‘fabricado’. No se ‘estropea’, ¡se deteriora! (deterioro por ‘cambios’) Mayoritariamente cerrado: usar todo o nada (poco ensamblaje de componentes: reutilización--) Poner una analogía con el Hw. “Elemento lógico”: lo hace más difícil de medir. “No se estropea, se deteriora”: discutir en la pizarra las figuras p. 8-9 (Pressman 98)(Pressman 01): Curva de fallos del Hw. Curva de fallos del Sw. (idealizada y real). Poco ensamblaje de componentes: diferencias con el Hw. Poner una analogía con el Hw. “Elemento lógico”: lo hace más difícil de medir. “No se estropea, se deteriora”: discutir en la pizarra las figuras p. 8-9 (Pressman 98)(Pressman 01): Curva de fallos del Hw. Curva de fallos del Sw. (idealizada y real). Poco ensamblaje de componentes: diferencias con el Hw.

    10. Introducción a la Ingeniería del Software 10 Atributos de Calidad del Software (Bell 2000) Fiable Capacidad de ofrecer los mismos resultados bajo las mismas condiciones. Eficiente Utilización óptima de los recursos de la máquina. Robusto No poseer un comportamiento catastrófico ante situaciones excepcionales (Tolerante a fallos). Correcto Se ajusta a las especificaciones dadas por el usuario. Portable Capaz de integrarse en entornos distintos con el mismo esfuerzo. Adaptable (extensibilidad) Modificar alguna función sin que afecte a sus actividades. Inteligible Diseño claro, bien estructurado y documentado. No Erróneo No exista diferencia entre los valores reales y los calculados Reutilizable (reusabilidad) Son atributos de calidad externa e interna.Son atributos de calidad externa e interna.

    11. Introducción a la Ingeniería del Software 11 Atributos de Calidad del Software (Sommerville 2002) Mantenibilidad Confiabilidad fiabilidad seguridad protección Eficiencia Usabilidad (Antes que nada, pedir disculpas por estas patadas a nuestra magnífica lengua castellana.) La dependencia que manifiestan las organizaciones de los sistemas informáticos es cada vez mayor, de manera que éstos deben presentar un conjunto de propiedades deseables. Siguiendo a (Sommerville 2002), los atributos esenciales de un buen producto software son los siguientes: Mantenibilidad. El software debe escribirse de forma que pueda evolucionar para satisfacer las necesidades de cambio de los clientes. Este es un atributo crítico debido a que el cambio en el software es una consecuencia inevitable de un cambio en el entorno de negocios. Confiabilidad. Este atributo tiene un gran número de características, incluyendo la fiabilidad, seguridad, y protección. El software confiable no debe causar daños físicos o económicos si ocurre un fallo en el sistema. Eficiencia. Este atributo está relacionado con el uso adecuado de los recursos del sistema: por ejemplo, no se deben malgastar ciclos de procesamiento o memoria. La eficiencia se refiere por tanto a los tiempos de respuesta y de procesamiento, utilización de la memoria, etc. Usabilidad. El software debe ser fácil de usar, sin esfuerzo adicional para el usuario para quien está diseñado. El software debe tener una interfaz y una documentación adecuadas. (Antes que nada, pedir disculpas por estas patadas a nuestra magnífica lengua castellana.) La dependencia que manifiestan las organizaciones de los sistemas informáticos es cada vez mayor, de manera que éstos deben presentar un conjunto de propiedades deseables. Siguiendo a (Sommerville 2002), los atributos esenciales de un buen producto software son los siguientes: Mantenibilidad. El software debe escribirse de forma que pueda evolucionar para satisfacer las necesidades de cambio de los clientes. Este es un atributo crítico debido a que el cambio en el software es una consecuencia inevitable de un cambio en el entorno de negocios. Confiabilidad. Este atributo tiene un gran número de características, incluyendo la fiabilidad, seguridad, y protección. El software confiable no debe causar daños físicos o económicos si ocurre un fallo en el sistema. Eficiencia. Este atributo está relacionado con el uso adecuado de los recursos del sistema: por ejemplo, no se deben malgastar ciclos de procesamiento o memoria. La eficiencia se refiere por tanto a los tiempos de respuesta y de procesamiento, utilización de la memoria, etc. Usabilidad. El software debe ser fácil de usar, sin esfuerzo adicional para el usuario para quien está diseñado. El software debe tener una interfaz y una documentación adecuadas.

    12. Introducción a la Ingeniería del Software 12 Perspectiva histórica del desarrollo de software Década 50-60: “Software como un añadido”. Desarrollo artesanal, a medida. Lenguajes de bajo nivel. Década 60-70: Software como producto. Década lenguajes y compilación. “Crisis del software”. Década 70-80: Programación estructurada. Ingeniería del Software. Primeros métodos estructurados. Década 80-90: Tecnología de SGBDs, SOs... Nuevos paradigmas de programación y de producción de programas: OO C/S 90’s - actualidad: Análisis/Diseño OO. Tecnología CASE Componentes y reutilización Interoperabilidad (CORBA, .NET...) Internet ISw. distribuida repositorios de componentes reutilizables e-business; e-commerce ... Extraído de (Pressman 98): Década 50-60 De la producción artesanal: Continuo cambio del hardware, mientras que el software se considera un añadido. Características: Falta de documentación. Fuerte dependencia del software sobre el hardware. Desarrollo artesanal de los programas. Programas de aplicación concreta. Una sola persona lo desarrolla todo. Lenguaje de programación de bajo nivel (ensamblador) Década 60-70 De los lenguajes de programación y compiladores: Avances en el hardware (reducción del coste de procesamiento). El interés se centra en aplicaciones más complejas y más difíciles de mantener. Se detecta lo que se dio en llamar una “crisis del software”. Causas: Incremento de la complejidad de las aplicaciones. Necesidad de fiabilidad del producto. Falta de adecuación de los lenguajes de programación y ausencia de metodologías para el desarrollo de las aplicaciones. Factores donde se manifiesta la “crisis”: Incremento del coste del software. Falta de calidad del software. Década 70-80: De la Ingeniería del Software: Intento de solución de la crisis del software mediante la programación estructurada/desarrollo estructurado. Mayor potencia expresiva de los lenguajes y TAD Década 80-90 De los nuevos paradigmas: Se impulsan nuevos paradigmas en la producción de programas. Década 90’s - actualidad De la inteligencia artificial: continuidad de los avances de la década anterior. Los sistemas expertos y aplicaciones de inteligencia artificial dejan el laboratorio para aplicarse a problemas reales, si bien los sistemas expertos no tienen el éxito que se había pronosticado. Se impone la programación orientada a objetos, programación visual, componentes. El interés se traslada del desarrollo estructurado al orientado a objetos también en análisis y diseño. Internet, e-commerce, e-business, reutilización, repositorios de componentes, interoperatividad, ISw distribuida, etc. etc. etc. Extraído de (Pressman 98): Década 50-60 De la producción artesanal: Continuo cambio del hardware, mientras que el software se considera un añadido. Características: Falta de documentación. Fuerte dependencia del software sobre el hardware. Desarrollo artesanal de los programas. Programas de aplicación concreta. Una sola persona lo desarrolla todo. Lenguaje de programación de bajo nivel (ensamblador) Década 60-70 De los lenguajes de programación y compiladores: Avances en el hardware (reducción del coste de procesamiento). El interés se centra en aplicaciones más complejas y más difíciles de mantener. Se detecta lo que se dio en llamar una “crisis del software”. Causas: Incremento de la complejidad de las aplicaciones. Necesidad de fiabilidad del producto. Falta de adecuación de los lenguajes de programación y ausencia de metodologías para el desarrollo de las aplicaciones. Factores donde se manifiesta la “crisis”: Incremento del coste del software. Falta de calidad del software. Década 70-80: De la Ingeniería del Software: Intento de solución de la crisis del software mediante la programación estructurada/desarrollo estructurado. Mayor potencia expresiva de los lenguajes y TAD Década 80-90 De los nuevos paradigmas: Se impulsan nuevos paradigmas en la producción de programas. Década 90’s - actualidad De la inteligencia artificial: continuidad de los avances de la década anterior. Los sistemas expertos y aplicaciones de inteligencia artificial dejan el laboratorio para aplicarse a problemas reales, si bien los sistemas expertos no tienen el éxito que se había pronosticado. Se impone la programación orientada a objetos, programación visual, componentes. El interés se traslada del desarrollo estructurado al orientado a objetos también en análisis y diseño. Internet, e-commerce, e-business, reutilización, repositorios de componentes, interoperatividad, ISw distribuida, etc. etc. etc.

    13. Introducción a la Ingeniería del Software 13 Frecuentemente, el sw es la parte más compleja (Thayer 2002) (Thayer 02) Thayer, Richard H. IEEE Computer. Vol. 35, No. 4. April 2002. pp.68-73. Los sistemas software son ahora más grandes y complejos que nunca. Ello se debe en parte a los avances en rendimiento y costo del hardware, que han reducido la necesidad de limitar el tamaño y la complejidad del sistema como el principal objetivo de diseño. Microsoft Word es un ejemplo clásico: un producto que cabía en un disquete de 360 Kb hace 20 años, requiere ahora un CD de 600 Mb. Pero hay otras razones para el incremento de tamaño y complejidad. El software se ha convertido en la tecnología dominante en la mayoría (si no en todos) los dominios técnicos de aplicación. Normalmente es el software el que proporciona la cohesión y el control de datos que permiten a un sistema complejo resolver problemas. La figura presenta el entorno de un sistema de control de tráfico aéreo. El software une los componentes de grandes sistemas (en este caso los aviones, los controladores, radares, equipos de comunicaciones y otros equipos que se encargan de guiar los aviones hasta sus destinos). Frecuentemente, el software es la parte más compleja y difícil de obtener del sistema. (Thayer 02) Thayer, Richard H. IEEE Computer. Vol. 35, No. 4. April 2002. pp.68-73. Los sistemas software son ahora más grandes y complejos que nunca. Ello se debe en parte a los avances en rendimiento y costo del hardware, que han reducido la necesidad de limitar el tamaño y la complejidad del sistema como el principal objetivo de diseño. Microsoft Word es un ejemplo clásico: un producto que cabía en un disquete de 360 Kb hace 20 años, requiere ahora un CD de 600 Mb. Pero hay otras razones para el incremento de tamaño y complejidad. El software se ha convertido en la tecnología dominante en la mayoría (si no en todos) los dominios técnicos de aplicación. Normalmente es el software el que proporciona la cohesión y el control de datos que permiten a un sistema complejo resolver problemas. La figura presenta el entorno de un sistema de control de tráfico aéreo. El software une los componentes de grandes sistemas (en este caso los aviones, los controladores, radares, equipos de comunicaciones y otros equipos que se encargan de guiar los aviones hasta sus destinos). Frecuentemente, el software es la parte más compleja y difícil de obtener del sistema.

    14. Introducción a la Ingeniería del Software 14 La problemática actual del software Incapacidad para estimar tiempo, coste y esfuerzo para el desarrollo de un producto software. Falta de calidad del producto software. Avance del hardware y necesidad de aplicaciones más complejas. ? Cambio en la relación entre el coste hardware/software.

    15. Introducción a la Ingeniería del Software 15 Relación coste hw./sw. Cambio en la relación entre el coste hardware/software: Ejemplo: Pensemos en los grandes sistemas desarrollados “a medida”, por un equipo de trabajo contratado para la construcción de un sistema diseñado de acuerdo con las especificaciones de un cliente. El sistema necesitará generalmente una máquina principal para alojar los datos y los programas, cuyo coste en la mayoría de los casos no excede los 30000€. Los terminales para los usuarios suelen ser ordenadores del tipo IBM PC compatibles, con un coste no superior, por unidad, de 1200€. Así, incluyendo impresoras y cableado de comunicaciones, el coste en instalaciones hardware para un proyecto (suponiendo que no se pudiera aprovechar nada del material existente, y que todo deba adquirirse nuevo), puede elevarse a los 90000€ para unos treinta usuarios. Probablemente el equipo encargado de desarrollar los programas que se ejecutarán en esta plataforma, supondrá para la organización un coste muy superior a los 180000€. Todo ello, claro está, en función de la complejidad del sistema a desarrollar. Cambio en la relación entre el coste hardware/software: Ejemplo: Pensemos en los grandes sistemas desarrollados “a medida”, por un equipo de trabajo contratado para la construcción de un sistema diseñado de acuerdo con las especificaciones de un cliente. El sistema necesitará generalmente una máquina principal para alojar los datos y los programas, cuyo coste en la mayoría de los casos no excede los 30000€. Los terminales para los usuarios suelen ser ordenadores del tipo IBM PC compatibles, con un coste no superior, por unidad, de 1200€. Así, incluyendo impresoras y cableado de comunicaciones, el coste en instalaciones hardware para un proyecto (suponiendo que no se pudiera aprovechar nada del material existente, y que todo deba adquirirse nuevo), puede elevarse a los 90000€ para unos treinta usuarios. Probablemente el equipo encargado de desarrollar los programas que se ejecutarán en esta plataforma, supondrá para la organización un coste muy superior a los 180000€. Todo ello, claro está, en función de la complejidad del sistema a desarrollar.

    16. Introducción a la Ingeniería del Software 16 Problemas del software (II) ¿Porqué lleva tanto tiempo terminar los programas? ¿Porqué es tan elevado su coste? ¿Porqué no podemos encontrar todos los errores antes de entregar el software a nuestros clientes? ¿Porqué nos resulta difícil constatar el progreso conforme se desarrolla el sw.? Son preguntas que muchas veces se han hecho y se hacen los directivos o gestores a cargo de proyectos sw. Son preguntas que muchas veces se han hecho y se hacen los directivos o gestores a cargo de proyectos sw.

    17. Introducción a la Ingeniería del Software 17 INVERSION EN DESARROLLO DE SISTEMAS SOFTWARE

    18. Introducción a la Ingeniería del Software 18 Coste del software En aplicaciones críticas, el coste de prueba del sw. (incluido en “Validación y puesta a punto”) puede ser de 3 a 5 veces el coste del resto de los procesos de desarrollo. Consecuencias??? si el coste de mantenimiento bajara, se podrían desarrollar más programas ¿Porqué el coste de mantenimiento es tan alto? -> ¿Se dedica suficiente esfuerzo al análisis y al diseño? En aplicaciones críticas, el coste de prueba del sw. (incluido en “Validación y puesta a punto”) puede ser de 3 a 5 veces el coste del resto de los procesos de desarrollo. Consecuencias??? si el coste de mantenimiento bajara, se podrían desarrollar más programas ¿Porqué el coste de mantenimiento es tan alto? -> ¿Se dedica suficiente esfuerzo al análisis y al diseño?

    19. Introducción a la Ingeniería del Software 19 En España Se produce poco software de base. No se producen paquetes integrados. Sí software de aplicación a medida. Es vigente la situación general.

    20. Introducción a la Ingeniería del Software 20 En España (II)

    21. Introducción a la Ingeniería del Software 21 Algunas causas Naturaleza “no física” de la programación. Problemas derivados de la intervención de grupos. Problemas de comunicación con los clientes. Poco esfuerzo en el análisis y el diseño. Herramientas comerciales poco adecuadas. Problemas de gestión Planificaciones optimistas, plantillas poco cualificadas... Difusión limitada de las nuevas técnicas, métodos y herramientas. ...industria pendiente de su ‘revolución industrial’.

    22. Introducción a la Ingeniería del Software 22 Algunas soluciones... ¡No existe bala de plata! (Brooks 87) En su célebre artículo “No Silver Bullet - Essence and Accidents of Software Engineering” (Brooks, F. “No silver bullet”, IEEE Computer, 1987), Brooks examina la disciplina de la ingeniería del software y determina qué avances son realmente prometedores, por dirigirse a la complejidad “esencial” en el desarrollo de software, y cuáles se dirigen a la complejidad “accidental” del mismo. Para Brooks, las aproximaciones realmente prometedoras en ingeniería del software son: · Comprar en lugar de construir (Buy versus build). · Refinamiento de requisitos y prototipado rápido (Requirements refinement and rapid prototyping). · Desarrollo incremental – “hacer crecer” el software, no construirlo (Incremental development - grow, don’t build, software). · Contar con grandes diseñadores (Great designers). Resulta sorprendente observar la validez que tienen estas propuestas quince años después de que Brooks las catalogara como “prometedoras”, y demuestran la gran visión de futuro de este artículo. En su célebre artículo “No Silver Bullet - Essence and Accidents of Software Engineering” (Brooks, F. “No silver bullet”, IEEE Computer, 1987), Brooks examina la disciplina de la ingeniería del software y determina qué avances son realmente prometedores, por dirigirse a la complejidad “esencial” en el desarrollo de software, y cuáles se dirigen a la complejidad “accidental” del mismo. Para Brooks, las aproximaciones realmente prometedoras en ingeniería del software son: · Comprar en lugar de construir (Buy versus build). · Refinamiento de requisitos y prototipado rápido (Requirements refinement and rapid prototyping). · Desarrollo incremental – “hacer crecer” el software, no construirlo (Incremental development - grow, don’t build, software). · Contar con grandes diseñadores (Great designers). Resulta sorprendente observar la validez que tienen estas propuestas quince años después de que Brooks las catalogara como “prometedoras”, y demuestran la gran visión de futuro de este artículo.

    23. Introducción a la Ingeniería del Software 23 Objetivos de la Ingeniería del Software Término que aparece en 1968 La producción de programas debe abordarse como una ingeniería más. (Boehm) La Ingeniería del Software es la aplicación práctica y sistemática del conocimiento científico a: la producción de programas correctos, que se desarrollan a tiempo y dentro de las estimaciones de presupuesto, y a la correspondiente documentación para desarrollarlos, usarlos y mantenerlos. La Ingeniería del Software se fundamenta en técnicas relacionadas con: ciencia de la computación, programación, ingeniería, administración, matemáticas, economía,... Forma parte de la “Ingeniería de Sistemas” El término “Ingeniería del Software” fue acuñado durante la primera conferencia sobre Ingeniería del Software patrocinada por la OTAN, celebrada en Garmisch (Alemania) en octubre de 1968 . Esta conferencia fue continuada un año más tarde por otra en Roma. Estas sesiones tuvieron como objetivo la discusión sobre los problemas, que se percibían como cada vez mayores, en la tecnología del software, dirección de proyectos y mantenimiento de programas. El término “Ingeniería del Software” fue acuñado durante la primera conferencia sobre Ingeniería del Software patrocinada por la OTAN, celebrada en Garmisch (Alemania) en octubre de 1968 . Esta conferencia fue continuada un año más tarde por otra en Roma. Estas sesiones tuvieron como objetivo la discusión sobre los problemas, que se percibían como cada vez mayores, en la tecnología del software, dirección de proyectos y mantenimiento de programas.

    24. Introducción a la Ingeniería del Software 24 Más definiciones de ISw... “La ISw es el establecimiento y uso de principios sólidos de ingeniería, orientados a obtener software económico que sea fiable y trabaje de manera eficiente en máquinas reales” (Fritz Bauer). “Isw: (1) La aplicación de un enfoque sistemático, disciplinado y cuantificable para el desarrollo, la operación y el mantenimiento del software; es decir, la aplicación de la ingeniería al software; (2) El estudio de enfoques como en (1)” (Glosario Estándar de Términos de Ingeniería del Software de IEEE, 1998). “Una disciplina que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza” (Sommerville 2002). En la definición de Sommerville, notamos que existen dos aspectos clave: 1.- Se trata de una disciplina de ingeniería: los ingenieros hacen que las cosas funcionen. Aplican teorías, métodos y herramientas donde sea conveniente, pero las utilizan de forma selectiva y siempre tratando de descubrir soluciones a los problemas, aun cuando no existan teorías y métodos aplicables para resolverlos. Los ingenieros también tienen que trabajar con restricciones financieras y organizacionales, por lo que buscan soluciones teniendo en cuenta estas restricciones. 2.- Se tocan todos los aspectos de la producción de software: la ingeniería del software no sólo comprende los procesos técnicos de desarrollo de software, sino también actividades como la administración de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software. En la definición de Sommerville, notamos que existen dos aspectos clave: 1.- Se trata de una disciplina de ingeniería: los ingenieros hacen que las cosas funcionen. Aplican teorías, métodos y herramientas donde sea conveniente, pero las utilizan de forma selectiva y siempre tratando de descubrir soluciones a los problemas, aun cuando no existan teorías y métodos aplicables para resolverlos. Los ingenieros también tienen que trabajar con restricciones financieras y organizacionales, por lo que buscan soluciones teniendo en cuenta estas restricciones. 2.- Se tocan todos los aspectos de la producción de software: la ingeniería del software no sólo comprende los procesos técnicos de desarrollo de software, sino también actividades como la administración de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software.

    25. Introducción a la Ingeniería del Software 25 Situación actual de la ISw Fragmentación e inmadurez de la disciplina. Carencia de un conjunto de estándares (que se usen ampliamente). Terminología inconsistente. Escepticismo e inercia en el sector. Insuficiencia de datos - guía (estadísticas). Carencia y poca difusión de base formal.

    26. Introducción a la Ingeniería del Software 26 Situación actual de la ISw (II) Hay también aproximaciones prometedoras. Por ejemplo: (Además de nuevas técnicas, métodos y herramientas...) SWEBOK (Guide to the Software Engineering Body of Knowledge) (2001) Algunas universidades han comenzado a ofrecer un título en ingeniería del software Comités CSAB (Computer Science Accreditation Board) y ABET (Accreditation Board for Engineering and Technology). El CMM (Capability Maturity Model) del SEI (Software Engineering Institute) y la familia de estándares ISO 9000 son usados para valorar la capacidad de una organización de ingeniería del software. En EE UU, el Colegio de Ingenieros Profesionales de Texas (Texas Board of Professionals Engineers) ha comenzado a licenciar ingenieros del software. ACM e IEEE-CS han desarrollado y adoptado conjuntamente un Código de Ética para Profesionales en Ingeniería del Software. La ingeniería del software ha evolucionado enormemente desde que en 1968 se acuñó el término “Ingeniería del Software”. Sin embargo, actualmente la ingeniería del software todavía dista de ser una disciplina madura como lo son otras ingenierías, y no es todavía una profesión reconocida. Algunos indicios de que nos encontramos ante una disciplina con un mayor grado de madurez se presentan en esta transparencia: El proyecto SWEBOK trata de perfilar el conjunto de conocimientos que entrarían dentro del área de influencia de la ingeniería del software, esto es, su cuerpo de conocimiento. La licencia es el permiso gubernamental para que una persona pueda practicar su profesión en una jurisdicción. La certificación, en cambio, es una declaración por parte de una autoridad reconocida de que una persona es competente en un área. Los comités CSAB (Computer Science Accreditation Board) y ABET (Accreditation Board for Engineering and Technology). La acreditación de un programa curricular asegura que éste conforma con un estándar de enseñanza y que la organización educativa dispone de suficientes instalaciones para impartirlo adecuadamente. CSAB está concebido como el comité encargado de la acreditación de currículos universitarios en ingeniería del software, ciencias de la computación y sistemas de información, y recientemente ha pasado a ser parte de ABET. La ingeniería del software ha evolucionado enormemente desde que en 1968 se acuñó el término “Ingeniería del Software”. Sin embargo, actualmente la ingeniería del software todavía dista de ser una disciplina madura como lo son otras ingenierías, y no es todavía una profesión reconocida. Algunos indicios de que nos encontramos ante una disciplina con un mayor grado de madurez se presentan en esta transparencia: El proyecto SWEBOK trata de perfilar el conjunto de conocimientos que entrarían dentro del área de influencia de la ingeniería del software, esto es, su cuerpo de conocimiento. La licencia es el permiso gubernamental para que una persona pueda practicar su profesión en una jurisdicción. La certificación, en cambio, es una declaración por parte de una autoridad reconocida de que una persona es competente en un área. Los comités CSAB (Computer Science Accreditation Board) y ABET (Accreditation Board for Engineering and Technology). La acreditación de un programa curricular asegura que éste conforma con un estándar de enseñanza y que la organización educativa dispone de suficientes instalaciones para impartirlo adecuadamente. CSAB está concebido como el comité encargado de la acreditación de currículos universitarios en ingeniería del software, ciencias de la computación y sistemas de información, y recientemente ha pasado a ser parte de ABET.

    27. Introducción a la Ingeniería del Software 27 Situación actual de la ISw (III) Tres problemas esenciales en los comienzos del siglo XXI (Sommerville 2002): El reto de lo heredado El reto de la heterogeneidad El reto de la entrega Hoy día, existe un consenso en la importancia de la ISw muchos autores comienzan a renegar del término “crisis del software” Para Sommerville, en los comienzos del siglo XXI la ingeniería del software se enfrenta a tres problemas esenciales: El reto de lo heredado: la mayoría de sistemas software que actualmente están en uso fueron desarrollados hace muchos años y llevan a cabo funciones críticas. El reto de lo heredado consiste en mantener y actualizar ese software de manera que se eviten costes excesivos y que los servicios esenciales del negocio sigan funcionando. El reto de la heterogeneidad, que consiste en desarrollar sistemas software que sean lo suficientemente flexibles como para funcionar como sistemas distribuidos en redes que incluyen diferentes tipos de computadores y con diferentes clases de sistemas de soporte. El reto de la entrega, que básicamente consiste en reducir los tiempos de entrega para sistemas grandes y complejos sin comprometer la calidad del sistema. Hoy día, Meyer (Meyer 2001) afirma que si bien todavía no hay una definición de la ingeniería del software universalmente aceptada, sí que hay un consenso en su importancia, como recientemente ha puesto de manifiesto el efecto 2000. Además, los avances de la ingeniería del software durante los últimos años han cambiado la percepción sobre el estado de la disciplina, de manera que muchos autores comienzan a renegar del término “crisis del software”, al considerar que no nos encontramos ya ante una disciplina tan inmadura. Para Sommerville, en los comienzos del siglo XXI la ingeniería del software se enfrenta a tres problemas esenciales: El reto de lo heredado: la mayoría de sistemas software que actualmente están en uso fueron desarrollados hace muchos años y llevan a cabo funciones críticas. El reto de lo heredado consiste en mantener y actualizar ese software de manera que se eviten costes excesivos y que los servicios esenciales del negocio sigan funcionando. El reto de la heterogeneidad, que consiste en desarrollar sistemas software que sean lo suficientemente flexibles como para funcionar como sistemas distribuidos en redes que incluyen diferentes tipos de computadores y con diferentes clases de sistemas de soporte. El reto de la entrega, que básicamente consiste en reducir los tiempos de entrega para sistemas grandes y complejos sin comprometer la calidad del sistema. Hoy día, Meyer (Meyer 2001) afirma que si bien todavía no hay una definición de la ingeniería del software universalmente aceptada, sí que hay un consenso en su importancia, como recientemente ha puesto de manifiesto el efecto 2000. Además, los avances de la ingeniería del software durante los últimos años han cambiado la percepción sobre el estado de la disciplina, de manera que muchos autores comienzan a renegar del término “crisis del software”, al considerar que no nos encontramos ya ante una disciplina tan inmadura.

    28. Introducción a la Ingeniería del Software 28 Principios de la Ingeniería del Software Abstracción Permite parcelar la complejidad. Por ello se olvidan aspectos irrelevantes del sistema y se potencian los fundamentales. Encapsulamiento u Ocultación de la información Esconder todos los detalles que no afecten a otros módulos, definiendo interfaces estrictos que sirvan de interacción entre los distintos modelos. Modularidad Sirve para parcelar la solución en módulos independientes con fuerte cohesión interna. Localización Deben estar agrupados todos aquellos elementos que están afectados por un mismo hecho. Uniformidad Todos los módulos deben tener una notación similar. Completitud Deben estar desarrollados todos los aspectos del sistema. Validación y Verificabilidad El producto final debe ser fácilmente validable y verificable: ¿Estamos desarrollando el programa correcto? ¿Estamos desarrollando correctamente el programa?

    29. Introducción a la Ingeniería del Software 29 Visión general del proceso de ISw Con independencia del área de aplicación, tamaño o complejidad del proyecto, cualquier sistema se encontrará al menos en una de las siguientes fases genéricas: Definición ~ Análisis (del sistema, del sw.) desarrollo ~ Diseño, codificación, prueba mantenimiento. Estas son las fases genéricas de la Ingeniería del Software. Más adelante se presentarán modelos concretos de procesos.Estas son las fases genéricas de la Ingeniería del Software. Más adelante se presentarán modelos concretos de procesos.

    30. Introducción a la Ingeniería del Software 30 Fase de definición ¿Qué debe hacer el sistema? información que ha de manejar el sistema necesidades de rendimiento restricciones de diseño interfaces del sistema con los usuarios y con otros sistemas criterios de validación Se elaboran los documentos de requisitos del sistema (SyRS) y del software (SRS) En la fase de definición se intenta caracterizar el sistema que se va a construir. Se trata de resolver la pregunta: ¿Qué debe hacer el sistema? Se determina qué información ha de manejar el sistema, qué necesidades de rendimiento existen, las restricciones de diseño, cuáles son las interfaces del sistema con los usuarios así como con otros sistemas, qué criterios de validación indican si el sistema es correcto, etc. Durante esta fase se elabora los documentos de requisitos del sistema y del software (SyRS, System Requirements Specification; y SRS, Software Requirements Specification), que se emplearán para posteriormente validar la corrección de uno y otro. Utilizando alguna técnica y método se llevarán a cabo la ingeniería de sistemas o de información, planificación del proyecto software, y análisis de requisitos. En la fase de definición se intenta caracterizar el sistema que se va a construir. Se trata de resolver la pregunta: ¿Qué debe hacer el sistema? Se determina qué información ha de manejar el sistema, qué necesidades de rendimiento existen, las restricciones de diseño, cuáles son las interfaces del sistema con los usuarios así como con otros sistemas, qué criterios de validación indican si el sistema es correcto, etc. Durante esta fase se elabora los documentos de requisitos del sistema y del software (SyRS, System Requirements Specification; y SRS, Software Requirements Specification), que se emplearán para posteriormente validar la corrección de uno y otro. Utilizando alguna técnica y método se llevarán a cabo la ingeniería de sistemas o de información, planificación del proyecto software, y análisis de requisitos.

    31. Introducción a la Ingeniería del Software 31 Fase de desarrollo ¿Cómo construir el sistema? Se diseñan las estructuras de los datos y los programas cómo se caracterizan las interfaces, cómo realizar el paso del diseño al lenguaje de programación, cómo ha de realizarse la prueba, se escriben y documentan los programas, y se prueba el software construido. En la fase de desarrollo se diseñan las estructuras de los datos así como los programas (cómo han de implementarse detalles procedimentales, cómo se caracterizan las interfaces, cómo se debe realizar el paso del diseño al lenguaje de programación, cómo ha de realizarse la prueba, etc.). Se escriben y documentan los programas, y se prueba el software construido. Esta fase toma como punto de partida la documentación generada en la fase previa para considerar los elementos a construir. Siempre se realizará, de una u otra forma: diseño del software, generación de código y prueba del software.En la fase de desarrollo se diseñan las estructuras de los datos así como los programas (cómo han de implementarse detalles procedimentales, cómo se caracterizan las interfaces, cómo se debe realizar el paso del diseño al lenguaje de programación, cómo ha de realizarse la prueba, etc.). Se escriben y documentan los programas, y se prueba el software construido. Esta fase toma como punto de partida la documentación generada en la fase previa para considerar los elementos a construir. Siempre se realizará, de una u otra forma: diseño del software, generación de código y prueba del software.

    32. Introducción a la Ingeniería del Software 32 Fase de mantenimiento Comienza una vez construido el sistema, cuando se empieza a utilizar. Se centra en el cambio. El software es sometido a reparaciones y modificaciones cada vez que se detecta un fallo o se necesita cubrir una nueva necesidad de los usuarios. En esta fase recae el mayor porcentaje del coste de un sistema. Como hemos visto anteriormente, la fase de mantenimiento comienza una vez construido el sistema, cuando se empieza a utilizar realmente. El software es sometido a una serie de reparaciones y modificaciones cada vez que se detecta un fallo o se necesita cubrir una nueva necesidad de los usuarios. En la fase de mantenimiento es en la que recae el mayor porcentaje del coste de un sistema (que algunos estudios cifran en hasta un 90%).Como hemos visto anteriormente, la fase de mantenimiento comienza una vez construido el sistema, cuando se empieza a utilizar realmente. El software es sometido a una serie de reparaciones y modificaciones cada vez que se detecta un fallo o se necesita cubrir una nueva necesidad de los usuarios. En la fase de mantenimiento es en la que recae el mayor porcentaje del coste de un sistema (que algunos estudios cifran en hasta un 90%).

    33. Introducción a la Ingeniería del Software 33 Fase de mantenimiento Un buen sistema no es sólo un conjunto de programas que funcionan. Un buen sistema no es sólo un conjunto de programas que funcionan, sino que es necesario que sea fácil de mantener para adaptarlo a modificaciones, y para poder corregir los posibles errores de programación producidos durante el desarrollo. En este sentido, la documentación del proceso de desarrollo es fundamental, y debe ser suficientemente completa y exhaustiva. Con frecuencia esta documentación tiende a quedar desfasada con respecto a los programas y estructuras de datos del sistema. Para paliar en la medida de lo posible este problema es conveniente hacer uso de una herramienta CASE tanto en el desarrollo del sistema como durante el proceso de mantenimiento. Aunque sin el correcto uso de una metodología, ni la mejor herramienta CASE podrá evitar el fracaso en lo que a la catalogación de la documentación se refiere. Un buen sistema no es sólo un conjunto de programas que funcionan, sino que es necesario que sea fácil de mantener para adaptarlo a modificaciones, y para poder corregir los posibles errores de programación producidos durante el desarrollo. En este sentido, la documentación del proceso de desarrollo es fundamental, y debe ser suficientemente completa y exhaustiva. Con frecuencia esta documentación tiende a quedar desfasada con respecto a los programas y estructuras de datos del sistema. Para paliar en la medida de lo posible este problema es conveniente hacer uso de una herramienta CASE tanto en el desarrollo del sistema como durante el proceso de mantenimiento. Aunque sin el correcto uso de una metodología, ni la mejor herramienta CASE podrá evitar el fracaso en lo que a la catalogación de la documentación se refiere.

    34. Introducción a la Ingeniería del Software 34 Tipos de mantenimiento Correctivo: un programa no realiza correctamente la aplicación para la que ha sido diseñado, y, por tanto, debe ser modificado. Perfectivo: modificaciones a los programas para conseguir mayor adecuación a los requisitos, mayor eficiencia, o simplemente recoger nuevas funcionalidades no expresadas en la fase de definición del sistema.

    35. Introducción a la Ingeniería del Software 35 Tipos de mantenimiento (II) Adaptativo: Adaptar los programas para acomodarlos a los cambios de su entorno externo (modificaciones en la legislación, CPU, SO, las reglas de negocio, etc.) Preventivo: El software se deteriora con los cambios, y este tipo de mantenimiento hace cambios en los programas para que se puedan corregir, adaptar y mejorar más fácilmente (Reingeniería del software). P.ej., considérense los problemas de mantenimiento debidos al cambio de moneda a euros y al problema del año 2000 (Y2K). P.ej., considérense los problemas de mantenimiento debidos al cambio de moneda a euros y al problema del año 2000 (Y2K).

    36. Introducción a la Ingeniería del Software 36 Visión general del proceso de ISw (II) El desarrollo de un sistema informático no es totalmente secuencial, sino que en cada una de las fases que hemos visto se pueden detectar problemas que obliguen a modificar algo que se hizo en una fase anterior. La figura contiene un esquema que pretende reflejar esta idea. Los modelos recientes inciden en un desarrollo iterativo e incremental. El desarrollo de un sistema informático no es totalmente secuencial, sino que en cada una de las fases que hemos visto se pueden detectar problemas que obliguen a modificar algo que se hizo en una fase anterior. La figura contiene un esquema que pretende reflejar esta idea. Los modelos recientes inciden en un desarrollo iterativo e incremental.

    37. Introducción a la Ingeniería del Software 37 Impacto del cambio

    38. Introducción a la Ingeniería del Software: Sistemas de Información 38 Sistemas de información Índice Concepto de sistema Información y datos Sistemas de información (SI) Sistemas de información automatizado y empresarial Elementos de un SI Estructura de un SI Otros conceptos útiles en SI: MIS DSS OIS

    39. Introducción a la Ingeniería del Software 39 Sistemas de información Bibliografía. (Piattini et al. 96) cap.1 En el cap. 2 hay ejemplos de sistemas de información en la empresa

    40. Introducción a la Ingeniería del Software 40 Introducción a los SI. Concepto de sistema “Sistema es un conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado objetivo.” (Real Academia Española) “Un modelo formado por una serie de elementos interrelacionados entre sí, que opera en un entorno cambiante y con unos determinados objetivos”. Elementos de un sistema: Antes de ofrecer una definición del concepto de sistema de información, comenzaremos por definir los términos que lo constituyen: sistema e información. La palabra sistema se emplea actualmente en muchos ámbitos distintos: se habla de sistemas eléctricos, sistemas monetarios, sistemas de seguridad, el sistema solar e, incluso, de sistemas de juego en equipos de fútbol. La razón es que, al igual que le ocurre con otras palabras como conjunto, el término sistema se emplea para designar un concepto, una herramienta genérica que se puede emplear para explicar o analizar mejor cómo es o qué ocurre en una determinada área social, económica, física, etc. El diccionario de la Real Academia Española nos dice que sistema es un conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado objetivo. A partir de esta definición, podemos identificar cuáles son los principales elementos presentes en cualquier sistema: Los componentes del sistema. Las relaciones entre ellos, que determinan la estructura del sistema. El objetivo del sistema. En cualquier tipo de sistema podemos identificar estos elementos. En el sistema circulatorio del ser humano podemos determinar sus órganos constitutivos (corazón, arterias, venas, etc.), las relaciones entre ellos (el corazón bombea sangre hacia las arterias que están dispuestas según una determinada estructura, etc.) y el objetivo (asegurar el suministro de sangre a todo el cuerpo). En todos los sistemas también podemos identificar otros elementos importantes para comprender cómo son y cómo funcionan: El entorno del sistema: aquello que lo rodea, dentro del cual está ubicado. Los límites del sistema: la frontera entre lo que es el sistema y lo que constituye el entorno. En el caso del sistema circulatorio de los humanos, el entorno donde se localiza es el cuerpo, y la frontera la constituye la membrana o el límite de cada uno de sus órganos con el resto del cuerpo que no pertenece al sistema. También suelen existir relaciones entre el sistema o sus componentes y el exterior representado por el entorno (el sistema nervioso envía órdenes al corazón o para modificar sus latidos). Estas relaciones con el exterior suelen conocerse como entradas y salidas del sistema. Para nuestro propósito, la definición de sistema nos será útil para estudiar la manera en la que las empresas u organizaciones, que constituyen sistemas, manejan la información necesaria para su funcionamiento. Para este estudio nos basamos no sólo en la definición de sistema, sino en todas las técnicas creadas para el análisis de los sistemas siguiendo el enfoque sistémico o teoría general de sistemas.Antes de ofrecer una definición del concepto de sistema de información, comenzaremos por definir los términos que lo constituyen: sistema e información. La palabra sistema se emplea actualmente en muchos ámbitos distintos: se habla de sistemas eléctricos, sistemas monetarios, sistemas de seguridad, el sistema solar e, incluso, de sistemas de juego en equipos de fútbol. La razón es que, al igual que le ocurre con otras palabras como conjunto, el término sistema se emplea para designar un concepto, una herramienta genérica que se puede emplear para explicar o analizar mejor cómo es o qué ocurre en una determinada área social, económica, física, etc. El diccionario de la Real Academia Española nos dice que sistema es un conjunto de cosas que ordenadamente relacionadas entre sí contribuyen a un determinado objetivo. A partir de esta definición, podemos identificar cuáles son los principales elementos presentes en cualquier sistema: Los componentes del sistema. Las relaciones entre ellos, que determinan la estructura del sistema. El objetivo del sistema. En cualquier tipo de sistema podemos identificar estos elementos. En el sistema circulatorio del ser humano podemos determinar sus órganos constitutivos (corazón, arterias, venas, etc.), las relaciones entre ellos (el corazón bombea sangre hacia las arterias que están dispuestas según una determinada estructura, etc.) y el objetivo (asegurar el suministro de sangre a todo el cuerpo). En todos los sistemas también podemos identificar otros elementos importantes para comprender cómo son y cómo funcionan: El entorno del sistema: aquello que lo rodea, dentro del cual está ubicado. Los límites del sistema: la frontera entre lo que es el sistema y lo que constituye el entorno. En el caso del sistema circulatorio de los humanos, el entorno donde se localiza es el cuerpo, y la frontera la constituye la membrana o el límite de cada uno de sus órganos con el resto del cuerpo que no pertenece al sistema. También suelen existir relaciones entre el sistema o sus componentes y el exterior representado por el entorno (el sistema nervioso envía órdenes al corazón o para modificar sus latidos). Estas relaciones con el exterior suelen conocerse como entradas y salidas del sistema. Para nuestro propósito, la definición de sistema nos será útil para estudiar la manera en la que las empresas u organizaciones, que constituyen sistemas, manejan la información necesaria para su funcionamiento. Para este estudio nos basamos no sólo en la definición de sistema, sino en todas las técnicas creadas para el análisis de los sistemas siguiendo el enfoque sistémico o teoría general de sistemas.

    41. Introducción a la Ingeniería del Software 41 Concepto de sistema (II) Para nuestro propósito, la definición de sistema nos será útil para estudiar la manera en que empresas u organizaciones, que constituyen sistemas, manejan la información necesaria para su funcionamiento.Para nuestro propósito, la definición de sistema nos será útil para estudiar la manera en que empresas u organizaciones, que constituyen sistemas, manejan la información necesaria para su funcionamiento.

    42. Introducción a la Ingeniería del Software 42 Teoría General de Sistemas Análisis de sistemas: Definición del problema Comprensión y definición del sistema Descomposición jerárquica en subsistemas Elaboración de alternativas Elección de una de las alternativas definidas en el paso anterior Puesta en práctica de la solución elegida Evaluación del impacto de los cambios introducidos en el sistema La Teoría General de Sistemas es el antecedente conceptual en el que se apoya la teoría sobre los sistemas de información a los que la ingeniería del software intenta aportar soluciones.  En el marco de la Teoría General de Sistemas, el análisis de sistemas tiene como objetivo general la comprensión de los sistemas complejos para abordar su modificación de forma que se mejore el funcionamiento interno para hacerlo más eficiente, para modificar sus objetivos, etc. Las modificaciones pueden consistir en el desarrollo de un subsistema nuevo, en la agregación de nuevos componentes, en la incorporación de nuevas transformaciones, etc. En general, el análisis de sistemas (enfoque sistémico u holístico) establece los siguientes pasos a seguir:   Definición del problema. En este paso se identifican los elementos de insatisfacción, los posibles cambios en las entradas y/o salidas al sistema y los objetivos del análisis del sistema. Comprensión y definición del sistema. En este paso se identifica y descompone el sistema jerárquicamente en sus partes constituyentes o subsistemas junto con las relaciones existentes entre los mismos. Elaboración de alternativas. En este paso se estudian las diferentes alternativas existentes para la modificación y mejora del sistema, atendiendo a los costes y perspectivas de realización. Elección de una de las alternativas definidas en el paso anterior. Puesta en práctica de la solución elegida. Evaluación del impacto de los cambios introducidos en el sistema.   Muchas de las técnicas y métodos actuales de ingeniería del software intentan dar respuesta a estas cuestiones, y siguen una estructura similar a la anterior (por ejemplo, lo veremos al estudiar Métrica 3). La Teoría General de Sistemas es el antecedente conceptual en el que se apoya la teoría sobre los sistemas de información a los que la ingeniería del software intenta aportar soluciones.  En el marco de la Teoría General de Sistemas, el análisis de sistemas tiene como objetivo general la comprensión de los sistemas complejos para abordar su modificación de forma que se mejore el funcionamiento interno para hacerlo más eficiente, para modificar sus objetivos, etc. Las modificaciones pueden consistir en el desarrollo de un subsistema nuevo, en la agregación de nuevos componentes, en la incorporación de nuevas transformaciones, etc. En general, el análisis de sistemas (enfoque sistémico u holístico) establece los siguientes pasos a seguir:   Definición del problema. En este paso se identifican los elementos de insatisfacción, los posibles cambios en las entradas y/o salidas al sistema y los objetivos del análisis del sistema. Comprensión y definición del sistema. En este paso se identifica y descompone el sistema jerárquicamente en sus partes constituyentes o subsistemas junto con las relaciones existentes entre los mismos. Elaboración de alternativas. En este paso se estudian las diferentes alternativas existentes para la modificación y mejora del sistema, atendiendo a los costes y perspectivas de realización. Elección de una de las alternativas definidas en el paso anterior. Puesta en práctica de la solución elegida. Evaluación del impacto de los cambios introducidos en el sistema.   Muchas de las técnicas y métodos actuales de ingeniería del software intentan dar respuesta a estas cuestiones, y siguen una estructura similar a la anterior (por ejemplo, lo veremos al estudiar Métrica 3).

    43. Introducción a la Ingeniería del Software 43 Información y datos Los datos están constituidos por los registros de los hechos, acontecimientos, transacciones, etc. La información implica que los datos estén procesados de tal manera que resulten útiles o significativos para el receptor de los mismos. Los datos se pueden considerar la materia prima para obtener la información. Cuanto más grande y complejo es un sistema, más importante es la comunicación de información entre sus componentes, ya que se deben coordinar para la consecución de su objetivo. Disponer de la información adecuada significa poder tomar las decisiones más apropiadas para cada situación. No hay que confundir entre datos e información. Los datos están constituidos por los registros de los hechos, acontecimientos, transacciones, etc. Por el contrario, la información implica que los datos estén procesados de tal manera que resulten útiles o significativos para el receptor de los mismos, por lo que, en cierto modo, los datos se pueden considerar la materia prima para obtener información. Cuando hablamos de procesamiento queremos decir que situamos los datos en un contexto determinado o complementamos su significado incompleto. Por utilidad o significación queremos decir que la información estimula a la acción y que su valor reside en que permite decidir mejor, ya que la decisión es el paso previo para toda acción. Los datos pueden ser simplemente series de números o de caracteres. Por ejemplo: “260664” o “Mañana 1.952”. Estos caracteres o números, por si mismos, no constituyen información, ya que para nosotros no significan nada. Sin embargo, si nos indican que “260664” simboliza la fecha de nacimiento (26 de junio de 1.964) de una persona o que “Mañana 1.952” quiere indicar que la cita con el dentista es mañana a las 19 horas y 52 minutos, podemos decir que tenemos información. Hemos necesitado un procesamiento, completar el significado o situar en un contexto, para que los datos sean significativos y podamos tomar decisiones: saber si debemos ira a comprar un regalo de cumpleaños o si podemos quedar mañana para ir al cine. No obstante, la información depende mucho del contexto: “260664” también podría significar que un viaje cuesta 260.664 pesetas y “Mañana 1952” podría informar de que mañana una acción de la empresa X se cotizará a 1.952 pesetas.Cuanto más grande y complejo es un sistema, más importante es la comunicación de información entre sus componentes, ya que se deben coordinar para la consecución de su objetivo. Disponer de la información adecuada significa poder tomar las decisiones más apropiadas para cada situación. No hay que confundir entre datos e información. Los datos están constituidos por los registros de los hechos, acontecimientos, transacciones, etc. Por el contrario, la información implica que los datos estén procesados de tal manera que resulten útiles o significativos para el receptor de los mismos, por lo que, en cierto modo, los datos se pueden considerar la materia prima para obtener información. Cuando hablamos de procesamiento queremos decir que situamos los datos en un contexto determinado o complementamos su significado incompleto. Por utilidad o significación queremos decir que la información estimula a la acción y que su valor reside en que permite decidir mejor, ya que la decisión es el paso previo para toda acción. Los datos pueden ser simplemente series de números o de caracteres. Por ejemplo: “260664” o “Mañana 1.952”. Estos caracteres o números, por si mismos, no constituyen información, ya que para nosotros no significan nada. Sin embargo, si nos indican que “260664” simboliza la fecha de nacimiento (26 de junio de 1.964) de una persona o que “Mañana 1.952” quiere indicar que la cita con el dentista es mañana a las 19 horas y 52 minutos, podemos decir que tenemos información. Hemos necesitado un procesamiento, completar el significado o situar en un contexto, para que los datos sean significativos y podamos tomar decisiones: saber si debemos ira a comprar un regalo de cumpleaños o si podemos quedar mañana para ir al cine. No obstante, la información depende mucho del contexto: “260664” también podría significar que un viaje cuesta 260.664 pesetas y “Mañana 1952” podría informar de que mañana una acción de la empresa X se cotizará a 1.952 pesetas.

    44. Introducción a la Ingeniería del Software 44 Sistema de Información (SI) Una definición de Sistema de Información: “Un conjunto formal de procesos que, operando sobre una colección de datos estructurada según las necesidades de la empresa, recopilan, elaboran y distribuyen la información (o parte de ella) necesaria para las operaciones de dicha empresa y para las actividades de dirección y control correspondientes (decisiones) para desempeñar su actividad de acuerdo a su estrategia de negocio.” (Andreu et al. 91) Aunque todos los tipos de comunicación y de informaciones que fluyen por la empresa pueden tener importancia para su funcionamiento, la casi totalidad de definiciones de sistema de información se centran en la información formalizada. Muchos autores aclaran que la razón para este enfoque reside en la limitación para estudiar, planificar y dirigir el flujo y el tratamiento de la información informal (rumores, diálogos personales o por teléfono, etc.) de forma cohesionada y global. Las definiciones más empleadas de sistema de información subrayan, ante todo, su objetivo más que lo que es o cómo es. En este sentido, una de las definiciones más completas es la ofrecida por R. Andreu. Inspirados en ella podemos decir que un sistema de información es: “Un conjunto formal de proceso que, operando sobre una colección de datos estructurada según las necesidades de la empresa, recopilan, elaboran y distribuyen la información (o parte de ella) necesaria para las operaciones de dicha empresa y para las actividades de dirección y control correspondientes (decisiones) para desempeñar su actividad de acuerdo a su estrategia de negocio.” En esta definición, cuando se habla de que los datos deben estar adaptados a las necesidades de la empresa significa que deben reflejar la percepción de la información que tienen las personas que los utilizan para su trabajo. También se enfatiza que, tanto las operaciones diarias (por ejemplo, atender un pedido de un cliente, facturar una venta, etc.) como las actividades de dirección y control basadas en la toma de decisiones requieren información para su realización y deben ser atendidas por el SI. Por último cabe destacar que el sistema debe estar al servicio de la estrategia de negocio de la empresa, ya que sólo se trata de un elemento más que ésta emplea para conseguir sus objetivos.Aunque todos los tipos de comunicación y de informaciones que fluyen por la empresa pueden tener importancia para su funcionamiento, la casi totalidad de definiciones de sistema de información se centran en la información formalizada. Muchos autores aclaran que la razón para este enfoque reside en la limitación para estudiar, planificar y dirigir el flujo y el tratamiento de la información informal (rumores, diálogos personales o por teléfono, etc.) de forma cohesionada y global. Las definiciones más empleadas de sistema de información subrayan, ante todo, su objetivo más que lo que es o cómo es. En este sentido, una de las definiciones más completas es la ofrecida por R. Andreu. Inspirados en ella podemos decir que un sistema de información es: “Un conjunto formal de proceso que, operando sobre una colección de datos estructurada según las necesidades de la empresa, recopilan, elaboran y distribuyen la información (o parte de ella) necesaria para las operaciones de dicha empresa y para las actividades de dirección y control correspondientes (decisiones) para desempeñar su actividad de acuerdo a su estrategia de negocio.” En esta definición, cuando se habla de que los datos deben estar adaptados a las necesidades de la empresa significa que deben reflejar la percepción de la información que tienen las personas que los utilizan para su trabajo. También se enfatiza que, tanto las operaciones diarias (por ejemplo, atender un pedido de un cliente, facturar una venta, etc.) como las actividades de dirección y control basadas en la toma de decisiones requieren información para su realización y deben ser atendidas por el SI. Por último cabe destacar que el sistema debe estar al servicio de la estrategia de negocio de la empresa, ya que sólo se trata de un elemento más que ésta emplea para conseguir sus objetivos.

    45. Introducción a la Ingeniería del Software 45 Sistema de información (II) Otras definiciones de SI enfatizan que el objetivo es proporcionar información de calidad: “El objetivo del SI es ayudar al desempeño de las actividades en todos los niveles de la organización, mediante el suministro de la información adecuada, con la calidad suficiente, a la persona apropiada, en el momento y lugar oportunos, y con el formato más útil para el receptor.” Por el contrario, otras definiciones de SI enfatizan que el objetivo es proporcionar información de calidad. Por lo tanto, el objetivo del SI es ayudar al desempeño de las actividades en todos los niveles de la organización, mediante el suministro de la información adecuada, con la calidad suficiente, a la persona apropiada, en el momento y lugar oportunos, y con el formato más útil para el receptor. [Desde otra perspectiva, Le Moigne concibe los sistemas formados por tres subsistemas interrelacionados: el de decisión, el de información y el físico. El sistema de decisión procede a la regulación y control del sistema físico decidiendo su comportamiento en función de los objetivos marcados. El sistema físico transforma un flujo físico de entradas en un flujo físico de salidas. En interconexión entre el sistema físico y el sistema de decisión se encuentra el sistema de información. El sistema de información está compuesto por diversos elementos encargados de almacenar y tratar la información relativa al sistema físico a fin de ponerla a disposición del sistema de decisión. El sistema automatizado de información es un subsistema del sistema de información en el que todas las transformaciones significativas de información son efectuadas por máquinas de tratamiento automático de la información. Una parte del sistema automatizado de información se puede basar en equipos informáticos, dando lugar al sistema informático o sistema de información basado en computadora.] Tras analizar el objetivo del SI a través de algunas de sus definiciones, pasamos a conocer algo más sobre los elementos que lo constituyen (el qué) y la estructura que los cohesiona (el cómo).Por el contrario, otras definiciones de SI enfatizan que el objetivo es proporcionar información de calidad. Por lo tanto, el objetivo del SI es ayudar al desempeño de las actividades en todos los niveles de la organización, mediante el suministro de la información adecuada, con la calidad suficiente, a la persona apropiada, en el momento y lugar oportunos, y con el formato más útil para el receptor. [Desde otra perspectiva, Le Moigne concibe los sistemas formados por tres subsistemas interrelacionados: el de decisión, el de información y el físico. El sistema de decisión procede a la regulación y control del sistema físico decidiendo su comportamiento en función de los objetivos marcados. El sistema físico transforma un flujo físico de entradas en un flujo físico de salidas. En interconexión entre el sistema físico y el sistema de decisión se encuentra el sistema de información. El sistema de información está compuesto por diversos elementos encargados de almacenar y tratar la información relativa al sistema físico a fin de ponerla a disposición del sistema de decisión. El sistema automatizado de información es un subsistema del sistema de información en el que todas las transformaciones significativas de información son efectuadas por máquinas de tratamiento automático de la información. Una parte del sistema automatizado de información se puede basar en equipos informáticos, dando lugar al sistema informático o sistema de información basado en computadora.] Tras analizar el objetivo del SI a través de algunas de sus definiciones, pasamos a conocer algo más sobre los elementos que lo constituyen (el qué) y la estructura que los cohesiona (el cómo).

    46. Introducción a la Ingeniería del Software 46 Sistema de información. Ejemplo A modo de ejemplo, en la figura se observa el esquema conceptual del sistema de información de un hipermercado. Observamos como entre las entradas y las salidas existe un proceso de validación de entradas, de control del rendimiento de las cajeras, de valoración de mercaderías, etc. Mediante el análisis de una de las salidas obtenidas (Estadística), es posible modificar las entradas para mejorar los productos finales. A modo de ejemplo, en la figura se observa el esquema conceptual del sistema de información de un hipermercado. Observamos como entre las entradas y las salidas existe un proceso de validación de entradas, de control del rendimiento de las cajeras, de valoración de mercaderías, etc. Mediante el análisis de una de las salidas obtenidas (Estadística), es posible modificar las entradas para mejorar los productos finales.

    47. Introducción a la Ingeniería del Software 47 SI y valor de un SI SI: “un conjunto integrado de personas y equipos que tiene por objetivo proveer a una organización de la información necesaria para apoyar las operaciones, la administración y la toma de decisiones”. El valor de un SI depende de su eficacia, su extensión, su aceptación por parte de los que lo utilizan, su coste, la calidad de la información que trata y produce, etc.

    48. Introducción a la Ingeniería del Software 48 Sistema de información automatizado (SIA) Un SI no necesita, para existir, estar obligatoriamente basado en el uso de ordenadores. El SI existe siempre, esté mecanizado o no. La aplicación del ordenador a los SI produce los sistemas de información basados en computadora o Sistemas de Información Automatizados (SIA). El sistema de información existe siempre, esté mecanizado o no. En el ejemplo anterior del hipermercado, todas las tareas que se mencionan podrían ser realizadas manualmente por personas. Ahora bien, el ordenador interviene para mejorar todos los factores que determinan el valor de un sistema de información (eficacia, bajo coste, calidad, etc.), o a veces incluso para hacerlos simplemente posibles. La complejidad del mundo empresarial actual hace que el ordenador sea hoy día un elemento prácticamente imprescindible para casi cualquier sistema de información, de cualquier empresa y organismo. El ordenador puede participar de manera efectiva en casi todos los flujos de información que se producen en la empresa: información económica, laboral, de materias y de productos. Por estas razones, cuando se habla de sistemas de información en la empresa, se entiende a veces sistemas de información basados en computadora, cuando en realidad son dos conceptos distintos. Los principales objetivos de los sistemas de información basados en computadora son: Simplificar o realizar automáticamente procesos que tradicionalmente se realizaban de forma manual: por ejemplo, pueden realizar los reiterativos cálculos contables sin errores en las operaciones y con una rapidez inigualable, o permiten el uso de métodos matemáticos inabordables sin estas herramientas, o controlan el proceso de fabricación, evitando errores y mejorando la velocidad y precisión de medida. Deben proporcionar informaciones que faciliten la toma de decisiones, dejando libertad plena a los usuarios. Se incrementa de esta manera la calidad de la función directiva, al apoyar cada decisión en una base sólida de información debidamente presentada y procesada. La información debe llegar siempre a aquellas personas para las que sea relevante, y a nadie más (pero tampoco a nadie menos). La información se debe proporcionar de manera concisa, evitando generar grandes listados imposibles de analizar.El sistema de información existe siempre, esté mecanizado o no. En el ejemplo anterior del hipermercado, todas las tareas que se mencionan podrían ser realizadas manualmente por personas. Ahora bien, el ordenador interviene para mejorar todos los factores que determinan el valor de un sistema de información (eficacia, bajo coste, calidad, etc.), o a veces incluso para hacerlos simplemente posibles. La complejidad del mundo empresarial actual hace que el ordenador sea hoy día un elemento prácticamente imprescindible para casi cualquier sistema de información, de cualquier empresa y organismo. El ordenador puede participar de manera efectiva en casi todos los flujos de información que se producen en la empresa: información económica, laboral, de materias y de productos. Por estas razones, cuando se habla de sistemas de información en la empresa, se entiende a veces sistemas de información basados en computadora, cuando en realidad son dos conceptos distintos. Los principales objetivos de los sistemas de información basados en computadora son: Simplificar o realizar automáticamente procesos que tradicionalmente se realizaban de forma manual: por ejemplo, pueden realizar los reiterativos cálculos contables sin errores en las operaciones y con una rapidez inigualable, o permiten el uso de métodos matemáticos inabordables sin estas herramientas, o controlan el proceso de fabricación, evitando errores y mejorando la velocidad y precisión de medida. Deben proporcionar informaciones que faciliten la toma de decisiones, dejando libertad plena a los usuarios. Se incrementa de esta manera la calidad de la función directiva, al apoyar cada decisión en una base sólida de información debidamente presentada y procesada. La información debe llegar siempre a aquellas personas para las que sea relevante, y a nadie más (pero tampoco a nadie menos). La información se debe proporcionar de manera concisa, evitando generar grandes listados imposibles de analizar.

    49. Introducción a la Ingeniería del Software 49 Organización, SI y SIA (Piattini et al. 96)

    50. Introducción a la Ingeniería del Software 50 Ejemplos de sistemas de información Algunas funciones que hay que desarrollar en la empresa: Controlar y gestionar el empleo de los recursos financieros, del dinero, a través de la función (o sistema) contable y de gestión económica. Comercializar de manera óptima los productos o servicios en los que la empresa basa su negocio: la actividad comercial y de ventas. Fabricar productos o crear servicios que vender en el mercado: se trata de la función o departamento de producción. Ver más ejemplos en (Piattini et al. 96) Capítulo 2. Toda empresa, grande o pequeña, necesita una infraestructura para poder desarrollar sus actividades. Esta estructura organizativa suele descansar en una red de funciones que hay que desarrollar y que, entre otras, incluye a las siguientes: Controlar y gestionar el empleo de los recursos financieros, del dinero, a través de la función (o sistema) contable y de gestión económica. Comercializar de manera óptima los productos o servicios en los que la empresa basa su negocio: la actividad comercial y de ventas. Fabricar productos o crear servicios que vender en el mercado: se trata de la función o departamento de producción.Ver más ejemplos en (Piattini et al. 96) Capítulo 2. Toda empresa, grande o pequeña, necesita una infraestructura para poder desarrollar sus actividades. Esta estructura organizativa suele descansar en una red de funciones que hay que desarrollar y que, entre otras, incluye a las siguientes: Controlar y gestionar el empleo de los recursos financieros, del dinero, a través de la función (o sistema) contable y de gestión económica. Comercializar de manera óptima los productos o servicios en los que la empresa basa su negocio: la actividad comercial y de ventas. Fabricar productos o crear servicios que vender en el mercado: se trata de la función o departamento de producción.

    51. Introducción a la Ingeniería del Software 51 Ejemplos de sistemas de información (II) Sistemas ERP (Enterprise-resource planning) Sistemas de flujo de trabajo (Workflow management systems) Sistemas de trabajo cooperativo (Groupware systems) Sistemas de comercio electrónico (E-commerce systems) Sistemas EDI (Electronic Data Interchange) (Wieringa 2003) p.4-5(Wieringa 2003) p.4-5

    52. Introducción a la Ingeniería del Software 52 SI empresarial “El SI empresarial es el sistema encargado de coordinar los flujos y registros de información necesarios para llevar a cabo las funciones de una empresa de acuerdo con su planteamiento o estrategia de negocio” (Andreu 96) ? La estrategia de negocio es fundamental. Este es uno de los puntos más importantes que debemos destacar: la estrategia de negocio. No se trata de elegir una tecnología, comprar unos ordenadores y unos programas, y ver después para qué nos pueden servir. Este es uno de los puntos más importantes que debemos destacar: la estrategia de negocio. No se trata de elegir una tecnología, comprar unos ordenadores y unos programas, y ver después para qué nos pueden servir.

    53. Introducción a la Ingeniería del Software 53 SI empresarial (II) Adaptado de (Pechuán 96) En la figura vemos como primero hay que identificar la estrategia del negocio, los factores críticos de éxito de la empresa, identificar las necesidades de información que potencien esos factores críticos, y elegir entonces las TICs que sean más adecuadas para gestionar y potenciar esa información. Todo este proceso es cíclico: una vez implantado hay que volver a reevaluar la estrategia de negocio para replantear de nuevo cómo potenciar los recursos estratégicos de nuestra empresa. Como vemos, la estrategia de negocio es fundamental en el diseño de los sistemas de información: a partir de estos objetivos de alto nivel se determinan las necesidades de información de la organización, que darán lugar al diseño de los sistemas de información, y de acuerdo con dichas necesidades se seleccionarán las tecnologías de la información y las comunicaciones adecuadas para construir tales sistemas de información. Una vez construidos, habrá un proceso de realimentación para comprobar si se satisfacen los objetivos del negocio, y para que éstos evolucionen, si fuera necesario. Ejemplo: empresa de autobuses Mejorar atención a clientes -> instalar pantallas con tiempos de paso en cada parada -> tecnología GPS, etc. (y cerrar el ciclo evaluando si se ha mejorado la atención a clientes) Ejemplo: en la universidad (campus virtual) disminuir la presencia física de alumnos en clase, potenciando las actividades libres de los alumnos -> conexión alumno-profesor en horario flexible y aún distanciados geográficamente -> tecnologías de internet (y vuelta a evaluar la consecución de la estrategia del negocio) En la figura vemos como primero hay que identificar la estrategia del negocio, los factores críticos de éxito de la empresa, identificar las necesidades de información que potencien esos factores críticos, y elegir entonces las TICs que sean más adecuadas para gestionar y potenciar esa información. Todo este proceso es cíclico: una vez implantado hay que volver a reevaluar la estrategia de negocio para replantear de nuevo cómo potenciar los recursos estratégicos de nuestra empresa. Como vemos, la estrategia de negocio es fundamental en el diseño de los sistemas de información: a partir de estos objetivos de alto nivel se determinan las necesidades de información de la organización, que darán lugar al diseño de los sistemas de información, y de acuerdo con dichas necesidades se seleccionarán las tecnologías de la información y las comunicaciones adecuadas para construir tales sistemas de información. Una vez construidos, habrá un proceso de realimentación para comprobar si se satisfacen los objetivos del negocio, y para que éstos evolucionen, si fuera necesario. Ejemplo: empresa de autobuses Mejorar atención a clientes -> instalar pantallas con tiempos de paso en cada parada -> tecnología GPS, etc. (y cerrar el ciclo evaluando si se ha mejorado la atención a clientes) Ejemplo: en la universidad (campus virtual) disminuir la presencia física de alumnos en clase, potenciando las actividades libres de los alumnos -> conexión alumno-profesor en horario flexible y aún distanciados geográficamente -> tecnologías de internet (y vuelta a evaluar la consecución de la estrategia del negocio)

    54. Introducción a la Ingeniería del Software 54 Elementos de un SI Los procedimientos y las prácticas habituales de trabajo que se siguen al ejecutar toda clase de actividades necesarias para el buen funcionamiento de la empresa. La información. Las personas o usuarios. El equipo de soporte para la comunicación, el procesamiento y el almacenamiento de información. Papel, lápiz,...,ordenadores Para comprender mejor el concepto de SI, debemos también conocer los elementos que los componen. Existe unanimidad en la bibliografía sobre SI en designar como componentes de un sistema a los siguientes: Los procedimientos y las prácticas habituales de trabajo que se siguen al ejecutar toda clase de actividades necesarias para el buen funcionamiento de la empresa. Los directivos y los técnicos de organización suelen marcar unas guías o procedimientos básicos para coordinar los distintos elementos de la compañía. Pero no todas las acciones pueden regularse so pena de hacer demasiado rígido (y, por lo tanto, poco eficaz) el trabajo. En las actividades no reguladas suelen existir, no obstante, prácticas habituales para llevar a cabo dichas acciones con una mínima eficacia. El SI existe porque debe dar un soporte a la gestión de información que hay que proporcionar en función de todas estas formas de trabajar. La información. Es el elemento fundamental del sistema y su razón de ser. Se debe adaptar a las personas que la manejan y al equipo disponible, según los procedimientos de trabajo que la empresa ha creado para que las actividades se realicen de forma eficaz. Las personas o usuarios. Se trata de individuos o unidades de la organización que introducen, manejan o usan la información para realizar sus actividades en función de los procedimientos de trabajo establecidos. El equipo de soporte para la comunicación, el procesamiento y el almacenamiento de información. Constituye la parte más visible del SI, su realidad física y tangible. Este sistema físico puede incluir elementos de los más variados niveles tecnológicos: papel, lápiz, máquina de escribir, archivadores, ordenadores, cintas magnéticas, etc. Para comprender mejor el concepto de SI, debemos también conocer los elementos que los componen. Existe unanimidad en la bibliografía sobre SI en designar como componentes de un sistema a los siguientes: Los procedimientos y las prácticas habituales de trabajo que se siguen al ejecutar toda clase de actividades necesarias para el buen funcionamiento de la empresa. Los directivos y los técnicos de organización suelen marcar unas guías o procedimientos básicos para coordinar los distintos elementos de la compañía. Pero no todas las acciones pueden regularse so pena de hacer demasiado rígido (y, por lo tanto, poco eficaz) el trabajo. En las actividades no reguladas suelen existir, no obstante, prácticas habituales para llevar a cabo dichas acciones con una mínima eficacia. El SI existe porque debe dar un soporte a la gestión de información que hay que proporcionar en función de todas estas formas de trabajar. La información. Es el elemento fundamental del sistema y su razón de ser. Se debe adaptar a las personas que la manejan y al equipo disponible, según los procedimientos de trabajo que la empresa ha creado para que las actividades se realicen de forma eficaz. Las personas o usuarios. Se trata de individuos o unidades de la organización que introducen, manejan o usan la información para realizar sus actividades en función de los procedimientos de trabajo establecidos. El equipo de soporte para la comunicación, el procesamiento y el almacenamiento de información. Constituye la parte más visible del SI, su realidad física y tangible. Este sistema físico puede incluir elementos de los más variados niveles tecnológicos: papel, lápiz, máquina de escribir, archivadores, ordenadores, cintas magnéticas, etc.

    55. Introducción a la Ingeniería del Software 55 Los elementos del SI y sus relaciones (Piattini et al. 96) Podemos representar a los elementos del SI dentro de un dibujo donde se destacan las relaciones que se establecen entre ellos. El SI, como ya se ha comentado, debe estar al servicio de los objetivos generales de la empresa. Para lograr dichos objetivos, la organización y sus individuos adoptan las maneras de trabajar que resultan más útiles y eficaces. Estas prácticas de trabajo marcan: Qué información se necesita. Por ejemplo, se requiere saber el NIF de un cliente antes de pasar a facturar los productos o servicios pedidos. Cómo se ven implicadas las personas. La facturación provoca un trabajo contable que debe poder asumir la persona que atiende la tarea. Además, los procedimientos marcan una cierta disciplina de acción que los trabajadores deben respetar. Qué equipo se precisa para un trabajo eficaz. En pequeños negocios, la facturación se puede gestionar manualmente, con impresos y bolígrafo. En otros ámbitos es imprescindible el apoyo de sistemas informáticos o de tecnologías de la información sofisticadas. Pero las relaciones también funcionan en sentido inverso. Los procedimientos se deben adaptar a los elementos disponibles: Así, no pueden implicar el uso de información de la que no se puede disponer. Por ejemplo, no se puede exigir que los informes de consumo eléctrico de la oficina se desglosen por despachos si se carece de contadores individuales para conocer dicha información Las prácticas de trabajo obligan a la gente a adoptar una cierta manera de actuar, pero deben, a su vez, adaptarse a las características de las personas implicadas para ser eficaces. Por ejemplo, no puede exigirse que los empleados soporten ritmos de trabajo excesivos (atender demasiados pedidos, etc.) so pena de ver disminuir la calidad y la producción, aparte de la moral de la plantilla. Por último, evidentemente, los procedimientos deben acomodarse al equipo o tecnología existente. Por ejemplo, no se pueden cumplir determinados plazos si los medios no son lo bastante rápidos porque no se dispone de un lector de código de barras y hay que marcar todos los productos a mano.Podemos representar a los elementos del SI dentro de un dibujo donde se destacan las relaciones que se establecen entre ellos. El SI, como ya se ha comentado, debe estar al servicio de los objetivos generales de la empresa. Para lograr dichos objetivos, la organización y sus individuos adoptan las maneras de trabajar que resultan más útiles y eficaces. Estas prácticas de trabajo marcan: Qué información se necesita. Por ejemplo, se requiere saber el NIF de un cliente antes de pasar a facturar los productos o servicios pedidos. Cómo se ven implicadas las personas. La facturación provoca un trabajo contable que debe poder asumir la persona que atiende la tarea. Además, los procedimientos marcan una cierta disciplina de acción que los trabajadores deben respetar. Qué equipo se precisa para un trabajo eficaz. En pequeños negocios, la facturación se puede gestionar manualmente, con impresos y bolígrafo. En otros ámbitos es imprescindible el apoyo de sistemas informáticos o de tecnologías de la información sofisticadas. Pero las relaciones también funcionan en sentido inverso. Los procedimientos se deben adaptar a los elementos disponibles: Así, no pueden implicar el uso de información de la que no se puede disponer. Por ejemplo, no se puede exigir que los informes de consumo eléctrico de la oficina se desglosen por despachos si se carece de contadores individuales para conocer dicha información Las prácticas de trabajo obligan a la gente a adoptar una cierta manera de actuar, pero deben, a su vez, adaptarse a las características de las personas implicadas para ser eficaces. Por ejemplo, no puede exigirse que los empleados soporten ritmos de trabajo excesivos (atender demasiados pedidos, etc.) so pena de ver disminuir la calidad y la producción, aparte de la moral de la plantilla. Por último, evidentemente, los procedimientos deben acomodarse al equipo o tecnología existente. Por ejemplo, no se pueden cumplir determinados plazos si los medios no son lo bastante rápidos porque no se dispone de un lector de código de barras y hay que marcar todos los productos a mano.

    56. Introducción a la Ingeniería del Software 56 Estructura de un SI Aunque la estructura de los SI depende totalmente de la empresa u organización concreta a la que pertenezca, se puede identificar una base común que es bastante típica en la mayoría de las empresas. La estructura de casi todas las empresas se puede describir bastante bien mediante una pirámide en la que se puede distinguir una jerarquía de diversos niveles de actuación y gestión. La anchura de la pirámide indica la cantidad de personas que existen en cada nivel jerárquico. Arriba es más estrecha, ya que hay menos directivos que empleados. Estos sistemas se encuentran integrados, de manera que cada nivel utiliza la información generada por el nivel inmediatamente inferior. El hecho de que estén integrados evita también que se produzcan incompatibilidades entre los datos, o redundancias innecesarias. [En (Piattini et al. 96) cap. 2 se encuentran ejemplos de operaciones típicas en los niveles operativos, tácticos y estratégicos de dirección, en cuanto a los sistemas de subsistema de recursos humanos subsistema de gestión contable subsistema de gestión comercial subsistema de control de las existencias] Un ejemplo de la pirámide: embotelladora de refrescos Transacciones: compra de etiquetas (factura, pagos) Operativa: reaprovisionamiento de etiquetas Táctica: buscar mejores condiciones (proveedores) para las etiquetas de los productos (en particular, de los más vendidos) Estratégica: cambiar de etiquetas en papel a etiquetas de plástico??? Aunque la estructura de los SI depende totalmente de la empresa u organización concreta a la que pertenezca, se puede identificar una base común que es bastante típica en la mayoría de las empresas. La estructura de casi todas las empresas se puede describir bastante bien mediante una pirámide en la que se puede distinguir una jerarquía de diversos niveles de actuación y gestión. La anchura de la pirámide indica la cantidad de personas que existen en cada nivel jerárquico. Arriba es más estrecha, ya que hay menos directivos que empleados. Estos sistemas se encuentran integrados, de manera que cada nivel utiliza la información generada por el nivel inmediatamente inferior. El hecho de que estén integrados evita también que se produzcan incompatibilidades entre los datos, o redundancias innecesarias. [En (Piattini et al. 96) cap. 2 se encuentran ejemplos de operaciones típicas en los niveles operativos, tácticos y estratégicos de dirección, en cuanto a los sistemas de subsistema de recursos humanos subsistema de gestión contable subsistema de gestión comercial subsistema de control de las existencias] Un ejemplo de la pirámide: embotelladora de refrescos Transacciones: compra de etiquetas (factura, pagos) Operativa: reaprovisionamiento de etiquetas Táctica: buscar mejores condiciones (proveedores) para las etiquetas de los productos (en particular, de los más vendidos) Estratégica: cambiar de etiquetas en papel a etiquetas de plástico???

    57. Introducción a la Ingeniería del Software 57 Sistema de transacciones Este nivel incluye el procesamiento de las actividades diarias o transacciones, los acontecimientos rutinarios que afectan a la organización: facturación, pagos, entrega de productos, etc. Los procedimientos de tratamiento se comprenden bien y se pueden describir en detalle. Aparecen pocas excepciones a los procedimientos normales. Hay un gran volumen de transacciones. Existe una gran similitud entre transacciones. Operaciones y transacciones. Este nivel incluye el procesamiento de las actividades diarias o transacciones, los acontecimientos rutinarios que afectan a la organización: facturación, pagos, entrega de productos, etc. Las transacciones constituyen la mayor parte de las actividades cotidianas y suelen contar en todas las empresas con características similares: Los procedimientos de tratamiento se comprenden bien y se pueden describir en detalle. Aparecen pocas excepciones a los procedimientos normales. Hay un gran volumen de transacciones. Existe una gran similitud entre transacciones. Los procedimientos de procesamiento de transacciones se suelen denominar procedimientos de operación estándar y describen tanto la rutina de pasos a seguir normalmente como lo que hay que hacer en caso de que ocurra algo excepcional. Por ejemplo, en los terminales de venta o cajas de los grandes almacenes, se comienza por marcar el código de los artículos comprobando su precio, después se marca el número del vendedor y si el pago se hace con tarjeta, se debe pasar ésta por el lector magnético y comprobar la firma. En caso de firma sospechosa, se anula la operación y se llama al supervisor.Operaciones y transacciones. Este nivel incluye el procesamiento de las actividades diarias o transacciones, los acontecimientos rutinarios que afectan a la organización: facturación, pagos, entrega de productos, etc. Las transacciones constituyen la mayor parte de las actividades cotidianas y suelen contar en todas las empresas con características similares: Los procedimientos de tratamiento se comprenden bien y se pueden describir en detalle. Aparecen pocas excepciones a los procedimientos normales. Hay un gran volumen de transacciones. Existe una gran similitud entre transacciones. Los procedimientos de procesamiento de transacciones se suelen denominar procedimientos de operación estándar y describen tanto la rutina de pasos a seguir normalmente como lo que hay que hacer en caso de que ocurra algo excepcional. Por ejemplo, en los terminales de venta o cajas de los grandes almacenes, se comienza por marcar el código de los artículos comprobando su precio, después se marca el número del vendedor y si el pago se hace con tarjeta, se debe pasar ésta por el lector magnético y comprobar la firma. En caso de firma sospechosa, se anula la operación y se llama al supervisor.

    58. Introducción a la Ingeniería del Software 58 Nivel operativo de dirección Se preocupa del análisis de los resultados, esencialmente respecto de los recursos consumidos en las transacciones, para tomar decisiones a corto plazo y de consecuencias limitadas (reaprovisionamiento de materiales, ordenación de la producción) Se trabaja con información del tipo: Repetitiva (informes periódicos de ventas, pagos, etc.) Centrada en el pasado (resultados históricos). Con datos originados internamente. Los datos cuentan con un formato bien estructurado. Los datos son detallados y precisos. El nivel operativo de dirección se preocupa del análisis de los resultados, esencialmente respecto de los recursos (dinero, tiempo, personal, etc.) consumidos en las transacciones, para tomar decisiones a corto plazo y de consecuencias limitadas (reprovisionamiento de materiales, ordenación de la producción, etc.). Se suele trabajar con información procedente del registro de transacciones cuyas características son: Es repetitiva (informes periódicos de ventas, pagos, etc.). Centrada en el pasado (resultados históricos). Con datos originados internamente. Los datos cuentan con un formato bien estructurado. Los datos son detallados y precisos.El nivel operativo de dirección se preocupa del análisis de los resultados, esencialmente respecto de los recursos (dinero, tiempo, personal, etc.) consumidos en las transacciones, para tomar decisiones a corto plazo y de consecuencias limitadas (reprovisionamiento de materiales, ordenación de la producción, etc.). Se suele trabajar con información procedente del registro de transacciones cuyas características son: Es repetitiva (informes periódicos de ventas, pagos, etc.). Centrada en el pasado (resultados históricos). Con datos originados internamente. Los datos cuentan con un formato bien estructurado. Los datos son detallados y precisos.

    59. Introducción a la Ingeniería del Software 59 Nivel táctico de dirección Se ocupa de la asignación efectiva de los recursos a medio plazo para mejorar el rendimiento de la empresa. Se basa en análisis de informes: Resúmenes con medidas estadísticas. De excepciones. Específicos, que no se han pedido antes, y que los directivos necesitan con rapidez para resolver un problema muy concreto. El nivel táctico de dirección se suele preocupar de la asignación efectiva de recursos a medio plazo (suele ser típico actuar a un mínimo de un año vista) para mejorar el rendimiento de la empresa. Habitualmente se concentra en análisis de informes de los tipos siguientes: Resúmenes con medidas estadísticas: media de ventas por departamento, total de horas extras, etc. De excepciones: aquellos departamentos que han consumido más de la media, centros con pérdidas, etc. Específicos, que no se habían pedido antes, y que los directivos necesitan normalmente con rapidez para resolver un problema muy concreto (que se suele detectar gracias a algún informe de excepciones). Por ejemplo, cuando los costes de un departamento se disparan, se puede pedir un resumen de gastos corrientes desglosado por partidas específicas (teléfono, electricidad, etc.). El manejo de información se centra en la información tanto periódica y rutinaria como excepcional y de necesidad inmediata. Se trabaja con el propósito de descubrir algo nuevo en los datos, no sólo lo evidente, siempre actuando sobre información resumida (habitualmente estadísticas) y de naturaleza comparativa más que descriptiva. Las fuentes de datos son tanto internas (de las transacciones ) como externas (por ejemplo, para comparar los resultados con lo que ocurre en otras compañías). El nivel táctico de dirección se suele preocupar de la asignación efectiva de recursos a medio plazo (suele ser típico actuar a un mínimo de un año vista) para mejorar el rendimiento de la empresa. Habitualmente se concentra en análisis de informes de los tipos siguientes: Resúmenes con medidas estadísticas: media de ventas por departamento, total de horas extras, etc. De excepciones: aquellos departamentos que han consumido más de la media, centros con pérdidas, etc. Específicos, que no se habían pedido antes, y que los directivos necesitan normalmente con rapidez para resolver un problema muy concreto (que se suele detectar gracias a algún informe de excepciones). Por ejemplo, cuando los costes de un departamento se disparan, se puede pedir un resumen de gastos corrientes desglosado por partidas específicas (teléfono, electricidad, etc.). El manejo de información se centra en la información tanto periódica y rutinaria como excepcional y de necesidad inmediata. Se trabaja con el propósito de descubrir algo nuevo en los datos, no sólo lo evidente, siempre actuando sobre información resumida (habitualmente estadísticas) y de naturaleza comparativa más que descriptiva. Las fuentes de datos son tanto internas (de las transacciones ) como externas (por ejemplo, para comparar los resultados con lo que ocurre en otras compañías).

    60. Introducción a la Ingeniería del Software 60 Nivel estratégico de dirección Trabaja con plazos largos para acometer la difícil tarea de decidir las líneas maestras que debe seguir la empresa en el futuro. La información debe aparecer en formato muy resumido. La información se encuentra en formatos muy variables y de fuentes externas más inesperadas. Las decisiones están poco formalizadas y tienen un fuerte componente subjetivo. El nivel estratégico de dirección trabaja con plazos largos (mínimo 3-5 años) para acometer la difícil tarea de decidir las líneas maestras que debe seguir la empresa en el futuro. La información que se maneja debe aparecer en un formato muy resumido, con el objetivo de predecir qué será lo mejor para el éxito futuro de la compañía. Se incluye información en formatos muy variables y de las fuentes externas más inesperadas. Las decisiones que se deben tomar en este nivel están poco formalizadas y tienen un fuerte componente subjetivo.El nivel estratégico de dirección trabaja con plazos largos (mínimo 3-5 años) para acometer la difícil tarea de decidir las líneas maestras que debe seguir la empresa en el futuro. La información que se maneja debe aparecer en un formato muy resumido, con el objetivo de predecir qué será lo mejor para el éxito futuro de la compañía. Se incluye información en formatos muy variables y de las fuentes externas más inesperadas. Las decisiones que se deben tomar en este nivel están poco formalizadas y tienen un fuerte componente subjetivo.

    61. Introducción a la Ingeniería del Software 61 Flujos de información formales Flujos de información vertical (Jerarquía) Flujos verticales ascendentes, de subordinado a superior. Flujos verticales descendentes, de jefe a subordinado. Flujos de información horizontal (Coordinación) Flujos horizontales, entre personas del mismo nivel de autoridad (p.ej. Vendedor y dpto. de producción). Existen dos grupos principales de flujo de información en la empresa: horizontales (para la coordinación) y verticales (basados en la jerarquía). En consecuencia, los tipos de flujos que cabe distinguir en una organización son los siguientes: Flujos verticales ascendentes, de subordinado a superior. Suelen consistir en informes, más o menos formales, sobre resultados de las actividades o de las gestiones y avisos sobre incidencias. Tienen un marcado carácter histórico, de orientación al pasado. Flujos verticales descendentes, de jefe a subordinado. Normalmente se trata de órdenes: decisiones, objetivos que hay que cumplir, planes que se van a implantar, etc. También puede consistir en solicitudes específicas de información para tomar decisiones o controlar el funcionamiento. Flujos horizontales, entre personas del mismo nivel de autoridad (o sin relación jerárquica directa), bien entre compañeros de la misma unidad o bien entre personas de departamentos distintos. Frecuentemente, el contenido se suele denominar información de coordinación para poder manejar responsabilidades compartidas (el vendedor debe consultar con el departamento de producción para saber si se puede instalar un accesorio extra a ese modelo de coche que le pide el cliente). Estos flujos constituyen un medio esencial para adaptarse mejor al mercado, por lo que actualmente se trata de fomentar que existan canales horizontales de comunicación ágiles y eficaces en las empresas. En las organizaciones muy jerárquicas y rígidas (lo que se conoce popularmente como “burocracia”) la información no fluye horizontalmente con agilidad: un empleado de un departamento que quiera coordinarse con un colega de otra unidad debe pedir a su superior que le pida al jefe del otro empleado que autorice a su subordinado a compartir información o gastar tiempo de su jornada con él. Existen dos grupos principales de flujo de información en la empresa: horizontales (para la coordinación) y verticales (basados en la jerarquía). En consecuencia, los tipos de flujos que cabe distinguir en una organización son los siguientes: Flujos verticales ascendentes, de subordinado a superior. Suelen consistir en informes, más o menos formales, sobre resultados de las actividades o de las gestiones y avisos sobre incidencias. Tienen un marcado carácter histórico, de orientación al pasado. Flujos verticales descendentes, de jefe a subordinado. Normalmente se trata de órdenes: decisiones, objetivos que hay que cumplir, planes que se van a implantar, etc. También puede consistir en solicitudes específicas de información para tomar decisiones o controlar el funcionamiento. Flujos horizontales, entre personas del mismo nivel de autoridad (o sin relación jerárquica directa), bien entre compañeros de la misma unidad o bien entre personas de departamentos distintos. Frecuentemente, el contenido se suele denominar información de coordinación para poder manejar responsabilidades compartidas (el vendedor debe consultar con el departamento de producción para saber si se puede instalar un accesorio extra a ese modelo de coche que le pide el cliente). Estos flujos constituyen un medio esencial para adaptarse mejor al mercado, por lo que actualmente se trata de fomentar que existan canales horizontales de comunicación ágiles y eficaces en las empresas. En las organizaciones muy jerárquicas y rígidas (lo que se conoce popularmente como “burocracia”) la información no fluye horizontalmente con agilidad: un empleado de un departamento que quiera coordinarse con un colega de otra unidad debe pedir a su superior que le pida al jefe del otro empleado que autorice a su subordinado a compartir información o gastar tiempo de su jornada con él.

    62. Introducción a la Ingeniería del Software 62 Ejemplo de flujos de información Estos tipos de flujos son los que consideramos formales, ya que aparecen reflejados en los organigramas y en los procedimientos de operación. Existen otras comunicaciones informales (conversaciones, compartir un café, llamadas de teléfono, etc.) que, actualmente, los directivos intentan fomentar para crear un mejor clima de trabajo e incentivar la comunicación distendida de experiencias profesionales. Estos tipos de flujos son los que consideramos formales, ya que aparecen reflejados en los organigramas y en los procedimientos de operación. Existen otras comunicaciones informales (conversaciones, compartir un café, llamadas de teléfono, etc.) que, actualmente, los directivos intentan fomentar para crear un mejor clima de trabajo e incentivar la comunicación distendida de experiencias profesionales.

    63. Introducción a la Ingeniería del Software 63 Otras estructuras organizativas Otras formas de analizar una compañía, sin atender a su estructura jerárquica de proceso de la información: Por funciones o departamentos (unidad de producción, comercial, de gestión, económica y contabilidad, de personal, etc.) División geográfica (por sedes, etc.) División por productos (por modelos, por sectores de actividad, etc.) Hemos visto una forma de organización basada en la jerarquía para explicar la estructura de comunicación y utilización de información, pero también podemos estudiar la organización atendiendo a otros puntos de vista.Hemos visto una forma de organización basada en la jerarquía para explicar la estructura de comunicación y utilización de información, pero también podemos estudiar la organización atendiendo a otros puntos de vista.

    64. Introducción a la Ingeniería del Software 64 Otros conceptos útiles en SI MIS (Management Information System) MIS, “SI para la dirección”. Pertenece a los niveles operativo, táctico y estratégico de dirección. Más ligado con el nivel táctico. Debe proporcionar a los directivos la información y ayuda necesaria para tomar decisiones, normalmente de control administrativo. Proporciona soporte a los directivos en las tareas estructuradas, realizadas regularmente, con procesos bien definidos y sabiendo a priori qué información se necesita. MIS (Management Information Systems), sistemas de información para la dirección, que suelen producir la información de gestión y control que necesitan los directivos en el nivel táctico (nivel de dirección intermedio). Se trata de la toma de decisiones relacionada con el control administrativo (no son decisiones estratégicas, como las apoyadas por el DSS). Ejemplos: todo lo que no pertenece al procesamiento rutinario de las transacciones: pedir listados de volúmenes de ventas por cliente, listado de gasto por departamento con excepciones, incrementos en la producción de determinados tipos de productos, etc. MIS (Management Information Systems), sistemas de información para la dirección, que suelen producir la información de gestión y control que necesitan los directivos en el nivel táctico (nivel de dirección intermedio). Se trata de la toma de decisiones relacionada con el control administrativo (no son decisiones estratégicas, como las apoyadas por el DSS). Ejemplos: todo lo que no pertenece al procesamiento rutinario de las transacciones: pedir listados de volúmenes de ventas por cliente, listado de gasto por departamento con excepciones, incrementos en la producción de determinados tipos de productos, etc.

    65. Introducción a la Ingeniería del Software 65 Otros conceptos útiles en SI DSS (Decision Support System) DSS, “Sistema de Apoyo a la Decisión”. DSS: “sistema informático interactivo, que ayuda al usuario en la toma de decisiones, utilizando modelos para resolver problemas no estructurados”. La parte del SI que ofrece soporte a las decisiones poco estructuradas, en las que no existen métodos claros para cómo tomarlas, ni se conocen los factores que hay que considerar. Orientado generalmente a la alta dirección y a facilitar las decisiones estratégicas. Planificación, análisis de alternativas, ensayo y error para la búsqueda de soluciones. DSS (Decision Support Systems), sistemas de soporte a la decisión, orientados generalmente a la alta dirección, y a facilitar las decisiones estratégicas, las políticas en los niveles más altos de la administración. El DSS tiende a utilizarse en la planificación, el análisis de alternativas, y el ensayo y error para la búsqueda de soluciones. A menudo la calidad de las decisiones de los directivos se ve influenciada por la información disponible, de manera que muchas veces no se toma una decisión mejor porque no se dispone de los datos necesarios, o porque no se dispone del tiempo necesario para analizarlos. Con el DSS se trata de evitar el tópico de la falta de información por el exceso de la información. Un DSS se puede definir como un sistema informático interactivo, que ayuda al usuario en la toma de decisiones, utilizando modelos para resolver problemas no estructurados. Es interactivo ya que no se trata de un dispositivo de control automático: debe producirse una interacción entre el programa y el directivo que recibe la información. El problema no es estructurado, ya que éste es el tipo de problemas que normalmente aparecen en el nivel estratégico de la empresa, que es el nivel en que se plantean directrices a largo plazo. Un ejemplo de problema no estructurado sería el ajedrez. En cambio, cuando la toma de decisión está muy estructurada, lo más habitual es que la realice directamente una máquina. En los DSS se suelen utilizar modelos de inteligencia artificial y sistemas expertos. Ejemplos: predecir el nivel de consumo en los países de América Latina a partir de las tasas estimadas de inflación, crecimiento anual, tipos de interés, etc., con el fin de saber si merece la pena comprar un empresa de comunicaciones (nótese como esta decisión no se puede automatizar). DSS (Decision Support Systems), sistemas de soporte a la decisión, orientados generalmente a la alta dirección, y a facilitar las decisiones estratégicas, las políticas en los niveles más altos de la administración. El DSS tiende a utilizarse en la planificación, el análisis de alternativas, y el ensayo y error para la búsqueda de soluciones. A menudo la calidad de las decisiones de los directivos se ve influenciada por la información disponible, de manera que muchas veces no se toma una decisión mejor porque no se dispone de los datos necesarios, o porque no se dispone del tiempo necesario para analizarlos. Con el DSS se trata de evitar el tópico de la falta de información por el exceso de la información. Un DSS se puede definir como un sistema informático interactivo, que ayuda al usuario en la toma de decisiones, utilizando modelos para resolver problemas no estructurados. Es interactivo ya que no se trata de un dispositivo de control automático: debe producirse una interacción entre el programa y el directivo que recibe la información. El problema no es estructurado, ya que éste es el tipo de problemas que normalmente aparecen en el nivel estratégico de la empresa, que es el nivel en que se plantean directrices a largo plazo. Un ejemplo de problema no estructurado sería el ajedrez. En cambio, cuando la toma de decisión está muy estructurada, lo más habitual es que la realice directamente una máquina. En los DSS se suelen utilizar modelos de inteligencia artificial y sistemas expertos. Ejemplos: predecir el nivel de consumo en los países de América Latina a partir de las tasas estimadas de inflación, crecimiento anual, tipos de interés, etc., con el fin de saber si merece la pena comprar un empresa de comunicaciones (nótese como esta decisión no se puede automatizar).

    66. Introducción a la Ingeniería del Software 66 Otros conceptos útiles en SI OIS (Operating Information Systems) OIS, “Sistema de Procesamiento de Transacciones”. Es la parte del SI dedicada al procesamiento de las operaciones rutinarias diarias (transacciones) Grandes volúmenes de actividades repetitivas Datos muy estructurados Tratamientos simples y claros OIS (Operating Information Systems), “sistemas de información de operaciones”, que tratan al detalle la operatoria o funciones básicas de la empresa: contabilidad, almacén, control de facturas y albaranes, etc. El OIS representa la automatización del proceso rutinario, y es fundamental para soportar las operaciones básicas de la empresa, y producir informes que puedan ser analizados por los MIS y los DSS. OIS (Operating Information Systems), “sistemas de información de operaciones”, que tratan al detalle la operatoria o funciones básicas de la empresa: contabilidad, almacén, control de facturas y albaranes, etc. El OIS representa la automatización del proceso rutinario, y es fundamental para soportar las operaciones básicas de la empresa, y producir informes que puedan ser analizados por los MIS y los DSS.

    67. Introducción a la Ingeniería del Software: Herramientas CASE 67 Introducción. Taxonomía de herramientas CASE Herramientas CASE Índice

    68. Introducción a la Ingeniería del Software 68 Introducción Objetivos de la tecnología CASE INCREMENTAR Productividad del equipo. Calidad del Software. Reusabilidad del software. REDUCIR Costes de desarrollo y mantenimiento. AUTOMATIZAR Gestión del proyecto. Desarrollo del software. mantenimiento del software (Incluyendo la automatización y estandarización de la documentación y de su mantenimiento)

    69. Introducción a la Ingeniería del Software 69 Objetivos de la tecnología CASE AUTOMATIZACIÓN DEL DESARROLLO DE SW.: Productividad del equipo ?? Calidad del Software ?? INCREMENTAR Reusabilidad del software. REDUCIR Costes de desarrollo y mantenimiento. AUTOMATIZAR/SIMPLIFICAR Gestión del proyecto. Desarrollo del sw. (permitir aplicación met. estructuradas; prototipos; desarrollo “visual”) Mantenimiento del software (Incluyendo la automatización y estandarización de la documentación y de su mantenimiento)

    70. Introducción a la Ingeniería del Software 70 Características básicas que debe soportar (Yourdon 89) Soporte gráfico para varias técnicas (DFD, E/R, STD, modelos OO, etc.) Control de errores “Consistencia”: Unicidad identificadores, reglas metodología, etc. Validación entre diferentes modelos: En una fase (p.e. entre DFD y E/R) En varias fases (DFD análisis y diseño; DFD diseño y Diagrama de estructuras).

    71. Introducción a la Ingeniería del Software 71 Otras características deseables Soporte multiusuario. Personalización. Control de documentos y versiones. Gestión de proyectos Estadísticas de productividad y métricas del software. Pruebas. Simulación y prototipado. Demostración correcciones especificaciones y/o software. Generación de código.

    72. Introducción a la Ingeniería del Software 72 CASE. Componentes

    73. Introducción a la Ingeniería del Software 73 Algunas definiciones Método Procedimiento aplicado rutinariamente para alcanzar un objetivo. El procedimiento define los resultados a alcanzar y el camino que conduce a ellos. Herramienta Producto software que libera al ingeniero software de acciones que generan los resultados definidos por los métodos.

    74. Introducción a la Ingeniería del Software 74 CASE (Computed Aided Software Engineering) Conjunto de herramientas y métodos asociados que proporcionan asistencia automatizada en el proceso de desarrollo del software a lo largo de su ciclo de vida. Gestión del proyecto (planificación, estimación y control) Desarrollo del software (análisis, diseño, implementación, validación) Mantenimiento del software.

    75. Introducción a la Ingeniería del Software 75 Elementos básicos Interfaz gráfica. Editor de textos y gráficos. BD de soporte (BD del proyecto, depósito o ‘repositorio’ CASE) Mecanismos de control para: acceso a componentes. (datos, código, documentos, dispositivos) Compatibilidad de las herramientas. Consistencia de los productos. Detección de olvidos. Trazado de modificaciones.

    76. Introducción a la Ingeniería del Software 76 donde la BD de soporte: Reúne las funciones de: Catálogo central de ficheros y BD’s. Diccionario de datos y procesos. Biblioteca de programas y documentación. y es la base para: La integración de herramientas. El mantenimiento de la integridad del sistema. La coordinación y compartición de información entre usuarios, con controles de seguridad y privilegios de acceso. El control de cambios y versiones. La estandarización de la documentación. La reutilización del software. La gestión del proyecto (incluyendo auditorías). La incorporación a otro sistema informático.

    77. Introducción a la Ingeniería del Software 77 Taxonomía de herramientas CASE Clasificación por cobertura Toolkits Conjunto de herramientas software (integradas) que automatizan alguna fase del ciclo de vida (análisis, diseño, gestión, ...). Comparten la BD de soporte y la interfaz de usuario. Workbenchs Conjunto de herramientas software integradas que automatizan el ciclo de vida en más de una fase, típicamente en todas las fases de desarrollo: análisis + diseño + implementación (incluyendo la documentación asociada). Es decir, asisten en todo el proceso y proporcionan un producto documentado y operativo. Además de compartir la BD de soporte y la interfaz de usuario, están basadas en una misma metodología.

    78. Introducción a la Ingeniería del Software 78 Según grado de integración: Toolkits (Juego de herramientas) Conjunto de herramientas software que automatizan alguna fase del ciclo de vida (análisis, diseño, gestión, ...). Comparten la BD de soporte y la interfaz de usuario. Integración baja. Workbenchs (Banco de trabajo) Conjunto de herramientas software que automatizan el ciclo de vida en más de una fase, típicamente en análisis + diseño + implementación (incluyendo documentación asociada). Asisten en todo el proceso y proporcionan un producto documentado y operativo. Además de compartir la BD de soporte y la interfaz de usuario, están basadas en una misma metodología. Integración media. IPSE (Integrated Project Support Environment) Integración alta. Cubren todo el ciclo de vida, la gestión de proyectos y de la configuración.

    79. Introducción a la Ingeniería del Software 79 Según las fases del ciclo de vida que abordan: CASE frontales (fornt-end) o Upper CASE: Herramientas de apoyo a las primeras fases: Análisis, diseño. CASE dorsales (back-end) o Lower CASE: Herramientas de apoyo a las últimas fases: Implementación (generación de código). Pruebas (caja blanca y caja negra). Mantenimiento. ICASE (Integrated-CASE) Contienen elementos de Upper y Lower CASE: comtemplan todo el ciclo de desarrollo. Reverse Engineering (Ingeniería inversa) CARE (Computer Aided Requirements Engineering)

    80. Introducción a la Ingeniería del Software 80 Herramientas de análisis y diseño Permiten crear y verificar DFD’s, diagramas E/R, de clase, de estructura... Herramientas de prototipado: Diseñadores de pantallas Generadores de menús Generadores de informes Lenguajes de especificación ejecutables Ejemplos: DESIGNER/2000 de ORACLE EASY CASE de Evergreen Rational ROSE EXCELERATOR de Intersolv OBJECT MAKER de Mark IV. OMTool de GTE. PARADIGM Plus de Platinum SILVERRUN de CSA Research SYSTEM Architect de Popkin Sofware & Systems

    81. Introducción a la Ingeniería del Software 81 Clasificación por funcionalidad Herramientas de gestión de proyectos ayudan a la planificación y seguimiento del proyecto Planificación: agenda de desarrollo. Estimación: costes, duración, esfuerzo. Control: productividad, calidad. Herramientas de análisis y diseño. Herramientas de prototipado y simulación. Herramientas de programación. Editores dirigidos por la sintaxis (cabeceras de subrutinas, palabras clave, identación, nomenclatura de variables, ...) Generadores de estructuras de programas. Entornos integrados de desarrollo para soporte de un lenguaje (editor, compilador, depurador). Herramientas de integración y pruebas. Analizadores estáticos. Depuradores. Generadores de datos. Comparadores (e.g. de ficheros). Herramientas de soporte. Herramientas de mantenimiento. Ingeniería inversa. Reingeniería.

    82. Introducción a la Ingeniería del Software 82 Clasificación por posición Upper CASE: Herramientas de apoyo a las primeras fases Métricas del software. Estimación de costes. Planificación temporal. Medium CASE: Herramientas de apoyo a las fases centrales. Análisis. Diseño. Lower CASE: Herramientas de apoyo a las últimas fases. Implementación (generación de código). Pruebas (caja blanca y caja negra). Mantenimiento. Documentación de la implementación y documentación para el usuario final.

    83. Introducción a la Ingeniería del Software 83 Criterios de selección Tipo de computador (MainFrame, Ws, PC, ...) Lenguaje al que va orientada. Metodología soportada. Posibilidades de integración con otras plataformas (presentes y futuras). Criterios habituales en la selección de software: formación, precio, asistencia técnica, mantenimiento, ... (la formación en el uso de herramientas CASE se estima en 1/3 de la formación necesaria para el uso de la metodología subyacente)

More Related