Está en la página 1de 27

Tema 8

Ingeniera del Software

Jaime Oyarzo Espinosa jaime.oyarzo@uah.es


Profesor Asociado, Universidad de Alcal
eLearning Consultant, LUND University, Sweden

Introduccin a los Sistemas de Informacin

El concepto de Sistema.

El concepto de Informacin.

Sistemas de Informacin.
z
z
z

Definicin
Elementos
Estructura

Aplicacin de las T.I. a los S.I.

Tema 8
JAGM/JOE

Ingeniera del Software


Introduccin
Evolucin del Software
Primeros aos
orientacin por lotes
distribucin limitada
software a medida

1950

1960

Segunda era
multiusuario
tiempo real
bases de datos
software como
producto

1970

Tercera era
sistemas distribuidos
incorporacin de
inteligencia
hardware bajo coste
impacto en el
consumo

1980

Cuarta era
potentes sistemas de
sobremesa
tecnologas
orientadas a objetos
sistemas expertos
redes neuronales
computacin paralela

1990

2000

Tema 8
JAGM/JOE

Cmo es el software?

Se desarrolla no se fabrica en el sentido


clsico
No se estropea
Es complejo
Es un diferenciador
Parecido a viejas fbricas

Tema 8
JAGM/JOE

Demandas comerciales

Systems that must never crash and must always


meet their deadlines.

Systems that must be secure, trustworthy,


lightweight, and extensible.

Performance-critical open networking systems that


are costly to shut down.
Tema 8

JAGM/JOE

Software de alta seguridad

Tpico problema de incomunicacin

Proceso de desarrollo del Software

Tema 8
JAGM/JOE

Evolucin histrica y desarrollo de los S.I.

Antecedentes de la Informtica.

Evolucin en el Hardware.

Evolucin en el Software.

Evolucin en el almacenamiento de datos.

Tema 8
JAGM/JOE

Ingeniera del Software

Introduccin

Ciclo de vida del Software

Metodologas

La automatizacin (CASE)

Garanta de Calidad (SQA)


Tema 8

JAGM/JOE

10

Re-Ingeniera del Software

Re-Ingeniera del Software


z
z
z
z

Definiciones
Importancia de la Re-Ingeniera
Re-Ingeniera y CASE
Pasos de la Re-Ingeniera

Reutilizacin del Software


z
z
z
z

Definicin y Nueva Concepcin


Ejemplos
Ventajas
Problemas

Tema 8
JAGM/JOE

11

Ingeniera del Software


Introduccin

La importancia del Software


z

Tres primeras dcadas : desafo en el desarrollo del Hard.

Durante los 80 : avances en microelectrnica que dan


como resultado mayor potencia de clculo y reduccin de
costes.

El problema hoy es diferente : mejorar la Calidad de las


soluciones basadas en ordenador:
9

Soluciones implementadas con Software

Tema 8
JAGM/JOE

12

Curva real de fallos del software

Incremento del ndice


de fallos por efectos
colaterales

Cambio
Curva real

Curva ideal
Tema 8
JAGM/JOE

13

El Coste del Cambio


60-100x

1.5-6x
1x
Definicin

Desarrollo

Despus de liberarlo
Tema 8

JAGM/JOE

14

Capas en la Ingeniera del Software

Herramientas
Mtodos
Procesos
Un enfoque de calidad
Tema 8
JAGM/JOE

15

Fases de un bucle de resolucin de


problemas

Definicin del
Problema
Desarrollo
tcnico

Status
Quo
Integracin de
soluciones

Rac95: Racoonn

Tema 8
JAGM/JOE

16

El modelo lineal

Anlisis

Diseo

Cdigo

Pruebas

Ingeniera del Sist.


de informacin

Tema 8
JAGM/JOE

17

Construccin de prototipos
Recoleccin de
requerimientos
Diseo rpido

Construccin
del prototipo
Evaluar y refinar
los requerimientos
Producto
construido
Tema 8
JAGM/JOE

18

Tcnicas de cuarta generacin


Recoleccin de
requerimientos
Estrategia de
diseo
Implementacin
usando 4GL
Producto

Tema 8
JAGM/JOE

19

El ciclo de vida clsico


Waterwfall Model

Planificacin
estratgica
Anlisis de
requisitos del
Sistema

ANLISIS

Especificacin
funcional del S.
Diseo del
sistema
Construccin
del sistema
Implantacin

10

Ingeniera del Software


Introduccin

La evolucin del Software (2)


z

Sofisticacin del hardware desfase en la construccin


de software para explotar su potencial .

No existe capacidad para abastecer la demanda de nuevos


programas.

La capacidad de mantener lo existente est amenazada


por el mal diseo y el uso de recursos inadecuados.

Tema 8
JAGM/JOE

21

Ingeniera del Software


Principales problemas

La planificacin y la estimacin de costes son


frecuentemente imprecisas.
La productividad no se corresponde con la
demanda de servicios.
La calidad del Software no llega a ser a veces ni
aceptable.

Tema 8
JAGM/JOE

22

11

Ingeniera del Software


Una definicin

Disciplina que se ocupa del establecimiento y uso


de principios firmes de ingeniera, para obtener
software econmico que sea fiable y funcione
eficientemente en mquinas reales [ Fritz Bauer].

Tres elementos claves:


Mtodos
Herramientas
z Procedimientos
(denominados frecuentemente:
paradigmas de la ingeniera del software)
z
z

Tema 8
JAGM/JOE

23

Ingeniera del Software


Los mtodos

Indican como construir el software


Abarcan un amplio espectro:
z
z
z
z
z

planificacin y estimacin de proyectos


anlisis de los requisitos del sistema y del software
diseo de estructuras de datos
arquitectura de programas y procedimientos algortmicos
codificacin, prueba y mantenimiento

Tema 8
JAGM/JOE

24

12

Ingeniera del Software


Las herramientas

Suministran un soporte automtico para los


mtodos
Existen herramientas para soportar cada uno de los
mtodos mencionados anteriormente
Un entorno con integracin de diferentes
herramientas. Se denomina un sistema CASE
(Ingenieria del Software Asistida por Ordenador)

Tema 8
JAGM/JOE

25

Ingeniera del Software


Los procedimientos

Pegamento que junta los mtodos y las


herramientas
Definen:
z
z
z
z

la secuencia en la que se aplican los mtodos


las entregas (documentos, informes, etc..) requeridas
los controles: ayudan a asegurar la calidad y coordinar los
cambios
Directrices: ayudan a los gestores del software a evaluar el
progreso

Tema 8
JAGM/JOE

26

13

Concepto de Ciclo de Vida

Un gran problema de los S.I. es definir un marco de referencia


comn que:
z
z

pueda ser empleado por todos


en el que se definan procesos, actividades y tareas

IEEE 1991- Standard for Developing Software Life Cycle


Processes. ::> Aproximacin lgica a la adquisicin, el
suministro, el desarrollo, la explotacin y el mantenimiento del
software.
ISO 1994 - Software life-cycle process ::> Marco de referencia
que contiene los procesos, las actividades y las tareas
involucradas en el desarrollo, la explotacin y el
mantenimiento de un producto software, abarcamdo la vida del
sistema desde la definicin de los requisitos hasta la
finalizacin de su uso.
Tema 8

JAGM/JOE

27

Ciclo de Vida del Software


Procesos del Ciclo de Vida
Norma ISO 12207-1 Actividades del Ciclo de Vida se agrupan en 5
procesos principales, 8 procesos de soporte y 4 procesos generales.
PROCESOS DE SOPORTE
DOCUMENTACION

PROCESOS PRINCIPALES

GESTION DE CONFIGURACION
ADQUISICION
ASEGURAMIENTO DE CALIDAD
SUMINISTRO

VERIFICACION
VALIDACION

EXPLOTACION
DESARROLLO

REVISION CONJUNTA
MANTENIMIENTO

AUDITORIA
RESOLUCION DE PROBLEMAS

PROCESOS DE LA ORGANIZACION
GESTION

INFRAESTRUCTURA

MEJORA

FORMACION

Tema 8
JAGM/JOE

28

14

Ciclo de Vida del Software


Modelo en Cascada (Waterfall)
[ROYCE-70][BOEHM-81][SOMMERVILLE-85][SIGWART-90]
Analisis
Requisitos
Sistema
Analisis
Requisitos
Software
Diseo
Preliminar
Diseo
Detallado
Codificacin y
Pruebas
Explotacin y
Mantenimiento

Tema 8
JAGM/JOE

29

Ciclo de Vida del Software


Modelo Incremental [LEHMAN-84]
Crear sistema aadiendo componentes funcionales (incrementos)
En cada paso se actualiza el sistema con nuevas funcionalidades y
requisitos
Incremento 1
Analisis
Requisitos
Sistema

Diseo
Detallado
Codificacin y
Pruebas

Analisis
Requisitos
Software

Explotacin y
Mantenimiento
Incremento 2
Diseo
Preliminar
Diseo
Detallado
Codificacin y
Pruebas
Explotacin y
Mantenimiento

JAGM/JOE

Tema 8
30

15

Ciclo de Vida del Software


Modelo en Espiral [BOEHM-88]
Consta de una serie de ciclos
Cada uno empieza identificando los objetivos, las alternativas y las
restricciones del ciclo
Una vez evaluadas las alternativas respecto a los objetivos y
teniendo en cuenta las restricciones, se lleva a cabo el ciclo
correspondiente para, una vez finalizado empezar a plantear el
prximo.

Tema 8
JAGM/JOE

31

Ciclo de Vida del Software


Modelo en Espiral [BOEHM-88]
Determinar
objetivos,
alternativas,
restricciones

Evaluar alternativas,
identificar y resolver
los riesgos

Analisis de Riesgos

Analisis de Riesgos
Prototipo
Operativo

Analisis de
Riesgos
Prototipo 3
Prototipo 2
Analisis de
Riesgos Prototipo 1
Plan de Requisitos
Plan del Ciclo de Vida
Plan de
Desarrollo

Planificar las fases


siguientes

Plan de
Integracin
y Pruebas

Simulaciones, modelos, benchmarks


Concepto de
Operacin Requisitos Sw
Validacin de
Requisitos

Diseo
Producto Sw

V & V del
diseo

Integracin
y
Prueba de prueba
Implementacin aceptacin

Diseo
detallado

Pruebas
unitarias

Cdigo

Desrrollar, Verficar el
producto del siguiente
nivel

Tema 8
JAGM/JOE

32

16

Modelos para desarrollos O.O.

La programacin O.O. plantea el desarrollo de


sistemas de una manera iterativa e incremental.
El intento de que el cdigo sea reutilizable
incrementa los costes de desarrollo entre un 10% y
un 50%, por lo que es imprescindible un desarrollo
que optimice esta inversin.
Los modelos clsicos no permitan afrontar este tipo
de programacin.
Modelo de Agrupamiento, Modelo fuente, Modelo
Remolino, Modelo Pinball.
Tema 8

JAGM/JOE

33

Metodologas de desarrollo del Software


Conceptos Generales

Conjunto de filosofas, fases, procedimientos,


reglas, tcnicas, herramientas, documentacin y
aspectos de formacin para los desarrolladores de
S.I. [MADDISON-83]
Con una metodologa se intentan cubrir tres
necesidades principales:
z
z

Mejores aplicaciones
Un proceso de desarrollo que identifica productos
intermedios de cada fase de forma que se pueda planificar
y controlar el proyecto
Un proceso estndar en la organizacin
Tema 8

JAGM/JOE

34

17

Metodologas de desarrollo del Software


Caractersticas Principales

Existencia de reglas predefinidas


Cobertura total del ciclo de desarrollo
Verificaciones intermedias
Planificacin y Control
Comunicacin efectiva
Utilizacin sobre un abanico amplio de proyectos
Fcil formacin
Herramientas CASE
Debe contener actividades que mejoren el proceso de
desarrollo
Soporte al mantenimiento
Soporte de la reutilizacin de software
Tema 8

JAGM/JOE

35

Metodologas de desarrollo del Software


Metodologas Estructuradas
Creacin de modelos (procesos, flujos, datos) de una
manera descendente (top-down). Esta visin se
puede enfocar en los procesos, en lo datos o en
ambos:

Metodologas orientadas a procesos


Metodologas orientadas a datos jerrquicos
Metodologas orientadas a datos no jerrquicos
Mixtas

Tema 8
JAGM/JOE

36

18

Ejemplo de programacin convencional


10 CLS
20 A=10
30 INPUT B
40 IF B=A THEN GOTO 50 ELSE GOTO 70
50 PRINT A Y B SON IGUALES
60 GOTO 100
70 IF A>B THEN GOTO 80 ELSE GOTO 90
80 B= B + 1; GOTO 40
90 B= B - 1; GOTO 40
100 END
Tema 8
JAGM/JOE

37

Ejemplo de programacin Estructurada


PROGRAM NUMEROSIGUALES
BEGIN
CLEARSCREEN;
A :=10 ;
INPUT B;
REPEAT
IF B=A THEN PRINT A Y B SON IGUALES
ELSE REDUCEDIFERENCIA(A,B);
UNTIL B=A;
END;
PROCEDURE REDUCEDIFENCIA(A,B);
BEGIN
IF A>B THEN B:= B+1
ELSE B:= B - 1
END
JAGM/JOE

Tema 8
38

19

Metodologas Estructuradas Orientadas a


Procesos

Fundadas sobre el modelo bsico


entrada/proceso/salida.
Se enfocan en la parte del proceso
Autores: DEMARCO, GANE&SARSON,
YOURDON
Especificacin estructurada basada en:
z
z
z

Diagramas de flujo de datos (DFD)


Diccionario de Datos
Especificaciones de Procesos

Tema 8
JAGM/JOE

39

Metodologas Estructuradas Orientadas a


Datos Jerrquicos

Fundadas sobre el modelo bsico


entrada/proceso/salida.
Se enfocan en la parte del proceso
Autores: JACKSON, CAMERON, WARNIER
Se definen las estructuras de datos y a partir de
estas se derivan los componentes procedimentales:
z
z
z

la estructura de control de programa debe ser jerrquica


se deriva de la estructura de datos
el diseo lgico debe preceder y estar separado del fsico

Tema 8
JAGM/JOE

40

20

Metodologas Estructuradas Orientadas a


Datos No Jerrquicos

Los datos son el corazn del S.I.


El modelo esta formado por el conjunto de
entidades bsicas y las interrelaciones entre ellas
Autor: MARTIN y FINKELSTEIN
Cuatro etapas:
z
z
z
z

Planificacin
Anlisis
Diseo
Construccin

Tema 8
JAGM/JOE

41

Metodologas de desarrollo del Software


Metodologas Orientadas a Objetos

En O.O. se examina el dominio del problema como


un conjunto de objetos que interactuan entre s
En las tradicionales : dicotoma entre funciones que
llevan a cabo los programas y datos que se
almacenan en bases de datos
La O.O. propugna un enfoque unificador
Dos enfoques:
z
z

Puros : [OOD-BOOCH][WIRFS&BROCK]
Evolutivos : [OMT-RUMBAUGH] [MARTIN&ODELL]

Segunda generacin: METODO UNIFICADOBOOCH&RUMBAUGH


Tema 8

JAGM/JOE

42

21

Metodologas de desarrollo del Software

Principales Metodologas Oficiales


Metodologa MERISE
Metodologa SSADM
Metodologa MTRICA
z
z
z
z
z
z

Estructurada en fases, mdulos, actividades y tareas


FASE 0 : Plan de Sistemas de Informacin
FASE 1 : Anlisis de Sistemas
FASE 2 : Diseo de Sistemas
FASE 3 : Construccin de Sistemas
FASE 4 : Implantacin de Sistemas

Tema 8
JAGM/JOE

43

La automatizacin del Software (CASE)

Clasificacin del CASE


z

CASE superior (Upper CASE) : concerniente a la fase de


planificacin y gestin del proyecto.

CASE intermedio (Middle CASE) : referidas a la


automatizacin del Anlisis y Diseo de S.I.

CASE inferior (Lower CASE) : pretende la asistencia del


ordenador en la construccin (programacin o generacin
de cdigo) de los S.I.

Tema 8
JAGM/JOE

44

22

La automatizacin del Software (CASE)


Tipos de Herramientas

Diagramacin (dibujo de diagramas estructurados y


creacin de especificaciones grficas)
Generadores de Pantallas e Informes (prototipado
de la interfase de usuario, Repositorios e Informes)
Verificacin y Anlisis
Generadores de Cdigo
Mantenimiento
Planificacin

Tema 8
JAGM/JOE

45

Herramientas de modelado CASE

Tema 8
JAGM/JOE

46

23

Ejemplo: smbolos Oracle

Tema 8
JAGM/JOE

47

Ejemplo: smbolos Oracle

24

Garanta de Calidad del Software (SQA)


Consideraciones previas
Principal fin en la Ingeniera del Software: producir software de
gran calidad
SQA: actividad de proteccin que se aplica a lo largo de todo
el proceso de ingeniera del software.
La SQA engloba:
z
z
z
z
z
z

mtodos y herramientas de anlisis, diseo,codificacin y prueba.


revisiones tcnicas formales que se aplican en cada paso.
estrategia de prueba.
control de la documentacin del software y de los cambios
realizados.
procedimiento que asegure un ajuste a los estndares de
desarrollo.
mecanismos de medida y de informacin.

Tema 8
JAGM/JOE

49

Garanta de Calidad del Software (SQA)


Definicin

Concordancia con los requisitos funcionales y de


rendimiento explcitamente establecidos, con los
estndares de desarrollo explcitamente
documentados y con las caractersticas implcitas
que se espera de todo software desarrollado
profesionalmente.

Tema 8
JAGM/JOE

50

25

Garanta de Calidad del Software (SQA)


Tres puntos importantes:
z
z

Los requisitos del software son la base de las medidas de


calidad.
Los estndares especificados definen un conjunto de
criterios de desarrollo que guan la forma en que se aplica
la ingeniera del software.
La calidad del software queda en entredicho si no se ajusta
a requerimientos implcitos (un buen mantenimiento, etc..).

Tema 8
JAGM/JOE

51

Garanta de Calidad del Software (SQA)

Factores de Calidad del Software.


Los factores que afectan a la calidad del software se pueden
clasificar en dos grandes grupos:
z
z

factores que pueden ser medidos directamente (errores/


KLDC/ unidad de tiempo).
factores que solo pueden ser ledos indirectamente
(facilidad de uso, etc..)

En ambos casos debemos comparar el software con alguna


referencia y llegar a una indicacin de calidad.

Tema 8
JAGM/JOE

52

26

Referencias Internet

Welcome to McGraw-Hill's Online Learning Center


IBM-Rational
http://www106.ibm.com/developerworks/rational/newto/#4
General
Escuela Tcnica Superior de Ingeniera Informtica
UAH
http://www.etsii.uah.es/
Departamente de Ciencias de la Computacin
www.cc.uah.es
Tema 8

JAGM/JOE

53

Bibliografa

J.M. MARTNEZ, L. LPEZ, B. CASTAO, J.A. MALPICA, J.R.


HILERA y J.A. GUTIRREZ. Metodologa de Desarrollo de
Sistemas de Informacin. Ed. Universidad de Alcal, 1995.

GANE, C. & SARSON, T. Anlisis Estructurado de Sistemas. Ed.


El Ateneo, 1990.

HAWRYSZKIEWYCZ, I.T. Introduccin al Anlisis y Diseo de


Sistemas. Ed. Anaya, 1990.

KENDALL, K.E. & KENDALL, J.E. Anlisis y Diseo de Sistemas.


Ed. Prentice-Hall, 1995.

Metodologa de Planificacin y Desarrollo de Sistemas de


Informacin: METRICA Version 3.0. Ed. Ministerio para las
Administraciones Pblicas, 2001.
Tema 8

JAGM/JOE

54

27

También podría gustarte