Semana Informática 2013 - Seminario Cajón de Sastre

50 %
50 %
Information about Semana Informática 2013 - Seminario Cajón de Sastre
Technology

Published on March 13, 2014

Author: raquelmorenocarmena

Source: slideshare.net

Description

Presentación del seminario "Cajón de Sastre" impartido durante la Semana Informática 2013 en Valencia.

El “cajón de sastre” del desarrollo de software Seminario

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Agenda • Motivación • Apertura del cajón • Reflexión final • Ronda de preguntas

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 • Motivación • Apertura del cajón • Reflexión final • Ronda de preguntas Agenda

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Hacer las cosas bien significa perder el tiempo y dinero Tener control de calidad es disponer de pruebas funcionales Falta de empatía con el usuario final Equipos desmotivados “Siempre se ha hecho así”

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 • Motivación • Apertura del cajón • Reflexión final • Ronda de preguntas Agenda

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 DEV … PRO DEV DEV

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 DEV … PRO DEV DEV PRE

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 DEV … PRO DEV DEV PRE

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 DEV … PROPRE DEV DEV CIVersion Control System continuous deployment continuous delivery continuous integration

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Kent Beck Martin Fowler Extremme Programming (XP)

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 TDD Refactor Red Green

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Unit Testing ≠ Integration Testing mock stub ¿Unit Testing? objetos de simulación

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 F.I.R.S.T Principle Fast Isolated Repeateable Self-validating Timely

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 TDD Refactor Red Green

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.“ D.R.Y. Principle Don’t Repeat Yourself

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S.O.L.I.D. Principles Robert C. Martin “Uncle Bob”

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Single Responsibility Principle “There should never be more than one reason for a class to change” public class SuperDashboard extends JFrame { public Component getLastFocusedComponent() {...} public void setLastFocusedComponent(Component lastFocusedComponent) {...} public int getMajorVersionNumber () {...} public int getMinorVersionNumber () {...} public int getBuildNumber () {...} }

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Open-Closed Principle “Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.”

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Open-Closed Principle class GraphicEditor { ... public void drawShape(Shape shape) { if (shape.type == RECTANGLE) drawRectangle(shape); else if (shape.type == CIRCLE) drawCircle(shape); } public void drawCircle(Circle circle) {....} public void drawRectangle(Rectangle rectangle) {....} }

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Open-Closed Principle class Shape { abstract void draw(); } class Rectangle extends Shape { public void draw() { // draw the rectangle } } class GraphicEditor { public void drawShape(Shape shape) { shape.draw(); } }

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Liskov Substitution Principle “Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.”

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. class Rectangle { ... public void setWidth(int width){ this.width = width; } public void setHeight(int height) {this.height = height;} public int getWidth(){ return width; } public int getHeight(){ return height; } public int getArea(){ return width * height; } } class Square extends Rectangle { public void setWidth(int width){ this.width = width; this.height = width; } public void setHeight(int height){ this.width = height; this.height = height; } } Liskov Substitution Principle

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 class LspTest { private static Rectangle getNewRectangle() { ... return new Square(); } public static void main (String args[]) { Rectangle r = LspTest.getNewRectangle(); r.setWidth(5); r.setHeight(10); System.out.println(r.getArea()); } } S. O. L. I. D. Liskov Substitution Principle

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Interface Segregation Principle “Clients should not be forced to depend upon interfaces that they do not use.”

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Dependency Inversion Principle “High level modules should not depend upon low level modules. Both should depend upon abstractions.” “Abstractions should not depend upon details. Details should depend upon abstractions.”

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Dependency InversionPrinciple class Worker { public void work() { // ....working } } class Manager { Worker worker; public void setWorker(Worker worker) { this.worker = worker; } public void manage() { worker.work(); } }

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 S. O. L. I. D. Dependency InversionPrinciple interface IWorker { public void work(); } class Worker implements IWorker { public void work() { ... } } class SuperWorker implements IWorker { public void work() { ... } } class Manager { Iworker worker; public void setWorker(IWorker worker) { this.worker = worker; } public void manage() { worker.work(); } }

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Martin Fowler

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 En el método m de una clase sólo deberían aparecen llamadas a: • Un método de un miembro de dicha clase • Otro método de dicha clase • Un método de un objeto creado por m • Un método de un objeto pasado como argumento a m No se debe llamar a métodos de los objetos devueltos por otros métodos. Law of Demeter (LoD)

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 String outputDir = context.getOptions().getDir().getAbsolutePath(); String outputDir = context.getAbsolutePathOfOptionsDir(); … return options.getAbsolutePathOfDir(); … … return directory.getAbsolutePath(); …

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 “Aquel que no conoce la historia, está condenado a repetirla “

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 ¿Dónde te vas de vacaciones? 5 segundos para continuar… espacio publicitario

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 ¿Dónde te vas de vacaciones? 5 segundos para continuar… espacio publicitario Planifica también tus pruebas

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 espacio publicitario 1 segundo para continuar… Pruebas funcionales automatizadas… …trátalas con cariño

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Más ideas para conseguir un código legible…

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Código spaghetti

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Código ravioli

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 // if the item should be deleted if ((item.amountInStock() == 0) && item.lastEdition()) if (item.shouldBeDeleted())

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 int n; // Number of items. int numberOfItems;

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 for (int i = 0; i < 10; i++) { ... } for (int i = 0; i < MAX_ARTICLES_IN_STOCK; i++) { ... }

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Principle of least astonishment (POLA/PLA) The result of performing some operation should be obvious, consistent, and predictable, based upon the name of the operation and other clues.

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 public Space getSpace() { if (space == null) { space = new Space(); } return space; } public Space createOrReturnSpace() { if (space == null) { space = new Space(); } return space; }

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Mutation Testing

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 • Motivación • Apertura del cajón • Reflexión final • Ronda de preguntas Agenda

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 "Try and leave this world a little better than you found it . . ."

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 The Boy Scout Rule "Leave the campground cleaner than you found it“ Robert C. Martin “Uncle Bob”

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 “It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away” Antoine de Saint Exupéry K.I.S.S. Principle Keep It Small and Simple

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Muévete Lee Practica Comparte

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Coding Codedojo kata

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 Oath of Non-Allegiance "I promise not to exclude from consideration any idea based on its source, but to consider ideas across schools and heritages in order to find the ones that best suit the current situation."Alistair Cockburn

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 “Life begins at the end of your comfort zone” Neal Donald Walsh

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 “It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is most adaptable to change.”

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 • Motivación • Apertura del cajón • Reflexión final • Ronda de preguntas Agenda

eXcentia:El“cajóndesastre”deldesarrollodesoftware24/04/2013 @excentiawww.excentia.es Raquel Moreno rmoreno@excentia.es Muchas gracias por su atención

Add a comment

Related presentations

Related pages

semanainformatica.com

semanainformatica.com ... evento patrocinado por el Colegio Oficial de Ingenieros en Informática de la Comunidad ... El seminario abordó temas como ...
Read more

El Cajón Desastre | Noticias sobre eurovisión ...

El Cajón Desastre. Álvaro ... Esta semana vamos a repasar la ... Reality Show Eurovision 2014 Eurovision 2013 Ruth Lorenzo Yurena Eurovision 2012 last fm ...
Read more

Cajón desastres | De todo un poco

Etiquetas:cajon desastres, Denuncia, Dia internacional, Maltratadas, maltrato, ... Published 10 noviembre, 2015 Informática, Seguridad 2 Comments
Read more

La fibromialgia no es un cajón de sastre - Health & Medicine

Presentación del seminario "Cajón de Sastre" impartido durante la Semana Informática 2013 en Valencia.
Read more

CAJON DE SASTRE | Observatorio Tecnológico

CAJON DE SASTRE. MONOGRÁFICO ... Martes, 22 de Enero de 2013 08:36 Tweet. ... Los alumnos consideran la informática como algo habitual, ...
Read more

Revista Cajón de Sastre - Documents

Semana Informática 2013 - Seminario Cajón de Sastre Presentación del seminario "Cajón de Sastre" impartido durante la Semana Informática 2013 en ...
Read more

Noticias y novedades de excentia: eXcentia patrocina ...

En el marco de estas jornadas, eXcentia imparte un interesante seminario llamado: El “cajón de sastre” del desarrollo de software. Tendrá lugar la ...
Read more

Cajón de sastre: Calendarios cofrades 2015

Cajón de sastre. Se realizan todo ... 2013 (6) diciembre (2) abril (3) marzo (1 ... Hace 1 semana CRECIENDO. Hace 2 meses
Read more