soen6461 software design methodologies software process
play

SOEN6461 - Software Design Methodologies Software Process and - PowerPoint PPT Presentation

SOEN6461 - Software Design Methodologies Software Process and Agile Modeling Winter 2019 Fabio Petrillo Dpartement d'informatique et mathmatique Invited Lecturer This work is licensed under a Creative Commons Attribution-NonCommercial-


  1. What is the main drawback on the Waterfall model ?

  2. What is the main drawback on the Waterfall model ? The main drawback of the waterfall model is the difficulty of accommodating changes after the process is underway. In principle, a phase has to be complete before moving onto the next phase.

  3. Incremental development

  4. Incremental development

  5. Spiral Model

  6. Advantages of Incremental development ● The cost of accommodating changing customer requirements is reduced. ○ The amount of analysis and documentation that has to be redone is much less than is required with the waterfall model. ● It is easier to get customer feedback on the development work that has been done. ○ Customers can comment on demonstrations of the software and see how much has been implemented. ● More rapid delivery and deployment of useful software to the customer is possible. ○ Customers are able to use and gain value from the software earlier than is possible with a waterfall process.

  7. Incremental development problems (classical vision) ● The process is not visible . ● System structure tends to degrade as new increments are added. ○ Unless time and money is spent on refactoring to improve the software, regular change tends to corrupt its structure. Incorporating further software changes becomes increasingly difficult and costly. ● It is a classical vision -> answer: agile process!

  8. Rational Unified Process (RUP) ● Rational Software Corporation ● Rational Objectory Process (ROP) in 1996 ● Use-case driven, architecture-centric, roles, tasks ● Iterative and incremental ● Unified Modeling Language (UML) ● Six “engineering disciplines” Business modelling ○ Requirements ○ Analysis and design ○ Implementation ○ Test ○ Deployment ○

  9. What is the main issue on plan-based models?

  10. What is the main issue on plan-based models? To use the same approach for any kind of software project!!!

  11. No Silver Bullet! (Brooks, 1975)

  12. Software is a wicked problem “A wicked problem is a problem that is difficult or impossible to solve because of incomplete, contradictory, and changing requirements that are often difficult to recognize. ...not all hard-to-solve problems are wicked, only those with an indeterminate scope and scale. ” Complex interdependencies! https://www.wickedproblems.com/1_wicked_problems.php

  13. Agile Process

  14. Agile Process ● The aim of agile methods is to reduce overheads in the software process and to be able to respond quickly to changing requirements without excessive rework. ● Deliver value to customers/users frequently ○ Satisfy the customer through early and continuous delivery of valuable software ○ Working software is the primary measure of progress ● Continuously sustainable pace ● Constant feedback ● Welcoming changes ○ Uncertain world ○ Liquid modernity - Zygmunt Bauman ○ The End of Certainty - Ilya Prigogine Agile (or Agility) is an evolutionary approach!

  15. Agile Process ● Is driven by customer descriptions of what is required (scenarios or user stories) ● Recognizes that plans are short-lived ● Develops software iteratively with a heavy emphasis on construction activities ● Delivers multiple ‘software increments’ ● Adapts as changes occur

  16. Agile Process ● the process molds to the needs of the people and team , not the other way around ● people on an agile team must be ○ Competence ○ Common focus and collaboration ○ Decision-making ability ○ Fuzzy problem-solving ability ○ Mutual trust and respect ○ Self-organization

  17. Agile is evolving what fits together

  18. Lean software development 1. Eliminate waste 2. Amplify learning 3. Decide as late as possible 4. Deliver as fast as possible 5. Empower the team 6. Build integrity in 7. See the whole

  19. Lean Kanban and Work-In-Progress

  20. Is Quality a variable in Agile context?

  21. Is Quality a variable? Quality is not a variable in Agile context! Scope, Time and Resources are variables.

  22. Problems with agile methods ● It can be difficult to keep the interest of customers who are involved in the process. ● Team members may be unsuited to the intense involvement that characterises agile methods. ● Prioritising changes can be difficult where there are multiple stakeholders ( politics!!! ). ● Maintaining simplicity requires extra work. ● Contracts may be a problem as with other approaches to iterative development.

  23. Is Agile better than Incremental Process? Following results from Tarhan and Yilmaz [2014] ● ● Comparison demonstrated that the Agile Process had performed better than the Incremental Process in terms of ○ productivity (79%) ○ defect density (57%) ○ defect resolution effort ratio (26%) ○ test Execution V&V effectiveness (21%), and ○ effort prediction capability (4%). ● These results indicated that development performance and product quality achieved by following the Agile Process was superior to those achieved by following the Incremental Process (to short term projects [research scope]) Ayca, Seda Gunes Yilmaz, Systematic analyses and comparison of development performance and product quality of Incremental Process and Agile Process , Information and Software Technology, Volume 56, Issue 5, 2014, Pages 477-494, http://www.sciencedirect.com/science/article/pii/S0950584913002310

  24. Large-Scale Agile Development ● Agile methods were originally developed for small organizations ● Current agile approaches do not provide good blueprints for what a scaled agile organization ● Results show that the most significant reasons for bottlenecks are related to requirements engineering . (Our next course…) Maria Paasivaara, Benjamin Behm, Casper Lassenius,Minna Hallikainen, Large-scale agile transformation at Ericsson: a case study , Empir Software Eng (2018) https://doi.org/10.1007/s10664-017-9555-8 Kai Petersen, Mahvish Khurum, Lefteris Angelis, Reasons for bottlenecks in very large-scale system of systems development , Information and Software Technology,Volume 56, Issue 10, 2014, Pages 1403-1420, http://www.sciencedirect.com/science/article/pii/S0950584914001074

  25. Trends -> DevOps 67 https://www.enterpriseirregulars.com/116202/race-pipeline-atlassian-aint-playin-introducing-devops-marketplace/

  26. Trends -> Scaling Agile the Spotify https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/ https://blog.crisp.se/wp-content/uploads/2012/11/SpotifyScaling.pdf http://usir.salford.ac.uk/48199/1/camera%20ready%20submitted.pdf

  27. The software development methodologies used Survey results indicate that although agile methodologies are more prevalent than 10 years ago, traditional methodologies are still popular . L. R. Vijayasarathy and C. W. Butler, " Choice of Software Development Methodologies: Do Organizational, Project, and Team Characteristics Matter? ," in IEEE Software, vol. 33, no. 5, pp. 86-94, Sept.-Oct. 2016. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7006383&isnumber=7548893

  28. So, what process should I use? Low High Collaboration Strictly Agile/open plan-driven source

  29. The software development process in reality

  30. http://agilemodeling.com/ 72

  31. Agile Modeling ● Agile principles and practices applying for modeling ● Following Ambler (2002): ○ Agile Modeling (AM) is a chaordic, practice-based methodology for effective modeling and documentation of software-based systems.

  32. Agile Modeling Values and Principles ● Communication ● Simplicity (Keep it simple) ○ Don’t “What if” Yourself to Death ○ Avoid applying complex patterns too soon ○ Avoid over-architecting your system to support potential future requirements ○ Avoid to develop a complex infrastructure ○ To develop a complex infrastructure ● Feedback ○ Develop the model as a team ○ Review the model with your target audience ○ Implement the model

  33. Agile Modeling Values and Principles ● Software Is Your Primary Goal : we’re not documentation developers, or even model developers; we’re software developers. ● Travel Light : create just enough models and documentation to get by. Model with a Purpose ● ● Maximize Stakeholder Investment : System Documentation is a Business Decision , Not a Technical One ● Content is more important than representation ○ You don’t need to jump into using a complicated CASE tool right away

  34. Agile Modeling Values and Principles ● Multiple Models ● Each artifact has an objective/semantic/strengths/weaknesses ○ Use the right tool for the job ○ No single model is sufficient for your modeling needs. ○ Start by learning a subset of artifacts ○ The UML is not complete ○ Understandability Is More Important than Following Standards Create Several Models in Parallel ● ● Iterate to Another Artifact Use the simplest tools ● ● Model with Others ○ Active Stakeholder Participation during modeling sessions ○ Display Models Publicly ● Collective Ownership -> Display Models Publicly

  35. Agile modeling ● Modeling or documenting? 77

  36. Agile modeling - modeling ● Modeling or documenting? ● Modeling = to make models to understand a problem ● Comprehension ● Several levels of abstraction ● Sketch ● “ Perishable ” ● Take a picture and throw in the trash 78

  37. Agile modeling - documenting ● Modeling or documenting? ● Documenting = to make artefacts for communication ● Describe and store/registry decisions ● For “perinity” or “ posterity ” ● More details ● More structured documents (templates) ● “Formal” modeling notation -> UML, SysML, Archimate, … ● Documents aren’t always models ○ Ex.: User manual is not a model. ● Maximize stakeholder investment ● Travel light! 79

  38. Agile modeling session 80

  39. Agile Modeling Session 81

  40. Agile Modeling ● Make essential modeling ● Whiteboard ● Process -> Requirements -> Architecture ● UML notation as reference -> simple diagrams ● Make several models simultaneously ● Diagrams work together (views) ● Decide -> modeling or documenting? 82

  41. Agility beyond the hype Experiences and lessons learned from the trenches

  42. Agile is not new...

  43. ~ 20 years!

  44. Agile is trending...

  45. Agile is buzzword...

  46. Agile is a business...

  47. But finally, what is agility in in practice?

  48. I started working at very young age ...

  49. Developer DevOps Engineers Software Architect Software Engineer Agile team leader R&D Engineers Manager Agile Coach System Administrator Researcher Data Scientist Professor

  50. So, I’m here for sharing some stories and ...

  51. Lesson #1 Is impossible possible?

  52. When is impossible possible?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend