Page 2 Los temas del da La ingeniera de software La crisis del software Desarrollo de software La psicologa de los objetos cotidianos Page 3 Page 4 Los problemas habituales Entregas de productos demoradas (Delivery) Proyectos fuera de presupuesto (Budget) Recortes en la funcionalidad inicialmente acordada (Scope) Atributos basicos de calidad no satisfechos (Quality) Disponibilidad Performance Escalabilidad Seguridad Usabilidad Correctitud / Completitud Mantenimiento excesivo y caro (Budget) Page 5 Algunos Datos 70 % de las aplicaciones tiene problemas disponibilidad o Performance (Epidata). 75% of new J2EE rollouts use more hardware to fix performance (Giga). 50% of all deployed applications are rolled back (Gartner). At least 80 percent of applications put into production environment will fail due to poor quality issues through 2007 (Gartner). Page 6 La visin desde la Calidad Requisitos del Cliente Producto Desarrollado Page 7 La visin desde la Calidad* (Habindose entendido la necesidad de una visin desde la calidad) * Mara del Mar Fuentes Fuentes, Francisco Javier Llorens Montes Page 8 Que es la ingeniera? Definicin Utilizamos la ingeniera para: Crear soluciones eficientes A problemas prcticos Aplicando conocimiento cientfico Construyendo cosas Al servicio de la humanidad Page 9 La evolucin de la Ingeniera* * Mary Shaw - Prospect for an Engineer Discipline of Software Page 10 La idea de una Ingeniera para el Software * SEI Web site Page 11 NATO Softwaer Engineering Conference* The term software engineering first appeared in the 1968 NATO Software Engineering Conference and was meant to provoke thought regarding the current "software crisis" at the time. Projects running over-budget. Projects running over-time. Software was very inefficient. Software was of low quality. Software often did not meet requirements. Projects were unmanageable and code difficult to maintain. Software was never delivered. *Wikipedia EN Page 12 Un gran Ingeniero de Software La principal causa de la crisis del software es que las mquinas [computadoras] se han desarrollado en varios rdenes de magnitud ms! [respecto de la capacidad de procesamiento] Para decirlo sin rodeos: cuando no existan mquinas, la programacin no era problema en absoluto, cuando haba algunos pocos dbiles ordenadores, la programacin se convirti en un problema leve, y ahora tenemos computadoras gigantescas, la programacin se ha convertido en un problema igualmente gigantesco. Edsger Dijkstra, The Humble Programmer (EWD340), Communications of the ACM Page 13 Grandes Ingenieros de Software 1950 2010 1960 1970 1980 1990 Edsger Dijkstra Tim Berners-Lee Robert Floyd Alan Kay Fred Brooks Kent Beck Barry Boehm http://en.wikipedia.org/wiki/Category:Software_engineers David Parnas Tom DeMarco 2000 Page 14 Page 15 La Ingeniera de Software Desarrollo de Software Calidad Comercializacin y Aspectos Legales Educacin Formal Direccin de Proyectos Page 16 Desarrollo de Software La Ingeniera de Software Desarrollo de Software Calidad Comercializacin y Aspectos Legales Educacin Formal Direccin de Proyectos Page 17 Desarrollo de Software ADOO Arquitectura Requerimientos Page 18 Desarrollo de Software ADOO Arquitectura Requerimientos Page 19 Anlisis y Diseo Orientado a Objetos En que vamos a trabajar? Principios de la Ingeniera de Software Principios bsicos de diseo Paradigma de Objetos Objetos Mensajes Mtodos Herencia Polimorfismo Delegacin TDD Patrones Framework Arquitectura de Software Page 20 Ya que no todo es diseo. Page 21 Actividades para la Prxima Semana Lecturas Obligatorias No Silver Bullet Frederick Brooks. Nuevos Paradigmas en la Ingeniera de Software, Ing. Mateo Gomez Ortega. (Kenintro200103) Lecturas Adicionales The early story of smalltalk, Alan Kay. Maria del Mar Fuentes Fuentes,Francisco Javier Llorens Montes / Calidad Total - Fundamentos E Implantacion. Mary Shaw - Prospect for an Engineer Discipline of Software http://www.inf.ed.ac.uk/teaching/courses/seoc/2005_2006/resources/bullet08.pdf Software Engineering http://en.wikipedia.org/wiki/Software_engineering Edsger Dijkstra, The Humble Programmer (EWD340), Communications of the ACM Referencias y Citas Actividad Page 24 La psicologa de los objetos cotidianos Leer el primer capitulo de La Psicologa De Los Objetos Cotidianos de Donald Norman. Luego: Realice una breve sntesis del texto. Proponga estrategias que basndose en el texto puedan ser utilizadas en el Diseo Orientado a Objetos. Cada equipo deber encontrar un consenso entre sus miembros para luego presentar sus ideas al resto de la clase Page 25 La psicologa de los objetos cotidianos Las prestaciones aportan claras pistas del funcionamiento de las cosas. Las placas son para empujar, los pomos para darles la vuelta. Las ranuras para insertar cosas en ellas. Las pelotas para lanzar o botar. Cuando se aprovechan las prestaciones, el usuario sabe que hacer con slo mirar: no hace falta una imagen, una etiqueta ni una instruccin. Las cosas complejas pueden exigir una explicacin, pero las sencillas no deberan exigirla. Cuando las cosas sencillas necesitan imgenes, etiquetas o instrucciones, es que el diseo ha fracasado. *Wikipedia EN Page 26 La psicologa de los objetos cotidianos La falta de retroalimentacin inmediata de lo que hace uno no sirve precisamente de ayuda: con un plazo de veinticuatro horas, quin va a recordar lo que intent hacer? *Wikipedia EN Page 27 La psicologa de los objetos cotidianos Cuando el nmero de mandos es igual al nmero de funciones, cada mando puede ser especializado y llevar una indicacin. Las funciones posibles son visibles, pues cada una corresponde a un mando. Si el usuario olvida las funciones, los mandos sirven de recordatorio. *Wikipedia EN