Anda di halaman 1dari 52

Ingeniera de Software

Profesor: Patricio Salinas

Introduccin a la Ingeniera de Software

Objetivos:
1. Identificar las etapas fundamentales
en el Ciclo de Vida de todo proyecto.
2. Identificar
los
elementos
que
componen la Ingeniera de Software.

Software

El Software no es slo cdigo,


sino tambin las especificaciones del diseo,

los datos tratados y la documentacin que


permite el desarrollo, instalacin y
mantenimiento

Software

Software: Caractersticas

Es un elemento lgico, no fsico.


Es desarrollado, no fabricado.
Se deteriora.
No hay piezas de repuesto.
Se construye a medida.

Software: Cualidades

Correcto
Confiable
Robusto

Eficiente
Amigable
Verificable
Reusable
Portable

Software: Un sistema de SW debe ser

Fcil de mantener. Construido y documentado


para permitir cambios.

Software: Un sistema de SW debe ser

Fcil de mantener. Construido y documentado


para permitir cambios.
Fiable. Debe hacer lo que se espera de l.

Software: Un sistema de SW debe ser

Fcil de mantener. Construido y documentado


para permitir cambios.
Fiable. Debe hacer lo que se espera de l.
Eficiente. No debe hacer uso innecesario de
recursos.

Software: Un sistema de SW debe ser

Fcil de mantener. Construido y documentado


para permitir cambios.
Fiable. Debe hacer lo que se espera de l.
Eficiente. No debe hacer uso innecesario de
recursos.
Fcil de usar. Interfaz de usuario adecuada.

Software: Evolucin hacia la ingeniera

Software: Progreso de tcnicas en su construccin

Software: Factores de Calidad

Correccin

Hace lo que quiero ?

Software: Factores de Calidad

Correccin
Mainframe
Fiabilidad

Lo hace de forma fiable


todo el tiempo ?

Software: Factores de Calidad

Correccin
Fiabilidad
Eficiencia
Se ejecutar en mi hardware
lo mejor que pueda ?

Software: Factores de Calidad

Correccin
Fiabilidad
Eficiencia
Seguridad (Integridad)

Es seguro ?

Software: Factores de Calidad

Correccin
Fiabilidad
Eficiencia
Seguridad (Integridad)
Facilidad de uso

Esta diseado para ser


usado ?

Ingeniera de Software: Inicios

El trmino Ingeniera de Software naci a finales


de los aos 60 en un congreso en Alemania.
La necesidad de un enfoque de ingeniera en el
desarrollo de software fue propuesto en este
congreso (OTAN-1968)

La Ingeniera de Software surge como respuesta a


la crisis del software.

Ingeniera de Software: Crisis del SW

La crisis del SW se fundament en:


El tiempo de creacin del SW
La no obtencin de los resultados deseados
La poca flexibilidad
El alto costo

Crisis del SW: Causas ms profundas

La metodologa en cascada linealiza el proceso de


desarrollo
La metodologa de modular estructurada hace que
el SW sea inflexible y difcil de mantener
Los programadores no tienen formacin en Ing.
SW
Las empresas (instituciones) tienen alta inercia a
introducir innovaciones

Crisis del SW: Razones

Bases inestables

Fallas en el manejo del riesgo


La complejidad del SW

Crisis del SW: Soluciones

Reforzar las fases de anlisis y diseo de SW

Construir un modelo sencillo, fcil de entender,


compatible
con
muchas
herramientas
de
programacin y fcil de mantener
Uso de metodologas y herramientas en las fases
de construccin del SW

Ingeniera de Software: Definicin

El establecimiento y uso de principios de ingeniera


robustos, orientados a obtener econmicamente
software que sea fiable y funcione eficientemente
sobre mquinas reales
Fritz Bauer

Ingeniera de Software: Desafos

Reducir el costo y mejorar la calidad del SW.

Ingeniera de Software: Desafos

Reducir el costo y mejorar la calidad del SW.

Explotar y aprovechar el potencial proporcionado


por el HW.

Ingeniera de Software: Desafos

Reducir el costo y mejorar la calidad del SW.

Explotar y aprovechar el potencial proporcionado


por el HW.
Desarrollar y mantener el SW asegurando:
Calidad
Fiabilidad
Facilidad de uso
Imposibilidad de mal uso

Ingeniera de Software: Existen muchas clases de SW

De sistemas
De tiempo real
De gestin

Ingeniera de Software: Existen muchas clases de SW

De sistemas
De tiempo real
De gestin
Cientfico
De inteligencia artificial

Empotrado
Etc.

Ingeniera de Software: Existen muchas clases de SW

De sistemas
De tiempo real
De gestin
Cientfico
De inteligencia artificial

Empotrado
Etc.

Pero existen mtodos y procedimientos


comunes para desarrollar un buen software

Ingeniera de Software: Desafos

Ingeniera de Software sus elementos son:

Mtodos
Herramientas
Procedimientos

Ingeniera del Software sus elementos son:

Mtodos
Herramientas
Procedimientos

Definen cmo desarrollar el SW desde el


punto de vista tcnico.

Ingeniera del Software sus elementos son:

Mtodos
T
Herramientas
Procedimientos

Definen cmo desarrollar el SW desde el


punto de vista tcnico.

Proporcionan un soporte automtico o


semi-automtico para los mtodos.

Ingeniera del Software sus elementos son:

Mtodos
Herramientas

Procedimientos

Definen cmo desarrollar el SW desde el


punto de vista tcnico.

Proporcionan un soporte automtico o


semi-automtico para los mtodos.
Punto de unin entre mtodos y
herramientas. Definen la secuencia en la
que se aplican los mtodos, cmo usar las
herramientas, controles de seguimiento y
calidad, guas para gestores y
desarrolladores, etc.

Ingeniera del Software sus elementos son:

Mtodos
Planificacin y estimacin de proyectos.
Anlisis de requisitos.

Diseo.
Codificacin.
Pruebas.
Mantenimiento.

Herramientas
CASE
CAD

Procedimientos

Ingeniera del Software sus elementos son:

Ciclo de Vida del Software

Define el estado de las fases a travs de las


cuales se mueve un proyecto de desarrollo de
software.

Modelo de Ciclo de Vida

Es una vista de las actividades que ocurren durante


el desarrollo de software, intenta determinar el orden
de las etapas involucradas y los criterios de transicin
asociadas entre estas etapas.

Ciclo de Vida: Definicin

Ciclo de vida

se define como el conjunto de fases

que transcurren desde que surge la idea de construir


una aplicacin, hasta que la aplicacin deja de tener
validez y se desecha.

Ciclo de Vida: Etapas fundamentales CV de todo proyecto

Ciclo de Vida: Etapas fundamentales CV de todo proyecto

Etapa de Desarrollo
Anlisis
Diseo

Codificacin
Prueba

Ciclo de Vida: Etapas fundamentales CV de todo proyecto

Planificacin: en esta fase se hace imprescindible:


Conocer el SI, en el que va a estar inmerso el software
que voy a desarrollar.
Determinar los objetivos a cumplir

Definir un plan de accin (proyecto a desarrollar y


calendario que se va a seguir).
Evaluar los recursos necesarios.
Determinar un plan de seguimiento con mecanismos de
evaluacin
adecuados
(tcnicas
de
anlisis
costo/beneficio).

Ciclo de Vida: Etapas fundamentales CV de todo proyecto

Desarrollo. Se divide en cuatro etapas:


Anlisis. Qu es lo que tenemos que hacer?. Se trata
de conocer el conjunto de entradas que necesita el
sistema, el conjunto de salidas que se producirn y los
procesos a implantar. Siempre dependiendo de las
especificaciones marcadas por el Cliente.
Diseo. Cmo lo tenemos que hacer?. Cmo los
programas van a conseguir los objetivos con los datos
disponibles.

Codificacin. Consiste en traducir los resultados del


diseo a un lenguaje de programacin.
Pruebas. Consiste en verificar y validar la solucin
obtenida (pruebas unitarias, pruebas de integracin).

Ciclo de Vida: Etapas fundamentales CV de todo proyecto

Mantenimiento.
Cmo se gestiona el cambio una vez que el sistema est
en explotacin?
Mantenimiento Correctivo. Correccin de errores.

Mantenimiento Adaptativo. Cambio en el entorno fsico y


lgico.
Mantenimiento Perfectivo. Mejoras y ampliaciones.

Ciclo de Vida: Etapas fundamentales CV de todo proyecto

Mantenimiento.
Cmo se gestiona el cambio una vez que el sistema est
en explotacin?
Mantenimiento Correctivo. Correccin de errores.

Mantenimiento Adaptativo. Cambio en el entorno fsico y


lgico.
Mantenimiento Perfectivo. Mejoras y ampliaciones.

Mantenimiento Adaptativo y Perfectivo


reinician el Ciclo de Vida.

Ciclo de Vida del Software

Un modelo de Ciclo de Vida del software:


Describe las
software.

fases

principales

de

desarrollo

de

Define las fases primarias esperadas de ser ejecutadas


durante esas fases.
Ayuda a administrar el progreso del desarrollo.
Provee un espacio de trabajo para la definicin de un
detallado proceso de desarrollo de software.

Tipos de CV de una aplicacin informtica

Ciclo de Vida Clsico (o Cascada).


Se desarrolla c/u de las etapas secuencialmente.

Hay que esperar el trmino de una etapa para continuar


con la siguiente.

Tipos de CV de una aplicacin informtica

Ciclo de Vida en Cascada con vuelta atrs.


Es el ms conocido y experimentado.

Contempla la posibilidad de volver atrs desde cualquier


etapa.

Tipos de CV de una aplicacin informtica

Ciclo de Refinamiento de Prototipos.


Entendemos por Prototipo un modelo evolutivo de la
solucin final. Poco a poco se ir refinando para
adaptarlo a las necesidades del proyecto.

Tipos de CV de una aplicacin informtica


Ciclo de Vida en Espiral.
Trata de unir las ventajas de los modelos anteriores,
incorporando el anlisis de riesgo, con lo que ganan
importancia los factores econmicos del proyecto.

Tipos de CV de una aplicacin informtica


En general:

Si el problema es perfectamente
conocido, en el que el usuario
define claramente los requisitos,
y el equipo de desarrollo tiene
amplia experiencia en la cuestin

CV en cascada (corregida)

Si el desarrollo conlleva muchos


riesgos

CV en espiral

Si es importante ir probando el
producto a medida que se
desarrolla para demostrarle al
usuario y al cliente su utilidad

CV basado en prototipos

Sntesis
Software = Programas + Datos + Documentacin
Elementos de la Ingeniera de Software:
Mtodos, Herramientas, Procedimientos.
Ciclo de Vida:
Conjunto de fases desde idea de desarrollar hasta que se
desecha la aplicacin.

Etapas de Ciclo de Vida:


Planificacin, Desarrollo, Mantenimiento
Tipos de Ciclo de Vida:
Cascada, Cascada c/vuelta atrs, Prototipo, Espiral.

Anda mungkin juga menyukai