Está en la página 1de 25

UNIDAD 1

INTRODUCCIN A LA
INGENIERA DE SOFTWARE


6/5/2014 Introduccin a la Ingeniera de Software 1
caractersticas y evolucin del
software
un poco de historia
primeras dcadas:
desarrollar el hardware
reducir costes de procesamiento y almacenamiento
dcada de los ochenta:
desarrollo de la microelectrnica
mayor potencia de clculo y reduccin de costes
objetivo actual: mejorar la calidad de las soluciones software.
Introduccin a la Ingeniera de Software
Orientacin
por lotes
Distribucin
limitada
Software a
medida
Multiusuario
Tiempo real
Bases de datos
Software como
producto
Mayores gastos
de mantenimiento


Sistemas distribuidos
Inteligencia Artificial
Hardware de bajo
coste
Impacto en el
consumo
Redes area local
y global
Gran demanda

Potentes sistemas
de sobremesa
Tecnologa de objetos
Sistemas expertos
Redes neuronales
Cliente/servidor
Tecnologas de
Internet.
1959 - 1965 1965 - 1975 1975 - 1989 1989 -
AUMENTAN los problemas del desarrollo de software:
Subexplotacin del potencial del hardware
Incapacidad de atender a la demanda
Incapacidad de mantener el software existente
6/5/2014 2
caractersticas y evolucin del
software
software
programas
archivos de configuracin
documentacin de la estructura del sistema
manuales de instalacin y uso
sitios web con informacin y actualizaciones
tipos de software
productos genricos
sistemas producidos por una organizacin y que se venden en el mercado abierto
sistemas gestores de bases de datos, procesadores de texto, paquetes grficos,...
la organizacin controla la especificacin
productos personalizados
desarrollados especficamente para un cliente
aplicaciones de negocio, sistemas de control de trfico areo, control de procesos de
fabricacin,...
el cliente controla la especificacin de la aplicacin
Introduccin a la Ingeniera de Software 6/5/2014 3
caractersticas y evolucin del
software
Algunas preguntas:

Por qu se tarda tanto? (y casi siempre ms de lo
previsto)

Por qu la productividad es tan baja?

Por qu cuesta tanto?

Por qu siempre quedan errores sin localizar?
Introduccin a la Ingeniera de Software 6/5/2014 4
naturaleza y problemas del desarrollo
de software
El software como elemento lgico.
Se desarrolla, no se fabrica:
Calidad del diseo.
Costes ms importantes en la ingeniera
Gestin especial de los proyectos
Se deteriora con el mantenimiento
Desarrollo a medida (ausencia de componentes)
La crisis del software: problemas que aparecen en el desarrollo del software
al desarrollar, mantener y atender la demanda de nuevas aplicaciones.


Introduccin a la Ingeniera de Software
Insatisfaccin del cliente
Planificacin y estimaciones
imprecisas
Calidad
Sin tiempo para recoger
datos histricos
Baja productividad
Dificultad de mantener
el software existente
6/5/2014 5
naturaleza y problemas del desarrollo
de software
Causas de la crisis del software
Naturaleza lgica del software
Mala gestin de los proyectos ( ausencia de datos, deficiente
comunicacin, ...)
Ausencia de entrenamiento formal en nuevas tcnicas (programadores
vs. ingenieros de software)
Resistencia al cambio
Mitos del software:

Introduccin a la Ingeniera de Software
MITOS DEL CLIENTE

- Requisitos establecidos como
una declaracin general de
objetivos
- Flexibilidad del software ante
los cambios

MITOS DE GESTIN

- Uso de estndares
- Uso de herramientas
- Mala planificacin: aumento
de programadores

MITOS DE LOS DESARROLLADORES

- Programa funcionando = fin del trabajo
- Calidad = el programa se ejecuta
sin errores
- Entrega al cliente: programa
funcionando
6/5/2014 6
6/5/2014 Introduccin a la Ingeniera de Software 7
La Ingeniera del Software
definiciones
La Ingeniera del Software es la rama de la ingeniera
que crea y mantiene las aplicaciones de software
usando tecnologas y prcticas de las ciencias de la
computacin, manejo de proyectos, ingeniera, el
mbito de la aplicacin, y otros campos.

Segn la definicin del IEEE, "software es la suma total
de los programas de ordenador, procedimientos, reglas,
la documentacin asociada y los datos que pertenecen a
un sistema de cmputo" y "un producto de software es
un producto diseado para un usuario".
Introduccin a la Ingeniera de Software 6/5/2014 8
La ingeniera del software
Introduccin a la Ingeniera de Software
filosofa de coordinacin,
control
y buena gestin
mtodos completos para
todas las fases
mejores tcnicas de
control de calidad
mejores elementos
de programacin
herramientas para automatizar
los mtodos
6/5/2014
9
Modelado
modelado: mtodo bsico de la ciencia
modelo
representacin abstracta de un sistema que da respuesta a preguntas sobre el sistema tiles
cuando se manejan sistemas grandes, pequeos, complicados o caros para tener una
experiencia de primera mano permiten visualizar y comprender sistemas que no existen o
que slo se supone que existen
ejemplos:
biologa: modelos de dinosaurios a partir de restos
fsica: modelos que representan cmo se renen materia y energa en los niveles subatmicos ms
bajos
el sistema en el mundo real seran dinosaurios o partculas subatmicas
Introduccin a la Ingeniera de Software
modelos
6/5/2014 10
Modelado
Los ingenieros de software necesitan
Comprender el ambiente de funcionamiento del sistema:
construyen modelos del dominio del problema.
Comprender los distintos sistemas que podran construir para
evaluar alternativas: construyen modelos del dominio de la
solucin
Tcnicas y herramientas para construir los modelos (por ejemplo,
diagramas de UML)
Introduccin a la Ingeniera de Software
Real i zar transaccin
Pagar recargo por sal do deudor
Comprador
Sol ici tar bienes o servi cios
Confi rmar pedi do
Envi ar factura al comprador
Si stema de
cuentas bancari as
Envi ar avi so
i ni ci ador
Vendedor
i ni ci ador
i ni ci ador
Pagar factura
i ni ci ador
SISTEMA DE PAGOS Y
FACTURACIN
<<extend>>
i ni ci ador
Hojear facturas
Planificar pago
factura
Rechazar
factura
Pagar factura en da
vencimiento
6/5/2014 11
solucin de problemas
Los ingenieros de software buscan una solucin adecuada, en varios pasos:
1. Formular el problema
2. Analizar el problema
3. Buscar soluciones
4. Decidir la solucin ms adecuada
5. Especificar la solucin
Actividades bsicas del desarrollo
1. obtencin de requerimientos
2. anlisis
3. diseo del sistema
4. implementacin
Otras actividades del desarrollo para evaluar la adecuacin de los modelos
revisiones del anlisis: el modelo del dominio del problema se compara con la realidad
del cliente
revisiones del diseo: el modelo del dominio de la solucin se compara con los
objetivos del proyecto
pruebas: el sistema se valida contra el modelo del dominio de la solucin
administracin del proyecto: se compara el modelo del proceso de desarrollo
(calendario y presupuesto) con la realidad (trabajos entregados y recursos gastados)
Introduccin a la Ingeniera de Software 6/5/2014 12
participantes y papeles
participantes: todas las personas involucradas en el proyecto
cliente: encarga y paga el sistema
desarrolladores: construyen el sistema (analistas, diseadores,
programadores)
gerente o director del proyecto: planifica y calcula el presupuesto,
coordina a los desarrolladores y cliente
usuarios finales: los que van a utilizar el sistema
papel (rol)
conjunto de responsabilidades en el proyecto o en el sistema
asociado con un conjunto de tareas y se asigna a un participante
un mismo participante puede cumplir varios papeles
Introduccin a la Ingeniera de Software 6/5/2014 13
Elementos a considerar en la
ingeniera del software
objetivos, requerimientos y restricciones
objetivos:
principios de alto nivel que se utilizan para guiar el proyecto
definen los atributos realmente importantes del sistema (seguridad,
fiabilidad,...)
a veces hay conflicto entre objetivos (por ejemplo, seguridad y bajo coste) que
aumentan la complejidad del proyecto
requerimientos
caractersticas que debe tener el sistema
requerimiento funcional: rea de funcionalidad que debe soportar el sistema
(por ejemplo, proporcionar billetes de tren)
requerimiento no funcional: restriccin que se establece sobre el
funcionamiento del sistema (por ejemplo, proporcionar billetes de tren en menos
de un segundo)
otras restricciones: por ejemplo, utilizacin de un determinado lenguaje,
de una determinada plataforma o de un sistema antiguo que el cliente no
quiere retirar

Introduccin a la Ingeniera de Software 6/5/2014 14
notaciones, mtodos y metodologas
notacin: conjunto de reglas grficas o de texto para representar un
modelo (UML, Unified Modelling Language, es una notacin grfica
orientada a objetos para representar modelos)
mtodo: tcnica repetible para resolver un problema especfico. Por
ejemplo:
un algoritmo de ordenacin es un mtodo para ordenar elementos en una lista
la administracin de la configuracin es un mtodo para el seguimiento de los
cambios
metodologa: coleccin de mtodos para la resolucin de una clase de
problemas.
Introduccin a la Ingeniera de Software 6/5/2014 15
Elementos a considerar en la
ingeniera del software
actividades de desarrollo
diseo
diseo del sistema
definicin de los objetivos de diseo
descomposicin del sistema en subsistemas
abordables por equipos
seleccin de estrategias para la construccin
(plataformas hardware y software, almacenamiento
de datos persistentes, control de acceso,...)
resultado: descripcin de las estrategias,
descomposicin en subsistema

diseo de objetos:
definicin de objetos e interfaces de subsistemas,
reestructuracin del modelo de objetos para lograr los
objetivos de diseo, optimizacin del modelo para
mejorar el rendimiento,...
resultado: modelo de objetos detallado

actividades del diseo
diseo arquitectnico
especificacin de los subsistemas
diseo de interfaz
diseo de componentes
diseo de la estructura de datos
diseo procedimental (algoritmos)

Introduccin a la Ingeniera de Software
Comprador
IU Sol icitud
de pago
Gestor de
pedidos
Confi rmacin
de pedidos
Pl ani fi cador
de pagos
Sol ici tud
de pago
Procesamiento de
soli citudes de pago
Procesamiento
de facturas
Factura
Gestin facturas
comprador
Gestin de planificacin
de pagos
Gestin de
cuentas
6/5/2014 16
Alta Caractersticas-Maq
Baja Caractersticas-Maq
Modificacin Caractersticas-Maq
Operario
(from Val i daci n Usuari os)
Administrador
(from Val i daci n Usuari os)
Validar Usuario
(from Val i daci n Usuari os)
<<include>>
<<include>>
<<include>>
Consulta Caractersticas-Maq
<<include>>
Nombre Alta Caractersticas Mquina
Prioridad Media
Actor Administrador
Extends Ninguno
Includes Validar Usuario
Pre-Condiciones 1. El usuario est identificado.
2. El usuario selecciona la opcin de altas en el
formulario.
Post-Condiciones 1. Los datos de la nueva caracterstica quedan
guardados si el proceso finaliza correctamente.
2. Los datos de la nueva caracterstica no quedan
guardados si se produce algn error durante el
proceso.
Descripcin 1. El sistema muestra el formulario de altas.
2. El usuario introduce los datos.
3. El sistema realiza la validacin de los datos.
4. Si la caracterstica ya existe [A].
5. Si los datos no son correctos [B].
6. El usuario selecciona la opcin de Guardar.
7. El sistema guarda los datos.
8. Si se guarda correctamente se visualiza un mensaje,
si hay algn problema el sistema avisa con un
mensaje de error.
Excepciones El proceso se puede cancelar en cualquier momento.
A. Si la caracterstica ya existe se visualizan sus datos.
B. Datos incorrectos, ir a punto 2.

MENSAJES : Admi ni strador Opci ones Frm
Cl i ente
CTRL Alta
Instal acin
Form_Alta Val idar Datos
INSTALACION
Resul tado Alta
Vi suali zar Mensaje
Sel ecci onar
Crea()
Mostrar(Datos)
Introducir Datos()
Cubri r_Datos()
Comprobar()
Comprobar()
Obtener Datos
Crear_Alta()
Construi r
Construi r
Vi suali zar Resul tado
Crea()
Si no Exi ste
Fi n Si
Fi n Si
Datos Correctos
...
Datos no Correctos
Mostrar
Introduccin a la Ingeniera de Software
Visualizar
Formulario
Comprobar
Datos
Mensaje "Error
Datos"
Comprobar Existencia
de la Instalacin
Visualizar Datos
Instalacin
Guardar Datos
Instalacin
Mensaje
"Error"
Datos Incorrectos
Datos Correctos
Si Exi ste
Mensaje "Instalacin
guardada"
Administrador Validado
Seleccionar
Formulario
Introducir
Datos
Seleccionar
Guardar
No Exi ste
Error al Guardar
Instal aci n Guardada
Administrador (from Alta Mquinas) Sistema (from Validar Usuario)
Introduccin a la Ingeniera de Software
Alta Caractersticas-Maq
Baja Caractersticas-Maq
Modificacin Caractersticas-Maq
Operario
(from Val i daci n Usuari os)
Administrador
(from Val i daci n Usuari os)
Validar Usuario
(from Val i daci n Usuari os)
<<include>>
<<include>>
<<include>>
Consulta Caractersticas-Maq
<<include>>
Nombre Alta Caractersticas Mquina
Prioridad Media
Actor Administrador
Extends Ninguno
Includes Validar Usuario
Pre-Condiciones 1. El usuario est identificado.
2. El usuario selecciona la opcin de altas en el
formulario.
Post-Condiciones 1. Los datos de la nueva caracterstica quedan
guardados si el proceso finaliza correctamente.
2. Los datos de la nueva caracterstica no quedan
guardados si se produce algn error durante el
proceso.
Descripcin 1. El sistema muestra el formulario de altas.
2. El usuario introduce los datos.
3. El sistema realiza la validacin de los datos.
4. Si la caracterstica ya existe [A].
5. Si los datos no son correctos [B].
6. El usuario selecciona la opcin de Guardar.
7. El sistema guarda los datos.
8. Si se guarda correctamente se visualiza un mensaje,
si hay algn problema el sistema avisa con un
mensaje de error.
Excepciones El proceso se puede cancelar en cualquier momento.
A. Si la caracterstica ya existe se visualizan sus datos.
B. Datos incorrectos, ir a punto 2.

6/5/2014 18
actividades de desarrollo
implementacin
traduccin del modelo de diseo (por ejemplo, del modelo de objetos) en
cdigo fuente
incluye:
implementacin de atributos y mtodos de cada objeto
integracin de todos los objetos para que funcionen como un solo sistema
pruebas
pruebas de unidad: comparacin del modelo de diseo con cada objeto y
subsistema
pruebas de integracin: combinaciones de subsistemas y comparacin con el
modelo de diseo del sistema
pruebas del sistema: ejecucin de casos tpicos y excepcionales, y comparacin
con el modelo de requerimientos
objetivo: descubrir la mayor cantidad posible de errores que se puedan reparar
antes de entregar el sistema
mantenimiento
mejoras en el sistema (nuevas funciones, facilidad de uso,...)
correccin de errores
adaptacin a cambios en el entorno (hardware, software, legislacin,...)
actividad ms costosa del ciclo de vida de un producto software
Introduccin a la Ingeniera de Software 6/5/2014 19
el proceso: modelos de desarrollo
proceso
conjunto ordenado de tareas, una serie de pasos que involucran actividades,
restricciones y recursos, que producen una salida determinada
proceso de software: conjunto de actividades necesarias para transformar los
requisitos de un usuario en un sistema software
caractersticas
tiene una serie de actividades principales
utiliza recursos, est sujeto a restricciones y genera productos intermedios y
finales
compuesto por subprocesos que se encadenan de alguna forma
cada actividad tiene sus criterios de entrada y salida, que permiten conocer
cuando comienza y termina dicha actividad
existen diferentes modelos de proceso

Introduccin a la Ingeniera de Software
Proceso de desarrollo
de Software
Requisitos
del usuario
Sistema software
6/5/2014 20
modelo en cascada
Introduccin a la Ingeniera de Software
Requerimentos
y Anlisis
Diseo
Implementacin
Pruebas
Mantenimiento
Recoleccin
y refinamiento de
requisitos
Diseo
rpido
Producto
Refinamiento
del prototipo
Evaluacin del
prototipo por
el cliente
Construccin
del prototipo
Modelo evolutivo
Modelo del proceso unificado
Introduccin a la Ingeniera de Software
Inicio Elaboracin Construccin Transicin
Requisitos
Anlisis
Diseo
Implementacin
Prueba
Flujos de trabajo
fundamentales
Fases
iter #1 iter #2 --- --- --- --- --- iter #n-1 iter #n
Iteraciones
6/5/2014 22
6/5/2014 Introduccin a la Ingeniera de Software 23
A diferencia del programador, el Ingeniero de
software utiliza slidos principios de ingeniera y
tcnicas de direccin en la construccin de
software donde se disminuyen los errores a travs
de la prevencin de los defectos en lugar de la
correccin, su ciclo de desarrollo y se asegura una
larga duracin en la utilizacin del mismo sin tener
que reprogramar. Esto se traduce en beneficios
econmicos
Caso prctico
Conclusin
6/5/2014 Introduccin a la Ingeniera de Software 24

El propsito de la Ingeniera de software es que
los analistas sean capaz de utilizar tcnicas,
mtodos y herramientas avanzadas que faciliten
el desarrollo de todas las fases del proyecto,
asegurando el cumplimiento de estndares de
calidad para proporcionar soluciones
informticas cumpliendo con las
especificaciones del cliente.
bibliografa
Introduccin a la Ingeniera de Software
Bruegge, B., Dutoit, A.H., Ingeniera del Software Orientado a Objetos, cap. 1

Jacobson, I., Booch, G., Rumbaugh, J., El Proceso Unificado de Desarrollo de
Software, cap. 1

Pressman, R.S., Ingeniera del Software. Un enfoque prctico, cap. 1 y 2

Sommerville, I., Ingeniera de Software, cap. 1, 2 y 3


6/5/2014 25

También podría gustarte