You are on page 1of 34

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

You might also like