You are on page 1of 40

Qu es la Ingeniera

Surgimiento
de Software

Definiciones
Solucin de Problemas
Relacin con otras disciplinas
El Software en la sociedad actual
Etica y Responsabilidad
Calidad del Software
Participantes en el Desarrollo
Ingeniera de Software e Ingeniera de Sistemas
Cambios y Tendencias

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 1

Surgimiento
En los comienzos:
el programador era el usuario
los problemas a resolver bien conocidos y
simples

Desarrollo de las computadoras:


aparece la figura del programador especializado
la mayor potencia de los equipos permite atacar
problemas ms complejos
Se habla de la Crisis del Software

El trmino Ing. de Software aparece por


1ra. vez en 1968
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 2

Definiciones
Software: Programas de computador,
procedimientos, y la documentacin y los datos
posiblemente asociados 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.

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 3

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:
Tcnicas, Mtodos
Herramientas (mejorar resultado o eficiencia)
Procedimientos (combinan mtodos y
herramientas)
Paradigmas (estilo de la solucin)
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 4

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 software (cundo y cmo aplicar, cundo comenzar y
terminar, qu tcnica es apropiada, cmo evaluarla), p.e. plan
de prueba, recopilar requerimientos

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

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 5

Relacin con otras disciplinas


Ciencias de la Computacin aporta:
Teoras
Funciones de Computadoras

Cliente trae:
Problema

Ingeniera de Software (2) desarrolla:


Mtodos,Herramientas, Procedimientos,
Paradigmas para resolver problemas

Ingeniera de Software (1) resuelve


problemas
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 6

Ciencias de la
Computacin

Teoras

Funciones
de las
Computadoras

Ingeniera de
Software (2)
Herramientas y
Tcnicas para
resolver problemas
07/19/15

Ing. de Software

Cliente

Problema

Ingeniera de
Software (1)

Solucin
Qu es la Ing. de Sw - 7

Relacin con otras disciplinas


Programacin -Programa-Producto-Sistema
Un programa
x3

x3

Un sistema de programas

Multiplicacin de esfuerzo

Un producto de software x3

x3

Un producto sistema de programas

Ingeniera: Construccin de artefactos


cumpliendo con restricciones
Arte ms que Ciencia (hacer ms que saber)
Plazo, Costo, Calidad, Otras
Administracin
Proyectos, Recursos Humanos
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 8

Software en la Sociedad Actual


Dnde no est presente?
Energa
Comunicaciones
Automviles
Electrodomsticos
Equipos mdicos
...
Crisis del Software?
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 9

Etica y Responsabilidad
Repercusiones de fallas en el software:
prdidas financieras
riesgo a la seguridad
...

Ms all de las fallas:


Impacto social
Calidad de vida
Cuestiones legales

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 10

Ing. de SW una profesin?


SWEBOK IEEE 2004
Software Engineering Body of Knowledge

Cdigo de tica ACM IEEE-CS


En su versin corta establece

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 11

Los ingenieros de software


actuarnenforma congruente con el inters social
actuarn de manera que se concilien losmejores intereses de sus
clientes y empresarios, congruentemente con el inters social
asegurarn que sus productos y modificaciones correspondientes
cumplen los estndares profesionales ms altos posibles
mantendrn integridad e independencia en su juicio profesional
gerentesy lderes promovern y se suscribirn a un enfoque tico
en la administracin del desarrollo y mantenimiento de software
incrementarn laintegridad y reputacin de la profesin
congruentemente con el inters social
apoyarn y sern justos con sus colegas
participarn toda su vida en el aprendizaje relacionadoconla
prctica de su profesin y promovern un enfoque tico en la
prctica de la profesin
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 12

Calidad
Problemas:
Plazo
Costo respecto a presupuesto
Utilidad
Requerimientos oscuros o cambiantes
Fallas
Rigidez
Alto costo de mantenimiento
Riesgos
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 13

Calidad (falta-falla)

puede generar

un error humano

una falta
(interna)

07/19/15

?!

que puede generar

Ing. de Software

una falla
(externa)

Qu es la Ing. de Sw - 14

Calidad - Visiones
Qu es la Calidad?
Visin:
Trascendente -se reconoce pero no se puede definir
del Usuario - adecuacin al uso
del Productor- adecuacin a las especificaciones
del Producto - caractersticas especficas
comportamiento externo (visible para todos)
caractersticas internas (normalmente slo visibles
al productor)

basada en el Valor - cunto estara dispuesto a


pagar
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 15

Calidad - Visiones(2)
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
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 16

Correctness
Reliability
Efficiency
Integrity
Usability
Maintainability
Testability
Flexibility
Portability
Reusability
Interoperability
07/19/15

Ing. de Software

Traceability
Completeness
Consistency
Accuracy
Error tolerance
Execution efficiency
Storage efficiency
Access control
Access audit
Operability
Training
Communicativeness
Simplicity
Conciseness
Instrumentation
Self-descriptiveness
Expandability
Generality
Modularity
Software system indepe
Machine independence
Communications commo
Qu es la Ing. de Sw - 17
Data

Calidad - Visiones (4)


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)

Qu relacin habr entre


factores internos y externos?
factores del proceso y del producto?
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 18

Calidad - Visiones(5)
En el contexto del Negocio
Valor Tcnico - Valor para el Negocio

Retorno de la Inversin (Negocio)


Perodo de Repago
Tasa de Retorno
Valor Actual de los Flujos de Caja

Retorno de la Inversin (Software)


Factores de Costo, Beneficios

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 19

Calidad - Valor para el negocio

Esfuerzo

Dlares

Facilities
Software costs
Hardware costs
Materials
General
Assessments

SCE costs
IR&D
Process
Documentation
Quality group
Software process group
General
0%

10%

30%
20%
40%
% de entrevistas

50%

60%

70%

Disparidad de factores considerados en la definicin de ROI


en SW entre gobierno de US y sus proveedores
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 20

Quines participan
Desarrollo a Medida
Cliente (solicita)
Desarrollador construye
Usuario

COTS (Commercial Off The Shelf)


Desarrollador subcontrata parte
Producto llave en mano
Personalizacin
Integracin

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 21

CLIENTE

Patrocina el desarrollo
del sistema

$$$,
necesidades

USUARIO

Obligacin
contractual

Usa el
sistema
Necesidades

DESARROLLADOR
Constru
ye
el
sistema

Sistema de software
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 22

Analista

Diseo del Sistema

Diseador

Diseo del programa

Programador

Implementacin del
programa
Prueba Unitaria

Tester

Prueba de Integracin
Prueba del Sistema
Liberacin del Sistema

Roles de los Desarrolladores

Paso en el Desarrollo de Software

Anlisis y Definicin de
Requerimientos

Capacitador
Mantenimiento

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 23

Ing.Software y de Sistemas
El Software como componente de un
sistema:
Hardware
Software
Personas

Sistema
Lmite
Interaccin con el exterior
Componentes y sus relaciones
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 24

Sistema de Informes
Sistema de
Administracin de los datos
Sistema de Comunicacin
de ubicaciones remotas a central
Sistema de clculo
de los datos remotos
Sistema de
recopilacin de
datos remotos

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 25

Cambios y Tendencias
Tecnologa de Objetos

Problemas con
Modelo en Cascada

CAMBIOS EN
INGENIERIA DE
Desktop computing
SOFTWARE
Inversin de relacin
de costo entre HW y SW
07/19/15

Interfaces
Grficas

Ing. de Software

Tiempo para
salir al mercado

Interconexin
en Redes
Qu es la Ing. de Sw - 26

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
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 27

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

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 28

Abstraccin
Dispositivo elctrico

Sensor

Sensor de Agua

07/19/15

Ing. de Software

Sensor de Aire

Qu es la Ing. de Sw - 29

Mtodos de Notacin Anlisis y Diseo

Construir Modelos y verificar


completitud y consistencia
Usar notacin estndar para
ayudarnos a comunicar y
documentar las decisiones

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 30

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

El usuario se siente cmodo con la


apariencia y forma de interaccin?
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 31

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
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 32

Arquitectura- cmo descomponer


a partir de las funciones: asignar
funciones a mdulos
orientada a los datos: a partir de las
estructuras de datos externas
orientada a eventos
diseo de afuera hacia adentro: basada
en las entradas del usuario al sistema
diseo orientado a objetos: basado en
identificar clases de objetos y sus
interrelaciones
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 33

Proceso
Proceso de desarrollar software
(organizacin y disciplina en las
actividades)
contribuir a la calidad del software y
a la velocidad con la que se
desarrolla

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 34

Desarrollo
Controlado

Proceso- especificidad
Aplicaciones para
toda la
empresa o divisin
Aplicaciones
Departamentales

Desarrollo
Rpido
de aplicaciones
07/19/15

Mono-usuario,
herramientas para
PC de escritorio

Ing. de Software

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
Qu es la Ing. de Sw - 35

Reuso
Sacar partido de los elementos
comunes entre aplicaciones
reutilizando elementos de desarrollos
previos
Componentes Reusables como
bienes de activo del negocio

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 36

Mediciones
Cuantificando dnde estamos y lo
que podemos, describimos nuestras
acciones y sus resultados en un
lenguaje matemtico comn que nos
permite evaluar nuestro progreso.

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 37

Herramientas y Ambientes Integrados


Utilizar herramientas para mejorar el
desarrollo de software, ayudan en:
anlisis y diseo
registrar el avance
depurar programas
probar programas

07/19/15

Ing. de Software

Qu es la Ing. de Sw - 38

Preguntas
Brinde al menos una definicin de Ing. de
software (IS)
Cuntos aos tiene como disciplina?
Con qu otras disciplinas est relacionada?
Qu se entiende por crisis del software?
Cmo afecta a la IS que el software est
presente en las ms diversas reas?
Qu implicancias tiene sobre la tica y
responsabilidad?
Qu relacin tiene la IS con cuestiones
legales?
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 39

Preguntas (2)
Cul es la diferencia entre falta (o
defecto) y una falla del software?
Cundo es posible evaluar los factores de
calidad externos de un producto de
software?
Qu problemas plantea la evaluacin de
los factores de calidad externos durante el
proceso de desarrollo?
Qu nociones fundamentales han
persistido?
07/19/15

Ing. de Software

Qu es la Ing. de Sw - 40