Sie sind auf Seite 1von 54

EPS,Informtica

Tema 1

Introduccin a la Ingeniera del


Software

EPS,Informtica

Indice
Software.
Ingeniera del Software.
Producto y Proceso.
Principios de la Ingeniera del Software.

EPS,Informtica

Indice

Software.
Definicin.
Caractersticas.
Evolucin hacia ingeniera.
Progreso de las tcnicas.
Crisis del Software.

Ingeniera

del Software.
Producto y Proceso.
Principios de la Ingeniera del Software.
3

EPS,Informtica

Software: Definicin
Software =
Programas

Lneas de Cdigo

Datos

Estructuras de
datos

Documentacin

Manual de usuario
Documentacin
de construccin...

Desarrollo+Mantenimiento

EPS,Informtica

Software: Caractersticas (I)

Es un elemento lgico y no fsico.

Es desarrollado, no fabricado.

Se deteriora.

No

hay piezas de repuesto.

Se construye a medida.
5

EPS,Informtica

Fallos

Fallos hardware

Fallos software (Ideal)


Entrega

Entrega

Tiempo
desarrollo

desgaste

desarrollo

mantenimiento

Tiempo

Fallos software (Real)


Entrega

Fallos

Fallos

Software: Caractersticas (II)

curva real

curva ideal
desarrollo cambio1cambio2 cambio3 Tiempo

EPS,Informtica

Software: Caractersticas (III)

El software es algo vivo

EPS,Informtica

Software: Caractersticas (IV)


Un sistema software debe ser...
Fcil

de mantener.

Construido y documentado para permitir cambios.


Fiable.

Debe hacer lo que se espera de l, no debe fallar ms a


menudo de lo que se acord en la especificacin.

Eficiente.
No debe hacer uso innecesario de recursos.

Fcil

de usar.

Interfaz de usuario adecuada.

EPS,Informtica

Software: Caractersticas (V)


Algunos de estos atributos son exclusivos.
Relacin Coste-Eficiencia

700
600
500
400
300
200
100
0
Coste

Coste

Coste

55 60 65
50
45
30 35 40
25
20
10 15
Eficiencia
9

EPS,Informtica

Software: Evolucin hacia ingeniera (i)


Ciencia
Produccin

Ingeniera
Profesional
Comercializacin

Artesana
Virtuosos y aficionados
con talento
Diseo basado en la intuicin
y en la laboriosidad
Progreso incierto.
Transmisin lenta y azarosa
de los conocimientos.
Uso caprichoso de las
materias primas.
Manufactura destinada ms
al uso que a la venta.

Artesanos preparados.
Procedimientos establecidos.
Mejoras dictadas por la
experiencia.
Formacin mecnica.
Preocupacin econmica por
el costo y el suministro de
materias primas.
Manufactura destinada a la
venta.

Profesionales debidamente
formados.
Anlisis y teora.
El progreso se basa en el
saber.
El anlisis permite nuevas
aplicaciones.
Segmentacin del mercado
por la variedad de productos.
10

EPS,Informtica

1956

1970
1980
1990

Aceptacin creciente de
los mtodos de
programacin estructurada
Lenguajes de 4
Generacin
Reusabilidad

Software: Evolucin
hacia ingeniera(ii)

IBM inventa el Fortran

1965

Algoritmos y Estructuras
de datos

1970

1er compilador de Pascal

1972

Lenguajes de Orientacin
a Objetos

1978

Nace el Lenguaje C

Ciencia

Produccin

Ingeniera Informtica
Profesional
Comercializacin

Artesana
1950
1970
1990

Programas pequeos e
intuitivos
Programas grandes con
xito eran una excepcin
Se continuan haciendo
programas sin metodologa.

1990
1970

Empresas de Servicios
Informticos

1980

Control de Produccin

1985

Marketing

Profesionales cada vez


mejor formados
Metodologas
Equipos de desarrollo
Automatizacin
11

EPS,Informtica

Software: Evolucin hacia ingeniera (iii)


90

80,3

1987-1991
1992-1996

80
70

1997

60,4

P o rcen taje

60
50

1998
1999

42,2
35,8

40
30

2000

32,8 34,9
22,7

20

14,2

12,1

17,4 19,5

6,8

10

2001
2002

2,2

4,3 5,3
0,8 0,5

3,3 4,6

0
Inicial

Repetible

Definido

Gestionado

Optimizado

Niveles CMM
12

EPS,Informtica

Software: Progreso de tcnicas en su


construccin (I)
Programacin de cualquier modo
Programacin a pequea escala
Programacin a gran escala

13

EPS,Informtica

Software: Progreso de tcnicas en su


construccin (II)
1950-65

1965-75

Problemas
tpicos

Programas
pequeos

Datos

Informacin
simblica

Algoritmos y
programacin
estructurada
Estructuras y
tipos de Datos

Control

Diagramas
elementales de
flujo
Ninguno

Programas que
se ejecutan 1
vez y terminan
Individual

Ensamblador

Lenguajes de
Programacin.
Compiladores

Gestin

Herramientas
y Mtodos

1975Interfaces,
Herramientas, Tiempo
real, Distribucin.
Bases de Datos
Programas
ejecutndose
continuamente
Equipo de desarrollo
Mantenimiento
Garanta de Calidad
Mtricas
Documentacin.
4GL
14
CASE

EPS,Informtica

Software: Crisis del Software (I)

Causas.

Sntomas.

Consecuencias.

Solucin.

15

EPS,Informtica

Software: Crisis del Software (II)

Causas:
Hardware

ms potente.
Mayor demanda.
Falta de metodologas y tcnicas (hasta hace poco).
Uso inadecuado de recursos.
Sistemas ms complejos.
Poca informacin de los desarrolladores.
16

EPS,Informtica

Software: Crisis del Software (III)

Sntomas:
Productividad de los desarrolladores: baja en relacin a la
demanda.
Expectativas: los sistemas no responden a las expectativas de los
usuarios.
Fiabilidad: Los programas fallan a menudo.
Calidad: No es adecuada.
Costes: Difciles de predecir, a menudo sobrepasan lo esperado.
Mantenimiento: Modificacin del sw costosa y compleja.
Plazos: No se cumplen.
Portabilidad: Difcil cambiar de plataforma.
Eficiencia: No hay aprovechamiento ptimo de recursos.

17

EPS,Informtica

Software: Crisis del Software (IV)

Consecuencias:

Baja productividad.

Baja calidad.

18

EPS,Informtica

Software: Crisis del Software (V)

Solucin:
Aplicar la Ingeniera del Software en la
construccin de Sistemas Informticos.

La necesidad de un enfoque de ingeniera en el


desarrollo del software fue propuesta en una
conferencia de la OTAN en 1968.

19

EPS,Informtica

Indice
Software.

Ingeniera del Software.


Desafos.
Definicin.
Objetivos.
Diferencias con otras ingenieras.
Disciplinas que la componen.
Fundamentos y tcnicas.
Actividades del Ingeniero del Software

Producto y Proceso.
Principios de la Ingeniera del Software.

20

EPS,Informtica

Ingeniera del Software:


Desafos (I)

Reducir el coste y mejorar la calidad del software.

Explotar y aprovechar el potencial proporcionado


por el hardware

21

EPS,Informtica

Ingeniera del Software:


Desafos (II)

Desarrollar y mantener software asegurando:


Calidad.
Fiabilidad.
Facilidad de uso
Imposibilidad de maluso

...de tal manera que el humano dirija el ordenador y


no al revs.
22

EPS,Informtica

Ingeniera del Software:


Desafos (III)

Existen muchas clases de software:


De sistemas.
De tiempo real.
De gestin.
Cientfico.
De Inteligencia Artificial.
Empotrado.
Para PC.
...

23

EPS,Informtica

Ingeniera del Software:


Desafos (IV)
...pero existen mtodos y procedimientos
comunes para construir buen software

24

EPS,Informtica

Ingeniera del Software:


Desafos (V)
Objetivos
del Proyecto

implican

fija
r

Es

Cultura de
Ingeniera del Software

na
da

Acciones
individuales

refuerzan

u
Ay

el
fun
da
me
nto

de

define

Tcnicas

an
refuerz

refue
rzan

Prioridades de
Gestin

25

EPS,Informtica

Ingeniera del Software:


Definicin (I)
El establecimiento y uso de principios de
ingeniera robustos, orientados a obtener
economicamente software que sea fiable y funcione
eficientemente sobre mquinas reales

Fritz Bauer.
26

EPS,Informtica

Ingeniera del Software:


Definicin (II)
La aproximacin sistemtica al desarrollo,
operacin y mantenimiento del software.

Software: programas de ordenador, procedimientos,


reglas, documentacin y datos asociados a un
sistema de ordenador.
IEEE Standard Glossary of Software Engineering
27
(IEE83).

EPS,Informtica

Ingeniera del Software:


Objetivos (I)

El principal (comn a todas las ingenieras)


Construir instrumentos (HW, SW) que ayuden o
faciliten al ser humano la realizacin de alguna
tarea

28

EPS,Informtica

Ingeniera del Software:


Objetivos (II)
Conseguir un producto Software fiable, de alta
calidad y bajo coste.

Conducir un proceso de desarrollo y mantenimiento


software de manera eficiente y con xito.

Realizar un proyecto software


no es (slo) programar
29

EPS,Informtica

Ingeniera del Software:


Objetivos (III)
Actuar sobre las causas de la crisis del software:
Mejorar la calidad de los productos software.

Aumentar la productividad de los ingenieros del software.

Facilitar el control y seguimiento del proceso de desarrollo.

Suministrar a los desarrolladores las bases para construir software


de alta calidad de forma eficiente.

Definir una disciplina que garantice la produccin sistemtica y el


mantenimiento de los productos software desarrollados en el plazo
30
fijado y dentro del coste estimado.

EPS,Informtica

Ingeniera del Software:


Diferencias con otras Ingenieras
Ingenieras:

Construyen instrumentos que imitan, aumentan, ayudan,


facilitan o sustituyen capacidades fsicas del ser
humano.
Ingeniera del Software:

Construyen instrumentos que imitan, aumentan, ayudan,


facilitan o sustituyen capacidades psquicas del ser
humano (imitan y ayudan al ser humano en su
31
capacidad de resolucin de problemas).

EPS,Informtica

Ingeniera del Software:


Disciplinas que la componen
Ingeniera

Economa
Gestin
Informtica

Psicologa

32

EPS,Informtica

Ingeniera del Software:


Fundamentos y tcnicas (i)

Mtodos:
Definen cmo construir el software desde el punto de vista tcnico.

Herramientas:
Proporcionan un soporte automtico o semi-automtico para los
mtodos.

Procedimientos.
Punto de unin entre mtodos y herramientas. Definen la secuencia en
la que se aplican los mtodos, cmo usar las herramientas, las
entregas que se requieren, controles de seguimiento y calidad, guas
para facilitar la labor de gestores y desarrolladores, etc.
33

EPS,Informtica

Ingeniera del Software:


Fundamentos y tcnicas (ii)
Mtodos:
Planificacin y estimacin de proyectos.
Anlisis de requisitos.
Diseo.
Codificacin.
Pruebas.
Mantenimiento.

Herramientas:
CASE.
CAD, ...

Procedimientos.

34

EPS,Informtica

Ingeniera del Software:


Fundamentos y tcnicas (iii)

Mtodos

Herramientas

Procedimientos
Actan sobre

Procedimientos
Mtodos

Herramientas
35

EPS,Informtica

Ingeniera del Software:


Otras tcnicas de apoyo

Abstracciones:
Modelos

de ciclo de vida.
Principios de las distintas fases, ...

Representaciones:
Notaciones

y lenguajes.
Diagramas de GANTT
Lenguaje Z,...

Evaluaciones:
Mediciones

(sobre proceso y producto).

36

EPS,Informtica

Ingeniera del Software:


Actividades del Ingeniero del SW (I)

El Ingeniero del Software debe:


Trabajar en equipo.
Analizar y estudiar problemas.
Trabajar bajo restricciones de tiempo, costes y

recursos.
Interactuar con clientes y usuarios.
Tomar decisiones.
...
37

EPS,Informtica

Ingeniera del Software:


Actividades del Ingeniero del SW (II)

Tipo de actividades:

de desarrollo.

de control.

de gestin.

de operacin.
38

EPS,Informtica

Ingeniera del Software:


Actividades del Ingeniero del SW (III)

Actividades de desarrollo:
Decidir qu hacer.
Decidir cmo hacerlo.
Hacerlo.
Probar el producto.
Usar el producto.
Mantener el producto.
...

(Anlisis)
(Diseo)
(Codificacin)
(Pruebas)
(Entrega/Instalacin)
(Mantenimiento)
39

EPS,Informtica

Ingeniera del Software:


Actividades del Ingeniero del SW (IV)
Anlisis

Diseo

Estudio de Viabilidad.
Educcin de requisitos.
Anlisis de requisitos.
Modelado del sistema.
Maquetaje.
...

Arquitectnico.
Detallado.
Interfaz de usuario.
Datos.
...

Construccin

Mantenimiento

Correctivo.
Perfectivo.
Adaptativo.
...

Codificacin.
Documentacin.
Debug
...

Validacin y Verificacin

Inspecciones y revisiones.
Planificacin de pruebas.
Pruebas de unidad.
Pruebas de integracin.
Pruebas de regresin.

Pruebas del sistema.


Pruebas de aceptacin.
...
40

EPS,Informtica

Ingeniera del Software:


Actividades del Ingeniero del SW (V)
Actividades de Control: se ocupan de evaluar y
asegurar la calidad del software.

Mtricas.
Garanta de calidad.
Gestin de configuraciones.
...

41

EPS,Informtica

Ingeniera del Software:


Actividades del Ingeniero del SW (VI)

Actividades de Gestin:
Planificacin y estimacin.
Seguimiento de los proyectos.
Administracin de proyectos.
Direccin de proyectos.
...

42

EPS,Informtica

Ingeniera del Software:


Actividades del Ingeniero del SW (VII)

Actividades de Operacin:
Entrega (e instalacin).
Puesta en marcha.
Formacin a los usuarios.
...

43

EPS,Informtica

Ingeniera del Software:


Actividades del Ingeniero del SW (VIII)
Realizar un proyecto software
no es (slo) programar

El proceso de construir software


es una actividad de resolucin
de problemas
44

EPS,Informtica

Indice
Software.
Ingeniera del Software.

Producto y Proceso.
Principios de la Ingeniera del Software.

45

EPS,Informtica

Producto y Proceso

Problema o
necesidad

Proceso software

Desarrollo

Control

Producto
(Solucin SW)

Gestin Operacin

46

EPS,Informtica

Indice
Software.
Ingeniera del Software.
Producto y Proceso.

Principios de la Ingeniera del Software.


Teora de las 4 Cs
Principios de la Ingeniera del Software
Principios para una cultura empresarial de
ingeniera del software.

47

EPS,Informtica

Teora de las 4 Cs

Ser Coprnico:
El sistema que se est construyendo no es el centro del universo, ni va a
estar aislado.

Ser Convencional:
Los usuarios aceptan mejor las tcnicas convencionales.

Ser Conservador:
Si en un proyecto no se introducen demasiados cambios, se minimizan
los riesgos y se maximizan las posibilidades de financiarlo con xito.

Tener Confianza:
No es imposible acabar los proyectos software con xito: manteniendo
una disciplina en el desarrollo y revisando peridicamente los objetivos
y
48
resultados.

EPS,Informtica

Principios de la Ingeniera del


Software (I)

Haz de la calidad la razn de trabajar.

Una buena gestin es ms importante que una buena tecnologa.

Las personas y el tiempo no son intercambiables.

Seleccionar el modelo de ciclo de vida adecuado.

Entregar productos al usuario lo ms pronto posible.

Determinar y acotar el problema antes de escribir los requisitos.

Realizar un diseo.

Minimizar la distancia intelectual.

49

EPS,Informtica

Principios de la Ingeniera del


Software (II)

Documentar.

Las tcnicas son anteriores a las herramientas.

Primero hazlo correcto, luego hazlo rpido.

Probar, probar y probar (** incluye inspecciones **).

Introducir las mejoras y modificaciones con cuidado.

Asuncin de responsabilidades.

La entropa del Software es creciente.

La gente es la clave del xito.

50

EPS,Informtica

Principios para una cultura de


Ingeniera del Software (I)

Nunca dejes que tu jefe o cliente te convenza para hacer un mal trabajo.

La gente necesita sentir que su trabajo es apreciado.

La educacin continua es responsabilidad de cada miembro del equipo.

El

compromiso del cliente es el factor ms crtico en la calidad del


software.

Tu mayor desafo es compartir la visin del producto final con el cliente.

La mejora continua de tu proceso de desarrollo de software es posible y


esencial.

Tener procedimientos escritos de desarrollo de software puede ayudar a


51
crear una cultura compartida de buenas prcticas.

EPS,Informtica

Principios para una cultura de


Ingeniera del Software (II)
La calidad es el principal objetivo; la productividad a largo plazo es una
consecuencia de una alta calidad.

Haz que los errores los encuentre un colaborador y no un cliente.

Una clave en la calidad en el desarrollo de software es realizar


iteraciones en todas las fases del desarrollo excepto en la codificacin.

La gestin de errores y solicitud de cambios es esencial para controlar la


calidad y el mantenimiento.

Si mides lo que haces, puedes aprender a hacerlo mejor.

Haz lo que tenga sentido; no recurras a los dogmas.

No puedes cambiar todo de una vez. Identifica los cambios que se


52
traduzcan en los mayores beneficios, y comienza a implementarlos.

EPS,Informtica

Resumen Tema 1

Software = Programas + Datos + Documentacin.

La I.S. ha tenido una evolucin similar al resto de las ingenieras


pero mucho ms rpida.

Lo anterior, las caractersticas peculiares del sw y la ayuda a


mejorar las capacidades psquicas del ser humano, constituyen las
grandes diferencias entre la i.s. y las dems ingenieras.

La i.s. surge como respuesta a la crisis del software.

La i.s. se enfoca en el producto y proceso de software.


53

EPS,Informtica

Resumen Tema 1
Producto: rentable, fiable, de calidad, eficiente, que cumpla con
los requisitos, etc.

Proceso: con xito, eficiente, de calidad, controlado, etc.

La i.s. se apoya en fundamentos (mtodos, herramientas y


procedimientos) y tcnicas (abstracciones, representaciones,
evaluaciones) para conseguir sus objetivos.

El ingeniero del software trabaja en equipo y puede llevar a cabo


diversas actividades (desarrollo, control, gestin y operacin).

54

Das könnte Ihnen auch gefallen