Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software Engineering - Introduction and Motivation (Marcello Thiry)

2,066 views

Published on

Software Engineering Undergraduate Course Presentations
Introduction and Motivation
University of Vale do Itajaí
Univali
Incremental Tecnologia
English version

Published in: Education
  • Very Nice, If you want more good Presentations visit www.ThesisScientist.com, Its a wonderful website for latest Presentations and Research
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Software Engineering - Introduction and Motivation (Marcello Thiry)

  1. 1. marcello.thiry@gmail.comIntroduction and motivation
  2. 2. marcello.thiry@gmail.com What are you doing here?
  3. 3. marcello.thiry@gmail.comhttp://c4.quickcachr.fotos.sapo.pt/i/o51010754/6042055_Jtk8U.jpeg Should I know the answer!?
  4. 4. marcello.thiry@gmail.com It says here we will learn about Software Engineering!! http://i0.wp.com/www.nerdglaze.com/wp- content/uploads/2013/08/nerdy-dude.jpg?resize=450%2C305
  5. 5. marcello.thiry@gmail.com http://ideas.scup.com/pt/files/2013/06/conte%C3%BAdo.jpg 1. Engineering 2. Software Crisis 3. Software relevance 4. Software Engineering 5. Nature of software 6. Quality and Software Quality 7. Software types and domains Contents.
  6. 6. marcello.thiry@gmail.com create, design, construct, build, devise, invent, ... Engineer. (verb) https://awordfromafriend.files.wordpress.com/2014/10/blocktower.jpg?w=500
  7. 7. marcello.thiry@gmail.com create, design, construct, build, devise, invent, ... Engineer. (verb)
  8. 8. marcello.thiry@gmail.com Engineering. The application of scientific or empirical methods
  9. 9. marcello.thiry@gmail.com The application of scientific or empirical methods to create, improve and implement Engineering.
  10. 10. marcello.thiry@gmail.com The application of scientific or empirical methods to create, improve and implement utilities Engineering.
  11. 11. marcello.thiry@gmail.com An utility must perform an specific function or goal
  12. 12. marcello.thiry@gmail.com How to develop something useful?
  13. 13. marcello.thiry@gmail.com  Study the problem  Plan a solution  Verify economic and technical feasibility  Coordinate the construction
  14. 14. marcello.thiry@gmail.com But what is Software anyway?
  15. 15. marcello.thiry@gmail.com John Tukey (1915-2000) https://en.wikipedia.org/?title=John_Tukey “In 1958, John Tukey, the world-renowned statistician, coined the term software” (SWEBOK, 2014)
  16. 16. marcello.thiry@gmail.com Collection of computer programs, procedures, and possibly associate documentation and data pertaining to the operation of a computer system Software. (IEEE Std 610.12.1990)
  17. 17. marcello.thiry@gmail.com Documentation?! Yeah, documentation! But we will talk more about it during our course
  18. 18. marcello.thiry@gmail.com Just a reminder: The difficult part is to produce USEFUL documentation!!!
  19. 19. marcello.thiry@gmail.com Thence, Software Engineering...
  20. 20. marcello.thiry@gmail.com Software Engineering. The application of scientific or empirical methods to create, improve and implement software
  21. 21. marcello.thiry@gmail.com “The term software engineering was used in the title of a NATO conference held in Germany in 1968” http://homepages.cs.ncl.ac.uk/brian.randell/NATO/
  22. 22. marcello.thiry@gmail.com The origins of Software Engineering
  23. 23. marcello.thiry@gmail.com Back in the day... Popular Science, Jan 1965, 107 Business Week, Nov 5, 1966, 127. http://thecomputerboys.com/?tag=crisis http://thecomputerboys.com/?tag=crisis
  24. 24. marcello.thiry@gmail.com “Software Crisis” or “Software Gap” Late 1960s, early 1970s...
  25. 25. Late 1960s, early 1970s... •Many projects were failing or had been abandoned • Cost and budget overruns • Software not reliable and difficult to maintain • Difficult to meet the user requirements The crisis... https://kathleenkerridge.files.wordpress.com/2015/02/depre ssion-week-image-300x300.jpg?w=300
  26. 26. Late 1960s, early 1970s... •More powerful computers and programming languages • Demand growth • More complex software • More people involved The crisis... https://pamsblog666.files.wordpress.com/2011/06/computer20studies.jpg
  27. 27. Late 1960s, early 1970s... •Improve professionals’ skills • Methodologies • Communication with users • Team work The crisis... http://eolocomunicacion.com/wp-content/uploads/2015/05/fusionyadquisiciondempresas-e1431067600969.png
  28. 28. marcello.thiry@gmail.com And today?
  29. 29. marcello.thiry@gmail.com Software is everywhere...
  30. 30. marcello.thiry@gmail.com  The avionics system in the F-22 Raptor consists of about 1.7 Million LOC  The Boeing’s 787 Dreamliner contains about 6.5 million LOC  A premium-class automobile contains close to 100 million LOC http://spectrum.ieee.org/transportation/systems/this-car-runs-on-code LOC = lines of software code http://3.bp.blogspot.com/-- ae42w82PVo/VEU2EOJmQXI/AAAAAAAABoM/x5vv azR_BQM/s1600/homer-screaming.gif
  31. 31. marcello.thiry@gmail.com Ubiquitous or pervasive Computing Most people don’t even realize how computing is part of their lives today And what is the impact of this on software? http://betanews.com/wp- content/uploads/2014/09/Internet-of-things.jpg
  32. 32. marcello.thiry@gmail.com Do you realize the relevance of software nowadays? And what is your role on this? https://portalbuzzuserfiles.s3.amazonaws.com/ou- 15436/userfiles/images/pointing%20finger.jpg
  33. 33. marcello.thiry@gmail.com Let’s define software engineering properly!
  34. 34. marcello.thiry@gmail.com (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). (IEEE Std 610.12.1990)
  35. 35. marcello.thiry@gmail.com (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). (IEEE Std 610.12.1990)
  36. 36. marcello.thiry@gmail.com (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). (IEEE Std 610.12.1990)
  37. 37. marcello.thiry@gmail.com (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). (IEEE Std 610.12.1990)
  38. 38. marcello.thiry@gmail.com (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). (IEEE Std 610.12.1990)
  39. 39. marcello.thiry@gmail.com
  40. 40. marcello.thiry@gmail.com http://mrbakersgrade6.weebly.com/uploads/ 2/4/7/6/24767728/6979844.jpg?339
  41. 41. marcello.thiry@gmail.com Systematic Principles Discipline Knowledge Maintenance Operation Development Reliable Application Technique Method Approach Quality Software Procedures Methodology Team Scientific Practical Design Tool Productivity
  42. 42. marcello.thiry@gmail.com And if you have to explain the nature of software right now? This was a question!
  43. 43. marcello.thiry@gmail.com I need to understand the nature of software…
  44. 44. marcello.thiry@gmail.com Frederick Phillips Brooks, Jr. (1931-) https://en.wikipedia.org/wiki/Fred_Brooks “In 1986, Fred Brooks wrote the famous paper No Silver Bullet – Essence and Accident of Software Engineering” http://faculty.salisbury.edu/~xswang/Research/Papers/SERelated/no-silver-bullet.pdf American computer architect, software engineer, and computer scientist. He is also the author of the seminal book “The Mythical Man-Month (1975)”.
  45. 45. marcello.thiry@gmail.com http://www.polyvore.com/cgi/img- thing?.out=jpg&size=l&tid=32131103 “… building software will always be hard. There is no silver bullet.” (Brooks, 1986) There is no single technique or technology, which by itself can improve some aspect of software development 10x in 10 years…
  46. 46. marcello.thiry@gmail.com Why?
  47. 47. marcello.thiry@gmail.com Essence Difficulties in Software Development Accidents Inherent in the nature of the software mapping specification to software and verifying that the design properly meets business needs Related to the production of software and not inherent Brooks, 1986 Most methods and techniques attack the accidents
  48. 48. marcello.thiry@gmail.com Just a reminder: Accidental occurring by chance Incidental Brooks “refired” his paper 10 years later in the book The Mythical Man-Month, 20th Anniversary Edition, 1995 problems which engineers create and can fix Related to the implementation process
  49. 49. marcello.thiry@gmail.com Let’s start with the Essence…
  50. 50. marcello.thiry@gmail.com
  51. 51. marcello.thiry@gmail.com Simple huh!? http://www.ideo.com/work/atm-interface
  52. 52. marcello.thiry@gmail.com No two parts are alike If they are, we make them into subroutines In contrast to elements used in other domains Huge number of states Impossible to enumerate all
  53. 53. marcello.thiry@gmail.com There is no way to abstract away the complexity because it is essential Complex domains Aviation Telecommunications Banking Health sector … We still need to model and implement their complexity
  54. 54. marcello.thiry@gmail.com Technical consequences Communication difficulties Product flaws, cost overruns, schedule delays Difficulty in enumerating, understanding and anticipating all possible states Unreliability, security trapdoors Difficulty in maintaining Introduction of defects, hard to understand, hard to use
  55. 55. marcello.thiry@gmail.com Management consequences Difficult project overview Poor knowledge management personnel turnover is a huge problem
  56. 56. marcello.thiry@gmail.com
  57. 57. marcello.thiry@gmail.com Software must conform to arbitrary limitations Imposed by human institutions and systems regulations and rules Subject to arbitrary changes Difficult to plan Can occur late in the development
  58. 58. marcello.thiry@gmail.com Software has to conform to other existing systems Software has to conform to its environment http://www.ktckids.com/images/puzzlePieces.png
  59. 59. marcello.thiry@gmail.com
  60. 60. marcello.thiry@gmail.com Continuous change of users’ needs Illusion of easy malleability http://pipllp.com/wp-content/uploads/2014/09/evolution-of-cars_CKO.jpg More pressure to change the software
  61. 61. marcello.thiry@gmail.com
  62. 62. Where is the software? http://img.gfx.no/806/806035/original.628x353.jpg Intangibility No geometric representation
  63. 63. marcello.thiry@gmail.com We need to use different representations to model different aspects of the software In UML 2.2 there are 14 types of diagrams http://i.stack.imgur.com/8tmN9.jpg
  64. 64. marcello.thiry@gmail.com How to attack on the essence…
  65. 65. marcello.thiry@gmail.com Requirements refinement Incremental development Grow, not build it Great Designers rapid prototyping Identify, develop and keep them Reuse Buy, don’t build
  66. 66. marcello.thiry@gmail.com And about the Accident…
  67. 67. marcello.thiry@gmail.com Some breakthroughs helped to reduce accidental difficulties… High-level languages Time-sharing Programming environments, tools Object-oriented development Programming verification …
  68. 68. marcello.thiry@gmail.com http://www.infoq.com/articles/No-Silver-Bullet-Summary Interesting reading… No Silver Bullet Reloaded Retrospective OOPSLA Panel Summary http://cliparts.co/cliparts/dc9/6kL/dc96kLRc7.png
  69. 69. marcello.thiry@gmail.com But wait, there’s more…
  70. 70. marcello.thiry@gmail.com
  71. 71. marcello.thiry@gmail.com Does the software wear out? http://chrishowardbooks.com/img/easter-egg-graphics/car.png
  72. 72. marcello.thiry@gmail.com Of course not! But...
  73. 73. marcello.thiry@gmail.com It was working before... ... installing the damn update! https://www.careeraddict.com/Surprised_Businessman.jpg
  74. 74. marcello.thiry@gmail.com Software DETERIORATES when... we introduce a new defect when we change it there were environmental changes that could not be foreseen by the designer
  75. 75. marcello.thiry@gmail.com Pressman, 2015
  76. 76. marcello.thiry@gmail.com Of course, we are considering that the software first release has not already been delivered “rotten”! http://spc.fotolog.com/photo/44/42/36/deselingue/1200006994_f.jpg
  77. 77. marcello.thiry@gmail.com And what is your role on this?
  78. 78. marcello.thiry@gmail.com We should be concerned about the quality of we deliver! http://www.aw3i.com/images/posts/sid_zen_dressdown.jpg
  79. 79. marcello.thiry@gmail.com Quality? https://pbs.twimg.com/profile_images/434052607297191936/ZRHhp8Fx.jpeg
  80. 80. marcello.thiry@gmail.com x Consider this two products.. http://hobby-armada.com/images/item/tamiya/sportscar/292.jpg http://cdn.inaxiom.net/web/wp-content/uploads/2011/08/Ford-Ka-2011-06.jpg
  81. 81. Which one has a better quality? http://www.tvmost.com.hk/most/uploads/images/2015/Article/2015.07/2015.07.23/pigteammate/005.jpg
  82. 82. marcello.thiry@gmail.com Which are the expected features for each one? Quality is the “degree to which a set of inherent characteristics fulfils requirements” ISO 9000, 2015
  83. 83. marcello.thiry@gmail.com Problems with quality The sport car has not reached the required horse power The compact car has been consuming more fuel than expected
  84. 84. marcello.thiry@gmail.com Grade is the “category or rank given to different quality requirements for products, processes or systems having the same functional use” Different technical characteristics High grade brand, first class, ... low grade brand, second class, ... ISO 9000, 2015
  85. 85. marcello.thiry@gmail.com Got it!? http://www.clickgratis.com.br/fotos-imagens/saca- rolha/aHR0cDovL2lzaG9wLnM4LmNvbS5ici9wcm9kdXRvcy8 wMS8wMS9pdGVtLzI4OC82LzI4ODY2N18zR0cuanBn.jpg http://www.clickgratis.com.br/fotos-imagens/saca- rolha/aHR0cHM6Ly91cGxvYWQud2lraW1lZGlhLm9yZy93aWtpcGVkaWEvY29tbW9ucy90aHVtYi9lL 2U1L0tvcmtlbnppZWhlcl8wMV9LTUouanBnLzIwMHB4LUtvcmtlbnppZWhlcl8wMV9LTUouanBn.jpg
  86. 86. marcello.thiry@gmail.com
  87. 87. marcello.thiry@gmail.com Difficult to define Difficult to measure Different perceptions http://www.bms.co.in/wp-content/uploads/2014/11/Customer-Decision.jpg http://businessanalytics.pt/wp- content/uploads/2013/01/Lupa- 300x268.jpg
  88. 88. marcello.thiry@gmail.com And Software quality?
  89. 89. marcello.thiry@gmail.com http://images.clipartpanda.com/happy-computer-user-happy-computeruser.png http://images.clipartpanda.com/stressor-clipart-computer-stress.jpg
  90. 90. marcello.thiry@gmail.com Capability of software product to satisfy stated and implied needs when used under specified conditions (ISO/IEC 25000, 2014) Software Quality.
  91. 91. marcello.thiry@gmail.com Capability of software product to satisfy stated and implied needs when used under specified conditions (ISO/IEC 25000, 2014) Software Quality.
  92. 92. marcello.thiry@gmail.com Product? https://pixabay.com/pt/caixa-papel%C3%A3o- pacote-parcela-brown-158523/
  93. 93. marcello.thiry@gmail.com Artifact that is produced, is quantifiable, and can be either an end item in itself or a component item. Additional words for products are material and goods. (PMBOK, 2013) also used by (ISO/IEC 25000, 2014) Product.
  94. 94. marcello.thiry@gmail.com PMBOK uses different terms for PRODUCT (tangible) e SERVICE (intangible) A product can be:  a component item  an improvement of other item  a final item PMBOK - Um Guia do Conhecimento em Gerenciamento de Projetos
  95. 95. marcello.thiry@gmail.com Software Product Ready to be released to users It needs to be verified and validated
  96. 96. marcello.thiry@gmail.com Capability of software product to satisfy stated and implied needs when used under specified conditions (ISO/IEC 25000, 2014) Software Quality.
  97. 97. marcello.thiry@gmail.com Capability of software product to satisfy stated and implied needs when used under specified conditions (ISO/IEC 25000, 2014) Software Quality.
  98. 98. marcello.thiry@gmail.com Software specification http://blog.axen.pro/wp-content/uploads/2013/06/Writing-Quality-Software-Requirements.png
  99. 99. marcello.thiry@gmail.com Capability of software product to satisfy stated and implied needs when used under specified conditions (ISO/IEC 25000, 2014) Software Quality.
  100. 100. marcello.thiry@gmail.com But has everything been written? What are the users expectations? http://www.handymanstartup.com/wp- content/uploads/2013/02/IMG_Customer_rating_buttons.jpg
  101. 101. marcello.thiry@gmail.com Capability of software product to satisfy stated and implied needs when used under specified conditions (ISO/IEC 25000, 2014) Software Quality.
  102. 102. marcello.thiry@gmail.com Does the USE really matters? https://d3ui957tjb5bqd.cloudfront.net/images/screenshots/products/7/79/79359/hammer-o.jpg?1393432661
  103. 103. marcello.thiry@gmail.com Ok, I got it! But all software are the same?
  104. 104. marcello.thiry@gmail.com Can we classify software products? http://blog.globalknowledge.com/wp- content/uploads/2011/08/squarehole95615108.jpg
  105. 105. marcello.thiry@gmail.com
  106. 106. marcello.thiry@gmail.com
  107. 107. marcello.thiry@gmail.com A software product can be: Commercial off-the-shelf - COTS http://tynmedia.com/tynmag/wp-content/uploads/sites/3/2015/07/comercio_electronico.jpg
  108. 108. marcello.thiry@gmail.com Defined by a market-driven need, commercially available, and whose fitness for use has been demonstrated by a broad spectrum of commercial users (ISO/IEC 25030, 2007) COTS (commercial off-the-shelf).
  109. 109. marcello.thiry@gmail.com Commercial off-the-shelf - COTS Fully developed - FD http://www.spd-haimhausen.de/wp-content/uploads/2010/02/bausteine.jpg A software product can be:
  110. 110. marcello.thiry@gmail.com Developed for a specific application from a user requirements specification FD (fully developed) or Custom software development. (ISO/IEC 25030, 2007)
  111. 111. marcello.thiry@gmail.com Commercial off-the-shelf - COTS Fully developed - FD Modified off-the- shelf - MOTS http://www.sundlep.com/wp-content/uploads/2015/02/web12.jpg A software product can be:
  112. 112. marcello.thiry@gmail.com Similar to COTS, but it allows some degree of customization (modification of its features) from users specific needs MOTS (modified off-the-shelf).
  113. 113. marcello.thiry@gmail.com Pressman considers 7 broad categories Challenges! Pressman, 2015
  114. 114. marcello.thiry@gmail.com  System software  Application software  Engineering/scientific software  Embedded software  Product-line software  Web/mobile applications  Artificial intelligence software (Pressman, 2015)
  115. 115. marcello.thiry@gmail.com And more... http://betanews.com/wp-content/uploads/2014/09/Internet-of-things.jpg http://1.bp.blogspot.com/-7WLjdMquht4/VAANOVyBZSI/AAAAAAAAEZ8/JDIrrYWeJyc/s1600/Cloud-computing-concept_nobg.png
  116. 116. marcello.thiry@gmail.com And what is your role on this?
  117. 117. marcello.thiry@gmail.com http://mrbakersgrade6.weebly.com/uploads/ 2/4/7/6/24767728/6979844.jpg?339
  118. 118. References.  (Brooks, 1986). No Silver Bullet: Essence and Accident in Software Engineering. Proceedings of the IFIP Tenth World Computing Conference: 1069–1076.  (Brooks, 1995). The Mythical Man-Month. Anniversary Edition. Addison Wesley.  (IEEE Std 610.12.1990). IEEE Standard Glossary of Software Engineering Terminology.  (ISO 9000, 2015). Quality management systems — Fundamentals and vocabulary.  (ISO/IEC 25000, 2014). Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Guide to SQuaRE.  (ISO/IEC 25030, 2007). Software engineering — Software product Quality Requirements and Evaluation (SQuaRE) — Quality requirements.  (PMBOK, 2013). A Guide to the Project Management Body of Knowledge (PMBOK® Guide). 5th ed. Project Management Institute (PMI).  (Pressman, 2015). Software Engineering: A Practitioner's Approach. 8th ed. McGraw-Hill Education.  (SWEBOK, 2014). SWEBOK - Guide to the Software Engineering Body of Knowledge. Version 3.0. IEEE.

×