Title: Fundamentos de Ingeniera del Software
1Fundamentos 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
3Bibliografí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).
4Motivación
5Motivació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
6Desarrollo del software.Un símil.
7Desarrollo del software.Comunicación compleja
8El 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.
9Caracterí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--)
10Atributos 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)
11Atributos de Calidad del Software (Sommerville
2002)
- Mantenibilidad
- Confiabilidad
- fiabilidad
- seguridad
- protección
- Eficiencia
- Usabilidad
12Perspectiva 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.
13Frecuentemente, el sw es la parte más compleja
(Thayer 2002)
14La 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.
15Relación coste hw./sw.
16Problemas 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.?
17INVERSION EN DESARROLLO DE SISTEMAS SOFTWARE
18Coste del software
Desarrollo inicial
TOTAL
Codif. 1/24
TOTAL
19En 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.
20En 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.
21Algunas 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.
22Algunas 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.
23Objetivos 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
24Má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).
25Situació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.
26Situació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.
27Situació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
28Principios 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?
29Visió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.
30Fase 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)
31Fase 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.
32Fase 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.
33Fase de mantenimiento
- Un buen sistema no es sólo un conjunto de
programas que funcionan.
(CASE, Computer Assisted Software Engineering)
34Tipos 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.
35Tipos 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).
36Visión general del proceso de ISw (II)
(no es totalmente secuencial) Actualmente
iterativo e incremental
37Impacto del cambio
Coste del cambio
1,5-6x
1x
Definición
Desarrollo
Mantenimiento
38Sistemas 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
39Sistemas 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
40Introducció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.
41Concepto de sistema (II)
En muchos sistemas la salida influye en el estado
del sistema (realimentación).
42Teorí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
43Informació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.
44Sistema 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)
45Sistema 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.
46Sistema de información. Ejemplo
SI de un hipermercado
47SI 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.
48Sistema 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).
49Organización, SI y SIA(Piattini et al. 96)
Negocio/empresa
SI
SIA
Sistema informático de soporte
50Ejemplos 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.
51Ejemplos 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)
52SI 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.
53SI empresarial (II)Adaptado de (Pechuán 96)
54Elementos 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
55Los elementos del SI y sus relaciones (Piattini
et al. 96)
OBJETIVOS
Información
Personal
Equipo
56Estructura 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
57Sistema 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.
58Nivel 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.
59Nivel 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.
60Nivel 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.
61Flujos 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).
62Ejemplo de flujos de información
63Otras 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.)
64Otros 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.
65Otros 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.
66Otros 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
67Herramientas CASEÍndice
- Introducción.
- Taxonomía de herramientas CASE
68Introducció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)
69Objetivos 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)
70Caracterí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).
71Otras 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)
72CASE. Componentes
(Piattini et al. 96)
INTERFAZ DE USUARIO
Metamodelo
Repositorio
GENERADOR DE INFORMES
HERRAMIENTAS DE CARGA Y DESCARGA DE DATOS
FACILIDADES DE COMPROBACI Ó N
73Algunas 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.
74CASE (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.
75Elementos 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.
76donde 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.
77Taxonomí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.
78Segú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.
79Segú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)
80Herramientas 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
81Clasificació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.
82Clasificació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.
83Criterios 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)