crisis del software - universidad nacional de colombia · crisis del software gabriel mañana...
TRANSCRIPT
![Page 1: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/1.jpg)
Crisis del SoftwareGabriel Mañana Guichón
Universidad Nacional de Colombia
![Page 2: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/2.jpg)
Wikipedia (2014):
“Software crisis was a term used in the early days of computing science for the difficulty of writing useful and efficient computer programs in the required time.”
(LOL)
![Page 3: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/3.jpg)
McKinsey & Company + Oxford University Research (2012):
“17% of software projects go so badly, they threaten the very existence of the company.”
http://www.mckinsey.com/insights/
![Page 4: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/4.jpg)
(*) 5400 IT projects ~ US$66 billion
McKinsey & Company + Oxford University Research (2012):
“On average, large IT projects run 45% over budget* and 7% over time, while delivering 56% less value than predicted.”http://www.mckinsey.com/insights/
![Page 5: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/5.jpg)
http://www.foundersfund.com
![Page 6: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/6.jpg)
Causas:
● Complejidad del Hardware (multi-threading, multi-core, ...)
● Complejidad del Software (sistemas distribuidos, fallas parciales, apps móviles, ...)
● CONTROL DE CALIDAD (manual, incompleto, deficiente, ninguno, ...)(DB, GUI?)
![Page 7: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/7.jpg)
Pruebas:
● Modelo de Cascada (A/D/I/M)Pruebas al final (eventualmente)
● Metodologías ÁgilesPruebas ANTES del código
* Test-Driven Development (TDD)* Behavior-Driven Development
(BDD)
![Page 8: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/8.jpg)
Dan North on Behavior-Driven Development:
“Behaviour-driven development is about implementing an application by describing it from the point of view of its stakeholders.”
http://www.infoq.com/presentations/bdd-dan-north
![Page 9: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/9.jpg)
Dan North on Behavior-Driven Development:
“Testing is not just about keeping defects from the users; instead, it’s about helping the team to understand the features that the users need and to deliver those features reliably and predictably.”
S. Freeman and N. Pryce, Growing Object-Oriented Software, Guided by Tests. Crawfordsville, IN: Pearson Education, 2009, ch. 1, pp. 8.
![Page 10: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/10.jpg)
Dan North on Behavior-Driven Development:
“Write the tests for your code before writing the code itself.”
http://www.infoq.com/presentations/bdd-dan-north
![Page 11: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/11.jpg)
Behavior-Driven Development (BDD)Derivado de:
* TDD + CI* Domain-Driven Design* Acceptance Test-Driven Planning* Neurolinguistic Programming (NLP)* Systems Thinking
![Page 12: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/12.jpg)
Ciclo BDD:
S. Freeman and N. Pryce, Growing Object-Oriented Software, Guided by Tests. Crawfordsville, IN: Pearson Education, 2009, ch. 1, pp. 8.
Write a failing
acceptance test
Write a failing unit
test
Make the test pass
Refactor
![Page 13: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/13.jpg)
Behavior-Driven Development (BDD)
* User story: "In order to [benefit] as a [role] I want [feature]"
* Scenarioi: Given [initial context], when [event occurs], then [ensure some outcome]
![Page 14: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/14.jpg)
Frameworks:
● JBehave (Java), RBehave (Ruby)● Cucumber (Ruby, Java, Groovy, C#, ...) ● Jnario (Java)(BMW, Xtend, Xtext)● RSpec (Ruby), MSpec (C#)
● SpecFlow, StoryQ● Many more
![Page 15: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/15.jpg)
ANSI, American National Standards Institute
Nota:
LAS NORMAS TÉCNICAS (ISO) GARANTIZAN LA CALIDAD DEL PROCESO, NO LA CALIDAD DEL PRODUCTO.
![Page 16: Crisis del Software - Universidad Nacional De Colombia · Crisis del Software Gabriel Mañana Guichón Universidad Nacional de Colombia. Wikipedia (2014): “Software crisis was a](https://reader033.vdocuments.mx/reader033/viewer/2022042008/5e70e286d8f6c827744c852c/html5/thumbnails/16.jpg)
Vínculos:
● 10 historical software bugs● BSoD ● List of software bugs● Toyota's electronic throttle control system (ETCS)(2010, 89 people killed)
Dan North on InfoQFreeman & Pryce