Académique Documents
Professionnel Documents
Culture Documents
Ingeniera de Software?
Ingeniera de Software
Tecnlogo en Informtica
Agenda
Surgimiento
Definiciones
Solucin de Problemas
Cambios y Tendencias
Surgimiento
En los comienzos:
el programador era el usuario
los problemas a resolver bien conocidos y simples
Surgimiento
Crisis del Software
No se obtienen resultados esperados
Definiciones
Software
Programas de computador, procedimientos, la
documentacin y los datos posiblemente relacionados con
la operacin de un sistema de computador IEEE 90.
... (el ingeniero) aplica el mtodo y enfoque cientfico a la
solucin de problemas.
Ingeniera de Software
(1) Aplicacin de un enfoque sistemtico, disciplinado y
cuantificable al desarrollo, operacin y mantenimiento de
software, esto es, la aplicacin de la ingeniera al
software.
(2) El estudio de enfoques como en (1) - IEEE 90
(*) IEEE: Institute of Electrical and Electronics Engineers
Solucin de Problemas
Solucionar un problema complejo
Anlisis: en subproblemas ms simples
Sntesis de una solucin al problema a partir de las
soluciones a los subproblemas
Recurriendo a:
Mtodos (o Tcnicas)
Herramientas (mejorar resultado o eficiencia)
Procedimientos (combinan mtodos y herramientas)
Paradigmas (estilo de la solucin)
Definiciones
Tcnica
Procedimiento tcnico para construir o evaluar software que
requiere habilidades y produce un resultado tcnico, p.e. probar,
codificar, etc.
Mtodo
Es un procedimiento para gestionar la aplicacin de tcnicas de
Herramienta
Producto de software que facilita la ejecucin de una tcnica o
mtodo
Procedimiento
Combinacin de mtodos, tcnicas y herramientas
Paradigma
Filtro conceptual que determina cmo percibimos/interpretamos
Cliente trae:
Problema
Ciencias de la
Computacin
Teoras
Funciones
de las
Computadoras
Ingeniera de
Software (2)
Herramientas y
Tcnicas para
resolver problemas
Cliente
Problema
Ingeniera de
Software (1)
Solucin
Ingeniera
Construccin de artefactos cumpliendo con restricciones
Arte ms que Ciencia (hacer ms que saber)
Considerar Plazo, Costo, Calidad, Otras
Administracin
Proyectos, Recursos Humanos
Energa
Comunicaciones
Automviles
Electrodomsticos
Equipos mdicos
...
tica y responsabilidad
Repercusiones de fallas en el software:
prdidas financieras
riesgo a la seguridad
...
Calidad
Problemas:
Plazo
Costo respecto a presupuesto
Utilidad
Requerimientos oscuros o cambiantes
Fallas
Rigidez
Alto costo de mantenimiento
Riesgos
Calidad (falta-falla)
puede generar
un error humano
(interna)
?!
una falla
(externa)
Calidad - Visiones
Qu es la Calidad?
Visin:
Calidad - Visiones
Usuario:
satisfacer necesidades/expectativas (utilidad, tiempo de
respuesta)
esfuerzo necesario (facilidades de aprendizaje y uso)
sin inconvenientes (frecuencia e impacto de fallas)
Implementador:
cantidad y tipo de faltas
facilidad de entender
bajo impacto de las modificaciones
Calidad - Visiones
Segn la visibilidad:
factores externos (visibles a todos)
factores internos (visibles a los implementadores)
Atinentes al:
Producto (una vez que el producto ya existe)
Proceso de Produccin (mientras se produce)
Quines participan?
Desarrollo a Medida
Cliente (solicita)
Desarrollador construye
Usuario
Personalizacin
Integracin
CLIENTE
Patrocina el desarrollo
del sistema
$$$,
necesidades
USUARIO
Obligacin
contractual
DESARROLLADOR
Construye
el sistema
Usa el
sistema
Necesidades
Sistema de software
Anlisis y Definicin de
Requerimientos
Diseador
Programador
Implementacin del
programa
Prueba Unitaria
Tester
Prueba de Integracin
Prueba del Sistema
Capacitador
Mantenimiento
Analista
Ingeniera de SW y Sistemas
El Software como componente de un sistema:
Hardware
Software
Personas
Sistema
Lmite
Interaccin con el exterior
Componentes y sus relaciones
Cambios y Tendencias
Tecnologas
Problemas con
Modelo en Cascada
Cloud computing
Inversin de relacin
de costo entre HW y SW
CAMBIOS EN
INGENIERIA DE
SOFTWARE
Web 2.0
Tiempo para
salir al mercado
Interconexin
en Redes Internet
Cambios y Tendencias
Nociones Fundamentales:
Abstraccin
Mtodos y Notaciones para Anlisis y Diseo
Prototipacin
Arquitectura del Software
Proceso de Software
Reuso
Mediciones
Herramientas y Ambientes Integrados
Abstraccin
Es una decripcin del problema a cierto nivel de
generalizacin que permite concentrarnos en los
aspectos esenciales del problema, sin preocuparnos
de detalles
Identificar clases de objetos que permiten agrupar
elementos
Formar jerarquas
Abstraccin - Ejemplo
Dispositivo elctrico
Sensor
Sensor de Agua
Sensor de Aire
Prototipos
Construir una pequea versin de un sistema
para:
ayudar al usuario y al cliente a identificar los
requerimientos clave
demostrar la factibilidad de un diseo o enfoque
Arquitectura
La arquitectura de un sistema lo describe en
trminos de un conjunto de unidades
arquitectnicas, y de cmo esas unidades se
relacionan entre s
Existen distintos estilos arquitectnicos y
distintos enfoques para identificar las
unidades arquitectnicas
Proceso
Proceso de desarrollar software
Organizacin y disciplina en las actividades
Desarrollo
Controlado
Proceso Especificidad
Aplicaciones
para toda la
empresa o
divisin
Aplicaciones
Departamentales
Desarrollo
Rpido
de aplicaciones
Mono-usuario,
herramientas para
PC de escritorio
Mision-critica
Multi-usuario
Multi-plataforma
2-3 capas
Visin/Alcance limitados
Riesgo bajo/medio
Mono/multi-plataforma
1-2 capas
Paquetes/desarrollo
minimo
Bajo costo/bajo
riesgo
Plataforma nica
Reuso
Sacar partido de los elementos comunes entre
aplicaciones, reutilizando elementos de
desarrollos previos
Componentes reusables como bienes de
activo del negocio
Mediciones
Cuantificando dnde estamos y a dnde
podemos llegar, describimos nuestras
acciones y resultados en un lenguaje
matemtico comn, que nos permite evaluar
nuestro progreso
depurar programas
probar programas
Preguntas
1. Brinde al menos una definicin de Ingeniera de Software
(IS)
2. Cuntos aos tiene como disciplina?
3. Con qu otras disciplinas est relacionada?
4. Qu se entiende por crisis del software?
5. Cmo afecta a la IS que el software est presente en las
ms diversas reas?
6. Qu implicancias tiene sobre la tica y responsabilidad?
7. Cul es la diferencia entre falta (o defecto) y una falla del
software?
8. Cundo es posible evaluar los factores de calidad externos
de un producto de software?
9. Qu nociones fundamentales han persistido?