Title: U'M'S'F'X'CH Facultad de tecnologa Ingeniera de Sistemas
1U.M.S.F.X.CHFacultad de tecnologÃaIngenierÃa de
Sistemas
Ramiro Durán Quiroga Sucre - 1999
2Objetivo
- Conocer la evolución que ha tenido el desarrollo
de software - Comprender la importancia del uso de las
herramientas CASE - Conocer los requisitos que debe cumplir una
herramienta de software y aprender a evaluar su
calidad - Conocer las caracterÃsticas más importantes que
deben tener los CASE
3Contenido
- IngenierÃa de software asistida por computadora
- Clasificación
- Componentes de la IngenierÃa de Software
- CaracterÃsticas de las herramientas automatizadas
- Evaluación de una herramienta CASE
- Tendencias de los CASE
4Evolución del Software
Reducir el costo de procesamiento y
almacenamiento de datos.
Tres décadas!
Reducir costos
- Mejorar la calidad del Software
5Desarrollar Software
Pero no hay piezas de repuesto, por lo tanto, el
mantenimiento incluye normalmente la corrección o
modificación del diseño
Se reemplazan las partes defectuosas durante el
mantenimiento
6Fallos del software
Proporción de fallas
Deterioro temprano
Deterioro en el tiempo
Tiempo
7Crisis del Software
- La planificación y estimación de costos es muy
imprecisa - La productividad no se corresponde con la
demanda - La calidad del software no llega a ser la adecuada
8Mito de Gestión
Poseemos herramientas de desarrollo de software
avanzados, les compramos las computadoras más
avanzadas.
Realidad Las herramientas de software son
más importantes que el hardware para
conseguir buena calidad y productividad.
Horror
9Mito de los Realizadores
Realidad Ningún método de análisis y diseño es
infalible, pero el uso de una metodologÃa
para el desarrollo del software está
implÃcito en todos.
No hay realmente ningún método para el
análisis, diseño y prueba que funcione bien, yo
simplemente me voy a mi terminal y comienzo a
codificar.
10Solución
SE NECESITA UNA DISCIPLINA PARA EL DESARROLLO DE
SOFTWARE
La disciplina IngenierÃa de software
11Beneficios de la IngenierÃa de Software
- Aumenta la productividad
- Aumenta la eficiencia
- Aumenta la calidad del sistema de información
obtenido
Debe resolver dos de los problemas de la crisis
del software
12Los Problemas de los Desarrolladores
- Costo necesidad de mejorar la efectividad
del trabajo de los programadores y disminuir
el costo - Sistematización para proyectos largos donde
intervienen varios programadores es necesario
poder mezclar el trabajo de todos ellos - Repetitividad acomodarse a las modificaciones
que se pueden producir por el cambio - Claridad para entender y leer los programas
13 Ejemplos
- Un cambio en un nivel de un DFD puede provocar
cambios en otros niveles y en el DD lo que es
costoso y desgastante (Repetitividad) - El sistema se dividió por partes y cada analista
define sus propios elementos que pueden
coincidir con los de otros y lograr uniformidad
es trabajoso, pero necesario para garantizar
calidad (Sistematización)
14Ejemplos
- La realización de un proyecto sigue demorando
mucho tiempo y los analistas no utilizan los
métodos bien, por lo que no explotan todas sus
posibilidades para mejorar la calidad por lo
tanto los sistemas siguen siendo muy costosos
(Costo)
15Ejemplos
- Varias personas intervienen en la programación y
cada uno tiene su estilo propio por lo que el
programa se hace muy difÃcil de entender y leer
aún cuando se fijen principios generales de
codificación (Claridad)
16FilosofÃa Directo a la Máquina
- Descenso de la productividad
- Uso de técnicas personales de análisis y diseño
(si se usa alguna) - Dispersión incontrolada de la información sobre
la aplicación lo que impide una homogénea
producción y distribución de la documentación
17CASE - Computer-Aided Software Engineering
- IngenierÃa de software asistida por computadora
--gt más difundida - IngenierÃa de sistemas asistida por
computadora --gt es más precisa ya que
el objetivo a largo plazo de los CASE es
automatizar los aspectos claves de todo el
ciclo de vida del proyecto desde el principio
hasta el final
18CASE
IngenierÃa
CASE
Asistida por computadora
Los CASE fueron la última innovación del
enfoque estructurado.
19IngenierÃa
- La ingenierÃa aplicada a la realización de
sistemas informativos supone la adopción de
técnicas derivadas del estudio cientÃfico de
la problemática involucrada en los procesos
complejos de puesta en marcha de nuevos
programas
20Asistida por computadora
- La ayuda de la propia computadora en la
realización de estas técnicas supone la
aceptación de ésta como elemento de
productividad para las tareas de análisis,
diseño e implementación de los nuevos programas
21Objetivo del CASE
- Herramienta informática que permite la
especificación de una aplicación además de la
documentación automática de la misma mediante la
utilización de diagramas u otras técnicas de
especificación que interactúan con una base de
datos o almacén integrado
22CaracterÃsticas
- Permiten que los propios usuarios definan su
metodologÃa, reglas y estándares - Soportan una metodologÃa
- Soportan las metodologÃas más disÃmiles
La informática sale del estado artesanal
23Ventajas Cuantificables
- Ahorra un 30 de los costos de desarrollo y un
50 de los costos de mantenimiento - Incrementa la productividad de 81 durante el
desarrollo
24Ventajas Cuantificables
- Hace poco más de 10 años se dedicaba un 30 de
los recursos a actividades de mantenimiento,
hoy es de un 60 a 80 y la mitad de los
profesionales de software de todo el mundo están
ocupados manteniendo los sistemas - El esfuerzo necesario con el uso de CASE es el
20 del necesario para mantener sistemas de
desarrollo con métodos tradicionales.
25Ventajas no Cuantificables
- Involucra más a los usuarios finales en el
desarrollo del proceso - Usan poderosos gráficos para describir y
documentar los sistemas y mejorar la interfaz
26Ventajas no Cuantificables
- Establecimiento de estándares informáticos y
normas de diseño al usar una metodologÃa que
está implÃcita en el CASE - Eliminación de tareas de mantenimiento clásico
sustituyéndolas por mantenimiento CASE que son
tareas de rediseño
27Ventajas no Cuantificables
- Consistencia de los procedimientos
- Generación de código más consistente
- Captura de los datos de los sistemas, es la
capacidad para capturar, almacenar, procesar y
recuperar los detalles del sistema bajo
elaboración
28Ventajas no Cuantificables
- Posibilidad de realizar análisis para comprobar
la corrección, consistencia y completitud - Automatización de tareas tediosas. Ejemplo
dibujar los DFD - No se requiere de mucho tiempo de entrenamiento
29Desventajas de los CASE
- Muy caros
- Alcance limitado
- En general un uso obligado de diagramas
gráficos para la especificación de los
sistemas y alguna organización puede preferir el
uso de un lenguaje de especificación - Son muy inflexibles
30Funcionalidad de los CASE
- Descansan en un almacén central de datos,
diccionario de datos o enciclopedia - Son herramientas activas que diagnostican los
errores en el mismo momento de producirse - Suplen de forma automática los aspectos del
diseño no especificados, para lo cual aplican
reglas heurÃsticas o el conocimiento previamente
adquirido
31Tendencias
Orientadas al código
Actuales
Vinculadas a metodologÃas
Herramientas de Software
De cuarta generación
Constructores de prototipos
Avanzados
Futuras
Productos de IA
32Herramientas Orientadas al Código
- Son a menudo las únicas herramientas
disponibles para el desarrollo de software (una
situación que no es ideal) - Incluyen compiladores de lenguajes de
programación, editores, enlazadores y
cargadores, ayudas para la depuración una
amplia serie de utilidades especÃficas del
lenguaje
33Herramientas de MetodologÃa
- De la misma forma que un constructor necesita
una pala para excavar los cimientos, antes que
utilizar un martillo y una sierra para
construir una casa, la ingenierÃa de software
necesita de herramientas de metodologÃa para
diseñar y analizar, antes de codificar.
34Herramientas de 4ta Generación
- Contienen una sintaxis distinta para la
representación del control y el acceso a las
BD - Elimina la necesidad de especificar detalles
algorÃtmicos - Combina caracterÃsticas procedimentales y no
procedimentales
35Primera Clasificación
- Upper Case
- Middle Case
- Lower Case
36Upper Case
- Altos (UPPER CASE) Frecuentemente llamada
planeamiento asistido por computadora, poseen
componentes para representar la planificación
colectiva - las metas de la CompañÃa y sus departamentos.
- la influencia de las operaciones en el logro de
estas metas. - la ubicación de los recursos las funciones de c/u
de los departamentos - Se representan gráficamente aspectos importantes
de la empresa.
37Fases que incluye el Upper CASE
- Describen las partes importantes de la empresa
(departamentos, funciones de cada uno de ellos,
metas, objetivos, responsabilidades, recursos,
problemas) - FASES
- Definición del objeto de estudio
- Definición del objeto de automatización
- Estudio de factibilidad
- Planificación del proyecto
- Estudio de costos y beneficios
38 El Upper CASE Permite Entender
- El colectivo y el mecanismo departamental
- Las metas de la compañÃa y sus departamentos,
- La influencia de las operaciones en las metas,
- La ubicación dentro del colectivo y la
administración departamental y operaciones,
39 El Upper CASE Permite Entender
- La oportunidad y secuencia de operaciones,
- La influencia de factores, la ubicación de los
recursos - Los efectos de la influencia externa
- Los problemas de frente a la organización
- La importancia de la organización relativa a
los sucesos de la organización.
40Ejemplos
- WORKBENCH Planificación en tiempo de los
sistemas utilizando diagramas de Gantt - Planificación de recursos y personal
- Existen herramientas automatizadas de
estimación que permiten al planificador
estimar costos y esfuerzos asà como llevar
análisis del tipo "que pasa sÃ" con importantes
variables del proyecto tales como la fecha de
entrega o la selección del personal
41Información Deseada
- Estimación cuantitativa del tamaño del proyecto
- Complejidad
- Fiabilidad requerida
- Alguna descripción del personal y/o entorno de
desarrollo - Estimaciones que ofrecen
- Esfuerzo requerido para completar el proyecto
- Costos
- Agenda de desarrollo y el riesgo asociado
- Carga de personal
42Middle CASE
- Medios (Middle CASE) se analiza el problema con
la información que se tiene y se diseñan
soluciones - Abarca las etapas de análisis y diseño del
sistema - El uso de los Middle CASE
- Proporciona métodos fáciles para diseñar sistemas
- Es fácil determinar qu quieren que se haga y
cómo resolver los problemas - Facilita la unión entre el análisis y el diseño
- Facilidad para incluir prototipos.
43Principios que rigen los Métodos de Análisis
- El dominio de la información debe ser
representado - El problema debe subdividirse de forma que se
descubran los detalles - Deben describir las representaciones lógicas y
fÃsicas del sistema. - La visión lógica de los requerimientos del
software presenta las funciones que han de
realizarse y la información que ha de procesarse
44Lower CASE
- A partir de un conjunto de especificaciones se
genera un elevado por ciento del código por lo
que si se requiere modificar algo, no es
necesario modificar el código, solo hay que
modificar las especificaciones y generar
nuevamente este. - Con el uso de LOWER CASE se
- Genera del 60 al 80 del código del programa.
- Facilidad para modificar sistemas generados por
un LOWER CASE. - Facilidad para incluir prototipos.
45Segunda Clasificación
- Front-end (altos y medios) Usan técnicas que
ayudan al analista a preparar
especificaciones formales, validando las
descripciones del sistema con el objetivo de
determinar su consistencia y completitud. - Back-end (bajos) Están relacionados con la
generación de código a partir de
especificaciones que se le ofrecen - generadores de menúes
- generadores de interfaces
- generadores de reportes
46Integrales o integradas
- Abarcan todo el ciclo de vida
- La integración de los CASE ocurre de la forma
- Existencia de una interfaz uniforme
- Transferencia de datos entre herramientas
- Unión de las actividades de desarrollo La unión
de las actividades de desarrollo se
encuentra vinculada a la posibilidad de
transferencia de datos entre herramientas.
47CategorÃas Básicas de los CASE
- ToolKit Colección de software que ofrecen
asistencia automatizada para una tarea
especÃfica del desarrollo de un sistema. - WorkBench Obtención de software que
ofrecen una asistencia automatizada para el
análisis, diseño e implementación a la vez
48Componentes de los CASE
- Herramientas para la diagramación
- Depósito de información
- Generadores de interfaces
- Generadores de código
- Herramientas de administración
49CASE para el Análisis
- Demandan un método formal de especificación
(texto o gráfico) - Dan mecanismos automáticos o semiautomáticos,
para analizar la especificación - Crean una BD que representa los requerimientos
en términos de información del sistema - Se usan para ayudar al analista aunque se basan
en la información que dan ellos y los clientes
50Ventajas CASE de Análisis
- Mejora la calidad de la documentación a
través de la estandarización e informes - Mejor coordinación entre los analistas a los que
está disponible la BD
51Ventajas CASE de Análisis
- Los olvidos, omisiones e inconsistencias se
descubren más fácilmente mediante aplicaciones e
informes de referencias cruzadas - El impacto de las modifiaciones pueden ser
trazado más fácilmente - Se reducen los costos de mantenimiento para la
especificación
52Productos CASE Analisis
- Brief CASE
- Arch 1.2
- Analyze
53CASE para el Diseño
- Diseño de la BD
- Fuentes Ficheros normativos y de consulta y las
salidas que se reflejan en el DFD - Proceso de normalización automatizando sus pasos
(1FN, 2FN, 3FN y FNBC)
54Automatización del Diseño Estructurado
- A partir de las relaciones obtenidas construir el
DER en un proceso interactivo con los usuarios
- Diseño de módulos
- Fuente Primitivas funcionales descritas en el
DD - Diseño del grafo conversacional
- Fuente JerarquÃa de procesos desde el diagrama
0 hasta el último nivel dados en el DFD y DD - Diseño de pantallas
55Automatización del Diseño Orientado a Objetos
- Refinamiento de clases a partir de analogÃas
obtener a objetos abstractas o superclases - El analista define el nombre de las nuevas
clases y si son o no abstractas - Puede mostrar todas las clases con su
definición completa para que valore si tiene
más responsabilidad - Obtiene diagramas de interacción
- Obtiene el detalle completo de las clases
- Diseño de los objetos interfaz
56Chequeos Automáticos
- Inteligencia Informe para cada clase de a
cuántas puede afectar y de cuántas tiene
conocimiento - Revisar texto de responsabilidades buscando
semejanzas para generalizar responsabilidades - Indicar cuando una clase está pidiendo a otra
el valor de alguno de sus atributos
57Chequeos Automáticos
- Revisar que no hayan duplicaciones que puedan
provocar inconsistencias - Hacer diagramas a partir de la definición de
clases (responsabilidades y atributos),
asociaciones y colaboraciones - Tener almacenadas las bibliotecas de clases
que brindan varios lenguajes
58CASE de Prueba
- Es un elemento crÃtico para la garantÃa de
calidad del software y representa un último
repaso de las especificaciones, del diseño y de
la codificación - Analizadores estáticos verificar si el programa
es correcto, es decir, satisface la
especificación para el cual se hizo
59Herramientas Automáticas de Prueba
- Las técnicas de verificación de programas que
se basan en lo siguiente - P Precondición Si el estado inicial de
las variables de la Instrucción S del programa
satisface al producto P, entonces Q. - Postcondición cuando S termine de
ejecutarse, el estado final de las variables
del estado satisface al predicado Q. - Esto es un proceso muy complejo y se aplica
a cada una de las instrucciones por lo que es
muy trabajoso hacerlo a mano.
60Herramientas Automáticas de Prueba
- Auditores de código
- se trata de filtros de propósito especial
usados para comprobar la calidad del software en
cuanto a que cumplan unos estándares mÃnimos de
codificación - Generadores de datos de prueba
- Ayudan al usuario a seleccionar datos de
prueba que hagan que el programa se
comporte de una determinada forma.
61Herramientas Automáticas de Prueba
- Analizadores de FD
- esta herramienta sigue la pista del FD a través
de un sistema e intenta encontrar errores. - Simuladores de entorno
- sistema especializado que permite al encargado
de la prueba modelar el entorno externo
software y asà simular dinámicamente las
condiciones reales de operación.
62Tendencias de los CASE
- Herramientas multiplataforma
- Introducción de técnicas de inteligencia
artificial - Multimedia
- Incorporación de la Orientación a Objeto
- Operaciones en redes para el uso de proyectos
63Tendencias de los CASE
- Manejo de metodologÃas de software a la medida
- Simulación y Prueba automatizada
- Control de la documentación permitiendo cambios
solo cuando hay autorización - Pruebas de corrección auxiliadas por la
computadora - Generadores de código
64Elección de un CASE
- No confundir los lenguajes de 4ta generación con
instrumentos CASE - Algunos CASE no generan código fuente
- Algunos instrumentos CASE pueden necesitar algún
módulo ejecutor adicional - El prototipo generado debe ser el más económico y
lo más realista posible
65Elección de un CASE
- Fácil adaptabilidad al usuario del producto que
son los diseñadores y programadores - Posibilidades de enlace con generadores de código
y lenguajes de 4ta generación - Posibilidad de acceso concurrente
- Deben permitir varias versiones
66Todo CASE debe Cumplir
- Trasiabilidad en cualquier momento pueda saber
de dónde se obtuvo algo, regresar atrás - Iteratividad se pueda mejorar lo que se hizo
- Carácter incremental se pueda hacer la
aplicación por partes
67BibliografÃa
- José Armenteros Quero, La implantación de la
tecnologÃa CASE. .Revista Chip Informática,
Enero'95 - Michael Lucas Gibson, The Case philosiphy"
Revista Byte Abril'96 pág. 209-218. - Carma McClure, The CASE experience" Abril '98
- Dennis Minium,"Integrated CASE in the 90's".
Revista Intelligent Systems Report - Roger S. Pressman,"IngenierÃa de softwareun
enfoque práctico" 2da edición 1989 McGraw-Hill