The document discusses agile development methods like Scrum and Extreme Programming (XP). It covers topics like iterative planning, continuous integration, pair programming, and refactoring code. The goal of agile methods is to provide visibility, adaptability, and business value through a flexible iterative process compared to traditional waterfall development.
3. Contents Object-Oriented Analysis and Design Planning Waterfall Development Process Scrum Extreme Programming Conclusion 16/03/2011 Agile Development 3
5. Object-oriented Analysis and Design Conceptual models OO Systems OO Analysis What should it do? OO Design How should it do it? Reflects structures in the actual business process 16/03/2011 Agile Development 5
8. Requirements Analysis Functional Requirements Defines functions in a software system What should the system be able to DO? Hierarchy Use-cases Input Processing Output 16/03/2011 Agile Development 8
11. Requirements Analysis Quality Requirements What is the system supposed to BE? Execution Qualities Security, usability Evolution Qualities Testability, maintainability, scalability, extensibility 16/03/2011 Agile Development 11
12. Domain Analysis Model-driven Object-oriented models Entity-relationship diagrams Basis for software architectures 16/03/2011 Agile Development 12
14. Activity Diagram Workflow of components in a system Explains a process in more detail using models Uses stepwise activities and actions Petri net-like semantics 16/03/2011 Agile Development 14
19. Planning Problems Estimating time costs Unplanned interrupts Different team member qualities Changing requirements 16/03/2011 Agile Development 19
20. Estimating Time Costs Clearly define all requirements Define a fixed scope Planning Poker Estimating time cost per use case Minimizes anchoring More accurate estimates 16/03/2011 Agile Development 20
21. Planning Poker Traditional Planning Planning Poker 4 4 4 2 1 2 4 4 4 3 2 3 5 5 5 4 5 5 5 4 16/03/2011 Agile Development 21
22. Unplanned interrupts Prevention System back-up, source control, … Deep analysis Planning margin Reserve time for unplanned interrupts Max. 80% 16/03/2011 Agile Development 22
23. Different Team Member Qualities Right task for the right team member Stimulate team members to… … work closely together … increase communication Share knowledge 16/03/2011 Agile Development 23
24. Changing Requirements Additional functionalities Within the scope of the project? Changes in existing functionalities Prevention Stakeholder interviews, analysis, contracts, … Generic code and architecture 16/03/2011 Agile Development 24
30. Waterfall Development Process Results Estimated time is nearly 50% of actual time cost Project cost is much higher than estimated Functionality is not what the customer asked for 16/03/2011 Agile Development 30
34. Roles Product owner Business perspective Voice of the costumer Manages Product Backlog Scrum master Coach and fixer Evaluating 16/03/2011 Agile Development 34
35. Roles Product owner Business perspective Voice of the costumer Manages Product Backlog Scrum master Coach and fixer Evaluating Team members 16/03/2011 Agile Development 35
42. Product Increment Demonstration To users and stakeholders Working software Evaluation Progress status Feedback Daily Cycle Sprint Planning Meeting Preparation Deliverable Sprints Product Increment Update Product Backlog Sprint Review Sprint Retro-spective 16/03/2011 Agile Development 42
43. Sprint Review Assessment of project progress On WHAT the team is building Required adaptations Next course to take Daily Cycle Sprint Planning Meeting Preparation Deliverable Sprints Product Increment Update Product Backlog SprintReview Sprint Retro-spective 16/03/2011 Agile Development 43
44. Sprint Retrospective Meeting about project progress On HOW the team is building Increase productivity Keep work enjoyable Daily Cycle Sprint Planning Meeting Preparation Deliverable Sprints Product Increment Update Product Backlog SprintReview Sprint Retro-spective 16/03/2011 Agile Development 44
48. Extreme Programming Pair Programming KISS Continuous Testing Continuous Integration Continuous Refactoring 16/03/2011 Agile Development 48
49. Pair Programming Rules 1 Keyboard 2 Programmers Typing and tactically thinking Strategically thinking Advantages Same productivity Higher quality 16/03/2011 Agile Development 49
50. KISS Keep it stupid/simple Only implement what’s required now Refactor in the future 16/03/2011 Agile Development 50
51. Continuous Testing Advantages Deterministically measuring progress Preventing defects Test First Writing tests before actual code Unit-level and acceptance-level 16/03/2011 Agile Development 51
52. Continuous Integration Rules Quickly release code Hold onto changes for max. 1 day Everyone works on the latest version Advantages Avoiding and detecting compatibility issues early Avoiding diverging and fragmented development 16/03/2011 Agile Development 52
53. Continuous Refactoring Problems Readability of code Maintainability of code Navigating code Design correctness 16/03/2011 Agile Development 53
54. Continuous Refactoring Readability of code The smell of code Duplicate code smell Long method smell Code comments smell 16/03/2011 Agile Development 54
55. Continuous Refactoring Duplicate code smell Textual level Conceptual level Long method smell Code comments smell Apologies for code that’s hard to read Code should be self-explanatory Comments should describe why, not what. 16/03/2011 Agile Development 55
56. Continuous Refactoring Maintainability of code The smell of code Feature envy code smell Object-oriented myopia code smell Inappropriate intimacy code smell Lazy class code smell Contrived complexity code smell 16/03/2011 Agile Development 56
57. Continuous Refactoring Feature envy code smell Highly coupled classes Delineation of logic Object-oriented myopia code smell Fallacy of reuse Inappropriate intimacy code smell Encapsulation 16/03/2011 Agile Development 57
58. Continuous Refactoring Lazy class code smell Classes that have little or nothing to do Contrived complexity code smell Urge to use design patterns Extra complexity for the sake of complexity 16/03/2011 Agile Development 58
60. Continuous Refactoring Design correctness Liskov substitution principle Sibling refactoring Refactor to one class Composition over inheritance Events over virtual methods Delegation over inheritance 16/03/2011 Agile Development 60
61. Continuous Refactoring Solutions Remove redundancy Rejuvenate obsolete designs Express everything once and only once Advantages Avoiding messy code and complexity Code is easier to understand and maintain Less time required to produce an improved system 16/03/2011 Agile Development 61
62. Improving Extreme Programming Disadvantages of XP Pair programming in small teams Refactoring over generic design Improvements Increase communication and integration speed Logging of documentation sources Deep analysis before coding is still a best practice 16/03/2011 Agile Development 62
64. Tools Analysis UML Software IDE Plugin’s Round-trip engineering tools Scrum and Extreme Programming Ticketing software Code repositories with version control Time registration software 16/03/2011 Agile Development 64
65. Analysis UML Software Visual Paradigm Microsoft Visio Umbrello MS Visual Studio 2010 16/03/2011 Agile Development 65
66. Scrum and Extreme Programming Web-based front-ends Assembla Trac Jira Repositories SVN GIT Mercurial CVS 16/03/2011 Agile Development 66