Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control...

45
Ingeniería del Software Ingeniería del Software Rubén Béjar Rubén Béjar @ @ rubejar rubejar 25 de Mayo de 2015 25 de Mayo de 2015 Salvo que se indique lo contrario, esta presentación es © 2015 Rubén Béjar Salvo que se indique lo contrario, esta presentación es © 2015 Rubén Béjar bajo licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 España bajo licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 España https://creativecommons.org/licenses/by-nc-nd/3.0/es/ https://creativecommons.org/licenses/by-nc-nd/3.0/es/

Transcript of Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control...

Page 1: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Ingeniería del SoftwareIngeniería del Software

Rubén BéjarRubén Béjar@@rubejarrubejar

25 de Mayo de 201525 de Mayo de 2015Salvo que se indique lo contrario, esta presentación es © 2015 Rubén BéjarSalvo que se indique lo contrario, esta presentación es © 2015 Rubén Béjarbajo licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 España bajo licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 España https://creativecommons.org/licenses/by-nc-nd/3.0/es/https://creativecommons.org/licenses/by-nc-nd/3.0/es/

Page 2: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"The essential challenge of programming is managing complexity. Those who think the difficulty is primarily translating ideas into computer language syntax line-by-line haven’t written large

programs."

http://www.johndcook.com/blog/2008/10/27/why-there-will-always-be-programmers/

Page 3: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Trabajo de asignatura (un cuatrimestre, 4 o Trabajo de asignatura (un cuatrimestre, 4 o 5 personas): 5 personas): 20.000 Líneas de Código20.000 Líneas de Código

Page 4: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Trabajo de asignatura (un cuatrimestre, 4 o Trabajo de asignatura (un cuatrimestre, 4 o 5 personas): 5 personas): 20.000 Líneas de Código20.000 Líneas de Código

App iOS edición de App iOS edición de

Fotos: Fotos: 40.000 Líneas de Código40.000 Líneas de Código

Page 5: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Trabajo de asignatura (un cuatrimestre, 4 o Trabajo de asignatura (un cuatrimestre, 4 o 5 personas): 5 personas): 20.000 Líneas de Código20.000 Líneas de Código

App iOS edición de App iOS edición de

Fotos: Fotos: 40.000 Líneas de Código40.000 Líneas de Código

Unreal Engine 3: Unreal Engine 3: 2 Millones 2 Millones de Líneas de Códigode Líneas de Código

Page 6: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Trabajo AsignaturaApp iOS Edición FotosUnreal Engine 3

Page 7: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"One of the marks of a professional programmer is knowing how to organize

software so that the complexity remains manageable as the size increases."

http://www.johndcook.com/blog/2008/09/19/writes-large-correct-programs/

Page 8: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Mars Curiosity Rover: Mars Curiosity Rover: 5 Millones de Líneas 5 Millones de Líneas de Códigode Código

MySQL: MySQL: 12.5 Millones de Líneas 12.5 Millones de Líneas de Códigode Código

MS Office (2013): MS Office (2013): 45 Millones 45 Millones de Líneas de Códigode Líneas de Código

Page 9: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Trabajo AsignaturaApp iOS Edición FotosUnreal Engine 3Mars Curiosity RoverMySQLMS Office (2013)

Page 10: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"Software development is very hard for a host of reasons. Sadly, many writings

about software development provide advice for simple situations..."

http://www.drdobbs.com/architecture-and-design/software-development-is-very-very-hard/240168984?pgno=1

Page 11: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Razones de la Razones de la complejidad complejidad del softwaredel software TamañoTamaño

Distribución y tamaño Distribución y tamaño del equipodel equipo

Normas y regulaciones Normas y regulaciones legaleslegales

Dominio de problemaDominio de problema

Aspectos técnicosAspectos técnicos

Page 12: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Los problemas de diseño (de productos, procesos, sistemas y métodos) son los

más comunes en la práctica profesional de la ingeniería

Jonassen, D., Strobel, J., & Lee, C. B. (2006). Everyday problem solving in engineering: Lessons for engineering educators. Journal of Engineering Education, 95, 139-151.

Page 13: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Los problemas de diseño están entre los peor estructurados y peor definidos

Jonassen, D. (2011). Supporting problem solving in PBL.The Interdisciplinary Journal of Problem-Based Learning, 5, 95-119.

Page 14: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Requiere conocimiento de Requiere conocimiento de dominio y estratégico dominio y estratégico

La solución siempre es un La solución siempre es un resultado originalresultado original

Requisitos, restricciones y Requisitos, restricciones y criterios de éxito son vagos criterios de éxito son vagos

o desconocidoso desconocidos

Razones de la Razones de la complejidad complejidad del diseño de del diseño de

softwaresoftware

Page 15: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Los proyectos de ingeniería tienen lugar en el mundo real y, por tanto, siempre

bajo diversas restricciones

Page 16: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

El triángulo de El triángulo de hierrohierro

ResultadosResultados

CosteCostePlazosPlazos

Page 17: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

El triángulo de El triángulo de hierrohierro

CosteCoste

ResultadosResultados

PlazosPlazos

Page 18: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Ingeniería del Software(siglo XX)

Page 19: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"You can't control what you can't measure.""You can't control what you can't measure."(Tom deMarco, 1982)(Tom deMarco, 1982)

Page 20: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Diseño de software Diseño de software dirigido por dirigido por

arquitectos de Power arquitectos de Power PointPoint

También conocidos como También conocidos como arquitectos de torre de arquitectos de torre de

marfil y arquitectos marfil y arquitectos astronautasastronautas

The Matrix Reloaded. (c) Warner Home Video. 2004

Page 21: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Programadores que Programadores que no participan en el no participan en el análisis o el diseño análisis o el diseño

del softwaredel software

Page 22: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Gestión de proyectos Gestión de proyectos documento-céntrica, documento-céntrica,

burocrática y burocrática y administrativaadministrativa

Page 23: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Real Software Engineering – (c) Glenn Vanderburg (2015)

Page 24: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Real Software Engineering – (c) Glenn Vanderburg (2015)

Metáfora

Incorrecta

Page 25: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Ingeniería del Software(siglo XXI)

(aunque todavía no se ha enterado todo el mundo de que estamos en el siglo XXI)

Page 26: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

● "Individuals and interactions over processes and tools

● Working software over comprehensive documentation

● Customer collaboration over contract negotiation

● Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more"

http://www.agilemanifesto.org/

Page 27: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"was ... correct at the time, is it still relevant, and "was ... correct at the time, is it still relevant, and do I still believe that metrics are a must...? do I still believe that metrics are a must...?

My answers are no, no, and no." My answers are no, no, and no." (Tom deMarco, 2009)(Tom deMarco, 2009)

"You can't control what you can't measure.""You can't control what you can't measure."(Tom deMarco, 1982)(Tom deMarco, 1982)

Page 28: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"Increasingly bright and capable people are attracted to software development.

...more brighter people have ventured into software engineering in the last fifteen

years or so. If so this would be a reason for why there is such a cult of youth in the

computer business"

http://martinfowler.com/articles/newMethodology.html

Page 29: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Architect Architect && Master Master ProgrammerProgrammer

Halt and Catch Fire. (c) AMC Studios. 2014

Page 30: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Equipos pequeños, de Equipos pequeños, de ingenieros muy ingenieros muy

cualificados, que son cualificados, que son responsablesresponsables de todos de todos los aspectos de análisis los aspectos de análisis y diseño del softwarey diseño del software

Page 31: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Documentos para la Documentos para la comunicacióncomunicación y la y la

interacción, no para interacción, no para tratar de controlartratar de controlar

Page 32: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Gall's Law: "All complex system that work evolved from simpler systems that worked."

Page 33: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Gestión de proyectos Gestión de proyectos iterativa y iterativa y ágilágil

Silicon Valley. (c) 3 Arts Entertainment, Judgemental Films Inc. 2014

Page 34: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"In software development, the design document is a source code listing."

http://www.developerdotstar.com/mag/articles/reeves_design_main.html

Page 35: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Real Software Engineering – (c) Glenn Vanderburg (2015)

Page 36: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"I am not arguing that we should not 'do design'... I simply insist that you have not

completed the process until you have written and tested the code."

http://www.developerdotstar.com/mag/articles/reeves_design_main.html

Page 37: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

"People who are Smart but don’t Get Things Done often

have PhDs and work in big companies where nobody

listens to them because they are completely impractical.

They would rather mull over something academic about a problem than ship on time"

Page 38: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

La especialidad

Page 39: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

CompletaréisCompletaréis con éxito con éxito proyectos de softwareproyectos de software

Page 40: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Podréis Podréis elegirelegir temas y temas y tecnologías que os tecnologías que os

intereseninteresen

Page 41: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Tendréis la ocasión de Tendréis la ocasión de coordinar y gestionar coordinar y gestionar equipos de equipos de personaspersonas

Page 42: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Aprenderéis a proponer, Aprenderéis a proponer, evaluar y evaluar y descartardescartar

alternativas de diseño de alternativas de diseño de softwaresoftware

Page 43: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

Y conseguiré que os quejéis de que Y conseguiré que os quejéis de que no tenéis no tenéis suficientessuficientes pizarras :-) pizarras :-)

Image CC BY 2.0 by Savoir-faire Linux

Page 44: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

@rubejar@rubejar

Page 45: Ingeniería del Software - Rubén Béjar · Ingeniería del Software (siglo XX) "You can't control what you can't measure." (Tom deMarco, 1982) Diseño de software dirigido por arquitectos

● Software Development is Very, Very Hard – Even for Those Who Know It's Hard

● Software Engineering: An Idea Whose Time Has Come and Gone?● Code as Design: Three Essays by Jack W. Reeves● Real Software Engineering● Don't Let Architecture Astronauts Scare You● It Came From Planet Architecture● Trends In Modern Project Management - Past Present & Future

Algunas referencias