Blame
| 3c735d | Noah | 2024-07-21 14:04 | 1 | # Satz 1 - Intro, SD activities, Iterative Development Lifecycle, EXTREME programming |
| e6bf68 | Noah | 2024-07-21 14:04 | 2 | |
| 3c735d | Noah | 2024-07-21 14:04 | 3 | Naive View / Problem Specification —-CODING——> Final Program |
| e6bf68 | Noah | 2024-07-21 14:04 | 4 | |
| 3c735d | Noah | 2024-07-21 14:04 | 5 | > What ist SE? |
| e6bf68 | Noah | 2024-07-21 14:04 | 6 | |
| 3c735d | Noah | 2024-07-21 14:04 | 7 | > ***“state of the art of developing quality software on time and within budget”*** |
| e6bf68 | Noah | 2024-07-21 14:04 | 8 | |
| 3c735d | Noah | 2024-07-21 14:04 | 9 | > ***„Multi-Person construction of Multi-Version software“*** - Dave Parnas |
| e6bf68 | Noah | 2024-07-21 14:04 | 10 | |
| 3c735d | Noah | 2024-07-21 14:04 | 11 | > ***„SE is different from other engineering disciplines“*** - Ian Sommerville |
| e6bf68 | Noah | 2024-07-21 14:04 | 12 | |
| 3c735d | Noah | 2024-07-21 14:04 | 13 | Trade-off between *perfection* and *actual needs - considering constraints* |
| e6bf68 | Noah | 2024-07-21 14:04 | 14 | |
| 3c735d | Noah | 2024-07-21 14:04 | 15 | Teamwork |
| 16 | ||||
| 17 | Change is the norm, not the exception | |||
| 18 | ||||
| 19 | Not constrained by physical laws, but political/social forces | |||
| 20 | ||||
| 21 | SD Activities: | |||
| 22 | ||||
| 23 | - Requirements Collection | |||
| 24 | - often informally, ::incomplete, ambiguous or even incorrect:: | |||
| 25 | - Req. will change, Validation needed throughout the whole software lifecycle | |||
| 26 | - ::Analysis is the process of identifying what a system will do or needs to do:: | |||
| 27 | - Result: a specification (document) | |||
| 28 | - Analysis results in models of the system which describe: | |||
| 29 | - ::Refined use cases, System architecture, Classes, Relationships:: | |||
| 30 | - ::A prototype is a software program developed to test, explore, or validate a hypothesis, that is, to reduce risks:: | |||
| 31 | - ***Exploratory PTT***: throwaway, validate reqs, explore choices | |||
| 32 | - UI PTT (user reqs) | |||
| 33 | - Rapid PTT (functional reqs) | |||
| 34 | - Experimental PTT (technical feasability) | |||
| 35 | ||||
| 36 | ::Eselsbrücke: ***U & I*** im Trans***rapid*** wäre ein lustiges ***Experiment***:: | |||
| 37 | ||||
| 38 | - ***Evolutionary PTT***: made to evolve into a finished product | |||
| 39 | - Oft, wenn Spezifikationen nicht im Vorraus entwickelt werden können | |||
| 40 | - > ::System Design:: | |||
| 41 | - > Design is the process of specifying how the system behavior will be realized from software components | |||
| 42 | - > result: technical architecture and detailed design documents | |||
| 43 | - > ::Implementation:: | |||
| 44 | - > Is the activity of constructing a software solution to the customers reqs | |||
| 45 | - > ::Testing:: | |||
| 46 | - > is the process of validating that the solution meets the reqs | |||
| 47 | ||||
| 48 | All of the Above are **iterative** activities; | |||
| 49 | ||||
| 50 | - ::Maintenance:: | |||
| 51 | - Is the process of changing a system after it has been deployed for the first time | |||
| 52 | - Corrective | |||
| 53 | - Adaptive | |||
| 54 | - Perfective | |||
| 55 | - ::Eselsbrücke: 🧢 CAP bro CAP CAP Coradaper Core@Diaper:: | |||
| 56 | - Maintenance Activities: Configuration & Version Mngmt, Reengineering, Documentation Updates | |||
| 57 | ||||
| 58 |  | |||
| 59 | ||||
| 60 | # The Iterative Development Lifecycle | |||
| 61 | ||||
| 62 |  | |||
| 63 | ||||
| 64 |  | |||
| 65 | ||||
| 66 | (ongoing & parallel, not sequential phases) | |||
| 67 | ||||
| 68 | **Classical Software Lifecycle: (is unrealistic)** | |||
| 69 | ||||
| 70 |  | |||
| 71 | ||||
| 72 | Probleme mit dem Modell: | |||
| 73 | ||||
| 74 | - Echte Projekte folgen nicht diesem sequentiellem Fluss; | |||
| 75 | - Requirements können nicht so explizit genannt werden wie vom Modell gefordert | |||
| 76 | - Kunden müssen starke Geduld haben - MVP ist erst spät da | |||
| 77 | ||||
| 78 |  | |||
| 79 | ||||
| 80 |  | |||
| 81 | ||||
| 82 | ✨You won't get it right the first time, so | |||
| 83 | ||||
| 84 | - Integrate, | |||
| 85 | - Validate, | |||
| 86 | - Test | |||
| 87 | ||||
| 88 | > ***“You should use iterative development only on projects that you want to succeed.”*** – Martin Fowler (UML Distilled) | |||
| 89 | ||||
| 90 | → ⚠️ In der Praxis ist Entwicklung immer iterativ und alle Aktivitäten passieren parallel | |||
| 91 | ||||
| 92 | → Ansatz: INKREMENTELLE UPDATES ; immer running version haben, neue functionalities nach validierung against user requirements integraten | |||
| 93 | ||||
| 94 |  | |||
| 95 | ||||
| 96 | # Extreme Programming | |||
| 97 | ||||
| 98 | → Evolutionary development | |||
| 99 | ||||
| 100 | - Planning Game | |||
| 101 | - Stakeholders meet to plan the next iteration, Business People decide, Developers assess | |||
| 102 | - Small releases | |||
| 103 | - MVP, dann release early and often | |||
| 104 | - Metaphor | |||
| 105 | - Organizing Metaphor, easy to remember naming conventions | |||
| 106 | - Simple design | |||
| 107 | - Always use the simplest design possible | |||
| 108 | - Testing | |||
| 109 | - Test first; Write Test, then implement | |||
| 110 | - Refactoring | |||
| 111 | - continously done | |||
| 112 | - Pair programming | |||
| 113 | - 40h-week | |||
| 114 | - devs go home on time ; overtime = serious problem | |||
| 115 | - no tired devs | |||
| 116 | - On-Site customer | |||
| 117 | - Coding standards | |||
| 118 | - everyone has the same standards | |||
| 119 | - Continuous intergration | |||
| 120 | - All changes are integrated into the code-base at least daily | |||
| 121 | - tests have to run 100% before and after the integration | |||
| 122 | - Collective code ownership | |||
| 123 | - Any programmer that sees an opportunity to add value to any portion of the code is required to do so at any time | |||
| 124 | ||||
| 125 | Pros: | |||
| 126 | ||||
| 127 | - Integrated, simple concept | |||
| 128 | - Low maangement overhead | |||
| 129 | - Continuous risk management | |||
| 130 | - Continuous effort estimation | |||
| 131 | - Emphasis on testing | |||
| 132 | ||||
| 133 | Cons: | |||
| 134 | ||||
| 135 | - scalability bad (big teams) | |||
| 136 | - big teams need more overhead | |||
| 137 | - good documentation is necessary | |||
| 138 | ||||
| 139 |  | |||
| 140 | ||||
| 141 |  |
