Vous êtes sur la page 1sur 71

CICLO DE VIDA

DEL SOFTWARE

Secuencia de eventos en el desarrollo de un sistema de informacin


(aplicacin), lo cual requiere del esfuerzo mutuo, tanto de parte del
usuario como del equipo tcnico. (Freedman, 1993)

El proceso de desarrollo (las actividades involucradas en el desarrollo


y mantenimiento de software) es un proceso complejo y variable que no
puede ser fcilmente descrito usando un solo modelo. (Sommerville,
1998)

CICLO DE VIDA DEL DESARROLLO DE


SISTEMAS.
Se puede decir que el ciclo de vida es una herramienta de
gestin de proyectos- empleada para planificar, elaborar
y controlar el proyecto de desarrollo de un sistema- y que
involucra tanto a analistas como a ingenieros de software,
programadores, propietarios y usuarios.
Para el ptimo desarrollo de un sistema de informacin se
deben seguir las siguientes fases:

1.Planificacin
2.Anlisis
3.Diseo
4.Implantacin
5.Mantenimiento

Retos en los
negocios

Especificar
Servicios.
Crear
polticas de
distribucin
Administracin
de datos.

Paquetes de
Software
Web
Sistema de
Compraventa
interno

Tecnologa de
informacin

Organizacin

Java

Competencia por
clientes.

Sistema de
informacin

Soluciones
De negocios

Proporcionar datos
de

Ampliar la base

transaccin de bonos
en tiempo real.

Agilizar el flujo

de Clientes

Windows NT

Clientes

interno de

Red
cliente/servid
or.

Personal

informacin.

Operadores.

Es un paradigma de
la programacin,
que proporciona
lineamientos para
desarrollar un
proyecto de sistema
de informacin

Principios Generales para Desarrollar un Sistema de Informacin


Gestionar el proyecto
Establecer estndares
Implicar a los usuarios
Establecer fases y actividades
Dividir el problema y resolverlos uno a uno
Documentar el desarrollo del proyecto
No tener miedo de revisar o cancelar algn objetivo
Disear el sistema con previsin de crecimiento
Utilizar una estrategia de resolucin de problemas
Whitten
(2004)

Justificar al sistema como una inversin de capital

El ciclo de vida de un SI presenta dos estados por los que un sistema


puede pasar

Ciclo de Vida = Proceso de Desarrollo + Mantenimiento

Procesos para el
desarrollo del SI

Uso y mantenimiento
del SI

Implementacin

Planificacin

ETAPAS
3

Diseo

Anlisis

EL CICLO TRADICIONAL DE LOS S.I.


fasesdel
seproceso
deben para
LasLas
etapas
realizar en de
forma
el desarrollo
sistemas
secuencial.
Sin embargo
estn formados
por fases
el analista puede volver a
alguno de los pasos
anteriores

Fases varan de
autor en autor y
segn las
organizaciones
que los usen

FASE N + 1
FASE N
FASE 3
FASE 2

FASE 1

Cada posible conjunto


de fases, actividades,
mtodos,
herramientas, mejores
prcticas, forman una
metodologa diferente

12.1 El ciclo de vida tradicional de los Sistemas


Ciclo de vida de un Sistema de Informacin.
ETAPAS

PRODUCTOS FINALES

Definicin
del proyecto

Informe de propuesta de proyecto


Estudio
de sistemas

Informe de propuesta de
sistemas
Diseo

Especificaciones de diseo
Especificaciones de
Programacin

programas - cdigo

Pruebas de desempeo del


sistema

Instalacin

Postimplementacin

Auditora post-implementacin

OPERACIONES
Punto de revisin 1

Punto de revisin 2

Punto de revisin 3

Iniciacin del
proyecto

Decisin de
solucin de diseo

Aprobacin de
especificacin de
diseo

Ao 1

Ao 2

Vida de 3 a 8 aos

Etapas del ciclo de vida de los


Sistemas

Definicin del Proyecto

Por qu es necesario un
nuevo proyecto de
sistema?
Que se quiere lograr?

Analiza a fondo los problemas


existentes

Estudio de Sistemas

Examina la factibilidad de
cada solucin alterna
Sondear a los usuarios con
cuestionarios,
entrevistas

Etapas del ciclo de vida de los


Sistemas

Diseo

Diseo fsico y lgico de la


solucin.

Traduce las especificaciones


de diseo a cdigo de programa
de software.

Programacin

Java, .net

Etapas del ciclo de vida de los


Sistemas

Instalacin

Pruebas, capacitacin y
conversin.

Uso y evaluacin del sistema.

Post - Implementacin

Mantenimiento del sistema.

Ciclo de Vida de los Sistemas


Anlisis

Diseo

Programacin

Definicin del
problema,
identificacin de
la solucin,
anlisis de
factibilidad,
estimacin de
esfuerzo,
recursos y
duracin, identif.
de riesgos y
especificacin de
requerimientos.

- Si se trata de
realizar el
desarrollo:
Diseo lgico y
Fsico.

-Si se trata de un
nuevo desarrollo:
Codificacin del
sistema.

- Si se trata de
adquisicin de
sistema
existente:
identificacin de
las partes a
customizar y
adaptaciones a
realizar

- Si se trata de
adquisicin de
sistema existente:
configuracin y
parametrizacin
del sistema.

Responde a
QUE

Responde a
COMO

Usuario activo

Prueba

Conversin

Comprobacin del
funcionam. del
sistema:
- Pruebas unitarias
- Prueba de
Sistemas
- Pruebas de
Aceptacin de
Usuario.

Implantar el nuevo
sistema.
Estrategias
posibles:
- Paralela
- Cambio Directo
- Estudio Piloto
- Por Fases

Produccin

Monitoreo del
sistema para
detectar:
- Errores
- Modificaciones
- Mejoras

Otras Clases de
pruebas.
Capacitaciones

Usuario activo

Usuario activo

Usuario activo

Etapas del Ciclo de Vida Tradicional

Definicin

Anlisis

Diseo

Programacin

Instalacin

Foco puesto en
la definicin del
objetivo,
alcance, la
factibilidad del
proyecto, la
estimacin de
esfuerzo,
recursos y
duracin,
restricciones y
riesgos.

Foco puesto
en elaboracin
de los
requerimientos
planteados en
la etapa
anterior, y en la
planificacin
detallada de
las dos fases
siguientes.

Foco puesto
en la
definicin de
arquitectura,
el diseo
lgico y
fsico

Foco en la
traduccin del
diseo a cdigo y
en la ejecucin
de pruebas
unitarias y de
Sistemas.

Cierre del
Sistema:
Pruebas de
Aceptacin de
Usuario,
Capacitacin y
Conversin.

Plan de
Proyecto

Especif. Req.
Plan Pruebas

Especificacin
de Diseo

Cdigo Fuente
y Objeto

Manuales,
Informe Prueba

Incidentes y
Nuevos Req.

Lder , Analista
Funcional,
Usuario

Analista
Funcional,
Usuario

Analista
Funcional y
Tcnico

Programador y
Analistas

Usuario y
Analistas

Usuario y
Analistas

Post-Implementacin

Uso y evaluacin
del Sistema para
determinar las
necesidades de
adaptacin.

Investigacin Preliminar

Implantacin y Evaluacin

Ciclo de Vida
del Desarrollo
de Sistemas

Determinacin
de Requerimientos

Prueba del Sistema

Desarrollo del Software

Diseo del Sistema

2.- Determinacin de
los requerimientos de
informacin
1.-Identificacin de
problemas,
oportunidades y
objetivos

3.- Anlisis de las


necesidades del
sistemas

7.- Implementacin
y evaluacin del
hardware

6.- Prueba y
mantenimiento del
sistema

5.- Desarrollo y
documentacin del
software

4.- Diseo del


sistema
recomendado

Definir y plantear
el problema

Determinar
Tamao del
proyecto

Determinar
factibilidad

R
E
V
Diseo

Prueba

del sistema

S
I

Implementacin Evaluacin

Uso y
mantenimiento

Documentacin

Participacin del
cliente

Aclarar y comprender la
solicitud del proyecto

Qu es lo que requiere el cliente?Qu


es lo que realmente se necesita?
Qu es lo que se
est haciendo?
Cmo se hace? Con que

frecuencia se presenta?
Existe algn problema? Qu
tan serio es? Cul es la causa
que lo origina?

Planeacin

Determinar el
tamao del proyecto

Cantidad de tiempo
para el desarrollo
Recursos humanos

Tcnica
Determinar factibilidad

Operacional
Financiera

Factibilidad
operacional

Trabajar el
sistema cuando est
terminado?
Existen barreras
importantes para la
implantacin?

Existe apoyo suficiente para


el proyecto?
Los usuario estn
dispuestos al cambio?

Existe o se puede adquirir la tecnologa


necesaria para realizar lo que se pide?

Factibilidad
Factibilidad
tcnica

LAN

Si se desarrolla el sistema, puede crecer


con facilidad?
Existen garantas tcnicas de exactitud,
confiabilidad, facilidad de acceso y
seguridad de los datos?

Los beneficios
igualan o exceden los
costos?

BENEFICIOS

Factibilidad
financiera

El equipo propuesto tiene la capacidad


tcnica para soportar todos los datos
requeridos para usar el nuevo sistema?

Parte de la informacin
obtenida en la etapa
anterior

Se disean procedimientos
de control y respaldos para
proteger el sistema

Planificacin

Se disean las salidas


Diseo
Se disea la estructura
global de los programas
requeridos por la
aplicacin, en relacin
con las funciones que
sern desempeadas por
cada programa

Se disean
procedimientos para la
captura de datos
(correctos)

Se disea la interfaz del


usuario

Se disean los archivos o


bases de datos

Errar es humano

Tiene como objetivo detectar


los errores que se hayan
podido cometer en las etapas
anteriores del proyecto (y,
eventualmente, corregirlos).

Hacerlo antes de que el


usuario final del sistema
los tenga que sufrir
Prueba
del sistema
Una prueba es un xito cuando se detecta
un error (y no al revs, como nos gustara
pensar).

Cumple con los criterios de


desempeo

1.- Prueba de
aceptacin

Verificar
ante el
usuario

Cumple con los criterios de


operacionales

Implementacin

3.- Entrenamiento y
capacitacin

2.- Construccin de
archivos

Impacto organizacional

Evaluacin operacional
Evaluacin

Opinin de los
administradores

La evaluacin de un sistema se lleva a cabo


para identificar puntos dbiles y fuertes.

Desempeo
del desarrollo

Oly Mata

Tipos de mantenimiento:
Perfectivo.

Evolutivo.
Adaptativo.
Correctivo.

Mantenimiento adaptativo
Mantenimiento
Preventivo y correctivo

Anticipar y eliminar
los defectos que se
detecten durante su
vida til

Uso y mantenimiento

Adaptarlo a nuevas necesidades,


cuando el sistema ha de funcionar
sobre una nueva versin del sistema
operativo o en un entorno hardware
diferente, por ejemplo

Mantenimiento perfectivo
Aadirle nueva funcionalidad, cuando
se proponen caractersticas deseables
que supondran una mejora del
sistema ya existente

*
Utilizar
mtodos de
solucin de
problemas.

Involucrar al
usuario.

Disear
sistemas
flexibles.

Normalizar y
documentar.

PRINCIPIOS

Abordar
adecuadamente
cada una de las
fases

Cancelar o
revisar el
proyecto si es
necesario.
Descomponer y
simplificar.

Justificar
adecuadamente
el sistema

Limitacin del enfoque del ciclo de vida


El enfoque del ciclo de vida de los sistemas es
costoso, tardado e inflexible.
Este enfoque es poco flexible y obstaculiza los
cambios
El mtodo del ciclo de vida no es apropiado para
las aplicaciones orientadas hacia la toma de
decisiones

Limitacin del enfoque del ciclo de


vida
Una especificacin formal de los requisitos podra
inhibir a los constructores del sistema que de otro
modo explorara y descubriran la estructura del
problema.
El enfoque del ciclo de vida tampoco es apropiado
para muchos sistemas pequeos y suelen ser
menos estructurados y ms individualizados

Modelo clsico o en cascada.


Modelo incremental.
Modelo de desarrollo evolutivo.

Modelo de prototipado de requerimientos.


Modelo de espiral.
Modelo de construccin de prototipos.
Modelo de sntesis automtica de software.

Modelo de desarrollo evolutivo.

Modelo clsico o en cascada.


Ingeniera y Anlisis del
Sistema
Anlisis de los
Requisitos
Diseo
Codificacin
Prueba
Mantenimiento

Ingeniera y Anlisis del Sistema: Debido a que el software es siempre parte de un


sistema mayor el trabajo comienza estableciendo los requisitos de todos los elementos
del sistema y luego asignando algn subconjunto de estos requisitos al software.
Anlisis de los requisitos del software: el proceso de recopilacin de los requisitos se
centra e intensifica especialmente en el software. El ingeniero de software (Analistas)
debe comprender el mbito de la informacin del software, as como la funcin, el
rendimiento y las interfaces requeridas.

Modelo clsico o en cascada.

Diseo: el diseo del software se enfoca en cuatro atributos distintos del programa:
la estructura de los datos, la arquitectura del software, el detalle procedimental y la
caracterizacin de la interfaz. El proceso de diseo traduce los requisitos en una
representacin del software con la calidad requerida antes de que comience la
codificacin.

Codificacin: el diseo debe traducirse en una forma legible para la maquina. El paso
de codificacin realiza esta tarea. Si el diseo se realiza de una manera detallada la
codificacin puede realizarse mecnicamente.

Prueba: una vez que se ha generado el cdigo comienza la prueba del programa. La
prueba se centra en la lgica interna del software, y en las funciones externas,
realizando pruebas que aseguren que la entrada definida produce los resultados que
realmente se requieren.

Mantenimiento: el software sufrir cambios despus de que se entrega al cliente.


Los cambios ocurrirn debido a que hayan encontrado errores, a que el software
deba adaptarse a cambios del entorno externo (sistema operativo o dispositivos
perifricos), o debido a que el cliente requiera ampliaciones funcionales o del
rendimiento.

Modelo incremental.

Los riesgos asociados con el desarrollo de sistemas largos y complejos son enormes. Una forma de
reducir los riesgos es construir slo una parte del sistema, reservando otros aspectos para niveles
posteriores. El desarrollo incremental es el proceso de construccin siempre incrementando
subconjuntos de requerimientos del sistema.

El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos:

Construir un sistema pequeo tiene siempre menos riesgo que construir un sistema grande.

Al ir desarrollando parte de las funcionalidades, es ms fcil determinar si los requerimientos


planeados para los niveles subsiguientes son correctos.

Si un error importante es realizado, slo la ltima iteracin necesita ser descartada.

Reduciendo el tiempo de desarrollo de un sistema decrecen las probabilidades que esos


requerimientos de usuarios puedan cambiar durante el desarrollo.

Si un error importante es realizado, el incremento previo puede ser usado.

Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo
del prximo incremento.

Modelo de desarrollo evolutivo.

Construye una serie de grandes versiones sucesivas de un producto. El modelo


evolutivo asume que los requerimientos no son completamente conocidos al inicio del
proyecto.

En el modelo evolutivo, los requerimientos son cuidadosamente examinados, y slo esos


que son bien comprendidos son seleccionados para el primer incremento. Los
desarrolladores construyen una implementacin parcial del sistema que recibe slo
estos requerimientos.

El sistema es entonces desarrollado, los usuarios lo usan, y proveen retroalimentacin


a los desarrolladores. Basada en esta retroalimentacin, la especificacin de
requerimientos es actualizada, y una segunda versin del producto es desarrollada y
desplegada. El proceso se repite indefinidamente.

Todo lo que uno tiene que hacer es construir un subconjunto de requerimientos


conocidos y comprender al principio que muchos nuevos requerimientos es probable que
aparezcan cuando el sistema sea desplegado o desarrollado.

Modelo de prototipado de requerimientos.


El prototipado de requerimientos es la creacin de una
implementacin parcial de un sistema, para el propsito explcito de
aprender sobre los requerimientos del sistema.
Un prototipo es construido de una manera rpida tal como sea
posible. Esto es dado a los usuarios, clientes o representantes de
ellos, posibilitando que ellos experimenten con el prototipo. Estos
individuos luego proveen la retroalimentacin sobre lo que a ellos les
gust y no les gust acerca del prototipo proporcionado, quienes
capturan en la documentacin actual de la especificacin de
requerimientos la informacin entregada por los usuarios para el
desarrollo del sistema real.

Modelo en espiral

Es un modelo evolutivo que combina el modelo clsico con el diseo de prototipos.


Incluye la etapa de anlisis de riesgos.
Es ideal para crear productos con diferentes versiones mejoradas.
Este es el enfoque ms realista actualmente. El modelo en espiral se divide en un numero de
actividades estructurales, tambin llamadas regiones de tareas.

Generalmente, existen entre tres y seis regiones de tareas:


Comunicacin con el cliente: las tareas requeridas para establecer comunicacin entre el
desarrollador y el cliente.

Planificacin: las tareas requeridas para definir recursos, el tiempo y otras informaciones
relacionadas con el proyecto. Son todos los requerimientos.

Anlisis de riesgos: las tareas requeridas para evaluar riesgos tcnicos y otras informaciones
relacionadas con el proyecto.

Ingeniera: las tareas requeridas para construir una o ms representaciones de la aplicacin.

Construccin y adaptacin: las tareas requeridas para construir, probar, instalar y proporcionar
soporte al usuario.

Evaluacin del cliente: las tareas requeridas para obtener la reaccin del cliente segn la
evaluacin de las representaciones del software creadas durante la etapa de ingeniera e
implementacin durante la etapa de instalacin.

El modelo en espiral
Planificacin

Anlisis de riesgos

Comunicacin
con el cliente

Ingeniera

Evaluacin del
cliente

Construccin y adaptacin

Modelo de construccin de
prototipos
Recoleccin
refinamiento
requisitos
Producto de
ingeniera

Diseo
rpido

Refinamiento
del prototipo

Construccin
del prototipo
Evaluacin
del prototipo
por el cliente

Modelo de construccin de prototipos


Este modelo arranca con el establecimiento de los requerimientos
del sistema, se definen los objetivos del sistema y los requisitos
conocidos con base en las reas de mayor prioridad e importancia
para el sistema.
Luego se hace un diseo preliminar , sobre el cual se construye un
prototipo o modelo del sistema, compuesto a menudo de ventanas,
tablas de la Base de Datos, formatos de entrada y de salida bsicos.
Un prototipo es una representacin o modelo del producto de
programacin que incorpora componentes del producto real. Por lo
regular, un prototipo tiene un funcionamiento limitado en cuanto a
capacidades, confiabilidad o eficiencia.

Prototipos
Paso 1

Identificar Requerimientos

Paso 2

Desarrollar Prototipo

Paso 3

Utilizar Prototipo

Si

No
Satisfecho?

Paso 4

Prototipo Funcional

Mejorar Prototipo

Ventajas de la elaboracin de Prototipos


tiles cuando existe incertidumbre acerca de la necesidades
Valioso para disear la Interfaz del usuario final
Fomenta la participacin de los usuarios finales

Desventajas de la elaboracin de Prototipos


Es apropiada solo para aplicaciones pequeas
Puede omitir pasos indispensables en el desarrollo de sistemas
Requiere buena administracin y mecanismos para definir
expectativas.

Modelo de sntesis automtica de


software

Se define el sistema utilizando un lenguaje formal.

La implementacin es automtica, asistida por el Ordenador.

La documentacin se genera de forma automtica.

El mantenimiento se realiza por sustitucin no mediante parches.

Dificultad en la participacin del usuario.

Diseos poco optimizados.

Compra de Paquetes de Software de


Aplicaciones

Se respeta la etapa de Definicin, Pruebas, Instalacin y Post-Implementacin.

La etapa de Anlisis incluir la evaluacin de los paquetes existentes en el mercado :

Confeccin de la solicitud de Propuesta a Proveedores (RFP) que incluye:

Requerimientos Funcionales y no funcionales a cumplir

Recursos de Hardware, software, base de datos necesarios.

Esfuerzo de customizacin, instalacin, capacitacin y mantenimiento

Documentacin a entregar

Calidad del Fabricante

Costo del producto y trabajo.

Trminos del contrato.

Recepcin de las propuestas de los proveedores

Confeccin de Matriz de Evaluacin de Proveedores.

Seleccin del proveedor/producto.

Contratacin del mismo.

El Diseo tratar de amoldar los requerimientos del usuario a las caractersticas del
paquete

Desarrollo por usuarios Finales:


No se utilizan pasos predefinidos.
El desarrollo lo hace el usuario final que conoce la herramienta a utilizar.
Se trabaja con herramientas de cuarta Generacin.
Ahorro de tiempo de Respuesta a los requerimientos.

La administracin debera controlar este tipo de desarrollo para su posterior administracin y


mantenimiento:
requiriendo justificacin econmica para su realizacin.
estableciendo hardware y software posibles de utilizar as como normas de calidad
necesarias de cumplir.
Proporcionando apoyo tcnico y capacitacin para este tipo de desarrollo.

Comparacin de Enfoques

Enfoque
Ciclo de Vida
Tradicional

Uso
Sistemas complejos medianos o
grandes
Requerimientos claros, predefinidos
y congelados en la etapa de Anlisis

Caractersticas
Divide el desarrollo en fases formales secuenciales
Documentacin por fases. Desalienta cambios
Costoso, lento e inflexible.
Gran participacin del usuario.

Prototipos

Incertidumbre en Requerimientos

Proceso iterativo. Construccin rpida y econmica

Sistemas pequeos a medianos

Puede omitir pasos esenciales. Puede no servir para


escalar el sistema.

Ahorro de tiempo y costo en diseo y construccin.

Paquetes de
Software de
Aplicacin

Como apoyo de procesos


universales y estandarizados

Mantenimiento y mejoras a cargo del proveedor


Tener especial atencin en la cantidad de
requerimientos nicos a implementar.

Mayor involucramiento y satisfaccin del usuario

Desarrollo por
usuarios finales

Como resolucin de requerimientos


simples (sobre todo reportes)

Rpido e Informal. Ahorra tiempos y costos.


Riesgos en el control/administracin del sistema y en la
falta de documentacin del mismo.

Tercerizacin Subcontratacin (Outsourcing):


Proceso mediante el cual una firma identifica alguna porcin, o rea de negocio que podra
ser desempeada ms eficientemente y/o ms efectivamente por otra corporacin, la cual

es contratada para desarrollarla.


Su principal objetivo:
concentrar los esfuerzos de una compaa en las actividades esenciales del negocio, a fin
de:

otorgar valor agregado a los clientes mediante agilidad y oportunidad en el


manejo de los procesos transferidos

reducir los tiempos de procesamiento

reducir costos y personal permanente

potencializar los talentos humanos

Qu actividades del rea de Sistemas se podran tercerizar? Por qu?

xito y Fracaso de los


Sistemas de Informacin
El 75 % de los proyectos de Desarrollo de sistemas fracasan por:
Mayores costos de lo previsto Costos y Recursos
No terminan en el tiempo estimado Tiempos
No son operables Alcance.

Principales reas de problemas (origen en factores de organizacin):


Diseo: Diseo no compatible con la estructura, cultura y metas de la organizacin.
Datos: Informacin ambigua, errnea, desglosada indebidamente o incompleta.
Costos: Los gastos excesivos no pueden justificarse con el valor que el sistema proporciona al
negocio.
Operaciones: Informacin que no se proporciona en forma oportuna o eficiente por fallas en el
procesamiento de la informacin.

xito y Fracaso de los Sistemas de


Informacin (Cont.)
Como se mide si tuvo xito de un sistema de informacin?
Utilizacin del Sistema de Informacin
Satisfaccin del usuario (Como el sistema mejora el trabajo de los usuarios)
Actitud favorable del usuario hacia los responsables del sistema.
Logro de objetivos (Cumplimiento de metas planeadas)
Recompensa financiera

Factores Clave del xito de la Implantacin de Sistemas de Informacin:


Apoyo y compromiso gerencial
Comunicaciones claras e involucramiento del usuario
Tener en cuenta el nivel de complejidad y la gestin de riesgos
Calidad de la administracin de la Implementacin

Reingeniera de Software
Es una metodologa que ataca el problema del
envejecimiento del software.
Esto pasa cuando se escribi o se us mal la
metodologa como el anlisis, el diseo, e incluso
la programacin.

Estos software son difcil de mantenimiento y


actualizaciones

Reingeniera de Software
Distribucin del costo del ciclo de vida

Reingeniera de Software
La reingeniera de software sirve para extraer
informacin de diseo y programacin de
sistemas existentes, para as crear sistemas
nuevos sin tener que comenzar desde cero.
Importancia
Puede reducir los riesgos evolutivos en una organizacin
Puede ayudar a las organizaciones a recuperar sus
inversiones en software
Puede hacer el software mas fcilmente modificable
Es un catalizador para la automatizacin del
mantenimiento de software

Reingeniera de Software
La reingeniera abarca tres pasos:

Ingeniera inversa.- Implica extraer las


especificaciones de negocios fundamentales de
sistemas existentes.
Modificaciones del diseo.- mejoran la
arquitectura del software.
Ingeniera
hacia
delante.Usan
las
especificaciones modificadas, con el fin de
generan un cdigo nuevo reutilizable que sea
fcil de mantener.

Reingeniera de Software
Pasos de la reingeniera:

Anlisis de sistemas

El anlisis de sistemas es el estudio de una aplicacin del sistema de informacin y


de empresa actual y la definicin de las necesidades y las prioridades de usuario
para conseguir una aplicacin nueva o mejorada.

Trata bsicamente de determinar los objetivos y lmites del sistema objeto de


anlisis, caracterizar su estructura y funcionamiento, marcar las directrices que
permitan alcanzar los objetivos propuestos y evaluar sus consecuencia.

Incluye las siguientes fases:


Anlisis de la Viabilidad del Proyecto (o fase de inspeccin).
Anlisis del sistema actual ( o fase de estudio).
Definicin y establecimiento de prioridades entre las necesidades de usuarios( o
fase de definicin).

Anlisis de la Viabilidad del Proyecto.


Objetivos de inspeccin.
Identificar los problemas, las oportunidades y las normas que dieron lugar a la
solicitud del proyecto.

Anlisis de la Viabilidad del Proyecto.

Determinar si resolver los problemas, aprovechar las oportunidades y cumplir las


normas reportar beneficios a la empresa.

Qu tcnicas se utilizarn en el EVS?

Anlisis coste/beneficio.
Diagrama entidad/relacin extendido.
Sesiones de trabajo.
Catalogacin
Impacto en la organizacin.
Planificacin
Diagramas de actividades
Matricial
Presentacin

Anlisis de la Viabilidad del


Proyecto.

Dnde interviene cada uno de los siguientes participantes y cules su misin?

Comit de direccin: participa al principio y al final del EVS. Su misin es indicar


cul debe ser el alcance del sistema y aprobar la solucin final.

Usuarios expertos: participan en el estudio de la situacin actual, la definicin de


requisitos y el estudio de alternativas. Su objetivo es ayudar a conocer los sistemas
existentes, exponer sus requisitos y dar su opinin en las alternativas de solucin.

Especialistas en comunicaciones: participan en el estudio de alternativas de


solucin. Su objetivo es definir los requisitos de comunicacin de las distintas
soluciones.

Anlisis del sistema actual

Consiste en estudiar y analizar el sistema actual, siempre y cuando se cuente con un


sistema actual, hago uso o no de la informtica, dota al analista de una comprensin
mas profunda del sistema.

Los objetivos:

Conocer el entorno de empresa del sistema.


Conocer las causas y los efectos subyacentes del sistema.
Conocer las ventajas de aprovechar las oportunidades.
Conocer las implicaciones de no cumplir con las normas.

Define a partir de la informacin qu necesita y que quiere el usuario que haga el


sistema.

Objetivos:
Definir las necesidades de la empresa sobre problemas.
Definir las necesidades de empresa sobre oportunidades
Definir las necesidades sobre normas.

Actividades:
Identificar las necesidades.
Modelizar las necesidades de sistemas.
Elaborar prototipos de descubrimiento.
Definir prioridades entre las necesidades de empresa.
Modificar el mbito y el plan de proyecto.
Revisar las especificaciones de las necesidades.

Establecer las prioridades de los


usuarios

Diseo de sistemas

El diseo de sistemas se define como el proceso de aplicar ciertas tcnicas y


principios con el propsito de definir un dispositivo, un proceso o un sistema, con
suficientes detalles como para permitir su interpretacin y realizacin fsica.

La fase de diseo de sistemas encierra cuatro etapas:

El diseo de los datos: trasforma el modelo de dominio de la informacin, creado


durante el anlisis, en las estructuras de datos necesarios para implementar el
software.

El diseo arquitectnico: define la relacin entre cada uno de los elementos


estructurales del programa.

El diseo de la interfaz: describe como se comunica el software consigo mismo, con


los sistemas que operan junto con el y con los operadores y usuarios que lo emplean.

El diseo de procedimientos: transforma elementos estructurales de la


arquitectura del programa. La importancia del diseo del software se puede definir
en una sola palabra Calidad, dentro del diseo es donde se fomenta la calidad del
proyecto.

El diseo de procedimientos

El diseo es la nica manera de materializar con precisin los requerimientos del


cliente.

El diseo del software es un proceso y un modelado a la vez. El proceso de diseo es


un conjunto de pasos repetitivos que permiten al diseador describir todos los
aspectos del sistema a construir.
A lo largo del diseo se evala la calidad del desarrollo del proyecto con un conjunto
de revisiones tcnicas:

El diseo debe implementar todos los requisitos explcitos contenidos en el modelo


de anlisis y debe acumular todos los requisitos implcitos que desea el cliente.

Debe ser una gua que puedan leer y entender los que construyan el cdigo y los que
prueban y mantienen el software.

El diseo debe proporcionar una completa idea de lo que es el software.

Diseo de sistemas

Diseo de la salida.

En este caso salida se refiere a los resultados e informaciones generadas por el


sistema. Para la mayora de los usuarios la salida es la nica razn para el desarrollo
de un sistema y la base de evaluacin de su utilidad.

Cuando se realiza un sistema, como analistas deben realizar lo siguiente:

Determine que informacin presentar. Decidir si la informacin ser presentada en


forma visual, verbal o impresa y seleccionar el medio de salida.

Disponga la presentacin de la informacin en un formato aceptable.

Decidir como distribuir la salida entre los posibles destinatarios.

Diseo de sistemas

Diseo de archivos.

Incluye decisiones con respecto a la naturaleza y contenido del propio archivo, como
si fuera a emplear para guardar detalles de las transacciones, datos histricos, o
informacin de referencia.
Entre las decisiones que se toman durante el diseo de archivos, se encuentran las
siguientes:

Los datos que deben incluirse en el formato de registros contenidos en el archivo.


La longitud de cada registro, con base en las caractersticas de los datos que
contenga.
La secuencia a disposicin de los registros dentro del archivo.
No todos los sistemas requieren del diseo de todos los archivos, ya que la mayora
de ellos pueden utilizar los del viejo sistema y solo tenga que enlazarse el nuevo
sistema al archivo maestro donde se encuentran los registros.

Diseo de sistemas

Diseo de interacciones con la base de datos.


La mayora de los sistemas de informacin ya sean implantados en sistemas de
cmputos grandes o pequeos, utilizan una base de datos que pueden abarcar varias
aplicaciones, por esta razn estos sistemas utilizan un administrador de base de
datos, en este caso el diseador no construye la base de datos sino que consulta a su
administrador para ponerse de acuerdo en el uso de la base de datos en el sistema.

Herramientas para el diseo de sistemas.


Apoyan el proceso de formular las caractersticas que el sistema debe tener para
satisfacer los requerimientos detectados durante las actividades del anlisis.

Herramientas para presentacin.


Se utilizan para describir la posicin de datos, mensajes y encabezados sobre las
pantallas de las terminales, reportes y otros medios de entrada y salida.

Herramientas de especificacin.
Apoyan el proceso de formular las caractersticas que debe tener una aplicacin,
tales como entradas, salidas, procesamiento y especificaciones de control. Muchas
incluyen herramientas para crear especificaciones de datos.

Herramientas para el desarrollo de sistemas.


Estas herramientas nos ayudan como analistas a trasladar diseos en aplicaciones
funcionales.

Herramientas para ingeniera de software.


Apoyan el proceso de formular diseos de software, incluyendo procedimientos y
controles, as como la documentacin correspondiente.

Generadores de cdigos.
Producen el cdigo fuente y las aplicaciones a partir de especificaciones funcionales
bien articuladas.

Diseo de sistemas

Diseo de sistemas

Herramientas para pruebas.

Apoyan la fase de la evaluacin de un sistema o de partes del mismo contra las


especificaciones.

Incluyen facilidades para examinar la correcta operacin del sistema as como el


grado de perfeccin alcanzado en comparacin con las expectativas.

La revolucin del procesamiento de datos de manera computarizada, junto con las


practicas de diseo sofisticadas estn cambiando de forma dramtica la manera en
que se trasladan las especificaciones de diseo de sistemas de informacin
funcionales.

Fase de implantacin

Es la ltima fase del desarrollo de sistemas. Es el proceso de instalar equipos o


software nuevos, como resultado de un anlisis y diseo previo como resultado de la
sustitucin o mejoramiento de la forma de llevar a cabo un proceso automatizado.

Al implantar un sistema de informacin lo primero que debemos hacer es asegurarnos


que el sistema sea operacional, es decir, que funcione de acuerdo con lo que requiere
el anlisis y permita que los usuarios puedan operar con l.

Existen varios enfoques de implementacin:

Es darle responsabilidad a los grupos.


Uso de diferentes estrategias para el entrenamiento de los usuarios.
El analista de sistemas necesita ponderar la situacin y proponer un plan de
conversin que sea adecuado para la organizacin.
El analista necesita formular medidas de desempeo con las cuales evaluar a los
usuarios.
Debe convertir fsicamente el sistema de informacin antiguo en el nuevo modificado.

Fase de implantacin

Capacitacin de usuarios del sistema.

Es ensear a los usuarios que se relacionan u operan en un proceso de implantacin.


La responsabilidad de esta capacitacin de los usuarios primarios y secundarios es del analista,
desde el personal de captura de datos hasta aquellos que toman las decisiones sin usar un ordenador.

La empresa puede contratar los servicios de instructores externos pero el analista es la persona que
puede ofrecer la mejor capacitacin debido a que conoce al personal y el sistema mejor que cualquier
otra persona.

Si falta el analista la empresa puede contratar otros servicios de capacitacin como son:

Vendedores: son aquellos que proporcionan capacitacin gratuita fuera de la empresa de uno o dos
das.
Instructor pagado externamente: son aquellos que pueden ensear todo acerca de los ordenadores
pero para algunos usuarios esta no es una capacitacin necesaria.
Instructores en casa: estn familiarizados con el personal y pueden adecuar los materiales a sus
necesidades, pero le faltara experiencia en sistemas de informacin que es realmente la necesidad
del usuario.

El objetivo de la capacitacin es lograr que los usuarios tengan el dominio necesario de las cosas
bsicas acerca de las maquinarias y procesos que se emplean para su operacin de manera eficiente y
segura.

La evaluacin del sistema

Se lleva a cabo para identificar puntos dbiles y fuertes del sistema implantado. La
evaluacin ocurre a lo largo de cualquiera de las siguientes cuatro dimensiones:

Evaluacin operacional: es el momento en que se evala la manera en que funciona el


sistema, esto incluye su facilidad de uso, tiempo de respuesta ante una necesidad,
como se adecuan los formatos en que se presenta la informacin, contabilidad global y
su nivel de utilidad.

Impacto organizacional: identifica y mide los b operacionales para la empresa en


reas como las finanzas, eficiencia en el desempeo laboral e impacto competitivo.

Desempeo del desarrollo: es la evaluacin del proceso de desarrollo adecuado


tomando en cuenta criterios como, tiempo y esfuerzo en el desarrollo concuerdan con
presupuesto y estndares.

Prueba de sistemas: dependiendo del tamao de la empresa que usara el sistema y el


riesgo asociado a su uso, puede hacerse la eleccin de comenzar la operacin del
sistema solo en un rea de la empresa (como una prueba piloto), que puede llevarse a
cabo en un departamento o con una o dos personas. Cuando se implanta un nuevo
sistema lo aconsejable es que el viejo y el nuevo funcionen a la vez con la finalidad de
comparar los R que ambos ofrecen en su operacin, adems de dar tiempo al personal
para adaptarse al nuevo sistema.

Fase de utilizacin y mantenimiento

La fase de mantenimiento de software aporta cambios al mismo para corregir


defectos y dependencias encontradas durante su uso as como la adicin de nuevas
funciones para mejorar la usabilidad y aplicabilidad del software.

Tipos de mantenimiento:
Perfectivo: son las acciones llevadas a cabo para mejorar la calidad interna de los
sistemas en cualquiera de sus aspectos; reestructuracin del cdigo, definicin ms
clara del sistema y optimizacin del rendimiento y eficiencia.

Evolutivo: son las incorporaciones, modificaciones y eliminaciones necesarias en un


producto software para cubrir la expansin o cambio en las necesidades del usuario.

Adaptativo: son las modificaciones que afectan a los entornos en los que el sistema
opera.

Correctivo: son aquellos cambios precisos para corregir errores del producto
software.