Documentos de Académico
Documentos de Profesional
Documentos de Cultura
net/publication/316595734
CITATIONS
1 author:
Maximiliano Cristiá
Centro Internacional Franco-Argentino de Ciencias de la Información y de Sistemas (CIFASIS)
96 PUBLICATIONS 197 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Maximiliano Cristiá on 30 April 2017.
Maximiliano Cristiá
CIFASIS – UNR
cristia@cifasis-conicet.gov.ar
NATO – 1968
Enfoque sistemático, disciplinado y cuantificable del desarrollo,
operación y mantenimiento de software.
Parnas – 1978
La construcción de múltiples versiones de un software llevada
a cabo por múltiples personas.
Ghezzi – 1991
Construcción de software de una envergadura o complejidad
tales que debe ser construido por equipos de ingenieros.
Jackson – 1998
La ingeniería tradicional es altamente especializada y se basa
en colecciones de diseños estándar o normalizados. ¿Hay
especialidades en la Informática o cualquiera hace cualquier
cosa? ¿Se basa la producción de software en diseños
estándar? ¿Puede?
Parnas – 1997
En resumen...
Máquinas de software
No construye el hardware, sino el comportamiento y las
propiedades que lo harán útil para algo específico.
Escribe descripciones
La actividad central del desarrollo de software es la
descripción.
Cualquier desarrollo de software requiere muchas
descripciones.
Máquinas de software
No construye el hardware, sino el comportamiento y las
propiedades que lo harán útil para algo específico.
Escribe descripciones
La actividad central del desarrollo de software es la
descripción.
Cualquier desarrollo de software requiere muchas
descripciones.
Máquinas de software
No construye el hardware, sino el comportamiento y las
propiedades que lo harán útil para algo específico.
Escribe descripciones
La actividad central del desarrollo de software es la
descripción.
Cualquier desarrollo de software requiere muchas
descripciones.
d o c u m e ntar
Requerimientos del
usuario (R) R
Única descripción
v e rifi c a r
v e rifi c a r
informal
Diseño de la estructura del S D
programa (D)
Especificación funcional
del programa (S) P
Programa (P) d o c u m e ntar
25
Situación actual líneas de Situación profesional
requerimientos
del usuario
R
250 líneas de
S
especificación formal
2.500.000 de transistores
25
Situación actual líneas de Situación profesional
requerimientos
del usuario
R
250 líneas de
S
especificación formal
2.500.000 de transistores
25
Situación actual líneas de Situación profesional
requerimientos
del usuario
R
250 líneas de
S
especificación formal
2.500.000 de transistores
Sin garantía
Casi ningún programa se entrega con garantía. ¿Podemos
decir que el software es el resultado de una ingeniería cuando
todos los productos de otras ingenierías tienen garantía?
Sin garantía
Casi ningún programa se entrega con garantía. ¿Podemos
decir que el software es el resultado de una ingeniería cuando
todos los productos de otras ingenierías tienen garantía?
Ariane-5
Hito en el proyecto espacial europeo; terminó en desastre
debido a una falla en el software que controlaba el movimiento
vertical.
Therac-25 (radioterapia)
Dispositivo médico de radioterapia para el tratamiento del
cáncer. Se reemplazaron ciertos controles de hardware por
software. El software falló y causó la muerte de varias
personas por sobredosis.
FBI
Gastó 170 millones de dólares en el Virtual Case File para
luego abandonarlo completamente.
Ariane-5
Hito en el proyecto espacial europeo; terminó en desastre
debido a una falla en el software que controlaba el movimiento
vertical.
Therac-25 (radioterapia)
Dispositivo médico de radioterapia para el tratamiento del
cáncer. Se reemplazaron ciertos controles de hardware por
software. El software falló y causó la muerte de varias
personas por sobredosis.
FBI
Gastó 170 millones de dólares en el Virtual Case File para
luego abandonarlo completamente.
Ariane-5
Hito en el proyecto espacial europeo; terminó en desastre
debido a una falla en el software que controlaba el movimiento
vertical.
Therac-25 (radioterapia)
Dispositivo médico de radioterapia para el tratamiento del
cáncer. Se reemplazaron ciertos controles de hardware por
software. El software falló y causó la muerte de varias
personas por sobredosis.
FBI
Gastó 170 millones de dólares en el Virtual Case File para
luego abandonarlo completamente.
BBC (2008-2013)
Herramienta de producción DMI (Iniciativa de Medios
Digitales). El proyecto debía terminarse en 18 meses con un
presupuesto de 82M libras. Luego de 5 años el proyecto fue
abandonado con un costo de 100M de libras.
Novopay (2012-2013)
Sistema de pago a maestros y personal del sistema educativo
de Nueva Zelanda. Se detectaron más de 18.000 liquidaciones
erradas. Se detectaron más de 500 errores en el sistema.
Costo: NZD 30M (aprox. USD 24M)
BBC (2008-2013)
Herramienta de producción DMI (Iniciativa de Medios
Digitales). El proyecto debía terminarse en 18 meses con un
presupuesto de 82M libras. Luego de 5 años el proyecto fue
abandonado con un costo de 100M de libras.
Novopay (2012-2013)
Sistema de pago a maestros y personal del sistema educativo
de Nueva Zelanda. Se detectaron más de 18.000 liquidaciones
erradas. Se detectaron más de 500 errores en el sistema.
Costo: NZD 30M (aprox. USD 24M)
Bank of America
En la década del 80 perdió USD 80M y todo su negocio de
trusts a raíz de la imposibilidad de terminar el sistema para
administrarlos, conocido como MasterNet. Hasta ese momento
era considerado una de las empresas líderes en la adopción de
nuevas tecnologías.
Bank of America
En la década del 80 perdió USD 80M y todo su negocio de
trusts a raíz de la imposibilidad de terminar el sistema para
administrarlos, conocido como MasterNet. Hasta ese momento
era considerado una de las empresas líderes en la adopción de
nuevas tecnologías.
http://www.nature.com/news/software-error-doomed-japanese-hitomi-spacecraft-1.19835
Resultados
197.000 líneas de código (LOC)
esfuerzo total: 15.536 días-hombre
defectos encontrados: 0.75 defectos por 1000 LOC
Resultados
197.000 líneas de código (LOC)
esfuerzo total: 15.536 días-hombre
defectos encontrados: 0.75 defectos por 1000 LOC
Resultados
197.000 líneas de código (LOC)
esfuerzo total: 15.536 días-hombre
defectos encontrados: 0.75 defectos por 1000 LOC
Características
Líneas de SPARK: 9.939 — Líneas de Z: 2.057
Esfuerzo total: 260 días
Productividad (LOC por día): 38
Productividad (LOC por día, implementación): 203
Defectos encontrados desde la entrega: 2
CC Evaluation Assurance Level 5 (EAL5)
Características
Líneas de SPARK: 9.939 — Líneas de Z: 2.057
Esfuerzo total: 260 días
Productividad (LOC por día): 38
Productividad (LOC por día, implementación): 203
Defectos encontrados desde la entrega: 2
CC Evaluation Assurance Level 5 (EAL5)
MIL-STD 188-220
Especificación formal en Estelle del protocolo de comunicación
188-220 de las fuerzas armadas de EE.UU. Se generaron
casos de prueba automáticamente a partir de la especificación
que incrementaron en un 200 % la cobertura.
MIL-STD 188-220
Especificación formal en Estelle del protocolo de comunicación
188-220 de las fuerzas armadas de EE.UU. Se generaron
casos de prueba automáticamente a partir de la especificación
que incrementaron en un 200 % la cobertura.
Hoy
Sin embargo, a pesar de la aparente paridad entre casos de
éxito y fracaso, globalmente en la actualidad, la producción de
software es esencialmente una actividad artesanal.
El futuro
En la academia desde hace muchos años se conocen
varias técnicas que podrían transformar la producción de
software en una ingeniería.
Por diferentes razones la industria no las acepta.
Hoy
Sin embargo, a pesar de la aparente paridad entre casos de
éxito y fracaso, globalmente en la actualidad, la producción de
software es esencialmente una actividad artesanal.
El futuro
En la academia desde hace muchos años se conocen
varias técnicas que podrían transformar la producción de
software en una ingeniería.
Por diferentes razones la industria no las acepta.
Posibles causas:
1 No se atacan las dificultades esenciales de la producción
de software.
2 Es una disciplina inmadura debido a su corta historia.
3 Es esencialmente diferente a las otras ingenierías.
de un orden de
magnitud en diez años.
tiempo de desarrollo
Falta de especialización.
En la mayoría de los casos carece de diseños
normalizados.
Se habla siempre de construir sistemas y no de construir
dispositivos.
Proceso de desarrollo
Definición
El proceso que se sigue para construir, entregar y hacer
evolucionar el software, desde la concepción de una idea hasta
la entrega y el retiro del sistema.
Sinónimos:
Ciclo de vida del desarrollo de software
Ciclo de vida del software
Proceso de software
Propiedades: confiable, predecible y eficiente
ISO 12207
Proceso de desarrollo vs. modelo de proceso de desarrollo
Dividir y ordenar
Dividir una tarea compleja en etapas manejables
Determinar el orden de las etapas
Criterio de transición para pasar a la siguiente etapa
Criterio para determinar la finalización de cada etapa
Criterio para comenzar y elegir la siguiente
Modelo de cascada
Primera versión
Estudio
Estudiode de
Flujo secuencial entre las etapas factibilidad
factibilidad Prototipación
Prototipación
Cada etapa tiene una entrada y Ingeniería
Ingenieríade
de
una salida requerimientos
requerimientos(R)
(R)
anteriores Modelo
ModeloFuncional
Funcional
(S)
(S)
RR
S se transforma progresivamente en SS DD
un modelo menos abstracto
construcción
P = refn(Sn-1)
Desarrollo ágil
Métodos formales
[NCTA] SALDO == N
Banco
cajas : NCTA →
7 SALDO
DepositarOk
∆Banco
num? : NCTA
monto? : Z
num? ∈ dom cajas
monto? > 0
cajas0 = cajas ⊕ {num? 7→ cajas num? + monto?}
B(m + 1,s a hy i) =
left?n : N → B(m, hni a s a hy i)
| right!y → B(m + 2, s)
Aprenda a escribir S
F =m∗a
Aprenda a escribir S
F =m∗a
Aprenda a escribir S
F =m∗a
J.-R. Abrial.
The B-book: Assigning Programs to Meanings.
Cambridge University Press, New York, NY, USA, 1996.
Paul Clements, David Garlan, Len Bass, Judith Stafford, Robert Nord,
James Ivers, and Reed Little.
Documenting Software Architectures: Views and Beyond.
Pearson Education, 2002.
Bibliografía (cont.)
Michael Jackson.
Software requirements & specifications: a lexicon of practice, principles and
prejudices.
ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 1995.
D. L. Parnas.
On the criteria to be used in decomposing systems into modules.
Commun. ACM, 15:1053–1058, December 1972.
B. Potter, D. Till, and J. Sinclair.
An introduction to formal specification and Z.
Prentice Hall PTR Upper Saddle River, NJ, USA, 1996.
A. W. Roscoe.
The Theory and Practice of Concurrency.
Prentice Hall PTR, Upper Saddle River, NJ, USA, 1997.