Está en la página 1de 0

1

Fundamentos de Ingeniera de SW 1
Fundament os de I ngeni era de Sof t war e
Mar c el l o Vi sc ont i y Her nn Ast udi l l o
Departamento de Informtica
Universidad Tcnica Federico Santa Mara
{vi sc ont i,her nan} at i nf .ut f sm.c l
Fundamentos de I ngeniera de SW 2
UTFSM
EXUMBRA SOLEM IN
Present ac i n
z I nstructores
Marcello Visconti
qOficina: F-216
Hernn Astudillo
qOficina: F-118
z Horario & materiales
Clases: Ma-Mi 7-8 y 9-10; sala M.203
Ayudantas y evaluaciones: J u 7-8, M-201 y M-203
www.inf.utfsm.cl/~visconti/ili236/
2
Fundamentos de I ngeniera de SW 3
UTFSM
EXUMBRA SOLEM IN
z Conceptos bsicos de I ngeniera de Software
z El Software: Factores de Calidad
Factores Externos
Factores Internos
z El ciclo de vida de Desarrollo de Software
Ciclo de vida clsico
Ciclo de vida con prototipado
Ciclo de vida evolutivo
z Principios del diseo
Abstraccin
Ocultamiento de Informacin
Modularidad
I nt roduc c i n a l a I ngeni era de Sof t ware
Cont eni do
Fundamentos de I ngeniera de SW 4
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Obj et i vos
z Presentar al alumno los conceptos bsicos relacionados con la
I ngeniera de Software.
z Estudiar diversos ciclos de vida.
z Presentar los principios de ingeniera que se emplean en la etapa de
diseo.
3
Fundamentos de I ngeniera de SW 5
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Conc ept os bsi c os de I ngeni er a de Sof t w ar e [ 1]
z El trmino I ngeniera de Software surge a final de los aos 60 dentro
de una conferencia dedicada a la crisis del software.
z La I ngeniera de Software se define cmo la disciplina tecnolgica
relacionada con la produccin sistemtica y el mantenimiento de
productos de software que son desarrollados y modificados en el
tiempo previsto y dentro de los costos estimados.
El objetivo de la Ingeniera de Software es producir productos de software.
Fundamentos de I ngeniera de SW 6
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Conc ept os bsi c os de I ngeni er a de Sof t w ar e [ 2]
z Los productos de software caen en dos categoras:
Productos genricos: Desarrollados para un mercado (p.ej. MS Office).
Productos a medida: Encargados por un cliente (p.ej. SIGA).
z Productos de software: sistemas de software junto a la documentacin
que describe cmo instalarlo y usarlo.
Documentacin de requerimientos.
Documentacin de diseo.
Cdigo fuente.
Planes de pruebas del sistema.
Principios de operacin.
Instrucciones de instalacin.
Procedimientos de mantenimiento.
Manuales de usuario.
4
Fundamentos de I ngeniera de SW 7
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Conc ept os bsi c os de I ngeni er a de Sof t w ar e [ 3]
z I ngeniera del Software:
Conjunto de mtodos, herramientas y procedimientos para producir
software de gran calidad [R. Pressman]
Mtodos
Herramientas Procedimientos
Ingeniera
de Software
Fundamentos de I ngeniera de SW 8
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Conc ept os bsi c os de I ngeni er a de Sof t w ar e [ 4]
z Los mtodos describen cmo construir tcnicamente el software.
Comprende las actividades de:
Planificacin y estimacin de proyectos.
Anlisis de requisitos.
Diseo.
Codificacin.
Prueba.
Mantenimiento.
z Las herramientas dan soporte automtico o semiautomtico a los
mtodos.
z Los procedimientos relacionan formalmente los mtodos y las
herramientas.
5
Fundamentos de I ngeniera de SW 9
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Fac t or es de c al i dad de Sof t w ar e [ 1]
z La calidad del software es una nocin que puede ser descrita mediante
una serie de factores, que pueden ser:
Externos: observables por los usuarios del producto.
Internos: observables por profesionales de la computacin.
Fundamentos de I ngeniera de SW 10
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Fac t or es de c al i dad de Sof t w ar e [ 2]
z Factores de calidad externos:
Correccin: Capacidad de los productos software de ejecutar exactamente
sus tareas tal cmo estn definidas en su especificacin de
requerimientos.
Robustez: Capacidad de un sistema software para funcionar en situaciones
anormales.
Modificabilidad: Facilidad de un producto para adaptarse al cambio de
especificaciones.
Reusabilidad: Facilidad para ser reutilizado en todo o en parte para nuevas
aplicaciones.
Compatibilidad: Facilidad de los productos software para combinarse unos
con otros.
Eficiencia: Buen uso de los recursos Software y Hardware disponibles.
(cont.)
6
Fundamentos de I ngeniera de SW 11
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Fac t or es de c al i dad de Sof t w ar e [ 3]
z Factores de calidad externos (cont.):
Portabilidad: Facilidad para adaptarse a otros entornos software o
hardware.
Verificabilidad: Facilidad para preparar procedimientos de aceptacin, en
particular datos de prueba, para detectar fallos durante las fases de
validacin y operacin.
Integridad: Capacidad de un sistema para proteger sus documentos
(programas, datos) contra accesos y modificaciones no autorizados.
Facilidad de uso: Capacidad de aprender a manejar un sistema software,
operar con el, preparar datos de entrada, interpretar resultados, etc.
z Factores de calidad internos:
Modularidad: Independencia funcional de los componentes del programa.
Legibilidad: Facilidad de lectura e interpretacin del cdigo del programa
Fundamentos de I ngeniera de SW 12
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e
z Ciclo de vida: Sucesin de etapas por las que atraviesa un producto
software a lo largo de su desarrollo y existencia.
z Existen distintas formas o paradigmas de ciclo de vida:
Clsico.
Clsico con prototipado.
Evolutivo o en espiral.
Prototipado puro.
Combinacin de estilos, etc.
7
Fundamentos de I ngeniera de SW 13
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e: Cl si c o [ 1]
z Propuesto por W. Royce a principios de los aos 70.
z Aplicacin secuencial de una serie de pasos.
z Cada paso genera entradas y documentacin para la siguiente.
Ciclo de vida clsico ideal
Anlisis Diseo Codificacin Integracin
Fundamentos de I ngeniera de SW 14
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e: Cl si c o [ 2]
z El ciclo de vida clsico real tiene la siguiente forma:
Anlisis
Diseo
Codificacin
Mantenimiento
Pruebas
Unitarias
Pruebas de
Integracin
Pruebas de
aceptacin
A todas las fases
8
Fundamentos de I ngeniera de SW 15
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e: Cl si c o [ 3]
z Crticas al ciclo de vida clsico:
Proyectos raramente siguen el flujo secuencial.
Dificultad para establecer los requerimientos al principio del proceso.
Errores detectados tardamente.
Mantenimiento por parcheado (Corregir segn se presenten los
problemas).
Fundamentos de I ngeniera de SW 16
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e: Pr ot ot i pado [ 1]
z Prototipear consiste en construir una versin inicial de un producto, en
la cual se describe la interaccin hombre-mquina sin implementar
completamente la funcionalidad del sistema (prototipo sin
funcionalidad).
z Utilidad:
Ayuda a los analistas a establecer las necesidades del cliente.
Ayuda a los desarrolladores a mejorar los productos.
9
Fundamentos de I ngeniera de SW 17
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e: Pr ot ot i pado [ 2]
Anlisis
Construccin
del Prototipo
Diseo
Validacin
Especificacin
Fundamentos de I ngeniera de SW 18
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e: Pr ot ot i pado [ 3]
z Clases de prototipos:
Vertical: desarrolla completamente algunas de las facetas del producto.
Horizontal: desarrolla parcialmente todas las facetas del producto.
Evolutivo: La versin final es el producto ya construido.
Desechable: Se usa sola para la captacin de requerimientos y
funcionalidad.
z Observaciones sobre el prototipado:
Facilita la captacin de los requerimientos del cliente.
Reduce el riesgo de parcheado del producto final.
La construccin del prototipo supone una inversin adicional.
El cliente ve funcionando una versin de lo que ser su programa sin
asumir que dicha versin no es robusta ni completa.
10
Fundamentos de I ngeniera de SW 19
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e: Evol ut i vo [ 1]
z Proceso evolutivo (espiral)
Fundamentos de I ngeniera de SW 20
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Ci c l o de vi da de Sof t w ar e: Evol ut i vo [ 2]
z Sistemas OO tienden a evolucionar en el tiempo.
z Modelo evolutivo de proceso acoplado es el mejor paradigma para la
I ngeniera del SW OO.
Fomenta el ensamblaje (reuso) de componentes.
11
Fundamentos de I ngeniera de SW 21
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo
z Los principios fundamentales sobre los que se sustenta la I ngeniera
de Software son:
Abstraccin
Ocultamiento de Informacin
Modularidad
Fundamentos de I ngeniera de SW 22
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Abst r ac c i n [ 1]
z Mecanismos de abstraccin:
Abstraccin de procedimientos o funcional.
Abstraccin funcional con excepciones.
Abstraccin de datos.
Nombre = Procedimiento (v1: T1,..,vn: Tn) Retorna( v1:T1,..,vm:Tm);
requiere
efectos
modifica
12
Fundamentos de I ngeniera de SW 23
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Abst r ac c i n [ 2]
z Abstraccin de procedimientos o funcional.
Relacionada con los procedimientos o funciones de un lenguaje de
programacin.
Proporciona una funcin de un conjunto de entradas a un conjunto de
salidas, pudiendo eventualmente modificar algunas de las entradas.
z Las abstracciones funcionales se pueden especificar con la siguiente
plantilla:
Requiere contiene las precondiciones de la abstraccin.
Modifica lista los parmetros de entradas que son modificados.
Efectos describe cmo transforma las entradas en salidas.
Nombre = Procedimiento (v1: T1,..,vn: Tn) Retorna( v1:T1,..,vm:Tm);
requiere
efectos
modifica
Fundamentos de I ngeniera de SW 24
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Abst r ac c i n [ 3]
z Ejemplos de abstracciones funcionales.
Concatenar = Procedimiento( a, b: String ) Retorna( c: String );
efectos: devuelve en c la concatenacin de los strings a y b.
Buscar = Procedimiento( a: array[integer , x:integer) Retorna( i: integer );
requiere: a ordenado en orden ascendente.
efectos: Si x ocurre en a, retorna la posicin que ocupa. En otro caso i es
igual al tamao del vector mas uno.
Quitar_Duplicados = Procedimiento( a: array[integer ) Retorna( );
modifica: a
efectos: quita los elementos duplicados de a.
13
Fundamentos de I ngeniera de SW 25
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Abst r ac c i n [ 4]
z Abstracciones funcionales con excepciones.
Contienen ms de un estado de terminacin.
Proporcionan un conjunto de funciones, de la forma:
Procedimiento: Dominio --> Rango.
Dominio = Do U D1 U.. Dn
Rango = Ro U R1 U.. Rn
Procedimiento: Do --> Normal(Ro)
Procedimiento: D1 --> Excepcional(R1).
.....
Procedimiento: Dn --> Excepcional(Rn)
Fundamentos de I ngeniera de SW 26
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Abst r ac c i n [ 5]
z Ejemplo de abstracciones funcionales con excepciones:
Nombre = Procedimiento(v1: T1,.., vn: Tn)
Retorna( v1:T1,..,vm:Tm)
Seala( NombreExcepcion1( v1:T1,...,vn:Tk),
...
NombreExcepcionn(...));
Buscar = Procedimiento(a:array[int ] , x: int) Retorna( i:int)
Seala( No_Ocurre, No_Ordenado, Ocurre(num:int )
efectos: Si a no esta ordenado en orden ascendente seala no_ordenado.
Seala No_Ocurre si x no ocurre. Si x ocurre una vez devuelve su posicin.
Si ocurre varias seala Ocurre, siendo Num el nmero de veces.
14
Fundamentos de I ngeniera de SW 27
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Abst r ac c i n [ 6]
z Abstracciones de datos.
Relacionadas con el concepto de tipo abstracto de datos.
Una abstraccin de datos est formada por un conjunto de objetos y un
conjunto de operaciones (abstracciones funcionales) que manipulan esos
objetos.
Se puede emplear la siguiente plantilla:
Nombre = Tipo de datos es Operacion1, Operacion2, ..., Operacionn
Descripcin
Operaciones
Fin Nombre
Fundamentos de I ngeniera de SW 28
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Abst r ac c i n [ 7]
z Ejemplo de abstraccin de datos:
Conjunto_Enteros = Tipo de datos es Crear, Insertar, Miembro_de, Elegir, Tamao
Descripcin: El tipo representa conjuntos no acotados de enteros
Operaciones
Crear = Procedimiento() Retorna( S: Conjunto_Enteros )
Efectos: Devuelve un conjunto vaco de enteros.
Insertar = Procedimiento( S: Conjunto_Enteros, x: Int)
Modifica: S
Efectos : Aade x a S.
...
Fin Nombre
15
Fundamentos de I ngeniera de SW 29
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Oc ul t ami ent o de i nf or mac i n
z Principio de ocultamiento de informacin:
Los mdulos de un sistema deben disearse de modo que la informacin
contenida en ellos sea inaccesible a todos aquellos mdulos que no
necesiten tal informacin (David Parnas, 1970)
INTERFAZ
DATOS INTERNOS
Fundamentos de I ngeniera de SW 30
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Modul ar i dad [ 1]
z Modularidad:
Un mtodo de diseo software se dice que es modular si ayuda a los
diseadores a construir sistemas software formados por elementos
autnomos y organizados en arquitecturas sencillas.
z Guas de modularidad:
Pocas interfaces.
Interfaces estrechas.
Interfaces explcitas.
16
Fundamentos de I ngeniera de SW 31
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Modul ar i dad [ 2]
z Pocas interfaces:
En un sistema formado por N mdulos, el nmero de conexiones entre
ellos debe acercarse ms al nmero mnimo que al mximo
Menos adecuado Ms adecuado
Comunicacin
Modulo1 Modulo 3
Modulo 2
Modulo 4
Modulo1 Modulo 3
Modulo 2
Modulo 4
Fundamentos de I ngeniera de SW 32
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo: Modul ar i dad [ 3]
z I nterfaces estrechas: Si dos mdulos se comunican deben de
intercambiar el mnimo de informacin posible.
z I nterfaces explcitas: La comunicacin entre dos mdulos debe poder
deducirse a partir del texto de ambos.
Mdulo1 Mdulo2
datos
globales
Mdulo1 Mdulo2
datos entrada
datos salida
17
Fundamentos de I ngeniera de SW 33
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Pr i nc i pi os del di seo
z Aunque los computadores han tenido mucho xito, la experiencia
diaria de uso de computadores es asociada muchas veces con
dificultad, pena y otras barreras para la mayora de la gente... La falta
de usabilidad del software y un diseo pobre de los programas son
una vergenza secreta de la industria.
(Mitchell Kapor, Software Design Manifesto, 1990)
Fundamentos de I ngeniera de SW 34
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Resumen
z Conceptos bsicos de I ngeniera de Software
z El Software: Factores de Calidad
Factores Externos
Factores Internos
z El ciclo de vida de Desarrollo de Software
El ciclo de vida clsico
El ciclo de vida clsico con prototipado
El ciclo de vida evolutivo
z I ngeniera de Software
Principios de Ingeniera en la etapa de diseo
18
Fundamentos de I ngeniera de SW 35
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Qui z
z Explique el aporte y la relacin entre mtodos, herramientas y
procesos de I ngeniera de Software.
z Porqu queremos productos de calidad?
z Qu es un ciclo de vida?
z Porqu se dice que el ciclo de vida evolutivo es mejor?
Fundamentos de I ngeniera de SW 36
UTFSM
EXUMBRA SOLEM IN
I nt roduc c i n a l a I ngeni era de Sof t ware
Qui z
z Explique las causas del
fenmeno definido en el
dibujo.