Professional Documents
Culture Documents
Software
Se entendi?
Busquemos una definicin
Pues bien,
vamos a conocer un poco de eso.
Ira en un viaje
alrededor de la tierra
en globo, sabiendo
que este esta
controlado por una
computadora?
Como no se es desarrollador de
software por saber programar.
Gracioso, no?
Pues no!
No es gracioso que siendo un profesional tu
trabajo sea tomado en broma
Un programador es
solo un rol del
conjunto de roles
implicados en el
proceso de desarrollo
de software
Si?
Pues bien, los clientes y usuarios de
los proyectos de software, esperan
exactamente lo mismo!
La ingeniera de software es
una idea casi tica sobre como
hacer el software de forma
correcta
Si calidad!!,
La ingeniera es el
conjunto de
conocimientos y
tcnicas cientficas
aplicadas, que se
dedica a la resolucin
u optimizacin de los
problemas que
afectan directamente
a la humanidad
Wikipedia
Ah coincidimos
En resumen
http://es.wikipedia.org/wiki/Ingenier%C3%ADa_del_software
Therac-25
(1985 1987)
Era una mquina empleada en terapia de
radiacin, producida por Atomic Energy of
Canada Limited, notoria por haber sido
objeto del error de software, causando al
menos seis accidentes y que le cost la
vida al menos a cinco personas
Mariner 1
(28 de Julio de 1962)
Un guin en las
instrucciones del
programa de guiado
del cohete provoc la
desviacin del Atlas y
tuvo que enviarse un
comando para su
autodestruccin a los
4 minutos y 53
segundos de su
lanzamiento
A-320 de Air
France
Nada
agradables si
me permiten
decirles!
Bueno, y si es que
parece que la
ingeniera de
software establece
tan claramente lo que
hay que hacer
Cual es el problema?
Acaso no todos lo
hacemos as?
Pues no, a veces pasa que
Y quien dice
que
siempre
sale mal?
A pues no,
no siempre sale
mal
Solo algunas
veces
Veamos
CHAOS Report
Exitoso
33
53
40
31
Fallido
Cancelado
46
49
51
53
28
23
15
18
16
27
26
28
34
29
1994
199
6
1998
2000
2002
2004
Pues bien,
muchos de estos errores son aducidos
principalmente a falta de planeacin y buen
anlisis, cosa que tiene mucho sentido pero
que sin embargo, no es la nica razn
Como seres humanos involucrados en el
proceso de desarrollo, cometemos errores
que de no ser corregidos a tiempo, van
aumentando su costo y consecuencias
Herramientas
Personas
Tiempo
Dinero
Recursos
Parece
Intuitivo no?
Sin
embargo
Seguimos
cayendo en los
mismos
errores una y
otra vez
Pues bien,
muchos de estos errores son aducidos
principalmente a falta de planeacin y buen
anlisis, cosa que tiene mucho sentido pero
que sin embargo, no es la nica razn
Como seres humanos involucrados en el
proceso de desarrollo, cometemos errores
que de no ser corregidos a tiempo, van
aumentando su costo y consecuencias
Qu errores se comenten?
Falta de
comunicacin
Ausencia de objetivos y
metas claras durante la
ejecucin
del proyecto
Mala estimacin
de tiempos
Falta de
planificacin
Carencia de
habilidades en la
ejecucin de un rol
Falta de seguimiento al
avance del proyecto
En la mayora de
proyectos de desarrollo,
los costes de
mantenimiento, superan
por un amplio margen los
costos de desarrollo, se
habla de un 30% en
Desarrollo y un 70% en
Mantenimiento.
Y como
se hace?
Requisitos
nuevos o
modificados
Sistema
nuevo o
modificado
Proceso de
desarrollo
de software
Enfoque a la
calidad
. La gestin total de
la calidad y las
filosofas similares
fomentan una
cultura continua de
mejoras de procesos
que conduce al
desarrollo de
enfoques cada vez
ms robustos para la
ingeniera del
software
Procesos
El proceso define un
marco de trabajo
para un conjunto de
reas clave, las cuales
forman la base del
control de gestin de
proyectos de
software y establecen
el contexto en el cual:
se aplican los
mtodos tcnicos, se
producen resultados
de trabajo, se
establecen hitos, se
asegura la calidad y el
cambio se gestiona
adecuadamente.
Mtodos
Los mtodos de la
ingeniera de software
indican cmo construir
tcnicamente el
software. Los mtodos
abarcan una gran
gama de tareas que
incluyen anlisis de
requisitos, diseo,
construccin de
programas, pruebas y
mantenimiento. Estos
mtodos dependen de
un conjunto de
principios bsicos que
gobiernan cada rea
de la tecnologa e
incluyen actividades de
modelado y otras
tcnicas descriptivas
Herramientas
Las herramientas
de la ingeniera del
software
proporcionan un
soporte automtico
o semi-automtico
para el proceso y
los mtodos, a
estas herramientas
se les llama
herramientas
CASE (ComputerAided Software
Engineering).
final
durante su elaboracin
forma
Practicas y Principios
Actividades
Herramientas
Personas
Proceso de
Software
Roles
Notacin
Artefactos
Anlisis
Diseo
Construccin
Pruebas
Operacin y
Mantenimiento
Individuos e Interacciones
sobre
Procesos y herramientas
sobre
Documentacin exhaustiva
sobre
Negociacin de contratos
sobre
Seguimiento de un plan
Mala
Precaucin
Buena
SW funcionando != Documentation
Propiedad colectiva
Mejora de la calidad iterativamente
Colaboracin != Contrato
Historias de usuario
Programacin en parejas
Releases frecuentes
Reunin Stand-up cada da
Crear buenas arquitecturas
Metodologa gil
Metodologa No gil
Pocos Artefactos
Ms Artefactos
Pocos Roles
Ms Roles
Grupos grandes
La arquitectura es esencial
http://vidanp.wordpress.com/2010/02/01/estandares-de-medida/
Complejidad
Costo beneficio
Robustez del software
Conocimiento disponible
Cada una de esas personas aportar al grupo parte del total de las
capacidades necesarias para llevar a cabo con xito el desarrollo.