Winston Walker Royce (15 de agosto de 1929 - 7 de junio de 1995) fue un informático estadounidense, director del Centro de Tecnología de Software de Lockheed en Austin, Texas. Fue pionero en el campo del desarrollo de software, conocido por su artículo de 1970, del cual se extrajo erróneamente el modelo de cascada para el desarrollo de software.
Biografía
Nacido en 1929, Royce ingresó en el Instituto Tecnológico de California, donde obtuvo su licenciatura en física, su maestría en ingeniería aeronáutica y, en 1959, su doctorado en ingeniería aeronáutica con Julian David Cole, con la tesis Flujo transónico sobre un cuerpo de revolución delgado y sin sustentación.Royce comenzó su carrera como profesor asistente en el Instituto de Tecnología de California. En 1961, empezó como gerente de proyectos en la división aeroespacial de TRW. Su primer proyecto se centró en el diseño de un sistema de planificación de misiones y selección de órbitas para naves espaciales. En los años siguientes, participó en la investigación y el desarrollo de varios sistemas de software grandes y complejos, y comenzó a desarrollar nuevas metodologías para mejorar la gestión de proyectos de software. En 1970 publicó su influyente artículo "Gestión del desarrollo de grandes sistemas de software", en el que presentó varios modelos de gestión de proyectos, incluyendo los que hoy conocemos como cascada, iterativo y ágil. En 1985, recibió el Premio de Sistemas de Información de la AIAA. Durante la década de 1980, fue director del Centro de Tecnología de Software de Lockheed en Austin, Texas. Se jubiló en 1994 y falleció al año siguiente en su casa de Clifton, Virginia.Su hijo mayor es Walker Royce, economista jefe de software de la división Rational de IBM, autor de "Software Project Management: A Unified Framework" y uno de los principales contribuidores a la filosofía de gestión inherente al Proceso Unificado Rational de IBM.
Trabajo
Gestión del desarrollo de sistemas de software grandes
El modelo de cascada para el desarrollo de software se atribuye erróneamente a Royce. Barry Boehm escribió en 1987:
El papel de Royce en 1970 se considera generalmente como el papel que definió el modelo de "caída" escénica del proceso de software. Pero es sorprendente ver tanto que los papeles anteriores de Benington y Hosier tenían buenas aproximaciones al modelo de cascada, y que el papel de Royce ya incorpora prototipado como un paso esencial compatible con el modelo de cascada.
De hecho, Royce demostró que, si bien el desarrollo de grandes sistemas de software requería un enfoque más exhaustivo, existía un riesgo inherente en un enfoque secuencial de una sola pasada. Propuso un enfoque iterativo y abogó por que los proyectos pasaran por esto al menos dos veces.Figura Royce 1 modeloFigura 4 modelo RoyceRoyce comenzó su artículo de 1970, «Gestión del desarrollo de grandes sistemas de software», con una declaración sobre el origen de sus ideas:
Voy a describir mis opiniones personales sobre la gestión de grandes desarrollos de software. He tenido varias tareas durante los últimos nueve años, principalmente relacionadas con el desarrollo de paquetes de software para la planificación de misiones espaciales, el mando y el análisis posterior al vuelo. En estas asignaciones he experimentado diferentes grados de éxito con respecto a llegar a un estado operativo, a tiempo y dentro de costos. Me he perjudicado por mis experiencias y voy a relacionar algunos de estos prejuicios en esta presentación.
Royce había determinado que el desarrollo de programas informáticos, independientemente de su tamaño o complejidad, podía dividirse en dos etapas: análisis y codificación. Para proyectos pequeños de desarrollo de software, estos dos pasos eran suficientes, pero no para el desarrollo de sistemas de software más grandes. Estos requieren muchos pasos adicionales, lo que confiere al desarrollo un carácter iterativo.Para ilustrar este desarrollo iterativo, Royce propuso varios enfoques, aunque nunca utilizó el término «cascada» ni lo defendió como una metodología eficaz. El primer uso del término «cascada» podría haber sido un artículo de 1976 de Bell y Thayer.Royce imaginó el modelo de la cascada con los siguientes siete pasos:
Requisitos de sistemas
Requisitos de software
Análisis
Diseño de programas
Codificación
Pruebas, y
Operación
Los llamó «pasos de implementación para desarrollar un programa informático extenso para su entrega a un cliente». Royce previó una deficiencia importante en esta metodología, que describió como:
La fase de prueba que se produce al final del ciclo de desarrollo es el primer evento para el cual se distinguen el tiempo, almacenamiento, transferencias de entrada/salida, etc.. Estos fenómenos no son precisamente analizables. No son las soluciones a las ecuaciones diferenciales parciales estándar de la física matemática, por ejemplo. Sin embargo, si estos fenómenos no satisfacen las diversas limitaciones externas, se requiere invariablemente un gran rediseño. Un simple parche octal o redo de algún código aislado no solucionará este tipo de dificultades. Es probable que los cambios de diseño necesarios sean tan disruptivos que los requisitos de software en los que se basa el diseño y que proporciona la racionalidad de todo son violados...
Según Royce, en el modelo de proceso, «las iteraciones de diseño nunca se limitan al paso sucesivo», y para ese modelo, la ausencia de iteración es «arriesgada y propicia el fracaso». Como alternativa, Royce propuso un desarrollo más incremental, donde cada paso siguiente se vincula con el anterior. El modelo de cascada «clásico» se muestra en la figura 2. Los modelos se van refinando gradualmente hasta llegar a la figura 10. Royce comenta sobre el modelo de la figura 4:
Creo que el enfoque ilustrado es fundamentalmente racional.
Ingeniería de sistemas informáticos
A principios de la década de 1980, Winston Royce acuñó el término "ingeniería de sistemas de software" (SwSE) en uno de los seminarios del curso de Gestión de Adquisición de Software en el Defense Systems Management College de Fort Belvoir, Virginia.Según Richard H. Thayer, profesor emérito de ingeniería de software en la Universidad Estatal de California, Sacramento, la ingeniería de sistemas de software se ocupa de "aplicar los principios de la ingeniería de sistemas específicamente al desarrollo de sistemas de software grandes y complejos, lo que proporciona una herramienta poderosa para la gestión de procesos y productos". Los ingenieros de sistemas de software pueden asumir la responsabilidad de la "gestión técnica general del sistema y la verificación de los productos finales del sistema".
Arquitectura de software
En el artículo de 1991 «Arquitectura de software: Integración de procesos y tecnología», Royce describió la conexión entre la arquitectura y el proceso de desarrollo de software. Según Philippe Kruchten et al. (2006), este artículo fue el primero en «posicionar la arquitectura de software, tanto en el título como en la perspectiva, entre la tecnología y el proceso».
Véase también
Ciclo de vida de desarrollo de sistemas
Publicaciones
Royce publicó varios libros y artículos. Libros
1959. Flujo transónico sobre un cuerpo de revolución no elevador y esbelto. Pasadena: California Institute of Technology, 1959.
1997. Ingeniería de software Project Management2a edición. Con R. Thayer y Ed Yourdon.
Artículos, una selección:
1970. "Managing the Development of Large Software Systems", Proceedings of IEEE WESCON 26 (agosto): 1–9.
1989. "Centro de Tecnología de Software de Lockheed". En: Ingeniería moderna de software, fundaciones y perspectivas actuales. Peter A. Ng (ed.). Van Nostrand Reinhold Co. p. 561-578.
1990. "[2]", 'Dr. Win Royce Process Round Table Aug. 10th 1990
1991. "Problemas actuales". En: Aerospace Software Engineering, editado por Christine Anderson y Merlin Dorfman, 5–15. Washington, D.C.: American Institute of Aeronautics and Astronautics.
1991. "Software Architecture: Integrating Process and Technology", con Walker Royce en TRW Búsqueda, vol. 14, no. 1, págs. 2 a 15.
1992. "Status Report: Prototipado asistido por computadora". Con Walker Royce. En: IEEE Software Vol 9 (6): p. 77 a 81
Referencias
^Dr. Winston W. Royce (1929–1995) en www.informatik.uni-bremen.de. Consultado el 27 de octubre de 2008.
^[1] El tío Bob Martin menciona la promoción de la cascada de pajar a las 49:41 de esta charla. Consultado el 23 de febrero de 2020
^ a b c d e f g hWinston W. Royce (1970). "Managing the Development of Large Software Systems" en: Technical Papers of Western Electronic Show and Convention (WesCon) 25–28 de agosto de 1970, Los Ángeles, Estados Unidos.
^Christine Anderson, Merlin Dorfman (1991) Ingeniería de software aeroespacial: una colección de conceptos
^Ellis Horowitz (1975) Estrategias prácticas para desarrollar sistemas de software grandes. p. xii
^"Home: El Instituto Americano de Aeronáutica y Astronáutica". www.aiaa.org. Archivado desde el original el 28 de abril de 2015.
^Alan M. Davis, "Tracing: Una necesidad simple reflejada", en: IEEE Software, vol. 12, no. 5, págs. 6 a 7, Sept., 1995
^Conoce a nuestros líderes de pensamiento en IBM Rational. Consultado el 27 de octubre de 2008.
^Barry W. Boehm (1987). "Software Process Management: Lessons Learned from History" en ICSE '87 Proceedings of the 9th international conference on Software Engineering pp 296-298
^Wasserfallmodell: Entstehungskontext, Markus Rerych, Institut für Gestaltungs- und Wirkungsforschung, TU-Wien. Acceso en línea 28 de noviembre de 2007.
^Winston W. Royce en interaction-design.org. Consultado el 27 de octubre de 2008.
^Bell, Thomas E. y T. A. Thayer. Requisitos de software: ¿Son realmente un problema? Proceedings of the 2nd international conference on Software engineering. IEEE Computer Society Press, 1976.
^ a b cRichard Hall Thayer (2002). "Software System Engineering: A Tutorial". En: Computadora, abril de 2002.
^W.E. Royce y W. Royce, “Software Architecture: Integrating Process and Technology”, TRW Quest, vol. 14, no. 1, 1991, págs. 2 a 15.
^Philippe Kruchten, Henk Obbink y Judith Stafford (2006). "El pasado, el presente y el futuro para la arquitectura del software." IEEE Software Vol 23 2). pág. 23
^Royce Winston y W. W. Royce Lista de publicaciones del DBLP Bibliography Server.
v
t
e
Ingeniería de software
Campos
Programación informática
DevOps
Ingeniería de programas empíricos
Ingeniería experimental de software
Métodos formales
Requisitos de ingeniería
Ingeniería de software basada en la búsqueda
Ingeniería de la confiabilidad del sitio
Ingeniería de software social
Implementación de programas
Diseño de software
Mantenimiento de software
Pruebas de software
Análisis de sistemas
Conceptos
Abstracción
CI/CD
Compatibilidad
Compatibilidad de retroceso
Capa de compatibilidad
Modo de compatibilidad
Compatibilidad futura
Incompatibilidad del software
Ingeniería de software basada en componentes
Modelado de datos
Arquitectura empresarial
Especificación funcional
Idioma de modelado
paradigma de programación
Software
Arqueología del software
Arquitectura de software
Gestión de la configuración de software
Proceso de desarrollo de software/metodología
Calidad del software
Garantía de calidad del software
Sistema informático
Verificación y validación del software
Análisis estructurado
Análisis esencial
Orientación
Agile
Aspect-oriented
Orientación en materia de objetos
Ontología
SDLC
Orientación al servicio
Modelos
Developmental
Agile
EUP
UML ejecutable
Modelo adicional
Modelo iterativo
Modelo de prototipo
RAD
Scrum
Modelo espiral
Arriba
V-model
Modelo de cascada
XP
Ingeniería basada en modelos
Ingeniería de ida y vuelta
Otros
CMMI
Modelo de datos
Modelo ER
Modelo de función
Modelo de información
Metamodelización
Modelo de objetos
SPICE
Modelo de sistemas
Ver modelo
Idiomas
IDEF
SysML
UML
USL
Campos relacionados
Ingeniería informática
Ciencias de la informática
Ciencias de la información
Gestión de proyectos
Gestión de riesgos
Ingeniería de sistemas
Categoría
Comunes
Bases de datos de control de la autoridad: Academics