Alejandro Bianchi (Liveware IS S.A., Argentina)
Jueves 1 de Septiembre, 10:00 a 11:00 hs.
La sociedad global se caracteriza por una demanda creciente de productos y servicios que mejoren su calidad de vida, mejoren las condiciones económicas o resuelvan los problemas del medio ambiente. La industria del software debe dar respuesta a esta demanda a partir de proveer aplicaciones cada vez más complejas en funcionalidad y atributos de calidad, lo que sumado a tiempo de salida al mercado cada vez más exigentes, integración de nueva tecnología con aplicaciones legadas y los problemas derivados de la escasez de recursos humanos han obligado a la industria a buscar nuevas maneras de producir y mantener software. Como en muchos otros aspectos del software, en este en particular, también hay grandes debates y en algunos casos con posiciones irreconciliables y en otros buscando consensos. Para algunos la demanda se resuelve con procesos formales y disciplina, para otros con agilidad y otros, yendo un poco más allá apuntado a la velocidad del desarrollo. Es posible y con razón, que cada posición tenga argumentos y evidencias objetivas que demuestre la veracidad de sus afirmaciones. Pero hay otra visión que intenta demostrar que no hay una única forma de mejorar la producción de software. En esta presentación intentaremos mostrar que la Arquitectura de Software es un facilitador para integrar, en un ciclo de vida adecuado, las mejores prácticas para producir un dado producto de software. La arquitectura de software puede facilitar la adaptación del proceso en un ambiente CMMI para hacerlo más eficaz; también puede ayudar a identificar y controlar el “technical debt” en un ambiente ágil, o puede facilitar la velocidad a partir de orientar el desarrollo a un ambiente de reuso sistemático. A lo largo de la conferencia se presentan los argumentos que demuestran el valor de una Arquitectura de Software y de qué manera, a través de las decisiones de diseño, las vistas y perspectivas es posible modelar el proceso más adecuado para producir software de manera eficiente, ágil y sin descuidar la calidad.
Biografía del Autor
Analista de Sistemas con un postgrado en Sistemas expertos de la UCA. Diploma en gerencia estratégica de la Escuela de Dirección de Empresas de la UADE. Es también ATAM Evaluator Certificate y Software Architecture Professional Certificate del Software Engineering Institute, CMU University.
Sus áreas de interés profesional son La mejora de Procesos, las mediciones del software, las Arquitecturas de software y la gestión de conocimiento técnico.
Consultor internacional con casi 30 años de experiencia en desarrollo de software en diferentes dominios e industrias y consultoría en Ingeniería de Software y Mejora de procesos. Presidente de LIVEWARE IS S.A. desde 1993, ha gerenciado y/o participado en más de 40 proyectos de implantación de CMM y CMMI en empresas de diverso tamaño y dominio industrial, tales como Accenture, Atos Origin, ORACLE, GM Corporate, Neoris, Sony y otras. Como arquitecto de software ha liderado proyectos de diseño de Arquitectura para varias empresas locales y en el exterior y como consultor ha participado en la implantación de métodos de diseño de arquitectura en los mismos ámbitos.
Es miembro del PSM Group el cual es soportado por el DoD de los EE.UU. y cuyo objetivo es mantener y mejorar el PSM, (Practical Sofwtare and System measurement Method). Es trainer certificado en este método y activo colaborador en el desarrollo de modelos de medición. Ha recibido dos premios, (2004 y 2008), por sus contribuciones en el campo de las mediciones en general y a PSM en particular. En julio de 2011 ha liderado un workshop cuyo objetivo es la formalización de un modelo de mediciones para las Arquitecturas de Software, (productos como procesos).
Es docente de la Universidad Católica Argentina en la maestría de Ingeniería de Software y miembro del consejo asesor de la misma Universidad. Es docente de modelos de calidad en la maestría de Gestión de la Información en la EDDE dependiente de la UADE.
Ha dictado más de 120 cursos y 100 conferencias sobre temas de su especialidad.
Carlo Ghezzi (Politecnico di Milano, Italia)
Jueves 1 de Septiembre, 18:00 a 19:30 hs.
Modern software applications are often embedded in highly dynamic contexts. Changes may occur in the requirements, in the behavior of the environment in which the application is embedded, in the usage profiles that characterize interactive aspects. Changes are difficult to predict and anticipate, and are out of control of the application. Their occurrence, however, may be disruptive, and therefore the software must also change accordingly. In many cases, changes to the software cannot be handled off-line, but require the software to self-react by adapting its behavior dynamically, in order to continue to ensure the required quality of service. The big challenge in front of us is how to achieve the necessary degrees of flexibility and dynamism required in this setting without compromising dependability of the applications.
To achieve dependability, a software engineering paradigm shift is needed. The traditional focus on quality, verification, models, and model transformations must extend from development time to run time. Not only software development environments (SDEs) are important for the software engineer to develop better software. Feature-full Software Run-time Environments (SREs) are also key. SREs must be populated by a wealth of functionalities that support on-line monitoring of the environment, inferring significant changes through machine-learning methods, keeping models alive and updating them accordingly, reasoning on models about requirements satisfaction after changes occur, and triggering model-driven self-adaptive reactions, if necessary. In essence, self-adaptation must be grounded on the firm foundations provided by formal methods and tools in a seamless SDE-SRE setting.
The talk discusses these concepts by focusing on non-functional requirements---reliability and performance---that can be expressed in quantitative probabilistic requirements. In particular, it shows how probabilistic model checking can help reasoning about requirements satisfaction and how it can be made run-time efficient.
The talk reports on some results of research developed within the SMScom project, funded by the European Commission, Programme IDEAS-ERC, Project 227977 (http://www.erc-smscom.org/).
Brief Bio Sketch
Carlo Ghezzi is a Professor and Chair of Software Engineering in the Department of Electronics and Information of Politecnico di Milano. He has been the Rector's delegate for research, past member of the Academic Senate and of the Board of Governors, and past Department Chair. He held temporary positions at University of California at Los Angeles, University of North Carolina at Chapel Hill, University of Padova, ESLAI-Argentina, University of California at Santa Barbara, Technical University of Vienna, University of Klagenfurt, University of Lugano.
He is an ACM Fellow, an IEEE Fellow, and a member of the Italian Academy of Sciences. He was awarded the ACM SIGSOFT Distinguished Service Award. He has been on the evaluation board of several international research projects and institutions in Europe, Japan, and the USA.
He is a regular member of the program committee of important conferences in the software engineering field, such as the ICSE and ESEC/FSE, for which he also served as Program and General Chair. He was General Co-Chair of the International Conference on Service Oriented Computing. He also gave keynotes at several international conferences.
Ghezzi has been the Editor in Chief of the ACM Trans. on Software Engineering and Methodology (from 2001 till 2006). He is currently an Associate Editor of the Communications of the ACM, IEEE Trans. on Software Engineering, Science of Computer Programming, Service Oriented Computing and Applications, Computing, and Software Process Improvement and Practice.
Ghezzi's research has been focusing on software engineering and programming languages. Currently, he is especially interested in methods and tools to improve dependability of adaptable and evolvable distributed applications, such as service-oriented architectures and ubiquitous/pervasive computer applications. He co-authored over 180 papers and 8 books. He coordinated several national and international (EU funded) research projects and has been awarded an Advanced Grant from the European Research Council.
J. Andres Diaz-Pace (ISISTAN, Universidad Nacional del Centro de la Provincia de Buenos Aires, Argentina)
Viernes 2 de Septiembre, 9:00 a 10:30 hs.
El uso de prácticas de arquitectura de software en el desarrollo industrial de software registra una tendencia marcada, particularmente en Latinoamérica. La arquitectura de software puede verse como un enfoque para articular los objetivos del negocio y el diseño técnico de productos de software, como respuesta a la creciente complejidad del software y a las necesidades de involucrar múltiples stakeholders y de responder a objetivos de negocio cambiantes.
El repertorio arquitectónico actual, fuertemente influenciado por el trabajo del Software Engineering Institute, proporciona técnicas, prácticas y artefactos útiles para realizar actividades tales como: elicitación de atributos de calidad, diseño y evaluación de arquitecturas, documentación de arquitecturas, y chequeos de conformidad, entre otras. No obstante, la adopción de un enfoque centrado en arquitecturas conlleva desafíos para una organización. Desde una perspectiva técnica, se deben gestionar los atributos de calidad tradicionales para un producto de software (por ej., performance, seguridad, modificabilidad, etc.). Por otro lado, los desarrollos tecnológicos (por ej., arquitecturas de servicios, cloud computing, ecosistemas digitales, etc.) han contribuido a una nueva visión de ciertos atributos de calidad (por ej., time-to-market, escalabilidad, o flexibilidad), e incluso han dado lugar nuevos atributos (por ej., energy-efficiency, o elasticity). Desde una perspectiva de management, existe una necesidad de alinear las prácticas arquitectónicas con los procesos de desarrollo de software.
En este contexto, la charla estará orientada a revisar los conceptos fundamentales de arquitectura de software, y a motivar algunas propuestas para los desafíos actuales en base a extensiones de técnicas existentes. En particular, se discutirán tópicos tales como: deuda técnica en evolución arquitectónica, análisis de atributos de calidad en arquitecturas de escala, e inserción de métodos arquitectónicos en desarrollos iterativos, entre otros. Adicionalmente, se comentarán dos ejemplos de proyectos de investigación que conjugan técnicas de arquitecturas con técnicas de Inteligencia Artificial y Redes Sociales.
Biografía del Autor
Jorge Andrés Diaz Pace se desempeña como docente en la Facultad de Cs. Exactas de la UNICEN, e investigador del grupo ISISTAN. Es tambien Investigador Adjunto del CONICET. Sus intereses de investigación incluyen: diseño conducido por atributos de calidad, técnicas de IA aplicadas al diseño y frameworks orientados a objetos. Es autor de varias publicaciones científicas sobre herramientas de asistencia al diseño arquitectónico. Su trabajo actual se centra en técnicas de reconstrucción y conformidad de arquitecturas, y optimizacion multi-agente aplicada a ingeniería de software. Ha participado como arquitecto en proyectos de transferencia de tecnología a empresas. Tiene una Maestría en Ingeniería de Sistemas y un Doctorado en Ciencias de la Computación, ambos otorgados por la UNICEN. De 2007 a 2010, fue miembro del staff técnico del Software Engineering Institute (SEI, Carnegie Mellon University), dentro de la iniciativa de Arquitecturas de Software del programa RTSS (Research, Technology, and Software Solutions). Posee ademas un ATAM Evaluator Certificate y Software Architecture Professional Certificate del Software Engineering Institute (Carnegie Mellon University).
Adjunto | Tamaño |
---|---|
Programa40JAIIOASSE.pdf | 59.61 KB |