2. [C. Ebert, C. Jones “Embedded Software: Facts, Figures and Future”. IEEE Computer, 2009]
El software juega ya un
papel clave en casi todas las
aplicaciones críticas…
2
3. Software, Software, Software…
Google, Yahoo! y hotmail cuentan con decenas de miles de
servidores cada uno, de diferentes clases
Si tienes 1 máquina, suele durar 3 años (~1.000 días)
Si tienes 10.000 máquinas, pierdes 10 al día
Las máquinas más fiables se rompen menos, pero también se
rompen (a menudo…)
La fiabilidad ha de venir del software!
“Underneath the Covers at Google: Current Systems and Future Directions” Jeff Dean (Google) 2008
https://sites.google.com/site/io/underneath-the-covers-at-google-current-systems-and-future-directions 3
12. La curva de fallos del HARDWARE
Fallos de juventud
Índice de
Fallos
Tiempo
Desgaste
12
13. La curva de fallos del SOFTWARE
Curva ideal
Índice de
Fallos
Curva real
cambio
Incremento del
índice de fallos
por efectos laterales
Tiempo
13
14. La gestión de los proyectos software...
…actualmente sólo un
12% de los proyectos de
software se terminan en
el tiempo previsto y con
el coste estimado.
…frente al 78% de los
proyectos realizados en el
seno de ingenierías
tradicionales, que lo
hicieron en tiempo y
presupuesto.
Curiosamente, el 90% de los
proyectos de software que
acabaron en tiempo y
presupuesto usaron métodos
y herramientas de
Ingeniería del Software.
12% 78% 90%
14
15. LA CRISIS DEL SOFTWARE
Parece que la inventiva, la falta de procesos explícitos y de métodos de ingeniería a la hora de
abordar proyectos complejos empieza a pasar factura...
PROYECTOSQUECUESTANMÁS DEL DOBLE
DE LO ESTIMADO
No se sabe estimar con precision lo
que cuesta un Proyecto Software.
APLICACIONESQUE NO CUMPLEN LOS
REQUISITOSDELCLIENTE
¿Cómo se capturan y gestionan
esos requisitos?
APLICACIONESMUY INEFICIENTES
No se han simulado ni estimado su
comportamiento.
PROYECTOSQUETARDANMÁS DE 10VECES
DE LO QUESE PENSABA
No se sabe estimar con precision la
duración de un Proyecto Software.
El 10% de los Proyectos Software fracasa completamente
16. LA CRISIS DE LA PROFESIÓN
Cualquier científico o
ingeniero sabe programar…
¿Pero basta con eso para construir
aplicaciones software?
La Sociedad ni reconoce ni demanda
INGENIEROS de SOFTWARE para
construir aplicaciones…
17. ¿Permitirías que te operara una persona que no fuera médico, o que te defendiera una
persona que no fuera abogado?
¿Qué pasaría si un ingeniero civil pretendiese construir un puente pero no fuera capaz de
estimar lo que tardará, cuanto costará, o el peso que podrá sostener finalmente?
¿Qué pasaría si un arquitecto pretendiese construir una casa sin hacer sus planos, proyectos
o maquetas, o sin un plan que permita determinar con exactitud los costes y tiempos?
Algunas preguntas…
¿Permitirías que tu propio cirujano te interviniera sin hacer los estudios respectivos para
obtener las evidencias del problema de salud que tienes?
17
18. LA INGENIERÍA DEL SOFTWARE
Software Engineering is
the application of a
systematic, disciplined,
quantifiable approach to the
development, operation,
and maintenance of
software, and the study of
these approaches
(IEEE 610.12)
Software
Engineering
Requirem
ents
Design
Cons
truction
Testing
Maintena
nce
Config.
Mngt
Managen
ent
Processes
Tools &
Methods
Quality
Profession
Body of Knowledge: www.swebok.org (IEEE CS)
21. La mayoría de los estudios en informática incorporan introducciones a la
Ingeniería del Software en los primeros cursos, y algunas materias propias de IS
(gestión de proyectos, mantenimiento y pruebas, calidad, etc.).
Esto terminará consiguiendo que en 10 – 15 años su implantación en las
empresas sea incuestionable y efectivo.
Suele usarse el SWEBOK como referencia para el diseño de los planes de
estudio.
Actualmente se ofrecen 7 Grados y 13 Másteres específicos sobre Ingeniería del
Software, en 17 universidades españolas. https://www.educacion.gob.es/ruct/
La docencia en Ingeniería de Software (PROS)
21
22. No se cubren todos los temas, especialmente los relativos a la profesión (código
ético, temas legales, certificación y acreditación, normalización,…)
Sería necesario complementar los estudios universitarios con certificaciones
profesionales que aporten más valor a los estudios
Falta una relación más estrecha entre las Universidades y las empresas
(prácticas, desarrollos conjuntos de TFG y TFM, tesis en empresas,…)
Falta profesorado universitario con falta de experiencia real en proyectos
empresariales y/o industriales
La docencia en Ingeniería de Software (CONS)
22
Sería interesante una mayor influencia del tejido industrial en los programas
universitarios (asignaturas optativas, seminarios, titulaciones propias, etc.)
24. Todavía existen muchas empresas que distan mucho de gestionar el desarrollo
de software de una forma sistemática, disciplinada, predecible y cuantificable
El número de empresas certificadas en niveles 3, 4 o 5 de es de 70 en toda
España, de las cuales 60 tienen certificado el nivel 3 y sólo 10 el nivel 5
A nivel internacional las empresas españolas certificadas CMMI suponen menos
del 3% de las empresas certificadas CMMI en todo el mundo
Ya nadie cuestiona la necesidad de utilizar métodos y prácticas de Ingeniería del
Software. Las empresas han visto que no es posible realizarlo sin un enfoque de
verdadera ingeniería, y que los resultados merecen la pena
24
La Práctica industrial en ingeniería del software
25. 25
Los clientes no demandan todavía la adopción de prácticas de Ingeniería del Software, o al
menos la presión sobre los fabricantes de software no es suficiente
Rechazo industrial: industria cansada de las maravillas de los nuevos métodos, tecnologías,
herramientas y lenguajes que luego no han funcionado bien sino todo lo contrario
La creciente complejidad de los requisitos y la rápida evolución de las tecnologías hacen que
la inversión necesaria para mantenerse siempre actualizado sea alta (¿ROI?)
Muchas herramientas y métodos de Ingeniería del Software aún no están lo suficientemente
maduros como para ser implantados en las empresas. Lenta transferencia de tecnología
Factores que limitaN la adopción de prácticas de IS
27. ISO/IEC/IEEE 23026:2015
ISO/IEC/IEEE 23026:2015 Systems and
software engineering -- Engineering and
management of websites for systems,
software, and services information
Abstract
ISO/IEC/IEEE 23026:2015 defines system
engineering and management requirements for
the life cycle of websites, including strategy,
design, engineering, testing and validation, and
management and sustainment for Intranet and
Extranet environments.
27
28. ISO/IEC 23026:2006
ISO/IEC 23026:2006: Software
Engineering -- Recommended Practice for
the Internet -- Web Site Engineering, Web
Site Management, and Web Site Life Cycle
Abstract
ISO/IEC 23026:2006 defines recommended
practices for World Wide Web page engineering
for Intranet and Extranet environments, based on
World Wide Web Consortium (W3C®) and related
industry guidelines.
28
29. Topics about standards
29
Does he looks like
needing standards?
Cliches about standards
[Inspired by B.C. Pierce’s slides “Types considered harmful”, 2008 http://www.cis.upenn.edu/~bcpierce/papers/harmful-mfps.pdf]
32. Topics about standards
32
We do not need standards for
developing our products, they
are for our internal use only
Cliches about standarDs
33. Topics about standards
33
Cliches about standarDs
Standards do not apply to our
development processes. Our in-house
ones are much better and also tuned to
our particular characteristics.
34. Topics about standards
34
Don’t waste your time with standards.
You do not even need to invent new ones.
Start coding now!
Cliches about standarDs
37. Can you do this
without
international
standards?
Topics about standards
37
Cliches about standarDs
38. “An established norm or requirement about technical systems”
• International standard, una norma de aplicación en todo el mundo
• Open standard, una norma que está disponible de forma abierta
• De facto standard, product or system with market dominance
• Internet standard, una especificación ratificada como “open standard” por el
Internet Engineering Task Force
Las normas permiten ordenar el mercado , garantizar la compatibilidad y
la interoperabilidad, facilitar la reutilización y asegurar la inversión
Standard
38
standarD
39. “Entidades cuya misión principal es el desarrollo y mantenimiento de normas”
• Suelen ser entidades independientes y cuyo negocio es la normalización
Relacionadas con la Ingeniería del Software:
• International Organization for Standardization (ISO)
• International Electrotechnical Commission (IEC)
• International Telecommunication Union (ITU)
• Internet Engineering Task Force (IETF)
• World Wide Web Consortium (W3C)
• IEEE (Computer Society, Standards Association)
• Object Management Group (OMG)
Organizaciones de normalización regionales (Europa)
• European Committee for Standardization (CEN), European Committee for Electrotechnical
Standardization (CENELEC), European Telecommunications Standards Institute (ETSI)
En España tenemos a AENOR
Standardization Organizations
39
standarDAIZATION organizations
40. No se suelen enseñar en las titulaciones universitarias de informática, o incluso se enseñan
con cierto desdén.
En los temas de tecnología, es preciso mantener un equilibrio entre la velocidad de
aparición de nuevas tecnologías, su vida útil, y la creación de normas.
Las normas internacionales se usan poco en la industria (sobre todo en las empresas
pequeñas, que son las que mueven el 60% del desarrollo de software para PYMES)
Sin embargo…
Muchas normas están creadas por comités, pero no recogen prácticas industriales
consensuadas realmente.
40
42. Certificación: “Reconocer y hacer constar la conformidad con respecto a
una norma”. Da lugar a un certificado.
• Productos y Aplicaciones
• Procesos
• Profesionales
Acreditación: “Reconocer y hacer constar la competencia técnica de una
organización, empresa o laboratorio para la realización de determinadas
actividades de evaluación de la conformidad”.
• Se asegura la fiabilidad de los resultados y los certificados emitidos
Standardization Organizations
42
Certificación y acreditación
43. La Certificación de productos y aplicaciones software está aún en
pañales
• ¿Qué normas existen? ¿Qué organizaciones certifican productos?
La Certificación de Procesos comienza a estar más extendida
• CMMI, ITIL, … Existen empresas y organizaciones certificadoras
La Certificación de Profesionales está aún en discusión
• Contamos con el SWEBOK
• IEEE, BSI y otras están a favor, pero ACM absolutamente en contra
• En España tenemos además la peculiaridad de los Colegios Profesionales
• La sociedad reconoce certificaciones concretas (CISSP, SAP, PMP, MSCD, CCNA, …)
pero no más genéricas como Ingeniero Informático o Ingeniero de Software
• La Informática no tiene competencias profesionales
Standardization Organizations
43
Certificación y acreditación
44. En España es ENAC el organismo encargado de las actividades
de acreditación, reconociendo la competencia técnica de
aquellos laboratorios y centros que realizan actividades de
certificación y/o análisis.
Existe una norma general de referencia: ISO/IEC 17025
Comienzan a aparecer Laboratorios de Evaluación de la Calidad de
Software acreditados por ENAC
Esencial para:
• Mejorar la calidad de los productos
• Aumentar la confianza de nuestros usuarios y de la sociedad en general en la
Ingeniería del Software
• Incrementar nuestra credibilidad
Standardization Organizations
44
acreditación
46. La Sociedad no reconoce la Informática como profesión
Los Informáticos no se reconocen a ellos mismos como profesión
Profesión: Empleo, facultad u oficio que alguien ejerce y por el que
percibe una retribución
• Cuerpo de conocimiento
• Normalización (calidad)
• Código ético, deontológico y/o de buenas prácticas
• Responsabilidad civil
• Campo de aplicación concreto y con experiencia
• Competencias profesionales y Regulación
• (Colegio o Asociación Profesional)
Standardization Organizations
46
La profesión
http://www.cepis.org/
47. Un Código Ético:
constituye una declaración expresa de los valores y principios que deben guiar la conducta de todos los
profesionales que integran y colaboran con una Asociación para el desarrollo responsable de su actividad
profesional, tanto en sus relaciones con sus empleadores, empleados, clientes, proveedores, instituciones
públicas y privadas, colaboradores externos y la sociedad en general
Implica que un profesional, en este caso un técnico, no es solo responsable de los aspectos técnicos
del producto, sino también de sus consecuencias económicas, sociológicas y culturales
Dan una identidad a los informáticos, es símbolo de sus estatus profesional y parte de su definición
como profesionales. Aumenta la reputación de los profesionales y la confianza del público
Aspectos éticos a considerar dentro de la Ingeniería de Software
• Mal uso del software o de los ordenadores
• Confidencialidad y Competencia
• Derechos de propiedad intelectual
• Protección de los clientes, empleadores, compañeros y subordinados
http://www.sistedes.es/informes-recursos/codigo-etico-y-practicas-profesionales
Standardization Organizations
47
Código ético
49. España está entre los primeros países en número de publicaciones en
Ingeniería de Software
• USA, China, UK, Alemania, Japón, Francia, Canada, Italia, India y España.
España es la primera entre todos los países UE, más Noruega y Suiza, en
crecimiento de publicación de artículos en Ingeniería de Software.
Haciendo una regresión entre el producto interior bruto y las
publicaciones en IS (a modo de estimación del coste de publicación por
inversión) los países por encima de la línea son: Canadá, España y China.
[Novatica, Abril 2012]
Standardization Organizations
49
La Investigación
53. 34 grupos fuertes que investigan y desarrollan aplicaciones usando
técnicas de Ingeniería del Software
Amplia cobertura del territorio español, con nodos en casi todas las
Escuelas de Ingeniería Informática
Sistedes es la Asociacion Española en Ingeniería de Software y
Tecnologías de Desarrollo de Software www.sistedes.es
JISBD son las Jornadas nacionales de
Ingeniería del Software y Bases de Datos
Standardization Organizations
53
La Investigación En ESPAÑA
55. Definir y aclarar a la Sociedad (y a nosotros mismos) lo que es la
profesión de Ingeniero de Software
Usar normas internacionales de referencia en todos los ámbitos
Contar con esquemas de certificación de Productos, Procesos, Servicios
y Profesionales comúnmente aceptados
Contar con centros y laboratorios acreditados para emitir tales
certificados de conformidad, que aseguren el cumplimiento de los
requisitos de calidad establecidos por normas internacionales
Mejorar nuestra cualificación como ingenieros de software (cambio en la
docencia universitaria)
Buscar vías de colaboración universidad-empresa-administraciones
Standardization Organizations
55
TEMAS prioritarios (vision personal)
56. Gracias por
Su atención
Antonio Vallecillo
Universidad de Málaga
ETSI Informática
29071 Málaga. Spain
av@lcc.uma.es
www.lcc.uma.es/~av
presidente@sistedes.es
www.sistedes.es