Fundamentos de Ingeniera del Software - PowerPoint PPT Presentation

1 / 83
About This Presentation
Title:

Fundamentos de Ingeniera del Software

Description:

... cuando se ejecutan, proporcionan la funcionalidad deseada. ... Balanza Comercial -3.471,53 -3.533,66 -1,79. Tasa de Cobertura (%) 33,62. 25,48. Valor A adido ... – PowerPoint PPT presentation

Number of Views:299
Avg rating:3.0/5.0
Slides: 84
Provided by: joaqunni
Category:

less

Transcript and Presenter's Notes

Title: Fundamentos de Ingeniera del Software


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

Asignatura Fundamentos de Ingeniería del
Software Titulación Ingeniera Técnica de
Informática de Gestión Curso Académico
2004-2005 Curso 3º Cuatrimetres
Primero Créditos 6(33) Página Web
dis.um.es/lopezquesada Profesor Juan Antonio
López Quesada Departamento Informática y
Sistemas
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
Bibliografía
  • 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.
  • (Pressman 2001) o (Pressman 1998) Cap.1 y Cap. 2
    (aptdo. 2.1).

4
Motivación
5
Motivación (II)
Información Ppal. activo de las empresas
desarrollo de SI ? fuertes presiones
(calidad, productividad)
Artesanal Disciplina de ingeniería
Calidad Herramientas Gestión de proyectos
6
Desarrollo del software.Un símil.
7
Desarrollo del software.Comunicación compleja
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.

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--)

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)

11
Atributos de Calidad del Software (Sommerville
2002)
  • Mantenibilidad
  • Confiabilidad
  • fiabilidad
  • seguridad
  • protección
  • Eficiencia
  • Usabilidad

12
Perspectiva histórica del desarrollo de software
  • Década 80-90
  • Tecnología de SGBDs, SOs...
  • Nuevos paradigmas de programación y de producción
    de programas
  • OO
  • C/S
  • 90s - 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
  • ...
  • 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.

13
Frecuentemente, el sw es la parte más compleja
(Thayer 2002)
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
Relación coste hw./sw.
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.?

17
INVERSION EN DESARROLLO DE SISTEMAS SOFTWARE
18
Coste del software
Desarrollo inicial
TOTAL
Codif. 1/24
TOTAL
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
En España (II)
Principales variables del mercado español de
Tecnologías de la información en 2002 (en
millones de euros)
Fuente "Las Tecnologías de la Información en
España 2002"  MCyT (Ministerio Español de Ciencia
y Tecnología) / SEDISI (Asociación Española de
Empresas de Tecnologías de la Información).
Disponible en www.sedisi.es.
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
Algunas soluciones...No existe bala de plata!
(Brooks 87)
Modelado del negocio
métodos de análisis, diseño, prueba...
ingeniería de requisitos
reutilización
POO
Prototipado
INGENIERÍA DEL SOFTWARE
herramientas 4ª gen. lenguajes no procedimentales
para consulta a BDs generadores de
pantallas, generadores de código, generadores de
informes
métodos formales
herramientas CASE editores dirigidos por la
sintaxis, entornos integrados de
desarrollo, herramientas para la gestión de
proyectos, herramientas de prototipado, etc.
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

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).

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
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.

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

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
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.

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)

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.

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.

33
Fase de mantenimiento
  • Un buen sistema no es sólo un conjunto de
    programas que funcionan.

(CASE, Computer Assisted Software Engineering)
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
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).

36
Visión general del proceso de ISw (II)
(no es totalmente secuencial) Actualmente
iterativo e incremental
37
Impacto del cambio
Coste del cambio
1,5-6x
1x
Definición
Desarrollo
Mantenimiento
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
Sistemas de información Bibliografía.
  • 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
  • (Piattini et al. 96) cap.1
  • En el cap. 2 hay ejemplos de sistemas de
    información en la empresa

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

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.
Los componentes del sistema. Las relaciones entre
ellos, que determinan la estructura del
sistema. El objetivo del sistema.
41
Concepto de sistema (II)
En muchos sistemas la salida influye en el estado
del sistema (realimentación).
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

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.

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)

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.

46
Sistema de información. Ejemplo
SI de un hipermercado
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
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).

49
Organización, SI y SIA(Piattini et al. 96)
Negocio/empresa
SI
SIA
Sistema informático de soporte
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.

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)

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.

53
SI empresarial (II)Adaptado de (Pechuán 96)
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

55
Los elementos del SI y sus relaciones (Piattini
et al. 96)
OBJETIVOS
Información
Personal
Equipo
56
Estructura de un SI
INF. RESUMIDA Y ABSTRACTA, DE ÁMBITO MÁS GENERAL
Alta dirección
LARGO PLAZO gt3-5 AÑOS
Estratégica
ORDENES, PLANES, ETC.
COMPRIMIR Y RESUMIR
MEDIO PLAZO 1 AÑO
INFORMES HISTÓRICOS
Dirección táctica
CORTO PLAZO
Dpto. Comercial
Dirección operativa
Dpto. Finanzas
Sistema de transacciones
INFORMACIÓN DETALLADA Y ESPECÍFICA
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.

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.

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.

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.

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).

62
Ejemplo de flujos de información
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.)

64
Otros conceptos útiles en SIMIS (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.

65
Otros conceptos útiles en SIDSS (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.

66
Otros conceptos útiles en SIOIS (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

67
Herramientas CASEÍndice
  • Introducción.
  • Taxonomía de herramientas CASE

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
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
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
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.

Uso de técnicas formales (Z, VDM,
Especificaciones algebraicas)
72
CASE. Componentes
(Piattini et al. 96)
INTERFAZ DE USUARIO
Metamodelo
Repositorio
GENERADOR DE INFORMES
HERRAMIENTAS DE CARGA Y DESCARGA DE DATOS
FACILIDADES DE COMPROBACI Ó N
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
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
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
donde la BD de soporte
  • Reúne las funciones de
  • Catálogo central de ficheros y BDs.
  • 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
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
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
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
Herramientas de análisis y diseño
  • Permiten crear y verificar DFDs, 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
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
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
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)
Write a Comment
User Comments (0)
About PowerShow.com