UNIVERSIDAD PERUANA LOS
ANDES
FACULTAD DE INGENIERA
CARRERA PROFESIONAL DE INGENIERA DE SISTEMAS
INGENIERA DE SOFTWARE
Docente: Mg. Ing. Angel Fernando Navarro Raymundo
01
SESIN
Presentacin
Asignatura
: Ingeniera de Software
Horario : Martes 6:00 a 8:15 pm.
y Viernes 6:00 a 7:30 pm.
Docente : Mg. Ing. Angel Fernando Navarro Raymundo
Contenido: 4 unidades
Ingeniera de Software - Mg. Ing. Angel F. Navarro Raymundo
Contenido
METODOLOGIAS DE DESARROLLO
DE SOFTWARE
TOPICOS AVANZADOS DE
INGENIERIA DE SOFTWARE
GESTION DE
PROYECTOS DE TI
PRUEBAS Y MANTENIMIENTO
DEL SOFTWARE
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Ingeniera de Software
Sesin 1
METODOLOGIAS DE
DESARROLLO DE
SOFTWARE
Mg. Ing. Angel Fernando Navarro Raymundo
AGENDA
1. Definicin de Ingeniera de Software.
2. Historia de la Ingeniera de Software.
3. Proceso de Ingeniera de Software.
4. Elementos de la Ingeniera de Software.
5. Herramientas CASE. .
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Definicin de Ingeniera de Software
El termino Ingeniera de
Software fue acuado en
1969 en el transcurso de un
curso de verano de la OTAN
en Garmisch.
Disciplina o rea de la
Ingeniera que ofrece
mtodos y tcnicas para
desarrollar
y
mantener software.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Definicin de Ingeniera de Software
Ingeniera de Software trata del establecimiento de los principios y mtodos de la
ingeniera a fin de obtener software de modo rentable, que sea fiable y trabaje en
mquinas reales (Bauer, 1972).
Ingeniera de software es la aplicacin prctica del conocimiento cientfico al diseo y
construccin de programas de computadora y a la documentacin asociada
requerida para desarrollar, operar y mantenerlos. Se conoce tambin como
Desarrollo de Software o Produccin de Software ( Bohem, 1976).
Ingeniera de Software es el estudio de los principios y metodologas para el
desarrollo y mantenimiento de sistemas software (Zelkovitz, 1978)
Es la aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo,
operacin y mantenimiento del software; es decir, la aplicacin de la ingeniera al
software (IEEE, 1993).
Segn Alan Davis como la aplicacin inteligente de principios
probados, tcnicas, lenguajes y herramientas para la creacin y
mantenimiento, dentro de un coste razonable, de software que
satisfaga las necesidades de los usuarios
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Historia de la Ingeniera de Software
La era
pionera
De 1965 a 1985: La
Crisis del Software
De 1990 a 1999:
Prominencia de Internet
Tendencias actuales
en la ingeniera de
software
2013
1940
De 1945 a 1965:
Los orgenes
Aspectos
gil
Experimenta
Model-driven
Lneas de productos de
software
De 1985 a 1989: No
hay balas de plata.
De 2000 en adelante:
Metodologas ligeras
La ingeniera de
software hoy
Proyectos de software
Software
Engineering
Body
of
Knowledge SWEBOK ha sido presentado
como un estndar ISO durante 2006
(ISO/IEC TR 19759)
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Figuras prominentes en la historia
Charles Bachman (nacido en 1924) es particularmente conocido por
su trabajo en el rea de bases de datos.
Laszlo Belady (nacido en 1928) el editor en jefe de la IEEE
Transactions on Software Engineering en la dcada de 1980
Fred Brooks (nacido en 1931) conocido por el desarrollo del OS/360.
Peter Chen conocido por el desarrollo del modelo entidad-relacin.
Edsger Dijkstra (19302002) desarroll el marco para la
programacin adecuada.
David Parnas (nacido en 1941) desarroll el concepto
de ocultamiento de informacin en la programacin modular.
Michael A. Jackson (nacido en 1936) experto en Ingeniera de
software responsable del mtodo de diseo de programa JSP; el
mtodo de desarrollo de sistema JSD (con John Cameron); y marcos
de problema para el anlisis y estructuracin de los problemas de
desarrollo de software.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Proceso de Ingeniera de Software
Proceso
Es un conjunto de actividades interrelacionadas que transforman entradas en
salidas.
(ISO 12207/UNE 77104).
Proceso de Ingeniera de Software
Es un conjunto coherente de polticas, estructuras
organizacionales,
tecnologas, procedimientos y artefactos que son necesarios para concebir,
desarrollar, instalar y mantener un producto software.
(Fugetta, 2000).
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Proceso de Ingeniera de Software
Conjunto estructurado de actividades requeridas para desarrollar
un software.
Especificacin: que debe hacer el software y cuales son sus
especificaciones de desarrollo.
Desarrollo: produccin del sistema de software.
Validacin: verificar que el software hace lo que el cliente pide.
Evolucin: cambiar/adaptar el software a las demandas
Especificacin: Establecer los requerimientos y restricciones del sistema.
Diseo: Producir un modelo en papel del sistema.
Manufactura: Construir el sistema.
Prueba: Verificar que el sistema cumpla con las especificaciones
requeridas.
Instalacin: Entregar el sistema al usuario y asegurar su operacionalidad.
Mantenimiento: Reparar fallos en el sistema.
Ingeniera de Software - Mg. Ing. Angel F. Navarro Raymundo
Desarrollo de Software
Lo que el director
desea
Cmo lo define el
director de proyecto
Cmo lo desarrolla el Cmo se ha realizado la
programador
instalacin
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Cmo se disea el
sistema
Lo que el usuario
quera
Caractersticas del Proceso del Software
Entendible
Se encuentra el proceso bien definido y es entendible? .
Visible
El proceso es visible al exterior ?
Aceptable
El proceso es aceptado por aquellos involucrados en el ?
Confiable
Los errores del proceso son descubiertos antes de que se conviertan en errores del producto?
Robusto
Puede continuar el proceso a pesar de problemas inesperados?
Mantenible
Puede el proceso evolucionar para cumplir con los objetivos organizacionales?
Rapidez
Qu tan rpido puede producirse el sistema ?
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Ciclo de Vida de Software.
Un modelo de ciclo de vida define el estado de las fases a travs de las
cuales se mueve un proyecto de desarrollo de software.
Una aproximacin lgica a la adquisicin, el suministro el desarrollo, la
explotacin y el mantenimiento del software.
IEEE 1074
Un marco de referencia que contiene los procesos, las actividades y las
tareas involucradas en el desarrollo, la explotacin y el mantenimiento de un
producto de software, abarcando la vida del sistema desde la definicin de los
requisitos hasta la finalizacin de su uso
ISO 12207
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
ISO 12207
Establece un marco de referencia comn para los procesos del
ciclo de vida del software, con una terminologa bien definida,
que puede ser referenciada por la industria del software.
Define los procesos, actividades (que forman cada proceso) y tareas (que
constituyen cada actividad) presentes en la adquisicin, suministro, desarrollo,
operacin y mantenimiento del software.
Segn esta norma, un proceso es un conjunto de actividades
interrelacionadas que transforman entradas en salidas. Un proceso define
quin, qu, cundo, y cmo, para alcanzar un determinado objetivo.
ISO/IEC 12207: Information Technology / Software Life Cycle Processes. 1995.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Procesos del Ciclo de Vida - ISO 12207
Ingeniera de Software - Mg. Ing. Angel F. Navarro Raymundo
Ciclos de Vida Tradicionales
(Modelos)
Modelo Cascada (Bennington 1956)
Modelo V (Ministerio de Defensa de Alemania, 1992):
Modelo Incremental
Modelo prototipo Gomaa en 1984
Modelo en Espiral Barry Boehm en 1988
MODELOS PARA DESARROLLO DE SISTEMAS ORIENTADOS A OBJETOS
MODELO FUENTE Henderson-Sellers Edwars 1990
MODELO CLUSTER (Meyer 1990)
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Modelo Cascada (Bennington 1956):
Ingeniera y Anlisis
El ms conocido, esta
del Sistema
basado en el ciclo
Anlisis de
los Requisitos
convencional de una
Diseo
ingeniera, el
Codificacin
paradigma del ciclo de
Prueba
vida abarca las
Mantenimient
o
siguientes actividades.
Desventajas:
No refleja realmente el proceso de desarrollo del software
Se tarda mucho tiempo en pasar por todo el ciclo
Perpetua el fracaso de la industria del software en su comunicacin
con el usuario final
El mantenimiento se realiza en el cdigo fuente
Las revisiones de proyectos de gran complejidad son muy difciles
Impone una estructura
de gestin de proyectos
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Modelo V (Ministerio de Defensa de Alemania, 1992):
El Modelo V tiende a ser
muy relacionado con el
Modelo de Cascada puesto
que es una evolucin del
mismo.
Desventajas:
ANALISIS DE
REQUERIMIENT
OS
Los planes de prueba son
el nexo entre el desarrollo
y la verificacin
Plan de
Pruebas
de
Aceptacin
Validar
requerimientos
DISEO
DEL
SISTEMA
Plan de
Pruebas
del Sistema
Verificar
diseo
DISEO
DETALLAD
O
Plan de
Pruebas
de
Integracin
IMPLEMENTACIO
N
DE PROGRAMAS
Y
PRUEBA
UNITARIA
OPERACION
Y
MANTENIMIENTO
PRUEBA
DE
ACEPTACI
ON
PRUEBA
DEL
SISTEMA
PRUEBA DE
INTEGRACIO
N
El riesgo es mayor que el de otros modelos, pues en lugar de hacer pruebas de
aceptacin al final de cada etapa, las pruebas comienzan a efectuarse luego de
haber terminado la implementacin, lo que puede traer como consecuencia un
roll-back de todo un proceso que cost tiempo y dinero.
El modelo no contempla la posibilidad de retornar a etapas inmediatamente
anteriores, cosa que en la realidad puede ocurrir.
Se toma toda la complejidad del problema Ingeniera
de unadevez
y no en iteraciones o
Software - Mg. Ing. Angel F. Navarro Raymundo
ciclos de desarrollo, lo que disminuye el riesgo.
Modelo Incremental
En este modelo se desarrolla el sistema para satisfacer un
subconjunto de requisitos especificados y en posteriores versiones se
incrementa el sistema con nuevas funcionalidades que satisfagan
mas requisitos
Desventajas
Se evitan proyectos largos y se entrega
Algo de valor a los usuarios con
cierta frecuencia
El usuario se involucra ms
Difcil de evaluar el coste total
Difcil de aplicar a sistemas
transaccionales que tienden a ser
integrados y a operar como un todo
Requiere gestores experimentados
Los errores en los requisitos se
detectan tarde.
El resultado puede ser muy positivo
Ingeniera de Software - Mg. Ing. Angel F. Navarro Raymundo
Modelo prototipo Gomaa en 1984.
Es un mtodo normal para el desarrollo de nuevas
aplicaciones produce mejores sistemas y con costes ms
bajos.
Desventajas
El cliente puede quedar convencido con las
primeras versiones y, quizs, no vea la
necesidad de completar el sistema o
redisearlo con la calidad necesaria.
Requiere trabajo del cliente para evaluar
los distintos prototipos y traducirlo en
nuevos requisitos
Requiere un tiempo adicional para definir
adecuadamente el sistema
No se sabe exactamente cunto ser el
tiempo de desarrollo ni cuantos prototipos
se tienen que desarrollar
Si un prototipo fracasa, el coste del
proyecto puede resultar muy caro
Ingeniera de Software - Mg. Ing. Angel F. Navarro Raymundo
Modelo en Espiral Barry Boehm en 1988.
En la que cada bucle o iteracin (accin de repetir una serie
de pasos un cierto nmero de veces). representa un
conjunto de actividades.
Desventajas.
Requiere una considerable
habilidad para reconocer los
riesgos.
Si no se detectan los riesgos
a tiempo, surgirn
problemas.
Es nuevo y no se ha utilizado
tanto como otros modelos.
Resulta difcil convencer a
grandes clientes de que el
enfoque evolutivo es
controlable.
Ingeniera de Software - Mg. Ing. Angel F. Navarro Raymundo
MODELOS PARA DESARROLLO DE SISTEMAS
ORIENTADOS A OBJETOS
MODELO FUENTE Henderson-Sellers Edwars 1990
Es el mas conocido en el desarrollo
Orientado a Objetos.
Presenta alto grado de solapamiento/iteracin
entre fases.
Cada clase/agrupamiento tiene un ciclo de vida
propio.
La piscina sw (repositorio de clases) refleja
reutilizacin: el ciclo de desarrollo brota de la
piscina sw.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
MODELO CLUSTER (Meyer 1990)
Cluster: Conjunto de clases relacionadas con un objetivo comn.
Cada subciclo de vida: Especificacin, Diseo y Realizacin, Validacin y
Generalizacin.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
CONSIDERACIONES SOBRE MODELOS OO
Se eliminan fronteras entre fases debido a la naturaleza
iterativa del desarrollo orientado al objeto.
Aparece una nueva forma de concebir los lenguajes de
programacin y su uso al incorporarse bibliotecas de clases y
otros componentes reutilizables.
Hay un alto grado de iteracin y solapamiento, lo que lleva a
una forma de trabajo muy dinmica
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Elementos de la Ingeniera de Software
1. Mtodos o tcnicas: Indican como construir tcnicamente el software.
2. Herramientas: Proporcionan un soporte para el proceso y los mtodos del desarrollo del
software.
3. Procedimientos: Define una forma de trabajo para un conjunto de reas claves.
4. Enfoque de Calidad: Son la base o cimientos de la Ingeniera de Software.
Ingeniera de Software - Mg. Ing. Angel F. Navarro
Raymundo
Herramientas CASE (Computer Aided Software Engineering).
Desde principios de la dcada de 1990, los analistas
empezaron a beneficiarse de las herramientas de
productividad,
denominadas
herramientas
de
ingeniera de Software Asistida por Computadora
(CASE, Competer-Aided Software Engineering), que se
crearon explcitamente para mejorar su trabajo
rutinario mediante apoyo automatizado.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
Uso de herramientas case
Son instrumentos o sistemas automatizados para
realizar algo de la mejor manera posible. Esta manera
ptima puede significar que la herramienta produce
resultados ms exactos, ms eficientes, ms
productivos, o que refuerza la calidad del producto
resultante. Proporcionan un soporte automtico o
semiautomtico para todas las fases del desarrollo y
sistemas que integran las herramientas de cada fase
de manera que sirven para todo el proceso. Estas
herramientas se denominan CASE.
RAZONES PARA EL USO DE LAS
HERRAMIENTAS CASE
Mejora de la comunicacin analista-usuario.
Integracin de las actividades del ciclo de vida.
Evaluar de manera precisa los cambios en el
mantenimiento.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
HERRAMIENTAS CASE DE ALTO NIVEL
Una herramienta CASE de alto nivel da al analista la
posibilidad de crear y modificar el diseo del sistema. Toda la
informacin relacionada con el proyecto se almacena en una
enciclopedia denominada deposito CASE, una enorme
coleccin de registros, elementos, diagramas, pantallas,
informes e informacin diversa Con la informacin del
deposito se podran generar informes que muestren donde
esta incompleto el diseo o donde contiene errores.
Las herramientas CASE de alto nivel tambin pueden apoyar
la modelacin de los requerimientos funcionales de una
organizacin, ayudar a los analistas y usuarios a definir el
alcance de un proyecto determinado y a visualizar la forma en
que el proyecto se combina con otras partes de la
organizacin. Adems, algunas herramientas CASE de alto
nivel pueden ayudar en la creacin de prototipos de diseos
de pantallas e informes
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
HERRAMIENTAS CASE DE BAJO NIVEL
Las herramientas CASE de
bajo nivel se utilizan para
generar cdigo fuerte de
computadora, eliminando
as la necesidad de
programar el sistema. La
generacin de cdigo tiene
varias ventajas.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
CICLO DE VIDA DE DESARROLLO DE SISTEMAS
TRADICIONAL VS. CASE
Las partes de codificacin, prueba y
depuracin del programa se han
eliminado en el ciclo de vida CASE.
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
INGENIERIA INVERSA Y REINGENIERIA DE
SOFTWARE
Son mtodos para alargar la vida de programas anteriores,
conocidos como software de reingeniera asistida por computadora
(CARE, CompeterAssisted Reengineering) para analizar y
reestructurar el cdigo de computadora existente. En el mercado
hay varios conjuntos de herramientas de ingeniera inversa.
La ingeniera inversa es lo opuesto a la generacin de cdigo. El
cdigo fuente de la computadora es examinado, analizado y
convertido en actualidades para el depsito. El primer paso de la
ingeniera inversa de software es cargar, en el conjunto de
herramientas el cdigo de programa existe (tal como se haya
escrito cualquier otro lenguaje de alto nivel). Segn el conjunto de
herramientas producen algunos o todos los elementos siguientes:
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo
INGENIERIA INVERSA Y REINGENIERIA DE
SOFTWARE
Ingeniera de Software - Mg. Ing. Angel F.
Navarro Raymundo